软渲染器_基础知识
1、坐标系
笛卡尔坐标系是游戏程序员最常用的坐标系,它用两个或三个相互垂直的轴来描述二维和三维空间的位置。点可以由元组(x,y)和(x,y,z)表示,其中的各分量是指从原点沿各轴到点的距离。
图1 笛卡尔坐标系
在三维笛卡尔坐标系中,要安排三个相互垂直的轴,我们有两种选择:右手和左手。左右手坐标系的区别在于三个轴其中一轴的方向不同。
图2 左右手笛卡尔坐标系
2、向量
向量(vector)是指n维空间中包含模和方向的量,可以表示为有向线段,线段从起点指向终点。向量与标量比较,标量有模当没有方向。
2.1、向量运算
(1)向量v与标量s相乘,等于v中每个分量和s相乘,
sv = (svx,svy,svz)
(2)向量u与向量v点乘,等于u和v中每个对应分量乘积之和。
u·v = ux * vx + uy * vy + uz * vz
(3)向量u与向量v叉乘