Github TinyRenderer渲染器课程实践记录: 移动摄像机 / 相机变换

Abstract

上一节:从正交到透视

用相机变换来移动视角;另外本文将应用 Gouraud Shading高洛德着色(回忆之前的代码,
光照是基于Flat Shading,而纹理插值是Gouraud Shading)。

另外,通常也把相机变换(Camera Transfomation)叫做(View Transfomation)。

Reference :


我在浅谈线性变换此文中的“三维坐标系坐标空间转换”小节详细讨论了三维空间坐标空间互相转换的技术。当应用到相机变换时,只需构造属于相机的 \(\bf{uvw}\) 坐标系就可以了。


现在规定相机注释的方向向量为 \(\bf{g}\),相机朝天的向量为 \(\bf{t}\)。由于相机的 \(\bf{uvw}\) 系同为右手系,则 \(\bf{w}\) 应为注视方向的反方向。

则有:

  • \(\bf{w} = -\bf{g}\)

  • \(\bf{u} = \bf{t}.\tt{cross}(\bf{w})\)

  • \(\bf{v} = \bf{w}.\tt{cross}(\bf{u})\)

再将算好的 \(\bf{uvw}\) 放入文中算出的矩阵即可得到相应相机变换矩阵。


渲染

现在可以自由切换视角了

posted @ 2021-03-15 09:42  elexenon  阅读(321)  评论(0编辑  收藏  举报