daojin 发表于 2013-1-30 04:24:19

看图说话:OpenGL模型矩阵和投影矩阵

 本文的内容有:
1.控制观察角度和观察位置。
2.模型中不需要的部分从场景中裁剪出去。
3.熟练操控良好的矩阵栈,这些矩阵栈控制着模型转换,到屏幕的映射。
4.联合多个转换来模拟复杂的运动系统,例如:太阳系和一个关节手臂。
 
现在开始吧。
拿相机作比喻,相机就相当于电脑屏幕。相机的中心就在屏幕的中心。
 

http://dl.iteye.com/upload/attachment/596298/8c651839-65a4-35e0-a0a3-18a0ca80942c.gif

 2.渲染管线。投影阶段分为两个。实在是不解。
http://dl.iteye.com/upload/attachment/596300/15f35688-c10a-3333-a869-be25398f3665.gif
 3.令人惊讶的是矩阵竟然是按列来排列的。每一行代表的是一组基中的一维,估计是为了在使用一维数组时,跟向量通用。
http://dl.iteye.com/upload/attachment/596303/162c90a0-3b56-3fd2-9778-fd898336bcd7.gif
 4.让我感到更迷惑的是:函数调用
 glRotate
 glTranslate
的调用顺序与变换顺序是相反反的,左边的是先glTranslate glRotate
右边的才是 glRotate和glTranslate。
据说跟传说中的很奇怪的定律有关系(大学时候经常在此翻跟头):矩阵乘法不满足交换律。
http://dl.iteye.com/upload/attachment/596305/493d1464-e3f5-3d89-bc2a-1b3abb476bb8.gif
4.所有仿射变换的实质是【基】的变换,也就是坐标系的变换。
http://dl.iteye.com/upload/attachment/596308/3cf76f14-edfd-32c4-a6e4-51e41f1d2cad.gif
 
http://dl.iteye.com/upload/attachment/596310/745f2a1b-b36b-31e1-9199-f8d83a2edaca.gif
 
http://dl.iteye.com/upload/attachment/596312/a4a4c939-4dfb-32d8-a3f2-5a37e93bb6fb.gif
 

 5.“改变的不是人,而是风景”的真正含义。
glLookAt:
 原来屏幕里面还有很多东西,默认是看不到的。想看看现在的原点是什么样子?拿着相机向后移动near距离!可是,相机还是那个电脑屏幕!好吧,那我们把整个世界向后移动! 
http://dl.iteye.com/upload/attachment/596314/bd7d2a0e-2429-3618-892b-27214aeee0a7.gif
 
 
页: [1]
查看完整版本: 看图说话:OpenGL模型矩阵和投影矩阵