我正在尝试使用opengl中的实例渲染创建一系列深度图(大约300或更多)。
我了解到,在每个实例化的绘制调用中,顶点和数据将进行多次处理,并且帧着色器的结果将累积在附加的帧缓冲区中。
为了方便以后使用,我的最初计划是尝试将多个低分辨率深度贴图渲染为高分辨率纹理。这样:https://i.imgur.com/tETVoCZ.png(无实例渲染,只有多个绘制调用)。
我当前的结果是:https://i.imgur.com/ognhTrH.png(实例渲染,INSTANCE_COUNT = 2,深度图的分辨率是目标纹理的1/4)。两个不同源空间中的深度图重叠在一起。我无法将帧着色器的输出控制到我想要的区域。
Multiviewport渲染可能会解决此问题,我正在研究中。我不知道在渲染复杂模型时每帧调用glViewportIndexedf()
300次是否会显着影响性能。
还有其他更好的方法来解决此问题吗?任何帮助将不胜感激。