Четверг, 28 Марта 2024, 19:12

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Оптимизация - выгрузка объектов из памяти.
Оптимизация - выгрузка объектов из памяти.
robertonoДата: Понедельник, 18 Августа 2014, 14:08 | Сообщение # 1
Чокнутый Кот
Сейчас нет на сайте
Всем привет! Вообщем мне нужно сделать, что бы во время игры игрок мог открыть окно настройки персонажа где он сразу попадет в Ангар (а он довольно большой) и по нажатию кнопки допустим сохранить он возвращался в игру. Делать это отдельной сценой нельзя, т.к. это всё должно происходить на одной сцене, что бы игрок мог быстро изменить настройки персонажа и вернуться в бой (тем более , что это мультиплеер).

Отсюда и вопрос о памяти. С помощью Instantiate можно загрузить префаб в память. А можно выгрузить как то ? Destroy ведь не делает этого вроде как.
Второй вопрос. Если я просто выключу Mesh Renderer (или как он там), то видео карте уже не надо будет рендерить меш и думать о нем? (Это вопрос о производительности, достаточно ли просто отключить рендеринг дабы повысить производительность?)
Ну и третий : Если я размещу ангар за 2 километра он начала карты (т.е. игрок не сможет увидеть ангар) и просто когда игрок захочет настроить персонажа его камера будет телепортироваться в ангар?

Я вроде когда то видел на форуме вопрос о выгрузке, но сейчас найти не смог. В общем заранее спасибо smile
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 - просто круче, оно не будет рендерить, то что скрыто за объектами в пределах камеры.
Только что прочитал здесь.


Тогда нужно запретить игроку смотреть в сторону ангара (даже если он находится очень далеко), если сам игрок находится на карте. и, соответственно, не смотреть на карту, когда игрок находится в ангаре (это уже просто сделать) smile


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. В этом вы правы. smile


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 ? Именно из оперативной памяти удалять.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Оптимизация - выгрузка объектов из памяти.
  • Страница 1 из 1
  • 1
Поиск:

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