Понедельник, 11 Ноября 2024, 02:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Правильная подгрузка 3д моделей
radionДата: Понедельник, 25 Июня 2018, 21:07 | Сообщение # 1
частый гость
Сейчас нет на сайте
Здравствуйте, уважаемые игроделы. Делаю занятный хоррор про школу. Структура школы такова: 4 этажа, на каждом этаже много кабинетов,
которые заполнены множеством интересностей.
Соответственно, встает вопрос о оптимизации. Не думаю, что разумно прогружать всю школу. Очень тяжело.
Как можно сделать прогрузку по этажам? Например, я на первом этаже. Прогружаю полностью коридор и кабинеты, которые находятся в определенном радиусе от меня и которые можно открыть.
Готов выслушать другие идеи
InsaneSystemsДата: Понедельник, 25 Июня 2018, 21:28 | Сообщение # 2
участник
Сейчас нет на сайте
radion, самый простой способ - отключать ненужные объекты, пока игрок непосредственно не имеет к ним доступа. Делать это можно с помощью простого триггера во время перехода с этажа на этаж. Ещё вариант - Occlusion Culling. Правда не подскажу, насколько он хорош в закрытых помещениях.
radionДата: Понедельник, 25 Июня 2018, 21:39 | Сообщение # 3
частый гость
Сейчас нет на сайте
InsaneSystems, не особо хороший вариант. Если игрок откроет все комнаты, то нагрузка будет приличная
URGINSANДата: Понедельник, 25 Июня 2018, 22:16 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
radion,
1 вариант. Расставь триггеры. Как только поднимаешься на новый этаж, юзай gameobject.SetActive(true/false);
2 вариант. Засунь все модели из кабинета в один объект. В зависимости от расстояния до этого объекта применяй все тот же gameobject.SetActive(true/false);


Я на драйве
martukДата: Понедельник, 25 Июня 2018, 22:37 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Я в свое время пошел куда дальше. Мне нужно было визуализировать квартиры всего города. Вот записал.
Подсказка такая: На самом деле на весь город рендерится лишь три этажа квартир. Но сам эффект очень клевый.
InsaneSystemsДата: Понедельник, 25 Июня 2018, 23:07 | Сообщение # 6
участник
Сейчас нет на сайте
radion, если у вас модели фурнитуры на одном этаже вызывают проблемы с производительностью, то возможно стоит оптимизировать сами модели, а не способ их отображения. А так же посмотреть в сторону Static и Dynamic Batching, использовать Level of Detail (LOD).

Сообщение отредактировал InsaneSystems - Понедельник, 25 Июня 2018, 23:09
radionДата: Вторник, 26 Июня 2018, 14:55 | Сообщение # 7
частый гость
Сейчас нет на сайте
InsaneSystems, вызывает проблемы все :)
Пытался изучить lod, но толковых уроков не нашел, так и забил на это дело. Посоветуйте, если знаете

Добавлено (26 Июня 2018, 14:55)
---------------------------------------------
martuk, насколько я понял, это префабы?

martukДата: Вторник, 26 Июня 2018, 21:00 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
radion, Префаба три. один - фасад дома (один этаж), второй - интерьер и планировка (один этаж). Третий - контроллер, который по началу задают количество этажей и генерирует под собой уже дом. Он же (при близком расстоянии камеры) контролирует этажи. Т.е. всегда на самом деле рисуется текущий этаж, верхний и нижний текущего дома на весь город.
radionДата: Вторник, 26 Июня 2018, 21:42 | Сообщение # 9
частый гость
Сейчас нет на сайте
martuk, идея интересная, но в моем случае такое не прокатит
martukДата: Вторник, 26 Июня 2018, 23:46 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
radion, вариант в лоб: Тупо считать дистанцию до "нагруженной комнаты". Или сделать еще проще, а это разделить комнаты на отдельные уровни. Ничего плохого в этом нет и вполне приветствуется игроками.
radionДата: Среда, 27 Июня 2018, 05:11 | Сообщение # 11
частый гость
Сейчас нет на сайте
Сильно пострадает динамика игры. Думаю, что имеет смысл разбить кабинеты на лоды. Чем ближе к тригеру, тем более детализированная комната становится
MANMANAДата: Среда, 27 Июня 2018, 08:53 | Сообщение # 12
почти ветеран
Сейчас нет на сайте
А чем не подходит
Код
gameobject.SetActive(true/false)
?

Или
Код
GetComponent<Renderer>().enabled = true
?
Например, как реализовано здесь

Unity Field of View Fog of War


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг