Add SMAA, lens flares, and reflection probes - #316
Open
bdero wants to merge 8 commits into
Open
Conversation
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
bdero
force-pushed
the
bdero/fidelity-followups
branch
from
August 15, 2026 22:14
4538266 to
d39a0d1
Compare
Custom-shader authors had no way to learn the cross-backend rules (loop shape, shift semantics, the ES 3.00 toolbox, sampler budget, precision, resource liveness) without tripping over them one platform at a time.
The coat previously ignored area lights, so coated surfaces lost their panel highlight. Integrates the coat's own LTC lobe over the same rect with the coat normal, roughness, and dielectric reflectance.
The gather sampled last frame's scene color at current-frame UVs, so the bounce dragged a frame behind any camera motion. Each radiance tap now reprojects its view-space position through the view-projection that rendered the history, falling back to its own UV off-screen. Bounce from moving objects still lags a frame; see TODO(velocity-reprojection).
AntiAliasingMode.smaa runs enhanced subpixel morphological antialiasing (SMAA 1x), three post passes over the tone-mapped image: luma edge detection, blending weights over the reference area/search textures, and neighborhood blending. Cleaner edges than fxaa with far less texture blurring, supported on every backend. Ported from the Jimenez et al. reference implementation; the required license rides in smaa.glsl.
BloomSettings.lensFlare renders a chain of internal-reflection ghosts mirrored through the screen center plus a circular halo, both with radial chromatic dispersion, from a low bloom mip; the upsample stages blur and composite them with the rest of the glow. Ghost construction follows the pseudo lens flare technique; persisted through the fscene effects block.
ReflectionProbeComponent captures the scene's linear HDR lighting at its node into a local environment (six faces, assembled and prefiltered through the sky-bake machinery) and blends it into the image-based lighting by camera position through the environment cross-fade. Reflection lookups intersect the probe's box proxy and sample toward the hit, so reflections track the captured surfaces instead of floating at infinity. Scene.captureEnvironment exposes the capture on its own.
bdero
force-pushed
the
bdero/fidelity-followups
branch
from
August 16, 2026 12:23
d39a0d1 to
7452b2a
Compare
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.
Three fidelity features and the deferred follow-ups from #313. SMAA 1x joins the anti-aliasing modes (a port of the Jimenez et al. reference implementation), lens flares render ghost chains and a halo inside the bloom pyramid, and parallax-corrected reflection probes capture the scene into local environments through the new Scene.captureEnvironment, blended in by camera position. The clearcoat lobe now responds to rect area lights, the screen-space indirect light reprojects its radiance history so the bounce stays put under camera motion, and MATERIALS.md documents the portable shader rules custom-shader authors need. Three new smoke goldens: smaa, lens_flare, and reflection_probe.