繁体   English   中英

正投影中的OpenGL深度缓冲区

[英]OpenGL Depth buffer in orthographic projection

如果我在OpenGL中使用正投影,但仍为对象设置了不同的z值,那么它在深度缓冲区中仍然可见吗?

我的意思是,在颜色缓冲区中,所有内容看起来都是平淡无奇的。 但是,无论它们将在何处以不同的阴影“着色”? 深度缓冲区是否可以“理解”正投影中的深度?

深度缓冲区与投影矩阵无关。 简而言之,Z缓冲区会记录给定点处最接近的Z值。 绘制事物时,它将查看当前值。 如果新值小于现有值,则接受该值,并更新z缓冲区。 如果该值大于当前值之后的值,则将其丢弃。 深度缓冲区与颜色无关。 我认为您可能将深度测试混为一谈。

例如,假设您有两个四边形A和B。

Az =-1.0f;

Bz =-2.0f;

如果假设两个四边形在其Z值之外均具有相同的尺寸,则可以看到绘制两个四边形将是一种浪费。 由于四边形A在四边形B的前面,因此绘制四边形B是浪费的。深度缓冲区的作用是检查zcords。 在此示例中,如果启用了深度测试,则将永远不会绘制深度缓冲区四边形B,因为深度测试会显示它被四边形A遮挡了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM