公告牌技术( Billboard ) - 完

本文深入探讨了公告牌技术在游戏开发中的应用,特别是在粒子系统和手持设备3D应用中的使用方法。文章通过具体步骤介绍了如何利用公告牌技术实现始终面向摄像头的图像效果,并附带示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公告牌技术应该在每款游戏应用中都会用到,因为粒子系统大量用到该技术。对粒子系统来说,每个粒子都是一直朝向相机的一个位图。在早期的PC游戏中,树的表现也多用公告牌技术,现在随着硬件发展和玩家(player)胃口的改变,树很少用此技术了。但是,因为很多手持设备上的3D应用越来越多,在这样的设备上,采用对CPU要求比较低的公告牌还是很有吸引力的。


现实应用中,公告牌一般都围绕x轴(Pitch)和y轴(Yaw)转动,不考虑z轴的转动(Roll),因此公告牌技术中有所谓的Cylinder Billboard和Spherical Billboard。现在的MMORPG中,大量运用绕Y轴和X轴旋转的公告牌技术。这里也就重点讲解相关使用方法,分几个步骤:


1、取得每一帧的view matrix;

2、从上面的view matrix得到该矩阵的inverse matrix;

3、逆矩阵中位置的几个量手工设置成 0,也就是去掉view矩阵中的位置信息;

4、把该逆矩阵作为绘制公告牌图元时候的world matrix;

5、绘制公告牌图元,如粒子(particle)。

6、记得需要的话恢复或者设置其他3D物体需要的世界矩阵,用于其他非billboard的渲染。


在代码上,D3D代码大概如此这般:


D3DXMATRIX matrix; 


// Create billboard matrix

D3DXMatrixInverse( &matrix, NULL, &g_ViewMatrix );


matrix._41 0.0f;

matrix._42 0.0f;

matrix._43 0.0f;


// For all the billboard batch, we set their world matrix as this.

// in real application, you should backup previous world matrix first,

// then after billboard rendering, you can set that world matrix back.


device.SetTransform (D3DTS_WORLD, &matrix);


写这篇文章的时候,正好截下“剑侠情缘叁”(西山居出品的网游)的使用公告牌技术的例子。上面的图的"武"和下面的图的"武"是同一个Billboard在不同的相机角度的截图。可以很容易看出来,在第二张图中,我们的相机已经到了人的头顶上,方向是朝下看,这个图元还是对准我们的镜头。这个就是公告牌技术的典型运用。

 

 公告牌技术( <wbr>Billboard <wbr>) <wbr>- <wbr>完


公告牌技术( <wbr>Billboard <wbr>) <wbr>- <wbr>完


附录:

1、Billboard示例代码

http://www.163disk.com/fileview_326071.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值