Heraus Vertexpunkten des Indexbuffers herausfinden wie viele Polygone verwendet werden



  • Was soll denn das mit den hunderten Index-Buffern?
    Ein einzelner reicht doch, da passen doch alle Faces rein, solange Du nicht über 2^24 Indizes verwenden willst (das ist die Grenze der meisten Grafikkarten).
    Man kann Deine Fortschritte übrigens sehr schön hier im Forum verfolgen, wenn man sich all die Threads anguckt 😉



  • Aber wie soll ein Indexbuffer reichen? Ich muss doch vor jedem Face sagen welche Textur und welches Material verwendet werden soll. Und da ich über DrawIndexedPrimitive die Faces zeichne brauche ich doch mehrere Indexbuffer. Mehrere Vertexbuffer brauche ich nur aufgrund der Performance, da ich sonst beim Rendern bei der Anzahl der Vertizen immer das Maximale angeben muss, was nicht wirklich an er Performance spart 🙂

    Ich mache Fortschritte? 😉



  • Surkevin schrieb:

    Aber wie soll ein Indexbuffer reichen?

    Ganz einfach! Du merkst Dir, wo die Indizes für jedes Material beginnen. Wozu gibt es denn wohl den Parameter "StartIndex" bei DrawIndexedPrimitive? Und wenn Du die Vertizes im Vertex-Buffer clever anordnest, musst Du auch nicht auf mehrere Buffer zurückgreifen. Jedes Wechseln kostet Zeit.



  • Hey das ist doch mal ne Idee! GUT dass ich mir die Funktion DrawIndexedPrimitive so genau angeguckt hab 😕

    Danke dir *küss* 😉

    Ich hoffe das dicke S hinter Vertizes ist keine Anspielung *g*

    Jetzt brauche ich nur noch eine Lösung für das Problem vom Konvertieren von .X -> meins.

    Wenn die super D3DXLoadMesh funktionen große Dateien nicht wirklich laden können habe ich ein Problem 😞

    Dann muss ich mir wohl ein anderes ModelFormat raussuchen, welches von ModelProgrammen (milkshape oder 3dsm) unterstützt wird, welches ich dann konvertiere.

    Oder was meinst du/ihr?

    Kevin 😃



  • TomasRiker schrieb:

    Surkevin schrieb:

    Aber wie soll ein Indexbuffer reichen?

    Ganz einfach! Du merkst Dir, wo die Indizes für jedes Material beginnen. Wozu gibt es denn wohl den Parameter "StartIndex" bei DrawIndexedPrimitive? Und wenn Du die Vertizes im Vertex-Buffer clever anordnest, musst Du auch nicht auf mehrere Buffer zurückgreifen. Jedes Wechseln kostet Zeit.

    Nur zu sagen an welcher Stelle des Indexbuffers das Material anfängt reicht nicht. Komisch.



  • Nicht? Bei mir schon!



  • Mann muss auch sagen, wo's aufhört?



  • Das muss man doch sowieso.
    Theoretisch wäre es aber garnicht nötig, denn normalerweise hört es da auf, wo das nächste anfängt, oder wenn es das letzte ist, da, wo der Index-Buffer zu Ende ist.



  • TomasRiker schrieb:

    Das muss man doch sowieso.
    Theoretisch wäre es aber garnicht nötig, denn normalerweise hört es da auf, wo das nächste anfängt, oder wenn es das letzte ist, da, wo der Index-Buffer zu Ende ist.

    Ist mir klar, nur Kevin auch?



  • Hallo!
    Ich hab da ein Problem mit. Es reicht nicht wenn ich nur sage bei welcher IndexID er anfängt, ich muss dazu noch sagen bei welchem Vertex. Also mit dem Parameter MinVertex. Da gibt es nur Probleme. Der malt die ersten 2 Materialobjekte richtig, danach nur sehr komisch. Ich habe folgende Parameter übergeben:

    1: D3DPT_TRIANGLELIST
    2: Die Position des ersten Vertex(es) im Vertexbuffer des zu malenden Materialobjektes
    3: Wie viele Vertizen das Material besitzt
    4: Die Position des ersten Vertex(es) im Indexbuffer des zu malenden Materialobjektes
    5: Die Anzahl der zu malenden Polygone

    mach ich da irgendwas bei falsch?

    Kevin



  • Als benutzte Vertizen kannst du eigentlich alle angeben. Da du ja ehh das ganze Objekt zeichnest (zwar in mehreren Aufrufen), sollte das nicht schlecht für die Performance sein.



  • oh doch, ist es. Das macht einen enormen Performanceunterschied bei extremhigh polygonen aus. Als ich mein Rießenmodel in sehr viele Vertex/Indexbuffer aufgeteilt habe lief alles flüssig. Davor als ich nur einen zur Verfügung hatte und bei jedem Aufruf alle Vertizen angegeben habe ruckelte es ohne Ende. Von daher...



  • Ist natürlich jetzt die Frage, wie gross der Buffer war, wie genau er angelegt war und was evtl. sonst noch anders war. Es gibt IMHO eine "ideale" Grösse für statische VBs die aber über normalen Models lag.


Anmelden zum Antworten