Атипичный шейдинг в gameDev’е
Автор: DRL
Всем известно, для чего нужен шейдинг. Но при современном уровне развития железа он позволяет сделать гораздо большее, чем банальное «раскрасить по Lambert’у/Blinn’у/Phong’у».
В пост-продакшене хитрые самописные шейдеры уже давно используются на полную катушку, позволяя не только навести финальный лоск, но порой – и вовсе заменить собой некоторые стадии пайплайна.
В разработке игр, несмотря на массу технических ограничений, шейдинг тоже может стать очень серьёзным подспорьем, если применить его с умом.
С его помощью зачастую можно снизить разрешение текстур, повысить производительность, избавить арт-отдел от некоторых рутинных задач, сделать финальную картинку более детализированной, а иногда – всё сразу.
В этом выступлении будет рассказано о не совсем очевидном применении шейдинга:
- Почему важно не ограничиваться исключительно стандартными шейдерами движка.
- Где и когда можно (и нужно) решать не-шейдинговые задачи на шейдерном уровне.
- Какими способами можно создавать свои шейдеры.
- С чего начать погружение в шейдинг, чтоб не утонуть в суровом программинге (для инди-команд / небольших студий).
Рассказ будет на примере Unity – универсального движка и для мобильных, и для десктопных игр. Впрочем, упомянутые техники с тем же успехом могут быть применены в любом другом движке.
План:
- Свежий взгляд на шейдинг: от «для чего он нужен?» – к «что он может?»
- Способы создания шейдеров в Unity.
- В чём плюсы и минусы переноса на шейдер задач:
- FX-ера
- Аниматора
- Моделлера
- Текстурщика
- Когда решение в шейдере повышает производительность, а когда – снижает.
- Каким образом шейдинг за пределами движка может помочь разработке игры.