Сэмпл Loop
Этот сэмпл графа материала демонстрирует, как использовать циклы при создании материалов.
RGB-данные альбедо для материала Mesh Opaque PBR генерируются в цикле: исходная текстура (узел Texture) применяется 32 раза (Maximum Iterations) с равномерным смещением UV вдоль точек на Vogel Disk, контролируемом узлом параметра blur, представляющим собой Slider (настраивается через Parameters панель в UnigineEditor).
Узел Loop Begin имеет единственную переменную Texture Sample, float3 вектор. Maximum Iterations соответствует желаемому количеству выборок и устанавливается на 32.
Логика каждой итерации находится между узлами Loop Begin и Loop End. Каждый раз выполняются следующие шаги:
- Index текущей итерации и количество всех итераций передаются узлу Vogel Disk, обеспечивая равномерный UV-сдвиг.
- Сдвиг UV умножается на значение blur (деленное на 10), т.е. изменяется интенсивность размытия.
- Результирующий UV-сдвиг добавляется к координатам текстуры (узел Vertex UV 0).
- Значение RGB, выбранное из текстуры, добавляется к предыдущему значению Texture Sample и передается узлу Loop End в результате этой итерации.
Таким образом, значение Texture Sample многократно увеличивается до последней итерации.
Результат узла Add также связан с узлом Divide, который выполняет уменьшение интенсивности цвета (делит полученное значение на количество итераций цикла — приращение значений цвета).