3.6 KiB
3.6 KiB
Эффекты и частицы
Пока что — не байтовая спецификация, а “карта” по тому, что видно в библиотеках. Полную документацию по эффектам/шейдерам/частицам можно будет сделать после того, как:
- найдём формат эффекта (файл/ресурс),
- найдём точку загрузки/парсинга,
- найдём точки рендера (создание буферов/вершинного формата/материалов).
1) Что видно по Effect.dll
- Есть экспорт
CreateFxManager(...), который создаёт менеджер эффектов и регистрирует его в движке. - Внутри много логики “сообщений/команд” через виртуальные вызовы (похоже на общий компонентный интерфейс).
- Явного парсера формата эффекта (по типу “читать заголовок, читать эмиттеры…”) в найденных местах пока не идентифицировано.
2) Что видно по Terrain.dll (рендер‑статистика частиц)
В Terrain.dll есть отладочная/статистическая телеметрия:
- количество отрендеренных частиц (
Rendered particles) - количество батчей (
Rendered batches) - количество отрендеренных треугольников
Это подтверждает:
- частицы рендерятся батчами,
- они интегрированы в общий 3D‑рендер (через тот же графический слой).
3) Что важно для совместимости
Даже без точного формата эффекта, из поведения оригинала следует:
- Эффекты/частицы завязаны на общий набор рендер‑фич (фильтрация/мультитекстурность/блендинг).
- На слабом железе (и для минимализма) должны работать деградации:
- без мипмапов,
- без bilinear/trilinear,
- без multitexturing,
- возможно с 16‑бит текстурами.
4) План “докопать” до формата эффектов
-
Найти точку создания эффекта по имени/ID:
- поискать места, где в строки/лог пишется имя эффекта,
- найти функции, которые принимают “путь/имя” и возвращают handle.
-
Найти точку загрузки данных:
- чтение из NRes/RsLi ресурса,
- распаковка/декодирование.
-
Зафиксировать структуру данных эффекта в памяти:
- эмиттеры,
- спауны,
- lifetime,
- ключи размера/цвета,
- привязка к текстурам/материалам.
-
Найти рендер‑код:
- какой vertex format у частицы,
- как формируются квадраты/ленты (billboard/trail),
- какие state’ы включаются.
После этого можно будет выпустить полноценный документ “FX format”.