假设我有一个 3D 三角形网格和一个可以渲染网格的 OpenGL 帧缓冲区。
对于每个渲染的像素,我需要构建一个渲染到该像素的三角形列表,即使是那些被遮挡的。
我能想到的唯一方法是单独渲染网格中的每个三角形,然后遍历帧缓冲区中的每个像素以确定它是否受到三角形的影响(使用深度缓冲区或用户定义的片段着色器输出变量)。然后我必须清除帧缓冲区并对下一个三角形执行相同的操作。
有没有更有效的方法来做到这一点?
我考虑过,对于片段着色器中的每个片段,写出一个三角形标识符,但 GLSL 不允许输出整数列表。