Unity3d 游戏数学基础 未完结

4x4齐次坐标 (摘自《3D数学基础:图形与游戏开发》)

为了理解标准3D坐标是怎样扩展到4D坐标的,让我们先看一下2D中的齐次坐标,它的形式为(x, y, w)。想象在3D中w=1处的标准2D平面,实际的2D点(x,y)用齐次坐标表示为(x,y,1),对于那些不在w=1平面上的点,则次它们投影到w=1平面上。所以齐次坐标(x,y,w)映射的实际2D点为(x/w, y/w)。
因此,给定一个2D点(x,y),齐次空间中有无数多个点与之对应。所有点的形式都为(kx, ky, k), k != 0。这些点构成一条穿过齐次原点的直线。
当w=0除,除法未定义。因此不存在实际的2D点。然而,可以将2D齐次点(x,y,0)解释为“位于无穷远的点”,它描述了一个方向而不是一个位置。
4D坐标的基本思想相同。实际的3D点能被认为是在4D中w=1“平面”上。4D点形式为(x,y,z,w),将4D点投影到这个“平面”上得到相应的实际3D点(x/w, y/w, z/w)。w=0时,4D点表示“无限远点“,它描述了一个方向而不是一个位置。

叉乘运算

Result = a x b = |a| * |b| sin0
左手坐标系,将拇指朝向a的方向,食指指向b的方向,则中指指向为方向为叉乘结果的方向
右手坐标系,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。

矩阵

平移矩阵
T(p) = | 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |
| px py pz 1 |

旋旋矩阵

绽放矩阵
S(p) = | px 0 0 0 |
| 0 py 0 0 |
| 0 0 pz 0 |
| 0 0 0 1 |

四元数
包含一个标量分量和一个三维向量分量,四元数Q可以记作:
Q = [w, (x,y,z)]
在3D数学中使用单位四元数来表示旋转,对于三维空间中旋转抽为n,旋转角度为a的旋转,如果用四元数表示,四个分量分别为:
w = cos( a/2 )
x = sin( a/2 ) cos (bx)
y = sin( a/2 ) cos (by)
z = sin( a/2 ) cos (bz);
其中cos(bx)、cos (by) 、cos (bz)分别为旋转轴的x,y,z分量

-欧拉角矩阵四元数
旋转一个位置点不支持支持不支持
增量旋转不支持支持,速度慢支持,速度快
平滑插值支持基本不支持支持
内存占用3个数值16个数值4个数值
表达是否唯一无数种组合唯一互为负的两种表示
可能会遇到的问题万向锁矩阵蠕变误差累积导致非法
本人资源全部免费,更多资源请查看我的上传资源 ====================================================== 书 名:3D数学基础:图形与游戏开发 作 者:[美] 邓恩(Dunn F.),[美] 帕贝利(Parberry I.) 著;史银雪,陈洪,王荣静 译 出 版 社: 清华大学出版社 出版时间:2005-07-01 ISBN:9787302109464 纸书页数:380页 定 价:¥ 42.00 内容简介:《3D数学基础:图形与游戏开发》专业培训机构指定教学参考书,多家游戏开发企业共同推荐,游戏业界,探索游戏开发背后的核心秘密。《3D数学基础:图形与游戏开发》主要介绍了基本的3D数学概念,这对电脑游戏开发人员和编程人员来说尤为重要。作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于实践的C++类,并且在每章结尾处提供练习。《3D数学基础:图形与游戏开发》介绍了基础概念,如向量、坐标空间、矩阵、变换、欧拉角、齐次坐标空间、几何图元、相交性检测和三角网格。 作者简介:Fletcher Dunn,是著名游戏开发公司Terminal Reality的主要开发人员,所参与开发的游戏包括《4×4DVO 2)、《夜曲》(Noturne),并且是《吸血莱恩》(BloodRayne)的主要负责人。他所开发的游戏遍及家用PC机的Windows、Machintosh、Dreamcast、PSⅡ、Xbox和GameCube几种主流平台。   Ian Parberry,是北德克萨斯大学计算机科学系的教授,在国际上被公认为是教授DirectX游戏开发的专家之一。 编辑推荐:《3D数学基础:图形与游戏开发》主要研究隐藏在3D几何世界背后的数学问题。涵盖了理论知识和C++实现代码。理论部分解释3D中数学和几何之间的关系,列出的技巧与公式可以当做参考手册以方便查找。实现部分演示了怎样用代码来实现这些理论概念。读者论论了3D中的方位,包括四元数和对不同表示技术之间的优劣比较。   描述了数学和几何的实际应用示例,提供了一些C++类和不同的矩阵类,每个类都完成特定的几何任务。   所有基本变换矩阵的完整来历。      专门用Python讲解计算机视觉编程 目录 第1章 简介 1.1 什么是3D数学 1.2 为什么选择本书 1.3 阅读本书需要的基础知识 1.4 概览 第2章 笛卡尔坐标系统 2.1 1D数学 2.2 2D笛卡尔数学 2.3 从2D到3D 2.4 练习 第3章 多坐标系 3.1 为什么要使用多坐标系 3.2 一些有用的坐标系 3.3 嵌套式坐标系 3.4 描述坐标系 3.5 坐标系转换 3.6 练习 第4章 向量 4.1 向量——数学定义 4.2 向量——几何定义 4.3 向量与点 4.4 练习 第5章 向量运算 5.1 线性代数与几何 5.2 符号约定 5.3 零向量 5.4 负向量 5.5 向量大小(长度或模) 5.6 标量与向量的乘法 5.7 标准化向量 5.8 向量的加法和减法 5.9 距离公式 5.10 向量点乘 5.11 向量叉乘 5.12 线性代数公式 5.13 练习 第6章 3D向量类 …… 第7章 矩阵 第8章 矩阵和线性变换 第9章 矩阵的更多知识 第10章 3D中的方位与角位移 第11章 C++实现 第12章 几何图元 第13章 几何检测 第14章 三角网络 第15章 图形数学 第16章 可见性检测 第17章 后记 附录A 简单的数学概念 附录B 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值