1

ソース コードを見てください。ビーツのサラダのように見えますが、グリッチ テクスチャ クワッドをレンダリングする理由が分かる人がいるかもしれません。私は結果のない間違いを見つけるのに多くの時間を費やしました。クワッド (2 つの三角形) をレンダリングし、テクスチャを付けて、頂点カラーとブレンドしようとしています。私が理解しているように、テクスチャ座標で間違いが発生します。

アップデート:

テクスチャの原画;

スクリーンショットgl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );

スクリーンショットgl_FragColor = texColor;

スクリーンショットgl_FragColor = vec4( v_texCoord.x, v_texCoord.y, 0.0, 0.5 );

4

1 に答える 1

1

OpenGL シェーダーを手動でデバッグする場合、問題の場所を特定する方法があります。gl_FragColorシェーダー内のさまざまな計算の結果をダンプするために使用します。

たとえば、ジオメトリが正しくレンダリングされているかどうかを確認するために、 gl_FragColor = texColor * v_color;toを変更します。gl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );フルスクリーンの赤いクワッドが表示された場合、これは頂点変換が正常であることを意味します。

次に進み、テクスチャ座標を確認しますgl_FragColor = vec4( v_texCoord.x, v_texCoord.y, 0.0, 0.5 );。結果は、赤/緑の段階的なカラー ランプになるはずです。

間違ったカラー ランプは、UV テクスチャ座標が間違っていることを意味します。それはそう。ではテクスチャ座標を設定しませんvoid Render(Context* context)

于 2013-11-14T11:33:35.120 に答える