Идея касательно LOD - Форум Игроделов
Пн, 20 Май 2024, 03:59 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Идея касательно LOD
Идея касательно LOD
DadaJavaДата: Ср, 13 Июн 2012, 20:03 | Сообщение # 1
 
Сообщений: 44
Награды: 2
Репутация: 30
Статус: Offline
В общем, о LOD я впервые задумался, когда в моём проекте количество объектов перевалило за несколько сотен, а FPS начало резко падать из-за дальности прорисовки. Сначала были попытки с дальностью прорисовки, битмапингом, FOG и просто уменьшением колличества объектов.
Конечно многое из этого помогло, но сцена перестала выглядеть эффектно, пропал весь антураж и картинка превратилась в "чёрно-белую пародию на Аватар".
Позже я оставил идею оптимизации до лучших времён, когда проект будет хотя бы готов на несколько десятков процентов. Но настало лето. Времени у меня появилось достаточно для того чтобы осмыслить жизнь, заняться спортом, придумать что-то оригинальное и просто поваляться на диване, размышляя об том как я всё это буду делать.
И вот оно, прозрение, кажется что-то гениальное пришло в мою голову. И этим гениальным была идея осуществления моего плана по оптимизации проекта.
О этот сладкий вкус осознания того что ты придумал нечто новое, и о горечь осознания рельности. Позже, пораскинув мозгами я понял, что идея по сути не так и гениальна, и стать новым гением от игровой индустрии у меня нет и шанса, ведь то что я придумал, скорее всего уже придумал кто-то другой, и я просто не натыкался на это.
И вот, господа игроделы, настало время всё разложить по префабам, и раскрыть вам мой гениальный замысел:
Идея такова, написать скрипт который делит всю сцену на пять групп - важные объекты, чуть менее важные объекты, середнячки, тоже требуется, грузиться в последнюю очередь. Далее скрипт вешается на пустой объект во все пять групп распледеляются объекты и весь замысел в том что каждая группа имеет свои параметры прорисовки. Например первая группа прогружается сразу и целиком, вторая чуть меньше и тд.
А теперь вопросы:
1. Можно ли такое реализовать через скрипт?
2. Может быть уже есть готовый пример такого LOD?
 
СообщениеВ общем, о LOD я впервые задумался, когда в моём проекте количество объектов перевалило за несколько сотен, а FPS начало резко падать из-за дальности прорисовки. Сначала были попытки с дальностью прорисовки, битмапингом, FOG и просто уменьшением колличества объектов.
Конечно многое из этого помогло, но сцена перестала выглядеть эффектно, пропал весь антураж и картинка превратилась в "чёрно-белую пародию на Аватар".
Позже я оставил идею оптимизации до лучших времён, когда проект будет хотя бы готов на несколько десятков процентов. Но настало лето. Времени у меня появилось достаточно для того чтобы осмыслить жизнь, заняться спортом, придумать что-то оригинальное и просто поваляться на диване, размышляя об том как я всё это буду делать.
И вот оно, прозрение, кажется что-то гениальное пришло в мою голову. И этим гениальным была идея осуществления моего плана по оптимизации проекта.
О этот сладкий вкус осознания того что ты придумал нечто новое, и о горечь осознания рельности. Позже, пораскинув мозгами я понял, что идея по сути не так и гениальна, и стать новым гением от игровой индустрии у меня нет и шанса, ведь то что я придумал, скорее всего уже придумал кто-то другой, и я просто не натыкался на это.
И вот, господа игроделы, настало время всё разложить по префабам, и раскрыть вам мой гениальный замысел:
Идея такова, написать скрипт который делит всю сцену на пять групп - важные объекты, чуть менее важные объекты, середнячки, тоже требуется, грузиться в последнюю очередь. Далее скрипт вешается на пустой объект во все пять групп распледеляются объекты и весь замысел в том что каждая группа имеет свои параметры прорисовки. Например первая группа прогружается сразу и целиком, вторая чуть меньше и тд.
А теперь вопросы:
1. Можно ли такое реализовать через скрипт?
2. Может быть уже есть готовый пример такого LOD?

