深度缓存

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了深度缓存脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

在场景中有很多不同的物体,我想把这些物体都显示在屏幕上,一个很自然的想法就是我们先从最远处的物体开始画起,然后逐渐用近的物体进行覆盖。这种算法叫做画家算法。这也是油画的画家所做的。

深度缓存

在一定程度上,画家算法是没问题的。如果有 n 个三角形,算法复杂度为 O(n log n),因为基于最快的排序算法。

而如果是下面的三个三角形,它们两两之间都存在覆盖关系,就不可解了。

深度缓存

现在我们广泛采用的算法是 Z-Buffer,思路是既然我对空间中三角形的远近顺序不好排,而对每一个像素来说挺容易分析的,对于每一个像素,我考虑的是离我最近的距离。那么在生成这幅图像的同时,还会生成每一个像素它能看到的物体的最浅的深度的信息,我们管这幅图叫深度图或深度缓存。即最后获得 frame buffer 和 depth buffer,这两幅图总是同步生成的。

深度缓存

深度缓存示例:

深度缓存

Z-Buffer 算法流程:

深度缓存

深度缓存

因为我们并没有排序,所以 Z-Buffer 算法的复杂度为 O(n),对于 n 个三角形,每一个像素它只是得到最小值而已。

 

脚本宝典总结

以上是脚本宝典为你收集整理的深度缓存全部内容,希望文章能够帮你解决深度缓存所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: