美文网首页
镜面反射矩阵的推导

镜面反射矩阵的推导

作者: 光棍狗没有可持续发展 | 来源:发表于2018-08-16 11:27 被阅读0次

镜面反射是以镜面作为反射平面,实物与反射物到反射平面的距离相等,实物与反射物方向相反,所以,反射矩阵由反射平面确定,根据反射平面先推导出反射位置,再进行旋转即可得到反射矩阵。
反射位置:

b00c349b033b5bb56e0f044b31d3d539b700bc67.jpg
aca3033b5bb5c9eabd2b2756d239b6003bf3b367.jpg
反射方向:
9b035bb5c9ea15ce9f36c4bcb1003af33b87b267.jpg
c38dc9ea15ce36d37fdca7853df33a87e850b167.jpg
第二点是根据投影向量获得
U_proj_on_V_readme.JPG
n向量是单位向量所以投影向量公式的分母可以去掉。
M1M2即得到反射矩阵。
static Matrix4x4 CalculateReflectionMatrix (Matrix4x4 reflectionMat, Vector4 plane)
{
reflectionMat.m00 = (1.0F - 2.0F
plane[0]plane[0]);
reflectionMat.m01 = ( - 2.0F
plane[0]plane[1]);
reflectionMat.m02 = ( - 2.0F
plane[0]plane[2]);
reflectionMat.m03 = ( - 2.0F
plane[3]*plane[0]);
    reflectionMat.m10 = (   - 2.0F*plane[1]*plane[0]);
    reflectionMat.m11 = (1.0F - 2.0F*plane[1]*plane[1]);
    reflectionMat.m12 = (   - 2.0F*plane[1]*plane[2]);
    reflectionMat.m13 = (   - 2.0F*plane[3]*plane[1]);

    reflectionMat.m20 = (   - 2.0F*plane[2]*plane[0]);
    reflectionMat.m21 = (   - 2.0F*plane[2]*plane[1]);
    reflectionMat.m22 = (1.0F - 2.0F*plane[2]*plane[2]);
    reflectionMat.m23 = (   - 2.0F*plane[3]*plane[2]);

    reflectionMat.m30 = 0.0F;
    reflectionMat.m31 = 0.0F;
    reflectionMat.m32 = 0.0F;
    reflectionMat.m33 = 1.0F;
    
    return reflectionMat;
}

其中代码中4维数组plane存的是点法线式平面方程的参数。

相关文章

  • 镜面反射矩阵的推导

    镜面反射是以镜面作为反射平面,实物与反射物到反射平面的距离相等,实物与反射物方向相反,所以,反射矩阵由反射平面确定...

  • Jensen不等式

    (hessan矩阵是根据泰勒公式推导)

  • 镜面反射的倾斜矩阵

    镜面反射使用倾斜矩阵,是为了解决在反射面下面的物体也会被渲染到反射面上的bug。 解决的办法是把反射平面作为反射相...

  • 多元logistic回归矩阵推导

    网上的文章很少多元logistic回归的矩阵推导, 这里写一下我的推导, 欢迎交流.

  • 投影矩阵推导

    1、正交投影 上图就是unity中的摄像机,把摄像机设置为正交投影,我们可以在inspector界面调整clipp...

  • BLOSUM矩阵的推导

    BLOSUM62是应用得最广的氨基酸替换矩阵,是BLAST中蛋白质序列比对的默认矩阵。 1. 如何下载替换计分矩阵...

  • 20180316周五~技术收获

    python的字典,集合,列表,能用推导就用推导 list能用切片就用切片 线性代数,向量是对象,矩阵是变换,是坐...

  • 2017-09-26

    单纯通过推导,就能够得出对称矩阵的特征向量正交——数学,确实神奇。

  • 第2章 序列联配

    1.BLOSUM矩阵的推导 - 简书 (jianshu.com)[https://www.jianshu.com/...

  • 使用opencl

    标签: python opencl 矩阵乘法   对于以下是一个常见的线性方程组,  用矩阵表示就是:  推导出矩...

网友评论

      本文标题:镜面反射矩阵的推导

      本文链接:https://www.haomeiwen.com/subject/xbrwbftx.html