Unreal Engine 4 https://uengine.ru/forum/ |
|
Загрузка и выгрузка чанков карты в генерации мира https://uengine.ru/forum/viewtopic.php?f=19&t=69853 |
Страница 1 из 1 |
Автор: | Monolag [ 31 дек 2019, 23:12 ] |
Заголовок сообщения: | Загрузка и выгрузка чанков карты в генерации мира |
Здравствуйте, пытаюсь разобраться в генерации мира. Более-менее получилось написать алгоритм, который рандерит терреин в стиле майнкрафта Нужно немного подредактировать значения в simplex noise. Вопрос: Естественно, никакой компьютер не позволит создать условно бесконечную карту без выгрузки и загрузки ее частей. Поэтому, хочу узнать: как, собственно, эти чанки выгружать? Не нужно писать про level streaming, пожалуйста, это совершенно не то. Существует плагин, который выгружает и загружает, но я совершенно не могу понять как они это делают. https://github.com/AndrewScheidecker/BrickGame Занимаюсь этим ради личного интереса, поэтому, если у меня получится сделать нормальный оптимизированный террейн, то обязательно выложу код |
Автор: | gary_cho [ 09 янв 2020, 00:32 ] |
Заголовок сообщения: | |
быстро глянул код. там руками создаются кубики и складываются в буфер. Карта вроде как из чанков. Всё складывается в компоненты. И вроде где-то там видел идёт проверка на попадание в камеру. Можно воспользоваться октодеревом для таких целей, все воксельные движки используют это. |
Автор: | Monolag [ 17 янв 2020, 23:47 ] |
Заголовок сообщения: | Re: |
gary_cho писал(а): быстро глянул код. там руками создаются кубики и складываются в буфер. Карта вроде как из чанков. Всё складывается в компоненты. И вроде где-то там видел идёт проверка на попадание в камеру. Можно воспользоваться октодеревом для таких целей, все воксельные движки используют это. Спасибо за ответ! Про октодерево не слышал никогда, почитаю. Про то, что руками создаются объекты - понял, а вот что именно делают буферы и как с ними работать - нет, было бы неплохо узнать. Я сейчас делаю довольно глупо, но работает. Сделал класс - чанк, в котором есть Instanced Static Mesh и задал ему cull distance. Выходит, что террейн - это множество отдельных экторов. Проблемно, особенно для памяти, но работает отлично :) Конечно, если разберусь с буферами, сделаю через них |
Автор: | gary_cho [ 19 янв 2020, 18:44 ] |
Заголовок сообщения: | |
чтобы отрисовать модель тебе как минимум нужен вершинный буфер( а по-хорошему ещё индекстный, для нормалей, UV и может ещё что ). Вот туда складываешь координаты вершин куба. Если ты грузишь например модель из FBX анрил сам экспортирует всё оттуда и создаёт всё сам. Но можно сделать и руками. Например есть ProceduralMeshComponent, где ты сам пишешь руками в эти буферы координаты вершин, нормали и UV. Вот у них там была функция, которая создаёт эти кубки. Те генерит все данные и раскладывает в буферы.В UE4 навигация сделана октодеревом, чтобы быстро искать пути. |
Автор: | Monolag [ 20 янв 2020, 09:09 ] |
Заголовок сообщения: | Re: |
gary_cho писал(а): чтобы отрисовать модель тебе как минимум нужен вершинный буфер( а по-хорошему ещё индекстный, для нормалей, UV и может ещё что ). Вот туда складываешь координаты вершин куба. Если ты грузишь например модель из FBX анрил сам экспортирует всё оттуда и создаёт всё сам. Но можно сделать и руками. Например есть ProceduralMeshComponent, где ты сам пишешь руками в эти буферы координаты вершин, нормали и UV. Вот у них там была функция, которая создаёт эти кубки. Те генерит все данные и раскладывает в буферы.В UE4 навигация сделана октодеревом, чтобы быстро искать пути. Отлично, большое спасибо, теперь все стало понятнее! Доводилось пользоваться ProceduralMeshComponent, так что теперь я понимаю о чем вы говорите Буду копать в эту сторону :) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |