JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e79f116bdcc8ff20017d14c25a8b9ca4Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Spriteskalierung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 28.05.2004, 08:26    Titel: Spriteskalierung Antworten mit Zitat

Ich hab das Problem das wenn ich mein Sprite ungleichmässig Skaliere (x!=y) und dabei die Rotation anwende verfälschte Ergebnisse beim Resultat erscheinen. Die Skalierung müsste also noch vor der Translation und Rotation wirken. Bisher habe ich das so:

Code:

   D3DXMATRIXA16 matCombo, matRot, matScale, matTrans;

   D3DXMatrixRotationZ(&matRot,m_Rotation);
   D3DXMatrixScaling(&matScale, m_vScale.x, m_vScale.y, m_vScale.z);
   D3DXMatrixTranslation(&matTrans, m_vPosition.x+stepx, m_vPosition.y+stepy, m_vPosition.z);
   
   D3DXMatrixMultiply(&matCombo, &matRot, &matScale);
   D3DXMatrixMultiply(&matCombo, &matCombo, &matTrans);


Kann mir dabei jemand helfen ?
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 28.05.2004, 10:18    Titel: Antworten mit Zitat

Versuch mal die Matritzen andersherum zu multiplizieren.
Code:
D3DXMatrixMultiply(&matCombo, &matScale, &matTrans);


Matrixmultiplikation ist nämlich nicht kommutativ, offensichtlich.
(hab ich fesgestellt...)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 28.05.2004, 10:49    Titel: Antworten mit Zitat

Danke ohne den Tip hätte ichs vermutlich nicht nochmal versucht, obwohl ich das eigentlich wissen müsste ^^

Code:
D3DXMatrixMultiply(&matCombo, &matRot, &matTrans);
D3DXMatrixMultiply(&matCombo, &matScale, &matCombo);

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 28.05.2004, 13:19    Titel: Antworten mit Zitat

Anstatt die D3DX* Funktionen zu nutzen, kann man auch schreiben:

matCombo = matRot * matTrans* matScale;

C++ Compiler vorausgesetzt ist das manchmal übersichtlicher.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 28.05.2004, 19:00    Titel: Antworten mit Zitat

Werden erweiterte Prozessorinstruktionen genutzt wenn ich D3DX* Funktionen benutze? (in diesem Fall D3DXMatrixMultiply) Question

Und werden diese erweiterten Prozessorinstruktionen benutzt wenn man
die Matritzen so multipliziert: ? Question
Code:
matCombo = matRot * matTrans* matScale;


Rolling Eyes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 28.05.2004, 19:21    Titel: Antworten mit Zitat

Die Operatoren sind überladen (klar). Intern werden die D3DX* Funktionen aufgerufen, also ja.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 28.05.2004, 20:05    Titel: Antworten mit Zitat

AHA Razz Cool - Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum