3D Studio MAX und die 3 Achsen



  • Hallo zusammen, also in allen Büchern über 3D - Programmierung, die ich bisher gelesen habe, stand, dass die x Achse in die Länge, die y Achse in die Höhe und die z Achse in die Tiefe geht. 3D Studio MAX diese Meinung jedoch nicht zu teilen, denn da geht zwar die x Achse wie erwartet in die Breite, jedoch geht die z Achse in die Höhe und die y Achse in die Tiefe ?? 😕 Was soll denn das ??

    So kann ich meine Modelle in meinen Spielen nicht gebrauchen !!! 😡



  • Dann rotierste halt einfach kurz das Bezugssystem vor dem Rendern der Models, sodass das mit den Achsen wieder passt. Oder halt Vektor preprocessen nach dem Laden der Models. Mach ich mit Quake Models auch immer so.

    cya
    liquid



  • Ja aber wieso macht den 3dsmax das so ?? Kann man das nirgens ändern ??



  • Sry, KA warum das 3dsmax so macht. Ich hab 3dsmax auch nicht (nur gmax, aber ich bin kein Modeler und würde lügen wenn ich sagen würde, dass ich mich mit gmax auskenne).
    Ich kann nur sagen, dass das mit den Achsen halt nicht irgendwo ISO-mäßig festgelegt ist. Dass die Z-Achse bei OGL in den Monitor hinein verläuft ist auch nur ne Festlegung seitens des ARB. Das hätten die auch anders machen können. Wie gesagt, bei den Quake Models verhält sich das genauso. Die kannste auch nicht Rendern, bevor man die Vertices vorher bearbeitet hat, sonst "liegen" die Models nämlich nur.

    cya
    liquid



  • Das ist ja zum davonrennen !!! 😡
    Stell sich mal einer vor irgend ein Grafikprogramm sichert nun bitmaps spalten statt zeilenweise... 🙄

    Ich habe noch eine weitere Frage und zwar zur Funktion D3DXMatrixLookAtLH:

    Wenn ich jetzt pEye folgendermassen definiere: 0,5,0 und nun möchte ich kerzengerade nach unten sehen, muss ich dann 0,-1,0 oder 0,4,0 oder was muss ich da angeben ??? Funktionieren tut nämlich nichts von allem !!!

    Gruss ishildur



  • Ishildur schrieb:

    Das ist ja zum davonrennen !!! 😡
    Stell sich mal einer vor irgend ein Grafikprogramm sichert nun bitmaps spalten statt zeilenweise... 🙄

    Du glaubst gar nicht was einem bei den verschiedenen Bildformaten so alles passieren kann, wenn man die mit seinem eigenen Loader laden will...
    Da kommen Sachen zustande, die glaubt einem kein Mensch 😃

    Ishildur schrieb:

    Ich habe noch eine weitere Frage und zwar zur Funktion D3DXMatrixLookAtLH:

    Wenn ich jetzt pEye folgendermassen definiere: 0,5,0 und nun möchte ich kerzengerade nach unten sehen, muss ich dann 0,-1,0 oder 0,4,0 oder was muss ich da angeben ??? Funktionieren tut nämlich nichts von allem !!!

    Gruss ishildur

    Muss ich schon wieder passen. Ich code mit OpenGL, habe von DX (noch) quasi gar keine Ahnung. Kann also auch da nur raten.
    *schmeisst mal kurz den Google rein*

    Aha, sieht für mich ähnlich wie die gluLookAt Funkion aus. Also nen Zusammenbasteln der Rotationsmatrix mit Hilfe der verschiedenen Kameravektoren.
    MSDN
    Also eye ist der Augpunkt, quasi die Position deiner Kamera.
    Bei deinem Problem (Ausrichten) sollte der at-Vektor verändert werden.

    cya
    liquid



  • Da ist eine Art Pseudogrundfläche, (wie der Boden im realen Leben), die XYKoordinaten Verwendet. und von dieser Fläche aus die Dritte dimension ist als Z bezeichnet, wie es beim Modelieren halt üblich ist.

    Beim Programmieren sieht man als Fläche aber nicht wie im realen Leben, sondern der Monitor, ist die Fläche, von der man ausgeht. Das ist das Problem.



  • Bei D3DXMatrixLookAtLH gibt man Position der Kamera an und das Ziel der Kamera. Also von 0,5,0 nach unten wäre dann 0,4,0 wobei bei 0,-1,0 das gleiche rauskommen würde bei dem beispiel. Aber trotzdem gehts immer POsition nach ziel. Nur der UpVector ist Relativ. der ist 0,1,0 immer noach oben.



  • damit du gerade nach unten oder oben gucken kannst mußt du den up-vector etwas verändern (wenn du genau in oder gegen den up-vector blickst gibts ein problem)


Anmelden zum Antworten