3D数学
文章平均质量分 83
凯奥斯
可能是最不会写注释的程序员。
展开
-
土圭垚㙓数学课(三)四元数
何为四元数?讲解四元数的文章往往会把四元数跟复数联系在一起。诚然,四元数的起源跟复数有关系,但是理解复数系统并不是理解四元数的必要条件。提到四元数,我们首先要提到一个人——莱昂哈德·欧拉(Leonhard Euler),根据欧拉旋转定理(wiki),在三维空间里,假设一个刚体在做一个位移的时候,刚体内部至少有一点固定不动,则此位移等价于一个绕着包含那固定点的固定轴的旋转。还有另外一种阐述:3D中的任意角位移都能表示为绕单一轴的单一旋转。原创 2017-09-11 20:57:34 · 3249 阅读 · 0 评论 -
土圭垚㙓数学课(二)视锥体八个顶点的计算方法
视锥体是摄像机可见的空间,看上去像截掉顶部的金字塔。视锥体由6个裁剪面围成,构成视锥体的4个侧面称为上左下右面,分别对应屏幕的四个边界。为了防止物体离摄像机过近,设置近切面,同时为了防止物体离摄像机太远而不可见,设置远切面。本文将介绍一下视锥体八个顶点的计算方法。原创 2017-09-07 21:02:49 · 4170 阅读 · 1 评论 -
土圭垚㙓数学课(一)万向锁(Gimbal Lock)
何为万向锁,我们先抛弃掉那些理论,直接举个栗子。以你自身为对象。首先,原地旋转为第一个维度,也就是heading。其次,正翻跟头为第二个维度,也就是pitch。然后,侧翻跟头为第三个维度,也就是bank。这就是欧拉角的三个旋转维度,这三个是有顺序的,首先是原地旋转,然后是正翻跟头,最后是侧翻跟头。当然这些都是没有位移的。假设你一开始是朝北站立,这就是你:原创 2017-09-06 09:52:33 · 3258 阅读 · 0 评论 -
土圭垚㙓数学课(四)空间变换
我曾经在Shader山下(十六)坐标空间与转换矩阵中介绍过,一个物体要显示在平面上,需要经过四步空间变换(实际上是五步): 物体空间->世界空间->观察空间->裁剪空间(->归一化设备空间)->屏幕空间 (差不多就是这个意思) 实际上,在可编程渲染管线中,我们往往只需要操作从物体空间到裁剪空间的转换,可以用一个矩阵链乘M(odel)V(iew)P(rojection)表示。本文就介绍一下原创 2017-10-09 14:42:53 · 4975 阅读 · 0 评论