reckfellENGINE

Первые кадры: загрузка шейдера и компиляция pipeline

Загрузка ресурса не гарантирует готовность каждого варианта отрисовки.

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

Разделить стадии

СтадияЧто происходит
Загрузка Shader/MaterialПолучение ресурса и его кода/параметров
Подготовка шейдераРазбор и компиляция для выбранного графического пути
Создание pipelineКомбинация шейдера с форматом вершин, целью, проходом и другим состоянием
Реальное рисованиеИспользование конкретного варианта на GPU

Один материал может использовать несколько вариантов. Load<Shader> и успешный разбор кода не являются обещанием, что первый видимый кадр не потребует дополнительной работы драйвера.

Отличить холодное появление

Воспроизведите первое появление материала в одинаковой сцене, затем повторите его в том же запуске. Зафиксируйте рендерер, устройство, драйвер и состояние кэша. Редкий длинный кадр также может быть загрузкой файла, выделением памяти или игровой логикой; не называйте каждый скачок shader stutter без проверки.

В примере стаи Shader создаётся из полного кода и используется настоящим объектом. Дополнительно проверены сохранение и загрузка Shader как .rdata и реальная отрисовка. Это подтверждает рабочий путь ресурса, не время его первого появления.

Прогревать реальный вариант

Подготовьте объекты и материалы под загрузочным экраном так, чтобы нужная геометрия действительно прошла отрисовку. Скрытый объект, пустой Viewport или геометрия вне видимости не гарантируют создание нужного draw-варианта. Учитывайте те же поверхности, проходы, настройки цели и эффекты, которые понадобятся игре.

Ожидание FramePostDraw означает прохождение кадра рендеринга; оно не является GPU-таймером и не гарантирует подготовку всех будущих вариантов. После изменения материала или состояния могут понадобиться другие варианты. В этом API нет универсального обещания «скомпилировать всё навсегда» одним вызовом загрузки.

Различать рендереры и счётчики

RD-путь Forward+/Mobile использует специализированные pipeline и механизмы их подготовки. Compatibility использует OpenGL и другой путь. PIPELINE-компиляционные счётчики нельзя переносить между этими реализациями как одинаковое доказательство готовности: в проверенном Compatibility счётчик PipelineCompilationsMesh равен 0, хотя шейдеры реально используются.

Кэш зависит от выбранного графического пути, драйвера и устройства. Не распространяйте локальный драйверный кэш как универсальное решение для всех игроков. Для выпуска проверяйте холодное появление нужных вариантов на целевых конфигурациях, а не только повторный запуск на машине разработчика.

Эксперименты с GPU · Настоящие кадры стаи

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

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

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

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