Автор - DadaJava
Дата добавления - 13 Июн 2012 в 20:03
DekterevДата: Ср, 13 Июн 2012, 23:17 | Сообщение # 2
 
Сообщений: 1753
Награды: 16
Репутация: 892
Статус: Offline
Делить модели на группы по важности нет смысла. Нужно делать несколько версий моделей, разного качества. Каждая из версий отличается детализацией геометрии, качеством текстур и применяемыми шейдерами.
Первый уровень LOD с максимальным качеством модели, отображается скриптом игроку с близкого расстояния, до 5..10м.
Второй уровень детализации, отображаемый игроку примерно с 5..10м до 20...30м. Менее детализированная геометрия, хуже качество текстур, попроще шейдер в виде обычного Diffuse. Но при этом качество отображаемой картинки на экране не должно заметно отличаться от первого уровня LOD
Третий уровень делается в самом худшем качестве и отображается игроку на расстоянии от 20...30м. Количество поликов по сравнению с первым уровнем должно быть раз в 100 меньше, разрешение текстур минимально возможное.
На все это добро вешается скрипт LOD-а, который автоматически подгружает нужный из префабов, в зависимости от того, насколько далеко находится игрок от объекта.
Quote (Chel-Game)
2. Может быть уже есть готовый пример такого LOD?

ProektEK выкладывал систему LOD для Unity3D. Возможно, понадобится обновить скрипт под последнюю версию движка.


Поиск | Правила | Новые сообщения
 
СообщениеДелить модели на группы по важности нет смысла. Нужно делать несколько версий моделей, разного качества. Каждая из версий отличается детализацией геометрии, качеством текстур и применяемыми шейдерами.
Первый уровень LOD с максимальным качеством модели, отображается скриптом игроку с близкого расстояния, до 5..10м.
Второй уровень детализации, отображаемый игроку примерно с 5..10м до 20...30м. Менее детализированная геометрия, хуже качество текстур, попроще шейдер в виде обычного Diffuse. Но при этом качество отображаемой картинки на экране не должно заметно отличаться от первого уровня LOD
Третий уровень делается в самом худшем качестве и отображается игроку на расстоянии от 20...30м. Количество поликов по сравнению с первым уровнем должно быть раз в 100 меньше, разрешение текстур минимально возможное.
На все это добро вешается скрипт LOD-а, который автоматически подгружает нужный из префабов, в зависимости от того, насколько далеко находится игрок от объекта.
Quote (Chel-Game)
2. Может быть уже есть готовый пример такого LOD?

ProektEK выкладывал систему LOD для Unity3D. Возможно, понадобится обновить скрипт под последнюю версию движка.

Автор - Dekterev
Дата добавления - 13 Июн 2012 в 23:17
ЛевшаДата: Чт, 14 Июн 2012, 12:41 | Сообщение # 3
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (Chel-Game)
когда в моём проекте количество объектов перевалило за несколько сотен, а FPS начало резко падать из-за дальности прорисовки.

Cдаеться мне други мои, что лод тут абсолютно не виновен и не при деле. Юня, *слава юнитекам* спокойно может схавать 3 000 000 поликов на средних машинах...
FPS у тебя падает судя по всему из за неправильной организации материалов и их кол-ва.
А раз ты не указал в своем анализе производительности кол-во drawCalls, осмелюсь предположить что ты вообще про них не в курсе.

Что касательно идеи такого построения ЛОДов, зачем изобретать кривой велосипед, если уже существуют ровные?


X.cor.R (Prologue)
 
Сообщение
Quote (Chel-Game)
когда в моём проекте количество объектов перевалило за несколько сотен, а FPS начало резко падать из-за дальности прорисовки.

Cдаеться мне други мои, что лод тут абсолютно не виновен и не при деле. Юня, *слава юнитекам* спокойно может схавать 3 000 000 поликов на средних машинах...
FPS у тебя падает судя по всему из за неправильной организации материалов и их кол-ва.
А раз ты не указал в своем анализе производительности кол-во drawCalls, осмелюсь предположить что ты вообще про них не в курсе.

