пятница, 16 февраля 2018 г.

ускорение просчета сцен без построения bvh и прочих ускоряющих структур

  • этап инициализации. делается 1 раз на CPU.
    переделывается для каждого изменения сцены.
    шагов инициализации мало и они выполняются быстро-быстро
    1. для каждого bounding box находится центральная точка(ЦЕНТЕРОИД) и сохраняется
    2. для каждого ЦЕНТЕРОИДА строится массив индексов по x, y, z
    3. отсортировать 3 массива индексов по значениям x, y, z
  • этап нахождения пересечения луча с объектами на GPU.
    похоже на прохождение структуры grid, но без построения структуры.
    1. при прохождении ячейки куба найти по большей разнице среди x, y, z приоритетную ось, по которой найти объекты, ЦЕНТЕРОИДы которых в пределах ячейки куба
    2. для каждой ячейки создать второй уровень "виртуальной grid" и проходить детальнее таким же образом, как описано в предыдущем шаге
поиск по сортированному массиву происходит с помощью модификации бинарного поиска и потому происходит очень быстро. мне нужно будет только знать список ЦЕНТЕРОИДОВ и сортированные 3 массива индексов.

Комментариев нет:

Отправить комментарий