問題タブ [opentk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - OpenGL C#、テクスチャを逆さまにロード
y座標を反転させて画像をopenGLにロードする方法はありますか?(逆さまに)。.NET BitmapクラスとBitmapDataクラスを使用しており、BitmapData.Scan0をOpenGLに渡します。
を使用してCPUでビットマップを反転するの.RotateFlip()
は遅すぎます。
すべてのtexcoordを反転する以外に、エンジンでこの問題を解決できますか?
opengl - GL_TEXTURE_2DとGL_TEXTURE_3Dを一緒に使用する
序文
次のようなテストアプリケーションがあります。
左の三角形は次の方法で描画されます。
直角三角形は次のように描かれています。
テクスチャはFBOを介してレンダリングされます。
問題
GL_TEXTURE_2DとGL_TEXTURE_3Dを一緒にプレイするのに苦労しています。コードの次のセクションのコメントを外すまで、すべてがうまく機能します。
その結果、次の画像が表示されます(2Dテクスチャが機能しなくなります)。
2Dテクスチャと3Dテクスチャを一緒に機能させる方法はありますか?FBOを介して3Dテクスチャを2Dテクスチャにレンダリングする必要があります。それを行う方法はありますか?
完全なソースコード
c# - グラフィックス プログラミング用の Visual C# のライブラリは、Tao と OpenTK のどちらですか?
最新の OpenGL には glBegin がなくなったと聞きました。言い換えれば、状況は大きく変わり、c# での OpenGL プログラミングにはどのライブラリを使用すればよいのか疑問に思っていました。
CAD モデリング アプリケーションのグラフィックス プログラミングを行います。
ありがとうございました
c# - Windows と Linux のグラフィックス ライブラリ
Tao と OpenTK は、Windows 上の c# で使用できる 2 つのグラフィックス ライブラリです。どちらもアクティブではありません。Tao の最終リリースは 2008 年と OpenTK 2010 です。
しかし、Mesa は Linux でアクティブになっているので、自分のプロジェクトに何を使用すればよいか考えています。CAD モデリング アプリを開発する必要があります。
Mesa と Linux を使用する必要がありますか? OpenGL は頻繁に変更されるため、最新のものが必要です。
ありがとうございました
c# - より動的な均一シェーダーを作成するにはどうすればよいですか?
ユニフォーム バッファ オブジェクト (UBO) を作成しようとしていますが、配列をユニフォームで埋める必要があります。私が現在行っている方法は、ハードコードされた構造を使用することです。
次に、マーシャリングを使用してその構造体からバイト配列を取得し、UBO にその配列を入力します。
System.Reflection を使用してオンデマンドで構造を作成することなく、均一な情報を保持するためのより動的な方法があるかどうか疑問に思っていました。フラグメント シェーダーと頂点シェーダーを作成したとき、文字列を使用でき、次に GL.CreateShader() と GL.ShaderSource を使用できました。私が考えることができる唯一の薄いことは、 ShaderType.GeometryShader が実際には Uniform シェーダーであり、ラベルが異なることです。
たとえそれが完全に異なることを意味するとしても、どんな方法でも大歓迎です。情報を省略した場合はお詫びし、リクエストに応じて追加しようとします。
3d - 3Dグラフィックを塗りつぶさない球
このような立方体と円(塗りつぶしのない球)を描きたいです。OpenTKを使用しています
http://farm7.static.flickr.com/6074/6097051938_cb0b798ce0_z.jpg
私は以下のような問題を抱えています:私はキューブの上部に円を描くことを試みました。しかし、立方体と円を回転させると、円は楕円になります。
円の代わりに球を描いてみました。ただし、上の画像のようにすることはできません。誰かが解決策を持っていますか?前もって感謝します!
そしてこれは私のものです http://farm7.static.flickr.com/6061/6096573967_22d56b2c2a_z.jpg
opengl-es - OpenGL ES 2.0 で深度バッファ コンテンツをすばやく設定する
私は OpenTK、opengl ES 2.0 を使用しており、再描画ごとに深度バッファを外部からロードされたものにクリアしたいと考えています。
私が達成したいのは、カメラと背景オブジェクトが動かない状況に備えて、事前にレンダリングされた画像とその深度バッファーに画面をクリアし、その上に動くオブジェクトのみを従来の方法でレンダリングすることです。
パフォーマンス効率の良い方法でこれを行うにはどうすればよいですか?
opengl - 3D ポイントを 2D 画面座標 OpenTK に投影する
Monotouch と OpenTK を使用して、1 つの 3D ポイントの画面座標を取得しようとしています。ワールド ビュー プロジェクション マトリックスを設定しました。OpenGL はそれを理解して 3D モデルを完全に投影しますが、同じマトリックスを使用して 2D から 3D に 1 点だけを投影するにはどうすればよいですか?
私は簡単に使用できると思いました:
次に、projected2DPos で投影されたスクリーン座標を取得します。しかし、結果の Vector4 は、投影された適切なスクリーン座標を表していないようです。そして、そこから計算する方法がわかりません。
Vector4.w で除算する必要があることがわかりましたが、それでも間違った値が得られます。今この方法を使用する:
エラーは表示されません... :S
c# - OpenTK(C#〜.NET)でのマウスウィンドウ座標の取得
1つから多数のOpenGLビューフォームを持つGUIを作成しています。これで基本が機能しました。ビューアフォームのリストがあり、それぞれがOpenTK.GLControlメンバーをそのデザイナークラスにカプセル化しています。
アイコンをドラッグしたウィンドウ内の実際のカーソル位置を取得して、左クリックを離したときにその位置のGLウィンドウにドロップするようにする必要があります。これは実際に行う必要があることから単純化されていますが、最初のステップとして、これが発生すると、残りは簡単に実行できます。
GLControl.MousePosition.X、GLControl.MousePosition.Yを使用してカーソル位置を取得すると、ウィンドウ内の位置ではなく、実際には画面位置が表示されます。残念ながら、これは私がしなければならないことには特に役立ちません。
私はOpenTK.GameWindow.Mouseを見てきましたが、これは私の小さなテストプロジェクトで非常にうまく機能しているようです。ウィンドウ内のカーソルの正確な位置を取得します。ただし、このプロジェクトではgamewindowを使用できません。これは、gamewindowには、Dock、TabIndex、Paint、その他のGUI関連メンバーなどのGLcontrolにあるGUIフォームに適したものがないためです。(または、少なくともGameWindowがそれらをサポートする方法を見つけることができないようです。間違っている場合はお知らせください)
だから私が本当に求めているのは、OpenTK.GLControlを使用してカーソルのウィンドウ位置をフォームで取得するための本当に素晴らしい/簡単な方法を誰かが持っているかどうかです
実際、それがトリッキーであっても、私に知らせてください:)私はそれができる必要があります!
c# - ビューマトリックスへのモデリングマトリックスの適用=失敗
OpenGLでのオブジェクトの移動と回転に問題があります。私はC#とOpenTK(Mono)を使用していますが、問題はOpenGLの部分を理解していないことだと思います。そのため、C#/OpenTKについて何も知らなくても助けてくれるかもしれません。
OpenGL SuperBible(最新版)を読んでいて、C#でGLFrameを書き直そうとしました。これが私がすでに書き直した部分です:
そこで、ランダムな座標上に新しいGameObject(GLFrame)を作成しGameObject go = new GameObject(0, 0, 5);
、少し回転させますgo.RotateLocalZ(rotZ);
。次に、フレームを使用してマトリックスを取得し、Matrix4 matrix = go.GetMatrix();
フレームをレンダリングします(最初に、表示マトリックスを設定し、次にモデリングマトリックスを乗算します)
これDrawCube(float[] color)
は、立方体を描くための私自身の方法です。
ここで最も重要な部分:部分なしでフレームをレンダリングするが、とを使用すると、機能します(2番目のスクリーンショット)。ただし、これら2つの方法を使用せず、を使用してモデリングマトリックスをOpenGLに直接渡すと、奇妙なものが描画されます(最初のスクリーンショット)。GL.MultMatrix(ref matrix);
GL.Translate()
GL.Rotate()
GL.MultMatrix()
私を助けて、どこに問題があるのか説明してもらえますか?変換メソッドと回転メソッドを使用して機能するのに、ビューマトリックスにモデリングマトリックスを乗算しないのはなぜですか?