DirectX学习汇报.ppt
《DirectX学习汇报.ppt》由会员分享,可在线阅读,更多相关《DirectX学习汇报.ppt(24页珍藏版)》请在三一办公上搜索。
1、学 习 汇 报,DirectX简介Direct3D基本知识Direct3D绘制流水线Direct3D光照及材质Direct3D纹理基础Mesh网格示例程序在WorldWind球体中渲染图形,提纲,DirectX DirectX是由微软公司开发的一种多媒体编程接口,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形的显示及其声音效果。目前很多游戏的开发都是使用DirectX.DirectX软件开发工具包(SDK)目前最高版本是DirectX 11.,DirectX简介,DirectX的组件DirectDraw:通过直接访问显示硬件来提供高级的图象处理能力。Direct
2、3D:三维图形的处理与显示,与OpenGL功能一样强大。DirectSound:提供延时的低音混合系统,支持硬件加速与声音设备的直接访问另外,DirectX还有DirectPlay,DirectMusic,DierctInput,DirectShow等组件。,DirectX简介,Direct3D基本知识,顶点 顶点代表相对于坐标系原点的位置信息,顶点的位置信息一般用Vector3结构表示。顶点格式 Direct3D中常用的顶点格式:PositionColored、PositionNormal、PositionOnly、PositionColoredTextured、PositionNormal
3、Textured、TransformedColored 等,其中Position、Normal、Color、Textured分别表示顶点的位置、法线、颜色、纹理坐标等信息,Transformed表示已经转换到屏幕坐标。顶点坐标变换 Vector3.TransformCoordinate(Vector3 v,Matrix m),Direct3D基本知识,向量 向量代表一个有方向和长度的对象,与坐标系原点无关,一般用Vector3结构表示。向量的运算 点乘 float d=Vector3.Dot(Vector3 v1,Vector3 v2);叉乘 Vector3 v=Vector3.Cross(V
4、ector3 v1,Vector3 v2);单位化Vector3.Normalize();长度 Vector3.Length();夹角 Vector3 v1,v2;v1.Normalize();v2.Normalize();return Math.Acos(Vector3.Dot(v1,v2);,Direct3D基本知识,法线 法线是一个向量,对于平面来说它是垂直于平面的一个单位向量,一个平面的法线可以使用平行于该平面的两个向量的叉积计算得来。如假设一个三角面的三个顶点为V1,V2,V3则 V12=V2-V1;V13=V3-V1;Vector3 normal=Vector3.Cross(V12
5、,V13);normal.Normalize();矩阵运算 单位阵 Matrix.Identity;逆矩阵 Matrix.Invert(Matrix source);,Direct3D基本知识,矩阵的基本变换平移及平移矩阵,缩放及缩放矩阵,旋转及旋转矩阵,组合变换,Direct3D基本知识,基本图元图元(primitives)是Direct3D中定义的基本图形表示,它是组成一个单一实体基本单元。图元类型PrimitiveType.PointList/LineList/LineStrip/TriangleList/TriangleStrip/TriangleFan,Direct3D基本知识,顶点
6、索引什么情况下建立顶点索引?当绘制一个比较复杂的图形时,众多三角形单元之间会共享许多公共顶点,这样会浪 费大量的内存空间和系统带宽。LineList,TriangleList两种图元类型需要建立顶点索引索引意义:1.减少显存占用 2.减少绘制次数(DrawIndexedPrimitives)VertexBuffer与IndexBufferVertexBuffer是用于存放顶点数据的一块内存。IndexBuffer就是一块保存了顶点数据索引的缓冲。,Direct3D绘制流水线,绘制流水线把三维场物体在二维的屏幕中显示出来,要经过一系列的变换(世界、观察、投影变换),这一过程称为绘制流水线。世界变
7、换将模型局部坐标系的坐标通过旋转、平移、缩放变换为世界坐标系中的坐标。观察变换观察变换是将世界坐标系中的坐标变换为观察者坐标系中的坐标,这为投影变换做准备,因为经过此次变换后观察者在坐标原点,Z轴坐标表示的是到观察者的距离,投影面平行于XY平面。观察矩阵的计算:Matrix.LookAtLH(CamPos,CamTarget,up);/左手坐标系,Direct3D绘制流水线,投影变换将观察者坐标系中的坐标变换为投影坐标系中的坐标,即将3D模型投影到XY平面上。投影矩阵的计算:Matrix.PerspectiveFovLH(fieldOfViewY,aspectRadio,znear,zfar)
8、;/左手坐标系,如图所示,O为观察者的位置,屏幕上最终显示的是ABCD和ABCD两个平面之间的模型。fieldOfViewY 视场角aspectRadio 纵横比znear,zfar 近远平面距离,Direct3D光照,光照计算模型环境光、漫反射光、镜面反射光和自发光。光源类型点光源:有颜色和位置,但没有方向,它向所有方向发射的 光都一样方向光:有颜色和方向,但没有位置聚光灯:有颜色、方向和位置,类似于现实生活中的聚光灯,Direct3D材质,材质(Material)环境光颜色(Ambient)漫反射颜色(Diffuse)镜面反射颜色(Specular)自发光颜色(Emissive)物体的颜色
9、物体最终呈现的颜色与法线有关,光照的方向如果与法线的方向一致,则表示物体没有被光照射到,呈现黑色。光与材质的共同作用决定物体最终的颜色。被光照射到的物体表面会吸收掉部分光线,也会反射部分光线。简单的说,白色物体会反射全部光线,黑色物体会吸收所有光线。光线被物体表面反射后,到达镜头的光线强度就是最终的光照结果;物体表面的纹理和材质就是用来设置物体反射光线的能力。,Direct3D纹理基础,常用纹理格式bmp,jpg,png,tga,dds等。纹理坐标纹理元素在位图中的二维坐标纹理坐标用U,V表示,U代表水平方向,V代表竖直方向。一般情况下,使用相对纹理坐标,相对纹理坐标值在0.0,1.0范围内,
10、例如在宽、高分别为100、80像素的位图中,第5列、第4行的纹理元素P的实际纹理坐标和相对纹理坐标分别是:,Mesh网格,Mesh类 在Direct3D中,许多模型对象都可以直接通过Mesh网格来绘制,如Mesh.Box、Mesh.Sphere、Mesh.Teapot等。Mesh meshObject;/定义一个Mesh对象/绘制一个棱长为4的正方体 meshObject=Mesh.Box(device,4.0f,4.0f,4.0f);/绘制一个茶壶 meshObject=Mesh.Teapot(device);Mesh类还提供了一些从外部文件导入网格的方法,其中的FromFile()方法可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DirectX 学习 汇报
链接地址:https://www.31ppt.com/p-5427387.html