2013-04-06 74 views
0

我试图把所有我能到这个问题,但这里是它的肉,在延期渲染中,用材质和UV缓冲区替换纹理缓冲区是否可行?

难道是实际作出延期渲染器,而不是具有漫/高光缓冲它有一个材质/ UV缓冲区,材料将被类似于平铺光剔除来处理,着色器将被传递所需的纹理(高光,漫反射,发光,贴花等等),并使用UV缓冲区中的UV进行采样。

我只是试图想到一种方法来获得延迟渲染的好处和向前渲染的灵活性,我想不出为什么这会得到最差的两个,但我不能找到任何类似的信息,所以我不知道它的优点和缺点在实际中。

回答

0

我不能如何这种方法将是对正常延迟渲染的改进。延迟渲染的主要缺点是传递大量缓冲区,复杂的光照模型,透明度和抗锯齿。

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

您的方法不会改进照明模型,因为它仍然需要材质ID缓冲区和用于照明的复杂着色器。

你的方法不会解决透明度或抗锯齿。

总的来说,一个材质和uv缓冲区可以很容易地被一个扩散缓冲区所替代,该缓冲区在uv坐标处包含材质上的颜色,就像正常的延迟渲染一样。

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

+0

巨大的纹理缓冲区?没有纹理会根据需要传入,海盗材质?传入海盗纹理。恐龙材料?传入恐龙纹理。他们不会一次全部塞满。 – user1175522 2013-04-06 16:53:06

+0

我不确定你的建议。是否要将UV坐标和材质ID渲染到缓冲区中,然后重复执行以下操作:**每种材质**都具有必要的纹理?我不太明白这种方法是一种改进。 – wombat 2013-04-06 16:58:53

+0

在延期庄园中处理的像素剔除的正常计算和像素,与正向庄园相比处理的几何图形更少,通过识别包含材料的小区域以进一步优化以避免透支。 – user1175522 2013-04-06 17:03:33