|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 26.07.2003, 10:00 Titel: Verschiedene Fragen zu vektoren in Vektoren |
|
|
HI!
Also mal zum Hintergrund: Ich bin gerade dabei, eine Funktion zu schreiben, welche mir die Vertex und Indexbuffer meiner Levelgeometrie erstellt. Es gibt insg. 1 Vertexbuffer für das gesamte Level. Aber bei den Indexbuffern wird es interessant: Ich will das es pro Textur ein array von Indexbuffer-Arrays gibt. In den Indexbuffer Arrays ist jeder Eintrag ein Indexbuffer für das jeweilige material. Ein bissl anschaulicher:
Code: |
Indexbufferarray[Textur][Material];
//Dann muss man beim rendern nur noch:
for( int iT = 0; iT < Texturen; iT++ )
{
SetTexture( iT );
for( int iM = 0; iM < Materials; iM++ )
{
SetMaterial( iM );
SetIndexbuffer( Array[iT][iM] );
}
}
|
Ich denke ihr versteht was ich mein. Da ich das für meinen Leveleditor verwenden will, und dort die Geometrie flexibel ist, mach ich das mit vektoren. also in etwa so:
Code: |
vector< vector<IBuffer> > vcIndexbuffers; //[Textur][Material]
|
So, nun hab ich aber leider keinen Plan, wie ich da jetzt meine ganzen Indices reinpacken soll... ich wollt nen temporären Vektor machen:
Code: |
vector< vector< vector<WORD> > > TempVektor; //[Textur][Material][Index]
|
Und dann will ich alle Triangles durchlaufen und für jede gefundene Textur einen Vektor mit den Material-Indices Vectoren drinne zum großen vektor hinzufügen. Dann für jedes Neue material einen Material-Indices Vektor zum Textur Vektor hinzufügen. Und dann für jedes Material die ganzen indices hinzufügen. Mal nen bissl abstrackt in etwa so:
Code: |
for( Triangles )
{
if( neue textur )
{
//Füge Neuen Textur Vektor Hinzu
}
if( neues material )
{
//Füge neuen material vektor zum textur vektor hinzu
}
for( vertices )
{
//Füge vertex zum material vektor des texturen vektors des obervektors hinzu
}
}
|
Nun hab ich aber ein paar Probleme:
1. Ich weis nicht wie ich herausbekomme, wieviele Vektoren jetzt in dem Obervektor enthalten sind, oder wieviele in einem bestimmten Texturen vektor.
2. Ich weis nicht, wie ich einen neuen Texturen vektor zum obervektor hinzufügen kann, oder eben einen Material vektor zu nem bestimmten Texturvektor.
Ich hoffe, ihr wisst was ich mein, ist alles ein bissl konfus
Würde mich über schnelle antworten sehr freuen! |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 26.07.2003, 10:21 Titel: |
|
|
1. ::size()
2. push_back()
;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 26.07.2003, 10:28 Titel: |
|
|
Du bist lustig, das weis ich auch
Ich weis aber nicht, ob ich das folgendermaßen machen kann, oder nich:
Code: |
vector< vector< vector<WORD> > > vcTextures;
vector< vector< WORD > > vcMaterials;
vector<WORD> vcIndices;
vcMaterials.push_back( vcIndices );
vcTextures.push_back( vcMaterials );
vcTextures[iT][iM].push_back( 1 );
vcTextures[iT].size();
|
oder so in der Art? |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 26.07.2003, 10:56 Titel: |
|
|
Japp, das sollte gehen. ;)
Wenn du die Größe aber schon vorher weißt, ist es einfacher wenn du die Vektoren initialisierst.
vector<int> intVec(ANZAHL_DER_ELEMENTE); _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
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
|