FOnline Engine
Current master GitHub
Документация Docs/ru/reference/effect-format/baking.md

Запекание эффектов и backend-ы

Сгенерированный справочник. Не редактируйте его напрямую. Обновите BuildTools/EffectFormatInterface.json, затем выполните python BuildTools/docs_effect_format.py --write.

Индекс Синтаксис Состояние рендеринга Ресурсы Запекание Runtime Проверка Канонический JSON Руководство

Каждый проход создаёт один файл метаданных и семь вариантов для каждой стадии шейдера. Исходный .fofx копируется в запечённые ресурсы, потому что runtime продолжает читать из него состояние [Effect].

Варианты стадии: spv, spv_sdl, glsl, glsl_es, hlsl, msl_mac, msl_ios

Стабильный ID Правило Требование Причина Источник
effect-format.baking.compiler-prelude Сгенерированный пролог шейдера Перед ShaderCommon и текстом стадии baker добавляет ‘#version <Version> es’, ‘precision highp float’, MAX_SCRIPT_VALUES, а в 3D-сборках также MAX_BONES и MAX_TEXTURES. Авторские шейдеры используют единый контракт compile-time формы и не должны дублировать эти директивы. Source/Tools/EffectBaker.cpp
effect-format.baking.compiler-target Целевое окружение glslang Обе стадии компилируются как GLSL для клиента Vulkan 1.0 и цели SPIR-V 1.0, затем один раз на проход связываются и строят reflection. Все варианты backend-ов получаются из одной проверенной связанной программы. Source/Tools/EffectBaker.cpp
effect-format.baking.link-interface Проверка интерфейса стадий Вершинная и фрагментная стадии каждого прохода должны разбираться, связываться и предоставлять корректную reflection-модель. Несоответствия location/type и синтаксические ошибки останавливают запекание ресурсов до runtime. Source/Tools/EffectBaker.cpp
effect-format.baking.metadata Метаданные прохода Каждый проход создаёт info-артефакт с нативными привязками [EffectInfo] и плотными слотами и числами ресурсов по стадиям в [EffectInfoSdl]. Runtime-backend-ы используют результаты reflection без запуска glslang. Source/Tools/EffectBaker.cpp
effect-format.baking.native-flavors Нативные и кросс-компилированные варианты Каждая стадия создаёт нативный Vulkan SPIR-V, desktop GLSL 330, GLSL ES 300, HLSL Shader Model 4.0 и исходный Metal для macOS и iOS. Один исходный эффект поддерживает активные backend-ы рендерера без проектных ответвлений шейдера. Source/Tools/EffectBaker.cpp
effect-format.baking.sdl-remap Переназначение дескрипторов SDL_GPU Baker копирует нативный SPIR-V, переписывает descriptor set-ы и binding-и под соглашение SDL_GPU для отдельных стадий и сохраняет результат как spv_sdl. Исходный Metal компилируется из переназначенного модуля. Нативные привязки Vulkan остаются неизменными, а SDL_GPU получает плотные локальные слоты стадий. Source/Tools/EffectBaker.cpp
effect-format.baking.source-copy Запечённая копия исходника После артефактов всех проходов исходный .fofx записывается в набор запечённых ресурсов. RenderEffect повторно разбирает состояние [Effect] во время выполнения; исходный файл является частью набора runtime-артефактов. Source/Tools/EffectBaker.cpp, Source/Frontend/Rendering.cpp
effect-format.baking.incremental Набор инкрементальных выходов Проверка запекания отслеживает копию исходника, метаданные проходов и каждый артефакт стадии/варианта для всех объявленных проходов. Отсутствующий или устаревший вариант должен делать эффект кандидатом на повторное запекание. Source/Tools/EffectBaker.cpp
Введите запрос.