LerpworksAcademy

Раздел

Техарт

Мост между художником и программистом: шейдеры руками, процедурная генерация, свои инструменты и оптимизация.

Шейдеры руками

Шейдерный код: HLSL на пальцахскороКак читать и писать код шейдера с нуля: числа и векторы, функции, выборка текстуры, условия и почему у видеокарты своя манера считать. То же, что граф нод, только строчками.Свой код в материале: нода Custom в UnrealскороПо шагам: нода Custom, входы и выход, первая функция, ошибки компилятора и как вынести код в общий файл, чтобы пользоваться им в разных материалах.Фигуры формулами: круги, полосы и звёзды в шейдерескороКак нарисовать фигуру без текстуры: расстояние до формы, мягкий край через smoothstep, сложение и вычитание фигур, повтор по сетке. Основа процедурных масок, интерфейса и эффектов.Полярные координаты и узоры: лучи, спирали и плиткискороКак превратить UV в угол и расстояние от центра и получить лучи, спирали, кольца и радар; как поворачивать, отражать и повторять узор по плиткам.Производные в шейдере: ddx, ddy и чёткий крайскороКак пиксель узнаёт, насколько быстро меняется значение у соседей: блоки 2 × 2 пикселя, выбор мипа, нормаль из высоты без текстуры и край фигуры, который не рябит на любом расстоянии.Raymarching: формы и объёмы без треугольниковскороКак нарисовать облако, шар или фрактал шагами по лучу через поле расстояний: шаг вдоль луча, нормаль из градиента, мягкие тени и где эта техника живёт в играх — облака, туман, эффекты.Цена шейдера: как считать и экономитьскороИз чего складывается стоимость пикселя: инструкции, выборки текстур, зависимые выборки, ветвления и варианты. Как читать статистику материала и какие приёмы экономят, а какие только кажутся экономией.

Шейдерные приёмы

Движение в шейдере: ветер, волны и пульсацияскороКак оживить мир без анимации: смещение вершин по времени и маскам, волны из синусов, бегущие текстуры, иерархия ветра от ствола к листу и почему тени и столкновения при этом отстают.Рендер-таргеты: следы на снегу и рисунок по мирускороКак материал рисует в текстуру во время игры: следы в снегу, примятая трава, круги на воде, карта тумана войны. Где хранится результат, как он следует за игроком и сколько это стоит.Анимация в текстуре: симуляцию играет шейдерскороКак разрушение, ткань или толпу посчитать заранее, записать положения вершин в текстуру и проиграть в шейдере почти даром: что хранится в пикселях, точность, длина и где этот приём ломается.Стилизованный рендер: тун, контуры и мазкискороКак сделать картинку рисованной: ступенчатый свет, контуры по глубине и нормалям, штриховка и мазки, свои кривые освещения. Как совместить стиль с движком, который считает свет физически.Свой пост-процесс: контуры, пиксели и сканерскороКак написать свой эффект на весь кадр: чтение глубины и нормалей, обводка предметов, пикселизация, волна сканера, подсветка сквозь стены — и где в цепочке кадра он встаёт.Шейдер воды своими рукамискороПо шагам: цвет по глубине, две бегущие карты нормалей, преломление дна, отражение неба, пена у берега и проверка с камеры игрока при любом свете.

Процедурная генерация

Процедурный подход: правила вместо ручной работыскороКогда выгодно описать правило, а не сделать вещь руками: повторяемость, правка одной ручкой, сид и вариации. Чем процедурность помогает художнику и где без его руки выходит скучно.Houdini: точки, атрибуты и узлыскороПочему в Houdini всё — точки с подписями: атрибуты, сети узлов, циклы, и как этим строят скалы, дороги и целые города. Как читать чужую сеть и с чего начать свою.Geometry Nodes: процедурность в BlenderскороКак в Blender собрать процедурный предмет или расстановку из нод: поля, атрибуты, инстансы — и чем это похоже на Houdini и PCG в Unreal.PCG в Unreal изнутри: точки, атрибуты и графыскороКак устроен PCG глубже флоу: типы данных, атрибуты точек, подграфы и свои ноды, генерация по ячейкам и вокруг игрока, работа на видеокарте и как отлаживать граф.Уровни по правилам: комнаты, клеточные автоматы и WFCскороКак генерируют подземелья и острова: деление пространства на комнаты, пещеры из клеточного автомата, плитки, которые сами решают, кто с кем граничит, и почему лучшие игры смешивают генерацию с готовыми кусками.Растения по правилам: L-системы и ростскороКак короткая строчка правил вырастает в куст или дерево: переписывание строк, ветвление, углы, случайность и как генераторы деревьев добавляют свет, гравитацию и обрезку.Здания по правилам: грамматика формскороКак программа строит фасады и станции из правил «раздели объём на этажи, этаж — на окна»: деление, замена, повтор. Грамматики в PCG и Houdini и где правила нужно разбавлять рукой.Инструмент из Houdini в Unreal: Houdini EngineскороПо шагам: собрать цифровой ассет в Houdini, вывести ручки, загрузить в Unreal, менять параметры прямо на уровне и запечь результат в обычные ассеты.

Инструменты и пайплайн

Имена, папки и правила проектаскороОдин экран: приставки имён ассетов, раскладка папок, размеры и форматы и что проверить перед тем, как положить ассет в проект.Python в Blender: автоматизация рутиныскороКак скриптом сделать за секунду то, что руками занимает час: переименовать сотню объектов, выставить точки опоры, выгрузить все модели. Язык с нуля на примерах из Blender.Python в Unreal: правки ассетов пачкойскороКак скриптом пройтись по всем ассетам проекта: найти текстуры с неправильными настройками, переименовать, поменять материалы на сотне моделей и собрать отчёт.Свои инструменты в редакторе UnrealскороПо шагам: окно с кнопками на Editor Utility Widget, действия над выделенными ассетами и акторами, инструмент для команды, которым пользуются без инструкции.Проверки ассетов: поймать ошибку до сборкискороКак не пустить в проект модель без коллизии, текстуру не в том формате или материал с лишними вариантами: правила проверки, отчёты, проверка при сохранении и перед сборкой.USD: одна сцена для многих программскороЧто такое USD и зачем студии переходят на него: слои сцены, ссылки на ассеты, правки поверх чужой работы без конфликтов, обмен между Houdini, Blender и Unreal.

Оптимизация

Оптимизация по шагам: измерить, найти, починитьскороПо шагам: выбрать целевую частоту кадров и железо, измерить, понять, кто узкое место — процессор, видеокарта, память или диск, — поправить одно и измерить снова.Настройки качества: от слабого ПК до мощногоскороКак одна игра работает на разных компьютерах и консолях: группы настроек качества, что в них меняется, профили устройств, разрешение с апскейлом и что резать первым.Импосторы: дальний предмет из картинокскороКак дерево вдали превращается в снимки со всех сторон на плоскости, которая смотрит в камеру: раскладка снимков, смешивание соседних, свет и нормали и когда импосторы проигрывают Nanite.Грабли производительностискороЧастые причины тормозов: невидимые предметы с тенями, прозрачность во весь экран, тик у тысяч акторов, огромные текстуры на мелочах, подгрузка посреди боя. Симптом, причина, решение.