wie kann ich einen 3D Raum erstellen?
Also einfach nur so ein Vierecker Raum wo man sich drinne bewegen kann. Ich habe so angefangen: Ich habe mir einen 3D Würfel programmiert. Den konnte man mit der Maus drehen. Dann habe ich einfach glTranslatef so gesetzt: glTranslatef(0.0,0.0,-1); *G*
So, jetzt war ich in den Würfel drinne bitte nicht lachen bin totaler anfänger!! Hier erstmal den Code:
Code:
glPushMatrix;
glTranslatef(0.0,0.0,-z);//z= -1
glRotatef(PosX,1.0,0.0,0.0);
glRotatef(PosY,0.0,1.0,0.0);
glBegin(GL_QUADS);
//Unten
glColor4f(1,0,0,0.4);
glVertex3f(-1.0,-1.0,-1.0);
glVertex3f(1.0,-1.0,-1.0);
glVertex3f(1.0,-1.0,2.0);
glVertex3f(-1.0,-1.0,1.0);
//Vorne
glColor4f(0,1,0,0.4);
glVertex3f(-1.0,-1.0,1.0);
glVertex3f(1.0,-1.0,1.0);
glVertex3f(1.0,1.0,1.0);
glVertex3f(-1.0,1.0,1.0);
//Hinten
glColor4f(0,0,1,0.4);
glVertex3f(-1.0,-1.0,-1.0);
glVertex3f(-1.0,1.0,-1.0);
glVertex3f(1.0,1.0,-1.0);
glVertex3f(1.0,-1.0,-1.0);
//Rechts
glColor4f(1,1,0,0.4);
glVertex3f(1.0,-1.0,-1.0);
glVertex3f(1.0,1.0,-1.0);
glVertex3f(1.0,1.0,1.0);
glVertex3f(1.0,-1.0,1.0);
//Links
glColor4f(0,1,1,0.4);
glVertex3f(-1.0,-1.0,-1.0);
glVertex3f(-1.0,-1.0,1.0);
glVertex3f(-1.0,1.0,1.0);
glVertex3f(-1.0,1.0,-1.0);
//Oben
glColor4f(1,1,1,0.4);
glVertex3f(-1.0,1.0,-1.0);
glVertex3f(-1.0,1.0,1.0);
glVertex3f(1.0,1.0,1.0);
glVertex3f(1.0,1.0,-1.0);
glEnd;
glPopMatrix;
So, bei OnMouseMove wird dann die Werte geändert von PosX und PosY:
PosX:=X;
PosY:=Y;
Jetzt konnte ich mich sogar umsehen im Würfel. Aber das 1 Problem ist schonmal das sich der Würfel dreht. Das sieht man nicht wenn man im Würfel ist, das ist aber glaube falsch. Wie kann ich das Problem beheben?
Mein 2 Problem ist:
Wenn ich näher ransume. Also die Variable Z 1 niedriger mache, gehe ich näher zur Wand. FALSCH: Wenn ich mich dann umdrehe bin ich genau so nah dran wie die anderen Wände auch.
Überhaupt mein Problem ist:
Wie man ein 3D Raum erstellt. Einfach so wie der Würfel, nur das man auch drinne sich bewegen kann und das der Raum etwas größer ist als der Würfel. Kann mir jemand dabei helfen?
Nachsatz: Warum ich als Titel eingegeben habe: 3D Würfel ^^ es geht ja um ein 3D Raum Kamera. Also wenn ich ein Würfel hinbekomme bekomme ich auch ein Raum hin. Funktioniert ja gleich eben nur eben etwas breiter und länger zeichnen. Also mein Problem liegt mehr glaube bei der Kamera. Also wie ich mit der Maus mich umsehen kann. Und mit einem klick Vorwörts laufe.
hm... was ist/ sind jetzt genau noch dein(e) Problem(e) ??
Hi, keine probleme mehr Doch:
Also ich habe jetzt ein 3D Raum. So eine kleine Halle. Die Breite beträgt 25.0 die Länge auch. Jetzt sind die Grafiken noch sau gut! Aber wenn ich jetzt aus den 25, 120 oder so mache ist alles verschwommen, so lang gezogen. Wie kann ich das verhindern? Da muss ich doch bestimmt immer irgendwie neue Quads dahinter zeichnen um die Länge zu erhalten, oder gibt es dafür extra ein Befehl, das die Grafiken immer neu angesetzt werden?
MFG
Sven!
Evtl. wäre ein Bild mit vorher und eines mit nachher mal ganz ratsam. Denn ich keine blassen Schimmer was du mit verschwommen meinst.
Naja. Ich habe ein Quad. Das ist 120 Einheiten lang und Breit. Wenn ich jetzt eine Texture auf das Quad mache, ist das Bild lang gezogen und man erkennt nichts mehr. Wie kann man das umgehen? ^^ Zitat "Denn ich keine blassen Schimmer was du mit verschwommen meinst"...
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ah. Jetzt verstehe ich das auch. Deine Antwort sah ohne Kaffe noch ein wenig komisch aus.
Es gibt zwei Möglichkeiten. Du kannst die Texturkoordinaten entsprechend höher setzen. So wird die Textur dann einfach wieder. 0-1 ist ja normal. Wenn du 0-2 verwendest wird die Textur genau 2 Mal gezeichnet. usw.
Bei sehr großen Flächen und vielen Wiederholungen kann es aber auf einigen älteren Karten zu massiven Geschwindigkeitseinbußen kommen. Gabs jedenfalls mal ein Thread hier im Forum. In diesem Falle empfielt es sich die Fläche zu unterteilen und die Textur nur ein Paar mal auf jede Fläche zu zeichnen. Somit wird dann auf wundersamer Weise die Karte entlastet. Auf neueren Karten macht das kaum etwas aus, da diese sich eh erst ab 20 Mio. Flächen in der Sekunde so richtig wohl fühlen. Also ein Zwischending aus kleineren Flächen und Texturwiederholungen darf man getrost als Ideal bezeichnen.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.