Direct3D基础(顶点坐标变换)
开始的话:顶点坐标变换时Direct3D学习中的入门基础,在这里将详述其原理: Direct3D中渲染三维对象的过程分为两个阶段:《1》T&L(Transforming and Lighting),即坐标变换和光照; 《2》光栅化处理阶段。 一,T&L流水线: 如下图: 1,世界变换和世界坐标系( 局部坐标变为世界坐标 ): 物体在三维空间中的变形和运动的过程称为世界变换(平移,旋转,缩放),这个三维空间就是世界空间,其坐标系就是三维坐标系 世界变换 事实上就是将物体顶点从模型空间转换到世界空间中,模型空间其实就是在三维设计软件(如3DSMAX)中为物体设定的坐标系,也称局部坐标系。而世界坐标则是所有物体都是用同一个世界坐标原点的坐标系,变换就是指对模型进行平移,旋转,缩放及它们的任意组合变换。 使用以下公式对点P1进行世界变换。 P2(X,Y,Z,1)= dot( P1(X,Y,Z,1), M ) M 为世界变幻矩阵,它实现物体的平移,旋转,缩放,dot为点乘,P2为变换后的坐标,p1为变换前的坐标。 以下为实现世界坐标矩阵变换的DirectX代码(C++): D3DXMATRIX matWorld; // 世界变换矩阵 D3DXMATRIX matTranlate,matRotation,matScale; // 变换矩阵,旋转矩阵,缩放矩阵 D3DX