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

11

22.08.2005, 17:52

Du hast recht. Aber was ist orthogonale Projektion?
Mein Projekt: Rise of the Sylvan

12

22.08.2005, 17:57

Ich hab's jetzt mal mit D3DXMatrixOrthoLH versucht. Klappt eigentlich ganz gut, nur, dass ich nicht zoomen kann.
Mein Projekt: Rise of the Sylvan

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

13

22.08.2005, 17:59

Bei orthogonaler Projektion wir die Tiefe eines Objekts außer Acht gelassen.
Bei "normaler" Projektion werden Objekte die tiefer hinter dem Bildschirm sind trotz gleicher Größe kleiner Dargestellt. Dieser Effekt wird bei O.P. außer Acht gelassen (genau dass was 3D-Modeller bei den Seitenansichten machen).

mfg Philipp

14

22.08.2005, 18:01

Danke für eure Hilfe, es funktioniert jetzt.
Mein Projekt: Rise of the Sylvan

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

15

22.08.2005, 19:06

Zitat von »"Crash"«

Ich hab's jetzt mal mit D3DXMatrixOrthoLH versucht.


Achgottchen! Selbst ist der Mann! Biste auch mit schneller ;)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        // Temporäre Matrix erstellen

    static math::matrix<4, 4, float> temp;

        // Orthogonale Projektion erstellen

    temp.zero();
    temp._11 = 2.0f/static_cast<float>(width);
    temp._22 = 2.0f/static_cast<float>(height);
    temp._33 = 1.0f/(farPlane-nearPlane);
    temp._43 = nearPlane/(nearPlane-farPlane);
    temp._44 = 1.0f;

        // Projektionsmatrix setzen

    direct3d9device_->SetTransform (D3DTS_PROJECTION, &temp);

        // Es muss eine frische Matrix her mit der wir die VIEW-Matrix erstellen können

    temp.identity();
    temp._22 = -1.0f;
    temp._41 = -(static_cast<float>(width)*0.5f);
    temp._42 =  (static_cast<float>(height)*0.5f);
    temp._43 = nearPlane+0.1f;

        // Viewmatrix setzen

   direct3d9device_->SetTransform (D3DTS_VIEW, &temp);

D3DX... Pah!

Werbeanzeige