目标:OpenGL ES> = 3.0
我的应用:
1) creates several complicated Meshes
2) for each Mesh, renders it:
a) runs vertex shader which distorts the Mesh' vertices in nontrivial ways
b) nothing special in fragment shader
3) Again for each Mesh:
a) postprocess the area taken by it
现在,为了使后处理更有效,我调用glScissor并仅使包含Mesh的最小矩形通过Scissor测试。为了做到这一点,我需要知道边界矩形,并计算,我需要知道网格
a) leftmost
b) rightmost
c) topmost
d) bottom-most
窗口坐标中的顶点。如果顶点着色器不会扭曲网格的顶点(上面的步骤2a),那就不会是一个大问题。
我通过设置变换反馈处理它,以便在步骤2之后,我在CPU中有变换后的顶点。然后,我通过一个循环计算最左边的(和其他3个),但是所有这些循环。
虽然有数十万个顶点,但我在想是否这个工作不能由Vertex Shader本身完成。
问题:顶点着色器 - 修改顶点位置的一个 - 可以找出最左边的一个并且只将它传回给它(以及另外三个'极端'顶点)?