第二节:3D Graphics Fundamentals三维图形学基础 这一节你将学到: * 眼睛是怎样看到三维的物体的? * 二维的图像怎样能有三维的样子? * 笛卡尔坐标系中是怎样确定物体的位置的? * 裁剪量是什么? * 视口影响图像的维数? * 三维的物体是怎样从二维的物体得到的? * 正视投影和透视投影是怎样工作的? 在开始具体学习使用OPENGL建立三维的图形之前,我们将花一点时间来建立一些3D词汇的概念。这样你就会有了一些3D图形学和坐标系统的概念。你将会知道在2D平的电脑显示器上怎样显示3D的图形。对于已经具有3D图形学知识的读者可以跳过此节并进入下一节:使用OpenGL。 理解三维(3D) 三维的计算机图形实际上是用深度或一个“第三维” 来在二维的显示器上显示出三维的效果。为了真正的看到三维,你用二个眼睛看一个物体或给每个眼睛提供物体独立的特别的图像。看一下图2-1。每只眼睛收到的是一个二维的图像,就像你的视网膜上的那个暂时的像。这两个图像是不同的,因为它们是在不同的角度下收到的。然后大脑就把这两个不同的图像处理成三维的图片,如图2-1所示。 图2-1:眼睛是怎样看三维物体的 在图2-1中,两个图像之间的夹角θ [theta]随着物体的越来越远而越来越小。这种三维的效果可以通过增加两个图像间的夹角来加强。Viewmasters和3D电影以此效果为资本通过给你的每个眼睛加一个隐形眼镜来实现(eryar:我记得好像是偏振片吧!),或提供滤镜来分开两个图像。这些图像因为戏剧和电影的目的而强化了。 因此,当你盖住一只眼时会发生什么呢?你可能会想你仍然可以看到三维的呀!试试这个试验吧:放一个玻璃杯或其它的一些东西刚好在你能够得着的范围外,在左手边哟?然后用你的右手盖住你的右眼,然后用左手去够那个杯子。(或许你该用一个空的塑料杯子)你会注意到你在够杯子时估计那个杯子的距离上产生了困难。现在拿开你的右手,再去够那杯子,你将会很容易的知道够那个杯子的具体位置。这就是失去一只眼睛的人通常距离感差的原因。 二维2D+透视=三维3D 世界并没有因为你盖住了一只眼就突然变得平坦,因为三维世界中的许多效果通常也出现在二维世界中。这是因为你的大脑的感受深度的能力。最有力的证明就是近处的物体比远处的物体看起来要大一些。这就是透视。透视加上颜色的改变,材质、灯光、阴影、及各种颜色的强度(因为灯光)一起构成了我们三维的图像。 透视来表现三维已经足够。图2-2表示了一个简单的立方体的线框...