Я пытаюсь заставить рекламный щит работать, но у меня проблемы с последним шагом.
После следования этим указаниям из учебников NeHe (http://nehe.gamedev.net/data/articles/article.asp?article=19) У меня есть векторы вида, права и вверх, и я уже перевел матрицу вида модели в центральную часть рекламного щита с помощью glTranslatef ().
float[] m = {right.x,right.y,right.z,0f,
up.x,up.y,up.z,0f,
look.x,look.y,look.z,0f,
pos.x,pos.y,pos.z,1f}; //pos is the centerpoint position
gl.glMultMatrixf(m, 0);
Когда я пытаюсь создать из них матрицу умножения, рекламные щиты отображаются повсюду в неправильных позициях и ориентациях.
Полагаю, моя проблема в том, что я не знаю, как правильно создать и умножить матрицу. Я попытался сделать это вместо этого, но затем половина линий (те, которые должны вращаться против часовой стрелки) вращаются в неправильном направлении:
//normal is the vector that the billboard faces before any manipulations.
float angle = look.getAngleDeg(normal); //returns angle between 0 and 180.
gl.glRotatef(angle, up.x,up.y,up.z);