请在3D图形编程中很好地解释Frustum扑杀。我需要学习3D (到目前为止还没有做过严肃的图形编程),而且我有点难理解手册中使用的一些术语,以及我正在使用的书籍。
我目前正在尝试阅读Java 3D API规范,因为书看起来就像这本书一样。
发布于 2012-06-21 00:17:05
如果你的相机是朝一个方向看的,我们称之为forwards.
解决方案:删除所有不在视野内、太近或太远的对象。包含区域的形状是一个'frustrum',你可以'culling‘所有不在里面的东西。
发布于 2012-06-21 02:29:56
“锥体”是3D场景的一个区域,在该区域之外将不会绘制任何内容。它是一个截断的金字塔,由4个边的屏幕的可见度限制和“近”和“远”可见度限制(通常垂直于观察方向)界定,这也由相机矩阵定义。
用3DAPI绘制的图形基元被裁剪到视图截体上:只会显示基元中位于截体内部的那部分。完全在锥体之外的基元将根本不会出现。
然而,即使你的图元没有出现在屏幕上,尝试绘制它也不是免费的:每个提交给硬件的图元都需要时间。而且,由于完全在锥体之外的基元根本不会出现,这是浪费时间。
因此,锥体剔除是一种初步的排序,可以是基元的排序,也可以是整个对象的排序(更具成本效益),以确定它们是否完全位于视图锥体之外。当确定某个对象或基本体位于锥体之外时,截体剔除完全不会尝试绘制它,从而节省时间。
https://stackoverflow.com/questions/11123677
复制相似问题