Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 15.08.2004, 12:51 Titel: Billboards animieren |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.08.2004, 12:59 Titel: |
|
|
Jede Methode die du beschreibst funktioniert. |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 15.08.2004, 13:08 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.08.2004, 13:15 Titel: |
|
|
Du musst da die Texturkoordinaten anpassen, so dass nur der Ausschnitt genommen wird, den du willst. |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 15.08.2004, 14:44 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.08.2004, 15:05 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 15.08.2004, 15:26 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.08.2004, 16:03 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 15.08.2004, 16:40 Titel: |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.08.2004, 16:54 Titel: |
|
|
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 |
|
|
|