3D-Darstellung

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von FuFu^^.

    3D-Darstellung

    Guten Tag,

    ich hab da eine Idee für ein Programm, doch hab ich überhaupt kein blassen Schimmer,
    wie man 3D in VB realisieren kann... ( wenn's überhaupt möglich ist )

    Wie kann ich ein 3D Model ( aus einer Datei / ein einfachen Wufel ) in einem Fenster anzeigen lassen? ( Also ein Fenster wie eine PictureBox )
    Hat einer Erfahrung damit oder hat sich darüber schon schlau gemacht?

    Nochmal zur Info: Ich will jetz kein Spiel schreiben oder so.

    Danke im vorraus!

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Das Zauberwort heißt Projektion.
    Alle Ecken werden durch Vektoren beschrieben, Kanten sind Verbindungslinien zwischen ihnen (selektiv).
    Du benötigst einen Aufpunkt (Position des Auges) und projizierst alle 3D-Vektoren in eine 2D-Bildfläche.
    Da musst Du noch überlegen, was sichtbar und unsichtbar ist.
    Das ganze lässt sich über geeignete Matrizen-Operationen realisieren.
    Die einfachste Projektion ist die Parallelprojektion entlang der Achsen, da ist das Auge unendlich weit weg, die Strahlen sind parallel.
    Wenn Du von oben schaust, sind alle z-Komponenten 0,
    schaust Du von vorn, sind alle y-Komponenten 0,
    schaust Du von der Seite, sind alle x-Komponenten 0.
    Dies zum warm werden. :thumbup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    St0on schrieb:

    und hab einfach nicht intensiv genug gelesen?

    Nimm einen Würfel und male das Bild, das Du siehst, auf ein Blatt Papier.
    Fotografiere den Würfel und male im Bild die Kanten nach.
    Das ist eine 2D-Projektion eines 3-dimensionalen Gebildes. Keine "optische Täuschung".
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dann musst Du das mit einem Timer machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    St0on schrieb:

    dann ist das irrelevant zu üben,

    Wo ist das Problem? Du hast Raumkoordinaten des Objekts, des Auges und des Bildschirms. Um den entsprechenden Punkt zu berechnen brauchst du lediglich den Schnittpunkt der Strecke vom Punkt zum Auge mit der Bildschirmebene bestimmen. Das ist reinster Pythagoras. Ein reines Drahtgitter-Modell ist also sehr simpel (ansonsten nähme man XNA, das ist schließlich für 3D gedacht).
    Ah ok!
    Aber wie mach ich das mit den Texturen... ok, ich zeichen das bild zwischen 3 oder mehr punkten, aber wie kann das bild dann so "deformieren"/"dehnen" das es genau zwischen den verschieden punkten sich anpasst?
    Oder kann schon ab hier passieren, dass die FPS Rate in den Keller fällt? Dann doch lieber XNA/DirectX ?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „St0on“ ()

    wenn dich interessiert, wie projektion funktioniert, schau dir die GDI3D-Lib an! der source ist verfügbar und realisiert genau das, was du zu suchen scheinst ;)

    wegen den texturen musst du dich selbst kümmern. ist komplex, aber da die GDI3D-Lib LGPL lizensiert ist, kannst du sie problemlos weiterwentwickeln/zu deinen gunsten abändern!