Оптимизация - выгрузка объектов из памяти.
| |
robertono | Дата: Понедельник, 18 Августа 2014, 14:08 | Сообщение # 1 |
Чокнутый Кот
Сейчас нет на сайте
| Всем привет! Вообщем мне нужно сделать, что бы во время игры игрок мог открыть окно настройки персонажа где он сразу попадет в Ангар (а он довольно большой) и по нажатию кнопки допустим сохранить он возвращался в игру. Делать это отдельной сценой нельзя, т.к. это всё должно происходить на одной сцене, что бы игрок мог быстро изменить настройки персонажа и вернуться в бой (тем более , что это мультиплеер).
Отсюда и вопрос о памяти. С помощью Instantiate можно загрузить префаб в память. А можно выгрузить как то ? Destroy ведь не делает этого вроде как. Второй вопрос. Если я просто выключу Mesh Renderer (или как он там), то видео карте уже не надо будет рендерить меш и думать о нем? (Это вопрос о производительности, достаточно ли просто отключить рендеринг дабы повысить производительность?) Ну и третий : Если я размещу ангар за 2 километра он начала карты (т.е. игрок не сможет увидеть ангар) и просто когда игрок захочет настроить персонажа его камера будет телепортироваться в ангар?
Я вроде когда то видел на форуме вопрос о выгрузке, но сейчас найти не смог. В общем заранее спасибо
|
|
| |
SarCasm | Дата: Понедельник, 18 Августа 2014, 14:18 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Цитата А можно выгрузить как то ? Destroy ведь не делает этого вроде как. Вот этого вообще не понял, а что по твоем делает этиа функция? Прячит поглубже обхект шоль? ;DD Конечна она удаляет и соотв. выгружает. Цитата Второй вопрос. Если я просто выключу Mesh Renderer (или как он там), то видео карте уже не надо будет рендерить меш и думать о нем? (Это вопрос о производительности, достаточно ли просто отключить рендеринг дабы повысить производительность?) Да можно отключать\включать рендер\скрипты\весьГО, это не будет иметь отношения к памяти, но зато лучше чем третий вариант
Моя игра Gamiron#11 - Тема Скачать
|
|
| |
robertono | Дата: Понедельник, 18 Августа 2014, 14:50 | Сообщение # 3 |
Чокнутый Кот
Сейчас нет на сайте
| SarCasm, А чем плох третий вариант? Ведь когда камера допустим в ангаре, то видеокарте не надо рендерить карту для игры, т.к. она очень далеко (а так же наоборот).Добавлено (18.08.2014, 14:50) ---------------------------------------------
Цитата SarCasm ( ) Вот этого вообще не понял, а что по твоем делает этиа функция? Прячит поглубже обхект шоль? ;DD Конечна она удаляет и соотв. выгружает. вроде не сразу. Можно даже вручную вызвать вроде Assets.UnloadUnusedAssets() что бы удалить мусор объектов из памяти. Но Instantiate и Destroy не особо добры к процессору, ибо создадут лаг при открытии ангара, так что наверно эта идея изначально не подходит.
|
|
| |
MANMANA | Дата: Понедельник, 18 Августа 2014, 16:40 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Цитата robertono ( ) Ну и третий : Если я размещу ангар за 2 километра он начала карты (т.е. игрок не сможет увидеть ангар) и просто когда игрок захочет настроить персонажа его камера будет телепортироваться в ангар?
не будет нагружать систему, только если использовать Occlusion Culling (Pro only). без него будет рендерить и нагружать.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
beril | Дата: Понедельник, 18 Августа 2014, 16:48 | Сообщение # 5 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Цитата robertono ( ) Но Instantiate и Destroy не особо добры к процессору, ибо создадут лаг при открытии ангара, так что наверно эта идея изначально не подходит. в новой версии якобы оптимизировали эти методы
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Lertmind | Дата: Понедельник, 18 Августа 2014, 17:59 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| MANMANA, Нет, если работает только Frustum Culling, объекты вне камеры не будут нагружать. Occlusion Culling - просто круче, оно не будет рендерить, то что скрыто за объектами в пределах камеры. Только что прочитал здесь.
Сообщение отредактировал Lertmind - Понедельник, 18 Августа 2014, 18:11 |
|
| |
robertono | Дата: Понедельник, 18 Августа 2014, 18:32 | Сообщение # 7 |
Чокнутый Кот
Сейчас нет на сайте
| Lertmind, я вроде этот фруструм и имел ввиду. Если объекты находятся за Far Clipping Plane то видюха не рендерит то что за ней, верно?
|
|
| |
Lertmind | Дата: Понедельник, 18 Августа 2014, 20:21 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| robertono, да. Я про слова MANMANA, из-за которых можно было подумать, что видюха будет рендерить что за камерой.
|
|
| |
DantorS | Дата: Понедельник, 18 Августа 2014, 20:46 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| А можете мне объяснить что за Frustum culling и в чём отличие от Occlusion Culling
|
|
| |
robertono | Дата: Понедельник, 18 Августа 2014, 21:05 | Сообщение # 10 |
Чокнутый Кот
Сейчас нет на сайте
| DantorS, Occlusion Culling рендерит только те объекты, которые реально видно (т.е. то чего игрок не может увидеть в данный момент рендериться не будет). А Frustrum Culling (включен сразу) рендерит только то, что входит в зону видимости камеры. Т.е. то что попадет в Field Of View игрока (т.е. то что сзади игрока рендериться не будет). За это так же отвечает Field Of View, Far clipping planes и Near clipping planes.
|
|
| |
DantorS | Дата: Понедельник, 18 Августа 2014, 21:29 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| robertono, спасибо
|
|
| |
MANMANA | Дата: Понедельник, 18 Августа 2014, 22:38 | Сообщение # 12 |
почти ветеран
Сейчас нет на сайте
| Цитата Lertmind ( ) MANMANA, Нет, если работает только Frustum Culling, объекты вне камеры не будут нагружать. Occlusion Culling - просто круче, оно не будет рендерить, то что скрыто за объектами в пределах камеры. Только что прочитал здесь.
Тогда нужно запретить игроку смотреть в сторону ангара (даже если он находится очень далеко), если сам игрок находится на карте. и, соответственно, не смотреть на карту, когда игрок находится в ангаре (это уже просто сделать)
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
Сообщение отредактировал MANMANA - Понедельник, 18 Августа 2014, 22:46 |
|
| |
robertono | Дата: Понедельник, 18 Августа 2014, 22:51 | Сообщение # 13 |
Чокнутый Кот
Сейчас нет на сайте
| MANMANA, И зачем? Обоснуйте пожалуйста.
|
|
| |
MANMANA | Дата: Понедельник, 18 Августа 2014, 23:00 | Сообщение # 14 |
почти ветеран
Сейчас нет на сайте
| Цитата MANMANA ( ) Цитата Lertmind () MANMANA, Нет, если работает только Frustum Culling, объекты вне камеры не будут нагружать.
Таким образом, если используется Frustum Culling без , и игрок находится на поле боя и смотрит на удаленный ангар (т.о. ангар попадает в область видимости каамеры) - ангар рендерится, даже если стоит за большим кубом, и удален на сто тысч километров. Lertmind дал правильную ссылку.
А я упустил момент с Far Clipping Plane. В этом вы правы.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
robertono | Дата: Вторник, 19 Августа 2014, 00:27 | Сообщение # 15 |
Чокнутый Кот
Сейчас нет на сайте
| Цитата MANMANA ( ) Таким образом, если используется Frustum Culling без , и игрок находится на поле боя и смотрит на удаленный ангар (т.о. ангар попадает в область видимости каамеры) - ангар рендерится, даже если стоит за большим кубом, и удален на сто тысч километров. Вы опять не правы. То что дальше 2000 (стандартный обрез Far Clipping Plane) не будет рендериться, соответственно ангар не будет рендериться.
|
|
| |
MANMANA | Дата: Вторник, 19 Августа 2014, 00:38 | Сообщение # 16 |
почти ветеран
Сейчас нет на сайте
| Я признался, что не заметил: Цитата MANMANA ( ) А я упустил момент с Far Clipping Plane. В этом вы правы.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
robertono | Дата: Вторник, 19 Августа 2014, 19:10 | Сообщение # 17 |
Чокнутый Кот
Сейчас нет на сайте
| Еще вопросик. Есть ли смысл полностью отказаться от коллайдеров в ангаре (т.к. им не будет применения, они там попросту не нужны) ? Повыситься ли от этого общая производительность? Ведь физическому движку не надо будет думать о этих коллайдерах (ведь их нет).
|
|
| |
SarCasm | Дата: Вторник, 19 Августа 2014, 19:16 | Сообщение # 18 |
заслуженный участник
Сейчас нет на сайте
| robertono, да
Моя игра Gamiron#11 - Тема Скачать
|
|
| |
robertono | Дата: Вторник, 19 Августа 2014, 19:57 | Сообщение # 19 |
Чокнутый Кот
Сейчас нет на сайте
| А как выгружать то, что было загружено через Resources.Load ? Именно из оперативной памяти удалять.
|
|
| |
|