Режим камеры: изо / третье лицо / первое лицо в движке (шаг 1)
- CameraMode + чистая математика камеры (render/cameraMath.ts):
  camForward, orbitPosition (переехал из modelViewer, реэкспорт),
  PERSP_FOV 50°, клампы pitch/dist (грабля «из-под земли»).
- VoxelRenderer: isoCamera + perspCamera (создаётся всегда), публичное
  camera — getter активной (union); setCameraMode/setOrbit/orbitState/
  setEyeHeight/cameraInfo. repositionCamera ветвится по режиму:
  семантика setTarget «точка интереса» сохранена — игры, зовущие его
  каждый тик слежения, не ломаются, ориентация живёт в орбит-состоянии.
- Guard: окно частиц и юниформы тумана в перспективе пока по изо-камере
  (до треков окон пирамиды/тумана — NaN не бывает).
- Тесты camForward/orbitPosition; окно моста — временный каст.
- Доки CLAUDE.md: API камеры.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent e4cd7ff commit d483fcce66c1dd692cbd8e639e19b747021f8a1d
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 6 hours ago
Showing 7 changed files
View
v2/CLAUDE.md
View
v2/apps/game/src/main.ts
View
v2/packages/engine/src/index.ts
View
v2/packages/engine/src/render/__tests__/cameraMath.test.ts 0 → 100644
View
v2/packages/engine/src/render/cameraMath.ts 0 → 100644
View
v2/packages/engine/src/render/modelViewer.ts
View
v2/packages/engine/src/render/voxelRenderer.ts