视锥剔除

[3D图形学]视锥剔除入门(翻译)

允我心安 提交于 2021-02-12 22:32:25
原文: http://www.flipcode.com/archives/Frustum_Culling.shtml 时至今日,许多刚刚下海的3D引擎程序员仍不了解视锥剔除(Frustum Culling)的重要性和益处,这让我和我的小伙伴们感到很震♂惊.我在Flipcode的论坛中发现尽管网络上有海量的相关资料,仍有许多人提出对视锥剔除实现的问题.因此我决定撰写这篇文档,简单描绘出我现在所使用的四叉树剔除引擎(Quad-tree Culled Engine)的工作方式.诚然,市面上有许多种成熟且高效的视锥剔除算法,但我认为这个算法足以用来学习视锥剔除的理论基础.在正式开始前我还想说明一件事,以前我一直把Frustum(平截头体)打成Frustrum(截头锥),为此我没少被论坛上的人喷.在这里我承认Frustum是正确的拼写.对那些以前被我冒犯的人我表示抱歉...你们这群吹毛求疵的傻[哔-]... 大多数人已经知道什么是视锥剔除了(译者:如果你是手滑误点进来的...视锥剔除是一个图形渲染前的步骤,用于剔除掉不需要绘制的部分).视锥(准确说是平截头体Frustum)的形状酷似一个塔尖被削平了的金字塔,更准确地说,是一个四棱锥的顶点偏下位置被一个裁面(Clipping Plane,见图1)裁断.事实上,视锥本身就是由6个面所组成.这6个面被称为近裁面,远裁面,上裁面,下裁面,左裁面