创建一个Matrix3d矩阵,用于转换锥体周围的vector3d

时间:2012-12-04 22:57:31

标签: graphics raytracing

我正在尝试制作分布式递归光线跟踪器。我有一个Vector3d对象(代表完美/理想的反射),我想在它上面创建一个随机变换,这样我就可以获得从原始向量偏移一个角度的新向量。

这样的排序: enter image description here

我认为正确的方法是以某种方式将矢量投影到X轴,沿y轴旋转随机角度,然后沿x轴旋转,然后进行反投影。我不确定这些转换的矩阵是什么。

(基本上,我想创建与OpenGL的glRotated()相同的矩阵,而无需手动输入矩阵中每个元素的巨大公式)

谢谢!

1 个答案:

答案 0 :(得分:0)

偶然发现了Rodrigues' rotation formula,这可能提供了一种更简单的计算矩阵的方法。维基百科说,它消除了对矩阵指数的需要,这听起来令人印象深刻。

其他三种方法是here。使用四元数的那个似乎具有最少符号的优点(?)。