但是其中的原理文档中并未提及,本篇文章尝试简单讲解一下~
首先,我们要了解一下 Camera.projectionMatrix 这个矩阵的构成,简单起见,我们这里直接给出结论,有兴趣的朋友可以去看看完整的推导过程...(很好的一篇文章,目前似乎还没有译文,有时间自己来翻译一下):
Unity 中的 Camera.projectionMatrix 遵循 OpenGL 的规范约定,正常的透视投影情况下,该矩阵的构成如下:...,只有一个矩阵元素发生了变化(第一行第三列,即M[0, 2]),从之前的 000 变为了 s/rs/rs/r,而 s/rs/rs/r 这个数值表示的则是(水平)倾斜度:
s/r=0s/r = 0s/r=...,新的(斜)透视投影矩阵也仅有一个矩阵元素发生了变化(第二行第三列,即M[1, 2]),并且该元素的数值同样表示(垂直)倾斜度(s′/ts'/ts′/t)....综上,如果我们给定了 (水平)倾斜度 和 (垂直)倾斜度,只要据此改变原透视投影矩阵的两个元素(设置 第一行第三列,即M[0, 2] 为(水平)倾斜度,设置 第二行第三列,即M[1, 2] 为(垂直)倾斜度