 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Dr. Best Senior JLI'ler

Alter: 35 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.10.2004, 02:34 Titel: Kranke Index Buffer |
|
|
tach,
ich arbeite grade an einem *.3ds file loader den ich hinterher auch veröffentlichen werde. Das ding liefert einem dann alles was man sich wünscht von vertices bis materials.
Das laden des Vertex und Index Buffers klappt schon super. Dann hab ich mich an die materials gemacht. Ich hab mir gedacht um die subsets zu machen mach ich einfach mehrere index buffer.
Das hab ich dann in die tat umgesetzt. Und auf einmal seh ich da die kranksten grafikfehler.
Eigentlich sollten in den löchern von dem würfel farbige flächen sein aber die verstreuen sich wohl lieber im raum.
Ich hab schon alle scripts drei mal durchgecheckt. Hat irgendwer ne ahnung woran das liegen könnte?
Hier noch der code zum rendern:
Code: |
if(model[j].used==1)
if(model[j].F3DS){
//Objekt Transformieren
lpD3DDevice->SetTransform(D3DTS_WORLD,&model[j].Matrix);
// Den Datenstrom setzen
lpD3DDevice->SetStreamSource(0,model[j].VBuffer,sizeof(CustomVertex));
lpD3DDevice->SetVertexShader(D3D_CUSTOMVERTEX);
//materials ist die Anzahl der materials
//face[i] ist die anzahl der einträge in dem jeweiligen index buffer
for(int i=0;i<model[j].F3DS->materials;i++){
if(model[j].F3DS->face[i]!=0)
{
lpD3DDevice->SetMaterial(&model[j].F3DS->material[i]);
lpD3DDevice->SetIndices(model[j].IBuffer[i],0);
// Das Objekt wird dargestellt
lpD3DDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,model[j].F3DS->face[i],0,model[j].F3DS->face[i]/3);
}
}
}} |
_________________
Ich bin da, wer noch? |
|
Nach oben |
|
 |
Dr. Best Senior JLI'ler

Alter: 35 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.10.2004, 22:09 Titel: |
|
|
Ich hab jetzt einfach mal als drittes Argument von DrawIndexedPrimitive(...) 190 eingegeben. Und auf einmal klappt alles perfekt.
Code: | lpD3DDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,190,0,model[j].F3DS->face[i]/3); |
Es liegt also offensichtlich daran. Daher meine Frage was genau ist die Bedeutung von dem Argument? Ich werd jetzt auch noch mal rum googlen. Wenn ich's rausgefunden hab sag ich's. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
 |
Dr. Best Senior JLI'ler

Alter: 35 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.10.2004, 22:33 Titel: |
|
|
Jetzt macht alles Sinn.
MinIndex und NumVertices sind dazu da zu bestimmen in welchem bereich die verwendeten vertices sind. Das ist dazu da kapazitäten zu sparen. Alle index buffer einträge die nicht in diesem bereich sind werden dann zu irgendwelchen willkürlichen vertices siehe screenshot.
BTW schöner monolog. Ich hoffe dieses topic wird irgendwann mal jemandem den frust ersparen den ich in den letzten zwei tagen hatte. _________________
Ich bin da, wer noch? |
|
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
|