OpenGL 中的深度缓冲区是精确的 Z 值还是 X^2+Y^2+Z^2?
Is the Depth buffer in OpenGL the exact Z-values or X^2+Y^2+Z^2?
OpenGL中的depth-buffer内容与什么有关?
它们是 Z 值还是眼睛的实际深度值(即 sqrt(X2+Y2+Z2))?
OpenGL 中的深度缓冲区存储每个像素的 window-space z
值。
Window-space 深度与眼睛-space 深度非常不同。要从 eye-space 到 window-space,您必须应用投影、透视划分和视口变换。
最后一个细节可能是最重要的。经过投影和透视分割后,你的视域可见深度范围为[-1.0,1.0]。 default 深度范围将这些坐标偏置并缩放到 [0.0、1.0] 范围内,即深度缓冲区存储什么。
您描述为 “实际深度值” 的是 3D 中的欧氏距离 space。这通常不是人们在谈论深度时所讨论的内容。深度是沿 Z 轴的距离度量。
OpenGL中的depth-buffer内容与什么有关? 它们是 Z 值还是眼睛的实际深度值(即 sqrt(X2+Y2+Z2))?
OpenGL 中的深度缓冲区存储每个像素的 window-space z
值。
Window-space 深度与眼睛-space 深度非常不同。要从 eye-space 到 window-space,您必须应用投影、透视划分和视口变换。
最后一个细节可能是最重要的。经过投影和透视分割后,你的视域可见深度范围为[-1.0,1.0]。 default 深度范围将这些坐标偏置并缩放到 [0.0、1.0] 范围内,即深度缓冲区存储什么。
您描述为 “实际深度值” 的是 3D 中的欧氏距离 space。这通常不是人们在谈论深度时所讨论的内容。深度是沿 Z 轴的距离度量。