ci-platforms / darwin amd64 smoke (push) Skipped
ci / build (amd64, linux, ubuntu-24.04) (push) Failing after 15m28s
ci / release (push) Skipped
ci-platforms / windows amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci / checks (push) Successful in 7m47s
30 lines
5.4 KiB
Markdown
30 lines
5.4 KiB
Markdown
---
|
||
id: render2d.PostProcess
|
||
title: Постобработка камеры
|
||
---
|
||
# Постобработка камеры
|
||
|
||
Запустите пример, переведите фокус в Game View и нажимайте пробел. Последовательно включаются Bloom, Color Grading, Vignette, Chromatic Aberration, Pixelate, CRT, пользовательский фильтр и исходное изображение. В примере есть линейная identity LUT и собственный материал. Изменённая насыщенность позволяет увидеть Color Grading даже с нейтральной LUT.
|
||
|
||
## Ореол вокруг лампы
|
||
|
||
Откройте основную сцену examples/platformer, выберите Camera и раскройте Post Process. У Bloom заданы Threshold 0,75, Intensity 0,22 и Radius 6. Понизьте порог, чтобы ореол появился вокруг большего числа ярких поверхностей. Увеличьте радиус, чтобы он стал шире. Сравните лампу и искры при включённом и выключенном стеке. Откройте настройки игры и проверьте чёткость текста. Для освещения соседних поверхностей у лампы есть Light2D.
|
||
|
||
Стек выполняется один раз после отрисовки мира всеми камерами одного выхода. Включите компонент на одной из них. Группа SceneLinear получает цвет до экспозиции и тональной компрессии. Группа DisplayLinear работает после них, до кодирования для вывода. Переставляйте эффекты внутри совместимой группы. Линейный offscreen-выход сохраняет значения сцены. Bloom и разделение цветовых каналов рассчитаны на непрозрачное изображение.
|
||
|
||
## Пользовательский фильтр
|
||
|
||
Добавьте Custom Material, выберите материал с шейдером `#pragma postfx` и включите эффект. Готовый пример лежит в `examples/platformer/assets/postfx/cold.aemat`. Шейдер читает предыдущий результат через `aego_sample(aego_uv)`. Сохраните материал, шейдер и сцену, затем проверьте результат в экспортированной игре. На камере есть и выключенный Color Grading с LUT. Подходят отдельные линейные data-текстуры 256×16 или 1024×32.
|
||
|
||
Для Animation и Tween параметр задаётся через ID экземпляра. Например, на камере платформера путь `render2d.PostProcess.ef120d00000000000000000000000002:Intensity` ведёт к интенсивности Bloom. При перестановке цель сохраняется. У копии эффекта появляется собственный ID. Undo восстанавливает удалённый экземпляр вместе с его ID.
|
||
|
||
## Материалы в примерах игр
|
||
|
||
В `examples/platformer/assets/materials/character_flash_lit.aeshader` показано сочетание освещения, нормали текущего спрайта и параметра Flash. Клип Hurt анимирует параметр Flash в компоненте переопределения материала игрока. У соседей с общим материалом сохраняются их собственные значения. Для контура выделения сохраните текущий материал спрайта, назначьте встроенный Outline и верните прежний материал при снятии выделения. В examples/topdown фонарь Torch поворачивается вместе с прицелом меча. Его свет получают пол и стены.
|
||
|
||
## Инспекция проходов и команды
|
||
|
||
В секции Lighting профайлера включите просмотр проходов и выберите логический выход. У Bloom видны выделение ярких областей, два направления размытия и композиция. Выключите стек и сравните следующий кадр. Время прохода появляется после получения достоверной выборки от драйвера. У окна показан размер области вывода, у текстуры также указан формат.
|
||
|
||
Команда `aego postfx get scenes/main.aescene Camera` выводит ID экземпляров. В платформере `aego postfx set scenes/main.aescene Camera ef120d00000000000000000000000002 Intensity 0.35` меняет интенсивность существующего Bloom. Эти команды доступны по MCP. При привязке к редактору изменение попадает в открытый документ и его историю Undo.
|