Просто ищу какое-то общее руководство, прошло очень много времени с тех пор, как я возился с чем-то 3D, и ландшафт сильно изменился, если вы простите за ужасный каламбур.
У меня есть ряд высокодетализированных 3D-моделей (более 3 миллионов лиц в каждой), созданных на основе реальных сканирований местности, которые необходимо отобразить в браузере. Они «нерегулярны» и не могут быть визуализированы из сетки / матрицы высот или чего-либо еще.
Я разделил модели на более мелкие объекты и сгенерировал LOD для каждого объекта (3 уровня), который создает общий набор вершин и три индексных буфера, ссылающихся на некоторые или все вершины, которые я постепенно передаю JS-клиенту.
Я собираюсь рендерить где-то между 500 тыс. - 1 млн полигонов в кадре, задав LOD для каждого объекта в зависимости от расстояния от камеры.
Итак, мой вопрос: как мне эффективно переключаться между этими уровнями?
Я пробовал наивный подход, который, естественно, вызывает удары и сбои в частоте кадров при отправке данных на графический процессор. Но я искал способ отправить все данные (вершины и три индексных буфера) в память графического процессора, а затем сказать ему выполнить рендеринг с конкретным индексным буфером, скажем, с низким разрешением, а затем переключиться на средний или высокий res буфер по мере приближения камеры.
Решение Three.LOD (), похоже, бесполезно для меня, поскольку оно просто дает тот же сбой fps, что и мое наивное решение.
Был бы признателен за некоторые рекомендации, хотя и общие. Ваше здоровье!