2012-01-15 117 views
0

我正在研究具有逼真延迟照明的2D游戏。由于在渲染场景后渲染灯光,因此如果存在诸如树的对象阻挡正在点亮的区域,则需要采取一种方法来剔除照明计算。在做了一些阅读之后,我推迟延期渲染的最好方法就是使用深度缓冲区。我一直在搜索互联网寻找具有2D图形深度缓冲区的方法,但实际上并没有发现任何有用的东西。我发现glPolygonOffset但我真的不知道,如果这是我想要的,或者如果有另一种方法来设置多边形的z值。感谢您的帮助2D中的深度缓冲区

回答

4

您的错误想法在于思考“3D ==透视”。要生成深度缓冲区,您的场景需要深度。但这没有问题。你所说的“2D”可能仅仅意味着缺乏视角。因此,通过使用正投影并将各个对象置于不同深度的图层上,您可以生成深度缓冲区,其中包含延迟照明的有用数据。

+0

通过调整多边形的z坐标? – rcapote 2012-01-15 02:53:46

+1

他的意思是,无论z值如何,它都不会改变外观,因为没有视角。您可以将物体进一步移动到屏幕中或靠近相机,只要它在任一方向上都不太远,它就会看起来相同。 – fabspro 2012-01-15 05:31:19

+1

而且“太远”意味着在查看裁剪区域之外,其中可以设置多边区域。与透视投影不同,在正投影中,深度值线性地取决于Z. – datenwolf 2012-01-15 09:55:37