首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于光线变换的光线追踪相交测试

基于光线变换的光线追踪相交测试
EN

Stack Overflow用户
提问于 2011-11-20 10:26:52
回答 1查看 1.1K关注 0票数 0

我正在尝试实现一个基本的光线跟踪器,它涉及到将每条光线变换到每个对象空间,并通过将仿射变换矩阵的逆矩阵与光线相乘来测试与仿射变形对象的交集。当对象旋转、缩放但不平移时,相交测试是正确的。当对象被平移(并且该对象应该仍然可见)时,交集测试失败,并且不显示任何对象。

EN

回答 1

Stack Overflow用户

发布于 2011-11-20 18:31:16

在应用转换时,操作的顺序很重要。以不同的顺序应用它们会得到不同的结果。

例如,假设您有一个中心位于(0,0,0)的长方体。现在旋转,然后平移长方体。旋转将相对于坐标系的原点发生。

如果你从平移长方体开始,假设是(1,0,0),然后进行旋转。长方体仍将相对于坐标系的中心旋转。但是,长方体现在在坐标系的中心位置变长了,因此它以弧形摆动。

This is a useful write-up about order of transformations

如果你已经知道了这一切,那么很抱歉。

我能做的另外一件事就是指引你到我的ray tracing project on github pvtrace的方向。它都是用Python编写的,您应该能够使用它来调试您的交叉点代码。If具有不同的基元形状,您也可以使用它们来应用变换。所有转换都是通过使用原语的append_transformation()方法来应用的。所有变换都是传递给此方法的4x4齐次矩阵。齐次矩阵本身是使用与源代码捆绑在一起的transformations.py构建的。

我希望这能有所帮助。

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

https://stackoverflow.com/questions/8198998

复制
相关文章

相似问题

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