Технология Shader Graph - технология визуального программирования, используемая в среде разработки Unity. Shader Graph используется для написания шейдеров – небольших программ, исполняемых на видеокарте, используемых при работе с графикой. Шейдеры позволяют создавать различные материалы и эффекты объектов, такие как свечение, контуры голограммы, и др. Шейдер, созданный с помощью этой технологии, представляет собой граф блоков кода на языке HLSL. Ноды (узлы) графа являются функциями и операциями над какими-то переменными, а связи между блоками эти переменные передают другим функциям.
Особенности:
1. Наглядность.
Благодаря своей структуре Shader Graph может демонстрировать результаты вычислений для каждого вычисленного нода одновременно. В зависимости от типа нода, иллюстрация может представлять собой число, цвет, или быть на 2D (например, текстура, карты нормалей и др.) или 3D объекте (результаты наложения текстур, цветов и карт при использовании 3D координат).
2. Real-time.
В узлах графа в реальном времени отображается результат выполнения шейдерного кода при текущих настройках рендера, что способствует более быстрому написанию кода и упрощает тестирование. Часто при создании динамических текстур, шейдеры зависят от времени, и анимированные текстуры так же отображаются в Shader Graph`е в реальном времени.
3. Функциональность.
Shader graph предоставляет большое количество встроенных функций, например, процедурно генерируемые паттерны, такие как различные шумы, шахматная доска и др. Готовые графы можно использовать повторно в виде подграфов для более сложных шейдеров. Кроме этого предусмотрена возможность использовать собственные функции, написанные на языке HLSL, а также экспорт шейдера в виде кода. Кроме этого в Shader Graph существуют логические ноды, позволяющие выполнять сложные вычисления, однако их не рекомендуется использовать, так эти операции сильно замедляют вычисления, так как, например, условный оператор проходит по обеим ветвям вычислений вне зависимости от истинности.
Благодаря своим особенностям технология Shader Graph позволяет сильно упростить процесс написания шейдеров. Только начав изучения шейдерного языка, можно создавать простые шейдеры с помощью этой технологии. При этом Shader Graph значительно расширяет возможности опытных разработчиков шейдеров, позволяя создавать более сложные материалы, сохраняя структуру наглядной.