Repository navigation
Lucent 2: glTF loading, HDRI importance sampling, layered BSDF, denoiser, temporal reprojection - #1
Merged
Merged
Conversation
- glTF 2.0 / GLB loader with PBR textures (base colour + alpha, metal-rough, normal, emissive), KHR_texture_transform and the transmission, ior, volume, clearcoat, sheen, emissive_strength and unlit material extensions. Drag-and-drop of files or folders, plus a file picker. - Radiance .hdr environments with alias-table importance sampling and MIS; the procedural sky is baked into the same path. - BSDF: clearcoat with its own normal, Charlie sheen with an energy LUT, IOR-driven F0, thin-walled and Beer-Lambert volumetric transmission, alpha cut-outs in the traversal. - SVGF-style a-trous denoiser guided by MRT albedo/normal/depth buffers. - Low-resolution preview while the camera moves; auto samples per frame. - Gallery of Khronos sample models and Poly Haven HDRIs, on-screen HUD. - Typed-array BVH builder, run on a worker for large models. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Each sample reprojects its primary hit into the previous view and reuses that pixel's history when depth and normal agree, so orbiting refines the image instead of restarting at 1 spp. History is capped per pixel by how view-dependent the surface is: mirrors and glass reuse none. - Per-pixel sample counts (4th accumulation target) drive the running mean and the denoiser's variance estimate; the RNG seed never repeats. - Preview resolution starts at full, only drops when frames exceed 40 ms, never below 50%, ignores throttled frames, and upsamples with Catmull-Rom. - Denoiser fades out by 1024 spp; HUD moved clear of the toast. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- New hero (Car Concept at 1024 spp) and gallery renders, denoiser before/after, measured performance table, updated architecture notes. - Gallery entries can set ground colour/roughness and camera framing. - GPU name in the stats panel is shortened from the ANGLE string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
Load real scenes
KHR_texture_transform, and thetransmission,ior,volume,clearcoat,sheen,emissive_strength,unlitextensions. Files requiring Draco, meshopt or KTX2 are refused with a clear message..glb, a.gltfwith its files, a folder, or an.hdr; plus an Open file… picker.Rendering
.hdrdecoder and alias-table environment importance sampling with MIS; the procedural sky is baked into the same path.Interaction
Speed
Measured (RX 7600, 1280×720, Chrome/ANGLE D3D11)
Bundle: 45.7 kB gzipped JS (+4.5 kB worker chunk), still zero runtime dependencies.
Checks
npm run lint,typecheck,test(69 tests, up from 36) andbuildpass locally.dist/loads gallery models (including the 1.5M-triangle chess set through the worker) with a clean console.Merging deploys GitHub Pages.
🤖 Generated with Claude Code