四元数及旋转有关证明

       四元数是用来表示旋转与方向的工具,它在 1843 年由 William Rowan Hanmilton 发明,作为复数的一个拓展被提出,直到 1985 年由 Shoemake 引入到计算机图形学中。四元数在许多方面都比欧拉角以及矩阵更优秀,在计算机图形学领域被广泛运用。任何三维方向都可以表达为一个绕特定轴的旋转,如果给定了轴和角度,可以非常直白地得到四元数,而欧拉角的转换就要复杂得多 […]

雅可比矩阵及应用

  雅可比矩阵   假设某函数 \mathbb{R}^n 需要映射到另一个空间 \mathbb{R}^m 中,雅克比矩阵就是从 \mathbb{R}^n 到 \mathbb{R}^m 的线性映射,其重要意义在于它表现出了多维对多维空间的一个最佳线性估计。因此,雅可比矩阵类似于单变量函数中的导数。事实上,在单变量函数中,导数就是 1\times 1 阶的雅可比矩阵。   注意,以下的推导的矩阵都是行 […]

浮点数误差分析及补偿

    在各种渲染引擎中使用浮点数几乎可以肯定一定会产生浮点数误差,而渲染引擎的大量计算量也不允许使用其他特别高精度的浮点数,因而需要一定程度的精度补偿。事实上,浮点数并不适合用于精确计算,而适合进行科学计算。 float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字; double […]

折射光线方向公式推导

    先给出结论:折射方向公式: t={η_1\over η_2}i+({η_1\over η_2}cos\theta_i-\sqrt{1-sin^2\theta_t})n  要注意的是,这个向量不是单位向量,使用前请自行单位化。   下面开始证明,根据 Snell 法则: {sin\theta_1 \over sin\theta_2}={η_2\over η_1}  下面设定一些常用 […]

计算机图形学中的数学知识

  计算机图形学需要的数学基础,取决于希望进入这个领域的深度。如果单纯使用现成的图形引擎或者编辑程序,几乎不需要太多专门的数学知识;如果想要系统学习计算机图形学,那么需要学习代数、三角函数和线性代数;如果需要成为图形学的研究者,那么就应该持续不懈地学习数学。计算机图形学一些领域并不太关心数学思想。但是,如果愿意学习新的数学思想,那么将会有更多选择的自由。  &emsp […]

图形学中的辐射度

    写在前面   光线追踪中最基础的部分是光线的传播和反射(一般把表面双向透射分布函数[BTDF]和双向反射分布函数[BRDF]统一处理为 BSDF,即双向散射分布函数),辐射度测量学则提供了相关数学概念,构成了基于物理渲染算法推导过程的基本内容。   本文使用和 PBRT 相同的左手系,即球坐标中 \phi 表示范围为 [0,2\p […]