Abstract
上一節:從正交到透視
用相機變換來移動視角;另外本文将應用 Gouraud Shading高洛德着色(回憶之前的代碼,
光照是基于Flat Shading,而紋理插值是Gouraud Shading)。
另外,通常也把相機變換(Camera Transfomation)叫做(View Transfomation)。
Reference :
- https://github.com/ssloy/tinyrenderer/wiki/Lesson-5-Moving-the-camera
我在淺談線性變換此文中的“三維坐标系坐标空間轉換”小節詳細讨論了三維空間坐标空間互相轉換的技術。當應用到相機變換時,隻需構造屬于相機的 \(\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}\) 放入文中算出的矩陣即可得到相應相機變換矩陣。
渲染
現在可以自由切換視角了
