在整个图形学领域,空间中的物体都是由基本的Shape构成的,比如基本的几何形体:Sphere、Box;或者能够达成更加复杂表现的Mesh等。这一章主要讲述了几种不同的形体的定义和相关计算。
形体基类
PBRT
使用Shape
类来为所有形体创建了一个基类,reverseOrientation
用来决定图形的法线是否翻转(用来确定图形的内、外)。
对于每个形体有如下的基础函数和解释:
1 | virtual Bounds3f ObjectBound() const = 0; |
在整个图形学领域,空间中的物体都是由基本的Shape构成的,比如基本的几何形体:Sphere、Box;或者能够达成更加复杂表现的Mesh等。这一章主要讲述了几种不同的形体的定义和相关计算。
PBRT
使用Shape
类来为所有形体创建了一个基类,reverseOrientation
用来决定图形的法线是否翻转(用来确定图形的内、外)。
对于每个形体有如下的基础函数和解释:
1 | virtual Bounds3f ObjectBound() const = 0; |
PBR读书笔记一:Geometry & Transformation
这会是一个持续更新的系列,用来记录我在阅读《Physically Based Rendering》的一些读书心得和brief。
之前玩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}\]