Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

31.07.2010, 13:28

DirectX9 - 2D mit untransformierten Vertizes

Guten Morgen (zumindest für mich :D),

ich hatte überlegt in meinem Framework die Sprites, Tiles etc. mit "normalen" Vertizes zu rendern, weil ich dann die World-Matrix
als eine Art 2D-Kamera (zum scrolling) verwenden kann. Habe ich das so richtig verstanden?

Was wären da noch für Vorteile und Nachteile?
Würde ich gerne vorher wissen, da es schon eine Menge zum Umstellen gibt.

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

2

31.07.2010, 13:33

Vorteile.. der den du genannt hast.. Nachteile.. hmm fällt mir jetzt nichts rechts ein abgesehen davon, das du offensichtlich erst darauf umstellen musst ^^
Btw. könntest du auch wie beim 3D Weltmatrizen je Objekte (Sprite, Tile usw.) verwenden und die Kameramatriz zum scrollen.

Du musst dir nur jedenfalls Gedanken machen, wie du die Positionen speicherst - nach wie vor "vortransformiert" (also in ScreenKoordinaten) oder ob du nicht ein "eigenes" Koordinatensystem aufbaust -> mit der Transformationsmatrix kannst du letztlich alles am Schluss wieder in Form pressen.

3

31.07.2010, 13:38

Danke, dann mach ich das so:)
Aber ich kann auch z.B. den Spieler bei {1300/900}(also screenKoordinaten) plazieren und einfach die Kamera dorthin bewegen oder?

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

4

31.07.2010, 13:39

Jup gar kein Problem.
Du musst deine Kamera eben einfach nur dort hinstellen - in der Hinsicht macht die Kamera das was eine Translationsmatrix macht, nur eben "gegenläufig".

5

31.07.2010, 13:42

Cool, danke!
Dann muss ich den Kamera Effekt doch nicht mehr "faken" :D

Muss nur noch lernen mit Matrizen umzugehen :P

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

6

31.07.2010, 13:44

Hab meine Facharbeit über das Matrizen zur Transformation geschrieben. Kannst ja da mal rein schauen :D
Allerdings gehts da um 3D, vielleicht findest dazu im Netz was besseres speziell zu 2D allein.. solltest du das allerdings alles verstanden haben, ist 2D dann erst recht kein Problem - da lässt du das Zeug mit Tiefe und Z einfach weg ^^

7

31.07.2010, 14:08

Sehr gut geschrieben!
Werde mich gleich an die Matrix-Klasse setzen :)

8

30.11.2010, 15:19

Hi Leute,

ich lasse diesen toten Thread mal wieder auferstehen, weil ich mich enldich mal an das hier besprochene Thema
ranwagen will :)
Leider gibt es einige wichtige Fragen:

1. Was ist der unterschied zwischen "D3DXMatrixOrthoLH" und "D3DXMatrixPerspectiveLH"?
2. Wie ist es möglich trotzdem die Positionen in Screenkoordinaten anzugeben?
3. Gibt es einen optimalen FoV?

Das sind so zur Zeit meine einzigen Probleme. Objekte rendern hab ich alles schon geschafft.
Nur waren sie halt zu groß/klein. (z.B. eine 64x64 Textur war größer als das :D)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

30.11.2010, 15:39

1. Was ist der unterschied zwischen "D3DXMatrixOrthoLH" und "D3DXMatrixPerspectiveLH"?

Das eine macht eine orthogonale Projektion (Normalprojektion) und das andre eine perspektivische (Zentralprojektion). Für 2D willst du natürlich ersteres.

2. Wie ist es möglich trotzdem die Positionen in Screenkoordinaten anzugeben?

Ja, indem du eine entsprechende orthogonale Projektionsmatrix verwendest. Die Frage ist aber: Willst du wirklich Screenkoordinaten? Ich meine es hätte doch sicher auch seinen Reiz unabhängig von der tatsächlichen Auflösung zu sein, oder? ;)

3. Gibt es einen optimalen FoV?

Abgesehen davon dass das für 2D wohl eher nicht relevant ist, was genau wäre deiner Meinung nach ein optimaler FoV?

10

30.11.2010, 18:29

Danke für die Antwort erst mal :)

Willst du wirklich Screenkoordinaten? Ich meine es hätte doch sicher auch seinen Reiz unabhängig von der tatsächlichen Auflösung zu sein, oder?


Ja! Natürlich ist das reizvoll. Ich will es so machen wie bei der SFML, wo man ja einfach das Objekt X auf die Position [1400, 500] setzt und es erst dann
sichtbar wird wenn die Kamera entsprechend in der Nähe ist.

Abgesehen davon dass das für 2D wohl eher nicht relevant ist, was genau wäre deiner Meinung nach ein optimaler FoV?


Also mit dem FoV kann man wie ich es verstanden habe auch zoomen, oder?
Zumindset würde ich gerne zoomen können :D
Ist das überhaupt mit einer orthogonalen Projektion umsetzbar?

Werbeanzeige