首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们怎么知道一条射线是否把一个三角形相交成百万分之一的三角形?

我们怎么知道一条射线是否把一个三角形相交成百万分之一的三角形?
EN

Computer Graphics用户
提问于 2020-11-04 03:31:36
回答 1查看 147关注 0票数 3

我上了一门关于射线平面交点的课:https://www.khanacademy.org/computing/pixar/rendering/rendering-2/v/rendering-5

假设我们在现场拍摄了一条射线,这个场景包含了数百万个三角形。我们怎么知道射线是否与其中一个三角形相交?如果它与射线相交,我们会对这个数百万的三角形进行检查吗?那就太低效了!!

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2020-11-04 08:58:57

如果你想知道所有被射线击中的三角形,你必须检查所有的三角形。然而,这并不意味着您必须检查每一个单独。通常,您在场景中应用某种空间分割,并将包围体积层次中的相关对象分组。然后它变得更有效率,因为你可以用一次检查掉多个三角形。

例如,考虑一个矩形区域的场景。您可以将此区域细分为10x10网格。现在检查网格的哪些部分被光线击中。位于网格单元格中的所有未被光线击中的对象都可以被丢弃,您只需要检查其余的对象。现在假设其中一个被击中的物体是人类。在测试单个三角形之前,通过检查受影响区域的包围体积层次,在多个子步骤中缩小受影响区域。层次结构的遍历可能如下所示:上半身击->、左臂击、->手击、->拇指命中。因此,通过4次检查,您可以丢弃不属于拇指的人类网格中的所有三角形。

如果您只想找到第一个被光线击中的三角形,那么在执行详细的测试之前,您还可以按距离对所有命中单元格和对象进行排序。然后在最近的对象开始检查,然后继续,直到第一次命中为止。

票数 3
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/10367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档