ich frage mich gerade, wie man ein typisches Terrain-Patch - bestehend aus n * n Vertices - am geschicktesten organisieren würde, so dass es mit nur einem Draw-Aufruf gerendert werden kann. Eine Triangle List wäre wohl die nicht so tolle Brute-Force-Methode. Mit Triangle Strips wären es ohne Tricks jedoch n - 1 Draw-Aufrufe. Mit "Trick" meine ich das hier:
Indem man an die ursprünglichen Triangle Strips jeweils ein künstliches Dreieck mit Null Fläche hängt, bekommt man das ganze Patch mit nur einem DrawIndexed-Aufruf hin. Dafür wird der Index Buffer größer, was jedoch kein Problem sein sollte, wenn die Patches nicht zu groß werden.
Wie sieht es aber mit Instancing aus? Man hätte nur ein Triangle Strip, der eine Reihe des Patches ausmacht und den entsprechenden Index Buffer dazu. Zusätzlich allerdings noch einen Instance Buffer, in dem für jede Reihe ein Positionsoffset steht. Das ginge dann ja mit nur einem DrawIndexedInstanced-Aufruf, und es gäbe keine künstlichen Nullflächen-Dreiecke. Hat damit jemand schon Erfahrungen sammeln können, ob das auch wirklich Vorteile anstatt Nachteile bzgl. der Performanz gibt?
Oder macht man das ganz anders mit den Patches und ich komm nur nicht drauf? ;)