...weiß nicht, ob ich hier überhaupt noch richtig bin (mit DirectX)...
Ich möchte die in Davids Buch empfohlene Variante einbauen, eine verringerte Dreiecksanzahl eines Modells im OcTree zu speichern. Dadurch erhoffe ich mir eine weniger rechenintensive Kollisionserkennung auf Dreiecksbasis.
Das MS SDK-Beispiel Progressive Mesh ist eigentlich ganz gut geeignet, um die notwendigen Laderoutinen zu verdeutlichen.
Es wird ein Mesh mit D3DXLoadMeshFromX geladen, dann mit D3DXWeldVertices die möglichen Dreiecke gesucht, die bei Verringerung ausgeschlossen werden können und mit D3DXGeneratePMesh verschiedene ProgressiveMeshs erzeugt.
Die Methode SetNumVertices setzt nun im entsprechend ausgewählten (von der Anzahl abhängig) P-Mesh die Anzahl der Vertices herunter oder hoch.
So, nun habe ich gedacht, dass ich einfach den Vertex- und Indexbuffer des gewünschten PMeshs lesen kann, um die Vertices in den OcTree einzulesen. Aber nö!, die eingebauten ASSERTs zeigen, dass die Indices nicht gültig sind.
Kann es sein, dass die Indices gar nicht mit angepasst werden?
Dass diese noch die originalen Indices des Meshs sind, die mit D3DXLoadMeshFromX eingelesen wurden?
Wie kann ich Indices anpassen?
(Die müssen doch ebenfalls abgeschnitten werden, wenn auch die Vertices dazu fehlen...)
Danke für jeden Tipp.