PBR读书笔记一:Geometry & Transformation
这会是一个持续更新的系列,用来记录我在阅读《Physically Based Rendering》的一些读书心得和brief。
四元数 Quaternions
之前玩Unity的时候就有过使用四元数的经历,当时还不太明白万向锁和四元数的本质,看了这一章之后遍会有更加深入的体会。
四元数发明的初衷是对于复数的拓展,\(q=(x,y,z,w)=w+x\vec i+y\vec j+z\vec k\),ijk四个量的乘法运算是非交换的。与此同时,\(q=(q_{xyz}, w)\),因此对两个四元数做点乘,两个分量:
\[(q\cdot q')_{xyz} = q_{xyz}\times q'_{xyz} + q_wq'_{xyz} + q'_wq_{xyz}\]
\[(q\cdot q')_{w} = q_w\cdot q'_w - (q_{xyz}\cdot q'_{xyz})\]
定义单位四元数\(x^2+y^2+z^2+w^2=1\),同时很重要的,在三维空间中,点\(p\)绕着一个单位轴\(\vec v\)进行\(2\theta\)的旋转,可以通过四元数\(q = (\vec v\sin\theta, \cos\theta)\)实现:
\[p' = qpq^{-1}\]
其中对于四元数\(q=(\vec v, w)\),求其共轭四元数:\(Q^*=(-\vec v, w)\),而对应的其逆\(q^{-1}=\frac{Q^*}{|q|}\)
接下来还有四元数插值的部分,但是主要目的不在这里,就先略过了(animation相关)。
看了一圈,这一章比较陌生的知识差不多结束了。
PBR读书笔记一:Geometry & Transformation
https://hyiker.github.io/2021/12/24/PBR读书笔记一:Geometry-Transformation/