【问题标题】:Depth buffer in 2D2D 深度缓冲
【发布时间】:2012-01-15 00:49:30
【问题描述】:

我正在开发一款具有逼真延迟光照的 2D 游戏。因为我是在渲染场景后渲染灯光,所以如果有物体(例如树)挡住了被照亮的区域,我需要一种方法来剔除光照计算。在做了一些阅读之后,我对延迟渲染的最佳选择是使用深度缓冲区。我一直在互联网上寻找具有 2D 图形的深度缓冲区的方法,但确实没有发现任何有用的东西。我找到了glPolygonOffset,但我真的不知道这是否是我想要的,或者是否有另一种方法可以为多边形设置 z 值。感谢您的帮助

【问题讨论】:

    标签: opengl zbuffer 2.5d


    【解决方案1】:

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

    【讨论】:

    • 通过调整多边形的z坐标?
    • 他的意思是,不管z值是多少,都不会因为没有透视而改变外观。您可以将物体移到屏幕更远或更靠近相机的位置,只要它在任一方向上都不太远,它就会看起来一样。
    • 而“太远”表示超出了查看剪辑体积,您可以设置其边界。与透视投影不同,在正交投影中,深度值线性地取决于 Z。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多