Introduction to 3D Game Programming with DirectX 11学习笔记 1~3章
2017-02-16 15:31
579 查看
Direct3D使用所谓的左手坐标系(left-handed coordinate system)。假如你把左手手指指向x轴正方向,然后朝y轴正方向弯曲四指,大拇指就会指向z轴正方向。图1.5展示了左手坐标系和右手坐标系之间的区别。
左边是左手坐标系,z轴正方向向页面内部延伸。右边是右手坐标系,z轴正方向向页面外部延伸。
观察右手坐标系。假如你把右手手指指向x轴正方向,然后朝y轴正方向弯曲四指,大拇指就会指向z轴正方向。
1.(x,y,z,0)用于向量
2.(x,y,z,1)用于点
我们将会看到,把w设为1是为了让点的平移操作得到正确执行,把w设为0是为了防止向量在变换过程中发生平移。(我们不希望平移向量的坐标,因为向量可以改变的只有方向和大小——平移对向量来说没有意义。)
左边是左手坐标系,z轴正方向向页面内部延伸。右边是右手坐标系,z轴正方向向页面外部延伸。
观察右手坐标系。假如你把右手手指指向x轴正方向,然后朝y轴正方向弯曲四指,大拇指就会指向z轴正方向。
齐次坐标
因为向量只表示方向和长度,与位置无关,所以平移一个向量是无意义的,换句话说,平移后的向量是不变的。平移只能作用在点上(即,位置向量)。齐次坐标提供了一个便捷的表示方法用来统一处理点和向量。在齐次坐标中,我们使用4个元素,我们通过它的第4个坐标分量w来决定所描述的是一个点还是一个向量。确切地说,我们写为:1.(x,y,z,0)用于向量
2.(x,y,z,1)用于点
我们将会看到,把w设为1是为了让点的平移操作得到正确执行,把w设为0是为了防止向量在变换过程中发生平移。(我们不希望平移向量的坐标,因为向量可以改变的只有方向和大小——平移对向量来说没有意义。)
相关文章推荐
- Introduction to 3D Game Programming with DirectX 11学习笔记 4.2Direct3D进行初始化
- Introduction to 3D Game Programming with DirectX 11学习笔记 5 渲染管线(二)
- Introduction to 3D Game Programming with DirectX 11学习笔记 6 Direct3D中的绘制(三)像素着色器
- Introduction to 3D Game Programming with DirectX 11学习笔记 6 Direct3D中的绘制(四)渲染状态
- Introduction to 3D Game Programming with DirectX 11学习笔记 4.3 计时和动画
- Introduction to 3D Game Programming with DirectX 11学习笔记 6 Direct3D中的绘制(二)顶点着色器
- Introduction to 3D Game Programming with DirectX 11学习笔记 4.1 初识Direct3D
- Introduction to 3D Game Programming with DirectX 11学习笔记 5 渲染管线(一)
- Introduction to 3D Game Programming with DirectX 11学习笔记 5 渲染管线(三)
- Introduction to 3D Game Programming with DirectX 11学习笔记 4.4 演示程序框架
- Introduction to 3D Game Programming with DirectX 11学习笔记 6 Direct3D中的绘制(一)
- 学习《Introduction to 3D Game Programming with DirectX 11》
- 终于译完了《Introduction to 3D Game Programming with DirectX 11》
- DirectX10 学习1(摘录Introduction to 3D Game Programming with DirectX 10(中文版))
- 第一.Introduction to 3D Game Programming with DirectX 11介绍一
- Introduction to 3D Game Programming with DirectX 9.0
- 【DirectX 11 SDK 学习笔记】3D Transformation
- Advance 3D Game Programming With DirectX 10.0练习源代码
- 3D Game Programming for Kids 学习笔记
- Game Programming with DirectX -- 02[并非3D的3D]