Компиляция шейдеров, как это надо делать?

Недавний выход новой DAV не на шутку всколыхнул боевитых ребят. Не будем сейчас про всякие ЛБГТ - про это и так уже много чего сказали. Возьмем вторую причину, которая неожиданно попала в прицел налитых кровью глаз - долгое время компиляции шейдеров.

Казалось бы - в 24 году таким мало кого удивишь, и сей процесс мы видели в большом количестве игр. И вроде бы понятно, для чего всё это.

Но в этот раз оно пошло по-новой. В атаку наши барнаульцы ринулись как в последний раз, моментально забыв про всё, что было ранее.

И я задумался - а можно ли было по-другому? Давайте поможем Даше найти... то есть - вместе подумаем, что тут можно было сделать и как обойти этот досадный недостаток.

Метод № 0. Компилируем шейдеры перед запуском игры.

Результат:

Компиляция шейдеров, как это надо делать?

Видите? - Ну вообще не в какие ворота. Стыд и позор. Но должны же быть какие-то другие методы?

Метод № 1. Не компилируем шейдеры. Пусть игра делает это на ходу.

Компиляция шейдеров, как это надо делать?

Игра быстро запускается. Но к чему это приведет?

Результат:

Слышим крики про статтеры. "Да блин играть невозможно, фризит на ровном месте!".

Метод № 2. Запускаем процесс компиляции в фоне. Загружая попутно ПК какой нибудь минимальной активностью (показываем комикс, и т.д). Компиляция идет, но дольше, чем обычно.

Однако...

Результат:

"Я что сюда пришел комикс смотреть? Где мой геймлей? Вези меня мразь!! У меня время рефанда истекает, дайте мой геймплей!!"

Причем стоит учесть, что мы не учитываем ситуацию, когда ты обновил драйвера, но уже прошел пролог (и условный комикс), но игра вынуждена снова компилить шейдеры. Снова комиксы смотреть?

И вот последний вариант.

Компиляция шейдеров, как это надо делать?

Метод № 3. Запускаем процесс компиляции в фоне, но позволяем при этом играть. Компиляция идет еще дольше. Намного дольше. Те, у кого слабые компы (кстати, именно эти ребята громче всего и орут про компиляцию в 30 минут) попадают к кошмар.

Результат:

"Да блин задолбали!!! Что за фризы!!! Когда это прекратится? Я уже ЧАС играю, и оно все еще фризит!!"

Вывод? - что бы вы не делали, какие методы вы бы не использовали, всегда найдутся нервные ребята, которых это не устроит. Компиляция - плохо. Тормоза игры без оной - тоже плохо. Не знаю как вам, а мне явно просматривается нехилая такая логическая заковырка.

В связи с этим вопрос - как именно надо компилить шейдеры? Чтобы все были сыты и довольны. И чтобы Дамир Валиахметов не ругался.

24
1
111 комментарий