|
Правильная подгрузка 3д моделей
|
|
| [1] radion [25 Июня 2018, 21:07] |
Здравствуйте, уважаемые игроделы. Делаю занятный хоррор про школу. Структура школы такова: 4 этажа, на каждом этаже много кабинетов, которые заполнены множеством интересностей. Соответственно, встает вопрос о оптимизации. Не думаю, что разумно прогружать всю школу. Очень тяжело. Как можно сделать прогрузку по этажам? Например, я на первом этаже. Прогружаю полностью коридор и кабинеты, которые находятся в определенном радиусе от меня и которые можно открыть. Готов выслушать другие идеи |
|
| [2] InsaneSystems [25 Июня 2018, 21:28] |
|
radion, самый простой способ - отключать ненужные объекты, пока игрок непосредственно не имеет к ним доступа. Делать это можно с помощью простого триггера во время перехода с этажа на этаж. Ещё вариант - Occlusion Culling. Правда не подскажу, насколько он хорош в закрытых помещениях. |
|
| [3] radion [25 Июня 2018, 21:39] |
|
InsaneSystems, не особо хороший вариант. Если игрок откроет все комнаты, то нагрузка будет приличная |
|
| [4] URGINSAN [25 Июня 2018, 22:16] |
radion, 1 вариант. Расставь триггеры. Как только поднимаешься на новый этаж, юзай gameobject.SetActive(true/false); 2 вариант. Засунь все модели из кабинета в один объект. В зависимости от расстояния до этого объекта применяй все тот же gameobject.SetActive(true/false); |
|
| [5] martuk [25 Июня 2018, 22:37] |
Я в свое время пошел куда дальше. Мне нужно было визуализировать квартиры всего города. Вот записал. Подсказка такая: На самом деле на весь город рендерится лишь три этажа квартир. Но сам эффект очень клевый. |
|
| [6] InsaneSystems [25 Июня 2018, 23:07] |
radion, если у вас модели фурнитуры на одном этаже вызывают проблемы с производительностью, то возможно стоит оптимизировать сами модели, а не способ их отображения. А так же посмотреть в сторону Static и Dynamic Batching, использовать Level of Detail (LOD).
Сообщение отредактировал InsaneSystems - Понедельник, 25 Июня 2018, 23:09 |
|
| [7] radion [26 Июня 2018, 14:55] |
InsaneSystems, вызывает проблемы все  Пытался изучить lod, но толковых уроков не нашел, так и забил на это дело. Посоветуйте, если знаетеДобавлено (26 Июня 2018, 14:55) --------------------------------------------- martuk, насколько я понял, это префабы? |
|
| [8] martuk [26 Июня 2018, 21:00] |
|
radion, Префаба три. один - фасад дома (один этаж), второй - интерьер и планировка (один этаж). Третий - контроллер, который по началу задают количество этажей и генерирует под собой уже дом. Он же (при близком расстоянии камеры) контролирует этажи. Т.е. всегда на самом деле рисуется текущий этаж, верхний и нижний текущего дома на весь город. |
|
| [9] radion [26 Июня 2018, 21:42] |
|
martuk, идея интересная, но в моем случае такое не прокатит |
|
| [10] martuk [26 Июня 2018, 23:46] |
|
radion, вариант в лоб: Тупо считать дистанцию до "нагруженной комнаты". Или сделать еще проще, а это разделить комнаты на отдельные уровни. Ничего плохого в этом нет и вполне приветствуется игроками. |
|
| [11] radion [27 Июня 2018, 05:11] |
|
Сильно пострадает динамика игры. Думаю, что имеет смысл разбить кабинеты на лоды. Чем ближе к тригеру, тем более детализированная комната становится |
|
| [12] MANMANA [27 Июня 2018, 08:53] |
А чем не подходит
Код gameobject.SetActive(true/false) ?
Или
Код GetComponent<Renderer>().enabled = true ? Например, как реализовано здесь
Unity Field of View Fog of War |
|