资源描述:
《unity基本图形绘制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、绘制基本图形学习重点:DX基本图元图元绘制学习目的:能够灵活使用各种图元1.图形绘制1.1图元游戏中的模型不管有多复杂,都是有点、线、三角形面拼接起来的。1.图形绘制1.1图元图元(Primitive)是由Direct3D定义的基本的图形表示单位,所有的复杂物体都是由这些基本图元来组合而成的。图元类型Direct3D定义含义点列集合D3DPT_POINTLIST一组点的集合线列集合D3DPT_LINELIST一组线段的集合线带集合D3DPT_LINESTRIP首尾相连的线段的集合三角形列D3DPT_TRIANGLELIST一组三角形的集合三角形带D3D
2、PT_TRIANGLESTRIP首尾相连的三角形,有两个顶点重合三角形扇D3DPT_TRIANGLEFAN组成扇形的一组三角形1.图形绘制1.1图元DrawPrimitiveUP是Direct3D提供的基本图元绘制函数之一。HRESULTDrawPrimitiveUP(D3DPRIMITIVETYPEPrimitiveType,//基本图元类型UINTPrimitiveCount//绘制的图元的数量constvoid*pVertexStreamZeroData,//顶点的起始地址UINTVertexStreamZeroStride//每个顶点所占的字节
3、数);点列(POINTLIST)点列由一系列的顶点组成。g_pDevice->DrawPrimitiveUP(D3DPT_POINTLIST,6,数组首地址,sizeof(一个顶点字节数));1.图形绘制1.1图元线列(LINELIST)线列由一系列的线段组成。线带(LINESTRIP)线带由一系列的线段组成,前一个线段的终点是下一条线段的起点。g_pDevice->DrawPrimitiveUP(D3DPT_LINELIST,3,数组首地址,sizeof(一个顶点字节数));g_pDevice->DrawPrimitiveUP(D3DPT_LI
4、NESTRIP,5,数组首地址,sizeof(一个顶点字节数));1.图形绘制1.1图元三角形列由一系列的三角形组成。三角形列(TRIANGLELIST)三角形带(TRIANGLESTRIP)三角形带由一系列的三角形组成,除了第一个三角形,其他的三角形只需要输入第三个顶点,这个顶点与前一个三角形中的后两个顶点组成新的三角形。g_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST,2,数组首地址,sizeof(一个顶点字节数));g_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLEST
5、RIP,4,数组首地址,sizeof(一个顶点字节数));1.图形绘制1.1图元三角形扇(TRIANGLEFAN)三角形扇是以扇形扩展的方式来定义三角形序列的。g_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,3,数组首地址,sizeof(一个顶点字节数));1.图形绘制1.2顶点的格式顶点(Vertex)是一切物体的最基本元素,对应着三维空间坐标系中的一个点。在Direct3D中,描述一个点的方法非常丰富灵活,可以通过特殊的组合来描述空间中点的各种属性。Direct3D引入了一个称为灵活顶点格式(FVF:Fl
6、exibleVertexFormat)的概念。灵活顶点格式是用来描述顶点属性的一种方法,这种方法可以由自己来定义顶点格式。FVF这种灵活的顶点组织方式使图形绘制中只需要使用顶点必要的组成部分,从而节省了大量的内存带宽和渲染时间。1.图形绘制1.2顶点的格式1.图形绘制1.2顶点的格式Direct3D定义的灵活顶点格式可以是以下类型的组合:值说明D3DFVF_DIFFUSE顶点漫反射颜色值D3DFVF_NORMAL顶点格式包含法线向量D3DFVF_PSIZE指明绘制顶点的大小D3DFVF_SPECULAR顶点镜面反射颜色值D3DFVF_XYZ顶点是未经坐
7、标转换的坐标D3DFVF_XYZRHW顶点包括经过坐标转换的坐标D3DFVF_XYZB1….D3DFVF_XYZB5顶点格式包括用于骨骼动画的定点和顶点对骨骼的权值信息D3DFVF_XYZW顶点格式包含经过坐标转换和裁减的定点坐标D3DFVF_TEX0….D3DFVF_TEX8顶点格式包括0~8个纹理坐标如果使用灵活顶点格式,必须以以下顺序来格式化所有的顶点:位置,RHW,混合加权值,顶点法线,反射颜色,纹理坐标集(1-8套)。1.图形绘制1.2顶点的格式顶点格式的数据类型1.图形绘制1.3顶点的定义1.声明一个包含经过转换的坐标和点的颜色#defin
8、eD3DFVF_CUSTOMVERTEX(D3DFVF_XYZRHW
9、D3DFVF_DIFFU