用Sprite做Billboard

以前由于不知道如何让Sprite进入投影空间,所以做Billboard都是用IndexBuffer,其实这种办法很笨拙,要做Billboard最好还是用Sprite。在Sprite.Begin的参数中选择Billboard,并且在呼叫之前调用SpriteSetWorldViewLH(或者RH)来传入World矩阵和View矩阵。World矩阵由期望的投影空间位置来构造,View矩阵来自摄影机。这样显示出来的Billboard有如下特点:

1、会进行投影变换(近大远小,这是当然的)

2、图像横方向沿X轴正向,纵方向沿Y轴正向。如果这个方向不对,则需要通过Sprite.Transform来设置一个旋转矩阵

3、图像的尺寸和投影空间比例相匹配。即如果源图像横有W个像素,纵有H个像素,则进入投影空间后Billboard的尺寸就是X=(float)W,Y=(float)H,Z=0。如果不需要这么大的尺寸,可以用过Sprite.Transform设置一个缩放矩阵

4、不进行背面剔除。因为这是Sprite。
posted @ 2006-08-22 09:43  Cloudage  阅读(500)  评论(2编辑  收藏  举报