WorldToScreen (3D->2D): die Mathematik (???)



  • einen schoenen guten abend wuensche ich.

    ich probiere schon seit einer weile, nur zur uebung, eine world to screen funktion fuer ein 3d-spiel zu schreiben, bzw. mir erstmal die mathematik zu ueberlegen.
    die engine hat zwar eine solche funktion, aber ich moechte mal wieder ein bisschen mathe ueben ...

    wo ich im moment nicht weiterkomme:
    punkt P(x, y, z): punkt irgendwo im spiel
    ich habe (glaube ich) den abstand zwischen meinem "blickvektor" und P in der horizontalen und vertikalen berechnet.
    allerdings in "units" der engine.
    nun habe ich nur leider keine ahnung, wie ich daraus nun pixelwerte errechne ...

    (einfache) erklaerungen dazu verwenden oft noch die groessen ("seitenlaengen") der kamera/des viewports im spiel zur umrechnung.
    allerdings habe ich diese angabe ja auch nur als pixelwerte vorliegen (meistens dann die fenstergroesse).
    es geht mir hier erstmal nur um einen einzelnen punkt, der also keine ausdehnung hat und daher muss am ende nicht noch die groesse des objekts in abhaengigkeit vom abstand zur kamera berechnet werden ... immerhin.

    wie ihr an meiner erklaerung wohl schon seht, bin ich im augenblick nicht wenig verwirrt und waere ziemlich dankbar fuer jede hilfe, die man mir hier vorwerfen wuerde (am besten so, dass ich sie auch verstehe :)).

    vielen dank schon einmal, und wenn irgendetwas nicht klar sein sollte, fragt nach, dann versuch ich das nochmal irgendwie anders zu erklaeren ...

    zu den grenzen meines verstandes: 13 jahre mathematikunterricht habe ich hinter mir, aber das ist auch alles, was an entspr. wissen vorhanden ist ...

    mfg
    julian



  • Dann lies Dich doch mal über Zentralprojektion und mathematisch gesehen ist das projektive Geometrie. Weiter ist es sehr praktisch, sich mit Homogenen Koordinaten auszukennen.
    Wenn Du in 13 Mathejahren nicht nur körperlich anwesend warst, sollte das machbar sein.

    .. und weitere Fragen - jederzeit in diesem Forum



  • World-, View-, Projection-Transformation, Homogene Division, Viewport Mapping



  • vielen dank fuer die antworten.
    ich habe schon etwas gelesen, werde noch etwas mehr lesen und mich melden wenn ich weitere fragen hab.

    bis dann

    julian



  • http://loop.servehttp.com/~vertexwahn/oldwiki/public_html_an_turing/PerspektivischeProjektion.pdf

    Schau dir den Code von Muli3D bzw. MesaGL an

    Die Stufen sind wie this->that schon gesagt hat:
    World-, View-, Projection-Transformation, Homogene Division, Clipping, Viewport Mapping, Rasterisierung



  • xindon, den ich hier auch schon lange nicht mehr gesehen habe, hat seine Facharbeit darüber geschrieben, vielleicht ist darin alles brauchbar zusammengefasst.

    Einfach mal suchen, hab grad keine Zeit mehr dazu.



  • vielen dank Carmack! ich habe sie (denke ich) gefunden, und zwar hier: http://bloody-blades.de/media/Perspective Projection/Die Rendering-Pipeline (Facharbeit).pdf

    das werde ich mir dann nochmal zu gemuete fuehren, reingesehen habe ich noch nicht.

    mfg,
    julian


Anmelden zum Antworten