2017-06-09 2 views
0

Ich bin auf der Suche alten OpenGL-Code wie this:Wie bekomme ich Übersetzung und Rotation von glMultMatrixf?

glPushMatrix(); 
    glMultMatrixf(Twc.m); 

    glLineWidth(mCameraLineWidth); 
    glColor3f(0.0f,1.0f,0.0f); 
    glBegin(GL_LINES); 
    glVertex3f(0,0,0); 
    //... more glVertex3f 
    glEnd(); 

glPopMatrix(); 

Es schafft einen Kegel wie Objekt dieses api glMultMatrixf verwenden. Nehmen wir an, wir wollen es mit etwas wie add(const Eigen::Vector3f & translation, const Eigen::Quaternionf & rotation) modernisieren. Wie bekomme ich Übersetzung und Rotation von glMultMatrixf?

+1

glMultMatrixf in der alten API wendet nur die Transformation (beliebige Kombination von Translation, Rotation, Skalierung) auf nachfolgende Geometrie an. Ihr createAt ist vermutlich nur eine Übersetzung. Suchen Sie den Code, der die Twc.m-Matrix erstellt, und sehen Sie sich an, welche Werte verwendet werden –

Antwort

0

Sie brauchen nicht wieder etwas aus dem Ergebnis der glMultMatrix zu bekommen - Sie haben bereits die Matrix Twc.m, die die erstellten Transformationen für dieses Objekt enthält - so tatsächlich, ist die Verwendung von Twc.m als separate Matrix der einzige Teil dieser Code, der beim Wechsel zu modernem OpenGL gleich bleiben würde. Sie würden diese Matrix jetzt im Vertex-Shader anwenden (in Verbindung mit Ansichts- und Projektionstransformationen).

Verwandte Themen