以前由于不知道如何让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。
转载于:https://www.cnblogs.com/CloudAge/archive/2006/08/22/483000.html