游戏软件设计

游戏软件设计

ID:45608702

大小:236.82 KB

页数:15页

时间:2019-11-15

游戏软件设计_第1页
游戏软件设计_第2页
游戏软件设计_第3页
游戏软件设计_第4页
游戏软件设计_第5页
资源描述:

《游戏软件设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《游戏软件设计》游戏软件运行原理OpenGL与DirectX是目前开发游戏用的最多的两个APIOpenGL(OpenGL:OpenGraphicsLibrary):具有移植性,与硬件无关;国际公认的3D图形工业标准;OpcnGL与窗口系统无关,不提供任何交互手段,必须由程序员自行开发;OpenGLAPI是低级C函数,不提供可重用的对彖库或者应用程序框架通常说的DirectX有两层含义:1.DirectXSDK(DirectX开发工具包);2.DirectXRuntime(运行时)DirectXr

2、h很多功能组件构成:Direct3D、Directlnput^DirectSound>DirectPlay等Direct3D是负责三维图形的一个组件,也是DirectX中最重要、最复杂的组成部分Direct3D体系结构图形硬件Direct3D程序基本结构创建一个Windows窗口初始化Direct3DDirectX3D基本图元•顶点集合(D3DPT_POINT)StructCUSTOMVERTEX{floatx,y,z;1;CUSTOMVERTEXVerticesr1={{-5.0,-5.0,0

3、.0},{0.0,5.0,0.0},{5.0,-5.0,0.0},{10.0,5.0,0.0},{15.0,・5.0,0.0},{20.0,5.0,0.0}};g_pd3dDevice->DrawPrimitive(D3DPT_POINTLIST,0,6);DrawPrimitive(指定绘制图元类型,顶点流起始位置,指定绘制图元的数量)•线段集合(D3DPT_LINELIST)5rO>g_pd3dDevice->DrawPrimitive(D3DPT_LINELIST,O,3);•线段Stri

4、p(D3DPT_LINESTRIP)cxs,-9.cog_pd3dDevice->DrawPrimitive(D3DPT_LINESTRIP,0,5);•三角形集合(D3DPTTRIANGLELIST)g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);•三角形Strip(D3DPT_TRIANGLESTRIP)g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIR0,4);三角形Fan(D3DPT_TR

5、IANGLEFAN)即三角扇形g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,0,4);顶点缓冲区(vertexbuffer)是用來保存顶点数据的内存缓冲区。顶点缓冲区中的顶点可以包括顶点坐标、颜色、纹理等信息,我们町以使用灵活顶点格式(FlexibleVertexFormat,FVF)进行描述和设置如何使用顶点缓冲区:■第一步:定义顶点结构structCUSTOMVERTEX{FLOATx,y,z,rhw;DWORDcolor;};■第二步:定义灵活

6、顶点格式#defineD3DFVF_MY(D3DFVF_XYZRHW

7、D3DFVF_DIFFUSE)D3DFVF_DIFFUSE:顶点数据包含漫反射颜色值D3DFVF_XYZRHW:顶顶数据包含经过坐标变换的顶点坐标D3DFVF_XYZ:顶点数据包含未经坐标变换的顶点坐标D3DFVF_NORMAL:顶点数据包含法线向量■第三步:初始化顶点CUSTOMVERTEXvertices[]={{5O.Of,25O.Of,O.5f,1.Of,OxffffOOOO},{150.0f,50.0f,0.5f,1

8、.0f,0xff00ff00},{250.0f,250.0f,0.5f,l.Of,OxffOOOOff)};■第四步:创建顶点缓冲区LPDIRECT3DVERTEXBUFFER9g_pVB=NULL〃顶点缓冲区接口指针If(FAlLED(g_pd3dDevice->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),0,D3DFVF_MY,D3DPOOL.DEFAULT,&g_pVB,NULL)))•CreateVertexBuffer:参数1:顶点缓冲区大小参数

9、2:顶点缓冲区属性,参数3:灵活顶点格式参数4:顶点缓冲区内存类型参数5:指向顶点缓冲区地址的指针参数6:NULL■第五步:填充顶点缓冲区VOID*pVertices;If(FAILED(g_pVB->Lock(0,sizeof(vertices),(void**)&pVertices,O)))returnE_FAIL;memcpy(pVertices,vertices,sizeof(vertices));g_pVB->Unlock();■第六步:渲染图形g_pd3dDevice->SetStr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。