138 Commits

Author SHA1 Message Date
6b6d581b71 feat(renderer): add soft shadows, BLAS tracker, RT fallback, light probes, light volumes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:28:37 +09:00
be290bd6e0 feat(audio): add async loader, effect chain
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:28:31 +09:00
aafebff478 feat(audio): add fade curves, dynamic mix groups, audio bus routing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:23:48 +09:00
bc2880d41c feat(renderer): add stencil optimization, half-res SSGI, bilateral bloom
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:21:44 +09:00
025bf4d0b9 feat(renderer): add G-Buffer compression with octahedral normals and depth reconstruction
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:21:05 +09:00
039dbe0d09 feat(renderer): add RT reflections, RT AO, and RT point/spot shadows
Add three new compute shader modules extending the existing RT shadow system:
- RT Reflections: screen-space reflection ray marching from G-Buffer
- RT Ambient Occlusion: hemisphere sampling with cosine-weighted directions
- RT Point/Spot Shadow: placeholder infrastructure for point/spot light shadows

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:37:25 +09:00
cc842d7c13 feat(renderer): add Progressive JPEG detection and scan parsing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:33:52 +09:00
84dc7aeb20 feat(audio): add occlusion simulation with low-pass filter
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:33:04 +09:00
96efe113b2 feat(audio): add Reverb (Schroeder) and Echo effects
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:31:19 +09:00
98d40d6520 feat(net): add packet encryption and auth token
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:28:21 +09:00
6beafc6949 feat(net): add lag compensation with history rewind and interpolation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:27:58 +09:00
28b24226e7 feat(audio): add simplified HRTF with ITD and ILD
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:27:05 +09:00
447473598a feat(renderer): add motion blur compute shader
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:57:05 +09:00
0f08c65a1e feat(physics): add ConvexHull collider with GJK support function
Add ConvexHull struct storing vertices with a support function that
returns the farthest point in a given direction, enabling GJK/EPA
collision detection. Update all Collider match arms across the physics
crate (collision, raycast, integrator, solver) to handle the new variant.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:49:38 +09:00
1b5da4d0d5 feat(physics): add ray vs mesh raycasting with MeshCollider
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:48:57 +09:00
07d7475410 feat(ai): add NavMesh binary serialization
Add serialize/deserialize methods directly on NavMesh with a proper
binary header (magic "VNAV" + version u32) for format validation.
Includes tests for roundtrip, invalid magic, empty mesh, header format,
and unsupported version.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:46:38 +09:00
764ee96ec1 feat(renderer): add screen space reflections compute shader
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:41:29 +09:00
41c7f9607e feat(renderer): add TAA with Halton jitter and neighborhood clamping
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:40:53 +09:00
1f855b7bf6 feat(renderer): add temporal accumulation compute shader for SSGI
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:28:21 +09:00
1ea2d340e6 feat(renderer): add bilateral blur compute shader for SSGI denoising
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:28:20 +09:00
17ea3f4856 feat(renderer): add GPU instancing with instance buffer and pipeline
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:14:12 +09:00
7dbd94ebab feat(renderer): add auto exposure with compute luminance and adaptation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:08:50 +09:00
bbb11d9d47 feat(ecs): add tick-based change detection with query_changed
Add per-component tick tracking to SparseSet. Insert and get_mut mark
the current tick; increment_tick advances it. World gains query_changed
to find entities whose component changed this tick, and clear_changed
to advance all storages at end of frame.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:00:50 +09:00
afb95c9fb1 feat(renderer): add forward transparency pass with alpha blending
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:52:17 +09:00
5b3b06c318 feat(ai): add NavAgent ECS component
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:43:59 +09:00
6121530bfe feat(audio): add AudioSource ECS component
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:43:48 +09:00
0cc6df15a3 feat(renderer): extend glTF parser with nodes, skins, animations support
Add GltfNode, GltfSkin, GltfAnimation, GltfChannel structs and parsing
for skeletal animation data. Extend GltfMesh with JOINTS_0/WEIGHTS_0
attribute extraction. All existing tests pass plus 4 new tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:38:25 +09:00
cccc54c438 feat(editor): integrate TTF font into UiContext with draw_text helper
Add ttf_font field to UiContext with draw_text and ttf_text_width
helpers that use TTF when available, falling back to bitmap font.
Load system TTF font (arial/consola/malgun) in editor_demo on startup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:14:05 +09:00
58bce839fe feat(editor): add TtfFont unified interface with glyph caching
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:12:02 +09:00
94e7f6262e feat(editor): add GlyphCache on-demand atlas manager
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:10:16 +09:00
3b0a65ed17 feat(editor): add glyph rasterizer with bezier flattening and scanline fill
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:09:58 +09:00
e008178316 feat(editor): add self-implemented TTF parser with cmap, glyf, hmtx support
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:07:52 +09:00
0857446d74 feat(editor): add AssetBrowser with directory navigation and UI panel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 13:36:23 +09:00
65b86c293c feat(editor): add inspector_panel with Transform, Tag, Parent editing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:57:23 +09:00
7fbc88b86f feat(editor): add hierarchy_panel with entity tree display and selection
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:55:18 +09:00
14fe532432 feat(editor): integrate 3D viewport into editor_demo
Render actual 3D geometry (cubes + ground plane) in the Viewport panel
using the existing mesh_shader.wgsl Blinn-Phong pipeline with orbit
camera controls (left-drag to orbit, middle-drag to pan, scroll to zoom).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:40:41 +09:00
9f42300109 feat(editor): add ViewportRenderer blit pipeline and shader
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:35:15 +09:00
6ef248f76d feat(editor): add OrbitCamera with orbit, zoom, pan controls
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:33:10 +09:00
ae20590f6e feat(editor): add ViewportTexture offscreen render target
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:31:28 +09:00
f7ef228b49 feat(editor): integrate docking into editor_demo
Add full-frame-cycle integration test to dock.rs (16 tests total) and
update editor_demo to use DockTree layout instead of a single panel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:09:53 +09:00
1571aa5f97 feat(editor): add draw_chrome for tab bars and split lines
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:57:18 +09:00
36fedb48bf feat(editor): add update method with tab click and resize handling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:54:57 +09:00
a642f8ef7e fix(editor): address code review issues in dock module
- debug_assert → assert for empty tabs invariant
- tabs.len() - 1 → saturating_sub(1) to prevent underflow
- Add #[allow(dead_code)] for scaffolded structs/constants

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:52:53 +09:00
14784c731c feat(editor): add dock tree data model and layout algorithm
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:49:53 +09:00
f522bf10ac feat(script): add Lua table interop, coroutines, sandbox, hot reload
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 07:33:00 +09:00
63e59c0544 feat(editor): add text input, scroll panel, drag-and-drop widgets
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 07:32:55 +09:00
9f5f2df07c feat(ai): add navmesh builder, funnel algorithm, dynamic obstacle avoidance
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 07:15:40 +09:00
1c2a8466e7 feat(audio): add OGG/Vorbis decoder, 24/32-bit WAV, Doppler effect
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 07:15:38 +09:00
0ef750de69 feat(net): add reliability layer, state sync, and client interpolation
- ReliableChannel: sequence numbers, ACK, retransmission, RTT estimation
- OrderedChannel: in-order delivery with out-of-order buffering
- Snapshot serialization with delta compression (per-field bitmask)
- InterpolationBuffer: linear interpolation between server snapshots
- New packet types: Reliable, Ack, Snapshot, SnapshotDelta

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:03:52 +09:00
dccea21bfe feat(ai): add funnel string-pulling and navmesh serialization
Add Simple Stupid Funnel (SSF) algorithm for optimal path smoothing through
triangle corridors. Refactor A* to expose find_path_triangles for triangle
index paths. Add binary serialize/deserialize for NavMesh and shared_edge
query method.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:00:35 +09:00