Index/Vertex-Buffer mit dynamischer Größe



  • Hi! Ich frage mich im moment ob es möglich ist, die Größe eines Vertex oder Index Buffers zur Laufzeit zu erhöhen. Ich plane so eine Art Map-Editor. Die ganze geschichte mit dem Terrain ist bereits fertig und nun soll man auch die möglichkeit haben Indoor Level zu bauen. Jedes Mesh soll seinen eigenen Index und Vertex Buffer haben, und selbstverständlich soll man auch neue Vertices dem Mesh Hinzufügen können. Bisher habe ich das so gelöst das ich jedes mal wenn ein Vertex hinzu kommt den Buffer frei gebe, und anschließend mit der neuen Größe erstelle und anshcließend fülle, doch vieleicht gibt es ja eine schnellere variante?



  • das ich jedes mal den Buffer frei gebe, und anschließend mit der neuen Größe erstelle und anshcließend fülle

    Geht nicht anders.

    doch vieleicht gibt es ja eine schnellere variante?

    Allozier' Deine Buffer so gross dass Du nicht *jedes* mal einen neuen brauchst.


  • Mod

    du kannst statt um einen, gleich um viele vertices vergroessern z.b. immer 32 hinzu, so allokierst du nicht unmengen overhead aber auch nicht unendlich oft.

    der memory manager einer graphikkarte hat auch eine gewisse gratularitaet die er einhaellt, der letzte vmem manager den ich schrieb hatte z.b. 4096byte. entsprechend macht es nicht viel sinn vertexweise zu vergroessern.



  • Falls deine größenänderungen nicht wärend der Laufzeit kommen, sondern wärend irgendwelcher Berechnugnen könntest du auch in einen memoryBlock schreiben und dann hinterher alles auf einmal reinstopfen.


Log in to reply