2016-12-24 10 views
2

OpenGLでレンダリングしている三角形のメッシュがあります。私は結果ビューの各ピクセルからそれに関連付けられたポリゴンのインデックスへのマッピングを取得する必要があります。それを行う簡単な方法はありますか?OpenGL Polygon Rasterizationを抽出するには?

これを簡単に実行できるのであれば、それを保存するための妥当なデータ型は何でしょうか?

答えて

3

整数テクスチャを使用してフレームバッファを描画します。フラグメントシェーダの値としてgl_PrimitiveIDを使用して、出力として書き込むことができます。これは、ピクセルからプリミティブインデックスへのマップを提供します。

+0

「gl_PrimitiveID」は、レンダリングコマンド全体で一意ではないことに注意してください。各ドローの開始時にリセットされます。 –

+0

@DietrichEppだから正しく理解すれば、 'glBindTexture(GL_TEXTURE_2D、framebuffer.textures [0]);で新しいテクスチャをバインドします。 glTexImage2D(GL_TEXTURE_2D、0、GL_R32I、幅、高さ、0、GL_RED_INTEGER、GL_INT、gl_PrimitiveID); '? 'glReadPixels(0、0、width、height、GL_RED_INTEGER、GL_INT)' – paleon12

+0

また、プリミティブを持たないピクセルの結果はどうでしょうか? – paleon12

関連する問題