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

Anonymous

unregistriert

1

01.10.2004, 21:08

Projektionsmatrix

Hallo,

weiß jemand von euch, wie man manuell eine Projektionsmatrix erzeugt (so wie "D3DXMatrixProjection")? Also mit near und far clipping planes usw.
Tribase nutzt dabei ja anscheinend auch nur die D3DX-Funktion, oder?

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

2

01.10.2004, 21:09

soorrrry, war ich, war ausgeloggt... :rolleyes:
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

3

02.10.2004, 00:25

äh, ischer? Den TriBase will doch verhindern, das man die D3DX einbinden muss. Aber ansonsten: k. A.
Lieber dumm fragen, als dumm bleiben!

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

4

02.10.2004, 00:32

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// ******************************************************************

// Projektionsmatrix berechnen

TRIBASE_API tbMatrix tbMatrixProjection(const float fFOV,
                                        const float fAspect,
                                        const float fNearPlane,
                                        const float fFarPlane)
{
    tbMatrix mResult;

    // D3DX-Funktion benutzen

    D3DXMatrixPerspectiveFovLH((D3DXMATRIX*)(&mResult),
                               fFOV,
                               fAspect,
                               fNearPlane,
                               fFarPlane);

    return mResult;
}


So sieht's zumindest bei mir in TriBase aus... :)
Und die D3DX-Funktionen gibt's ja nicht als unkompilierten Quellcode, oder?
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

5

02.10.2004, 07:31

Hi,

nein D3DX gibbet nicht uncompiliert, da wären sonst AMD und Intel sehr stinkig drüber ;)

Aber so gehts auch (Hoffe es ist richtig so)

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
bool projection_matrix_d3d (D3DMATRIX *matrix_, 
                            float fov, 
                            float aspect, 
                            float nearPlane, 
                            float farPlane)
{
    if (fabs(farPlane - nearPlane) < 0.01f)
        return (false);

    if (fabs(sin(fov / 2)) < 0.01f)
        return (false);

    float temp = farPlane / (farPlane - nearPlane);

    ZeroMemory(matrix_, sizeof(D3DMATRIX));
    (*matrix_)._11 = aspect * (cosf(fov / 2) / sinf(fov / 2));
    (*matrix_)._22 = 1.0f   * (cosf(fov / 2) / sinf(fov / 2));
    (*matrix_)._33 = temp;
    (*matrix_)._34 = 1.0f;
    (*matrix_)._43 = -temp * nearPlane;

   return (true);
}


- Patrick

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

6

03.10.2004, 12:18

OK, vielen Danke, ich werd's ausprobieren (ich kann's zwar im Moment noch nicht testen, aber wenn's soweit ist, sag' ich, ob's geklappt hat... :) )

Danke nochmal (aber wo hast du sie her? Aus dem Kopf? in google hab ich sie nicht gefunden, und in meinen Büchern auch nicht :rolleyes: )
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

7

03.10.2004, 12:28

Die Berechnung der Matrix stand mal in der DX-Doku :)

Nee sowas kann ich net aus dem Kopf, erstell mir aber oft Matrizenzeichnungen von Matrizen damit ich sie später coden kann falls ich eine brauche :) (bisher 86 verschiedene berechnungen für OpenGL und DX)

- Patrick

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

8

03.10.2004, 12:47

Zitat von »"Patrick"«

...bisher 86 verschiedene berechnungen für OpenGL und DX...


:o staun... :o du hängst dich ja wirklich ein... :)
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

9

03.10.2004, 13:10

wieso? Ich sammle halt alles was ich finde und archiviere ;D;D;D

Reinhängen tu ich mich sogesehen in sowas nie :)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

03.10.2004, 13:10

Zitat von »"Patrick"«

C-/C++-Quelltext

1
2
3
4
5
    (*matrix_)._11 = aspect * (cosf(fov / 2) / sinf(fov / 2));
    (*matrix_)._22 = 1.0f   * (cosf(fov / 2) / sinf(fov / 2));
    (*matrix_)._33 = temp;
    (*matrix_)._34 = 1.0f;
    (*matrix_)._43 = -temp * nearPlane;

Hast Du was gegen den (nur halb so langen) "->"-Operator? :D

Werbeanzeige