> > 技术-博客 > Alma:在D3D中实现Billboard
 

Alma:在D3D中实现Billboard

2011-01-26 15:44:46
 

Billboard技术又称为公告板技术,原理说起来其实很简单,它的主要实现步骤如下:

  1. 在XY平面上构造一个面片
  2. 在每一帧构造变换矩阵使其与屏幕对齐(有种简单的做法就是直接对齐视平面)
  3. 绘制

随手翻到了植物大战僵尸的资源,拿来用之。。。
DEMO截图如下: 


(点击这里或图片在线观看DEMO)

D3D的通用步骤就不多说了,绘制关键步骤如下:

// 设置顶点数据流的输入源
md3d_device->SetStreamSource(0, mSprite_vb, 0, sizeof(CSprite::VERTEX));
md3d_device->SetFVF(CSprite::VERTEX_FVF);

// 构造世界矩阵
D3DXMATRIX mat_world;
// 植入视矩阵的旋转分量
D3DXMatrixTranspose(&mat_world, &view);

// 设置空间坐标
mat_world._41 = x;
mat_world._42 = y;
mat_world._43 = z;

// 设置贴图
md3d_device->SetTexture(0, mSprite_texture);

// 设置构造好的世界矩阵
md3d_device->SetTransform(D3DTS_WORLD, &mat_world);
// 绘制
md3d_device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);

 
相关话题推荐
 
相关新闻:
发贴区
  评论仅表达个人看法,并不表明爱酷游同意其观点或证实其描述。
   
icoou资讯76小时热门排行
icoou人气图片推荐
酷友推荐
焦点推荐
24小时前沿动态
标题  
点击数 
主题推荐

话题推荐
视频专题

娱乐专题