Вокселизация сцены с экземплярами объектов
Я создал простую сцену в directx11, в которой плоскость представляет собой пол, с несколькими сферами, кубами и прямоугольными стенами. Загружено только 3 объекта: плоскость, куб и сфера; но куб и сфера создаются несколько раз с разным масштабированием, позициями и вращениями. Два из этих объектов являются динамическими.
Я хотел бы вокселизировать всю эту сцену (100x100x20 единиц) в воксели по 0,2 единицы, принимая во внимание экземпляры объектов, которые имеют разные масштабы и повороты.
Я прочитал несколько статей о вокселизации и имею исходный код из GPU Pro 3 "Практическая бинарная поверхность и твердое вокселизация с Direct3D 11"; но все эти статьи показывают вокселизацию отдельных объектов - взятие их треугольников и разбиение их на сетку.
Как бы расширить эти методы для учета всей сцены с несколькими экземплярами объекта?
Единственное, о чем я могу думать, - это то, что мне придется сделать нисходящее разделение октри всей сцены. Но для динамичной сцены это будет слишком дорого?
Для моей сцены я использую буфер для каждой загруженной модели, поэтому, если бы мне пришлось вокселизировать в Compute Shader, нужно ли мне копировать все три буфера в один буфер? Как мне учесть экземпляры модели?
Спасибо.