【问题标题】:How should Z value be compared with depth value?Z值应该如何与深度值进行比较?
【发布时间】:2016-02-24 21:32:49
【问题描述】:

我想知道是否在坐标 (xyz) 之前绘制了不同的模型。
它不适用于深度值的 Z 值比较和我进行世界更改的坐标。

Z值好像在near=0,far=1被归一化了,但是depth值好像让View frustum 1中的视点画在最里面。

当我将一个较远的平面移动到一个较远的地方时,Z 值减小了,但深度值没有改变。

谢谢。

【问题讨论】:

    标签: opengl


    【解决方案1】:

    我不确定我是否正确理解了您的问题,但我会做出猜测并提供答案。如果这不是您所要求的,请提前道歉。在 OpenGL 中,您需要了解视锥体是什么。在其中,您有一个 x 和 y 坐标以及一个深度值。深度值表示绘制的对象(像素)离您的眼睛有多远。这样您就可以避免背景中的对象混淆更接近的对象,从而更真实地表示现实。您还有剪裁平面、近剪裁平面和远剪裁平面。任何比 nera 剪裁平面更近的东西都不会被绘制,任何比 far 剪裁平面更远的东西都不会被绘制。例如,如果我正在从太空中绘制地球的图像。我知道我不必理会地球另一端的任何东西,只需将其剪掉即可,从而加快速度。通常,近剪裁平面设置为 z=0,远剪裁平面设置为 depth=1。然后,这个间隔被细分(取决于你的深度缓冲区),OpenGL,如前所述,将把每个像素放在每个插槽中,并决定什么更接近你的眼睛,什么不是(在从眼睛到像素的同一条线上x,y)。如果您在 3D 中并且有 x、y、z,场景中的 z 值将与深度值的值不匹配,您需要使用视图矩阵来正确映射。

    希望这对一些人有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-12-20
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2021-04-24
      相关资源
      最近更新 更多