cpu трассировки лучей? Bvh, kd tree, octree?
а сцена статичная? и почему не gpu
Да, статика. Пока не гпу, потом и на гпу сделаю. Пока чисто прощупать как оно работает
думаю octree вполне подойдет
А для динамики что лучше будет?
А почему бы сразу на гпу не делать
Ну такие условия. Это что то вроде конкурса
Simd
Какой бы ты simd не прикручивал, тот же bvh будет в разы быстрее
kd-tree на мой взгляд работает быстрее всего, чисто в плане кода даже, но работает только для статической геометрии. Поэтому тут лучше другой подход. Все объекты уровня помещаешь в дерево bvh, где каждый объект это лист собственно, а уже внутри листа сам объект разбиваешь kd деревом.
В bvh тебе надо спускаясь по каждому узлу дерева считать пересечение, хоть там когда и не много, но это всё же дополнительные расходы. Тогда как kd этого не требует
Поэтому, если у тебя пространство насыщено полигонами, kd в любом случае лучше
@EdgyrVarEmrays А учитывая, что bvh можно перестраивать на лету, то ты сможешь двигать и вращать объекты, а как только ты найдёшь пересечение луча с ограничивающей фигурой объекта, то дальше уже ты этот луч трансформируешь в пространство объекта, с помощью матрицы модели наверно можно или чем-то похожим и как только луч будет в пространстве объекта, тогда ты делаешь обход по kd дереву этого объекта, которое ты можешь посчитать один раз и хранить в памяти и использовать только рид онли
Обсуждают сегодня