Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 二维深度缓冲区_Opengl_Zbuffer_2.5d - Fatal编程技术网

Opengl 二维深度缓冲区

Opengl 二维深度缓冲区,opengl,zbuffer,2.5d,Opengl,Zbuffer,2.5d,我正在做一个2D游戏,里面有真实的延迟照明。由于我在渲染场景后渲染灯光,因此如果有对象(如树)阻碍了照明区域,我需要一种方法来剔除照明计算。在阅读了一些内容之后,我认为延迟渲染的最佳选择是使用深度缓冲区。我一直在互联网上搜索2D图形深度缓冲区的方法,但没有找到任何有用的方法。我找到了glPolygonOffset,但我真的不知道这是否是我想要的,或者是否有其他方法为多边形设置z值。感谢您的帮助您的错误观念在于思考“3D==透视”。要生成深度缓冲区,场景需要深度。但这没问题。你所说的“2D”可能仅

我正在做一个2D游戏,里面有真实的延迟照明。由于我在渲染场景后渲染灯光,因此如果有对象(如树)阻碍了照明区域,我需要一种方法来剔除照明计算。在阅读了一些内容之后,我认为延迟渲染的最佳选择是使用深度缓冲区。我一直在互联网上搜索2D图形深度缓冲区的方法,但没有找到任何有用的方法。我找到了
glPolygonOffset
,但我真的不知道这是否是我想要的,或者是否有其他方法为多边形设置z值。感谢您的帮助

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

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

通过调整多边形的z坐标?他的意思是,无论z值是多少,它都不会改变外观,因为没有透视。你可以把东西移到屏幕上更远的地方,或者移到离相机更近的地方,只要在两个方向上都不太远,它就会看起来一样。而“太远”则意味着超出了可以设置边界的观看剪辑体积。与透视投影不同,在正交投影中,深度值线性地依赖于Z。通过调整多边形的Z坐标?他的意思是,无论Z值是什么,它都不会改变外观,因为没有透视。你可以把东西移到屏幕上更远的地方,或者移到离相机更近的地方,只要在两个方向上都不太远,它就会看起来一样。而“太远”则意味着超出了可以设置边界的观看剪辑体积。与透视投影不同,在正交投影中,深度值与Z成线性关系。