ОПТИМИЗАЦИЯ CS:GO

Давно задумался о том, что в CS:GO и других подобных играх есть тени на картах которые не изменяют свое положение в любых случаях и исходах, и максимум что с ними может происходить это наложение

Так вот в чём вопрос, почему если такие текстуры есть, из просто не нарисовать на текстуре пола на карте, а в движке убрать тень от объекта

Наврятли это сильно прибавит в кадрах и производительности но кадры станут стабильнее, что и нужно "кибер спротивным" играм

Прошу объяснить и россписать, ибо сам чуть чуть знаю в игровых движках, но всё же интересует почему так не сделали до сих пор

22
9 комментариев

потому что перехерачивать весь движок ради 1 игры не оч выгодно
+кастомные мапы юзают всю мощь движка
если ты вдруг подумал что кроме статических пропов тени ничего не отбрасывает, то ты забыл про динамические пропы и самих игроков

2

В сурсе есть анимированные лайтмапы от кваки

1

Так вот в чём вопрос, почему если такие текстуры есть, из просто не нарисовать на текстуре пола на карте, а в движке убрать тень от объектаПотому что текстура пола тайлится, на ней нельзя просто взять и "нарисовать". Но можно наложить отдельную текстуру света как ты сказал - это и есть лайтмапа и ее наложение бесплатное. От того что ты уберешь один сэмплер - ничего не изменится, видяхи на то и параллелится что фактически выборка из текстуры халявная

1

Спасибо за пояснение, теперь буду знать

основное дополнение сурса в кс го - каскадные тени. И вот это "тяжелая" техника относительно, поскольку требует рисовать несколько раз сцену(фактически только ее глубины) от перспективы источника света в отдельную текстуру. Но каскадные тени ток для сущностей используется вроде(вместо древних стенсильных), причем динамических. Но там уж очень четкие тени, я не уверен, там либо лайтмаппер на граф станциях запекает очень точные тени, либо каскады дублируют лайтмапы, т.е на дистанции лайтмапы - вблизи каскады

На этапе компила карты рендерятся (запекаются) тени низкого разрешения. Если попытаться "нарисовать" такие тени "на текстурах" как хочет автор (сделать их четче), нужно задрать разрешение запекаемых теней – размер карт улетит в ебеня. Плюс такая метода не очень дружит с тенями на моделях, иногда их приходится вообще отключать для некоторых объектов.
А csm тени рисуются реалтайм, учитывая обычно всё кроме эффектов (смок гранат и тд.). Замещаются размазанные запеченные тени только вблизи тебя, поэтому это работает почти на любом тостере в наши дни.