0

FBO を正しく理解していれば、いくつかの 2D テクスチャを異なる色のアタッチ ポイントにアタッチできます。この機能を使用して、フラグメント シェーダーからいくつかの異なるタイプのデータ (ワールド ポジションや法線など) を書き出したいと考えています。昔のように、これにはさまざまなインデックスで gl_FragData への書き込みが含まれていましたが、gl_FragData はもう存在しません。これは現在どのように行われていますか?

4

2 に答える 2

4

出力変数をフラグメント シェーダーに追加するだけです。次に例を示します。

layout(location=0) out vec4 color;
layout(location=1) out vec3 normal;
layout(location=2) out vec3 position;

void main() {
    color = vec4(1,0,0,1);
    normal = vec3(0,1,0);
    position = vec3(1,2,3);
}
于 2015-09-27T21:05:50.410 に答える