Картинка · курс
Текстуры и материалы
17 уроков · 5 глав
После «Азбуки»: как текстуры хранят цвет и данные, почему вдали мыло, как прячут повтор и наносят грязь, как устроены материалы Unreal — от инстансов до слоёв Substrate. Читать по порядку.
Курс ещё пишется. Готово уроков: 9 из 17.
Глава 1 · Текстура
1Гамма и sRGB: цвет и данные хранят по-разномуУрок · базаПервый урок раздела «Текстуры». Почему 0.5 в текстуре цвета — пятая часть света: глаз различает тени подробнее, и запись sRGB отдаёт им больше ступеней (гамма ≈ 2.2, точная кривая — под капотом); почему свет считают в линейных числах и что ломается при смешивании и размытии в записи; цвет и данные — у BaseColor галочка sRGB включена, у нормалей, шероховатости, масок и высоты выключена, и что бывает, если перепутать; где галочка в Unreal, Unity, Godot, Blender и Substance Painter; почему число в палитре и в шейдере различаются.2Мип-мапы и фильтрация: почему вдали мылоУрок · базаВторой урок раздела «Текстуры». Почему вдали пол рябит: под пикселем десятки текселей, а шейдер читает один-четыре; ближайший тексель и билинейная фильтрация вблизи и почему там мыло; мип-мапы — копии вдвое меньше до 1 × 1 за треть памяти; выбор уровня по производным UV (логарифм — под капотом) и трилинейная; анизотропная фильтрация для пола под острым углом; что теряется в мипах — провода, альфа листвы, рельеф нормалей (Toksvig, Composite Texture), швы атласов; степени двойки, стриминг и сдвиг уровня; где это в Unreal, Unity, Godot, Blender и Substance Painter.3Упаковка каналовУрок · базаТретий урок раздела «Текстуры». Маска — одно число на пиксель, а в текстуре четыре канала: зачем AO, шероховатость и металл кладут в одну текстуру (одна выборка, втрое меньше памяти) и почему раскладки ORM, ARM, RMA и Mask Map разные; блочное сжатие BC1, BC3, BC4, BC5, BC7 — почему зелёный точнее (5-6-5), почему альфа удваивает память, но сжимается точнее всех, и почему в BC1 маски мешают друг другу (под капотом — палитра блока на отрезке); данные без sRGB и мип-мапы по каналам; как не перепутать каналы и как выглядит ошибка; разбор в материале и что ещё пакуют.4Настройки текстур для каждой картыШпаргалкаШпаргалка раздела «Текстуры». Для каждой карты — BaseColor, нормаль, ORM, шероховатость, высота, альфа, свечение, AO, карта деталей, HDR и кубмапа, интерфейс — галочка sRGB, сжатие в Unreal и формат BC, мип-мапы, типичный размер, частая ошибка и ссылка на урок; те же настройки в Unity, Godot, Blender и Substance Painter; плотность текселей по виду камеры, память 1K, 2K и 4K в каждом формате с мип-мапами и без, формулы и чек-лист импорта.
Глава 2 · Узор без повтора
5Шум: из чего сделаны маскиУрок · базаСлучайность, которая выглядит естественно. Почему белый шум — песок, а не пятна; value noise и Perlin — числа и наклоны в узлах сетки, simplex; октавы (fBm) — крупное плюс мелкое, lacunarity и persistence; Voronoi — клетки, F1 и трещины F2 − F1; маска из шума — порог, smoothstep, remap и искажение координат; бесшовный шум и почему в материалах шум чаще читают из текстуры, а не считают.6Текстуры без UV: triplanar и world-alignedУрок · базаУрок раздела «Текстуры». Как покрыть скалу, утёс или склон текстурой без развёртки: адрес из мировых координат, делённых на размер плитки (world-aligned), и почему одна проекция сверху тянется на стенах в 1 / |n.z| раз; три проекции вдоль X, Y и Z и веса из нормали — модуль, степень k и сумма 1, кубическая проекция при большом k и мазки на диагоналях; карта нормалей по осям каждой проекции, знак и whiteout; цена — три выборки, biplanar и дизеринг, ловушка с мип-мапами; текстура плывёт по движущемуся предмету, точность вдали от начала мира и чего проекция не умеет.7Как спрятать повтор текстурыскороПочему тайловая текстура на большой площади выдаёт себя узором и как это прячут: вторая текстура другого масштаба, смешивание вариантов по маске, сдвиг UV шумом, случайный поворот плиток.
Глава 3 · Сборка материала
8Материалы в Unreal: мастер, инстансы, функцииУрок · базаКак Unreal раскладывает идею материала на свои ассеты. Мастер и его настройки — Material Domain, Blend Mode, Shading Model, Two Sided и флаги Usage, от которых зависят наборы шейдеров; инстансы — параметры, группы, цепочки родителей, почему Static Switch компилирует, а цвет нет, и Material Instance Dynamic в игре; функции и слои; коллекции параметров на весь мир; Material Attributes и Substrate; откуда у материала тысячи перестановок, как устроить библиотеку и как читать чужой мастер-материал.9Математика смешиванияШпаргалкаШпаргалка смешивания слоёв и масок. Режимы двух слоёв — Multiply, × 2, Add, Subtract, Linear Burn, Lerp по маске, Screen, Overlay, Hard Light, Soft Light, Linear Light, Color Dodge и Burn, Difference, Min и Max, Height Blend: формула, нейтральное значение, что делает, где стоит в материале и нода Unreal. Операции над маской — One Minus, Power, Saturate, CheapContrast, Levels, Smoothstep, Step; две маски в одну; нормали; кривые режимов картинками и типичные ошибки.10Мастер-материал с нуляФлоуПо шагам в Unreal: от пустого графа до мастер-материала камня. Настройки мастера, текстуры параметрами и Sampler Type, ORM по каналам, тинт, тайлинг и сила нормали, детальная нормаль через BlendAngleCorrectedNormals, мох сверху по мировой нормали с маской шума, функция MF_TopLayer, Static Switch, группы параметров, два инстанса и проверка цены в Stats и Shader Complexity.11Покраска вершин: мох, грязь и смешивание на моделискороКак художник рисует прямо по модели, где будет мох, а где чистый камень: цвет вершин как маска, смешивание по высоте, почему результат зависит от плотности сетки и как то же делают текстурой-маской.12Декали: наклейки на мирскороКак грязь, трещины, лужи и надписи ложатся на любую поверхность, не трогая её текстуры: проекция коробкой, что декаль может менять в материале, порядок и цена. Почему декали иногда светятся или пропадают.
Глава 4 · Сложные поверхности
13Глубина без геометрии: смещение по высоте и параллаксскороКак плоская стена кажется кладкой с глубиной: сдвиг текстуры по направлению взгляда, ступеньки параллакса, тени внутри рельефа и где обман раскрывается — на краях и под острым углом. Сравнение с настоящим смещением геометрии.14Стекло, вода и лёд: преломлениескороПочему сквозь стакан и воду мир кажется сдвинутым: показатель преломления, как движок подделывает его сдвигом уже нарисованного кадра, толщина и цвет стекла и где подделка ломается.15Подповерхностное рассеивание: кожа, воск и листьяскороПочему кожа, воск, мрамор и листья светятся изнутри: свет заходит под поверхность и выходит рядом. Как это изображают в реальном времени, какие режимы бывают у материала и сколько они стоят.
Глава 5 · Системы движка
16Виртуальные текстуры: огромная картинка по кусочкамскороКак движок держит в памяти только видимые кусочки огромных текстур и зачем земле текстура, которую рисуют сверху во время игры: стриминговые и рантайм-виртуальные текстуры, смешивание камней с землёй и цена этого.17Substrate в Unreal: материал из слоёвскороКак новая система материалов Unreal описывает поверхность слоями — лак поверх краски, пыль поверх металла, — чем она отличается от старых режимов затенения, что даёт художнику и сколько стоит.