Оптимизация карты


Работая над своим проектом, я столкнулся с тем, что статьи по улучшению производительности просто нет. В таких ситуациях я лезу в оригинальные игровые карты, и разбираюсь что, почему и как там работает. Пару недель поизучав пути оптимизации, я составил список, который привожу здесь, с подробными инструкциями. Возможные способы оптимизации карты:


  • разбиение карты на сектора
  • обрезание ненужных полигонов террэйна
  • сведение использования PostProcessingEffect'ов к минимуму
  • использование дальности прорисовки crumbs
  • level precache (только SE4)

 


1) Разбить большую карту на сектора - очень важно. Это даст огромный плюс к производительности. Что означает разбиение на сектора? Всё просто. В свойствах моделей есть строка Custom Visibility Sectors. В этой строке прописываются сектора, в которых данная модель рендерится - т.е. её можно увидеть. Делать большое количество секторов довольно муторно, но, разбирая уровень Cloud_1_01.wld, я увидел другой способ, которым карта разбита на сектора.


Дело в том, что все эти сектора на самом деле являются лишь одной моделью. Вот она.

 


Каждый сектор - отдельная Polygon Map. Больше информации можно найти здесь: Статья о Visibility Mesh на википедии.

Если ваша карта маленькая, или просто нет желания разбираться, как делать сектора одной моделью, можно следовать этой статье: Создание простого сектора.


2) Террэйны, особенно детализированные (точнее - с большим количеством полигонов), всегда создают какую-никакую нагрузку на компьютер. Поэтому те полигоны террэйна, которые игрок не сможет увидеть НИКОГДА, следует удалить.

 

 


3) Post Processing Effect является одним из основных источников графона и тормозов. Конечно, отказываться от них не стоит. Но вполне возможно свести их использование к минимуму. Даже если их много, неиспользуемые следует отключить с помощью Event Animator'a. (подробнее: статья по Event Animator и Post Processing Effect)

Также добавлю про Streaks Source. Это источники лучей - тоже добавляют графонистости на карту, но настолько же нагружают машину. Обычно одной этой энтити хватает на всю карту.

4) Использование crumbs (обычно, травы), конечно, необходимо. Но необходимо ограничить их прогрузку. Делается это следующим путём: вместо одной энтити crumbs мы будем использовать две. Разница у них в дальности прорисовки и работы освещения.
Так выглядит настройка первой crumbs, которую игрок будет видеть у себя под ногами:

 

 

 


А это вторая crumbs, которая начинает прорисовываться там, где отгружается первая:

 


(подробнее: статья о crumbs)

5) Не видел подобного в SE3.5 (однако вполне мог пропустить, поправьте если что), но в SE4 используется предварительное кэширование уровней. В скрипте оно записано так: когда игрок начинает спускаться к переходу на группу уровней, то все они начинают грузиться. Поэтому при переходе на другой уровень в Талосе нет долгой загрузки - все переходы мгновенны. Я всё еще не знаю, как настроить предварительное кэширование в собственных уровнях. Позже я займусь и этим, а пока просто сообщу о наличии этого пункта.
______________________________________________________________________________

Итак, выходит, что самое главное в оптимизации - разбиение уровня на сектора. Сектора - главные убийцы тормозов. Хотя, как выразился Solais:

 

 


Вполне мог что-то забыть, с памятью у меня небольшие проблемы. Напомните, если что)

Всем удачного дня!

 

 



Комментарии   

[Материал]  |  № 6  |  15.03.2016  |  0  
Ох блин. Не туда комментарий вставил.
Ответ Цитата

[Материал]  |  № 5  |  15.03.2016  |  0  
Сейчас бы статью какую ни буть, для проверки. Всели работает. А то я вроде как сделал, а вот проверить как работает система не могу.
Ответ Цитата

[Материал]  |  № 4  |  13.02.2016  |  +1  
Информативная лишь на половину статья.
Ответ Цитата

[Материал]  |  № 2  |  12.02.2016  |  +1  
Ты забыл про LOD, который можно настроить в самих моделях, убирая ненужные полигоны и объединяя их.
Ответ Цитата

[Материал]  |  № 3  |  12.02.2016  |  +1  
Ну это я не забыл, это я не знал =)
Ответ Цитата

[Материал]  |  № 1  |  12.02.2016  |  0  
спасибо, полезная штука cool_a
Ответ Цитата

Оставьте комментарий

Мини-профиль

Гость

Вы в группе: Гости
Ваш IP: 13.58.252.8

Сейчас обсуждают

Mindbreak1664
HoBu4oK7
maximmoz2454
AzuNeko5
SeriousRoman27
BaBuinel41
Boffy61
BaBuinel5
AzuNeko6
Ar2R-devil-PiNKy18

МЕМЫ

НОВЫЙ
Serious_Stepan 3 1

Файлы

Boffy
81 10 0

Tenshi
4852 1670 42

Ar2R-devil-PiNKy
2963 938 3

SeriousAlexej
2471 932 8

--uGh--zAn--
2544 557 31

Категории раздела

Croteam [4]
Материалы по студии разработчика игр CroTeam.
Интервью с разработчиками [9]
Интервью с разработчиками, а также их издателями.
Serious Sam 1 [9]
Статьи о Serious Sam 1
Serious Sam 2 [6]
Статьи о Serious Sam 2
Serious Sam HD [4]
Статьи о HD-серии, ремейков классических версий Сэма.
Serious Sam 3: BFE [10]
Статьи о Serious Sam 3: BFE
Уроки по Serious Editor 1 [60]
Уроки по Serious Editor 2 [3]
Самое серьёзное редактирование, на русском!
Уроки по Serious Editor 3 [40]
Уроки по работе с редактором.
Serious Engine [6]
Описание возможностей всех движков компании Croteam
Разное [26]
Всё что не подошло не под одну из вышеупомянутых категорий.
Serious Sam: Revolution [1]
Материалы по SS: Revolution, серьёзном обновлении классических Крутых Сэмов.
Serious Sam 1.05/1.07 SDK [10]
SDK - набор исходников для Serious Sam: The Second Encounter 1.05/1.07.

Видео

Serious Lяп. Тридцать восьмой выпуск
173 5.0

Выживание в Затопленном Городе: Бесконечные перезапуски! - Aftermath (Serious Sam Map) №5
145 5.0

Обновлённый "Нож брутальным хватом"
219 5.0

Serious Sam Xbox - улучшенная классика
251 5.0

Взрывная поездка в прошлое - Aftermath (Serious Sam Map) №4
170 5.0

Статистика



На сайте: 15
Гостей: 14
Пользователей: 1
Serious_Chrel