Справочник
Глоссарий
Графика
255 терминовАвтоэкспозицияAuto exposure, eye adaptationЭкспозиция, которую движок подбирает сам по яркости кадра, как глаз: строит гистограмму, отбрасывает самые тёмные и яркие пиксели и плавно подводит множитель. Пока ставишь свет, её лучше зафиксировать.
Где разбирается:Туман и пост-обработка · См. также:Экспозиция, Тонмаппинг
Алгоритм художникаPainter's algorithmРисовать от дальнего к ближнему, чтобы ближнее ложилось поверх. Не справляется с пересечениями и тратит работу на закрытое. В 3D его заменил буфер глубины, а прозрачное и 2D так рисуют до сих пор.
Где разбирается:Буфер глубины: кто ближе к камере, Прозрачность: Opaque, Masked, Translucent · См. также:Буфер глубины
АлиасингAliasingОшибка от недостатка проб: пиксель измеряет мир в одной точке, и деталь мельче шага между пробами пропадает или выдаёт себя за крупную. Отсюда лесенки, муар, искры и мерцание в движении.
Бывает геометрическим (края), шейдерным (искры блика, порог листвы) и временным (мерцание при движении). Пиксель — одна проба.
Где разбирается:Сглаживание: лесенки, мерцание и TSR, Сглаживание: лесенки, мерцание и TSR, Мип-мапы и фильтрация: почему вдали мыло · См. также:Сглаживание, Искры блика, Растеризация, Мип-мапы, Туннелирование
АльфаAlpha, opacityЧетвёртое число пикселя рядом с R, G и B: какую долю слой закрывает. 1 — закрывает всё, 0 — ничего. Это непрозрачность, а не прозрачность.
В Unreal вход материала называется Opacity, для Masked — Opacity Mask. Альфу берут из канала текстуры, из числа, из цвета вершин или частицы. Что с ней сделать — заменить пиксель, выбросить его или смешать, — решает режим смешивания.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Упаковка каналов · См. также:Режим смешивания, Смешивание «поверх», Канал
Альфа-тест, режим MaskedAlpha test, alpha clip, cutoutШейдер сравнивает альфу с порогом: выше — пиксель рисуется как непрозрачный, ниже — выбрасывается целиком. Пишет глубину и не требует сортировки, но край выходит ступеньками.
Порог по умолчанию: в Unreal 0.3333 (Opacity Mask Clip Value), в Unity и Godot 0.5. Выбрасывание пикселя мешает ранней проверке глубины, поэтому Masked дороже Opaque.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Прозрачность: Opaque, Masked, Translucent, Трава и листва: карточки и ветер · См. также:Альфа, Покрытие альфа-теста, Ранняя проверка глубины, Карточка листвы
Анизотропная фильтрацияAnisotropic filtering, AFНесколько проб вдоль вытянутого следа пикселя на текстуре, когда поверхность видна под острым углом. Убирает мыло на полу и дорогах у горизонта; ×2…×16 — предел числа проб.
Число проб — отношение длинной стороны следа к короткой, но не больше предела; уровень мип-мапа берут по длине одной пробы. Пол под острым углом.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло, Мип-мапы и фильтрация: почему вдали мыло · См. также:След пикселя, Трилинейная фильтрация, Мип-мапы
АпскейлUpscaling, super resolutionКадр рисуют меньше экрана, а полный собирают из истории по джиттеру и векторам движения. «Производительность» — половина стороны, четверть пикселей. DLSS, FSR, XeSS и TSR различаются тем, как решают, чему в истории верить.
Апскейл: меньше пикселей, та же история.
Где разбирается:Сглаживание: лесенки, мерцание и TSR · См. также:TSR, Временное сглаживание, Джиттер, Векторы движения, Динамическое разрешение
Атрибуты материалаMaterial AttributesВсе каналы материала одним набором. Так функции материала передают друг другу сразу всё: цвет, шероховатость, нормаль.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции · См. также:Статический переключатель, Функция материала, Substrate
Белый шумWhite noiseСвоё независимое случайное число в каждом пикселе. Соседи не связаны, поэтому выходит зерно, как песок или экран без сигнала, а не пятна.
Где разбирается:Шум: из чего сделаны маски · См. также:Шум, Синий шум, Случайность по координатам
Бесшовная текстураSeamless / tileable textureТекстура, у которой левый край продолжает правый, а верхний — нижний. Только такую можно повторять без видимых стыков.
Где разбирается:UV: как картинка ложится на модель, Шум: из чего сделаны маски · См. также:Тайлинг, Шум
Билинейная фильтрацияBilinear filteringСмешивание четырёх ближайших текселей по тому, насколько адрес близок к каждому: два lerp по горизонтали и один по вертикали. Убирает квадраты, но подробностей не добавляет.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло · См. также:Фильтрация текстур, Трилинейная фильтрация, Lerp, смешивание по доле
Бинормаль, BBitangent (binormal)Стрелка на поверхности вдоль роста V. Её не хранят, а получают из нормали и касательной со знаком: B = знак × (N × T). Знак нужен для зеркальных развёрток.
Ближайший тексельNearest / point filteringФильтр, который берёт один тексель — тот, куда попал адрес UV. Вблизи текстура распадается на чёткие квадраты: для пиксель-арта это и нужно, для остального — нет.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло · См. также:Фильтрация текстур, Билинейная фильтрация
Ближняя и дальняя плоскости отсеченияNear and far clip planesГраницы видимого по расстоянию: что ближе ближней плоскости или дальше дальней, не рисуется. Ближняя плоскость задаёт точность всего буфера глубины.
Где разбирается:Буфер глубины: кто ближе к камере, Буфер глубины: кто ближе к камере · См. также:Буфер глубины, Z-fighting, мерцание глубины
Буфер глубиныDepth buffer, Z-bufferВторая картинка размером с кадр: в каждом пикселе хранится, насколько далеко от камеры то, что в нём нарисовано. По ней видеокарта решает, что ближе.
Где разбирается:Буфер глубины: кто ближе к камере, Тени: карты, каскады и мягкие края · См. также:Тест глубины, Запись глубины, Z-fighting, мерцание глубины, Карта теней
Буфер трафаретаStencil bufferЕщё одно небольшое число на пиксель рядом с глубиной, обычно 8 бит. Работает как маска: её пишут и проверяют, чтобы рисовать только в отмеченных пикселях — обводки, порталы, декали.
Где разбирается:Буфер глубины: кто ближе к камере · См. также:Буфер глубины
Бюджет кадраFrame budgetСколько миллисекунд есть на один кадр: 1000 / FPS. 16.7 мс при 60 кадрах в секунду, 33.3 при 30, 8.3 при 120. Логика, физика и все проходы отрисовки делят это время.
Мерить удобнее в миллисекундах: они складываются, а кадры в секунду — нет. Миллисекунды, а не кадры.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Время кадра, Δt, Упор в процессор, Упор в видеокарту, Профилировщик
Варп, волнаWarp / wavefrontГруппа из 32 или 64 вызовов шейдера, которые видеокарта выполняет одной командой. Если на ветвлении они расходятся, группа проходит обе ветки.
Где разбирается:Шейдер: функция для каждого пикселя · См. также:Видеокарта, GPU
Вектор отраженияReflection vectorКуда смотрит отражение из точки поверхности: взгляд, у которого часть вдоль нормали развёрнута, а часть вдоль поверхности осталась. r = d − 2 (d · n) n.
d — направление от глаза к точке, n — единичная нормаль. Двойка: один раз часть вдоль нормали убирают, второй — разворачивают. Отсюда «угол падения равен углу отражения». Куда смотрит отражение.
Где разбирается:Отражения: кубмапы, SSR и Lumen, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Проекция вектора, Нормаль, Кубмапа, Упругость удара
Векторы движенияMotion vectors, velocity bufferКартинка, где в каждом пикселе записано, на сколько пикселей и куда сдвинулась его точка за кадр. По ним временное сглаживание и апскейлеры находят точку в истории. Нет стрелок — шлейф.
Их нет у прозрачного и у текстур, бегущих по UV; смещение вершин даёт стрелки, только если движок считает и прошлое положение. Перепроекция.
Где разбирается:Сглаживание: лесенки, мерцание и TSR, Сглаживание: лесенки, мерцание и TSR, Туман и пост-обработка, Трава и листва: карточки и ветер · См. также:Временное сглаживание, Шлейф, G-буфер, Размытие в движении
Вертикальная синхронизацияVertical sync, V-SyncКадр показывают только в момент обновления экрана. Нет разрывов картинки, но кадр, опоздавший хоть на миллисекунду, ждёт следующего обновления: на экране 60 Гц 60 кадров проваливаются сразу в 30. Перед замером её выключают.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Бюджет кадра, Задержка ввода
ВершинаVertexТочка модели. Хранит позицию, нормаль и UV, иногда ещё цвет вершины и вторую развёртку.
Где разбирается:Нормаль и свет, UV: как картинка ложится на модель · См. также:Нормаль, UV, Цвет вершин
Вершинный шейдерVertex shaderВыполняется для каждой вершины: переводит её в координаты экрана и может сдвинуть, например чтобы трава качалась.
Видеокарта, GPUGraphics processing unitПроцессор из тысяч простых вычислителей, которые выполняют одну и ту же программу над разными данными. Поэтому пиксели кадра он считает параллельно.
Где разбирается:Шейдер: функция для каждого пикселя · См. также:Варп, волна, Шейдер, Упор в видеокарту
ВидеопамятьVideo memory, VRAMПамять самой видеокарты: текстуры, меши, карты теней, G-буфер, кэши света. У игровых видеокарт обычно 8–16 ГБ. Пока всё влезает, она почти ничего не стоит; переполнилась — мыльные текстуры, рывки, падение.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Стриминг текстур, Мип-мапы, Видеокарта, GPU
ВиньеткаVignetteЗатемнение краёв кадра, как у объектива. Вместе с зерном, хроматической аберрацией и бликами линзы — недостатки камеры, которые добавляют нарочно; в меру ведут взгляд, лишние мылят кадр.
Где разбирается:Туман и пост-обработка · См. также:Пост-обработка
Виртуальная текстура RVTRuntime Virtual TextureТекстура, в которую ландшафт пишет свой цвет и высоту, чтобы другие материалы могли их прочитать, например чтобы камень врастал в землю.
Где разбирается:Дороги и тропы · См. также:Коллекция параметров материалов
Виртуальные карты тенейVirtual shadow maps, VSMОгромная карта теней 16 384 × 16 384, разбитая на страницы 128 × 128: движок рисует только страницы, нужные видимым пикселям, и хранит их между кадрами. Тексель примерно равен пикселю экрана.
Метод теней Unreal Engine 5 по умолчанию, рассчитан на Nanite. Всё, что шевелится, каждый кадр портит свои страницы. EEVEE в Blender с 4.2 тоже использует виртуальные карты. Виртуальные карты теней.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:Карта теней, Каскадные карты теней, Nanite
Воздушная массаAir massСколько воздуха на пути луча по сравнению с путём из зенита: 1 над головой, около 38 у горизонта. Чем она больше, тем сильнее свет ослаблен и тем краснее солнце.
Где разбирается:Воздух и даль: туман, небо, время суток · См. также:Рассеяние Рэлея
Временное сглаживаниеTemporal anti-aliasing, TAAКаждый кадр камеру сдвигают на долю пикселя и подмешивают новый кадр к накопленной истории небольшой долей. По векторам движения история берётся там, где точка была раньше. Цена — шлейфы и мыло в движении.
Историю сверяют с соседями пикселя в новом кадре и отбрасывают, если такого цвета рядом нет. Временное сглаживание.
Где разбирается:Сглаживание: лесенки, мерцание и TSR, Сглаживание: лесенки, мерцание и TSR · См. также:Джиттер, Векторы движения, Шлейф, Экспоненциальное сглаживание, TSR
Вызов отрисовкиDraw callКоманда процессора видеокарте: вот шейдер, вот параметры и текстуры, нарисуй эти треугольники. Между вызовами меняется состояние, и смена шейдера обычно дороже смены параметров.
Высотный туманHeight fog, Exponential Height FogТуман, плотность которого убывает с высотой по экспоненте: в низинах молоко, вершины и небо над головой чище. Сумма плотности вдоль луча считается одной формулой, поэтому он дешёвый.
Где разбирается:Туман и пост-обработка, Туман и пост-обработка · См. также:Экспоненциальный туман, Объёмный туман
ГаммаGammaСтепень, по которой запись цвета переводят в свет: свет ≈ запись в степени 2.2. Поэтому 0.5 в записи — около 22 % света, а половина света записывается как 0.74.
Точная кривая sRGB — прямой отрезок у нуля и степень 2.4 со сдвигом; в целом она ведёт себя как степень 2.2. Гамма: запись по кривой.
Где разбирается:Гамма и sRGB: цвет и данные хранят по-разному, Гамма и sRGB: цвет и данные хранят по-разному · См. также:sRGB, Линейный цвет, Кривая тона
Глобальное освещение, GIGlobal illuminationВсё освещение сцены вместе — прямое и непрямое. На практике так называют способ, которым движок считает непрямой свет: подсветку, небо, запечённый свет, пробы или расчёт в реальном времени.
Способы по цене: постоянная подсветка, свет неба, лайтмапы, пробы, GI в реальном времени — Lumen в Unreal, SDFGI и VoxelGI в Godot. Глобальное освещение: способы по цене.
Где разбирается:Прямой и непрямой свет, Запечённый и динамический свет: лайтмапы и Lumen · См. также:Непрямой свет, Свет неба, Проба света, Отражённый свет, отскок, Запекание света, Lumen
Глобальный параметр шейдераGlobal shader parameterЗначение, общее для всех материалов сразу: время, ветер, мокрость после дождя, снег. Меняешь в одном месте — меняется весь мир.
В Unreal — Material Parameter Collection, в Unity — Shader.SetGlobal…, в Godot — global uniform. Урок
Где разбирается:Материал: шейдер плюс данные · См. также:Коллекция параметров материалов, Данные объекта
Глубина резкостиDepth of field, DOFРазмытие всего, что ближе или дальше фокуса, как у фотоаппарата. Считается по текстуре глубины: чем дальше пиксель от фокуса и шире диафрагма, тем сильнее размытие.
Где разбирается:Туман и пост-обработка · См. также:Текстура глубины, Размытие в движении
Глубина цветаBit depthСколько бит отводится на канал. 8 бит дают 256 ступеней, поэтому в палитрах редакторов цвет записывают числами от 0 до 255.
Где разбирается:Цвет — это числа, Числа в компьютере: целые, float и точность, Гамма и sRGB: цвет и данные хранят по-разному · См. также:HDR, Бит и байт, sRGB, Гамма
Дальность отсеченияCull distanceРасстояние, дальше которого предмет не рисуют, потому что он меньше пикселя. Для мелочи — меньше, для крупного — больше; край растворяют дизерингом.
Данные объектаPer-object / per-instance dataЧисла, которые каждый предмет несёт сам при общем материале: оттенок куста, вспышка попадания. Материал один, поэтому предметы можно рисовать инстансингом.
В Unreal — Custom Primitive Data и Per Instance Custom Data, в Unity — MaterialPropertyBlock, в Godot — instance uniform. Урок
Где разбирается:Материал: шейдер плюс данные, LOD, инстансинг и Nanite: как рисуют миллион травинок, Трава и листва: карточки и ветер · См. также:Инстансинг, Глобальный параметр шейдера
Данные, не цветNon-color dataТекстура, где числа идут в формулу как есть: нормали, шероховатость, металличность, AO, высота, маски. Её читают без кривой sRGB, иначе середина шкалы съезжает: 0.5 становится 0.21.
ДекальDecalРисунок, спроецированный на готовую поверхность: трещина, лужа, граффити. Своей геометрии у проецируемой декали нет: по глубине она находит поверхность и меняет её цвет, нормаль и шероховатость до расчёта света.
Поэтому декаль не мерцает на стене и не ложится на стекло: прозрачного нет ни в глубине, ни в G-буфере. В Unreal декали по умолчанию пишутся в отдельный буфер (DBuffer) ещё до базового прохода.
Где разбирается:Как движок рисует кадр: проходы и G-буфер, Буфер глубины: кто ближе к камере, Материалы в Unreal: мастер, инстансы, функции, Текстуры без UV: triplanar и world-aligned, Дороги и тропы · См. также:G-буфер, Текстура глубины
ДжиттерJitter, sub-pixel jitterСдвиг камеры каждый кадр на долю пикселя по кругу из 8–16 положений. Благодаря ему пробы разных кадров ложатся в разные точки пикселя, и временное сглаживание набирает из них много проб.
Где разбирается:Сглаживание: лесенки, мерцание и TSR, Сглаживание: лесенки, мерцание и TSR · См. также:Временное сглаживание, Синий шум
ДизерингDithering, screen-door transparencyПолутон заменяют узором из целых и выброшенных пикселей. Пиксели пишут глубину и не требуют сортировки, а временное сглаживание усредняет узор в полупрозрачность.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Случайность: сид, распределения и честный рандом, Сглаживание: лесенки, мерцание и TSR, LOD, инстансинг и Nanite: как рисуют миллион травинок, Гамма и sRGB: цвет и данные хранят по-разному, Шум: из чего сделаны маски, Текстуры без UV: triplanar и world-aligned · См. также:Альфа-тест, режим Masked, Alpha to coverage, Синий шум, Временное сглаживание, Прыжок LOD
Динамический инстанс материалаMaterial Instance Dynamic, MIDИнстанс материала, созданный во время игры, чтобы менять его параметры: вспышка, растворение, свечение. Статические параметры он менять не умеет, и каждый MID — отдельный материал для отрисовки.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции · См. также:Инстанс материала, Статический переключатель, Данные объекта
Динамическое разрешениеDynamic resolutionДвижок сам снижает разрешение кадра, когда видеокарта не успевает в бюджет, и поднимает, когда есть запас. Апскейл прячет разницу.
Где разбирается:Бюджет кадра на видеокарте · См. также:Апскейл, Масштабируемость, Упор в видеокарту
Диффузное отражениеDiffuse reflectionСвет, который зашёл внутрь вещества, рассеялся на пигменте и вышел во все стороны. Он окрашен цветом вещества и не зависит от того, откуда смотришь.
Где разбирается:Свойства поверхности: roughness, metallic, AO, Нормаль и свет · См. также:Зеркальное отражение, блик, BaseColor, альбедо, Закон Ламберта
Диэлектрик, неметаллDielectricЛюбое вещество, кроме металла: камень, дерево, пластик, кожа, вода, краска, ржавчина. Цвет ему даёт диффуз, а отражение слабое и бесцветное.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:Металличность, Диффузное отражение
Домен материалаMaterial DomainНастройка мастер-материала в Unreal: что он рисует — поверхность меша, декаль, маску света, объём, пост-обработку, интерфейс или виртуальную текстуру. От неё зависят выходы главной ноды и то, что материал может читать.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции · См. также:Материал, Декаль, Пост-обработка
Задержка вводаInput latency, input lagВремя от нажатия кнопки до картинки на экране. Процессор и видеокарта работают над разными кадрами, а при упоре в видеокарту кадры ещё и копятся в очереди, поэтому задержка — несколько кадров.
Режимы низкой задержки (NVIDIA Reflex, AMD Anti-Lag) запускают расчёт кадра впритык к видеокарте. Генерация кадров задержку не уменьшает. Кадр в пути.
Где разбирается:Бюджет кадра на видеокарте · См. также:Вертикальная синхронизация, Упор в видеокарту
Закон ЛамбертаLambert's cosine lawОсвещённость поверхности пропорциональна косинусу угла между нормалью и направлением на свет. Отсюда яркость = max(0, dot(n, L)).
Где разбирается:Нормаль и свет, Прямой и непрямой свет · См. также:Скалярное произведение, Диффузное отражение
Закон обратных квадратовInverse square law, inverse squared falloffСвет точечного источника падает как 1 / расстояние²: вдвое дальше — вчетверо темнее. Та же порция света ложится на вчетверо большую площадь.
Движки обрезают его радиусом затухания (Attenuation Radius в Unreal, Range в Godot), у края свет плавно гасят. Солнце так далеко, что для сцены не затухает. Вдвое дальше — вчетверо темнее.
Где разбирается:Прямой и непрямой свет, Прямой и непрямой свет, Прямой и непрямой свет · См. также:Прямой свет
Запекание светаLight baking, precomputed lightingРасчёт освещения заранее, в редакторе: тысячи лучей и несколько отскоков, результат — в лайтмапы и пробы. В игре от расчёта остаётся выборка из текстуры, но ничего не может двигаться.
Выигрыш — мягкие тени и отскоки почти бесплатно. Цена — время запекания, память, вторая развёртка и неподвижность. Запечь — сфотографировать свет.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Лайтмапа, Проба света, Глобальное освещение, GI, Запекание
Запись глубиныDepth write, ZWriteСохранение глубины прошедшего пикселя в буфер, чтобы он закрывал то, что нарисуют после. Непрозрачное пишет глубину, прозрачное — нет.
Где разбирается:Буфер глубины: кто ближе к камере, Прозрачность: Opaque, Masked, Translucent · См. также:Тест глубины
Затенение от окружения, AOAmbient occlusionДоля неба, которую видит точка: 1 — открытое место, 0 — глубокая щель. Её запекают в текстуру. В Unreal вход AO гасит только непрямой свет, солнце не трогает.
Где разбирается:Свойства поверхности: roughness, metallic, AO, Прямой и непрямой свет, Туман и пост-обработка · См. также:Умножение цветов, Карта полостей, cavity, Свет неба, Непрямой свет, SSAO
Затенение отраженийSpecular occlusionГасит отражение там, где точка видит мало окружения: в щелях, углах, за шкафом. Его выводят из AO, потому что проба, снятая в одной точке, этого не знает.
Родственный приём — гасить часть отражения, которая из-за карты нормалей смотрит под поверхность. Когда ответа нет.
Где разбирается:Отражения: кубмапы, SSR и Lumen · См. также:Затенение от окружения, AO, Проба отражений
Зелёный канал: DirectX и OpenGLNormal map Y flipДве договорённости о том, куда смотрит G в карте нормалей. Unreal ждёт DirectX, Blender работает в OpenGL. Если перепутать, выпуклое выглядит вдавленным.
Где разбирается:Нормаль и свет, Касательное пространство и карта нормалей · См. также:Карта нормалей
Зеркальное отражение, бликSpecular reflectionСвет, отразившийся от самой поверхности, не заходя внутрь. У неметаллов он цвета источника и слабый, 2–5 % в упор; у металлов окрашен и сильный.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:Диффузное отражение, Эффект Френеля, Шероховатость
Иерархическая глубина, Hi-ZHierarchical Z, HZBГрубая копия буфера глубины: для блока пикселей хранится самая дальняя глубина. По ней видеокарта отбрасывает целые блоки, а движок — предметы, закрытые целиком.
Где разбирается:Буфер глубины: кто ближе к камере, LOD, инстансинг и Nanite: как рисуют миллион травинок · См. также:Ранняя проверка глубины, Отсечение перекрытых
Иерархический LOD, HLODHierarchical level of detail, HLODДальний уровень для целой группы предметов: квартал домов склеивают в один меш с одним материалом, и вдали он рисуется одним вызовом. Вблизи его сменяют настоящие предметы.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок, Открытый мир: как он грузится кусками · См. также:Уровни детализации, LOD, Вызов отрисовки, Импостер
ИмпостерImpostor, billboardПлоская карточка с заранее снятой картинкой предмета, повёрнутая к камере. Два треугольника вместо модели; снимки с разных сторон скрывают плоскость. Последний уровень дальних деревьев.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок · См. также:Уровни детализации, LOD, Иерархический LOD, HLOD, Карточка листвы
Инверсия, 1 − xOne MinusПереворачивает маску: белое становится чёрным, чёрное — белым.
Где разбирается:Цвет — это числа, Математика смешивания · См. также:Маска
Инстанс материалаMaterial instance / variantМатериал без своего графа: ссылка на родителя и переопределённые параметры. Остальное наследуется от родителя. Смена его параметров не требует компиляции.
В Unreal — Material Instance, в Unity — Material Variant (с версии 2022.1). Не путать с инстансингом — рисованием многих копий одним вызовом. Урок
Где разбирается:Материал: шейдер плюс данные, Материалы в Unreal: мастер, инстансы, функции, Материалы в Unreal: мастер, инстансы, функции, Мастер-материал с нуля · См. также:Материал, Инстансинг, Статический переключатель, Динамический инстанс материала
ИнстансингGPU instancingРисование многих копий одного меша с одним материалом за один вызов: у каждой копии только своё положение и немного своих данных. Так рисуют траву, камни, деревья.
ИнтерполяцияInterpolationПлавное смешивание значений между вершинами треугольника: так каждый пиксель получает свои UV, нормаль и цвет.
Искажение координатDomain warpingПеред чтением шума координату сдвигают другим шумом: шум(p + k × шум₂(p)). Соседи сдвинуты почти одинаково, и узор тянется струями — мрамор, разводы, потёки.
Где разбирается:Шум: из чего сделаны маски · См. также:Шум, Фрактальный шум, fBm
Искры бликаSpecular aliasingМерцание бликов на гладкой поверхности с мелкой картой нормалей: шейдер берёт рельеф в одной точке пикселя, и блик вспыхивает и гаснет. MSAA его не лечит; помогают шероховатость в мипах и временное сглаживание.
В Unreal — Composite Texture у текстуры шероховатости, в Godot — Screen Space Roughness Limiter. Что может художник.
Где разбирается:Сглаживание: лесенки, мерцание и TSR, Сглаживание: лесенки, мерцание и TSR, Мип-мапы и фильтрация: почему вдали мыло · См. также:Алиасинг, Шероховатость, Карта нормалей, Мип-мапы, Шероховатость из нормалей, Toksvig
КаналChannel (R, G, B, A)Одна из составляющих цвета: R, G, B или A. Каждый канал — отдельная чёрно-белая таблица чисел от 0 до 1.
Где разбирается:Цвет — это числа, Упаковка каналов · См. также:Маска, Упаковка каналов, Component Mask
Карта нормалейNormal mapТекстура, в каждом пикселе которой записано направление, а не цвет. Свет рисует по ней мелкий рельеф, которого нет в геометрии. Ровное место — (0.5, 0.5, 1).
Цвет = (стрелка + 1) / 2. Каналы читаются по отдельности: R — наклон влево-вправо, G — вверх-вниз. Подделку выдают силуэт и движение камеры.
Где разбирается:Нормаль и свет, Нормаль и свет, Касательное пространство и карта нормалей, Текстуры без UV: triplanar и world-aligned · См. также:Касательное пространство, Зелёный канал: DirectX и OpenGL, Запекание, RNM, переориентация нормалей, BC5
Карта полостей, cavityCavity mapКарта мелких щелей и пор. Ею затемняют BaseColor и Specular, потому что в тесную щель не попадает ни свет неба, ни его отражение.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:Затенение от окружения, AO, Зеркальное отражение, блик
Карта тенейShadow map, shadow mappingБуфер глубины, нарисованный из источника света: в каждом текселе — расстояние от лампы до ближайшей поверхности. Точка в тени, если в карте записано меньше, чем расстояние от неё до лампы.
Кадр идёт в два прохода: сначала сцену рисуют из лампы, записывая только глубину, потом для каждого пикселя сравнивают расстояния. Беды карты — лесенки, теневые прыщи и дрожание — идут от того, что тексель хранит одно число на полоску мира. Карта теней.
Где разбирается:Тени: карты, каскады и мягкие края, Тени: карты, каскады и мягкие края, Тени: карты, каскады и мягкие края · См. также:Буфер глубины, Теневые прыщи, Смещение тени, Каскадные карты теней, Виртуальные карты теней
Касательная, TTangentСтрелка на поверхности, которая смотрит туда, куда растёт координата U развёртки. Вместе с бинормалью и нормалью задаёт оси касательного пространства.
Где разбирается:Касательное пространство и карта нормалей, Касательное пространство и карта нормалей · См. также:Бинормаль, B, Касательное пространство, MikkTSpace
Касательное пространствоTangent spaceСистема координат, привязанная к поверхности: X и Y вдоль неё, Z наружу. Карты нормалей обычно записаны в ней, поэтому ровное место в них всегда сиреневое.
Где разбирается:Нормаль и свет, Пространства: где находится точка, Касательное пространство и карта нормалей · См. также:Карта нормалей, Пространство объекта, Касательная, T, Бинормаль, B, MikkTSpace
Каскадные карты тенейCascaded shadow maps, CSMТени солнца несколькими картами: пространство перед камерой режут по расстоянию на 2–4 куска, у каждого своя карта того же размера. Рядом тексели мелкие, вдали крупные.
Главная ручка качества — дальность теней: все каскады делят её. На границах каскадов видна черта, её прячут смешиванием. Каскады: тени солнца.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:Карта теней, Виртуальные карты теней
КластерCluster, meshletКусочек модели из примерно 128 соседних треугольников. Кластер проверяют на видимость и выбирают ему детализацию целиком — так работают Nanite и другие системы виртуальной геометрии.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок · См. также:Nanite
Коллекция параметров материаловMaterial Parameter Collection, MPCГлобальные параметры, общие для всех материалов: поменял одно число — изменились все, например мох на всех камнях мира.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции · См. также:Статический переключатель, Глобальный параметр шейдера
Конвейер рендерингаRendering pipelineПуть треугольника на экран: вершинный шейдер, растеризация, интерполяция, пиксельный шейдер, тест глубины и запись в кадр.
Где разбирается:Шейдер: функция для каждого пикселя · См. также:Вершинный шейдер, Растеризация, Пиксельный шейдер
Контактные тениContact shadows, screen-space shadowsКороткие тени по буферу глубины кадра: от пикселя шагают к источнику и проверяют, не встало ли что-то на пути. Дают мелочам — пуговицам, камешкам, стыкам — тени, которые меньше текселя карты.
Видят только то, что на экране, и не знают толщины предметов, поэтому работают в паре с картой теней. Запечённые и контактные тени.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:Карта теней, Текстура глубины
КонтрастContrastРазница между светлым и тёмным. Поднять контраст значит развести значения сильнее, по возможности не обрезая края. В композиции слово шире: любая разница с окружением — по размеру, форме, цвету, свету или движению.
Где разбирается:Цвет — это числа, Композиция в 3D · См. также:Степень, Кривая тона
Коррекция параллаксаParallax correction, box projectionПоправка кубмапы для комнаты: луч отражения ведут до стены заданной коробки и спрашивают пробу о направлении к этой точке стены. Без неё отражение в комнате плывёт вместе с камерой.
Точна, пока комната — коробка той же формы. Мебель, круглые залы и коробка не по размеру снова дают ошибку. Почему в комнате отражение плывёт.
Где разбирается:Отражения: кубмапы, SSR и Lumen · См. также:Кубмапа, Проба отражений
Кривая тонаTone curveГрафик операции над каналом: по горизонтали значение до, по вертикали после. По нему видно, что операция делает с тёмным, средним и светлым.
Где разбирается:Цвет — это числа, Туман и пост-обработка · См. также:Контраст, Степень, Тонмаппинг
КубмапаCubemap, cube mapШесть квадратных картинок — вид из одной точки вперёд, назад, влево, вправо, вверх и вниз. Читают её по направлению: грань выбирает самое большое число стрелки.
Кубмапа знает только направления, а не расстояния, поэтому честна для далёкого — неба, гор. Для комнаты её поправляют коробкой. Кубмапа.
Где разбирается:Отражения: кубмапы, SSR и Lumen · См. также:Проба отражений, Коррекция параллакса, Предфильтрованная кубмапа, Свет неба
Кэш поверхностейSurface cache, mesh cardsУпрощённые «фотографии» каждой модели с нескольких сторон, на которых Lumen хранит материал и свет. Луч, попавший в модель, берёт свет отсюда. Каждый кадр освещают часть карточек, поэтому отскоки копятся по кадрам.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Lumen, Поле расстояний
ЛайтмапаLightmapТекстура, в каждом текселе которой записано, сколько света пришло в эту точку поверхности. Цвета в ней нет: шейдер умножает BaseColor на свет из лайтмапы.
Свет меняется плавно, поэтому лайтмапе хватает 10–30 текселей на метр, а кирпичи остаются чёткими в своей текстуре. Лайтмапа: свет отдельно от цвета.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Развёртка для лайтмапы, Плотность лайтмапы, Запекание света, Направленная лайтмапа
Левая и правая системы координатLeft- and right-handed coordinatesДве договорённости о том, куда смотрит третья ось. Unreal и Unity — левые, Blender и Godot — правые. При переносе между ними одну ось переворачивают, иначе модель выходит зеркальной.
Где разбирается:Пространства: где находится точка, Векторное произведение: стрелка поперёк двух · См. также:Мировое пространство, Правило правой руки
Линейный цветLinear color, linear spaceЧисла, пропорциональные количеству света: вдвое больше число — вдвое больше света. В них свет складывают, умножают, смешивают и размывают; шейдер переводит текстуры цвета в линейные при чтении.
Где разбирается:Гамма и sRGB: цвет и данные хранят по-разному, Гамма и sRGB: цвет и данные хранят по-разному, Математика смешивания · См. также:sRGB, Гамма, HDR
МаскаMaskЧёрно-белая картинка, где каждый пиксель — число от 0 до 1, «сколько». Обычно служит долей t для смешивания.
Где разбирается:Цвет — это числа, Цвет — это числа, Упаковка каналов, Шум: из чего сделаны маски, Математика смешивания, Математика смешивания · См. также:Lerp, смешивание по доле, Инверсия, 1 − x, Шум
МасштабируемостьScalabilityОдна сцена с разными уровнями качества для разного железа: у каждой статьи кадра — теней, травы, отражений, пост-обработки, разрешения — своя ручка от «Низко» до «Эпик».
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Бюджет кадра, Динамическое разрешение
МатериалMaterialШейдер плюс значения его параметров: числа, цвета, текстуры. Код общий, данные у каждого материала свои. Так устроено в любом движке и в Blender.
Где разбирается:Материал: шейдер плюс данные · См. также:Шейдер, Параметр материала, Инстанс материала
МеталличностьMetallicПереключатель между двумя рецептами: 0 — диэлектрик (цвет в диффузе, отражение 4 % и бесцветное), 1 — металл (диффуза нет, BaseColor становится цветом отражения). Промежуточные значения — только на переходах.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:Диэлектрик, неметалл, F0, отражение в упор, BaseColor, альбедо
МикрограньMicrofacetКрошечная плоская грань поверхности, меньше пикселя. Модель PBR считает, что поверхность состоит из таких зеркалец, а шероховатость — это их разброс по наклону.
Где разбирается:Свойства поверхности: roughness, metallic, AO, Свойства поверхности: roughness, metallic, AO · См. также:Шероховатость, BRDF, функция отражения
Мип-мапыMipmapsЗаранее уменьшенные копии текстуры. Вдали видеокарта берёт маленькую копию, чтобы картинка не рябила.
Цепочка уровней, каждый вдвое меньше по стороне, до 1 × 1; вся цепочка — треть памяти оригинала. Уровень выбирают по производным UV: log2 размера следа пикселя. Урок про мип-мапы и фильтрацию.
Где разбирается:UV: как картинка ложится на модель, Прозрачность: Opaque, Masked, Translucent, Отражения: кубмапы, SSR и Lumen, Сглаживание: лесенки, мерцание и TSR, Гамма и sRGB: цвет и данные хранят по-разному, Мип-мапы и фильтрация: почему вдали мыло, Мип-мапы и фильтрация: почему вдали мыло · См. также:Фильтрация текстур, Производные и четвёрки пикселей, Алиасинг, Уровни детализации, LOD, Стриминг текстур, Трилинейная фильтрация, Анизотропная фильтрация, Смещение мип-мапа, След пикселя, Шероховатость из нормалей, Toksvig, Степень двойки
Мировое пространствоWorld spaceКоординаты от начала мира уровня, одни на всех. В них расставляют предметы, в них живут «верх», ветер и солнце.
Модель затененияShading modelФормула, по которой свет ложится на поверхность: обычная, кожа, ткань, волосы, лак. В отложенном рендере набор моделей фиксирован: номер модели хранится в G-буфере.
В Unreal номер модели занимает 4 бита в GBufferB, поэтому моделей не больше 16. Свою модель, например мультяшную, добавляют правкой движка или собирают пост-обработкой по G-буферу.
Где разбирается:Как движок рисует кадр: проходы и G-буфер, Материалы в Unreal: мастер, инстансы, функции, Трава и листва: карточки и ветер · См. также:G-буфер, BRDF, функция отражения, Substrate
Мягкое пересечениеDepth fade, soft particlesПрозрачность по разнице глубин: вода, дым и туман плавно гаснут там, где касаются поверхности, вместо жёсткой линии.
Где разбирается:Буфер глубины: кто ближе к камере · См. также:Текстура глубины
Направленная лайтмапаDirectional lightmapЛайтмапа, которая помнит не только сколько света пришло, но и откуда. Тогда карта нормалей на запечённой стене работает. Цена — вторая текстура и вдвое больше памяти.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Лайтмапа, Карта нормалей
Непрямой светIndirect light, indirect lightingСвет, который пришёл в точку не от источника, а от других поверхностей и от неба. Он заполняет тени и окрашивает их цветом соседей.
Поэтому тень в ясный день голубоватая: её освещает небо. Два света в каждой точке.
Где разбирается:Прямой и непрямой свет, Прямой и непрямой свет · См. также:Прямой свет, Отражённый свет, отскок, Глобальное освещение, GI, Затенение от окружения, AO
НормальNormalСтрелка длиной 1, перпендикулярная поверхности. Показывает, куда поверхность смотрит, и по ней считается свет.
Объём постобработкиPost Process VolumeНевидимая коробка в Unreal со своими настройками экспозиции, цвета и эффектов для места внутри неё. У границы настройки плавно сменяются (Blend Radius), при пересечении побеждает объём с большим Priority, а с Infinite Extent он действует на весь уровень.
Где разбирается:Интерьер и экстерьер · См. также:Автоэкспозиция, Экспозиция
Объёмный туманVolumetric fogТуман, посчитанный в сетке ячеек перед камерой: в каждой — плотность и свет от ламп с учётом теней. Даёт лучи сквозь листву и конусы фонарей. Дорогой, копится по кадрам и может шлейфить.
Где разбирается:Туман и пост-обработка · См. также:Высотный туман, Экспоненциальный туман, Карта теней, Временное сглаживание
Однородные координатыHomogeneous coordinatesЧетвёртое число w у координат: 1 у точек, 0 у направлений. Позволяет записать перенос умножением на матрицу 4 × 4, а направления не переносить.
Где разбирается:Пространства: где находится точка, Матрицы: новые оси вместо таблицы чисел · См. также:Матрица преобразования, Перспективное деление
ОктаваOctaveОдин слой в сумме шумов. Каждая следующая октава обычно вдвое мельче и вдвое слабее прошлой — как в музыке, где октава выше значит частота вдвое больше.
Где разбирается:Шум: из чего сделаны маски · См. также:Фрактальный шум, fBm, Частота и период, Амплитуда
Отложенный рендерингDeferred rendering, deferred shadingСначала непрозрачные предметы записывают свойства поверхности в G-буфер, потом отдельный проход считает свет по пикселям экрана — только там, куда достаёт лампа. Цена света не зависит от числа предметов.
Где разбирается:Как движок рисует кадр: проходы и G-буфер, Как движок рисует кадр: проходы и G-буфер · См. также:G-буфер, Прямой рендеринг
Отражённый свет, отскокBounce light, light bounceСвет, который упал на поверхность и отразился дальше. Каждый отскок умножает его на альбедо, поэтому при альбедо 0.5 три отскока дают 87.5 % всего непрямого света.
Светлым интерьерам и снегу нужно больше отскоков: при альбедо 0.8 три отскока дают меньше половины. Почему хватает двух-трёх отскоков.
Где разбирается:Прямой и непрямой свет, Прямой и непрямой свет, Прямой и непрямой свет · См. также:Непрямой свет, BaseColor, альбедо
Отсечение перекрытыхOcclusion cullingОтбрасывание предметов, закрытых другими целиком. Обычно проверяют по уменьшенной глубине (Hi-Z): предмет закрыт, если его ближняя точка дальше самой дальней глубины в клетках, которые он накрывает.
Отсечение по пирамиде камерыFrustum cullingПроверка, попадают ли границы предмета — описанный шар или коробка — в усечённую пирамиду, которую видит камера. Для шара это шесть скалярных произведений со стенками пирамиды.
Проверяют границы, а не модель, поэтому вершины, сдвинутые ветром за границы, могут пропасть раньше времени. Пирамида камеры.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок · См. также:Отсечение перекрытых, Дальность отсечения, Скалярное произведение
Параметр материалаMaterial parameterЧисло, цвет или текстура, которые инстанс передаёт в готовый шейдер. Одинаковы для всех пикселей и меняются без компиляции.
Перевёрнутая глубинаReversed-ZГлубина во float на 32 бита, где ближняя плоскость — 1, а бесконечность — 0. Дальнее попадает туда, где float точнее, и мерцание вдали почти исчезает.
Где разбирается:Буфер глубины: кто ближе к камере, Буфер глубины: кто ближе к камере · См. также:Буфер глубины, Z-fighting, мерцание глубины
ПерекрытиеOverdrawСколько раз пиксельный шейдер выполнился для одного места экрана. Прозрачные слои, трава и дым рисуются друг поверх друга и множат работу.
Где разбирается:Шейдер: функция для каждого пикселя, Буфер глубины: кто ближе к камере, Прозрачность: Opaque, Masked, Translucent, Как движок рисует кадр: проходы и G-буфер, LOD, инстансинг и Nanite: как рисуют миллион травинок, Бюджет кадра на видеокарте, Трава и листва: карточки и ветер · См. также:Пиксельный шейдер, Ранняя проверка глубины, Предпроход глубины
Пересвет, обрезкаClippingЗначение вылезло за 1 или ниже 0 и было обрезано: разные значения стали одинаковыми, и детали пропали.
Где разбирается:Цвет — это числа, Цвет — это числа, Туман и пост-обработка, Математика смешивания · См. также:Saturate, обрезка до 0..1, HDR, Тонмаппинг
Перестановка шейдераShader permutationОтдельный вариант шейдера для каждой комбинации статических переключателей, типа меша и прохода. Каждую нужно скомпилировать и хранить.
Перспективное делениеPerspective divideДеление координат на глубину после вершинного шейдера. Из-за него вдвое дальше — вдвое меньше.
Где разбирается:Пространства: где находится точка · См. также:Угол обзора, FOV, Пространство отсечения, NDC
ПивотPivot / originНачало координат модели: точка, вокруг которой её вращают и масштабируют и которую ставят в позицию предмета.
Где разбирается:Пространства: где находится точка · См. также:Пространство объекта, Трансформ
Пиксельный шейдерPixel (fragment) shaderВыполняется для каждого пикселя треугольника и решает его цвет и остальные каналы материала. Знает только свои входы и не видит соседних пикселей.
Где разбирается:Шейдер: функция для каждого пикселя, Шейдер: функция для каждого пикселя · См. также:Шейдер, Перекрытие
Плоские отраженияPlanar reflectionsСцену рисуют ещё раз из камеры, отражённой относительно плоскости зеркала или воды. Ответ полный, но кадр почти вдвое дороже и только для одной плоскости.
Где разбирается:Отражения: кубмапы, SSR и Lumen · См. также:Экранные отражения, SSR, Вектор отражения
Плотность лайтмапыLightmap density, lightmap resolutionСколько текселей лайтмапы приходится на метр поверхности. Мало — лесенки, пропавшие тонкие тени и протекание под стены; вдвое больше — памяти вчетверо больше.
Лайтмапа 64 на стене в 4 м — 16 текселей на метр, тексель 6 см. Плотность лайтмапы.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Плотность текселей, Лайтмапа
Плотность текселейTexel densityСколько пикселей текстуры приходится на метр поверхности. У соседних моделей она должна быть близкой, иначе одна выглядит мыльной.
Считается так: разрешение × доля развёртки / размер предмета. Текстура 2048, предмет 2 м, развёртка на всю текстуру — 1024 текселя на метр.
Где разбирается:UV: как картинка ложится на модель, Запечённый и динамический свет: лайтмапы и Lumen, Настройки текстур для каждой карты, Текстуры без UV: triplanar и world-aligned · См. также:Тексель, Развёртка, Плотность лайтмапы
Подвижность лампыLight mobilityСколько света лампы разрешено запечь. Неподвижная — всё, стационарная — отскоки и тени от неподвижного, подвижная — ничего. Чем больше запечено, тем дешевле и тем меньше можно менять.
У стационарной можно менять яркость и цвет, но не место: отскоки при этом не меняются. Три вида ламп.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Запекание света, Лайтмапа
Показатель преломленияIndex of refraction, IORВо сколько раз свет в веществе медленнее, чем в пустоте: у воды 1.33, у стекла около 1.5. Из него получается F0 = ((n − 1) / (n + 1))².
Где разбирается:Свойства поверхности: roughness, metallic, AO, Вода в мире: озёра, реки и берега · См. также:F0, отражение в упор, Эффект Френеля, Преломление
Покрытие альфа-тестаAlpha coverage, preserve coverageДоля пикселей, прошедших порог альфа-теста. В уменьшенных копиях текстуры альфа усредняется, покрытие падает, и листва вдали редеет. Сохранение покрытия умножает альфу каждой копии, чтобы доля осталась прежней.
Unity: Mip Maps Preserve Coverage. Unreal: Do Scale Mips for Alpha Coverage. Godot 4.8: Mipmaps → Preserve Alpha Test Coverage.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Мип-мапы и фильтрация: почему вдали мыло, Трава и листва: карточки и ветер · См. также:Альфа-тест, режим Masked, Мип-мапы
Поле расстоянийSigned distance field, SDFОбъёмная таблица вокруг модели: в каждой точке записано, как далеко до ближайшей поверхности. Луч идёт по ней прыжками на это расстояние, поэтому быстро, но тонкие стены поле может не заметить.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Lumen, Трассировка лучей
ПолутеньPenumbraМягкий край тени, где источник закрыт только частично. Ширина — размер источника × высота заслонки / (высота источника − высота заслонки): у основания предмета тень резкая, вдали мягкая.
Солнце видно под углом около 0.53°, поэтому его полутень — примерно сотая доля расстояния от заслонки. Мягкие края.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:PCF и PCSS
Пост-обработкаPost-processingПроходы по готовому кадру: туман, свечение, глубина резкости, размытие движения, экспозиция и тонмаппинг. Шейдер здесь видит соседние пиксели, потому что кадр уже нарисован.
Где разбирается:Как движок рисует кадр: проходы и G-буфер, Туман и пост-обработка · См. также:Проход рендеринга, HDR, Тонмаппинг, Свечение, Цветокоррекция, Экспоненциальный туман
Предпроход глубиныDepth prepass, Z-prepassСначала вся непрозрачная геометрия рисуется только в буфер глубины, потом с материалом и тестом «ровно так же». Каждый видимый пиксель считается один раз.
Где разбирается:Буфер глубины: кто ближе к камере, Как движок рисует кадр: проходы и G-буфер · См. также:Ранняя проверка глубины, Перекрытие
Предфильтрованная кубмапаPrefiltered cubemap, prefiltered environment mapКубмапа, у которой каждый мип-уровень заранее размыт под свою шероховатость: 0 — зеркало, последние — почти матовое пятно. Шейдер выбирает уровень по Roughness, и размытие стоит одну выборку.
Часть приёма «разделённая сумма»: вторая часть — маленькая таблица Френеля и теней микрограней по шероховатости и углу (в Unreal — EnvBRDF). Из-за допущения «смотрим в лоб» пропадают вытянутые отражения. Шероховатость размывает отражение.
Где разбирается:Отражения: кубмапы, SSR и Lumen, Отражения: кубмапы, SSR и Lumen · См. также:Кубмапа, Мип-мапы, Шероховатость
ПреломлениеRefractionЛуч света меняет направление на границе двух веществ, потому что в них разная скорость света. Из-за него ложка в стакане кажется сломанной, а дно — ближе, чем есть.
Где разбирается:Вода в мире: озёра, реки и берега · См. также:Показатель преломления, Эффект Френеля
Проба отраженийReflection probe, reflection captureКубмапа, снятая в точке уровня, с областью, где ей пользуются. Снимают заранее или во время игры, редко и по частям: шесть граней — шесть лишних кадров сцены.
Движущегося запечённая проба не видит. У каждого закрытого помещения должна быть своя, иначе в нём отражается небо. Кубмапа, Когда ответа нет.
Где разбирается:Отражения: кубмапы, SSR и Lumen, Отражения: кубмапы, SSR и Lumen · См. также:Кубмапа, Коррекция параллакса, Проба света, Затенение отражений
Проба светаLight probeТочка в воздухе, которая помнит, сколько света приходит к ней с каждой стороны. Движущиеся предметы берут непрямой свет у ближайших проб.
Пробы ставят сеткой и запекают или обновляют на ходу. В Unity проба хранит 27 чисел — по девять на цветовой канал. Сетки проб: Adaptive Probe Volumes в Unity 6, Volume в EEVEE, Volumetric Lightmap в Unreal, пробы LightmapGI в Godot.
Где разбирается:Прямой и непрямой свет, Запечённый и динамический свет: лайтмапы и Lumen · См. также:Глобальное освещение, GI, Непрямой свет, Проба отражений, Лайтмапа
Продление цвета под прозрачноеColor dilation, edge paddingПрозрачные пиксели текстуры заливают цветом ближайших краёв, альфу не трогая. Тогда фильтрация и мип-мапы не подмешивают в край чёрный или белый, и тёмной каймы нет.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Трава и листва: карточки и ветер · См. также:Premultiplied alpha, Поля вокруг островов, padding, Фильтрация текстур
Прозрачность без сортировкиOrder-independent transparency, OITСпособы правильно смешать прозрачные слои в каждом пикселе без сортировки предметов: хранить и сортировать все слои, снимать их по одному или складывать с весами. Дороже обычной сортировки.
Где разбирается:Прозрачность: Opaque, Masked, Translucent · См. также:Сортировка прозрачного
Производные и четвёрки пикселейScreen-space derivatives (ddx, ddy), 2×2 quadsВидеокарта считает пиксели квадратами 2 × 2 и так узнаёт, как быстро меняются UV к соседу. По этому она выбирает уровень мип-мапа.
Где разбирается:Шейдер: функция для каждого пикселя, Мип-мапы и фильтрация: почему вдали мыло · См. также:Мип-мапы, След пикселя
Пространство камерыView (camera) spaceКоординаты от камеры: вперёд, вправо, вверх. Переход в него — обратный трансформ камеры: двигается не камера, а весь мир.
Где разбирается:Пространства: где находится точка, Пространства: где находится точка · См. также:Мировое пространство, Экранное пространство
Пространство объектаObject (local) spaceКоординаты от пивота модели в её собственных осях. Так точки записаны в файле модели, и они не меняются, куда бы предмет ни поставили.
Где разбирается:Пространства: где находится точка, Текстуры без UV: triplanar и world-aligned · См. также:Мировое пространство, Пивот, Трансформ
Пространство отсечения, NDCClip space / normalized device coordinatesКоординаты после проекции. После деления на глубину всё видимое лежит от −1 до 1 по x и y, остальное отсекается.
Протекание лайтмапыLightmap bleeding, light bleedingСветлые или тёмные полосы по краям кусков лайтмапы: смешивание соседних текселей захватывает чужой кусок или пустоту. Лечат отступом не меньше двух текселей и продлением краёв.
Отступ меряют в текселях лайтмапы, поэтому при меньшем разрешении та же развёртка начинает протекать. Протекание по швам.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Развёртка для лайтмапы, Поля вокруг островов, padding, Продление цвета под прозрачное
ПрофилировщикProfilerИнструмент, который меряет, сколько заняла каждая часть кадра на процессоре и видеокарте. Искать узкое место — от общего к частному: кто медленнее, какой проход, какой предмет.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Бюджет кадра, Упор в процессор, Упор в видеокарту
Проход рендерингаRender passОдин этап кадра: видеокарта рисует что-то в свою картинку — глубину, G-буфер, свет, пост-обработку. Следующие проходы читают эту картинку как текстуру.
Проход по предметам рисует модели через вершинный и пиксельный шейдеры. Проход по экрану работает с готовыми картинками и запускает шейдер ровно раз на каждый пиксель, поэтому его цена растёт с разрешением, а не со сценой. Порядок проходов кадра.
Где разбирается:Как движок рисует кадр: проходы и G-буфер, Как движок рисует кадр: проходы и G-буфер · См. также:Цель рендеринга, G-буфер, Пост-обработка
Прыжок LODLOD poppingЗаметная смена формы модели в момент переключения уровня детализации. Смягчают близкими уровнями, запасом между порогами вниз и вверх и плавным переходом дизерингом.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок · См. также:Уровни детализации, LOD, Дизеринг
Прямой рендерингForward rendering, forward shadingСвет считают сразу, когда рисуют предмет: пиксельный шейдер перебирает лампы, выбранные для всего предмета. Дружит с прозрачным и MSAA, но много ламп на большом предмете обходится дорого.
Где разбирается:Как движок рисует кадр: проходы и G-буфер · См. также:Отложенный рендеринг, Forward+ и кластерный свет, MSAA
Прямой светDirect light, direct lightingСвет, который пришёл в точку прямо от источника: солнца, лампы, фонаря. Он даёт резкие тени: точка либо видит источник, либо нет.
Где разбирается:Прямой и непрямой свет · См. также:Непрямой свет, Глобальное освещение, GI, Закон Ламберта
РазвёрткаUV unwrapМодель, разрезанная и разложенная на плоскость, как выкройка. Из неё берутся адреса UV.
Где разбирается:UV: как картинка ложится на модель · См. также:Шов, Растяжение UV
Развёртка для лайтмапыLightmap UVs, UV2Отдельная развёртка модели для лайтмапы: все куски внутри 0…1, без тайлинга и наложений, с отступами в текселях лайтмапы. Первая для этого не годится: у неё повторы и общие куски.
В Unreal обычно канал 1 (счёт с нуля), в Unity и Godot — UV2. Вторая развёртка.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen · См. также:Развёртка, Лайтмапа, Протекание лайтмапы
Размытие в движенииMotion blurСлед за быстрым предметом, как на фото с выдержкой: каждый пиксель размывают вдоль его вектора движения. Длину задают долей кадра, как угол затвора. Съедает детали и может укачивать.
Где разбирается:Туман и пост-обработка · См. также:Векторы движения, Глубина резкости
Ранняя проверка глубиныEarly-Z, early depth testТест глубины до пиксельного шейдера: закрытые пиксели отбрасываются, и работа на материал не тратится. Хуже работает, если шейдер сам пишет глубину или выбрасывает пиксели.
Где разбирается:Буфер глубины: кто ближе к камере, Трава и листва: карточки и ветер · См. также:Перекрытие, Иерархическая глубина, Hi-Z, Предпроход глубины
Рассеяние МиMie scatteringРассеяние на частицах размером с длину волны и крупнее: пыль, пыльца, дым, капли. Рассеивает все цвета почти поровну и в основном вперёд, поэтому дымка белёсая, облака белые, а вокруг солнца ореол.
Где разбирается:Воздух и даль: туман, небо, время суток · См. также:Рассеяние Рэлея, Воздушная перспектива
Рассеяние РэлеяRayleigh scatteringРассеяние света на частицах намного меньше длины волны, например на молекулах воздуха. Растёт обратно четвёртой степени длины волны: синий отлетает почти в 6 раз чаще красного, поэтому небо голубое, а низкое солнце красное.
Где разбирается:Воздух и даль: туман, небо, время суток · См. также:Рассеяние Ми, Воздушная масса
РастеризацияRasterizationЭтап, на котором видеокарта находит пиксели, центры которых попали внутрь треугольника. Её выполняет железо, программировать её не нужно.
Растяжение UVUV stretchingКусок развёртки непропорционален своему месту на модели, и текстура на нём вытянута. Видно по проверочной клетке.
Где разбирается:UV: как картинка ложится на модель · См. также:Развёртка
Режим повтораAddress mode: Wrap, Clamp, MirrorЧто делать, если UV вышел за 0..1: повторить текстуру (Wrap), растянуть крайний пиксель (Clamp) или отразить (Mirror).
Где разбирается:UV: как картинка ложится на модель · См. также:Тайлинг
Режим смешиванияBlend modeКак новый цвет пикселя ложится на уже нарисованный: заменяет его (Opaque), заменяет или выбрасывается по порогу (Masked), смешивается (Translucent, Additive, Modulate).
Свет небаSky light, environment lightingОсвещение панорамой неба: грань, смотрящая вверх, получает голубое небо, смотрящая вниз — отражённую землю. Сам он не знает о стенах, поэтому без AO и закрытия неба светит и в пещеры.
СвечениеBloom, glowОреол вокруг ярких мест, как от рассеяния света в объективе и глазу: кадр размывают на нескольких масштабах и подмешивают к исходному. Делают в HDR до тонмаппинга, чтобы ярче источник — шире ореол.
Где разбирается:Туман и пост-обработка, Туман и пост-обработка · См. также:HDR, Тонмаппинг, Пост-обработка
СглаживаниеAnti-aliasing, AAСпособы бороться с алиасингом. Идея у всех одна: больше проб на пиксель, в одном кадре или по нескольким, и смешать их.
Суперсэмплинг, MSAA, постфильтры FXAA и SMAA, временное сглаживание и апскейлеры. Как сглаживают.
Где разбирается:Сглаживание: лесенки, мерцание и TSR, Сглаживание: лесенки, мерцание и TSR · См. также:Алиасинг, Суперсэмплинг, MSAA, FXAA и SMAA, Временное сглаживание
Сглаживание нормалейSmooth shadingНормали в вершинах усредняют и плавно смешивают внутри треугольника, поэтому гранёная модель выглядит гладкой. Жёсткое ребро — где нормали нарочно разделены.
Где разбирается:Нормаль и свет · См. также:Нормаль, Интерполяция
Сжатие текстур BCBlock compression: BC1, BC3, BC4, BC5, BC7Форматы, в которых видеокарта хранит текстуры сжатыми блоками 4 × 4 одного размера и читает любой тексель без распаковки. BC1 — цвет и три маски, BC3 и BC7 — с альфой, BC4 — одна маска, BC5 — нормали.
Без сжатия тексель занимает 32 бита, в BC1 и BC4 — 4, в BC3, BC5 и BC7 — 8. Каналы неравны: как сжимают текстуры.
Где разбирается:Касательное пространство и карта нормалей, Упаковка каналов, Настройки текстур для каждой карты · См. также:sRGB, BC1 (DXT1), BC4, BC5, BC7, Упаковка каналов
След пикселяPixel footprintУчасток текстуры, который накрывает один пиксель экрана. Его размер задаёт уровень мип-мапа, а вытянутость под острым углом — число проб анизотропной фильтрации.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло · См. также:Производные и четвёрки пикселей, Анизотропная фильтрация, Мип-мапы
Сложение цветовAddРаботает как свет: два фонарика на одной стене дают пятно ярче каждого. Нейтральное значение — 0. Сумма легко перевалит за 1.
Где разбирается:Цвет — это числа · См. также:Умножение цветов, Пересвет, обрезка
Сложение, режим AdditiveAdditive blendingНовый цвет прибавляется к нарисованному: так ведёт себя свет. Чёрное невидимо, затемнить нельзя, порядок слоёв не важен, поэтому огонь и искры можно не сортировать.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Математика смешивания · См. также:Сложение цветов, Умножение, режим Modulate, Смешивание «поверх»
Слои материалаMaterial LayersСистема Unreal, где поверхность собирают в инстансе стопкой слоёв: каждый слой — целая поверхность (камень, ржавчина, снег), а смешивание по маске кладёт верхний на нижний. Каждый слой считается полностью, поэтому слои дороже фиксированного мастера.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции · См. также:Функция материала, Атрибуты материала
Смешивание «поверх»Alpha blending, overНовый цвет смешивается с уже нарисованным: новое × α + старое × (1 − α). Это lerp, и результат зависит от порядка слоёв, поэтому прозрачное сортируют.
Где разбирается:Прозрачность: Opaque, Masked, Translucent · См. также:Lerp, смешивание по доле, Сортировка прозрачного, Premultiplied alpha
Смешивание по высотеHeight blendLerp двух материалов, у которого маску сдвигает карта высоты: верхний слой проступает сначала на выступах или в щелях, и граница идёт по рельефу, а не размытым пятном.
Простая запись: t = saturate(h + 2 × m − 1), потом контраст и lerp(A, B, t). При маске 0 остаётся нижний слой, при 1 — верхний. В Unreal — функция HeightLerp со входами Transition Phase и Contrast.
Где разбирается:Математика смешивания · См. также:Lerp, смешивание по доле, Маска, Smoothstep
Смешивание проекцийProjection blending, blend sharpnessВеса трёх проекций из нормали: модули |n.x|, |n.y|, |n.z| возводят в степень k и делят на их сумму, чтобы вместе было 1. Чем больше k, тем уже переход; при огромном k — кубическая проекция со швами.
Без деления на сумму рёбра светлеют (на 45° — на 41 %) или темнеют. Веса берут из нормали меша, а не из карты нормалей. Модуль, степень и сумма 1.
Где разбирается:Текстуры без UV: triplanar и world-aligned, Текстуры без UV: triplanar и world-aligned · См. также:Triplanar, трипланарная проекция, Скалярное произведение, Lerp, смешивание по доле, Нормаль
Смещение вершин, WPOWorld Position OffsetВход материала, который сдвигает каждую вершину в вершинном шейдере. Так качаются трава и волны. Коллизию и границы объекта он не меняет.
Смещение глубиныDepth bias, polygon offsetНебольшая поправка к глубине пикселя при растеризации: геометрия стоит на месте, а тест считает её чуть ближе или дальше. Лечит мерцание наклеек и полосы на тенях.
Где разбирается:Буфер глубины: кто ближе к камере, Тени: карты, каскады и мягкие края · См. также:Z-fighting, мерцание глубины, Смещение тени, Теневые прыщи
Смещение мип-мапаMip bias, texture LOD biasЧисло, которое прибавляют к номеру выбранного уровня мип-мапа. Плюс — мельче уровень: мягче и дешевле. Минус — крупнее: резче, но возвращается рябь. TAA и апскейл сдвигают в минус сами.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло, Мип-мапы и фильтрация: почему вдали мыло · См. также:Мип-мапы, Временное сглаживание, Апскейл
Смещение тениShadow bias, slope bias, normal biasНебольшой сдвиг точки к лампе или наружу по нормали перед сравнением с картой теней, чтобы поверхность не затеняла саму себя. Слишком большое смещение отрывает тень от предмета.
Постоянное — одно число на всё; по наклону — растёт как tan угла между нормалью и светом; по нормали — сдвиг на долю текселя, хватает половины при любом угле. Почему смещение зависит от наклона.
Где разбирается:Тени: карты, каскады и мягкие края, Тени: карты, каскады и мягкие края · См. также:Теневые прыщи, Эффект Питера Пэна, Смещение глубины
Сортировка прозрачногоTransparency sortingПрозрачные предметы рисуют после непрозрачных, от дальнего к ближнему, упорядочив по одной точке — обычно центру габаритов. Ошибается на пересечениях, больших предметах и треугольниках одной модели.
Сохранение энергииEnergy conservationПоверхность не отражает больше света, чем на неё упало. Поэтому у шероховатой поверхности блик шире, но тусклее, а у металла нет диффуза.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:Шероховатость, BRDF, функция отражения
Статический переключательStatic SwitchВыбор ветки графа ещё при сборке шейдера. Выключенная ветка ничего не стоит, но каждая комбинация переключателей — отдельный шейдер.
СтепеньPowerx в степени p. На значениях от 0 до 1 при p больше 1 затемняет середину, меньше 1 — осветляет, а 0 и 1 не двигает. Так делают контраст маски.
Где разбирается:Цвет — это числа, Математика смешивания · См. также:Контраст
Степень двойкиPower of two, POT / NPOTРазмер текстуры вида 256, 512, 1024, 2048: сторона делится пополам до 1, и цепочка мип-мапов ложится ровно. Стороны могут различаться: 2048 × 512 — тоже степени двойки.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло · См. также:Мип-мапы, Сжатие текстур BC, Стриминг текстур
Стриминг текстурTexture streaming, mipmap streamingДвижок держит в видеопамяти только те мип-мапы текстур, которые нужны кадру по размеру на экране, и догружает подробные по мере приближения. Если пул переполнен, текстуры остаются мыльными.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте, Мип-мапы и фильтрация: почему вдали мыло · См. также:Мип-мапы, Видеопамять, Плотность текселей, Смещение мип-мапа
Ступень экспозиции, EVExposure value (EV), stopУдвоение света. +1 EV — в кадр пускают вдвое меньше света: ясному дню подходит около EV 15, вечерней комнате — около EV 5. Освещённость в люксах при ISO 100: E = 2,5 × 2^EV.
Где разбирается:Прямой и непрямой свет, Интерьер и экстерьер · См. также:Экспозиция, Автоэкспозиция
СуперсэмплингSupersampling, SSAAКадр рисуют в большем разрешении и уменьшают, усредняя соседей. Шейдер считается в каждой пробе, поэтому лечится любой алиасинг, но и работы во столько же раз больше.
Где разбирается:Сглаживание: лесенки, мерцание и TSR · См. также:Сглаживание, MSAA
ТайлингTilingПовторение текстуры: UV умножают на число N, и текстура повторяется N раз по каждой стороне — каждая копия в N раз мельче.
Где разбирается:UV: как картинка ложится на модель, Текстуры без UV: triplanar и world-aligned · См. также:Бесшовная текстура, Режим повтора, World-aligned текстура
Тайловый рендерингTile-based rendering, TBDRМобильные видеокарты рисуют экран небольшими плитками в быстрой памяти. Видеокарты Apple и PowerVR сначала находят ближайший треугольник в каждом пикселе плитки и только потом запускают шейдер.
Где разбирается:Буфер глубины: кто ближе к камере · См. также:Ранняя проверка глубины, Перекрытие
ТексельTexelПиксель текстуры.
Где разбирается:UV: как картинка ложится на модель, Тени: карты, каскады и мягкие края, Мип-мапы и фильтрация: почему вдали мыло · См. также:Плотность текселей
ТекстураTextureКартинка, которую материал читает как таблицу чисел: там может быть цвет, направления нормалей или маски.
Где разбирается:Цвет — это числа · См. также:Тексель, Канал, UV
Текстура глубиныDepth texture, scene depthБуфер глубины, который читают как текстуру после непрозрачного: прозрачные материалы и пост-обработка узнают по нему, насколько далеко видимая поверхность.
Где разбирается:Буфер глубины: кто ближе к камере, Буфер глубины: кто ближе к камере, Как движок рисует кадр: проходы и G-буфер, Отражения: кубмапы, SSR и Lumen, Туман и пост-обработка, Туман и пост-обработка · См. также:Мягкое пересечение, Буфер глубины, Декаль, Экранные отражения, SSR, SSAO, Глубина резкости
Теневые прыщиShadow acneПолосы и рябь на освещённой поверхности: она затеняет сама себя, потому что тексель карты хранит глубину своего центра, а поверхность внутри текселя уходит дальше от лампы.
Сильнее всего при скользящем свете. Лечится смещением тени — по наклону или по нормали. Теневые прыщи.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:Смещение тени, Карта теней, Z-fighting, мерцание глубины
Тест глубиныDepth test, ZTestСравнение глубины нового пикселя с записанной в буфере: пиксель проходит, только если он ближе (или как настроено сравнение).
Где разбирается:Буфер глубины: кто ближе к камере, Буфер глубины: кто ближе к камере · См. также:Запись глубины, Ранняя проверка глубины
ТинтTintЦвет, которым окрашивают текстуру, чтобы сменить её оттенок, чаще всего умножением.
Где разбирается:Цвет — это числа, Упаковка каналов · См. также:Умножение цветов, Overlay, перекрытие
ТонмаппингTonemapping, tone mappingКривая, которая переводит любую яркость HDR-кадра от 0 до бесконечности в 0…1 экрана: тени чуть темнее, середина почти прямо, яркое плавно сжимается к белому, как на плёнке. Без неё всё ярче 1 обрезается в одинаковое белое.
Применённая к каждому каналу, кривая белит яркие насыщенные цвета: огонь желтеет. ACES, Filmic, AgX, Рейнхард — разные кривые. Тонмаппинг.
Где разбирается:Туман и пост-обработка, Туман и пост-обработка, Туман и пост-обработка · См. также:HDR, Экспозиция, Пересвет, обрезка, Кривая тона, Цветокоррекция
Точность координат, LWCFloating-point precision / Large World CoordinatesУ float около семи значащих цифр: вдали от начала мира шаг чисел растёт, и модели дрожат. Unreal 5 хранит мировые позиции в double — это Large World Coordinates.
ТрансформTransformПеренос, поворот и масштаб предмета. Применяются в порядке масштаб → поворот → перенос и хранятся как одна матрица.
Трассировка лучейRay tracingПоиск первого, во что упрётся луч, по самой сцене, а не по экрану. Сцену раскладывают по вложенным коробкам, видеокарты ищут пересечения на отдельных блоках. Лучей мало — картинка шумная, её сглаживает шумодав.
Так считают тени, отражения и непрямой свет. Lumen сначала ищет ответ на экране, потом — по упрощённой копии сцены. Лучи и Lumen, Тени лучами.
Где разбирается:Отражения: кубмапы, SSR и Lumen, Тени: карты, каскады и мягкие края · См. также:Экранные отражения, SSR, Глобальное освещение, GI, Lumen
Трилинейная фильтрацияTrilinear filteringБилинейная выборка из двух соседних уровней мип-мапа, смешанная по дробной части номера уровня. Без неё на полу видны рубежи, где резкость меняется скачком.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло · См. также:Мип-мапы, Билинейная фильтрация, Анизотропная фильтрация
Убер-шейдерUber shaderОдин большой шейдер на всё с множеством переключателей. Удобно начинать, но трудно поддерживать, а число его вариантов растёт как степень двойки.
Где разбирается:Материал: шейдер плюс данные, Материалы в Unreal: мастер, инстансы, функции · См. также:Перестановка шейдера, Статический переключатель
Угол обзора, FOVField of viewСколько градусов мира помещается в кадр. Узкий угол работает как зум. В Unreal он горизонтальный, в Unity по умолчанию вертикальный.
Где разбирается:Пространства: где находится точка · См. также:Перспективное деление
Умножение цветовMultiplyРаботает как фильтр, цветное стекло: каждый канал проходит на свою долю. Нейтральное значение — 1. Числами от 0 до 1 только затемняет.
Так тонируют текстуры и так свет ложится на поверхность: цвет = BaseColor × свет. Красное яблоко под синим светом чёрное, потому что (1, 0, 0) × (0, 0, 1) = (0, 0, 0).
Где разбирается:Цвет — это числа · См. также:Сложение цветов, Тинт
Умножение, режим ModulateModulate, multiply blendingНовый цвет умножает нарисованный: так работает фильтр — витраж, солнечные очки, грязь. Белое невидимо, осветлить нельзя, порядок слоёв не важен.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Математика смешивания · См. также:Умножение цветов, Сложение, режим Additive
Упаковка каналовChannel packingНесколько чёрно-белых масок в каналах R, G, B и A одной текстуры: одна выборка вместо трёх и втрое меньше памяти. Порядок каналов — договорённость пака, сама текстура — данные без sRGB.
Самая частая упаковка — ORM: AO, шероховатость, металл. Важное кладут в зелёный канал, он точнее в BC1; четвёртая маска в альфе удваивает память. Урок про упаковку каналов.
Где разбирается:Цвет — это числа, Упаковка каналов, Упаковка каналов · См. также:Канал, Маска, ORM, ARM, RMA, Сжатие текстур BC, Данные, не цвет
Упор в видеокартуGPU-boundКадр задаёт видеокарта, а процессор её ждёт. Если кадр ускоряется от снижения разрешения — упор в пиксели; если нет — в вершины или карты теней.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Упор в процессор, Видеокарта, GPU, Бюджет кадра
Упор в процессорCPU-boundКадр задаёт процессор: логика, физика или подготовка вызовов отрисовки дольше, чем работа видеокарты, и она простаивает. Снижение разрешения тогда не помогает.
Где разбирается:Бюджет кадра на видеокарте, Бюджет кадра на видеокарте · См. также:Упор в видеокарту, Вызов отрисовки, Бюджет кадра
Уровни детализации, LODLevel of detail, LODНесколько версий модели: полная для близи и всё более простые для дали. Движок переключает их по размеру предмета на экране, а не по метрам, чтобы на пиксель приходилось примерно одинаково треугольников.
Вдвое дальше — вчетверо меньше пикселей, поэтому каждый следующий уровень обычно в 2–4 раза проще. Переключать по размеру на экране.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок, LOD, инстансинг и Nanite: как рисуют миллион травинок, LOD, инстансинг и Nanite: как рисуют миллион травинок, Трава и листва: карточки и ветер · См. также:Прыжок LOD, Иерархический LOD, HLOD, Импостер, Nanite, Мип-мапы
Фабрика вершинVertex factoryКусок шейдера, который получает вершины для одного типа меша: обычного, скелетного, инстансов, Nanite, частиц. Для каждой фабрики материал компилирует свой набор шейдеров.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции · См. также:Флаги Usage, Перестановка шейдера
Фильтрация текстурTexture filteringКак видеокарта берёт цвет между центрами текселей: ближайший тексель (квадраты) или смешивание четырёх соседей (билинейная).
Где разбирается:UV: как картинка ложится на модель, Прозрачность: Opaque, Masked, Translucent, Интерполяция: lerp, smoothstep и remap, Гамма и sRGB: цвет и данные хранят по-разному, Мип-мапы и фильтрация: почему вдали мыло · См. также:Мип-мапы, Lerp, смешивание по доле, Ближайший тексель, Билинейная фильтрация, Трилинейная фильтрация, Анизотропная фильтрация
Флаги UsageMaterial usage flagsГалочки мастер-материала в Unreal: с какими мешами он работает. Каждая добавляет набор шейдеров для своей фабрики вершин. Без нужного флага собранная игра рисует предмет материалом по умолчанию — серо-белой клеткой.
Редактор ставит флаги сам (Automatically Set Usage in Editor), но они сохраняются только вместе с материалом. В мастерах с множеством инстансов автоматическую галочку выключают: лишний флаг умножается на все сочетания переключателей.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции, Материалы в Unreal: мастер, инстансы, функции · См. также:Фабрика вершин, Перестановка шейдера
Фрактальный шум, fBmFractional Brownian motion, fBmСумма октав одного шума: каждая следующая в lacunarity раз мельче (обычно 2) и в persistence раз слабее (обычно 0.5). Крупная форма плюс всё более мелкие неровности — рельеф, похожий сам на себя в любом масштабе.
Сила вдвое меньше при частоте вдвое больше, потому что в природе высота бугра примерно пропорциональна его ширине. Октав есть смысл добавлять, пока самая мелкая не меньше двух пикселей. Модуль каждой октавы даёт складки (Turbulence), перевёрнутый модуль — гребни (ridged).
Где разбирается:Шум: из чего сделаны маски, Шум: из чего сделаны маски · См. также:Октава, Шум, Амплитуда, Частота и период
Функция материалаMaterial FunctionКусок графа материала со своими входами и выходами, который вставляют в разные материалы одной нодой. Сама ничего не стоит: её ноды становятся частью кода материала. Правка функции перекомпилирует все материалы, где она стоит.
Где разбирается:Материалы в Unreal: мастер, инстансы, функции, Мастер-материал с нуля · См. также:Материал, Слои материала, Атрибуты материала
Цвет вершинVertex colorЦвет, записанный прямо в вершины модели. Его рисуют кистью и используют как маску, например чтобы стереть мох в нужном месте.
Где разбирается:UV: как картинка ложится на модель, Трава и листва: карточки и ветер, Трава и листва: карточки и ветер · См. также:Маска, Маска ветра
Цветовое пространствоColor spaceДоговорённость, что означают три числа цвета: какие красный, зелёный и синий считать основными, какой белый — белым и по какой кривой числа связаны со светом. Текстуры игр почти всегда в sRGB.
Где разбирается:Гамма и sRGB: цвет и данные хранят по-разному · См. также:sRGB, Гамма
ЦветокоррекцияColor gradingПокраска готового кадра: баланс белого, насыщенность, контраст, кривые, отдельные тона для теней и светов. До тонмаппинга работает со светом, после — с экранными числами. Часто запекается в LUT.
Где разбирается:Туман и пост-обработка · См. также:LUT, таблица цвета, Тонмаппинг, Кривая тона, Контраст
Цель рендерингаRender targetКартинка в памяти видеокарты, в которую проход рисует вместо экрана. Потом её читают как текстуру. Экран — последняя цель кадра, буфер глубины — одна из первых.
В Unreal есть и ассет Render Target — такая же картинка, в которую можно рисовать самому: вид с камеры наблюдения, следы на снегу.
Где разбирается:Как движок рисует кадр: проходы и G-буфер · См. также:Проход рендеринга, Буфер глубины
ШейдерShaderПрограмма для видеокарты, которая выполняется отдельно для каждой вершины или каждого пикселя. Граф материала в Unreal — это шейдер, нарисованный нодами.
Где разбирается:Шейдер: функция для каждого пикселя · См. также:Пиксельный шейдер, Вершинный шейдер, HLSL
ШероховатостьRoughnessНасколько вразнобой наклонены микрограни: 0 — зеркало, 1 — полностью матовая поверхность. Чем выше, тем шире и тусклее блик.
Обратная величина в старых пайплайнах — глянец (glossiness = 1 − roughness). В формуле блика используют α = Roughness², чтобы ползунок работал на глаз равномерно. Урок
Где разбирается:Свойства поверхности: roughness, metallic, AO, Отражения: кубмапы, SSR и Lumen · См. также:Микрогрань, Сохранение энергии, Зеркальное отражение, блик, Предфильтрованная кубмапа, Искры блика, Шероховатость из нормалей, Toksvig
Шероховатость из нормалей, ToksvigToksvig, normal-to-roughnessПоправка мип-мапов: где усреднённые стрелки нормалей стали короче, шероховатость поднимают. Рельеф мельче пикселя превращается в матовость, а не в зеркало, и блик вдали не искрит.
В Unreal — Composite Texture у текстуры шероховатости, в Godot — Roughness → Src Normal при импорте. Нормали укорачиваются.
Где разбирается:Мип-мапы и фильтрация: почему вдали мыло · См. также:Искры блика, Шероховатость, Карта нормалей, Мип-мапы
ШлейфGhostingПолупрозрачный след за движущимся предметом при временном сглаживании: история не отброшена, и прошлые кадры подмешиваются к новым. Чаще всего у предмета нет верных векторов движения.
Где разбирается:Сглаживание: лесенки, мерцание и TSR · См. также:Временное сглаживание, Векторы движения
ШовUV seamРебро, по которому разрезали модель при развёртке. Рисунок на шве может не совпасть, поэтому швы прячут.
Где разбирается:UV: как картинка ложится на модель · См. также:Развёртка
ШумNoiseФормула, которая по координатам выдаёт случайный, но плавный узор: соседние точки похожи, далёкие — нет. Из шума делают маски мха, грязи, облака и рельеф.
Белый шум — своё число в каждом пикселе, зерно. Шумы для материалов кладут случайные числа только в узлы сетки и плавно переходят между ними (value noise, Perlin) или считают расстояние до случайных точек (Voronoi). Несколько слоёв разного размера складывают в октавы.
Где разбирается:Шум: из чего сделаны маски, Шум: из чего сделаны маски, Как выглядит настоящая земля · См. также:Белый шум, Value noise, шум значений, Шум Перлина, градиентный шум, Фрактальный шум, fBm, Voronoi, клеточный шум, Маска
Шум Перлина, градиентный шумPerlin noise, gradient noiseШум, у которого в узлах сетки лежат случайные наклоны, а не высоты. В каждом узле значение — середина, холмы и впадины между узлами, поэтому сетка почти не видна.
Вклад угла — скалярное произведение его наклона на стрелку от угла к точке; четыре вклада смешивают плавной долей. Simplex — та же идея на треугольниках: три угла вместо четырёх в 2D и четыре вместо восьми в 3D.
Где разбирается:Шум: из чего сделаны маски, Шум: из чего сделаны маски, Шум: из чего сделаны маски · См. также:Value noise, шум значений, Скалярное произведение, Фрактальный шум, fBm, Шум
Экранное пространствоScreen spaceГде точка оказалась на экране: пиксель по горизонтали и вертикали плюс глубина. Нужно для эффектов по кадру и для интерфейса.
Где разбирается:Пространства: где находится точка · См. также:Пространство камеры, Пространство отсечения, NDC
Экранные отражения, SSRScreen space reflections, SSRОтражения по готовому кадру: луч идёт шагами, и каждую точку сравнивают с буфером глубины. Упёрся в видимую поверхность — берут её цвет из кадра.
Точные и с движущимся, но не видят того, что за краем кадра, за предметами и позади камеры. Предметам задают толщину: мала — отражение рвётся, велика — лишние хвосты. Экранные отражения.
Где разбирается:Отражения: кубмапы, SSR и Lumen · См. также:Текстура глубины, Проба отражений, Экранное пространство
ЭкспозицияExposureСколько света камера пускает в кадр. Движок делит свет, посчитанный в HDR, на одно число, чтобы нужная часть яркостей поместилась на экран. +1 EV — вдвое меньше света.
Ясному дню подходит около EV 15, вечерней комнате — около EV 5. Автоэкспозиция подстраивает её по яркости кадра, как глаз. Сколько света: солнце против комнаты. Автоэкспозиция.
Где разбирается:Прямой и непрямой свет, Туман и пост-обработка · См. также:HDR, Пост-обработка, Автоэкспозиция, Тонмаппинг
Экспоненциальный туманExponential fog, distance fogТуман, где каждый метр гасит одну и ту же долю дошедшего света: доля предмета = exp(−плотность × расстояние), остальное — цвет тумана. Считают по расстоянию до точки, а не по глубине.
Закон Бугера — Ламберта — Бера; видимость ≈ 3.9 / плотность. Почему экспонента.
Где разбирается:Туман и пост-обработка, Туман и пост-обработка, Туман и пост-обработка, Масштаб мира: метры, минуты и плотность · См. также:Высотный туман, Объёмный туман, Экспоненциальное сглаживание, Текстура глубины
Эффект Питера ПэнаPeter-panningТень отрывается от основания предмета, и он будто висит над полом. Причина — слишком большое смещение тени: точки пола у основания считаются освещёнными.
Назван в честь героя, у которого убежала тень. Помогают меньшее смещение, толстая геометрия вместо одиночных плоскостей, задние грани в карте и контактные тени. Смещение и «парящие» предметы.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:Смещение тени, Контактные тени
Эффект ФренеляFresnel effectЧем более вскользь смотришь на поверхность, тем больше она отражает: в упор вода отражает 2 %, у горизонта — почти всё. Отсюда светлая кайма по краю предметов.
В играх считают по приближению Шлика: F = F0 + (1 − F0) × (1 − cos θ)⁵. Урок
Где разбирается:Свойства поверхности: roughness, metallic, AO, Отражения: кубмапы, SSR и Lumen · См. также:F0, отражение в упор, Показатель преломления, Зеркальное отражение, блик
Alpha to coverageAlpha to coverageПри сглаживании MSAA альфа решает, сколько точек-проб пикселя закрыть: при α = 0.5 — половину. Край маски становится мягче без сортировки. Работает только с MSAA.
Где разбирается:Прозрачность: Opaque, Masked, Translucent, Сглаживание: лесенки, мерцание и TSR · См. также:Альфа-тест, режим Masked, Дизеринг, MSAA
BaseColor, альбедоBase color / AlbedoЦвет поверхности без света и теней: какую долю каждого канала она возвращает диффузом. У металлов BaseColor — это цвет отражения, F0.
Где разбирается:Нормаль и свет, Свойства поверхности: roughness, metallic, AO, Прямой и непрямой свет · См. также:Умножение цветов, Металличность, Диффузное отражение, sRGB
BC1 (DXT1)BC1, DXT1Сжатие блоками 4 × 4 за 8 байт: два опорных цвета 5-6-5 бит и номер одного из четырёх оттенков у каждого пикселя. 4 бита на тексель, в восемь раз меньше несжатой. Зелёный точнее, а упакованные маски делят одну палитру.
Палитра блока — четыре точки на отрезке между опорными цветами, номер у пикселя один на три канала. Поэтому несвязанные маски в BC1 мешают друг другу. Как устроен блок.
Где разбирается:Упаковка каналов, Упаковка каналов · См. также:Сжатие текстур BC, BC4, BC7, Упаковка каналов
BC4BC4, ATI1, RGTC1Сжатие одного канала блоками 4 × 4 за 8 байт: два опорных числа по 8 бит и восемь ступеней в блоке. Для одиночной маски. Такой же блок хранит альфу в BC3.
Где разбирается:Упаковка каналов, Упаковка каналов · См. также:Сжатие текстур BC, BC5, BC1 (DXT1), Маска
BC5BC5, ATI2, 3Dc, RGTC2Два независимых канала BC4 в одном блоке, 16 байт на 4 × 4. Формат карт нормалей: x и y хранятся точно, z шейдер досчитывает. Годится и для двух масок.
Где разбирается:Упаковка каналов, Касательное пространство и карта нормалей · См. также:Сжатие текстур BC, BC4, Карта нормалей
BC7BC7, BPTCКачественное сжатие цвета с альфой или без, 16 байт на блок 4 × 4 — вдвое больше BC1. Восемь режимов, блок можно делить на части со своими палитрами, поэтому каналы мешают друг другу намного меньше. Сжимается медленно.
Где разбирается:Упаковка каналов, Упаковка каналов · См. также:Сжатие текстур BC, BC1 (DXT1), Упаковка каналов
BRDF, функция отраженияBidirectional reflectance distribution functionФормула, которая говорит, сколько света, пришедшего с одного направления, поверхность отправит в другое. В играх это Ламберт для диффуза и модель микрограней для блика.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:Микрогрань, Эффект Френеля, Диффузное отражение
Component MaskComponent Mask, swizzleОперация в материале, которая берёт из набора чисел только нужные каналы: R, G, B или A. Так разбирают упакованную текстуру и отрезают лишнее.
В Unreal — нода Component Mask с галочками R, G, B, A; выбрать канал в инстансе позволяет Channel Mask Parameter. В Blender — Separate Color. Справка по нодам.
Где разбирается:Упаковка каналов, Мастер-материал с нуля · См. также:Упаковка каналов, Канал
F0, отражение в упорReflectance at normal incidence, F0Доля света, которую поверхность отражает, если смотреть на неё прямо. У неметаллов 2–5 %, обычно берут 4 %; у металлов 50–100 % и разная по каналам.
Где разбирается:Свойства поверхности: roughness, metallic, AO, Свойства поверхности: roughness, metallic, AO · См. также:Эффект Френеля, Показатель преломления, Металличность
Forward+ и кластерный светForward+, tiled and clustered shadingПрямой рендеринг со списками ламп: экран делят на плитки, а кластерный — ещё и по глубине, и каждый пиксель перебирает только лампы своей плитки. Много ламп без G-буфера.
Где разбирается:Как движок рисует кадр: проходы и G-буфер · См. также:Прямой рендеринг, Отложенный рендеринг
FXAA и SMAAFast approximate anti-aliasing; subpixel morphological anti-aliasingСглаживание готового кадра: ищет резкие перепады яркости и размывает вдоль края. Дёшево, но не возвращает пропавшие детали и не знает прошлых кадров, поэтому мерцание остаётся.
SMAA узнаёт форму ступенек и мылит меньше FXAA. FXAA и SMAA.
Где разбирается:Сглаживание: лесенки, мерцание и TSR · См. также:Сглаживание, Временное сглаживание
G-буферG-buffer, geometry bufferНесколько картинок размером с экран, где для каждого пикселя записаны свойства видимой поверхности: цвет, нормаль, шероховатость, металличность, AO. Отложенный рендер считает свет по ним.
Каналов у картинки четыре, поэтому поля укладывают плотно: в Unreal нормаль лежит в GBufferA, Metallic, Specular и Roughness — в GBufferB, BaseColor и AO — в GBufferC. Посмотреть поля — View Mode → Buffer Visualization. Как упакован G-буфер.
Где разбирается:Как движок рисует кадр: проходы и G-буфер, Как движок рисует кадр: проходы и G-буфер, Как движок рисует кадр: проходы и G-буфер · См. также:Отложенный рендеринг, Цель рендеринга, Модель затенения
HDRHigh dynamic rangeЗначения ярче 1: свет солнца, свечение. Их считают внутри шейдера и сжимают до диапазона экрана на последнем шаге кадра.
Где разбирается:Цвет — это числа, Как движок рисует кадр: проходы и G-буфер, Прямой и непрямой свет, Туман и пост-обработка · См. также:Пересвет, обрезка, Экспозиция, Половинная точность, Тонмаппинг, Свечение, Линейный цвет
HLSLHigh-Level Shading LanguageЯзык шейдеров, похожий на C. Граф материала в Unreal превращается в код на HLSL, а нода Custom позволяет писать его прямо в графе.
Где разбирается:Шейдер: функция для каждого пикселя · См. также:Шейдер
LumenLumenГлобальное освещение и отражения Unreal, которые считают каждый кадр по упрощённой копии сцены: карточки с материалом, поля расстояний или аппаратные лучи. Всё может меняться, но свет запаздывает, шумит и протекает сквозь тонкие стены.
Когда Lumen включён, лайтмапы скрыты, а неподвижные лампы не светят. Цена — около 4 мс кадра при 60 к/с. Живой непрямой свет, Лучи и Lumen.
Где разбирается:Запечённый и динамический свет: лайтмапы и Lumen, Отражения: кубмапы, SSR и Lumen · См. также:Кэш поверхностей, Поле расстояний, Глобальное освещение, GI, Трассировка лучей
LUT, таблица цветаLookup table, color LUTТаблица «этот цвет — в этот», куда запекают любую цепочку правок цвета. Это кубик 16³ или 32³ узлов, между узлами цвет смешивают; в Unreal кубик 16³ лежит полоской 256 × 16. Верна только для кадра, по которому её красили.
Где разбирается:Туман и пост-обработка · См. также:Цветокоррекция, Тонмаппинг, Интерполяция
MikkTSpaceMikkTSpace tangent basisОбщий стандарт расчёта касательных. Если бейкер и движок оба считают по нему (и с той же триангуляцией), карта нормалей читается ровно так, как её запекли.
Где разбирается:Касательное пространство и карта нормалей · См. также:Касательная, T, Запекание
MSAAMultisample anti-aliasingСглаживание краёв: видеокарта проверяет покрытие пикселя в нескольких точках, обычно в четырёх, и смешивает цвет на краях, а шейдер считает раз на пиксель. Дёшево в прямом рендере, неудобно в отложенном.
NaniteNanite, virtualized geometryСистема Unreal Engine 5: режет модель на кластеры по 128 треугольников, строит из них пирамиду упрощений и каждый кадр выбирает для каждого кусочка уровень с ошибкой меньше пикселя. Мелкие треугольники растеризует своей программой.
Прозрачное не рисует, листва для него — трудный случай. Nanite.
Где разбирается:LOD, инстансинг и Nanite: как рисуют миллион травинок, LOD, инстансинг и Nanite: как рисуют миллион травинок · См. также:Кластер, Уровни детализации, LOD, Иерархическая глубина, Hi-Z, Виртуальные карты теней
ORM, ARM, RMAORM texture, packed masksТекстура, где в каналах лежат три маски материала. ORM и ARM: R — AO, G — шероховатость, B — металл. Другие паки кладут их в другом порядке, поэтому раскладку проверяют по каналам.
Раскладка ORM пришла из glTF и её ждут Godot и экспорт Substance Painter для Unreal. RMA встречается в паках: R — шероховатость, G — металл, B — AO. Mask Map в Unity HDRP: R — металл, G — AO, B — маска детали, A — гладкость. Буквы зависят от пака.
Где разбирается:Упаковка каналов, Упаковка каналов, Мастер-материал с нуля · См. также:Упаковка каналов, Затенение от окружения, AO, Шероховатость, Металличность, Данные, не цвет
Overlay, перекрытиеOverlay blendСмешивание, которое красит и сохраняет контраст: тёмное темнеет, светлое светлеет. Нейтральное значение — 0.5.
Где разбирается:Математика смешивания · См. также:Тинт, Умножение цветов, Screen, осветление, Умножение, режим Modulate
PBR, физически корректный рендерингPhysically based renderingПодход, при котором материал описывает вещество — цвет, шероховатость, металличность, — а свет по этим числам считает движок. Поэтому один материал правильно выглядит при любом освещении.
Где разбирается:Свойства поверхности: roughness, metallic, AO · См. также:BaseColor, альбедо, Шероховатость, Металличность, BRDF, функция отражения
PCF и PCSSPercentage-closer filtering, percentage-closer soft shadowsPCF сравнивает с картой теней несколько соседних текселей и берёт долю затенённых — край мягкий, но одинаково везде. PCSS сначала оценивает полутень по высоте заслонки и размывает на неё.
Где разбирается:Тени: карты, каскады и мягкие края · См. также:Полутень, Карта теней
Premultiplied alphaPremultiplied alphaЗапись, где цвет заранее умножен на альфу: (R × A, G × A, B × A, A). Фильтрация и смешивание с ней честные, без тёмной каймы, а один материал может и закрывать, и светить.
Формула смешивания: новое + старое × (1 − α). В Unreal это режим AlphaComposite, в Unity — Premultiply, в Godot — Premultiplied Alpha.
Где разбирается:Прозрачность: Opaque, Masked, Translucent · См. также:Смешивание «поверх», Продление цвета под прозрачное
PSO, кэш шейдеровPipeline State ObjectГотовая связка шейдеров и настроек видеокарты. Если её не собрать заранее, драйвер собирает её посреди игры, и кадр подтормаживает.
RNM, переориентация нормалейReoriented Normal MappingПравильный способ смешать две карты нормалей: деталь поворачивают вслед за крупной формой. В Unreal это нода BlendAngleCorrectedNormals.
Saturate, обрезка до 0..1Saturate / ClampОперация, которая обрезает значение: меньше 0 становится 0, больше 1 — единицей. Её ставят после сложения и контраста, перед lerp.
Где разбирается:Цвет — это числа, Цвет — это числа, Интерполяция: lerp, smoothstep и remap, Математика смешивания · См. также:Пересвет, обрезка, Clamp, ограничение
Screen, осветлениеScreen blendРежим смешивания 1 − (1 − A) × (1 − B): умножение, вывернутое наизнанку. Светлит, как два проектора на одной стене, но не выше 1. Нейтральное значение — чёрный.
Где разбирается:Математика смешивания · См. также:Умножение, режим Modulate, Сложение, режим Additive, Overlay, перекрытие
sRGBsRGBЗапись цвета по кривой, похожей на чувствительность глаза: тёмным оттенкам достаётся больше ступеней. Галочку sRGB ставят только у цвета, который видит глаз; нормали, шероховатость и маски — данные, и кривая их искажает.
Свет ≈ запись2.2: 128 из 255 — около 22 % света, а 188 — половина. Шейдер переводит запись в свет при чтении, а кадр в конце — обратно. Урок про гамму и sRGB.
Где разбирается:Гамма и sRGB: цвет и данные хранят по-разному, Гамма и sRGB: цвет и данные хранят по-разному, Гамма и sRGB: цвет и данные хранят по-разному, Настройки текстур для каждой карты · См. также:Сжатие текстур BC, Упаковка каналов, Гамма, Линейный цвет, Данные, не цвет, Цветовое пространство
SSAOScreen-space ambient occlusionЗатенение щелей по кадру: для пикселя смотрят глубину соседей, и если многие ближе к камере, точка в яме и непрямой свет гасят. Видит только экран: пропадает у краёв, даёт кайму вокруг персонажей.
Где разбирается:Туман и пост-обработка · См. также:Затенение от окружения, AO, Текстура глубины
SubstrateSubstrateСистема материалов Unreal, в 5.7 и новее включённая в новых проектах по умолчанию. Поверхность описывают слоями-плитами (Slab), которые можно класть друг на друга, вместо фиксированного списка моделей затенения.
Triplanar, трипланарная проекцияTriplanar mappingТекстура без развёртки: три проекции вдоль осей мира X, Y и Z смешиваются по нормали — больше от той, на которую поверхность смотрит прямее. Скалы и утёсы без швов и растяжения, но каждая текстура читается трижды.
Веса — модули компонент нормали в степени k, поделённые на сумму. Карту нормалей переводят в мир по осям каждой проекции. Дешевле — две проекции (biplanar) или одна с дизерингом. Три проектора, цена.
Где разбирается:Текстуры без UV: triplanar и world-aligned, Текстуры без UV: triplanar и world-aligned, Текстуры без UV: triplanar и world-aligned · См. также:World-aligned текстура, Смешивание проекций, UV, Карта нормалей, Дизеринг
TSRTemporal Super ResolutionСглаживание и апскейл Unreal 5, включено по умолчанию: временное сглаживание, которое ещё и собирает полное разрешение из кадра меньшего размера. Работает на любой современной видеокарте.
Где разбирается:Сглаживание: лесенки, мерцание и TSR · См. также:Апскейл, Временное сглаживание
Uniform, константы шейдераUniform / constant bufferМаленький блок памяти видеокарты с параметрами материала: одни и те же числа для всех пикселей одного вызова отрисовки. Сменить параметр — записать туда другие числа.
Где разбирается:Материал: шейдер плюс данные · См. также:Параметр материала, Вызов отрисовки
UVUV coordinatesАдрес точки модели в текстуре: две доли от 0 до 1, которые хранятся в вершинах.
Где разбирается:UV: как картинка ложится на модель · См. также:Развёртка, Тайлинг, Triplanar, трипланарная проекция
Value noise, шум значенийValue noiseШум из случайных чисел в узлах сетки, плавно смешанных внутри клетки lerp-ами через smoothstep. Самый дешёвый плавный шум, но светлые и тёмные пятна сидят на узлах, и сетка заметна.
Где разбирается:Шум: из чего сделаны маски · См. также:Шум Перлина, градиентный шум, Случайность по координатам, Smoothstep, Шум
Voronoi, клеточный шумVoronoi, Worley, cellular noiseШум из расстояния до ближайшей случайной точки: картинка делится на клетки, как камни мостовой или чешуя. F1 — расстояние до ближайшей точки, F2 − F1 равно нулю на границах и рисует трещины.
Точки кладут по одной в клетку сетки со случайным сдвигом, и пиксель проверяет только свою клетку и соседние — в 2D девять. Номер ближайшей клетки через хеш даёт каждой клетке свой оттенок.
Где разбирается:Шум: из чего сделаны маски · См. также:Шум, Случайность по координатам
World-aligned текстураWorld-aligned texture, planar projectionТекстура, адрес которой — мировые координаты пикселя, делённые на размер плитки, а не развёртка. Соседние предметы стыкуются без швов, но одна проекция сверху тянется на стенах, а на движущемся предмете рисунок плывёт.
Растяжение проекции сверху — 1 / |n.z|: на склоне 60° вдвое, на стене — полосы. Для того, что движется, координаты берут в пространстве объекта. Проектор вместо развёртки.
Где разбирается:Текстуры без UV: triplanar и world-aligned, Текстуры без UV: triplanar и world-aligned, Текстуры без UV: triplanar и world-aligned · См. также:Triplanar, трипланарная проекция, Мировое пространство, Тайлинг, UV
Z-fighting, мерцание глубиныZ-fightingПолосы и рябь там, где две поверхности почти совпали: буфер глубины их не различает, и победителя в пикселе выбирает округление.
Математика и физика
109 терминовАмплитудаAmplitudeРазмах волны: на сколько значение уходит от середины в каждую сторону. В формуле центр + амплитуда × sin(…) — множитель перед синусом.
Где разбирается:Углы, синус и косинус: точка на круге, Пружины и затухание: плавная камера и мягкие движения, Шум: из чего сделаны маски · См. также:Частота и период, Фаза, Синус угла, Октава
Барицентрические координатыBarycentric coordinatesТри доли, с которыми вершины треугольника входят в точку внутри него, в сумме 1. Доля вершины — площадь треугольника напротив неё, делённая на площадь всего. По ним видеокарта смешивает UV, нормали и цвета вершин.
Где разбирается:Векторное произведение: стрелка поперёк двух, Интерполяция: lerp, smoothstep и remap · См. также:Функция ребра, Интерполяция
Бит и байтBit, byteБит — одна ячейка памяти, 0 или 1. Байт — восемь бит. n бит дают 2 в степени n значений: 8 бит — 256, 16 — 65 536, 32 — около 4.3 миллиарда.
Двоичная запись устроена как обычная, только места стоят не 1, 10, 100, а 1, 2, 4, 8: 13 = 8 + 4 + 1, то есть 1101. Число, буква или цвет — вопрос договорённости, как читать ряд бит.
Где разбирается:Числа в компьютере: целые, float и точность · См. также:Переполнение, Число с плавающей точкой, Глубина цвета
Бросок формыSweepЛуч для толстого тела: шар, капсулу или коробку протаскивают вдоль пути и находят первое касание. Так двигают героев и ловят быстрые тела.
Бросок шара радиуса R — тот же луч, только стены отодвинуты на R, а шары раздуты на R.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись, Почему быстрые тела проваливаются · См. также:Луч, Непрерывное обнаружение столкновений
ВекторVectorШаг «сколько пройти и куда», записанный числами: (x, y) или (x, y, z). Места у вектора нет, есть направление и длина. Скорость, нормаль, направление на солнце, даже цвет — векторы.
Где разбирается:Векторы: стрелки, которые складывают, Нормаль и свет · См. также:Длина вектора, Нормализация, Скалярное произведение, Скорость
Векторное произведениеCross productСтрелка поперёк двух стрелок a и b длиной с площадь параллелограмма на них: |a| × |b| × sin θ. Сторону выбирает правило руки, поэтому b × a = −(a × b). На плоскости это одно число a.x × b.y − a.y × b.x — площадь со знаком: плюс, если b левее a.
Каждая компонента a × b — площадь тени параллелограмма на плоскость двух других осей: z — тень на пол. Им находят нормаль треугольника, «слева или справа», оси камеры и момент силы.
Где разбирается:Векторное произведение: стрелка поперёк двух, Векторное произведение: стрелка поперёк двух, Силы: гравитация, трение и сопротивление · См. также:Скалярное произведение, Правило правой руки, Нормаль, Порядок обхода вершин
Взвешенный выборWeighted randomСлучайный выбор, где у вариантов разные веса. Веса откладывают отрезками на линейке и бросают на неё точку. Доля варианта — его вес, делённый на сумму всех весов.
Где разбирается:Случайность: сид, распределения и честный рандом · См. также:Распределение вероятностей
Волны ГерстнераGerstner wavesВолны, у которых точки поверхности ходят по кругу, а не только вверх-вниз: гребни острые, впадины пологие. Крутизна задаёт сдвиг по горизонтали.
Для физики подвох: точка над x пришла из другого места, поэтому высоту над x находят несколькими уточнениями. Слишком большая крутизна заворачивает гребень петлёй.
Где разбирается:Плавучесть: объект на волнах, Вода в мире: озёра, реки и берега · См. также:Синус угла, Смещение вершин, WPO, Плавучесть
Время кадра, ΔtDelta timeСколько времени прошло с прошлого кадра: при 60 кадрах в секунду около 0.0167 с. На него умножают всё, что задано «в секунду», чтобы движение не зависело от частоты кадров.
Время удараTime of impact (TOI)Доля шага, на которой два тела впервые коснулись. Для шаров — первый корень квадратного уравнения |d + w·t|² = R², для сложных форм — осторожными прыжками.
Где разбирается:Почему быстрые тела проваливаются, Почему быстрые тела проваливаются · См. также:Непрерывное обнаружение столкновений, Бросок формы
Выпуклая оболочкаConvex hullСамый плотный выпуклый многогранник вокруг модели — как резинка, натянутая на гвозди: ложится по выступам и перескакивает впадины.
Выпуклая — форма, в которой отрезок между любыми двумя точками лежит внутри. Вогнутые предметы (арка, стул) собирают из нескольких выпуклых частей, иначе оболочка закроет проходы.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Коллайдер, Разделяющая ось
Глубина проникновенияPenetration depthНа сколько тела успели войти друг в друга за шаг физики. Их разводят вдоль нормали контакта на эту глубину, обычно мягко и не до конца.
ГравитацияGravityПритяжение Земли: вес = масса × 9.81 м/с². Масса сокращается, поэтому без воздуха всё падает с одним ускорением. В Unreal — −980 см/с² по z.
В играх гравитацию часто выводят из высоты h и времени подъёма прыжка t: g = 2h / t², скорость отрыва 2h / t. Обычно она в несколько раз сильнее земной, а после вершины прыжка её ещё увеличивают.
Где разбирается:Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление · См. также:Ускорение, Масса, Траектория
Длина вектораVector length, magnitudeСколько по прямой проходит шаг: √(x² + y² + z²), теорема Пифагора. Длина вектора между двумя точками — расстояние между ними.
Где разбирается:Векторы: стрелки, которые складывают, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Вектор, Нормализация
Единичная матрицаIdentity matrixМатрица, которая ничего не меняет: оси остались на месте, x′ = (1, 0), y′ = (0, 1). Для матриц — то же, что умножение на 1.
Где разбирается:Матрицы: новые оси вместо таблицы чисел · См. также:Матрица преобразования, Обратная матрица
Единичный векторUnit vectorВектор длиной 1 — чистое направление. Нормали и направления на свет держат единичными, чтобы скалярное произведение давало косинус.
Где разбирается:Векторы: стрелки, которые складывают · См. также:Нормализация, Скалярное произведение
Единичный кругUnit circleКруг радиуса 1 с центром в начале координат. Точка на нём под углом a — (cos a, sin a), и до центра от неё всегда 1: cos² + sin² = 1.
Где разбирается:Углы, синус и косинус: точка на круге, Углы, синус и косинус: точка на круге · См. также:Синус угла, Косинус угла, Единичный вектор
ЖёсткостьStiffnessСколько ньютонов даёт пружина на каждый метр отклонения. Жёстче — чаще качается: ω = √(жёсткость / масса).
Художнику удобнее задавать частоту f: жёсткость = масса × (2π × f)². Пружина 100 Н/м с грузом 1 кг качается 1.6 раза в секунду.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения · См. также:Пружина, Частота и период
Закон АрхимедаArchimedes' principleПогружённое тело выталкивается вверх с силой, равной весу воды, которая была бы на месте его подводной части. Литр под водой — около 9.8 Н вверх.
Где разбирается:Плавучесть: объект на волнах · См. также:Плавучесть, Плотность
Закон ГукаHooke's lawСила пружины пропорциональна отклонению от точки покоя и направлена обратно: F = −k × x. Растянул вдвое дальше — тянет вдвое сильнее.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения · См. также:Пружина, Жёсткость
ЗатуханиеDampingУпрощённое сопротивление в движках: каждый шаг скорость умножают на число чуть меньше единицы. Масса не важна, торможение идёт по экспоненте.
В Godot каждый шаг скорость × (1 − затухание / шагов в секунду). С гравитацией выходит предельная скорость g / затухание. Linear Damping гасит движение, Angular Damping — вращение.
Где разбирается:Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление, Пружины и затухание: плавная камера и мягкие движения, Плавучесть: объект на волнах · См. также:Сопротивление среды, Экспоненциальное сглаживание, Коэффициент затухания
ИмпульсImpulseСила × время её действия. Меняет скорость сразу на импульс / масса. Им задают разовые события: удар, прыжок, взрыв.
Импульс каждый кадр зависит от частоты кадров, а сила, данная один раз, почти ничего не делает. Галочка Vel Change игнорирует массу. Отдача: импульс пули вперёд равен импульсу ружья назад.
Где разбирается:Силы: гравитация, трение и сопротивление, Пружины и затухание: плавная камера и мягкие движения, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Сила, Масса
КватернионQuaternionПоворот четырьмя числами: ось, умноженная на синус половины угла, и косинус половины угла. Длина 1. q и −q — одна поза. Повороты склеивают умножением и смешивают slerp, шарнирного замка нет.
Половина угла — потому что точку поворачивают «бутербродом» q × p × q⁻¹: кватернион действует дважды, и каждый раз на половину. Поворот на 360° даёт −q, на 720° — снова q.
Где разбирается:Повороты в 3D: углы Эйлера и кватернионы, Повороты в 3D: углы Эйлера и кватернионы, Повороты в 3D: углы Эйлера и кватернионы, Повороты в 3D: углы Эйлера и кватернионы · См. также:Ось и угол, Slerp, Углы Эйлера
КолебаниеOscillationДвижение туда-обратно вокруг точки покоя: энергия переливается из растяжения в скорость и обратно. У пружины без трения это синусоида.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения · См. также:Частота и период, Амплитуда, Пружина, Осадка
КоллайдерColliderНевидимая упрощённая модель предмета для физики: по ней считают касания, удары и лучи. Модель для глаз может быть сложной, коллайдер — грубый.
Если коллайдер больше модели, герой стоит в воздухе; если меньше — проходит сквозь край.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Форма столкновения, Выпуклая оболочка
Косинус углаCosineСколько точка на круге радиуса 1 под углом a ушла вправо: cos a. Это же доля стрелки длиной 1, которая идёт вдоль другой: 1 при 0°, 0.5 при 60°, 0 при 90°, −1 при 180°.
Коэффициент затуханияDamping ratioЗатухание как доля от критического: ζ = затухание / 2√(жёсткость × масса). Меньше 1 — пружинит с перелётом, 1 — без перелёта, больше 1 — вязко.
Перелёт после отпускания: при ζ = 0.2 — 53%, 0.5 — 16%, 0.7 — 5%. Подвеска легковой машины — около 0.25.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения, Плавучесть: объект на волнах · См. также:Критическое затухание, Затухание, Пружина
Кривая плавностиEasingКривая, через которую пропускают равномерно растущее время перед lerp: разгон (ease in), торможение (ease out) или оба (ease in-out). Так дверь и камера трогаются и встают мягко.
Где разбирается:Интерполяция: lerp, smoothstep и remap · См. также:Smoothstep, Lerp, смешивание по доле
Критическое затуханиеCritical dampingЗатухание 2√(жёсткость × масса), ζ = 1: самый быстрый приход к цели без перелёта. Так работают хороший дверной доводчик и SmoothDamp в Unity.
Кривая (1 + ωt) × e^(−ωt): половину пути проходит за 1.68 / ω секунд, 90% — за 3.89 / ω.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения · См. также:Коэффициент затухания, Пружина
ЛучRaycastВопрос физике: что первым встретится на этой прямой? Ответ — точка попадания, нормаль, расстояние и предмет. Выстрелы, проверка земли под ногами, видимость.
Мантисса и порядокMantissa (significand) and exponentДве части числа с плавающей точкой: мантисса — значащие цифры, порядок — на какую степень двойки их умножить. У float 1 бит знака, 8 бит порядка и 23 бита мантиссы.
Где разбирается:Числа в компьютере: целые, float и точность, Числа в компьютере: целые, float и точность · См. также:Число с плавающей точкой
МассаMassМера того, как трудно изменить скорость предмета, в килограммах. Тот же толчок разгоняет гружёную тележку слабее пустой: ускорение = сила / масса.
В Unreal масса по умолчанию считается из объёма коллизии и плотности материала: модель вдвое крупнее весит в 8 раз больше. На падение без воздуха масса не влияет.
Где разбирается:Силы: гравитация, трение и сопротивление · См. также:Сила, Гравитация
Матрица преобразованияTransformation matrixТаблица, в которой столбцами записаны новые оси (и в последнем столбце — пивот). Умножить матрицу на точку — пройти рецепт точки по новым осям. Так переводят точки из одного пространства в другое.
Где разбирается:Пространства: где находится точка, Матрицы: новые оси вместо таблицы чисел · См. также:Трансформ, Однородные координаты, Определитель, Произведение матриц, Обратная матрица
Метод ЭйлераEuler integrationСамый простой способ шагать во времени: скорость += ускорение × Δt, позиция += скорость × Δt. Ошибка пропорциональна шагу. Полунеявный вариант сначала меняет скорость, и он устойчив.
Явный Эйлер двигает позицию по скорости начала шага и добавляет энергию: пружина раскачивается всё шире. Полунеявный берёт скорость конца шага и держит размах. Точный шаг при постоянном ускорении — позиция += скорость × Δt + ускорение × Δt² / 2: площадь трапеции под графиком скорости.
Где разбирается:Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени, Пружины и затухание: плавная камера и мягкие движения · См. также:Время кадра, Δt, Фиксированный шаг физики
МешокShuffle bagСлучайность без возврата: исходы кладут в мешок в нужных долях и тянут, пока мешок не опустеет, потом насыпают заново. Доли точные, длинных серий нет. Так раздаёт фигуры современный «Тетрис».
Где разбирается:Случайность: сид, распределения и честный рандом · См. также:Растущий шанс, PRD
Момент силыTorqueКрутящее действие силы: плечо × сила поперёк плеча. Дверь толкают у ручки, потому что там плечо длиннее; сила вдоль плеча не крутит.
В 3D момент — вектор вдоль оси вращения, векторное произведение плеча и силы. Роль массы для вращения играет инерция: масса далеко от оси крутится тяжелее.
Где разбирается:Силы: гравитация, трение и сопротивление, Плавучесть: объект на волнах · См. также:Векторное произведение, Центр масс, Сила
Непрерывное обнаружение столкновенийContinuous collision detection (CCD)Проверка не «пересекаются ли сейчас», а «заденет ли по дороге»: тело протаскивают броском формы от прошлого положения к новому и находят время удара. Лечит проскок быстрых тел.
Стоит дороже обычной проверки, крадёт у тела остаток шага и при броске по прямой не видит вращения. Поэтому её включают только малым и быстрым телам.
Где разбирается:Почему быстрые тела проваливаются, Почему быстрые тела проваливаются · См. также:Бросок формы, Время удара, Спекулятивные контакты, Туннелирование
НормализацияNormalizeРазделить вектор на его длину: направление остаётся, длина становится 1. Нужна, когда важно только «куда», а «сколько» задают отдельно.
Где разбирается:Векторы: стрелки, которые складывают, Нормаль и свет, Повороты в 3D: углы Эйлера и кватернионы · См. также:Единичный вектор, Длина вектора, NaN и бесконечность
Нормаль контактаContact normalНаправление, в котором два касающихся тела проще всего развести. По нему выталкивают, отражают скорость и считают трение.
Обратная матрицаInverse matrixМатрица, которая отменяет данную: M⁻¹ × M = единичная. Шаги отменяются в обратном порядке. Переводит из мира обратно в пространство предмета. Нет у матрицы с нулевым определителем.
Где разбирается:Матрицы: новые оси вместо таблицы чисел · См. также:Матрица преобразования, Транспонирование, Определитель, Единичная матрица
Обратный lerpInverse lerpКакая доля пути от A до B пройдена, если ты в x: t = (x − A) / (B − A). 0 — в A, 1 — в B, за пределами — меньше 0 или больше 1. Здоровье 35 из 140 — доля 0.25.
Где разбирается:Интерполяция: lerp, smoothstep и remap · См. также:Lerp, смешивание по доле, Remap, перевод диапазона
Ограничивающая сфераBounding sphereШар, в который целиком помещается предмет. Касание двух шаров — расстояние между центрами меньше суммы радиусов: самая дешёвая проверка.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись · См. также:AABB, Широкая фаза
ОпределительDeterminantВо сколько раз матрица меняет площади (в 3D — объёмы). Для 2 × 2 — a × d − b × c, площадь клетки на новых осях. Минус — мир отражён и порядок обхода вывернут, ноль — всё схлопнулось и обратной матрицы нет.
ОсадкаDraft (draught)Глубина, на которую плавающий предмет погружается, пока выталкивание не сравняется с весом. У бруска доля под водой равна отношению плотностей.
Вокруг осадки предмет качается, как груз на пружине, с периодом 2π√(осадка / g): осадка 30 см — 1.1 с, 10 м — 6.3 с.
Где разбирается:Плавучесть: объект на волнах, Плавучесть: объект на волнах · См. также:Плавучесть, Колебание
Ось и уголAxis-angleЗапись поворота одной единичной осью и одним углом вокруг неё. По теореме Эйлера так можно записать любой поворот в 3D.
Где разбирается:Повороты в 3D: углы Эйлера и кватернионы · См. также:Кватернион
Отбрасывание задних гранейBackface cullingВидеокарта не рисует треугольники, повёрнутые к камере задней стороной: считает на экране знак их площади и выбрасывает те, чей обход не лицевой. У закрытой модели так пропадает около половины граней. Листве и ткани его выключают двусторонним материалом.
Где разбирается:Векторное произведение: стрелка поперёк двух · См. также:Порядок обхода вершин, Векторное произведение
ПерекосShear, skewПреобразование, при котором одна ось стоит на месте, а другая наклоняется: стопку книг толкнули вбок. Площадь не меняется. Так качаются на ветру трава и деревья.
Где разбирается:Матрицы: новые оси вместо таблицы чисел, Трава и листва: карточки и ветер · См. также:Матрица преобразования, Определитель
ПереполнениеInteger overflowЦелое число вышло за свой предел и перескочило на другой край, как счётчик пробега после 999999: в байте 255 + 1 = 0, в байте со знаком 127 + 1 = −128.
Отрицательные числа хранят дополнительным кодом: вторую половину круга значений читают как отрицательные, ряд 11111111 — это −1. Пределы: 8 бит со знаком — от −128 до 127, 32 бита — около ±2.1 миллиарда, 64 бита — около ±9.2 × 1018.
Где разбирается:Числа в компьютере: целые, float и точность, Числа в компьютере: целые, float и точность · См. также:Бит и байт
ПлавучестьBuoyancyСила, которой вода толкает вверх погружённый предмет: плотность воды × g × объём под водой. Растёт с глубиной, пока предмет не уйдёт под воду целиком.
В играх её считают не по объёму, а в нескольких точках замера: каждая даёт силу вверх, пропорциональную своей глубине, с затуханием.
Где разбирается:Плавучесть: объект на волнах, Плавучесть: объект на волнах · См. также:Закон Архимеда, Плотность, Осадка, Точки замера плавучести
ПлотностьDensityСколько весит кубометр вещества: вода 1000 кг, сосна около 500, лёд 917, сталь 7850. Плотнее воды — тонет, легче — плавает.
Для полого предмета считают среднюю плотность: весь вес на весь объём вместе с воздухом внутри. Поэтому стальной корабль плавает, а стальной гвоздь тонет.
Где разбирается:Плавучесть: объект на волнах · См. также:Плавучесть, Масса
ПодшагиSubsteppingШаг физики делят на несколько маленьких: снимков больше, путь за шаг короче, проскоков меньше. Цена — вся физика считается во столько же раз чаще.
Где разбирается:Почему быстрые тела проваливаются · См. также:Фиксированный шаг физики, Туннелирование
Половинная точностьHalf-precision float, FP16Число с плавающей точкой на 16 бит: около трёх значащих цифр, максимум 65 504. В нём хранят HDR-свет кадра, UV мешей и многое в шейдерах, где экономят память.
Где разбирается:Числа в компьютере: целые, float и точность · См. также:Число с плавающей точкой, HDR
Порядок обхода вершинWinding orderВ каком порядке перечислены вершины треугольника: с одной стороны обход виден по часовой стрелке, с другой — против. Программа договаривается, какой обход лицевой, и по нему решает, какую сторону грани рисовать и куда смотрит нормаль.
В Blender лицевым считается обход против часовой, в Unity и Godot — по часовой. Отражение, то есть масштаб −1 по одной оси, переворачивает обход.
Где разбирается:Векторное произведение: стрелка поперёк двух, Матрицы: новые оси вместо таблицы чисел · См. также:Отбрасывание задних граней, Нормаль, Векторное произведение, Определитель
Правило правой рукиRight-hand ruleКак узнать, куда смотрит a × b: согни пальцы правой руки от a к b, и большой палец покажет направление. Так в правых системах координат, как в Blender и Godot; в левых, как в Unreal и Unity, то же показывает левая рука.
Предельная скоростьTerminal velocityСкорость, на которой сопротивление среды сравнялось с весом и падение перестало разгоняться. У человека животом вниз около 55 м/с, с парашютом около 5 м/с.
При сопротивлении k × v² она равна √(масса × g / k): чем больше масса на единицу площади, тем быстрее падает тело. Капля дождя — не быстрее 9 м/с.
Где разбирается:Силы: гравитация, трение и сопротивление · См. также:Сопротивление среды, Гравитация
Проекция вектораVector projectionЧасть вектора вдоль заданного направления: (b · a) × a для единичной a. Остаток идёт поперёк. Так делают скольжение вдоль стены и скатывание со склона.
Произведение матрицMatrix multiplicationМатрица, которая делает сначала одно преобразование, потом другое. В записи A × B первым действует B — читают справа налево. Порядок важен: A × B обычно не равно B × A.
Столбцы A × B — столбцы B, пропущенные через A. Отсюда правило «строка на столбец»: каждое число ответа — скалярное произведение строки A на столбец B.
Где разбирается:Матрицы: новые оси вместо таблицы чисел, Матрицы: новые оси вместо таблицы чисел, Матрицы: новые оси вместо таблицы чисел, Матрицы: новые оси вместо таблицы чисел · См. также:Матрица преобразования, Трансформ
ПружинаSpringСила, которая тянет к цели тем сильнее, чем дальше: −жёсткость × отклонение. С затуханием даёт плавный приход к цели: камера, отдача, подвеска.
Пружина меняет ускорение, а не скорость, поэтому разгоняется и тормозит плавно. Настраивают её частотой и коэффициентом затухания ζ.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения, Плавучесть: объект на волнах, Трава и листва: карточки и ветер · См. также:Закон Гука, Жёсткость, Коэффициент затухания, Экспоненциальное сглаживание
Пружинные костиSpring bonesКости, которые тянутся пружиной к позе из анимации и раскачиваются по инерции: косы, хвосты, уши, сумки.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения · См. также:Пружина
Псевдослучайные числаPseudo-random numbers, PRNGЧисла, похожие на случайные, которые выдаёт формула: из одного числа она делает следующее. С тем же стартовым числом, сидом, ряд всегда повторяется.
Старый рецепт — линейный конгруэнтный генератор: следующее = (a × предыдущее + c) по модулю m. Разных чисел всего m, поэтому у ряда есть период, а у плохих генераторов видны узоры: чередование чётности, полосы. Современные (xorshift, PCG) ещё перемешивают разряды.
Где разбирается:Случайность: сид, распределения и честный рандом, Случайность: сид, распределения и честный рандом · См. также:Сид, Случайность по координатам
РадианRadianУгол, при котором дуга равна радиусу, около 57.3°. Полный оборот — 2π ≈ 6.28 радиана, пол-оборота — π. В радианах дуга = радиус × угол, поэтому формулы и шейдеры считают углы в них.
Где разбирается:Углы, синус и косинус: точка на круге · См. также:Единичный круг, Синус угла
Разделяющая осьSeparating axisНаправление, на котором тени двух тел не перекрываются. Если оно есть, между телами можно просунуть ровный лист, и они не касаются. Работает только для выпуклых форм.
Для двух прямоугольников проверяют 4 оси поперёк сторон, для двух коробок в 3D — 15. Ось с наименьшим перекрытием даёт нормаль и глубину контакта.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:AABB, Выпуклая оболочка, Проекция вектора
Распределение вероятностейProbability distributionКакие результаты как часто выпадают. Один кубик — равномерное: все грани поровну. Сумма двух — треугольник с вершиной на 7. Сумма многих — колокол, нормальное распределение.
Растущий шанс, PRDPseudo-random distributionШанс срабатывания растёт с каждой неудачей и сбрасывается после удачи. Среднее остаётся заявленным, а длинные серии пропадают. В Dota 2 у 25% первый шанс около 8.5%, к 12-й попытке он доходит до 100%.
Где разбирается:Случайность: сид, распределения и честный рандом · См. также:Мешок
Рука камерыSpring armПалка от героя к камере, которая укорачивается, если между ними стена. Её «пружина» — про стены, плавность догона задают отдельной настройкой.
В Unreal плавность — Camera Lag Speed: доля пути за кадр, а не пружина. У SpringArm3D в Godot плавности нет совсем.
Где разбирается:Пружины и затухание: плавная камера и мягкие движения, Пружины и затухание: плавная камера и мягкие движения · См. также:Пружина, Экспоненциальное сглаживание
Рысканье, тангаж, кренYaw, pitch, rollТри поворота самолёта: рысканье — нос влево-вправо вокруг вертикали, тангаж — нос вверх-вниз вокруг оси крыльев, крен — наклон крыльев вокруг оси от хвоста к носу.
Где разбирается:Повороты в 3D: углы Эйлера и кватернионы · См. также:Углы Эйлера
Сдвиг начала мираOrigin shifting, floating originПриём для огромных миров на обычной точности: когда игрок ушёл далеко, весь мир сдвигают так, чтобы игрок снова оказался у начала координат. Точность сохраняется, но логика игры усложняется.
Где разбирается:Открытый мир: как он грузится кусками · См. также:World Partition
СидSeedСтартовое число генератора псевдослучайных чисел. Один сид — один и тот же ряд чисел и один и тот же построенный из них мир на любом компьютере.
Где разбирается:Случайность: сид, распределения и честный рандом, Случайность: сид, распределения и честный рандом · См. также:Псевдослучайные числа
СилаForceТо, что меняет скорость: толчок, тяга, притяжение. Это вектор. Ускорение = сила / масса; несколько сил складывают как стрелки, и решает итог.
Ньютон — сила, которая разгоняет 1 кг на 1 м/с за секунду. Итоговая сила ноль значит «скорость не меняется», а не «стоит». В движке силу дают каждый шаг (Add Force), и он сам умножает её на Δt.
Где разбирается:Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление · См. также:Масса, Ускорение, Импульс
Сила реакции опорыNormal forceСила, с которой поверхность толкает предмет прямо от себя, по нормали. Она ровно такая, чтобы предмет не проваливался, и от неё зависит трение.
На склоне под углом θ опора гасит часть веса поперёк склона, вес × cos θ, а часть вдоль, вес × sin θ, тянет предмет вниз.
Где разбирается:Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление · См. также:Трение, Проекция вектора, Нормаль
Синий шумBlue noiseСлучайный узор без крупных пятен, только с мелким зерном: точки стоят неровно, но не кучками. Глаз зерно почти не замечает, поэтому синий шум берут для дизеринга и для выбора случайных лучей.
Где разбирается:Случайность: сид, распределения и честный рандом, Шум: из чего сделаны маски · См. также:Poisson disk, Дизеринг, Джиттер, Белый шум, Шум
Синус углаSineВысота точки на круге радиуса 1 под углом a: sin a, от −1 до 1. Синус от времени — плавная волна, которой качают траву и лодки и мигают светом.
Синус — тот же косинус, только на четверть оборота позже: sin a = cos(a − 90°). Общая формула волны — центр + амплитуда × sin(2π × частота × время + фаза).
Где разбирается:Углы, синус и косинус: точка на круге, Углы, синус и косинус: точка на круге · См. также:Косинус угла, Единичный круг, Амплитуда
СкалярScalarОбычное число, в отличие от вектора: скорость 5 м/с, время кадра, яркость. Умножение вектора на скаляр меняет его длину, а отрицательный скаляр ещё и разворачивает.
Где разбирается:Векторы: стрелки, которые складывают · См. также:Вектор
Скалярное произведениеDot productОдно число из двух стрелок: сколько одна идёт вдоль другой. a.x × b.x + a.y × b.y + a.z × b.z. Для стрелок длиной 1 — косинус угла: 1 — в одну сторону, 0 — поперёк, −1 — навстречу.
Им считают яркость поверхности, «смотрит ли поверхность вверх» для мха, поле зрения врага и подсветку краёв.
Где разбирается:Скалярное произведение: насколько стрелки смотрят в одну сторону, Скалярное произведение: насколько стрелки смотрят в одну сторону, Нормаль и свет, Силы: гравитация, трение и сопротивление · См. также:Косинус угла, Проекция вектора, Нормализация, Векторное произведение
СкоростьVelocity, speedНасколько меняется положение за секунду, в м/с. Это вектор: направление — куда движется предмет, длина — как быстро. Длину показывает спидометр.
Скорость читается по следам, оставленным через равные промежутки времени: промежуток между соседними следами — скорость × время между ними. Каждый кадр игра делает позиция += скорость × Δt.
Где разбирается:Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени · См. также:Ускорение, Время кадра, Δt, Вектор
Случайность по координатамHash-based randomСлучайное число, которое считают из адреса — координат клетки или номера точки — и сида. Один адрес всегда даёт одно число, соседние — совсем разные, очередь и память не нужны. Основа шума и случайности в шейдерах.
Где разбирается:Случайность: сид, распределения и честный рандом, Шум: из чего сделаны маски · См. также:Сид, Псевдослучайные числа, Value noise, шум значений, Шум
Сопротивление средыDragСила, которой воздух или вода мешают двигаться, против скорости. Медленно и вязко — пропорциональна скорости, быстро — её квадрату: k × v².
Число k собирает площадь поперёк движения, форму и плотность среды. Вода примерно в 800 раз плотнее воздуха. Движки обычно заменяют сопротивление затуханием.
Где разбирается:Силы: гравитация, трение и сопротивление, Плавучесть: объект на волнах · См. также:Предельная скорость, Затухание
Спекулятивные контактыSpeculative contactsКонтакт на будущее: в начале шага находят всё, до чего тело может долететь, и не дают сближаться быстрее, чем зазор / время шага. Дёшево и ловит вращение, но иногда тело ударяется о воздух у углов.
Где разбирается:Почему быстрые тела проваливаются · См. также:Непрерывное обнаружение столкновений, Нормаль контакта, Туннелирование
Сравнение с допускомEpsilon comparisonДробные числа сравнивают не на точное равенство, а спрашивают, меньше ли разница допуска. После вычислений 1 превращается в 0.9999999, и проверка «равно» не срабатывает.
Где разбирается:Числа в компьютере: целые, float и точность · См. также:Число с плавающей точкой
Точки замера плавучестиBuoyancy sample points (pontoons)Несколько точек на корпусе (обычно 3–8), в каждой из которых считают глубину под волной и силу вверх: жёсткость × глубина − затухание × разница скоростей с водой.
Точки по краям сами дают крен по волне; одна точка в центре масс — только подъём и спуск. Волна короче двух расстояний между точками проскальзывает между ними.
Где разбирается:Плавучесть: объект на волнах, Плавучесть: объект на волнах, Плавучесть: объект на волнах, Плавучесть: объект на волнах · См. также:Плавучесть, Пружина, Затухание, Момент силы
ТраекторияTrajectoryПуть, по которому движется предмет. У брошенного предмета под одной гравитацией это парабола: позиция(t) = старт + скорость × t + ускорение × t² / 2.
Где разбирается:Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени · См. также:Ускорение, Скорость
ТранспонированиеTransposeПоменять в матрице строки и столбцы местами, отразить её по диагонали. Для поворота транспонированная — это обратная, потому что оси перпендикулярны и длиной 1.
Обратная транспонированная матрица переводит нормали: она сохраняет перпендикулярность нормали к поверхности при неравномерном масштабе.
Где разбирается:Матрицы: новые оси вместо таблицы чисел, Матрицы: новые оси вместо таблицы чисел · См. также:Обратная матрица, Матрица преобразования, Скалярное произведение
ТрениеFrictionСила вдоль поверхности против движения или попытки сдвинуть. Пропорциональна прижатию: μ × N. Трение покоя держит до предела, скольжения обычно меньше.
Площадь касания на трение не влияет. Ящик на склоне стоит, пока tan θ ≤ μ покоя. В движках трение задаёт физический материал, а у пары поверхностей его сводят в одно число, по умолчанию средним.
Где разбирается:Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление, Силы: гравитация, трение и сопротивление, Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Сила реакции опоры, Сила, Упругость удара
ТриггерTriggerКоллайдер, который никого не толкает, а только сообщает «вошёл» и «вышел»: зона у двери, контрольная точка, объём воды.
Кто с кем сталкивается, решают каналы (слои): у каждой пары ответы блок, пересечение или игнор, и побеждает более мягкий.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Коллайдер
ТуннелированиеTunnelingБыстрое тело проходит сквозь препятствие: физика проверяет касания только на снимках, и ни один снимок не застал тело внутри. Возможно, когда путь за шаг больше толщины стены плюс размера тела.
Шанс застать тело в стене — (толщина + размер) / путь за шаг. Надёжно, только если путь за шаг меньше половины этого окна: снимок за серединой стены выталкивает тело вперёд.
Где разбирается:Почему быстрые тела проваливаются, Почему быстрые тела проваливаются, Почему быстрые тела проваливаются · См. также:Непрерывное обнаружение столкновений, Подшаги, Спекулятивные контакты, Фиксированный шаг физики
Углы ЭйлераEuler anglesПоворот, записанный тремя углами по очереди вокруг трёх осей, например рысканье, тангаж и крен. Понятны человеку, но зависят от порядка, попадают в шарнирный замок и плохо смешиваются.
Упругость удараRestitutionДоля скорости вдоль нормали, которая возвращается после удара: 0 — не отскакивает, 1 — без потерь. Высота подскока умножается на e².
v' = v − (1 + e) × (v · n) × n. Упругость — свойство пары материалов: движки сводят два числа в одно, по умолчанию средним.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись · См. также:Нормаль контакта, Вектор отражения, Трение
УскорениеAccelerationНасколько меняется скорость за секунду, в м/с². Разгон, торможение и поворот — всё ускорение. Гравитация Земли даёт 9.8 м/с² вниз.
На повороте спидометр стоит на месте, а направление скорости меняется: ускорение смотрит к центру и равно v² / r. Каждый кадр игра делает скорость += ускорение × Δt.
Где разбирается:Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени · См. также:Скорость, Траектория, Сила
ФазаPhaseСдвиг волны по кругу: с какого места круга начинать качание. Одинаковые волны с разной фазой идут не в ногу, а фаза из положения превращает качание хором в бегущую волну.
Где разбирается:Углы, синус и косинус: точка на круге, Углы, синус и косинус: точка на круге · См. также:Амплитуда, Частота и период
Фиксированный шаг физикиFixed timestepФизика считается ровными шагами, например по 1/60 с, отдельно от кадров. Копилка времени решает, сколько шагов сделать в кадре, а отрисовку сглаживают между шагами.
Одинаковый шаг даёт одинаковую физику на любом компьютере, повторы и сетевую игру. Если шаг считается дольше, чем длится, начинается спираль смерти: кадры всё длиннее, шагов всё больше. Предел шагов за кадр меняет застывание на замедление.
Где разбирается:Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени, Движение: скорость, ускорение и шаг времени, Пружины и затухание: плавная камера и мягкие движения · См. также:Время кадра, Δt, Метод Эйлера, Интерполяция, Подшаги, Туннелирование
Форма столкновенияCollision shapeПростая форма, из которых собирают коллайдер: сфера, коробка, капсула, выпуклая оболочка. Для каждой есть быстрые проверки касания.
Функция ребраEdge functionПлоское векторное произведение ребра треугольника и шага к точке: (B − A) × (P − A). Знак говорит, по какую сторону ребра лежит точка. Если у трёх функций один знак, точка внутри — так растеризатор находит пиксели треугольника.
Центр массCenter of massТочка, где предмет «в среднем» находится и куда как будто приложена гравитация. Сила через него только двигает, мимо него — ещё и крутит.
Предмет стоит, пока центр масс над площадью опоры. Высокий центр масс — опрокидывается от малого наклона, поэтому машинам в играх его часто опускают.
Где разбирается:Силы: гравитация, трение и сопротивление, Плавучесть: объект на волнах · См. также:Момент силы, Масса, Центр плавучести
Центр плавучестиCenter of buoyancyЦентр той воды, которую вытеснил корпус, — точка, где приложено выталкивание. При наклоне он смещается к опустившемуся борту.
Лодка выпрямляется, пока центр масс ниже метацентра — точки, через которую при малом наклоне проходит линия выталкивания. Для лодки с прямыми бортами метацентр выше центра плавучести на ширина² / (12 × осадка).
Где разбирается:Плавучесть: объект на волнах, Плавучесть: объект на волнах · См. также:Центр масс, Момент силы
Частота и периодFrequency, periodЧастота — сколько полных колебаний в секунду, в герцах. Период — время одного колебания: 1 / частота. 0.5 Гц — одно качание за 2 секунды.
Где разбирается:Углы, синус и косинус: точка на круге, Пружины и затухание: плавная камера и мягкие движения, Шум: из чего сделаны маски · См. также:Амплитуда, Фаза, Октава
Число с плавающей точкойFloating-point number, float, doubleНаучная запись в двоичном виде: значащие цифры и степень двойки. У float на 32 бита около 7 значащих цифр, у double на 64 — около 16. Шаг между соседними числами растёт с величиной числа.
Шарнирный замокGimbal lockКогда средний из трёх углов Эйлера равен 90°, оси первого и третьего поворота ложатся на одну прямую: два угла крутят одинаково, и одно движение пропадает. Так камера кувыркается, глядя строго вверх.
Где разбирается:Повороты в 3D: углы Эйлера и кватернионы, Повороты в 3D: углы Эйлера и кватернионы · См. также:Углы Эйлера, Кватернион
Широкая фазаBroad phaseПервый грубый проход проверки столкновений: сеткой или деревом коробок отбрасывает далёкие пары. Оставшиеся точно проверяет узкая фаза.
Без неё пар n × (n − 1) / 2: 1000 предметов — почти полмиллиона пар за шаг.
Где разбирается:Столкновения: как движок понимает, что предметы соприкоснулись · См. также:AABB, Ограничивающая сфера
Экспоненциальное сглаживаниеExponential smoothingКаждый шаг проходить одну и ту же долю оставшегося пути к цели: остаток умножается и тает всё медленнее. Чтобы не зависеть от частоты кадров, долю за кадр берут 1 − exp(−скорость × время кадра).
Где разбирается:Интерполяция: lerp, smoothstep и remap, Интерполяция: lerp, smoothstep и remap, Сглаживание: лесенки, мерцание и TSR, Пружины и затухание: плавная камера и мягкие движения · См. также:Lerp, смешивание по доле, Кривая плавности, Время кадра, Δt, Временное сглаживание, Затухание, Экспоненциальный туман, Пружина
AABBAxis-aligned bounding boxКоробка, стороны которой идут вдоль осей мира. Две такие коробки касаются, только если их тени перекрываются на каждой оси: шесть сравнений.
atan2, угол стрелкиatan2, two-argument arctangentУгол стрелки (x, y) от оси x с учётом четверти: от −180° до 180°. Сначала y, потом x. В отличие от atan(y / x), не теряет знаки и не делит на ноль.
Где разбирается:Углы, синус и косинус: точка на круге, Углы, синус и косинус: точка на круге · См. также:Единичный круг
Clamp, ограничениеClampНе выпускает число за края: clamp(x, мин, макс) возвращает мин, если x меньше, макс, если больше, и само x между ними. clamp до 0…1 называют saturate.
Где разбирается:Интерполяция: lerp, smoothstep и remap · См. также:Saturate, обрезка до 0..1, Remap, перевод диапазона
Lerp, смешивание по долеLinear interpolationПройти долю t пути от A к B: A + (B − A) × t, или то же самое A × (1 − t) + B × t. При t = 0 чистое A, при t = 1 чистое B, вне 0…1 — за концами.
t — доля второго входа. Маска даёт t каждому пикселю, поэтому lerp кладёт один материал поверх другого. Та же операция смешивает позы в анимации и громкости при плавном переходе звуков.
Где разбирается:Цвет — это числа, Прозрачность: Opaque, Masked, Translucent, Интерполяция: lerp, smoothstep и remap, Интерполяция: lerp, smoothstep и remap, Повороты в 3D: углы Эйлера и кватернионы, Математика смешивания · См. также:Маска, Интерполяция, Обратный lerp, Smoothstep, Slerp
NaN и бесконечностьNaN, infinityОсобые значения float. 1 / 0 даёт бесконечность, 0 / 0 и корень из −1 — NaN, «не число». NaN заразен: любое действие с ним даёт NaN, и на экране он расползается чёрными квадратами.
Где разбирается:Числа в компьютере: целые, float и точность · См. также:Нормализация, Число с плавающей точкой
NlerpNormalized lerpLerp четырёх чисел кватерниона и нормализация результата. Путь тот же, что у slerp, скорость чуть неровная на больших углах, зато дешевле. Основа смешивания анимаций.
Где разбирается:Повороты в 3D: углы Эйлера и кватернионы · См. также:Slerp, Lerp, смешивание по доле, Нормализация
Poisson diskPoisson disk samplingСлучайная расстановка точек, где никакие две не стоят ближе заданного расстояния. Без кучек и проплешин белого шума, поэтому так расставляют растения и камни.
Где разбирается:Случайность: сид, распределения и честный рандом, Трава и листва: карточки и ветер · См. также:Синий шум
Remap, перевод диапазонаRemap, map rangeПеревод числа из одной шкалы в другую: обратный lerp находит долю на старой шкале, lerp откладывает её на новой. Синус −1…1 в яркость 0…1 — это 0.5 + 0.5 × sin.
Где разбирается:Интерполяция: lerp, smoothstep и remap, Математика смешивания · См. также:Обратный lerp, Lerp, смешивание по доле, Clamp, ограничение
SlerpSpherical linear interpolationПлавный переход между двумя кватернионами по дуге: поворот вокруг одной оси, по короткому пути и с постоянной скоростью. Если скалярное произведение отрицательное, одну позу берут с минусом, чтобы идти коротким путём.
Где разбирается:Повороты в 3D: углы Эйлера и кватернионы · См. также:Кватернион, Nlerp, Lerp, смешивание по доле
SmoothstepSmoothstepМягкий переход от 0 к 1: 3t² − 2t³. На концах кривая горизонтальная, поэтому края масок и начало движения не дёргаются. В шейдерах smoothstep(край0, край1, x) ещё делает обратный lerp и обрезку.
Формула — lerp от разгона t² к торможению 1 − (1 − t)² с долей t. Ещё мягче smootherstep: 6t⁵ − 15t⁴ + 10t³.
Где разбирается:Интерполяция: lerp, smoothstep и remap, Интерполяция: lerp, smoothstep и remap, Шум: из чего сделаны маски, Шум: из чего сделаны маски, Математика смешивания · См. также:Кривая плавности, Lerp, смешивание по доле, Clamp, ограничение
Арт
11 терминовАтлас текстурTexture atlasОдна текстура, на которой разложено несколько рисунков: веток, листьев, травинок. Все карточки куста берут свой кусок атласа, поэтому у куста один материал.
Атлас листвы запекают с высокополигональных веток или снимают с фото: цвет, маска, нормаль, толщина, AO. Атлас листвы.
Где разбирается:Трава и листва: карточки и ветер · См. также:Карточка листвы, Запекание, Упаковка каналов
Воздушная перспективаAerial perspective, atmospheric perspectiveЧем дальше предмет, тем меньше в нём контраста и деталей, тем бледнее его цвета и тем сильнее они уходят в цвет фона, обычно голубоватый. Причина — дымка воздуха между предметом и глазом.
Где разбирается:Композиция в 3D, Туман и пост-обработка, Воздух и даль: туман, небо, время суток · См. также:Экспоненциальный туман, Репуссуар
Жёсткое реброHard edge / split normalsРебро, на котором у вершины две нормали — по одной на каждую сторону, поэтому свет на нём ломается резко. При запекании каждое жёсткое ребро должно быть швом развёртки.
Где разбирается:Касательное пространство и карта нормалей · См. также:Сглаживание нормалей, Шов, Поля вокруг островов, padding
ЗапеканиеBakingПеренос деталей с одной модели на текстуру другой. Так делают карту нормалей: с high poly на low poly.
Где разбирается:Нормаль и свет, Касательное пространство и карта нормалей, Трава и листва: карточки и ветер · См. также:High poly и low poly, Карта нормалей, MikkTSpace, Запекание света
Золотой часGolden hourВремя вскоре после восхода и перед закатом: свет краснее и мягче, больше света от неба, тени длинные, а небо по яркости сравнивается с фонарями и окнами.
Где разбирается:Воздух и даль: туман, небо, время суток · См. также:Синий час
Маска ветраWind mask, vertex color maskЧисло от 0 у корня до 1 на макушке, на которое умножают сдвиг ветра: корень стоит, верх качается. Берут из высоты вершины или рисуют в цвет вершин.
Маска, пропорциональная высоте, — перекос; квадрат высоты гнёт стебель дугой. Перекос удлиняет травинку, поэтому вершинам возвращают прежнее расстояние до корня. Маска.
Где разбирается:Трава и листва: карточки и ветер · См. также:Анимация ветра в шейдере, Цвет вершин, Перекос, Маска
Поля вокруг островов, paddingUV padding / dilationЗапас пикселей вокруг каждого острова развёртки, куда бейкер продлевает цвет краёв. Без него при фильтрации и в мип-мапах на швы просачиваются соседи.
РепуссуарRepoussoirПредмет на краю переднего плана — дерево, арка, фигура, — который обрамляет вид, вводит в него взгляд и даёт глубину. С французского — «отодвигать назад».
Где разбирается:Композиция в 3D · См. также:Воздушная перспектива, Открытый вид
СилуэтSilhouetteКонтур предмета. Карта нормалей его не меняет, поэтому по силуэту видна настоящая форма. В художественной базе силуэт — первое, по чему читают предмет.
Где разбирается:Нормаль и свет · См. также:Карта нормалей
Синий часBlue hourСумерки, когда солнце уже заметно ниже горизонта: прямого солнца и резких теней нет, свет синий. Синеву даёт поглощение света озоном, а не рассеяние Рэлея.
Где разбирается:Воздух и даль: туман, небо, время суток · См. также:Золотой час
High poly и low polyHigh poly / low polyДетальная модель на миллионы полигонов и простая модель для игры. С детальной на простую запекают карту нормалей.
Где разбирается:Нормаль и свет · См. также:Запекание, Карта нормалей
Окружение
7 терминовАнимация ветра в шейдереWind animation, procedural windТрава и листва качаются без кадров анимации: вершинный шейдер сдвигает вершины на синус времени с фазой из положения, умноженный на маску. Порывы добавляет шум, который бежит по полю.
Дерево качают иерархией: ствол, ветки и листья с разной частотой вокруг своих точек крепления. Сдвиг видит только картинка: коллизия стоит, рамку меша расширяют. Ветер, ствол, ветки, листья.
Где разбирается:Трава и листва: карточки и ветер, Трава и листва: карточки и ветер, Трава и листва: карточки и ветер · См. также:Смещение вершин, WPO, Маска ветра, Pivot Painter, Фаза, Шум
Карточка листвыFoliage cardПлоскость из двух треугольников с рисунком ветки или травы и маской, которая вырезает всё вокруг листьев. Кусты и пучки травы — две-три карточки крест-накрест, крона — сотни карточек на ветках.
Вырезает форму режим Masked. Цена — пустые пиксели внутри карточки и слои карточек друг за другом. Карточка: фанера с рисунком, цена.
Где разбирается:Трава и листва: карточки и ветер, Трава и листва: карточки и ветер · См. также:Альфа-тест, режим Masked, Подгонка карточки по контуру, Атлас текстур, Перекрытие, Импостер
Нормали листвыFoliage normals, spherical normalsНормали карточек куста, направленные от его центра, как у шара. Без них соседние карточки освещены вразнобой и куст рассыпается на плоские лоскуты; с ними он освещён как объём.
Нормали переносят со сферы или купола в редакторе моделей. Все нормали вверх убирают лоскуты, но и объём. Почему куст выглядит плоским.
Где разбирается:Трава и листва: карточки и ветер · См. также:Нормаль, Карточка листвы, Просвет листвы
Подгонка карточки по контуруCard trimming, tight-fit cardsУглы прямоугольной карточки, где нет листьев, отрезают: карточка становится многоугольником по контуру рисунка. Вершин больше, пустых пикселей меньше — на ветке до четверти работы шейдера.
Выпуклый многоугольник не залезает в щели между листьями, поэтому выигрыш быстро тает. Вдали треугольники становятся мельче пикселя, и дальний LOD возвращает простую форму. Подогнать карточку.
Где разбирается:Трава и листва: карточки и ветер · См. также:Карточка листвы, Перекрытие, Уровни детализации, LOD
ПоймаFloodplainПлоское дно долины вдоль реки, которое река заливает в половодье: в нетронутой реке обычно раз в год-два. Паводок оставляет ил, поэтому земля плодородная — хороша для лугов и полей, плоха для домов.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги, Как выглядит настоящая земля · См. также:Сухая точка
Просвет листвыTwo Sided Foliage, foliage transmissionМодель затенения для тонких листьев: свет с обратной стороны листа проходит насквозь и окрашивается цветом просвета. Против солнца куст светится, а не чернеет.
Где просвет сильнее, решает карта толщины из атласа: черешок и прожилки темнее. Карточке нужна и отрисовка обеих сторон. Просвет.
Где разбирается:Трава и листва: карточки и ветер · См. также:Модель затенения, Нормали листвы
Pivot PainterPivot PainterИнструмент Epic, который записывает для каждой части меша — ветки, листа — её точку крепления и направление в текстуры, а номер части — в развёртку. Материал поворачивает каждую часть вокруг её основания.
Есть скрипт для 3ds Max, ассет для Houdini и дополнение для Blender от сообщества. Пример материала поддерживает до четырёх уровней вложенности. Ствол, ветки, листья.
Где разбирается:Трава и листва: карточки и ветер · См. также:Анимация ветра в шейдере, Маска ветра
Мир и уровни
59 терминовБереговая линияShorelineЛиния, где земля стоит ровно на высоте уровня воды, — горизонталь. На экране это место, где земля протыкает плоскость воды.
Где разбирается:Вода в мире: озёра, реки и берега, Вода в мире: озёра, реки и берега · См. также:Тело воды
БиомBiomeУчасток мира со своим набором растений и правилами, где они растут: высота, склон, вода, свет. В играх биом задают набором правил расстановки.
Где разбирается:Биомы: как устроен лес · См. также:Расстановка по правилам, PCG, Ярус леса
БлокаутBlockout (greybox)Мир или уровень из простых форм без деталей, чтобы проверить расстояния и путь.
ВиниWeenieСловечко Уолта Диснея: крупный ориентир, видный издалека, который тянет к себе посетителей, как сосиска собак. В Диснейленде такой стоит в центре каждой тематической зоны.
Где разбирается:Композиция в 3D · См. также:Ориентир
Водосбор (бассейн реки)Drainage basinВся земля, с которой дождь стекает к одной точке реки. Граница водосбора — водораздел: линия по гребням, по разные стороны которой вода уходит в разные реки.
Где разбирается:Как выглядит настоящая земля · См. также:Эрозия
ВорлдбилдингWorldbuildingПридумывание мира игры: рельеф и климат, кто где живёт и почему, что здесь было раньше. В играх он служит игре: объясняет изнутри мира то, что нужно игре. По The Level Design Book, история решает задачи игры.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги · См. также:Место поселения, Повествование окружением
Выемка и насыпьCut and fillКак дорогу делают ровной полкой на склоне: сверху землю срезают (выемка), снизу подсыпают (насыпь). Края — откосы, обычно 1 к 1,5, около 34°.
Где разбирается:Дороги и тропы · См. также:Угол естественного откоса, Уклон дороги
Граница лесаTreelineВысота, выше которой деревья не растут: слишком холодно. В горах она там, где средняя температура почвы за тёплый сезон около 6,5 °C.
Где разбирается:Биомы: как устроен лес · См. также:Экспозиция склона
Дальность загрузкиLoading rangeРадиус вокруг игрока, внутри которого ячейки мира загружены. Память растёт как квадрат дальности, а запас времени на загрузку — примерно дальность, делённая на скорость игрока.
Где разбирается:Открытый мир: как он грузится кусками, Открытый мир: как он грузится кусками · См. также:Ячейка подгрузки, Источник подгрузки
Дальность прорисовкиDraw distance, view distanceКак далеко в игре видно мир. Это не одно число: мелочь отсекают в десятках метров, дома вдали заменяют упрощёнными копиями, мир грузится кусками вокруг игрока, а даль гасит туман.
Земля в движке плоская, горизонта нет, поэтому даль закрывают рельеф, воздух и дальность прорисовки. Хороший мир прячет её границы за гребнем холма и в дымке. Подробнее.
Где разбирается:Масштаб мира: метры, минуты и плотность · См. также:Дальность отсечения, Иерархический LOD, HLOD, Экспоненциальный туман, Уровни детализации, LOD
Единица мираWorld unit, Unreal Unit (uu)Что значит «1» в координатах движка. В Unreal единица — сантиметр, в Unity, Godot и Blender — метр. При переносе модели единицы пересчитывают: метровый куб в Unreal — 100 единиц.
Ошибка в единицах выдаёт себя моделью в 100 раз меньше или больше и предметами, которые падают как в замедленной съёмке: гравитация в движке настоящая. Подробнее.
Где разбирается:Масштаб мира: метры, минуты и плотность · См. также:Метрики игрока, Точность координат, LWC
Источник подгрузкиStreaming sourceТочка, вокруг которой World Partition грузит ячейки. По умолчанию это игрок; ещё один источник ставят, например, в место телепорта, чтобы загрузить его заранее.
Где разбирается:Открытый мир: как он грузится кусками · См. также:Дальность загрузки
Карта весовWeightmapСерая карта на сетке ландшафта для одного слоя краски: сколько этого слоя в каждой вершине, от 0 до 1. У смешанных слоёв веса в вершине в сумме дают 1: прибавишь камню — убудет у травы.
Где разбирается:Ландшафт: земля из карты высот · См. также:Ландшафт, Маска
Карта высотHeightmapСерая картинка, где яркость пикселя — высота точки земли: чёрное ниже, белое выше. Один пиксель — одна вершина ландшафта. Для земли её хранят в 16 битах, иначе на пологих склонах видны ступеньки.
Карта теченияFlow mapТекстура поверх воды, в каждом пикселе которой записано, куда и как быстро течёт вода: канал R — скорость по X, канал G — по Y, 0.5 значит ноль. Материал ведёт по ней рябь.
Где разбирается:Вода в мире: озёра, реки и берега · См. также:Тело воды, Карта нормалей
КаустикаCausticsСветлая бегущая сетка на мелком дне: бугорки ряби работают как маленькие линзы и собирают солнечный свет в яркие линии. Гаснет с глубиной и в мутной воде.
Где разбирается:Вода в мире: озёра, реки и берега · См. также:Преломление
Кольца ТюненаVon Thünen modelМодель Иоганна фон Тюнена (1826): вокруг рынка на ровной земле хозяйство ложится кольцами. Что быстро портится или тяжело везти — ближе, что может подождать или идёт само — дальше. Рельеф, реки и дороги кольца гнут.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги · См. также:Место поселения
Компонент ландшафтаLandscape componentКвадратный кусок ландшафта в Unreal со своей текстурой высот, слоями краски и столкновениями. Делится на 1 или 2 × 2 секции; секция — единица детализации и вызов отрисовки. Epic советует не больше 32 × 32 компонентов.
Где разбирается:Ландшафт: земля из карты высот, Ландшафт: земля из карты высот · См. также:Ландшафт, Уровни детализации, LOD
ЛандшафтLandscape, terrainЗемля в игре: ровная сетка вершин, у каждой одна высота из карты высот. Её дёшево хранить, легко править и упрощать вдали, но нависаний, пещер и отвесных стен она не умеет — их делают мешами поверх.
Где разбирается:Ландшафт: земля из карты высот, Ландшафт: земля из карты высот, Масштаб мира: метры, минуты и плотность · См. также:Карта высот, Компонент ландшафта, Слои правок
Линия обзораSightlineКоридор пустого пространства, сквозь который видно другое место. Даёт возможность увидеть, но не заставляет смотреть.
Где разбирается:Композиция в 3D · См. также:Открытый вид, Ориентир
Место поселенияSiteТо, что под поселением: вода, сухая и ровная земля, укрытие, защита, лес и камень для домов, почва. Место решает, появится ли поселение вообще.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги · См. также:Положение поселения, Сухая точка
Метрики игрокаPlayer metricsРазмеры и умения тела игрока, под которые строят мир: рост и ширина, высота глаз и камеры, какую ступень он перешагнёт, по какому склону пройдёт, как высоко прыгнет и как быстро бежит.
Персонаж шаблона Unreal — капсула 84 × 192 см, ступень до 45 см, склон до 44.8°, бег 5 м/с, камера на 4 м за спиной. Поэтому проходы в играх шире настоящих, а ступени и перила — как в жизни. Подробнее.
Где разбирается:Масштаб мира: метры, минуты и плотность · См. также:Единица мира, Блокаут
Меш вдоль сплайнаSpline meshПрямая модель, которую движок сгибает по кривой: каждую вершину переносят в точку сплайна на той же доле длины. Длинный участок растягивает рисунок, тесный поворот выворачивает внутренний край.
Где разбирается:Дороги и тропы · См. также:Сплайн, UV
Мотивированный светMotivated lightСвет, у которого в кадре есть правдоподобный источник — окно, лампа, огонь. Невидимые лампы движка ставят так, будто свет идёт от них; один светильник часто держат несколько ламп.
Где разбирается:Интерьер и экстерьер · См. также:Глобальное освещение, GI
Мысленная картаMental mapКарта места, которую человек держит в голове. По Кевину Линчу, она складывается из путей, границ, районов, узлов и ориентиров. Мир, где работают все пять, запоминается.
Где разбирается:Дизайн открытого мира: регионы и ориентиры · См. также:Ориентир, Регион
Неразрушающая правкаNon-destructive editingПравка, которая хранится отдельно от основы и пересчитывается, когда основа меняется. Её можно выключить или переделать, и ничего под ней не испортится.
Один файл на акторOne File Per Actor (OFPA)Режим Unreal, где каждый предмет уровня хранится в своём файле, а не в одном общем. Так много людей правят одну карту, не мешая друг другу. С World Partition включён по умолчанию.
Где разбирается:Открытый мир: как он грузится кусками · См. также:World Partition
Окно в пологеCanopy gapДыра в пологе там, где упало дерево или сук. Внизу становится светло, и первыми поднимаются травы, кусты и пионеры.
Где разбирается:Биомы: как устроен лес · См. также:Пионер, Полог леса
ОпушкаForest edgeКрай леса, где он встречает луг или поле. Там больше света и ветра, поэтому густо растут кусты и подрост, а граница — полоса, а не линия.
Где разбирается:Биомы: как устроен лес · См. также:Ярус леса
ОриентирLandmark, point of interest (POI)Запоминающаяся форма или место уровня, которое выделяется среди окружения и по которому игрок понимает, где он. Работает, только если нужен для игры: связан с целью или путём.
Где разбирается:Композиция в 3D, Дизайн открытого мира: регионы и ориентиры · См. также:Вини, Линия обзора
Открытый видVistaГлубокий обзор следующего места, с которого игрок успевает его оценить и решить, что делать. Путь, с которого вид открывается, называют подходом.
Где разбирается:Композиция в 3D · См. также:Линия обзора, Репуссуар
ПионерPioneer speciesБыстрое светолюбивое растение, которое первым занимает открытую землю после пожара, вырубки или бури. В наших лесах это берёза.
Где разбирается:Биомы: как устроен лес · См. также:Окно в пологе
Повествование окружениемEnvironmental storytellingРассказ без слов: уровень строят так, чтобы он сообщал о событии в прошлом или намекал на него. Работает на уровне отдельной комнаты: что случилось здесь, с этими людьми?
Где разбирается:Интерьер и экстерьер · См. также:Ориентир
Подгрузка уровнейLevel streamingЗагрузка и выгрузка уровней во время игры, чтобы не держать всё в памяти. В Unreal подуровень грузит объём (Level Streaming Volume) или команда Load Stream Level; большие миры теперь режет на куски World Partition.
Где разбирается:Интерьер и экстерьер · См. также:World Partition, Слои данных
ПодростSaplings, advance regenerationМолодые деревья главных пород под пологом. Они ждут, когда наверху освободится место, а под сомкнутыми кронами редеют и гибнут.
Где разбирается:Биомы: как устроен лес · См. также:Ярус леса, Окно в пологе
Полог лесаCanopyСомкнутые кроны верхнего яруса — крыша леса. Перехватывает большую часть света, поэтому под плотным пологом низ беднеет.
Где разбирается:Биомы: как устроен лес · См. также:Ярус леса, Окно в пологе
Положение поселенияSituationКак поселение связано с остальным миром: дороги, реки, переправы, соседи. Положение решает, вырастет ли деревня в город.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги · См. также:Место поселения, Узел путей
Правило треугольниковTriangle ruleПриём Nintendo из Breath of the Wild: гора, холм или постройка треугольником даёт выбор — перелезть или обойти — и прячет то, что за ней. Крупные треугольники служат ориентирами, средние закрывают обзор, мелкие задают темп.
Где разбирается:Дизайн открытого мира: регионы и ориентиры · См. также:Ориентир, Притяжение
ПрефабPrefab, Level InstanceГруппа предметов, сохранённая как одно целое: дом с мебелью, двор, причал. Копии расставляют по миру, а правка образца меняет все копии.
Где разбирается:Как собирают мир: от крупного к мелкому · См. также:Инстансинг
ПритяжениеGravity (open world design)Приём Nintendo из Breath of the Wild: места разной заметности и важности расставлены в разных направлениях, каждое тянет к себе, и игрок сам уходит в стороны вместо того, чтобы идти по одной цепочке целей.
Где разбирается:Дизайн открытого мира: регионы и ориентиры · См. также:Правило треугольников, Ориентир
Расстановка по правилам, PCGProcedural Content Generation, PCGКомпьютер расставляет тысячи предметов — лес, траву, камни — по правилам «где, сколько и какие» и пересчитывает их после каждой правки земли, воды или дорог.
Где разбирается:Как собирают мир: от крупного к мелкому, Дороги и тропы · См. также:Неразрушающая правка, Сид, Шум, Инстансинг
РегионRegion, districtЧасть открытого мира со своим характером: формой земли, растениями, цветом и светом, делами людей. Регион запоминается, когда меняется сразу несколько таких вещей.
Где разбирается:Дизайн открытого мира: регионы и ориентиры · См. также:Мысленная карта, Биом
СерпантинSwitchback, hairpinЗигзаг дороги по склону: путь удлиняют, чтобы уменьшить уклон. Дорога не короче, чем подъём, делённый на допустимый уклон. Крутой разворот зигзага — шпилька.
Где разбирается:Дороги и тропы · См. также:Уклон дороги
Слои данныхData LayersГруппы акторов в World Partition, которые загружают и выгружают по команде из Blueprint. Так в одном месте держат разные его состояния для квестов, прогресса и событий.
Где разбирается:Интерьер и экстерьер, Открытый мир: как он грузится кусками · См. также:World Partition, Подгрузка уровней
Слои правокEdit layersСтопка правок высоты и краски ландшафта поверх основы. Слой можно спрятать, ослабить, переставить или удалить, не трогая остальное. Дороги и вода правят землю своими слоями и пересчитывают их сами.
СплайнSplineПлавная линия через несколько опорных точек. Вдоль неё строят дорогу, реку или забор, а двигают её, перетаскивая точки.
Сухая точкаDry point siteМесто для поселения чуть выше округи, которое реже заливает: бугор в пойме, край долины. Вода рядом, а паводок не достаёт.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги · См. также:Пойма, Место поселения
Тело водыWater bodyВода в игре как один объект с формой и уровнем: поверхность с материалом, невидимый объём для плавания и правка земли под ложе. Двигаешь тело — едет всё сразу.
Где разбирается:Вода в мире: озёра, реки и берега, Вода в мире: озёра, реки и берега · См. также:Береговая линия, Карта течения, Слои правок
Угол естественного откосаAngle of reposeСамый крутой угол, под которым держится куча сыпучего материала: сухой песок около 34°, влажный около 45°, каменная осыпь 30–40°. Круче материал сползает.
Где разбирается:Как выглядит настоящая земля, Дороги и тропы · См. также:Эрозия, Трение
Узел путейRoute centre, nodal pointМесто, где встречаются пути: две долины, две дороги, две реки, переправа через большую реку, проход между холмами. Здесь вырастают города.
Где разбирается:Мир, в который веришь: где живут люди и куда ведут дороги · См. также:Положение поселения
Уклон дорогиRoad gradeПодъём, делённый на пройденное расстояние по горизонтали, в процентах: 6 % — шесть метров вверх на сто вперёд. 100 % — это склон 45°, а не стена.
Где разбирается:Дороги и тропы, Дороги и тропы · См. также:Серпантин, Выемка и насыпь
Уклон склонаSlopeНасколько круто поднимается земля: угол склона в градусах. В расстановке его берут из нормали к земле: её вертикальная часть — косинус угла, 1 на ровном месте, 0,87 при 30°, 0,5 при 60°.
Где разбирается:Расстановка по правилам · См. также:Уклон дороги, Нормаль
Уровень-инстансLevel InstanceНабор предметов, сохранённый как уровень-образец и расставленный по миру копиями. Правишь образец — меняются все копии. Для неподвижных зданий есть упакованный вариант, Packed Level Blueprint.
Где разбирается:Интерьер и экстерьер · См. также:Слои данных
Цифровая модель высот, DEMDigital elevation model, DEMФайл настоящих высот земли, снятых сверху, например со спутника: сетка точек, у каждой высота в метрах. Бывает модель голой земли и модель поверхности — с верхушками леса и крышами. Глобальные данные идут с шагом около 30 м.
Где разбирается:Рельеф из генератора в движок · См. также:Карта высот, Ландшафт
Экспозиция склонаSlope aspectСторона света, куда смотрит склон. В северном полушарии южный склон теплее и суше, северный — тенистый, снежнее, и лес на нём гуще.
Где разбирается:Биомы: как устроен лес · См. также:Граница леса
ЭрозияErosionРазрушение и перенос земли водой, льдом, ветром и собственным весом. Срезанное наверху ложится ниже наносами. В генераторах рельефа — гидравлическая (вода) и термальная (осыпание до угла откоса).
Где разбирается:Как выглядит настоящая земля, Как выглядит настоящая земля · См. также:Угол естественного откоса, Водосбор (бассейн реки), Карта высот
Ярус лесаForest layer, stratumЭтаж растительности: деревья первой величины, второй, подлесок из кустарников, травы и кустарнички, мхи. Нижние этажи живут светом, который пропустили верхние.
Где разбирается:Биомы: как устроен лес · См. также:Полог леса, Подрост
Ячейка подгрузкиStreaming cell, grid cellКвадрат мира, который грузится и выгружается целиком. В Unreal их режет World Partition: в примере Epic ячейка 256 м.
Где разбирается:Открытый мир: как он грузится кусками · См. также:Дальность загрузки, World Partition
World PartitionWorld PartitionПодгрузка мира кусками в Unreal: мир лежит на сетке ячеек, и в память грузятся только ячейки вокруг игрока.
Такого термина пока нет. Если он нужен — попроси добавить.