Commit graph

5 commits

Author SHA1 Message Date
44b0ece2ab render: вода (SURF_WARP), area-скайбокс с правильным порядком глубины, лайтмапы диспов по UV
- Вода: детект Water-шейдера (/), отдельный полупрозрачный
  проход с френелем; поверхность/изнанка по нормали. Белая дыра на месте воды
  (2D-скайбокс «вниз») устранена.
- 3D-скайбокс: выбор граней по area листа sky_camera (движок: area bits), а не по
  AABB. Disp-грани не попадают в leaf_faces — выбор по листу центра грани; теперь
  в скайбоксе есть большая плоскость flatgrass_2 (пропадала — торчала «стена»
  бетонного пола). Защита >30% граней = скайбокс не выделяем (gm_flatgrass).
- Порядок: 2D-скайбокс фоном -> 3D-меш (depth Always, без записи) -> мир ->
  вода. Скайбокс больше не проступает сквозь дальние стены карты.
- Лайтмапы: блок грани (size+1)^2 с индексом v*width+u; для displacement'ов —
  плотная сетка по UV поверхности (CalcDispSurfCoords), а не проекция мира:
  убрана «шахматка» теней на рельефе. Скайбокс-меш тоже сэмплит лайтмапы.
- Тесты: gm_flatgrass-диспы живут в скайбоксе (z≈-16000), пороги обновлены.
- docs/RECON.md §12: форматы листьев/граней, лайтмапы, скайбокс, вода.
2026-10-12 08:28:28 +03:00
b7a63d9a83 client: главное меню (выбор карты, запуск), команда Run = меню
- menu: список карт из VFS, навигация Up/Down, Enter — загрузка карты,
  Esc — выход, скриншот для тестов; пустой мир + 2D-текст
- create_buffer: пустые буферы wgpu запрещены — минимальный размер
- run.rs удалён (дублировал окно без меню)
2026-10-12 04:33:00 +03:00
5db759c8bb render/client: HUD и 2D-текст (bitmap-шрифт 8x8), фикс capture-прохода
- render::text: атлас ASCII 32..127, вершинный оверлей, шейдер text.wgsl
- WorldRenderer: push_text/clear_text, пайплайн с альфа-смешиванием, depth Always
- capture(): теперь использует общий draw() — раньше скриншоты не включали
  скайбокс и оверлей (важно: скайбокс-меш на скриншотах появился только сейчас)
- map: HUD (FPS, позиция, режим, подсказки, лог событий), тени текста
2026-10-12 04:12:34 +03:00
2aeee1ac0a engine/render: модели энтити (prop_static/prop_dynamic/prop_physics) и 3D-скайбокс
- engine::model: сборка мешей MDL+VVD+VTX (bind pose, LOD 0), материалы через
  cd-каталоги модели, поворот углами Source
- build_world: экземпляры prop_* моделей в общий меш мира (9 инстансов на
  gm_construct), кэш моделей и текстур
- 3D-скайбокс: выделение скайбокс-граней (AABB вокруг sky_camera, <30% карты),
  сжатие 1/scale вокруг камеры, отдельный пайплайн с глубиной у дальней
  плоскости; 2D-скайбокс рисуется только в незакрытых пикселях
- тесты: sky_mesh на gm_construct, пороги дисплейсментов обновлены
2026-10-12 02:42:12 +03:00
b8b5a4c328 engine/render: M3 v0 — рендер мира BSP со скайбоксом
- crates/engine: сборка мира (браши, displacement'ы, лайтмапы в вершинах,
  материалы через VMT/patch/include, кэш текстур, пропуск прозрачных материалов),
  загрузка скайбокса из skyname
- crates/render: wgpu-рендерер мира (VB/IB, батчи, глубина), скайбокс-куб,
  камера-полёт, capture PNG с учётом BGRA, debug-режимы материалов
- client: команда map (диск/VPK, pakfile карты, WASD+мышь, --pos/--angles/--screenshot)
- тесты: gm_construct/gm_flatgrass собираются, 0 заглушек, 41 324 треугольника
- docs: прогресс M3 и заметки (BGRA, pak-VMT, z=w клиппинг)
2026-10-12 00:06:26 +03:00