繁体   English   中英

使用Geometry Shader(openGL)一次渲染多次

[英]Render multiple times in a single pass using the Geometry Shader (openGL)

在渲染场景时使用的是正射投影。 我在分辨率128x128的纹理上渲染。 现在,我想渲染具有相同分辨率的其他纹理,但是我想获得不同的细节。 我张贴的图片可能会清除一切

在此处输入图片说明

如您所见,有一个灰色场景和3台摄像机渲染同一物体,但距离和视平面大小不同。 由于这3个将在具有相同分辨率的3个纹理上渲染,因此这些纹理将包含相同的信息,但具有不同的细节量。

我可以进行3次传递,并在每次渲染之前重新定义相机。 但是,由于视图是相同的,只是距离更近,我想可能会有某种方式使用几何着色器来克服这一问题,并在一次通过中完成。 有什么建议吗?

使用分层渲染 ,您可以一次性完成该任务。 但是,您需要让几何着色器确实将每一层的图元相乘(当然,同时对每个“副本”应用不同的变换)。

但是,您不能直接渲染为3个不同的纹理对象。 为了使分层渲染正常工作,您需要一些分层纹理对象,例如数组texture 由于所有纹理的大小相同,因此您可以使用具有3层的单个阵列纹理,而不是3个单独的2D纹理,但是我不能确定这是否适合您的用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM