我正在开发一款具有逼真延迟照明的2D游戏。由于我是在渲染场景后渲染灯光的,因此如果有对象(如树)遮挡了正在照明的区域,我需要一种方法来剔除照明计算。在阅读了一些内容之后,我对延迟渲染的最佳选择是使用深度缓冲区。我一直在互联网上搜索使用2D图形的深度缓冲区的方法,但真的没有发现任何有用的东西。我找到了glPolygonOffset
,但我真的不知道这是否是我想要的,或者是否有其他方法可以为多边形设置z值。感谢您的帮助
你的误解在于思考"3D==透视"。要生成深度缓冲区,场景需要深度。但这没问题。你所说的"2D"可能只是意味着缺乏视角。因此,通过使用正交投影并将对象放置在不同深度的层上,可以生成一个深度缓冲区,其中的数据可用于延迟照明。