aboutsummaryrefslogtreecommitdiff
path: root/docs/specs/effects.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-02-11 02:27:43 +0300
committerValentin Popov <valentin@popov.link>2026-02-11 02:27:43 +0300
commit5035d022206bf9ace54a43b4d65abe0b9fc0f361 (patch)
tree80e6566ec817e14ed12ce25326a83b3172bca3a2 /docs/specs/effects.md
parentba1789f10607f5a6cba5863128d31f776b8e59cc (diff)
downloadfparkan-5035d022206bf9ace54a43b4d65abe0b9fc0f361.tar.xz
fparkan-5035d022206bf9ace54a43b4d65abe0b9fc0f361.zip
Add MSH geometry export and preview rendering tools
- Implemented msh_export_obj.py for exporting NGI MSH geometry to Wavefront OBJ format, including model selection and geometry extraction. - Added msh_preview_renderer.py for rendering NGI MSH models to binary PPM images, featuring a primitive software renderer with customizable parameters. - Both tools utilize the same NRes parsing logic and provide command-line interfaces for listing models and exporting or rendering geometry.
Diffstat (limited to 'docs/specs/effects.md')
-rw-r--r--docs/specs/effects.md69
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”.