An sich hatte ich vor, ein Objekt inklusive seiner im 3Ds Max zugewiesenen Farbe und eventuellen Strukturen ebenso wie in 3Ds Max erstellte Lichtquellen zu importieren.
Leider erscheint das Objekt rein weiß. Noeska meinte, vielleicht ist es weiß weil das Licht zu stark ist, das kann ich nicht nachvollziehen, da ich im Delphiprojekt selbst keine Lichtquelle gesetzt habe.
Meine Fragen:
1. Wie behalten die Objekte ihre zugewiesenen Farben?
2. Wie importiere ich Licht?
3. Wenn ich mit 3Ds ein Haus erstellt habe kann ich das als ein Objekt importieren und mich darin mit der Kamera bewegen?
4. Wie erhalte ich die aktuellen Koordinaten meiner Kameraposition?
5. Wie halte ich die Kamera bei schrägen Flächen auf gleichem Abstand zum Boden?
Was bis jetzt gut läuft:
Ich konnte 3Ds Max Objekte importieren, musste sie halt mit color färben.
War imstande die Objekte anhand meiner Tastatureingabe zu drehen bzw. mich zum oder vom Objekt zu bewegen (war ein tolles Erfolgserlebnis )
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Whook hat geschrieben:
Hallo,
An sich hatte ich vor, ein Objekt inklusive seiner im 3Ds Max zugewiesenen Farbe und eventuellen Strukturen ebenso wie in 3Ds Max erstellte Lichtquellen zu importieren.
Leider erscheint das Objekt rein weiß. Noeska meinte, vielleicht ist es weiß weil das Licht zu stark ist, das kann ich nicht nachvollziehen, da ich im Delphiprojekt selbst keine Lichtquelle gesetzt habe.
Meine Fragen: 1. Wie behalten die Objekte ihre zugewiesenen Farben? 2. Wie importiere ich Licht? 3. Wenn ich mit 3Ds ein Haus erstellt habe kann ich das als ein Objekt importieren und mich darin mit der Kamera bewegen? 4. Wie erhalte ich die aktuellen Koordinaten meiner Kameraposition? 5. Wie halte ich die Kamera bei schrägen Flächen auf gleichem Abstand zum Boden?
Was bis jetzt gut läuft: Ich konnte 3Ds Max Objekte importieren, musste sie halt mit color färben. War imstande die Objekte anhand meiner Tastatureingabe zu drehen bzw. mich zum oder vom Objekt zu bewegen (war ein tolles Erfolgserlebnis )
lg Whook
Ich habe leider mit gl3ds noch nicht gearbeitet.
Deswegen kann ich zu den Punkten 1 und 2 nicht viel schreiben.
Zu 4 kann ich schonmal sagen, dass es "eigentlich" keine Kameraposition gibt. (Wobei die Modelviewmatrix eigentlich eine Kameraposition repräsentiert)
Allerdings kannst du selber eine Kameraposition definieren. Ich benutze einfach 2 Vektoren dazu. Einer für die Position und einen für die Rotation (in Grad).
Die Rotation berechne ich aus der Differenz der Mausposition aus diesem und dem letzten Frame.
Bevor nun die Szene gezeichnet wird, muss man die Modelviewmatrix drehen und verschieben.
Dazu habe ich eine kleine Funktion, die an geeigneter Stelle aufgerufen wird:
Code:
procedure SetCamera(Translate : boolean);
begin
glRotatef(-Rot.X, 1, 0, 0);
glRotatef(-Rot.Y, 0, 1, 0);
if Translate then
glTranslatef(-Pos.X, -Pos.Y, -Pos.Z);
end;
Der Parameter Translate dient dazu nur die Matrix zu drehen, um z.b. eine Skybox zu zeichnen.
zu 5:
Das klingt schon schwer nach Kollisionserkennung. Ich würde mich vorerst auf eine freie Kamerasteuerung beschränken. Kann man später immer noch machen. Evtl ne fertige Engine nehmen, Newton z.B.
Man muss das Rad ja nicht immer neu erfinden
hoffe geholfen zu haben
damadmax
_________________ Es werde Licht. glEnable(GL_LIGHTING); Und es ward Licht.
Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.