reckfellENGINE

Постобработка: где выполнять эффект

Выбрать между 2D-обработкой цвета, живой текстурой и 3D-проходом по глубине.

На этой странице

Выбрать место эффекта

Сначала определите, какие данные нужны эффекту. Обработка цвета готовой картинки и чтение глубины 3D-камеры — разные задачи.

ЗадачаПодходРабочий пример
обесцвечивание, цветовой фильтр, эффект поверх показанного изображенияShaderMaterial с canvas_item на ColorRect, нарисованном после изображенияЭкранные шейдеры
два эффекта, второй читает результат первогоявно обновить экранную копию между проходамиЦепочка с BackBufferCopy
отдельная камера для портрета, монитора или предварительного просмотраSubViewport с камерой и потребитель его ViewportTextureЖивая текстура
расстояние до поверхности, depth-based hazespatial shader в том же 3D viewport, hint_depth_texture и восстановление позиции3D-постобработка по глубине

Canvas_item-пример не переносит depth buffer исходной комнаты в интерфейс. Spatial-пример не гарантирует обработку всего UI и каждого прозрачного материала. Выбирайте точку обработки по нужным данным, а не по тому, какой тип Entity проще добавить.

Запустить проверенную 2D-цепочку

Скачать проект экранных эффектов. Reckfell 1.0.0, C# SDK, Forward+/Vulkan. Откройте project.reckfell, соберите C# и запустите Main.rscene. У корня до запуска выберите Preview=Grayscale; Original показывает исходник, Chained — диагностическую инверсию серого результата.

Сцена содержит живой 3D-источник и последовательность Display → TonePass → Copy → InvertPass. При отключённом Copy второй screen-reading shader читает общую исходную копию, а не обесцвеченное изображение. При CopyMode=Viewport между проходами получает результат первого. Простое добавление ещё одного ColorRect не означает, что входом второго станет выход первого.

CanvasLayer помогает разместить эффект и интерфейс в нужных слоях. Он не является универсальной командой повторного копирования screen_texture. Управляйте реальным порядком рисования и BackBufferCopy явно. Полный код и разбор SCREEN_UV находятся в связанном руководстве; дублировать shader здесь не нужно.

Запустить 3D-проход по глубине

Скачать проект глубины. Те же требования к движку и SDK. Preview=Haze добавляет дымку по восстановленному расстоянию, Original отключает проход, Distance показывает диагностическую маску.

Готовый интерьер с пользовательской дымкой по глубине

Этот проход — потомок активной камеры. Он читает данные её viewport, использует INV_PROJECTION_MATRIX и не пишет собственную глубину. В Compatibility и Forward+ различается преобразование depth в NDC; ветки уже есть в shader. Не заменяйте их одной формулой без проверки.

Копия цвета в 3D берётся в определённом месте рендера. Она не равна произвольному финальному кадру со всеми прозрачными объектами, частицами и UI. Приоритет материала не меняет момент получения копии. Подробности и законченный код — в руководстве по глубине.

Проверить свой эффект

  1. Сначала получите исходное изображение без эффекта.
  2. Нейтральные параметры должны сохранять его цвет. Если уже здесь кадр меняется, проверьте повторный fog/lighting, тонмаппинг, alpha и место копирования.
  3. Меняйте один параметр за раз. Не подстраивайте одновременно камеру и экспозицию под ошибку shader.
  4. Для цепочки временно отключите явную копию. Если ожидаемый первый эффект пропал из результата второго, проверьте порядок и точку копирования.
  5. Для глубины используйте поверхности на известных расстояниях и проверьте смену Near/Far, проекции и рендерера. Внешне правдоподобная серая маска не подтверждает правильность формулы.

Примеры проверены текущей локальной сборкой. Численная реконструкция глубины проверена в OpenGL и Vulkan; полный интерьер и эффекты на иллюстрациях — только в Forward+/Vulkan. Примеры не являются замером производительности, готовым gaussian blur, универсальным compositor для всех буферов или проверкой экспорта приложения.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.