Saturday, October 16, 2010

billboard 的 OpenGL 实现

原文见这里

基本想法是两个:

要不我把当前的 MODELVIEW 矩阵拿出来,把旋转去掉,这只需要把那个矩阵的 3x3 部分变成单位阵就行了,因为把矩阵理解成为对当前点的变换可以发现我们仅仅需要平移到当前点,然后画需要的 billboard 就好了。

要不我把当前的 MODELVIEW 矩阵拿出来,3x3 那部分里面每行相当于是在 x、y、z 上的投影,因此只需要取前两行作为方向计算该处物体的坐标就行了。

一般 billboard 都是矩形,因此计算量不算很大,后者需要用 CPU 计算所有的 billboard 坐标,如果 billboard 较少比较适合;前者实际上需要将矩阵从显存放到内存,然后写回去,如果 billboard 计算量太小则不太适合。

No comments: