美文网首页
镜面反射的倾斜矩阵

镜面反射的倾斜矩阵

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

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


QQ图片20180821170628.png

解决的办法是把反射平面作为反射相机的近裁剪面.


QQ图片20180821171216.png
最后可推导出公式:
QQ图片20180821171351.png

具体参考Mathematics for 3D Game Programming and Computer Graphics这本书。
对照4-0_AngryBots地面反射的实现方法:
static Matrix4x4 CalculateObliqueMatrix (Matrix4x4 projection, Vector4 clipPlane)
{
Vector4 q = projection.inverse * new Vector4(
sgn(clipPlane.x),
sgn(clipPlane.y),
1.0F,
1.0F
);
Vector4 c = clipPlane * (2.0F / (Vector4.Dot (clipPlane, q)));
// third row = clip plane - fourth row
projection[2] = c.x - projection[3];
projection[6] = c.y - projection[7];
projection[10] = c.z - projection[11];
projection[14] = c.w - projection[15];

    return projection;
}   

q的计算原理(不太看懂这个):


QQ图片20180821172958.png

根据公式来看,-2为什么突然变+2了?原来要结合(5.66)和(5.67)来看,Qz==M4.Q==(0,0,-1,0) . q(图片的大Q和方法的小q是一样的,这个小q是方法的小q),Qz就是等于-1,但是方法里面的q向量的z分量是1,所以只能再加个负号表示。
最后的矩阵第三行等于裁剪面减去矩阵第四行,具体在书里有说。

相关文章

  • 镜面反射的倾斜矩阵

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

  • 镜面反射矩阵的推导

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

  • CGAffineTransform

    CGAffineTransform用于绘制2D图形的仿射变换矩阵。 仿射变换矩阵用于旋转,缩放,平移或倾斜在图形上...

  • CSS3-2D变形

    简介 transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、倾斜、缩放,甚至支持矩阵方式,...

  • Android canvas平移 缩放 旋转 倾斜 切割 矩阵

    translate 平移后原点(0,0)坐标点的位置也会移动 scale 缩放 rotate 旋转 skew 倾斜...

  • 随笔 25

    我以镜面反射,映照自己的是非曲折。

  • 关于反射探头的实时反射

    用反射探头实现镜面反射 之前看到过一个日本人写的文章,关于如何使用Unity的反射探头来实现地板的镜面反射效果。 ...

  • 《镜面反射的光》

    上次,我隔壁的老奶奶在梳头,镜子放在外面忘记收。到了大中午,阳光照在镜子上,反射到我房子里,本来黑暗的角落,瞬间就...

  • 二、光照模型:7、环境光(镜面发射)

    一、简化版伪造镜面反射环境光 效果图:

  • [四百一十七首情诗]二百零四

    日子在倾斜,山岗在倾斜,草木在倾斜,海水在倾斜,天空在倾斜,意识在倾斜 一切在倾斜,倾斜出一个颠倒的世界 人类与爱...

网友评论

      本文标题:镜面反射的倾斜矩阵

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