论坛

由用户创建的信息 slaytor
17 April 2017 20:01
Ни разу не делал ничего подобного, но представляю себе примерно такую схему обобщенно:

- есть заранее отрисованные объекты (все что есть вообще), хранящиеся на сервере по отдельности

- 3х-мерный массив карты с адресацией по осям координат, где лежит тип объекта, то есть json, где по xyz указан тип объекта и его углы направления

- процедура генерации этого массива, которая учитывает свойства каждого типа объекта и их совместимости для склеивания, наложения и т.п.

- сфера видимости камеры помноженная на 1.2 (эта цифра зависит от скорости движения)

- в памяти нужно всегда держать только эту сферу, в виде куска из общего json

- серверный обработчик, получающий абсолютные координаты камеры и отдающий список типов объектов, которые присутствуют в сфере, где координаты камеры в центре, по одному (только в одном экземпляре)

- клиентский обработчик, который грузит в кэш объекты из списка (которых там еще нет), то есть в кэше, всегда лежат объекты в единичном экземпляре, которые присутствуют в сфере

- серверный обработчик, получающий абсолютные координаты камеры и отдающий сферу (кусок json), где координаты камеры всегда в центре

- клиентский обработчик, который обновляет с сервера json (сферы) при движении

- клиентский обработчик, контролирующий чтобы все из сферы было отображено на сцене и удалено лишнее (что за пределами)

- к примеру, есть 4 уровня детализации: с 0 до 0.3 (радиус сферы) - 1 уровень … и с 0.9 до 1.2 - 4 уровень детализации (самые примитивные lod)


Пожалуйста, поправьте, если я что-то не учел и схема не рабочая или дополните или покритикуйте.
04 April 2017 08:06
Привет.
Только начинаю изучать возможности движка, подскажите пожалуйста,
очень интересует возможность создавать огромные безшовные карты.

Т.е. можно ли путем загрузки и выгрузки ресурсов сделать огромный мир и чтобы это не сказалось на требованиях к памяти и т.п.?
На пример, планету на миллион квадратных км.
Если такое можно, подскажите куда смотреть?