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