gpt4 book ai didi

3d - Bounding Box 非常大时的视锥体剔除

转载 作者:行者123 更新时间:2023-12-04 13:23:27 25 4
gpt4 key购买 nike

see

当边界框的所有 8 个顶点都在平截头体之外时,它不会被渲染。但是,如果某事发生如上所示。该对象应该在显示列表中。有什么想法吗?

最佳答案

因为您在计算交点时就好像盒子是一堆点,而不是一堆线。这就是我在伪代码中的做法:

inter = Inside
for ( plane : frustum ) {
verts[2] = findOpposingPointsMostPerpendicularToPlane( box, plane )
near = plane.signedDistance( verts[0] ) > 0.0
far = plane.signedDistance( verts[1] ) > 0.0

if ( !near && !far )
inter = Outside
break
else ( near ^ far )
inter = Intersecting
}

如果您的盒子是 AABB,您可以为 findOpposingPointsMostPerpendicularToPlane() 创建一个顶点索引的静态数组,然后使用平面法线分量的符号映射到它们。

关于3d - Bounding Box 非常大时的视锥体剔除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9187871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com