-2 голоса
 
1109 просмотров
2.04.2019 / 15:24  Death

Отрисовка 3д карты

В коде отображает только видимые тайлы и карта хоть 10к на 10к будет, работать будет всё время со скоростью рисовки того, что попадает на экран.
А как быть с 3д? Камера направлена в точку, угол обзора, в 3-х мерном пространстве. Нужно отрисовать полигоны, которые видны камере, а если упростить, пусть будет 3д кубы(массив 3-х мерный точек).
Ответы
 
0 голосов
 
# 3.04.2019 / 00:59  RblSb
Quick Start > 3D frustum culling with libgdx
https://github.com/libgdx/libgdx/wiki/3D-Graphics

А лучше начать отсюда:
https://www.opengl.org/archives/resources/faq/technical/clipping.htm
Или отсюда:
https://en.wikipedia.org/wiki/Clipping_(computer_graphics)
https://en.wikipedia.org/wiki/Hidden-surface_determination

Для тайловых 3d карт в первую очередь необходима реализация склеивания мешей в наименьшее количество, вместо создания каждого куба отдельно. Если тайлы одинаковые и не статичны в трансформациях, можно смотреть в сторону instance rendering.
https://en.wikipedia.org/wiki/Geometry_instancing
 
0 голосов
 
# 2.04.2019 / 15:42  Askalite
Всё также, нужные чанки выгружаются, пихаются в 3D движок и тот сам отрисовывает нужное. Что надо знать:
- Пирамида видимости.
- Чанки, подгрузка.
Всего: 2

Реклама

Мы в соцсетях

tw tg yt gt