初始化D3D

第一  创建一个顶点结构体

struct Vertex

{

  Vertex()  {}

  Vertex( float x, float y, float z)

{

      _x = x;  _y = y; _z = z;    //如果还要颜色,再加颜色 DWORD color

}

}

 

define Vertex_FVF  D3DFVF_XYZ //如果有颜色再加上  | DIFFUSE 等

 

第二  初始化

IDirectVertexBuffer9 *VB = 0;

Device->CreatVertexBuffer( 顶点缓冲大小,  一般为0,  Vertex-FVF, 内存池格式, 返回指针&VB, 0)

如果用索引函数为CreateIndexBuffer()

 

第三  锁

Vertex *vertices;

VB->Lock( 0, 0, (void **)&vertices, 0)

 

这里是顶点坐标:

如: vertices[0] = Vertex( 3,5,6);

........

 

VB->Unlock();

 

如果是索引顶点:

IB->Lock(............)

indices[0] = 相应上面顶点的下标,0-7..........

渲染状态 Device->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);

此处为线框模式渲染

三个为一组,即可画为三角形.

此下标为三角形个数乘以3

 

第四  渲染

渲染前要清0

Device->Clear( 0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 颜色, 1.0f, 0) //参照定义

开始渲染  Device->BeginScene();

              Device->SetStreamSource( 0, VB, 0, sizeof(Vertex))

如果是索引Device->SetIndice(IB);

               Device->SetFVF( Vertex_FVF)

画图         Device->DrawIndexPrimitive( 图元格式, 0, 0. 顶点个数,三角形个数)

如果不是索引顶点渲染,就用Device->DrawPrimitive();

结束渲染 Device->EndScene()

 清0        Device->Present(0,0,0,0)

 

最后释放资源

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值