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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

05.12.2011, 13:16

Wie genau hast du deine Translationsmatrix umgebaut? Sind da noch weitere Matritzen im Spiel? Die Multiplikationsreihenfolge von Matritzen ist in OpenGL auch anders rum als in DirectX...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

05.12.2011, 13:26

@David_pb: Das mit dem unterschiedlichem Speicherlayout ist bekannt. Trotzdem Danke.


Wieso fragst du dann? Trotzdem bitte!
@D13_Dreinig

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

13

05.12.2011, 13:44

@David_pb: Sorry, ich hatte gedacht du beziehst dich auf das unterschiedliche Speicherlayout (Row-Major / Column-Major). Aber du meins wahrscheinlich das selbe wie Dot 12:14.

@Dot:
(kannst du noch meine Frage bezüglich meines Torus beantworten. Ich will den kleinen wieder kreiseln sehen ;-))

Vorher:
//m.m11=1.0f; m.m12=0.0f; m.m13=0.0f; m.m14=0.0f;
//m.m21=0.0f; m.m22=1.0f; m.m23=0.0f; m.m24=0.0f;
//m.m31=0.0f; m.m32=0.0f; m.m33=1.0f; m.m34=0.0f;
//m.m41= x; m.m42= y; m.m43= z; m.m44=1.0f;

Jetzt:
m.m11=1.0f; m.m21=0.0f; m.m31=0.0f; m.m41=0.0f;
m.m12=0.0f; m.m22=1.0f; m.m32=0.0f; m.m42=0.0f;
m.m13=0.0f; m.m23=0.0f; m.m33=1.0f; m.m43=0.0f;
m.m14= x; m.m24= y; m.m34= z; m.m44=1.0f;

@all: Was um alles in der Welt ist denn bei openGL noch anderst als bei DirectX ????
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

05.12.2011, 13:47

Und dieses m ist auch im Column-Major Format? Multiplizierst du die Matrix noch mit einer anderen Matrix?

@all: Was um alles in der Welt ist denn bei openGL noch anderst als bei DirectX ????

Gibt eben ein paar kleine aber feine Unterschiede, z.B.: Bei Texturen und sonstigen Surfaces ist der Ursprung links unten und nicht links oben. Auch sind Texturkoordinaten in OpenGL gegenüber Pixelkoordinaten nicht um 0.5 verschoben wie in D3D9 (mit D3D10 wurde das aber angepasst). Der Clipspace ist zwar auch in OpenGL linkshändig, erstreckt sich aber in z-Richtung von -1 (near) bis 1 (far) und nicht von 0 bis 1 wie in D3D.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (05.12.2011, 14:00)


stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

15

05.12.2011, 14:39

Hallo

Hier meine Def. der Translationsmatrix.
Multiplizieren tue ich die nur in meinem TorusAlg.
(Und zukünftig wenn ich eine Modelmatrix erzeugen will)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
union
 {
  /*
  Mathematische order [memory index layout]
  11[0]  12[4]  13[ 8]   14[12]
  21[1]  22[5]  23[ 9]   24[13]
  31[2]  32[6]  33[10]  34[14]
  41[3]  42[7]  43[11]  44[15]
  */
  struct
  {
   float m11; float m21; float m31; float m41;
   float m12; float m22; float m32; float m42;
   float m13; float m23; float m33; float m43;
   float m14; float m24; float m34; float m44;
  };
  
  float m[16];
 };
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

Werbeanzeige