Best Way? Objekt-Mesh Design?
Verfasst: 04.07.2013, 12:03
Aktuell bin ich damit beschäftigt für meine Engine die Objekt-Mesh Strukturen aufzubauen. Aktuell habe ich pro Objekt 1...n Mesh Objekte, von denen jede Mesh über ein VBO + IBO für die Geometriedaten verfügt. Layout, Shader usw. werden pro Mesh per Material definiert. D.h. pro Frame render ich mehre Meshes und damit habe ich auch mehrere Buffer die ich aktivieren muss.
Nun meine Überlegung ist das so Sinnvoll? Oder würde es mehr Sinn machen, z.B. die Vertexdaten in einem VBO vorzuhalten, und bei komplexeren Objekten die übrigen Meshes auf SubMeshes/Parts aufzuteilen, die nur den IBO beinhalten aber alle das gleiche VBO referenzieren. In dem Fall müsste ich nur die Indexbuffer mehrfach aktivieren und hätte mehrere glDrawElement calls ...
Mich würde brennend interessieren wie Eure Erfahrungen in dem Bereich sind. Was hat sich bewährt, was weniger? Auch im Hinblick darauf, dass z.b. zur Laufzeit einzelne Meshes/Materials getauscht werden müssen um z.B. Deformationen und Schäden darzustellen. Gleiches gilt fürs Skinning. Macht es ggfs. auch Sinn gleich bei Objekten Subobjekte einzuplanen, d.h. einen Graphen aufzuspannen bsp. Tragfläche Raketen oder würdet Ihr erst zur Laufzeit, wenn die Trennung erforderlich ist, ggfs. Meshes und Ihre Submeshes zu eigenen Objekten machen?
Nun meine Überlegung ist das so Sinnvoll? Oder würde es mehr Sinn machen, z.B. die Vertexdaten in einem VBO vorzuhalten, und bei komplexeren Objekten die übrigen Meshes auf SubMeshes/Parts aufzuteilen, die nur den IBO beinhalten aber alle das gleiche VBO referenzieren. In dem Fall müsste ich nur die Indexbuffer mehrfach aktivieren und hätte mehrere glDrawElement calls ...
Mich würde brennend interessieren wie Eure Erfahrungen in dem Bereich sind. Was hat sich bewährt, was weniger? Auch im Hinblick darauf, dass z.b. zur Laufzeit einzelne Meshes/Materials getauscht werden müssen um z.B. Deformationen und Schäden darzustellen. Gleiches gilt fürs Skinning. Macht es ggfs. auch Sinn gleich bei Objekten Subobjekte einzuplanen, d.h. einen Graphen aufzuspannen bsp. Tragfläche Raketen oder würdet Ihr erst zur Laufzeit, wenn die Trennung erforderlich ist, ggfs. Meshes und Ihre Submeshes zu eigenen Objekten machen?