|
前些时间有人问我怎样实现绕2轴旋转的billboard.以下是实现方法.该方法可用于实现太阳光晕,粒子系统等
glPushMatrix();
//将billboard平移到你想要的位置
glTranslatef(vLightPos.x,vLightPos.y,vLightPos.z);
glRotated(m_pCamera->m_fYaw,0,1,0);//绕Y轴旋转偏角
glRotated(m_pCamera->m_fPicth,1,0,0);//绕X轴旋转俯仰角
//以下是在X-Y平面画BillBoard的代码.....
..........
glPopMatrix();
实际的变换顺序是:
1.在X-Y平面画BillBoard
2.绕X轴旋转俯仰角
3.绕Y轴旋转偏角
4.将billboard平移到你想要的位置
如果你的摄像机系统不是由倾斜,偏转,俯仰来表示,那你要先求得偏转,俯仰2个角度. |
|