在延迟渲染中,用材质和UV缓冲区替换纹理缓冲区是否可行?

问题描述 投票:0回答:1

我试图将所有可能的问题都放在这个问题上,但这是它的内容,

制作一个延迟渲染器,而不是使用漫反射/镜面缓冲区,而是使用材质/ UV缓冲区,将是可行的。对材质的处理类似于平铺的光剔除,将为着色器传递所需的纹理(镜面,漫反射,发光,贴花等),然后使用UV缓冲区中的UV对其进行采样。

[我只是想一种方法来获得延迟渲染的好处和正向渲染的灵活性,我想不出为什么这两种方法都会使两者中的最差的一个原因,但是我找不到关于任何类似内容的任何信息,所以我不知道其实用性是什么。

graphics rendering deferred
1个回答
0
投票
我不知道如何使用此方法改进正常的延迟渲染。延迟渲染的主要缺点是传递大缓冲区,多个光照模型的复杂性,透明度和抗锯齿。

您建议的方法将需要巨大的缓冲区来存储所有模型的所有不同纹理,这将比漫反射和镜面缓冲区占用更多的空间。

您的方法不会对照明模型产生任何改善,因为它仍然需要一个材质ID缓冲区和一个复杂的着色器来照明。

您的方法不能解决透明度或抗锯齿问题。

总体上,材质和uv缓冲区可以很容易地替换为仅包含在uv坐标处的材质上的颜色的漫射缓冲区,如在正常的延迟渲染中一样。

编辑:在您所描述的情况下,使用多个(例如,发光,漫射,光泽,镜面反射...)缓冲区将其用作纹理,并且仅对每种材质加载一组缓冲区,这可能是实用的。但是,它只节省少量带宽,因为与您建议的材质纹理相比,常规设置只需要屏幕大小的纹理即可。另外,由于每种材料都切换了多个纹理,因此性能可能也会有所损失。

© www.soinside.com 2019 - 2024. All rights reserved.