想不到自己会去搞c#,XNA,3D,这都没接触过的东西。零散散看了一些网上的教材,感觉还是看书来得实在;那么就先记录下来,待买过书阅读后,再来重温修正这里的文字。
想象一下空间,就是我们存在的3D空间,想象某一点就是的定义的原点(0,0,0)Vector3.Zero,我们要观察的物体在(x,y,z),我们的摄像机camera在(x1,y1,z1),那么想要我们的物体在摄像机里旋转,很直观的有2种方法,要么转动物体,要么转动摄像机;那么要怎么转呢?
这里有个概念,就是matrix矩阵,是一个工具,我们用它来保存信息位置,方向,角度。这里有3个matrix,world,view,projection;
1. world 就是物体在世界坐标中的位置方位,就是个个顶点相对原点的偏移的集合
2. view 就是我们观察物体近切面和远切面之间的锥形空间
3. projection ,可以想象成就是我们的屏幕,是view 锥形空间在屏幕的投影
转动物体就是改变world,转动物体后个个顶点的坐标肯定要变。
转动相机,就是改变view,很灵活哦,相机在3维空间的移动,实际就是计算相机在空间里的运动轨迹,立体几何知识啦
一个XNA程序分几个阶段
初始化,加载素材,更新,绘画,卸载。
有关逻辑放到Update里去,而Draw里要尽量只放有关绘图的代码
当然可能有误,待日后修正
用照相机进行拍摄的步骤:
1. 把相机固定在三脚架上,并让它对准场景(视图变换)
2. 对场景进行安排, 使物体在照片中的位置是我们所希望的(模型变换)
3. 选择相机镜头,并调整放大倍数(投影变换)
4. 确定最终照片的大小。例如我们很可能需要把它放大(视口变换)