Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » OPENGL glLoadIdentity

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.05.2008, 12:33 Uhr
force86



Hallo
Programmiere jetzt seit 2 Jahren C++ und hab jetzt mal mit den Nehe OpenGL Tutorials angefangen.

Hab jedoch ein kleines Problem bzw. eine Frage zur glLoadIdentity.

Nach Tutorial müsste ich nach dem Zeichnen eines Objektes die Model Matrix zurücksetzen.
Doch wenn ich das tue und dann das nächste Objekt zeichne, wird dieses nicht mehr angezeigt. Schaut einfach mal in den codeausschnitt. Geht um dasglLoadIdentity nach dem glEnd von TRIANGLES und vor dem nächsten nicht auskommentierten glTranslate. Wenn ich glLoadIdentity aktiv drin habe, wird mein POLYGON nicht mehr angezeigt.


C++:
int DrawGLScene(GLvoid)         // Funktion für alles auf dem bildschirm sichtbare
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    // vorherige szene löschen
    glLoadIdentity();       // Rücksetzen auf Koordinatenursprung 0,0,0
    glTranslatef(-1.5f,1.5f,-8.0f); //Zeiger auf X -15 auf y 0 und auf z -6

    glRotatef(rdreieck,0.0f,1.0f,0.0f);
    glBegin(GL_TRIANGLES); //Damit wird ein dreieck gezeichnet
    glColor3f(0.0f,0.0f,1.0f); //Das dreieck wird damit blau (RPG Model)
    glVertex3f(0.0f,0.3f,0.0f); //Koordianten der oberen Ecke des Dreiecks
    glColor3f(0.0f,1.0f,0.0f);
    glVertex3f(-0.3f,-0.3f,0.0f); //untere ecke links
    glColor3f(1.0f,0.0f,0.0f);
    glVertex3f(0.3f,-0.3f,0.0f); //untere ecke links
    glEnd(); //Zeichnen beendet

    glLoadIdentity();

    /*glTranslatef(3.0f,0.0f,0.0f); //Damit was neues gezeichnet werden kann, wird Zeichner um 3 auf x verschoben
    glBegin(GL_QUADS); //Es wird ein Viereck gezeichnet
    glColor3f(1.0f,0.0f,0.0f); //das Viereck wird Rot
    glVertex3f(-1.0f,1.0f,0.0f); //oben links
    glVertex3f(1.0f,1.0f,0.0f); //oben rechts
    glVertex3f(1.0f,-1.0f,0.0f); //unten rechts
    glVertex3f(-1.0f,-1.0f,0.0f); //unten links
    glEnd(); // Zeichnen ende */


    glTranslatef(3.0f,0.0f,-2.0f); //x um 3,5 verschoben
    glRotatef(rachteck,0.0f,1.0f,0.0f);
    glBegin(GL_POLYGON); //ein Polygon wird gezeichnet
    glColor3f(1.0f,0.0f,0.0f);  //rot
    glVertex3f(-0.5f,1.5f,0.0f);  //obere Ecke links
    glVertex3f(0.5f,1.5f,0.0f);   //bere Ecke rechts

    glColor3f(0.0f,0.0f,1.0f); //blau
    glVertex3f(1.5f,0.5f,0.0f); //rechts ecke oben
    glVertex3f(1.5f,-0.5f,0.0f); //rechte ecke unten

    glColor3f(0.0f,1.0f,0.0f); //grün
    glVertex3f(0.5f,-1.5f,0.0f); //untere Ecke rechts
    glVertex3f(-0.5f,-1.5f,0.0f); //untere ecke links

    glColor3f(1.0f,1.0f,0.0f); //gelb
    glVertex3f(-1.5f,-0.5f,0.0f); //linke Ecke unten
    glVertex3f(-1.5f,0.5f,0.0f); //rechte Ecke unten
    glEnd();

    rdreieck -= 0.4f; //Der Drehwert des Dreiecks wird bi jedem durchgang um 0.4 verringert
    rachteck -= 0.5687; //Drehwert wird bei jedem durchgang um 0,5687 erhöht

    return true;            // Everything went OK
}


Dieser Post wurde am 08.05.2008 um 12:35 Uhr von force86 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.05.2008, 12:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja ich würd halt tippen du schiebst sonst das poligon einfach ausm sichtbaren bereich hinaus!

durch glLoadIdentity wird die zuvor gespeicherte Position wieder geladen, also im normalfall 0,0,0 mit Rotation 0.

Wenn dus dann um 3 nach rechts schiebst, ist es halt wahrscheinlich außerhalb deines Fensters und nicht mehr innerhalb, wie wenn du von der vorherigen position (-1,5;usw) ausgehst und da 3 nach rechts gehst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.05.2008, 13:13 Uhr
force86



Das wars, Danke! Hätte ich aber auch drauf kommen können
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: