2
我有一個三角形網格,我在OpenGL中渲染。我需要從結果視圖中的每個像素映射到與其關聯的多邊形的索引。有沒有簡單的方法來做到這一點?如何提取OpenGL多邊形柵格化?
如果可以輕鬆做到這一點,那麼存儲它的合理數據類型是什麼?
我有一個三角形網格,我在OpenGL中渲染。我需要從結果視圖中的每個像素映射到與其關聯的多邊形的索引。有沒有簡單的方法來做到這一點?如何提取OpenGL多邊形柵格化?
如果可以輕鬆做到這一點,那麼存儲它的合理數據類型是什麼?
用支持它的整數紋理繪製到幀緩衝區中。您可以使用gl_PrimitiveID
作爲片段着色器中的值寫入輸出。這將爲您提供從像素到原始索引的映射。
請注意,'gl_PrimitiveID'在渲染命令中是*不唯一*。它在每次抽籤開始時被重置。 –
@DietrichEpp所以,如果我理解正確,我會用'glBindTexture(GL_TEXTURE_2D,framebuffer.textures [0])綁定一個新紋理; glTexImage2D(GL_TEXTURE_2D,0,GL_R32I,width,height,0,GL_RED_INTEGER,GL_INT,gl_PrimitiveID);'?然後讀回:'glReadPixels(0,0,width,height,GL_RED_INTEGER,GL_INT)' – paleon12
另外,對於沒有任何原語的像素,結果是什麼? – paleon12