3

メッシュの各三角形を異なる色でレンダリングするシェーダー プログラムを作成したいと考えています (したがって、三角形を 1 つ選択できます)。gl_PrimitiveID を使用しようとしましたが、常に 0 が返されます。次に例を示します。

#version 330

out uvec3 FragColor;

void main()
{
    FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}

このシェーダは常に黒色をレンダリングします。

4

1 に答える 1

4

最も簡単な方法で目的を達成するには、追加の頂点配列を三角形ごとの色を含む色属性として頂点シェーダーに渡します。次に、それをさまざまな出力としてフラグメントシェーダーに渡します。それだけです。この方法で、各頂点の色を正確に指定できます.

于 2014-01-05T13:05:38.390 に答える