diff options
Diffstat (limited to 'docs/specs/effects.md')
| -rw-r--r-- | docs/specs/effects.md | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/docs/specs/effects.md b/docs/specs/effects.md deleted file mode 100644 index 2e9681a..0000000 --- a/docs/specs/effects.md +++ /dev/null @@ -1,69 +0,0 @@ -# Эффекты и частицы - -Пока что — **не байтовая спецификация**, а “карта” по тому, что видно в библиотеках. Полную документацию по эффектам/шейдерам/частицам можно будет сделать после того, как: - -- найдём формат эффекта (файл/ресурс), -- найдём точку загрузки/парсинга, -- найдём точки рендера (создание буферов/вершинного формата/материалов). - ---- - -## 1) Что видно по `Effect.dll` - -- Есть экспорт `CreateFxManager(...)`, который создаёт менеджер эффектов и регистрирует его в движке. -- Внутри много логики “сообщений/команд” через виртуальные вызовы (похоже на общий компонентный интерфейс). -- Явного парсера формата эффекта (по типу “читать заголовок, читать эмиттеры…”) в найденных местах пока не идентифицировано. - ---- - -## 2) Что видно по `Terrain.dll` (рендер‑статистика частиц) - -В `Terrain.dll` есть отладочная/статистическая телеметрия: - -- количество отрендеренных частиц (`Rendered particles`) -- количество батчей (`Rendered batches`) -- количество отрендеренных треугольников - -Это подтверждает: - -- частицы рендерятся батчами, -- они интегрированы в общий 3D‑рендер (через тот же графический слой). - ---- - -## 3) Что важно для совместимости - -Даже без точного формата эффекта, из поведения оригинала следует: - -- Эффекты/частицы завязаны на общий набор рендер‑фич (фильтрация/мультитекстурность/блендинг). -- На слабом железе (и для минимализма) должны работать деградации: - - без мипмапов, - - без bilinear/trilinear, - - без multitexturing, - - возможно с 16‑бит текстурами. - ---- - -## 4) План “докопать” до формата эффектов - -1. Найти **точку создания эффекта по имени/ID**: - - поискать места, где в строки/лог пишется имя эффекта, - - найти функции, которые принимают “путь/имя” и возвращают handle. - -2. Найти **точку загрузки данных**: - - чтение из NRes/RsLi ресурса, - - распаковка/декодирование. - -3. Зафиксировать **структуру данных эффекта в памяти**: - - эмиттеры, - - спауны, - - lifetime, - - ключи размера/цвета, - - привязка к текстурам/материалам. - -4. Найти рендер‑код: - - какой vertex format у частицы, - - как формируются квадраты/ленты (billboard/trail), - - какие state’ы включаются. - -После этого можно будет выпустить полноценный документ “FX format”. |
