|
|
opengl里实现billboard的简单方法:
VOID BillBoard()
{
//用来保存一个4*4的矩阵
float m[16];
//取得当前的模型矩阵,并保存到数组m中
glGetFloatv(GL_MODELVIEW_MATRIX,m);
//用m矩阵的部分参数画一个方形平面
glBegin(GL_QUADS);
glVertex3f(-(m[0]+m[1]),-(m[4]+m[5]),-(m[8]+m[9]));
glVertex3f(m[0]-m[1],m[4]-m[5],m[8]-m[9]);
glVertex3f(m[0]+m[1],m[4]+m[5],m[8]+m[9]);
glVertex3f(m[1]-m[0],m[5]-m[4],m[9]-m[8]);
glEnd();
}
在渲染函数里调用BillBoard();当观察方向改变时你会发现
方形平面始终将一面朝向你.为了说明问题已将代码最简化,
要实现其它的功能可在此基础上扩展代码.
|
|