1) Суем вершинные\индексные буферы N объектов в один большой вершинный\индексный подходящего размера
2) Пилим вершинный шейдер в котором определяем массив юниформ матриц количеством N
3) Для каждой вершины k-го объекта запиливаем дополнительный параметр указывающий на номер матрицы трансформации для этого объекта( те матрицы что в шейдере ), можно засунуть в D3DCOLOR - то бишь цвет.
4) В шейдере - берем этот "цвет" - выковыриваем из него номер матрицы, которой эту вершину нужно трансформировать, и затем трансформируем.
5) Имеем N объектов отрисованных за один DIP.
|
так и делался инстансинг, до того как появился хардварный инстансинг. в старых демках ксорса было.
ежели объекты статические, то и вовсе матрицы не нужны, а просто взял склеил всё в огромные куски.