1

あなたが使用するポイントをマップするように私が言うことができる限り

gl_FragColor =  texture2D(Texture, gl_PointCoord);

そして三角形をマッピングするには

gl_FragColor =  texture2D(Texture, TexCoorFromVertexShader);

だから私が私たちに-点と三角形の両方をしたいのなら、私はそれをどのように扱うのですか?これまでのところ、複数のプログラムを用意して、何を描いているかに応じてそれらを切り替えることを考えていますが、それはかなりのオーバーヘッドのようです。それとも、それは物事がどのように機能するのですか?

4

1 に答える 1

1

あなたの仮定は正しいです。個別のシェーダーが道です。if1 つの GLSL プログラム内に複数のステートメントがあると、非常にコストがかかる可能性があります。あなたの場合、ルックアップは頂点ごとに行われるため、実際のパフォーマンス ヒットであるに違いありません。

詳細については、こちらをお読みください: Shader branching question

于 2013-02-19T13:40:05.067 に答える