Что касательно идеи такого построения ЛОДов, зачем изобретать кривой велосипед, если уже существуют ровные?

Автор - Левша
Дата добавления - 14 Июн 2012 в 12:41
DadaJavaДата: Чт, 14 Июн 2012, 12:48 | Сообщение # 4
 
Сообщений: 44
Награды: 2
Репутация: 30
Статус: Offline
Дело в том, что в сцене очень большое колличество деревьев, поскольку действие происходит в лесу, все модели хорошего качества и если не снизить колличество объектов или понизить дальность прорисовки то получается не очень красивый вид.
 
СообщениеДело в том, что в сцене очень большое колличество деревьев, поскольку действие происходит в лесу, все модели хорошего качества и если не снизить колличество объектов или понизить дальность прорисовки то получается не очень красивый вид.

Автор - DadaJava
Дата добавления - 14 Июн 2012 в 12:48
ЛевшаДата: Чт, 14 Июн 2012, 13:01 | Сообщение # 5
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (Chel-Game)
в сцене очень большое колличество деревьев, поскольку действие происходит в лесу, все модели хорошего качества

Это ни о чем не говорит... для того чтоб исправить проблему нужно сделать правильный анализ, выяснить причину (поставить верный диагноз).
Для этого нужны точные исходные данные. Сколько деревьев? Сколько трисов в каждом дереве? Сколько материалов?
При грамотном построении сцены легко можно поставить 1000000 деревьев, иметь при этом всего 10 drawCalls и FPS равный 2000 (и это без ЛОДов).
А при неграмотном 100 деревьями повесить комп насмерть... и никакие ЛОДы тут не помогут. smile


X.cor.R (Prologue)
 
Сообщение
Quote (Chel-Game)
в сцене очень большое колличество деревьев, поскольку действие происходит в лесу, все модели хорошего качества

Это ни о чем не говорит... для того чтоб исправить проблему нужно сделать правильный анализ, выяснить причину (поставить верный диагноз).
Для этого нужны точные исходные данные. Сколько деревьев? Сколько трисов в каждом дереве? Сколько материалов?
При грамотном построении сцены легко можно поставить 1000000 деревьев, иметь при этом всего 10 drawCalls и FPS равный 2000 (и это без ЛОДов).
А при неграмотном 100 деревьями повесить комп насмерть... и никакие ЛОДы тут не помогут. smile

Автор - Левша
Дата добавления - 14 Июн 2012 в 13:01
DadaJavaДата: Чт, 14 Июн 2012, 13:17 | Сообщение # 6
 
Сообщений: 44
Награды: 2
Репутация: 30
Статус: Offline
Деревьев 200000, материалов много
 
СообщениеДеревьев 200000, материалов много

Автор - DadaJava
Дата добавления - 14 Июн 2012 в 13:17
ЛевшаДата: Чт, 14 Июн 2012, 13:22 | Сообщение # 7
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (Chel-Game)
Деревьев 200000, материалов много

Ну вот, я оказался прав. cool


X.cor.R (Prologue)
 
Сообщение
Quote (Chel-Game)
Деревьев 200000, материалов много

Ну вот, я оказался прав. cool

Автор - Левша
Дата добавления - 14 Июн 2012 в 13:22
DadaJavaДата: Чт, 14 Июн 2012, 17:16 | Сообщение # 8
 
Сообщений: 44
Награды: 2
Репутация: 30
Статус: Offline
Просто с оптимизацией я никогда не работал. Подскажите пожалуйста ссылку на какие-нибудь туториалы или что-нибудь в этой теме.

Добавлено (14.06.2012, 17:16)
---------------------------------------------
В официальном мануале, тему про оптимизацию я читал.

 
СообщениеПросто с оптимизацией я никогда не работал. Подскажите пожалуйста ссылку на какие-нибудь туториалы или что-нибудь в этой теме.

Добавлено (14.06.2012, 17:16)
---------------------------------------------
В официальном мануале, тему про оптимизацию я читал.


Автор - DadaJava
Дата добавления - 14 Июн 2012 в 17:16
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Идея касательно LOD
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024