|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 18.02.2004, 13:48 Titel: Texturkoordinaten sparen? |
|
|
Hallo,
ich arbeite momentan an einem Terrain. Ich möchte gerne eine Menge Texturen verwenden
1. Gras
2. Fels
3. Sand
4. Alphamap zum Mischen (Gras+Fels)
5. Alphamap zum Mischen (Gras+Sand)
6. Lightmap
7. Bumpmap?
8. EnvMap?
Also wenigstens 6 Texturen. Die Texturen 1,2,3 haben die gleichen Texturkoordinaten (u,v), genauso wie (4,5,6,7?,8?). Gibt es einen Weg nicht 8 Texturkoordinaten verwenden muss?
Also
struct TVertex
{
float x,y,z;
float u1,v1;
float u2,v2;
};
anstatt
struct TVertex
{
float x,y,z;
float u1,v1;
float u2,v2;
float u3,v3;
float u4,v4;
float u5,v5;
float u6,v6;
float u7,v7;
float u8,v8;
};
Gibt es da eine Chance?
C. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.02.2004, 14:35 Titel: |
|
|
Wo genau liegt das Problem einfach die ersten Texturcoordinaten nochmal anzusprechen? Per Vertexshader klappt das. _________________ "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 |
|
|
Mr.X Junior JLI'ler
Anmeldedatum: 15.04.2003 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 18.02.2004, 16:11 Titel: |
|
|
ohne VS!
schau mal nach dieser Funktion
Zitat: |
HRESULT SetTextureStageState( DWORD Stage,
D3DTEXTURESTAGESTATETYPE Type,
DWORD Value
); |
Und als D3DTEXTURESTAGESTATETYPE speziell
Zitat: |
D3DTSS_TEXCOORDINDEX
|
Macht genau das, was Du brauchst. Also setzt für die jeweilige Texturestage ein entsprechendes Texturkoordinatenset. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2004, 13:08 Titel: |
|
|
@Mr. X:
Super danke, genau das was ich suchte. Habe ich irgendwie zwar schon 10x mal gelesen aber konnte mich nicht mehr erinnern. Danke.
Vielleicht noch eine Amkerung in diesem Zusammenhang, habe bestimmt zwei Stunden gebraucht und wäre fast wahnsinnig geworden:
Wenn man eine Texturransformation mit z.B.
GetDevice()->SetTransform(D3DTS_TEXTURE0, &MatTex0);
setzen will, sollte man unbedingt darauf achten, dass die Matrix als 3x3 Matrix interpretiert wird (2D Texturkoordinaten vorausgesetzt). Die Skalierung und die Rotation (u,v) liegen an der gleichen Stelle, die Translation ist eine Reihe höher. Es wird die rechte obere 3x3 anstatt die koplette 4x4 Matrix genutzt.
C. |
|
Nach oben |
|
|
|
|
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
|