我从场景中收集深度缓冲区。然而,我注意到当相机和场景的对象保持在同一位置并且相机只旋转时,深度缓冲区会收集不同的结果,例如,屏幕侧面显示的对象与中间显示的对象具有不同的深度。这可能是 OpenGL 的一个特性,但即便如此,我该如何纠正呢?要考虑什么?
我用以下函数线性化我的深度:
float linearize(float depth) {
float zNear = 0.1;
float zFar = 100.0;
return (2.0 * zNear) / (zFar + zNear - depth * (zFar - zNear));
}
我检查了他们应该没问题的近值和远值。