JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Billboards animieren

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



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 12:51    Titel: Billboards animieren Antworten mit Zitat

Kann man bei Billboards (die aus 2 Dreiecken erzeugt wurden) wie bei Sprites eine Animation aus einer Texturdatei auslesen (wie bei den Sprites) oder ist man gezwungen, mehrere Dateien auszulesen. Oder kann man aus einer Datei auslesen und dabei die einzelnen Frames in einem Vector abspeichern und dann Frame für Frame rendern lassen?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 12:59    Titel: Antworten mit Zitat

Jede Methode die du beschreibst funktioniert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 13:08    Titel: Antworten mit Zitat

Ok,wenn alles klappt: Wie macht man das dann aus einer Datei?
Bei Sprites ging es ja etwa so:

Code:

    RECT r;
    // dieses Rechteck speichert die Position
    // des Frames in der Oberfläche
    r.left   = m_Column * m_Width;
    r.right  = r.left + m_Width;
    r.top    = m_Line * m_Height;
    r.bottom = r.top + m_Height;

    m_lpSprite->Draw(m_lpTexture,
                     &r,
                &m_vScale,
                     &m_vRotationCenter,
                     m_Rotation,
                     &m_vPosition,
                     0xFFFFFFFF);




Also anhand eines definierten Bereichs konnte die entsprechenden Stelle aus der Textur selektiert und gezeichnet werden. Wie sieht das denn jetzt bei so nem Billboard aus?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 13:15    Titel: Antworten mit Zitat

Du musst da die Texturkoordinaten anpassen, so dass nur der Ausschnitt genommen wird, den du willst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 14:44    Titel: Antworten mit Zitat

Ja, aber wie übergibt man denn Koordinaten:

Code:

m_lpD3DDevice->SetTexture(0,m_lpTexture);


Das ist die Zeile, die die Textur übergeben soll.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 15:05    Titel: Antworten mit Zitat

Texturkoordinaten sind Teile der Vertices. Damit bestimmst du, welcher Teil der Textur an dem entsprechenden Vertex verbunden werden soll. Du solltest nicht ganz so schnell neue Sachen ausprobieren, sondern dich erst einmal mit den Grundlagen vertraut machen.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 15:26    Titel: Antworten mit Zitat

Ja, aber wie übergibt man da die Texturkoordinaten, wenn ich sie schon irgendwo abgespeichert hab, bzw berechnen lasse, wenn ich die Segmentanzahl und größe habe?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 16:03    Titel: Antworten mit Zitat

Ich kann nur wiederholen, was ich gerade gesagt habe. Die Texturkoordinaten sind Teil der Vertices - man "übergibt" keine Texturkoordinaten. Schau dir doch einfach mal an, wie man ein Quad mit einer Textur rendert - vorher hat alles andere wenig Sinn.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 15.08.2004, 16:40    Titel: Antworten mit Zitat

Das hab ich noch hingekriegt. Jetzt will ich auch nen Schritt weiter. Ich hab da einfach nen Texturzeiger an diese Funktion übergeben, fertig.
Aber das was du sagst, geht bei mir noch nich ganz in Kopp.

Also du sagst, jeder Vertex hat Texturkoordinaten, richtig?

So, wie ich das verstanden hab, ist für jedes Vertex immer eine Koordinate reserviert.
Code:

// Definition der Vertex-Struktur, ohne Farben für die Dreiecke
struct CustomVertex{
    FLOAT x, y, z;    // die untransformierte Position des Vertex
    FLOAT nx, ny, nz; // die Normale
    FLOAT tu, tv;     // Texturkoordinaten
};

Zumindest mit der Struktur.

Was ich noch weiß ist, dass man Multitexturing machen kann (Mehrere Texturen vermischen und auf eine Fläche rendern).

Ok, du sagst: Man übergibt Vertizes. Soll jetzt bei einer 16Frame -animation ein jeder Vertex jeweils 16 Texturkoordinaten bekommen oder wie hab ich das Verfahren zu verstehen?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


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

BeitragVerfasst am: 15.08.2004, 16:54    Titel: Antworten mit Zitat

Wenn du nu8r die textur auswechselst und auch nur den ersten texturestage nutzt dann brauchst du auch nur ein Set von texturkoordinaten, wenn du aber wirklich Multitexturing anwendest (mehrere texturen werden übereinander geblendet) dann brauchst du auch mehrere Texturkoordinaten Sets.
_________________
"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
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