Benutzte Bilder/Texturen drehen mit DX



  • Hör mal nicht auf die beiden... natürlich geht das.. baue dein 2d spiel so, dass du deine 2d objekte auf jeweils 2 dreiecke rendert und dir stehen auch die rotationsmatrizen zur verfügung. dann brauchst du dein auto nur einmal malen und kannst es um die z-achse rotieren, damit es dann in jede mögliche richtung fahren kann.

    am besten wäre es aber, du liest dir erstmal ein paar tutorials über 2d programmierung in einer 3d-umgebung durch. such mal hier im forum danach, die frage hatten wir schon ein paar mal

    mfg



  • Hör mal nicht auf die beiden... natürlich geht das.. baue dein 2d spiel so, dass du deine 2d objekte auf jeweils 2 dreiecke rendert und dir stehen auch die rotationsmatrizen zur verfügung. dann brauchst du dein auto nur einmal malen und kannst es um die z-achse rotieren, damit es dann in jede mögliche richtung fahren kann.

    Sorry, aber das ist Quatsch.

    Wenn er kein richtiges 3D Object hat und z.B. nur die Hintenansicht als Textur, dann kann er kein Bild erzeugen, dass das Auto in ein irgendwie gearteten Seitenlage oder Frontlage zeigt.
    Entweder er hat alle Zwischenstufen einer Drehung als Bilder oder er hat ein textuiertes 3D-Modell.



  • Da find ich leider nichts 😞



  • Sorry, ich bin von einer reinen "von-oben-ansicht" ausgegangen. tut mir leid wenn ich das falsch verstanden habe



  • Hast du nicht 🙂
    Ist nur von oben, aber ich will das Auto eben drehen können 😕
    Und ein Array von 360 Perspektiven ist doch ETWAS umständlich 🙂
    Aber wie baue ich ein 2D objekt in einer 3D Umgebung auf? Die Suche hat bei meinem Suchskill leider keine ertragreiche Ernte erbracht 🙂

    Kevin



  • Na, dacht ich es mir doch... ich nix quatsch, ihr quatsch :p

    also, um dir ein tutorial zu empfehlen, müsste ich erstmal wissen, was du schon kannst... Wenn du noch gar nichts mit dx gemacht hast, würde ich erstmal mit einem grundlagen-tutorial anfangen, und versuchen ein einzelnes dreieck auf den bildschirm zu bringen.
    wenn du dann soweit bist, kannst du ja mal versuchen, das dreieck zu texturieren. dazu gibts haufenweise tutorials, sollte nicht schwer sein, ein verständliches zu finden.
    Und ob du es glaubst oder nicht, wenn du es geschafft hast, ein texturiertes dreieck zu rendern, dann hast du so gut wie alles, was du brauchst, um einfache 2d-spiele unter d3d zu coden. wenn du dich durch die paar sachen durchgearbeitet hast, dann kennst du auch die nötigen matrizen, die für das drehen und verschieben zuständig sind.

    mfg



  • Hallo!
    Das is kein prob - hab den Code davon angeguckt und is auch nich sonderlich schwer, nur müsste ich dafür wissen, man "malt" ja zwischen Begin und EndScene was aufn Device - nur wo krieg ich den HDC her für die StandardGDIfunktionen? Habs noch net rausgefunden da mein VC++ rumheult und ich keine DropDownliste mehr zur Verfügung habe - aber das sollte nicht weiter das Problem sein.

    Würd mich über deine Hilfe sehr freuen und bin dir bisher auch sehr dankbar

    Kevin



  • GDI-Funktionen würde ich nicht benutzen. Mal dein Bild mit einem Malprogramm deiner Wahl und lade das Bild dann mit der Funktion D3DXCreateTextureFromFileEx aus der D3DX-Bibliothek. Du bekommst dann einen Zeiger auf das Bild. Beim Rendern verknüpst du deine Dreiecke mit diesem Zeiger (Funktion: SetTexture).

    Sorry für diese knappe Antwort, aber ich habe jetzt leider keine Zeit mehr. Wie gesagt, darüber gibts haufenweise gute Tutorials. Ich kann erst morgen abend wieder vorbeischauen.

    cu



  • Wenn du ein wenig Gedult hast werde ich in ein paar Tagen mein Tool fertig habe. Damit lässt ein 3DModel laden um ein bestimmten Winkel rotieren und als Bitmap speichern.



  • Nur wenn ich das mit GDI Funktionen male ist das Bild ganz oben (also überschreibt die anderen) das ich als letztes male, ist das bei D3D auch wenn die Dreiecke dann alle auf exakt der selben Position sind?



  • Ja, ist so. Aber ich habe auch noch nei Autos gesehen, die übereinander fahren bei einem Autorennen und man noch alle sehen konnte 🙂

    2D-Grafik macht man am besten mit transformierten Vertizes, ich bin auch grad dabei, sowas zu machen. Ich schreib mir grad ne 2D-Engine, bin grad bei 2DMap, also lauter Tiles, auch 2D

    viel Spaß 🙂

    Gruß, Maxi



  • Nich Autos du Hammel 🙂

    Hintergrund, Straße, Gullideckel, Auto 🙂 Nach Priorität geordnet 😉

    Wie funktioniert das mit den Vertizen? Gibts da Infos im Netz? Was ist besser? Die Dreiecke oda die Vertizen?

    Danke euch für die freundliche Hilfe!

    Kevin



  • Such dir mal nenTut üver transformierte Vertizes. Vertizes sind einfach nur die Eckpunkte von dreiecken.
    transformiert heißen sie deshalb, wiel sie schon transformiert sind und nicht Transformationslinie(heißt das so) durchlaufen.

    Du muss eben das, was oben ist, als letztes malen-



  • Bei vortransformierten Vertizes hast du aber nicht mehr die Möglichkeit, mit einfachen Mitteln zu drehen...



  • Deswegen: Billboarding



  • Besser Orthogonale Viewmatrix. Dann kann man sogar zur Tiefensortierung den ZBuffer nehmen.


Anmelden zum Antworten