2010-12-28 17 views
4

Ich versuche, Direct3D zu verwenden, um 2D-Grafiken zu rendern, wie von allen seit der Vernachlässigung von DirectDraw empfohlen. Es gibt wirklich keine 3D-Ness, die mir wichtig ist, und ich möchte nur Dinge tun, wie Linien, Kreise und Blit-Bilder übereinander zeichnen. Meine Fragen sind also2D-Grafik mit Direct3D

  1. Ich muss eine Menge Bilder aus Dateien laden, und zeichnen Sie sie aufeinander. Wären Texturen der richtige Weg?
  2. Sehr dumme Frage, aber ich kann nichts finden: Wie rendern Sie eine Oberfläche auf eine andere?
  3. Sollten Sie alles auf eine einzelne Textur rendern und dann als Sprite auf den Bildschirm zeichnen oder einfach nur viele Texturen zeichnen?
  4. Wie zeichnen Sie Linien usw. auf eine Textur/Oberfläche/Sprite? Ich nehme an, dass es einen besseren Weg gibt, als einen Gerätekontext zu erstellen und GDI zu verwenden, um darauf zuzugreifen?

Antwort

3
  1. Ja
  2. 2 Dreiecke erstellen Quad bilden. Stellen Sie die UV-Werte entsprechend ein. UV-Werte werden im Bereich von 0 bis 1 eingestellt. Bei einer Auflösung von 1024x1024 (oder tatsächlich jeder Auflösung, weshalb dies so gemacht wird), ist das obere linke Bild 0,0 und das untere rechte Bild 1,1. ID3DXSprite wird Ihnen hier helfen.
  3. Es ist am besten, mehrere "Frames" in einer Textur zu platzieren, um zu vermeiden, dass die Textur zu oft geändert wird (das ist teuer).
  4. Sie könnten D3DPT_LINELIST/STRIP ... verwenden, die 2 Dreiecke verwenden (Siehe ID3DXLine).
Verwandte Themen