5232552aa4
feat(renderer): add normal mapping and procedural IBL to PBR shader
...
- Add tangent input (location 3) and TBN computation in vertex shader
- Add normal map sampling (group 1, bindings 2-3) for tangent-space normal mapping
- Add BRDF LUT binding (group 4, bindings 0-1) for specular IBL
- Add procedural sky environment function for diffuse/specular IBL
- Replace flat ambient with split-sum IBL approximation
- Add pbr_texture_bind_group_layout (4 entries: albedo + normal)
- Add create_pbr_texture_bind_group helper and flat_normal_1x1 texture
- Update create_pbr_pipeline to accept ibl_layout parameter (group 4)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 21:28:32 +09:00
ea8af38263
feat(renderer): add BRDF LUT generator and IBL resources
...
Implements CPU-based BRDF LUT generation using the split-sum IBL
approximation (Hammersley sampling, GGX importance sampling, Smith
geometry with IBL k=a²/2). Wraps the 256×256 Rgba8Unorm LUT in
IblResources for GPU upload via wgpu 28.0 API.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 21:19:09 +09:00
4d7ff5a122
feat(renderer): add tangent to MeshVertex with computation in OBJ parser and sphere generator
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 21:18:26 +09:00
8f962368e9
feat(renderer): integrate shadow map sampling with 3x3 PCF into PBR shader
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 21:03:31 +09:00
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
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
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
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
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
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
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