b5a6159526
feat(renderer): add ShadowMap, shadow depth shader, and shadow pipeline
...
Implements ShadowMap (2048x2048 Depth32Float texture with comparison sampler),
shadow_shader.wgsl (depth-only vertex shader), shadow_pipeline (front-face
culling, depth bias constant=2/slope=2.0), and associated uniform types.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 21:01:51 +09:00
1ce6acf80c
docs: add Phase 4b-2 shadow mapping implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 21:00:03 +09:00
62f505c838
fix(renderer): align LightsUniform to match WGSL vec3 padding (1056 bytes)
...
WGSL vec3<f32> requires 16-byte alignment, causing the shader to expect
1056 bytes while Rust struct was 1040. Added padding fields to match.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:57:10 +09:00
fdfe4aaf5f
feat: add multi-light demo with orbiting point lights and spot light
...
Fix pbr_demo to use LightsUniform/LightData instead of old LightUniform.
Create multi_light_demo with 5 PBR spheres (varying metallic), a ground
plane, 4 colored orbiting point lights, a directional fill light, and a
spot light from above.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:55:24 +09:00
b0934970b9
feat(renderer): add multi-light system with LightsUniform and updated PBR shader
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:50:13 +09:00
297b3c633f
docs: add Phase 4b-1 multi-light implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:48:06 +09:00
07497c3d80
feat: add PBR demo with metallic/roughness sphere grid
...
7x7 grid of spheres demonstrating PBR material variation:
metallic increases along X axis, roughness along Y axis.
Uses dynamic UBO pattern for both camera and material uniforms.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:44:29 +09:00
b09e1df878
feat(renderer): add PBR material, sphere generator, Cook-Torrance shader, and PBR pipeline
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:41:02 +09:00
cca50c8bc2
docs: add Phase 4a PBR rendering implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:38:54 +09:00
b0c51aaa45
feat: add asset_demo with Handle-based mesh management
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:33:03 +09:00
9a411e72da
feat(asset): add voltex_asset crate with Handle, AssetStorage, and Assets manager
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:29:55 +09:00
ee22d3e62c
docs: add Phase 3c asset manager implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:27:16 +09:00
801ced197a
feat: add hierarchy_demo with solar system scene graph
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:23:59 +09:00
c24c60d080
feat(ecs): add scene serialization/deserialization (.vscn format)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:21:11 +09:00
135364ca6d
feat(ecs): add WorldTransform propagation through parent-child hierarchy
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:20:46 +09:00
3e475c93dd
feat(ecs): add Parent/Children hierarchy with add_child, remove_child, despawn_recursive
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:19:28 +09:00
504b7b4d6b
docs: add Phase 3b scene graph implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:18:10 +09:00
ecf876d249
fix(many_cubes): use dynamic uniform buffer for per-entity rendering
...
Previous approach called write_buffer inside render pass which doesn't
work — GPU only sees the last value at submit time. Now pre-computes all
entity uniforms into a dynamic UBO and uses dynamic offsets per draw call.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:14:18 +09:00
19e37f7f96
feat: add many_cubes ECS demo with 400 entities
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:09:44 +09:00
59753b2264
feat(ecs): add World with type-erased storage, queries, and Transform component
...
Implements Task 3 (World: spawn/despawn, add/get/remove components, query/query2
with type-erased HashMap<TypeId, Box<dyn ComponentStorage>>) and Task 4 (Transform:
position/rotation/scale with matrix() building T*RotY*RotX*RotZ*S). 25 tests pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:07:17 +09:00
2d64d226a2
feat(ecs): add voltex_ecs crate with Entity, EntityAllocator, and SparseSet
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 20:05:15 +09:00
96cebecc6d
docs: add Phase 3a ECS implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:02:50 +09:00
df06615de4
feat: add model viewer demo with OBJ loading, Blinn-Phong lighting, FPS camera
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 19:56:28 +09:00
71f6081dc9
feat(renderer): add BMP texture loader and GPU texture upload
...
Implements parse_bmp (24/32-bit uncompressed BMP to RGBA), GpuTexture with
wgpu 28.0 write_texture API (TexelCopyTextureInfo/TexelCopyBufferLayout),
bind_group_layout, white_1x1 fallback, and 3 BMP parser unit tests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:52:35 +09:00
04ca5df062
feat(renderer): add Blinn-Phong shader, light uniforms, mesh pipeline
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:50:51 +09:00
ffd6d3786b
feat(renderer): add Camera and FpsController
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:49:23 +09:00
c7d089d970
feat(renderer): implement OBJ parser with triangle/quad support
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:49:23 +09:00
78dcc30258
feat(renderer): add MeshVertex, Mesh, and depth buffer support
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:47:59 +09:00
82e3c19b53
feat(math): add Mat4 with transforms, look_at, perspective
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:46:28 +09:00
c644b784a6
feat(math): add Vec2 and Vec4 types
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 19:45:28 +09:00
870c412270
docs: add Phase 2 rendering basics implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 19:41:12 +09:00
81ba6f7e5d
feat: implement Phase 1 foundation - triangle rendering
...
- voltex_math: Vec3 with arithmetic ops, dot, cross, length, normalize
- voltex_platform: VoltexWindow (winit wrapper), InputState (keyboard/mouse),
GameTimer (fixed timestep + variable render loop)
- voltex_renderer: GpuContext (wgpu init), Vertex + buffer layout,
WGSL shader, render pipeline
- triangle example: colored triangle with ESC to exit
All 13 tests passing. Window renders RGB triangle on dark background.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 19:34:39 +09:00
56abc42cf8
chore: add .gitignore for Rust workspace
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 17:48:43 +09:00
c5b71b32b7
feat: initialize cargo workspace with voltex_math, voltex_platform, voltex_renderer
...
Phase 1 Task 1 - workspace scaffolding with stub crates
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 17:47:02 +09:00
40cb38fdc5
Add Phase 1 implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 17:09:28 +09:00
ad3b1024b4
Update spec: resolve review issues (audio, scripting, GI, licensing)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 16:35:45 +09:00
d31a8a8429
Add Voltex engine design specification
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 16:31:19 +09:00