Статья удалена

Этот материал был удалён по просьбе автора.

33 комментария

Если вкратце, то дело вот в чём:
Шейдер - это программа, на писанная на языке высокого уровня, для удобства человеков, и чтобы выполнить её на видеокарте - надо перевести её в машинный код, этот процесс и называется компиляцией.
Раньше шейдеры были простыми, их было немного, и соответственно процесс компиляции проходил "на лету", фоном, незаметно для пользователя. Со временем графика игр усложнялась, материалы окружения становились более комплексными, на одну поверхность или ассет стало приходиться несколько, а иногда - несколько десятков сложных, длинных программ-шейдеров, и компиляция их на лету при появлении в кадре нового объекта стала приводить к задержкам, пока система ожидала окончания компиляции. Это вызывало статтеры - рывки изображения. Поэтому было решено вынести процесс компиляции почти всех, или хотя бы самых комплексных шейдеров в отдельный процесс перед запуском игры, в результате чего все доли секунд от тысяч шейдеров стали занимать значительное время, которое ты и видишь, ожидая пока полосочка компиляции доползёт до конца.

13
Ответить

Хорошо написал. Украду текст?

Ответить

ШЕЙДЕРЗлодей из черепашек-ниндзя

12
Ответить

произошло зло 1%

2
Ответить

Проблема в DirectX 12 и криворуких разрабах.

5
Ответить

Именно так. Почему-то форза без проблем компилируется на запуске за 1-2 минуты

1
Ответить

Меня больше интересует - почему лет пять назад игры не сообщали о компиляциях шейдеров (а они все же были), а сейчас стали?
Возможно, проблема кроется в визуальных редакторах шейдеров, которые добавляют слишком много данных в программы, из-за чего компиляция происходит дольше. А раньше руками код писали.

2
Ответить