您好,欢迎访问三七文档
创建几何体游戏系圆柱体•要创建一个圆柱体我们需要指定它的分段数(iSegment),分段数越多,看起来就会越平滑(越接近圆)。另外还需要指定圆柱的高(height)和半径(R)。•圆柱体将会含有两个三角扇形,一个做顶,一个做底;它的周身将由一个三角带来完成。分段数越多,越平滑,接近圆xzfDeltaR1顶点坐标(i=1)X=R*cos(fDelta*i)z=R*sin(fDelta*i)Y=height/2.00234567ii是顶点的序号,每个顶点的角度计算i*fDelta底部顶点法线侧面顶点法线顶部顶点法线侧面顶点法线iSegment是分段数floatfDelta=D3DX_PI/iSegment*2.0f;Top/bottomsideu=0.5*cosf(fDelta*i)+0.5;v=0.5-0.5*sinf(fDelta*i);斜体部分就是虚线的长度.因为纹理坐标系原点在图左上角而非中心,并且V轴向下uvu=(float)i/iSegment;v=0.0f;012345678u=(float)i/iSegment;v=1.0f;初始化顶点数据初始化顶点时和以前有所不同。以前都是创建了一个顶点数组,给数组赋值后,再拷贝给创建好的顶点缓冲。顶点数据太多,定义数组就没有必要,其实,既然已经有了顶点缓冲的指针,我们可以直接通过该指针为顶点缓冲赋值。顶点1234…pVertex纬度上角度差:Phi经度上角度差:Theta纬度:i经度:j赤道ijix=R*cosf(i*Theta)*cosf(j*Phi)z=R*cosf(i*Theta)*sinf(j*Phi)y=R*sinf(i*Theta)Theta=D3DX_PI/iLongSeg*2.0;Phi=D3DX_PI/iLatSeg*2.0;uvD3DX几何体•D3DXCreateBox•D3DXCreateSphere•D3DXCreateCylinder•D3DXCreateTeapot•D3DXCreatePolygon•D3DXCreateTorus
本文标题:d3d创建几何体
链接地址:https://www.777doc.com/doc-7065340 .html