如何将实例渲染的结果重定向到目标纹理的不同区域?

时间:2019-05-29 10:30:45

标签: opengl rendering

我正在尝试使用opengl中的实例渲染创建一系列深度图(大约300或更多)。

我了解到,在每个实例化的绘制调用中,顶点和数据将进行多次处理,并且帧着色器的结果将累积在附加的帧缓冲区中。

为了方便以后使用,我的最初计划是尝试将多个低分辨率深度贴图渲染为高分辨率纹理。这样:https://i.imgur.com/tETVoCZ.png(无实例渲染,只有多个绘制调用)。

我当前的结果是:https://i.imgur.com/ognhTrH.png(实例渲染,INSTANCE_COUNT = 2,深度图的分辨率是目标纹理的1/4)。两个不同源空间中的深度图重叠在一起。我无法将帧着色器的输出控制到我想要的区域。

Multiviewport渲染可能会解决此问题,我正在研究中。我不知道在渲染复杂模型时每帧调用glViewportIndexedf() 300次是否会显着影响性能。

还有其他更好的方法来解决此问题吗?任何帮助将不胜感激。

0 个答案:

没有答案