准备学习有关3D的基础知识及原理。故买了一本《3D数学基础:图形与游戏开发》来看看,以下为看此书的一些随笔。
先来看一下什么是3D数学,3D数学是一门和计算几何相关的学科,计算几何是研究用数值方法解决几何问题的学科。在计算机方面的用途是用来模拟3D世界的领域,如图形学,游戏等。
笛卡尔坐标系
3D数学讲解如何在3D空间中精确度量位置、距离和角度,其中使用最广泛的度量体系是笛卡尔坐标系。笛卡尔坐标系可分2D和3D的,在3D中有两种完全不同的坐标系:左手坐标系和右手坐标系,左手坐标系是X轴向右,Y轴向上,Z轴向前,右手坐标系的Z轴正好相反,是指向“自己”的,在计算机中通常使用的是左手坐标系,而数学中则通常使用右手坐标系。
多坐标系
游戏和图形开发中常用的坐标系有:世界坐标系、物体坐标系、摄像机坐标系、惯性坐标系。
世界坐标系是描述其它坐标系所需要的参考框架,只能用世界坐标系描述其他坐标系的位置,不能用更大的,外部的坐标系来描述世界坐标系。
关于世界坐标系的的典型问题都是关于初始位置和环境的,如:
1、每个物体的位置和方向。
2、摄像机的位置和方向。
3、世界的每一点的地形是什么。
4。各物体从哪里来,到哪里去。
物体坐标系是和特定物体相关的坐标系。每个物体都有它们独立的坐标系。
在物体坐标系中可能会遇到的问题:
1、周围有需要互相作用的物体吗?(我要攻击它吗?)
2、哪个方向,在我前面吗?我左边一点?(我应该射击还是转身就跑)
摄像机坐标系是和观察者密切相关的坐标系。是一种特殊的“物体”坐标系。
典型问题:
1、3D空间中的给定点在摄像机前方吗?
2、3D空间中的给定点在屏幕上还是超出了边界?
3、某个物体是否在屏幕上?部分还是全部在?
4、两个物体谁在前面?(可见性检测,深度排序)
惯性坐标系是为了简化世界坐标系到物体坐标系的转换。从物体坐标系到惯性坐标系只需旋转,从惯性坐标系到世界坐标系只需平移。
嵌套坐标系同样为了简化物体在世界坐标系中位置,如一个物体坐标系嵌套一个头部坐标系,则头部坐标系可以只与物体坐标系联系,简化操作。
坐标系转换,应用矩阵表示,一切操作如物体的旋转、平移过程等都可以用矩阵(4*4齐次空间矩阵)来表示。
今天就写到这吧。