游戏开发学习笔记-3.基本图元绘制
来源:互联网 发布:淘宝4钻店铺值多少钱 编辑:程序博客网 时间:2024/05/18 02:14
模型的组成分子:顶点
模型的基本单元:三角形
这次我们绘制一个简单的三角形。
此次仅作为一个简单的DEMO,为了不对引擎的代码造成破坏,我只对引擎增加了一个 获取D3D设备的方法,然后我们在WINmain的窗体代码中来 创建和初始化 顶点结构和数据。
引擎类中增加一个获取接口的函数
LPDIRECT3DDEVICE9 GetDev(); //获取D3D设备
LPDIRECT3DDEVICE9 Engine::GetDev(){return m_Dev; //直接返回接口指针}
然后是winmain代码的修改:
首先是函数和顶点结构的声明:
//声明顶点格式#define D3DFVF_CUSTOM D3DFVF_XYZRHW|D3DFVF_DIFFUSE//创建顶点缓冲bool CreateObject();LPDIRECT3DDEVICE9 g_dev=NULL; //D3D设备指针LPDIRECT3DVERTEXBUFFER9 g_VertexBuff=NULL; //顶点缓冲指针//声明顶点结构struct CustomVertex {float x,y,z,rhw;long color;};
然后是 创建顶点缓冲函数的实现
bool CreateObject(){//填充顶点结构CustomVertex Vertexs[]={{400,100,0.5f,1.0f,0xffff0000},{600,350,0.5f,1.0f,0xff00ff00},{200,350,0.5f,1.0f,0xff0000ff},{200,350,0.5f,1.0f,0xff0000ff},{600,350,0.5f,1.0f,0xff00ff00},{400,600,0.5f,1.0f,0xffff0000}};g_dev=engine.GetDev(); //获取D3D设备指针,用于接下来的操作if (FAILED(g_dev->CreateVertexBuffer(sizeof(Vertexs),0,D3DFVF_CUSTOM,D3DPOOL_DEFAULT,&g_VertexBuff,NULL))){return false;}void* data; //锁定的顶点区指针if (FAILED(g_VertexBuff->Lock(0,sizeof(Vertexs),(void**)&data,0))){return false;}memcpy(data,Vertexs,sizeof(Vertexs));g_VertexBuff->Unlock();return true;}
在这个创建顶点缓冲函数中, 首先填充自定义的顶点结构数组, 接下来获取D3D设备指针,然后操作指针,锁定顶点内存,复制我们填充的顶点数组到那块锁定的内存,然后释放锁定的内存区域。
在调用CreateObject 初始化了顶点数据后, 就可以开始画出顶点了。
void GameLoop(){engine.ClearScreen();engine.StartRender(); //开始渲染g_dev->SetStreamSource(0,g_VertexBuff,0,sizeof(CustomVertex)); //设置顶点流源数据g_dev->SetFVF(D3DFVF_CUSTOM); //设置顶点格式g_dev->DrawPrimitive(D3DPT_TRIANGLELIST,0,2); //画出图形engine.EndRender(); //结束渲染}
运行截图:
最后附上源代码下载:
http://download.csdn.net/detail/qq578023708/8795283
0 0
- 游戏开发学习笔记-3.基本图元绘制
- 游戏开发笔记之三——绘制图元
- cocos2d-x学习笔记03:绘制基本图元
- cocos2d-x学习笔记02:绘制基本图元
- cocos2d-x学习笔记02:绘制基本图元
- DirectX游戏编程学习(二)文本显示与基本图元绘制
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之三——绘制图元
- Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之三——绘制图元
- Direct-X学习笔记--图元绘制
- OpenGL学习笔记--绘制图元
- OpenGL学习笔记之绘制图元
- 【D3D11游戏编程】学习笔记十一:基本几何体绘制
- Nebula3绘制基本图元
- jsp <select>标签
- mongodb
- 构造器(引用与值传递)
- 菜鸟系列——线段树
- Spring ApplicationContext的应用
- 游戏开发学习笔记-3.基本图元绘制
- 黑马程序员——java基础
- LightOJ 1047 - Neighbor House 【DP】
- Leetcode[162]-Find Peak Element
- ubuntu add bridge network with libvirt
- setprecision(int n)等格式函数用法
- 弹性布局
- mysql按照时间段内 每天统计
- ContentProvider