1

私は OpenGL/ES と OpenTK の初心者なので、私の理解や用語が少しずれていても許してください。

基本的、

  1. Vertex Buffer Object Array (VBO) を使用して、一連の [白い] 三角形ベースのキューブを描画しています。
  2. 次に、ラインと polygonOffset() を使用して、同じ頂点を使用して立方体の [黒] ワイヤーフレームをレンダリングします。
  3. 問題は、背面にレンダリングされたワイヤーフレームが見える (透けて見える) ことです。理由はわかりません (?)。
  4. 私は 4 値の色 (rgba) を使用しています。

三角形ベースのキューブ セクションの法線を合計 36 (2 x 3 頂点/三角形 x 6 辺)定義しましたが、ワイヤーフレーム ライン セグメントの法線はまだ定義していません (現時点では)。

OpenGLの落とし穴/経験だけに基づいて、私が間違っている可能性があることを誰かが知っていますか?

JFYI、モノ/モノタッチ(C#)でOpenTK-OpenGL ES11を使用しています

PS コードを掲載していない理由は、レンダリング コードがゲーム ロジックと混合され、複数のファイルに分散されているためです。必要に応じて、できるだけ早く簡単な自己完結型の例を作成しようとします。

4

2 に答える 2

1

GL.EnableClientStateがglEnableClientStateの直接の類似物であると仮定すると、これはポリゴンオフセットを有効にする方法ではありません。glEnableに相当するものはありますか?目に見えるワイヤーフレームを取得するには、次のように機能します。

 glEnable( GL_POLYGON_OFFSET_FILL );
 // push back the filled faces a touch
 glPolygonOffset( 1, 1 );
 // draw filled faces
 ...
 glDisable( GL_POLYGON_OFFSET_FILL );
 // draw wireframe
 ...
于 2011-03-16T12:55:58.333 に答える
1

深度テストがオンになっていることを確認してください。線と点を構成するフラグメントでさえ深さをテストするため、線の前に図形が描かれている場合、図形は線を遮る必要があります。

glEnableパラメータ を持つ関数を見たいとしますGL_DEPTH_TEST

于 2011-03-16T04:10:43.883 に答える