JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Grösse X-Files

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Schreiberling
Mini JLI'ler



Anmeldedatum: 28.04.2007
Beiträge: 4

Medaillen: Keine

BeitragVerfasst am: 12.06.2007, 18:20    Titel: Grösse X-Files Antworten mit Zitat

Hallo zusammen,

ich habe das Beispiel aus dem Buch (Kapitel 29) abgeändert um eine andere x-File zu laden. Das ganze klappt auch soweit, es gibt nur ein Problem, die x-File ist dan viel zu gross.

Wie kann ich die Grösse (mit gleichen Proportionen) einer x-File verändern? (die x-File ist nicht von mir selbst).

Bitte helft mir...
Gruss Schreiberling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
51m0n
JLI'ler


Alter: 32
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 12.06.2007, 18:31    Titel: Antworten mit Zitat

Hi
Meinst du das Objekt, dass in der X-File enthalten ist? Wenn ja, dann solltest dur dir mal das angucken:
D3DXMatrixScaling
IDirect3DDevice9::SetTransform

Aber das wird in Kapitel 27 doch auch angesprochen oder?
Guck mal bei 27.2 Objekte rotieren und verschieben.

Wenn du dann eine Skalierungs-, Rotations- und Translationsmatrix hast, dann musst du die wie folgt multiplizieren, um die Endmatrix zu erhalten:
Scaling*Rotation*Translation

Diese musst du dann per SetTransform setzen und die Matrix wird für alle folgenden Objekte benutzt, die du renderst.

MfG 51m0n
_________________
Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schreiberling
Mini JLI'ler



Anmeldedatum: 28.04.2007
Beiträge: 4

Medaillen: Keine

BeitragVerfasst am: 12.06.2007, 18:44    Titel: Antworten mit Zitat

hm,

ich dachte die TranslationMatrix wäre für die Verschiebung des Würfels da.

Also wird die TranslationMatrix mit dem der anderen beiden Matrixen multipliziert und ergibt so den neuen Matrixwert?

Kann ich dann einfach:
D3DXMatrixTranslation(&TranslationMatrix, 0.5f, 0.5f, 0.5f);
um die grösse zu halbieren?

oder red ich dummes Zeug? Sorry, anfänger Wink

Gruss Schreiberling

EDIT:
Ich dachte die TranslationMatrix wird einfach hinzuaddiert um die Position zu ändern. Ich will aber das die Grösse des ganzen verändern (mit gleichen Proportionen, also eine Multiplikation/Division).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 12.06.2007, 18:52    Titel: Antworten mit Zitat

Translation ist verschiebung, Skalation vergrößern und Transformation kann ne ganze Menge sein (Transformation, Skalation, Rotation ...).
D.h. erstellst du eine Skalationsmatrix und hängst sie per Multiplikation an die Transformationsmatrix an.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
51m0n
JLI'ler


Alter: 32
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 12.06.2007, 18:54    Titel: Antworten mit Zitat

D3DXMatrixTranslation ist in der Tat nur für die Verschiebung da.
Du erstellst am Besten 3 Matrizen. Jeweils für Rotation, Skalierung und Translation. Diese füllst du dann mit den Entsprechenden Werten und am Ende muliplizierst du alle und du erhälst die Endmatrix, die du an SetTransform übergeben musst.

Bsp:
CPP:
D3DXMATRIX Transform; // Endmatrix
D3DXMATRIX Scaling;
D3DXMATRIX Rotation;
D3DXMATRIX Translation;

D3DXMatrixScaling(&Scaling, 0.5f, 0.5f, 0.5f); // Die Größe jeweils um die Hälfte verringern
D3DXMatrixIdentity(&Rotation); // keine Rotation
D3DXMatrixTranslation(&Translation, 10.0f, 0.0f, 4.0f); // Objekt verschieben

Transform = Scaling * Rotation * Translation; // Endmatrix erstellen

D3DDevice->SetTransform(D3DTS_WORLD, &Transform); // Matrix setzen


In diesem Beispiel ist die Matrix Rotation überflüssig, weil das Objekt nich rotiert wird, habs vollständigkeitshalber mal dazugenommen.
_________________
Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schreiberling
Mini JLI'ler



Anmeldedatum: 28.04.2007
Beiträge: 4

Medaillen: Keine

BeitragVerfasst am: 12.06.2007, 19:19    Titel: Antworten mit Zitat

ich danke!!! Es funktioniert!!!

51m0n for president. Eines Tages errichte ich dir für diese Tat einen Tempel Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schreiberling
Mini JLI'ler



Anmeldedatum: 28.04.2007
Beiträge: 4

Medaillen: Keine

BeitragVerfasst am: 13.06.2007, 10:37    Titel: Antworten mit Zitat

noch eine dumme Frage (sorry, hab Zeitprobleme bei meiner Projektarbeit).

Meine X-Files haben keine Texturen. Sind einfach nur (schnee)weiße Figuren.
Gibt es eine (möglichst einfache) Möglichkeit die Figuren in einer einzelnen Farbe einzufärben? (zB.: eine ganze Figur rot).

schonmal vielen dank im Vorraus.


EDIT: Hat sich erledigt, hatte einen Fehler in der Materialzuweisung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound 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