Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

1

16.06.2003, 21:50

DrawIndexedPrimitive

Ja, damit habe ich meine Probleme. Wenn ich alle Vertizes auf einmal zeichnen will, dann funktioniert alles wunderbar, ich sehe meinen vollständig texturierten Würfel :) .

Da ich aber auf jede Seite eine andere _Textur legen will, muss ich jede Seite einzeln zeichnen. Die erste Seite(die vordere) funktioniert gut, ich gebe einfach na, dass DrawIndexedPrimitive nur die ersten Dreiecke zeichnen soll:

Quellcode

1
2
tbDirect3D::GetDevice()->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 
                    0, 0, 8, 0, 2);


Wenn ich jetzt aber die Rückwand zeichnen will, dann muss erst ab dem 3.Vertex angefangen werden, zu zeichnen. Ich mache das so:

Quellcode

1
tbDirect3D::GetDevice()->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,                      0, 0, 8, 2, 2);

Aber wenn ich das so mache,

Quellcode

1
tbDirect3D::GetDevice()->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,                   0, 0, 8, 2, 2);
,
dann sehe ich nur ein Dreieck, und wenn ich dann z.B. 10 angebem, dann schwirren dieDreiecke überall rum und flackern total.

Was mach ich da falsch?

Gruß, Maxi

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

16.06.2003, 22:07

Der vorletzte Parameter (StartIndex) ist falsch!
Wenn Du da einfach 2 angibst, dann nimmt er den dritten Vertex vom ersten Dreieck und noch die nächsten zwei.
Angenommen in Deinem Index-Buffer kommt zuerst die Vorderseite und dann die Rückseite. Dann müsstest Du, um nur die Rückseite zu rendern, den Wert 6 angeben, denn die Vorderseite braucht ja schon 6 Indizes, und nicht 2...
Bist Du sicher, dass Du das Prinzip verstanden hast? StartIndex gibt den Start-Index an, nicht den Start-Vertex!

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

3

16.06.2003, 22:10

Ups, jetzt hab ichs kapiert. Ich glaub ich muss mich das nächste mal wirklich konzentrieren und genau lesen...

Aber trotzdm Danke, denn so langsam nimmt die Platte schon gestalt an...

Gruß, Maxi

Werbeanzeige