Repository navigation
Architecture & Changelog
Norz3n edited this page Oct 11, 2026
·
35 revisions
Technical breakdown of the Ray-MMD ReForge rendering pipeline and version history.
Ray-MMD ReForge utilizes a High Dynamic Range (HDR) Deferred Rendering pipeline:
graph TD
A[Geometry & Material Passes] --> B[G-Buffer MRT Generation]
B --> C[Octahedral Normal Encoding & Math Core]
B --> D[Shadow Cascades, PCSS & Contact Shadows]
B --> E[Screen-Space Global Illumination SSGI 3.0]
B --> F[Vectorized SIMD Screen-Space Reflections SSR]
B --> G[GTAO / HBSSDO Ambient Occlusion & Temporal Denoise]
B --> H[Directional Water Caustics]
B --> SV[Snowdrop Top-Down Sky Visibility & Heightfield AO]
SV --> I[HDR Deferred Lighting & EON / Dual-Lobe Shading]
E --> I
F --> I
G --> I
D --> I
H --> I
I --> J[Separable SSSS Scattering & Subsurface]
J --> K[Volumetric Clouds & Atmospheric Fog]
J --> L[AgX Filmic HDR Tonemapping]
L --> M[Bloom, Spectral Dispersion & Film Halation]
M --> N[SMAA / TAA / G-DLAA Anti-Aliasing]
N --> O[Final LDR Output to Viewport]
| Render Target | Format | Channel Data |
|---|---|---|
| GBuffer 5 | A8R8G8B8 |
RGB: Albedo, A: Material Type / Alpha |
| GBuffer 6 | A8R8G8B8 |
RGB: View-Space Normal (Octahedral Decoded), A: Smoothness |
| GBuffer 7 | A8R8G8B8 |
RGB: Specular / F0, A: Custom Data A |
| GBuffer 8 | A16B16G16R16F |
R: Linear Depth, G: Metalness, B: Custom Data B, A: Shading Model ID |
-
Physical Volumetric Fog & Atmospheric Godrays Subsystem (
Shader/Fog/*,FogController.pmx):-
Complete Subsystem Consolidation: Fully phased out and removed legacy fragmented fog assets (
AtmosphericFog,GroundFog,VolumetricCube,VolumetricSphere,Time of fog). Replaced with a unified, high-performance physical fog engine integrated directly into the deferred pipeline. -
Dual-Layer Analytical Height Fog (
FogCommon.fxsub): Closed-form dual-layer exponential fog model inspired by UE5 and Google Filament, accounting for base atmosphere and low ground mist with height falloffs, start distance gating, and maximum opacity clamping. -
Physically Raymarched Volumetric Godrays (
VolumetricFog.fxsub): Screen-space and world-space raymarched light scattering coupled directly to the directional sun zenith angle and Cascaded Shadow Maps (CSM). Employs Henyey-Greenstein forward phase scattering with Mie asymmetry tuning (MiePhase). - Mist Turbulence & Wind Drift: 3D procedural noise modulation creating dynamic ground mist swirls and animated wind velocity drift.
-
Cross-Bilateral Edge-Preserving Denoising (
FogComposite.fxsub): High-speed depth-aware composite and bilateral filter eliminating raymarching stepping slices while preserving sharp character contours. -
Standalone Purpose-Built Controller (
FogController.pmx): Dedicated 42-morph controller (Tools/generate_fog_controller.py) for comprehensive live tuning:-
Density & Opacity:
FogDensity+/-,GroundDensity+/-,MaxOpacity+/-. -
Color & Sun:
FogR/G/B+/-,SunR/G/B+/-,SunIntensity+/-,MiePhase+/-. -
Height & Distance:
FogHeight+/-,HeightFalloff+/-,GroundHeight+/-,GroundFalloff+/-,StartDistance+/-,CutoffDistance+/-. -
Godrays & Dynamics:
Godrays+/-,RayDensity+/-,MistNoise+/-,WindSpeed+/-.
-
Density & Opacity:
-
Complete Subsystem Consolidation: Fully phased out and removed legacy fragmented fog assets (
-
Google Filament PBR & Shading Algorithms:
-
Belcour & Barla (2017) Thin-Film Spectral Iridescence (
Shader/Lighting/BRDF.fxsub): Pre-integrated spectral evaluation using convolved Gaussians against CIE XYZ / Rec.709 color curves, rendering authentic physical rainbow wave interference for car coatings, soap bubbles, and pearl finishes. -
Kulla-Conty Energy Conservation for IBL (
Shader/Lighting/ibl.fxsub): Multi-bounce specular energy compensation recovering lost interreflection energy on high-roughness surfaces in both direct split-sum and analytical environments. -
Spherical Caps Intersection Specular AO (
Shader/Lighting/ibl.fxsub): Analytical cone-cone intersection (Oat & Sander / Jimenez 2016) replacing heuristic specular occlusion with exact solid-angle horizon clipping. -
Clear Coat Base Energy Conservation (
Shader/Lighting/skylighting.fxsub): Physical$(1.0 - F_c)$ energy conservation attenuating underlying diffuse and specular layers based on clear coat top reflection. -
Colored Penumbra (Filament SSS Emulation) (
Shader/Lighting/ShadingMaterials.fxsub): Adds saturated warm reddish/amber energy along terminator shadow boundaries on skin and cloth, eliminating harsh grey shadow borders. -
Specular Multi-Bounce AO for Metals (
Shader/Lighting/ShadingMaterials.fxsub): Jimenez specular multi-bounce formulation preventing dark cavity crushing and preserving authentic tinted specular bounce on colored metals (gold, copper, brass).
-
Belcour & Barla (2017) Thin-Film Spectral Iridescence (
-
Transmission & Media Physics:
-
Beer-Lambert Optical Absorption (
Shader/Lighting/ShadingMaterials.fxsub): Physical exponential depth attenuation ($T = e^{-\sigma_{\text{abs}} \cdot d}$ ) forSHADINGMODELID_GLASS, giving thick glass and deep water realistic body, mass, and optical density. -
4-Wavelength Spectral Dispersion (
$K_0..K_3$ ): Upgraded glass dispersion from simple 2-tap RGB split to 4-wavelength spectrum (Fraunhofer C, d, e, F lines at 486.1, 546.1, 589.3, 656.3 nm) with temporal jitter.
-
Beer-Lambert Optical Absorption (
-
Shadows & Filtering:
-
Screen-Space Contact Cone Tracing (SSCT) (
Shader/Shadows/ContactShadow.fxsub): Upgraded linear contact shadow marching to expanding cone tracing with distance attenuation and soft contact penumbra. -
Castaño (2013) 4-Tap PCF 3x3 Filter (
Shader/Shadows/PCSS.fxsub,CascadedShadowMap.fxsub): Integrated Ignacio Castaño's ultra-fast bilinear 4-tap PCF 3x3 reconstruction forSUN_SHADOW_QUALITY 1, boosting performance on lower-tier hardware.
-
Screen-Space Contact Cone Tracing (SSCT) (
-
Post-Processing & Color Science:
-
Gran Turismo 7 (GT7) Tonemapper (
HDR_TONEMAP_OPERATOR 11): Polyphony Digital's SIGGRAPH 2025 physically based tone curve calibrated to 250 nits paper white. -
AgX Golden Look (
HDR_TONEMAP_OPERATOR 12): Cinematic filmic response with warm golden highlight roll-off and rich tonality. -
TPDF Triangular RGB Dithering (
Shader/PostProcess/ColorGrading.fxsub): Implemented Morten S. Mikkelsen / Gjøl (2016) triangular probability density function (TPDF) blue-noise dithering, eliminating 8-bit banding without colored chroma grain.
-
Gran Turismo 7 (GT7) Tonemapper (
-
AMD D3D9 Anti-Aliasing Stabilization (
Shader/AntiAliasing/*): Introduced dedicatedShadingMapLDR(A8R8G8B8) render target to prevent texture format validation failures on AMD Radeon D3D9 drivers. - Area Light Attenuation & Glass Emissive Passthrough: Fixed TubeLight range clamping and RectangleLight subsurface attenuation; resolved emissive material passthrough behind refractive glass.
- Post-Process Undersampling Fix: Eliminated bloom and toon diffusion flare grid artifacts at high resolutions.
- Resource Leak Resolution: Cleared D3D9 TAA hazards, corrected root include paths, and resolved render target leaks.
-
Modern Tonemapping Operators: Added Blender 4.0 AgX Punchy (
HDR_TONEMAP_OPERATOR 9) and Khronos Group 2024 PBR Neutral (HDR_TONEMAP_OPERATOR 10). -
Unshadowed Eye Shading Model (
SHADINGMODELID_EYE 10): Specialized anime eye shading model preserving bright eye whites and iris vibrancy independently of direct cast shadows. -
Advanced Solar Lighting Improvements: Implemented Eddington solar limb darkening (
SUN_LIMB_DARKENING 1) for physical center-to-limb quadratic intensity profile across the solar disk ($0.533^\circ$ ). - NVIDIA D3D9 SM 3.0 Instruction Budget Fixes: Optimized register allocation in PCSS and shadow pipelines for GeForce Pascal/Turing architectures.
-
Next-Gen Percentage-Closer Soft Shadows (PCSS) & Contact Shadows (
Shader/Shadows/*):-
Physically Based Contact-Hardening (PCSS): Completely replaced VSM and legacy cascaded shadow filters with a true contact-hardening PCSS algorithm (
Shader/Shadows/PCSS.fxsub). Dynamically determines penumbra softness based on occluder-to-receiver distance and the physical angular diameter of the sun (SUN_LIGHT_RADIUS = 0.015f/$0.53^\circ$ ). -
Screen-Space Contact Shadows (SSCS): Short-range screen-space raymarching (
Shader/Shadows/ContactShadow.fxsub) grounds characters and scene geometry, eliminating the floating "Peter-Panning" effect and resolving razor-sharp sub-millimeter contact occlusion under feet, fingers, nostrils, and fabric folds. -
Adaptive Close-Up Antialiasing & Anti-Staircasing: Dynamically scaled shadow depth bias and Poisson sampling at close range (
lerp(1e-4, 5e-4, cascadeRatio)), completely eliminating macro staircasing, jagged shadow edges, and shadow acne during extreme close-ups on character faces and bodies. -
Seamless 4-Cascade Cross-Blending: Smooth analytical cascade boundary interpolation (
CascadeCrossBlend) across all 4 orthogonal cascades, eliminating hard cutoff seams and popping when the camera orbits or zooms. -
Cross-Bilateral Shadow Filtering: Edge-preserving cross-bilateral filter (
Shader/Shadows/ShadowBilateralBlur.fxsub) denoises Poisson jitter while strictly preserving crisp contact silhouettes along depth and surface normal discontinuities. -
Two-Sided Shadow Casting: Enabled
CullMode = NONEon shadow casters with G-buffer normal alignment, preventing light leakage on paper-thin geometry (hair ribbons, clothes, leaves).
-
Physically Based Contact-Hardening (PCSS): Completely replaced VSM and legacy cascaded shadow filters with a true contact-hardening PCSS algorithm (
-
Modular PMX Controller Suite (Decommissioning Monolith):
-
Monolith Decommissioned: The bloated, legacy
ray_controller.pmxhas been officially phased out and decommissioned from the active toolchain. -
Specialized Purpose-Built Controllers:
-
LightingController.pmx(14 morphs): Direct sunlight, ambient multi-light scaling, and decoupled ambient occlusion/subsurface/GI intensities (SunLight+/-,MultiLight+/-,SSAO+/-,SSAORadius+/-,SSDO+/-,SSSS+/-,SSGI+/-). -
CameraController.pmx(14 morphs): Cinematic lens DOF (apertureFstop+/-,FocalLength+/-,FocalDistance+/-,FocalRegion+/-, irisBladeCount-), optical artifacts (Vignette,Dispersion,DispersionRadius), and focus calibration (TestMode,MeasureMode). -
BloomController.pmx(8 morphs): Independent threshold, radius, and HSV grading (BloomColorAllH/S/V), plus diffraction star burst (BloomStarFade). -
DebugController.pmx: Real-time viewport diagnostics for G-buffer, PSSM, Cascades, ShadowMap, and SSGS raymarching.
-
-
Universal Shading Fallbacks: All analytical light shaders (
directional_lighting,point_lighting,spot_lighting, etc.) and post-processing passes support direct dual-binding with graceful fallback.
-
Monolith Decommissioned: The bloated, legacy
-
Clean 10-Domain Modular Shader Architecture (
Shader/*):-
Domain-Specific Organization: Completely reorganized the 54 loose shader files in
Shader/into 10 structured, domain-isolated packages:-
Shader/Core/: Base math, common routines, G-buffer layouts, samplers, textures, Monte Carlo, and velocity maps. -
Shader/Lighting/: Shading materials, BRDFs, LTC area lights, IBL, and sky lighting. -
Shader/Shadows/: PCSS, Contact Shadows, CascadedShadowMap, BilateralBlur, and ShadowMapGen. -
Shader/Occlusion/: GTAO, HBAO, SSDO, and SkyVisibility. -
Shader/GI/: Dedicated subpackages forGI/SSGI/andGI/SSPT/. -
Shader/SSR/: Consolidated trace, resolve, filter, blur, and visibility subshaders. -
Shader/Subsurface/: SSSS post-process scattering and UV-space diffusion. -
Shader/PostProcess/: HDR, Bloom, Bokeh, Lens Flares, Motion Blur, Tonemapping, and Color Grading. -
Shader/AntiAliasing/: SMAA, TAA, FXAA, DLAA, and EdgeLine. -
Shader/textures/: LUT textures and precomputed DDS maps.
-
- Zero Broken Includes: Replaced and validated 1447 includes across all 1027+ files in the repository with 0 broken references and no intermediate stub files.
-
Domain-Specific Organization: Completely reorganized the 54 loose shader files in
-
Refreshed Configuration (
ray.conf,ray_advanced.conf):-
Table of Contents & 11 Domain Banners:
ray.confnow features a structured index and clearly delineated sections for immediate navigation. -
Balanced Defaults:
SUN_SHADOW_QUALITYset to Medium (2048x2048) by default for silky-smooth real-time viewport performance while preserving physical PCSS penumbra quality. -
Cleaned Advanced Config: Removed obsolete, unused VSM variables (
mSunVSMMinVariance,mSunVSMLightBleedingReduction,mSunVSMFilterRadius,mSunLightSize).
-
Table of Contents & 11 Domain Banners:
-
Vectorized Screen-Space Reflections (SIMD SSRT) (
Shader/SSR/SSR_Trace.fxsub):- Consolidated screen-space ray tracing into an optimized linear marching core using SIMD 4-sample texture batching, eliminating GPU warp divergence and ensuring stable 60+ FPS performance across complex scenes.
- Implemented dynamic slope-based
CompareTolerancescaling directly proportional to the ray's depth rate-of-change, eliminating grazing-angle misses on tilted surfaces. - Added direct hit-tap binding to eliminate silhouette overshoots and jagged edge teeth.
- Built-in parametric screen-space border clipping to prevent offscreen ray wander.
- Smooth four-stage confidence fade (travel distance, grazing angle, far-depth fade, facing test) with FP16 NaN/Inf/negative rejection.
-
Consolidation & Hi-Z Subsystem Elimination:
- Fully removed
SSR_HiZ.fxsuband Hi-Z pyramid generation passes, consolidating all ray traversal into the unifiedSSR_Traceshader while freeing VRAM render targets.
- Fully removed
-
Per-Material SSR Blur Mask (
Shader/textures.fxsub,Shader/SSRBlur.fxsub,Shadow/SSR blur *.fx):- Added
SSRBlurMapoffscreen target and 11 presetsShadow/SSR blur 0.0.fx…1.0.fxallowing selective roughness/blur boost on specific material subsets without altering base PBR smoothness maps.
- Added
-
Diagnostic Visualization Controller (
SSR_DEBUG/SSRDebugController.pmx):- Added compile-time debug switch and dedicated 5-mode diagnostic PMX controller supporting real-time visualization of Raymarch Traversal Steps (hit/miss/budget), Confidence Heatmap, Hit Distance, Hit Normals, and Surface Roughness.
-
SSR Reflect-Source Visibility (
Shader/textures.fxsub,Shader/SSRReflectVisibility.fxsub,Shadow/SSR reflect visibility *.fx):- Added
SSRReflectMap(A8, clears to 1 = fully visible) — the source-side counterpart ofSSRMap.SSRMapcontrols how much a material receives reflections;SSRReflectMapcontrols how strongly the material appears in other materials' reflections. - Applied at the SSR trace hit point: reflected radiance and confidence are scaled by the hit surface's reflect visibility, so hidden materials fall back cleanly to the env/IBL specular instead of leaving dark holes.
- New per-material MME tab presets
Shadow/SSR reflect visibility 0.0.fx…1.0.fx(11 levels). The pass writes the preset constant only (mirrorsSSRVisibility.fxsub): material/texture alpha is deliberately not applied — the ShadingMap radiance is already alpha-weighted by rendering, so scaling again would double-fade sheer materials (sheer tights, hair tips) out of reflections. Suppression is purely preset-driven;0.0presets win everywhere because nothing is clipped.
- Added
-
Material-Driven SSR Roughness (
ray_advanced.conf,Shader/SSR/SSR_Resolve.fxsub):-
mSSRSmoothnessDefaultchanged from2.0to0.0: the previous default saturated gloss to 1.0 for every pixel, forcing mirror-sharp SSR regardless of material. SSR blur now follows each material's own smoothness (smoothness maps / MMD shininess), consistent with the IBL specular response. Set the bias back toward2.0to restore the legacy always-mirror look. - Roughness→pyramid LOD mapping strengthened from
pow(roughness, 2) * 3topow(roughness, 1.5) * 3(perceptual, UE-style mip selection): mid-gloss materials now reach the coarser pyramid levels instead of hugging the sharp full-res one.
-
-
SSR Self-Reflection Suppression (
Shader/textures.fxsub,Shader/SSRSelfVisibility.fxsub,Shadow/SSR self visibility *.fx):- Added
SSRSelfMap(A8, clears to 0 = no suppression). Flagged materials never bounce SSR between each other — the trace multiplies the receiver pixel's flag by the hit pixel's flag and scales confidence by1 - selfReceiver * selfHit— while flagged materials keep reflecting every unflagged material and stay fully visible in unflagged reflections. - New per-material MME tab presets
Shadow/SSR self visibility 0.0.fx…1.0.fx(11 levels; 1.0 = never self-bounce, in-between = proportional suppression). Preset-driven like the other two maps, nothing clipped, works on additive/semi-transparent materials. - Use case: attach
1.0to skin and hair to remove blurred self-smudging artifacts on face close-ups, where the reflected ray immediately re-hits nearby curved geometry of the same model inside the thickness window.
- Added
-
Motion-Adaptive Temporal Denoising & Normal Rejection (
Shader/SSGI/SSGITemporal.fxsub,Shader/SSPT/SSPTTemporal.fxsub):-
Motion-Adaptive Temporal Alpha: Implemented dynamic screen-space velocity evaluation (
pixelMotion = (uvCoord - prevUV) * ViewportSize). In static frames, alpha remains at0.05(95% history accumulation) for noise-free convergence. When camera motion is detected, alpha dynamically scales up to0.35, eliminating lighting ghost trails and lag. -
Surface Normal Rejection: Added bilateral normal alignment validation (
dot(curNormal, prevNormal)). Stale history across rotated surface geometry and curvature is immediately rejected to prevent false light bleeding across silhouettes. -
Velocity-Scaled Variance Clipping: Tightened the statistical neighborhood variance clamp box (
gammascales from1.25down to0.75under fast motion), aggressively cutting off delayed specular and indirect illumination trails. -
Continuous Elapsed-Time Dithering (
Shader/SSGI/SSGI_Trace.fxsub,Shader/SSPT/SSPT_Trace.fxsub): Decoupled ray direction and elevation dithering from animation time to continuous system elapsed time (elapsed). Ensures spatiotemporal dithering never freezes when animation playback is paused during manual viewport camera manipulation.
-
Motion-Adaptive Temporal Alpha: Implemented dynamic screen-space velocity evaluation (
-
Default Configuration Updates (
ray.conf):- Restored
SKY_VISIBILITY_ENABLEto Mode 2 (Cinematic 8-direction cone-tracing) by default.
- Restored
-
Skybox G-Buffer Clipping Fix (
Materials/material_skybox.fx):- Changed the default
alphafrom1.0to0.0to forceclip()during theMaterialMappass. This prevents the skybox from writing a solid black object (albedo = 0) to the G-Buffer, allowing the deferred rendering pipeline to cleanly skip the skybox and preserve the procedural sky generated in theMaintab.
- Changed the default
-
Deferred Ambient Occlusion Post-GI Composite (
Shader/PostProcessAOComposite.fxsub,ray.fx,Shader/ShadingMaterials.fxsub):-
Uniform Composite Darkening: Deferred SSDO computation and introduced
AOCompositePSrunning immediately afterSSGIFinalCombine. Ambient occlusion (SSAO/SSDO/GTAO) now uniformly darkens the fully composited radiance buffer (ShadingMap= direct + IBL + GI), preventing intense indirect GI bounces from washing out contact shadows, ambient occlusion, and geometric crevices. -
Decoupled Diffuse AO: Diffuse AO is decoupled from
ShadingMaterials.fxsubandSSGI_Resolve.fxsub/SSPT_Resolve.fxsubwhen GI is active, retaining an inline fallback whenGI_ENABLEis 0. Specular occlusion (bent-normal GTSO) continues to run duringShadingImageBasedLightingbefore SSR overlays. -
Material Passthrough: Glass and emissive surfaces cleanly bypass
AOCompositePS, preserving optical clarity and luminescent emission.
-
Uniform Composite Darkening: Deferred SSDO computation and introduced
-
Direct Solar Shadow Retention & Penumbra Gating (
Shader/SSPT/SSPT_Resolve.fxsub,Shader/SSGI/SSGI_Resolve.fxsub,ray.conf):-
Shadow Retention (
SSPT_SHADOW_RETENTION 0.40f): Implemented direct shadow gating in SSPT and SSGI resolves. Indirect GI and specular GI radiance are scaled againstShadowMapSampwith a quadratic penumbra response curve (lerp(SSPT_SHADOW_RETENTION, 1.0f, directShadow * directShadow)). -
Contrast Preservation: In direct sunlight (
directShadow == 1.0), 100% of indirect bounce is retained. Inside cast shadows (directShadow == 0.0), GI is scaled by the retention factor (default 40%), preventing indirect room bounce from bleaching or blowing out directional sun shadows while still catching subtle warm/cool ambient reflection.
-
Shadow Retention (
-
Escaped-Ray Sky Radiance Calibration (
Shader/SSPT/SSPT_Trace.fxsub,Shader/SSPT/SSPT_Common.fxsub):- Replaced the hardcoded 30% ambient sky radiance on unoccluded rays with a tunable
#define SSPT_SKY_LIGHT_AMOUNT 0.05f. Eliminates ambient skylight flooding into cast shadows and sheltered areas when characters stand in open outdoor environments.
- Replaced the hardcoded 30% ambient sky radiance on unoccluded rays with a tunable
-
Glass Material Resolve Bypass (
Shader/SSPT/SSPT_Resolve.fxsub,Shader/SSGI/SSGI_Resolve.fxsub):- Enforced an immediate
return 0.0f;early exit inSSPTFinalCombinePSandSSGIFinalCombinePSwhen encounteringmat.lightModel == SHADINGMODELID_GLASS. Because dielectric glass does not exhibit diffuse interreflection, bypassing diffuse GI accumulation eliminates milky matte fogging and preserves 100% optical transparency, specular highlights, and background IOR refraction.
- Enforced an immediate
-
Raymarch Transmission & False Bounce Fix (
Shader/SSPT/SSPT_Trace.fxsub,Shader/SSGI/SSGI_Trace.fxsub):-
Receiver Early Exit on Glass: Added an early check on the starting pixel's shading model (
receiverModel == SHADINGMODELID_GLASS) to instantly return0.0f, avoiding unnecessary raymarching computations for surfaces that do not gather diffuse GI. -
Glass Raymarch Hit Skipping (
continue): During screen-space raymarching in both SSPT and SSGI, surfaces tagged asSHADINGMODELID_GLASSare cleanly skipped viacontinue;before intersection gating. Rays seamlessly transmit through glass surfaces (windows, spectacles, display cases, bottles) without triggering false diffuse bounce reflections or casting artificial occlusion shadows onto surrounding geometry.
-
Receiver Early Exit on Glass: Added an early check on the starting pixel's shading model (
-
Skin Lighting & Shadow Calibration under SSPT/SSGI (
Shader/gbuffer.fxsub,Shader/ShadingMaterials.fxsub):-
Softened Ambient Occlusion (
SKIN_AO_STRENGTH 0.50): Rebalanced skin AO attenuation from0.75down to0.50. Restores natural subsurface scattering (SSSS) shadow falloff and prevents deep contact occlusion from crushing contact shadows and facial contours into blackness. -
Expanded Dermal Reflectance Range (
SKIN_GI_REFLECTANCE_LIGHT 0.68f): Broadened light skin dermal reflectance from0.42fto0.68f(and dark skin from0.15fto0.22f). Prevents authored MMD skin textures from being excessively dampened in the G-buffer and deferred albedo stage while preserving physical melanin/hemoglobin absorption limits. -
Enhanced Photometric GI Recovery (
SKIN_GI_COMPENSATION 0.25f): Raised skin reception brightness compensation from0.10fto0.25f, ensuring skin effectively absorbs and reflects bounced ambient radiance.
-
Softened Ambient Occlusion (
-
Screen-Space Path Tracing & SSGI Resolve Enhancements (
Shader/SSPT/,Shader/SSGI/):-
Physical Albedo-Driven Skin Multi-Bounce: Replaced the restrictive hardcoded
0.95fdamper with a dynamic albedo-driven multi-bounce interreflection curve (1.0 + (mat.albedo * 2.2) / max(1.0 - mat.albedo * 0.5, 0.1)). Eliminates the ~8x indirect radiance discrepancy between skin and surrounding fabrics/scenery in shaded environments. -
Linearized Cavity Occlusion: Eliminated aggressive quadratic crevice absorption (
AO^2) for skin inSSPT_Resolve.fxsubandSSGI_Resolve.fxsub, applying softened linear AO consistent with the physics of internal tissue light diffusion. -
Viewport-Boundary Escaped Ray Radiance (
Shader/SSPT/SSPT_Trace.fxsub): RemovedinsideScreengating on escaped rays (intersected < 0.25f). Rays exiting screen boundaries without intersecting geometry now smoothly sample boundary environment sky radiance rather than returning pure black, eliminating dark halos in close-ups and camera-adjacent angles. -
Rough Specular GI on Skin: Enabled subtle Fresnel-weighted indirect specular GI (
specGi * 0.25f) on skin models, preserving volumetric depth and glancing sheen in shadowed silhouettes.
-
Physical Albedo-Driven Skin Multi-Bounce: Replaced the restrictive hardcoded
-
Screen-Space Path Tracing (SSPT / RTGI) Pipeline (
Shader/SSPT/,ray.conf):- Ground-Up qUINT RTGI Implementation: Implemented a full Screen-Space Path Tracing global illumination engine inspired by Marty McFly's qUINT RTGI, delivering true ray-traced room radiance, rich contact bounces, and physical color bleeding directly on DirectX 9 Shader Model 3.0.
-
Monte Carlo Cosine-Weighted Hemisphere Sampling (
Shader/SSPT/SSPT_Trace.fxsub): Low-discrepancy hemisphere path tracing with golden angle rotation (SSPT_GOLDEN_ANGLE = 2.39996323) and 1D Bayer dither stratification. Employs Marty McFly's projected-axis orthonormal tangent frame formulation (BuildTangentMatrix) for seamless, artifact-free hemisphere orientation across steep surface curvature. -
Progressive Quadratic Ray Stepping & Depth Thickness Test: Progressive step expansion (
lambda = s * sqrt(s)) combining dense near-field precision for sharp contact shadows with broad reach for room-scale indirect bounces. Evaluates analytical depth thickness delta (delta = (pSample - pRay) * invThickness) to eliminate false light leaking through thin walls, fingers, and hair. -
Color Bleeding & Secondary Bounce Feedback (
SSPT_BOUNCES): Propagates radiant color transfer from lit surfaces and emissive materials onto surrounding geometry. Includes multi-bounce feedback loop simulating secondary bounces alongside smooth environment sky IBL fallback for escaped rays. -
Edge-Preserving Cross-Bilateral Wavelet Denoiser (
Shader/SSPT/SSPT_Filter.fxsub): Ported Ray-MMD's rock-solid separable cross-bilateral filter with Karis luminance outlier suppression and dyadic step progression (stride 1 -> stride 2). Reconstructs smooth, noiseless low-frequency indirect radiance while preserving micro-geometric silhouettes, normal creases, and surface contours. -
Physically Based Deferred Integration (
Shader/SSPT/SSPT_Resolve.fxsub): Fully integrates with Ray-MMD's G-buffer deferred pipeline, including Jimenez multi-bounce diffuse albedo interreflection, dermal absorption for skin (SSSS), glass Fresnel attenuation, cloth sheen, clearcoat base absorption, and rough specular GI (SSGI_SPECULAR_GI).
-
Unified Configuration & Presets (
ray.conf,Shader/SSPT/SSPT_Common.fxsub):-
New Default
GI_ENABLE 3 (RTGI): Activated SSPT / RTGI as the default out-of-the-box GI mode. Existing modes (1 : Accentand2 : Indirect) remain fully supported via modular routing inPostProcessSSGI.fxsub. -
Unified Quality Presets (
GI_QUALITY): Streamlined quality tiers into a single cohesive preset table shared across both SSGI and SSPT:-
1 : Low(12 Steps, 4 Rays) - Fast preview, minimum performance cost -
2 : Medium(12 Steps, 8 Rays) - Balanced real-time viewport performance -
3 : High(14 Steps, 12 Rays) - Rich indirect bounce for complex scenes -
4 : Cinematic(16 Steps, 16 Rays) - Maximum fidelity for high-resolution renders
-
-
Dedicated Configuration Defines in
ray.conf:SSPT_SAMPLE_RADIUS,SSPT_Z_THICKNESS,SSPT_IL_AMOUNT,SSPT_AO_AMOUNT,SSPT_BOUNCES,SSPT_BOUNCE_WEIGHT, andSSPT_FILTER_SENSITIVITY, with full dynamic control viaray_controller.pmx(SSGI+/SSGI-).
-
New Default
-
Physically Based Shading (BRDF) Innovations (
Shader/BRDF.fxsub,README.md):-
ClearCoat Analytical Refraction & Beer-Lambert Absorption: Implemented Snell refraction angle deflection (
RefractBlendClearCoatApprox) and thin-layer Beer-Lambert optical transmission through clearcoat (exp(-0.06 * max(thinDistance - 2.0, 0.0))). Propagates angular deflection to the substrate without tracing secondary rays, attenuating and tinting underlying specular while preserving energy. -
Two-Sided Wrapped Diffuse Transmission for Thin Geometry (
SubsurfaceShadingTwoSided): Implemented Steve McAuley (2011) energy-conserving two-sided wrapped transmission forSHADINGMODELID_SUBSURFACE. Provides physical backlit translucency for foliage, leaves, paper, cloth, and petals without needing screen-space probes or suffering G-buffer thickness artifacts. -
Dual-Lobe Skin Specular Optimization: Streamlined
DualLobeSkinSpecular(Jimenez et al. 2015) by evaluating Smith joint visibility and Fresnel once for the blended microfacet distribution instead of duplicating evaluations, reducing SM 3.0 instruction count while maintaining dual-profile realism. -
Analytical Eye Iris Caustic Highlight (
EyeIrisCaustic): Added Jimenez (2014) focused iris caustic highlight model for realistic eye rendering, evaluating focused illumination on the iris opposite incident light direction.
-
ClearCoat Analytical Refraction & Beer-Lambert Absorption: Implemented Snell refraction angle deflection (
-
Half-Vector Math, Roughness & IBL Anisotropy Optimization (
Shader/BRDF.fxsub,Shader/skylighting.fxsub):- Scalar Half-Vector Evaluation (Karis 2013): Eliminated expensive 3D vector normalization in specular half-vector evaluation, leveraging scalar identities where applicable to optimize ALU throughput.
-
Energy-Preserving Fully-Rough Microfacet Albedo Transfer: Unified
EnergyPreservingFullyRoughinto a scalar factor function, ensuring microfacet energy conservation at extreme roughness levels without albedo loss. - Lazarov 2013 Environment BRDF Polynomial Approximation: Fast, high-accuracy analytical approximation for image-based lighting specular response.
-
Stable Anisotropic IBL Dominant Direction (
ComputeAnisotropyDominantDir): Enhanced tangent frame calculations with pole singularity safety and roughness stretching, preventing tangent discontinuities under steep viewing angles.
-
Thin & Curved Glass Refraction Stabilization (
Shader/ShadingMaterials.fxsub,Materials/Transparent/material_force_glass.fx):-
Elimination of Background Object Duplication: Re-engineered screen-space refraction offset driven directly by view-space normal tilt (
screenNormal = float2(material.normal.x, -material.normal.y)). Planar glass viewed straight-on now has zero false lateral displacement, completely preventing ghosted and duplicate objects behind windows and showcases. -
Physical Thin-Glass Default (
customA = 0.5): Calibrated default refraction strength inmaterial_force_glass.fxfrom8.0down to0.5, delivering subtle, physically convincing thin-glass refraction without geometric warping. -
Smooth Chromatic Dispersion: Added balanced spectral separation (
iorR = ior + dispersion,iorB = ior - dispersion), adding natural optical dispersion along screen refraction gradients. -
Newton's Method Tracing Gating & Deflection Clamping: Gated high-order Newton's method screen-space refraction (
GLASS_REFRACTION) strictly to thick or curved geometries (customDataA > 1.2), with screen deflection bounded (clamp(deltaUV, -0.015, 0.015)) to eliminate disjointed image jumps.
-
Elimination of Background Object Duplication: Re-engineered screen-space refraction offset driven directly by view-space normal tilt (
-
Hair Shimmering & Sub-Pixel Specular Aliasing Fix (
Shader/BRDF.fxsub,README.md):-
Restored Standard Diffuse BRDF on Hair Geometry: Reverted experimental Kajiya-Kay diffuse override from
SurfaceEnergy. Solves distracting hair shimmering, sub-pixel specular aliasing, and crawling noise under camera movement. -
Burley 2012 Aspect Ratio Parameterization: Restored Burley's energy-preserving aspect ratio parameterization for anisotropic GGX specular (
SpecularBRDF_GGXAniso), producing smooth, continuous anisotropic highlights on hair strands and brushed surfaces without flickering.
-
Restored Standard Diffuse BRDF on Hair Geometry: Reverted experimental Kajiya-Kay diffuse override from
-
SSGI Performance & Precision Tuning (
Shader/SSGI/,README.md):-
Loop Optimization in Spatial Filter (
SSGI_Filter.fxsub): Replaced[unroll]with[loop]insideSSGIBlurPSacross bilateral blur passes. Mitigates aggressive DirectX 9 SM 3.0 code bloat, reduces shader binary size, and prevents register spilling for more efficient GPU thread scheduling. -
Early Depth-Thickness Gating (
SSGI_Trace.fxsub): Reordered ray traversal logic inSSGIPassPSso that adaptive depth thickness gating (ComputeThicknessWeight) is evaluated before fetching the G-buffer emitter normal (GetSSGINormal) and calculating backface dot products. Skips unnecessary texture lookups and trigonometry for geometry outside the valid thickness threshold. -
Balanced
GI_QUALITY 4Cinematic Preset (SSGI_Common.fxsub): Calibrated the highest SSGI quality tier from20 rays x 16 steps(radius 18) to16 rays x 14 steps(radius 16), delivering substantial frame-rate improvements with imperceptible difference in diffuse bounce coverage and stability. -
Attribution & Dead Code Cleanup (
SSGI_Common.fxsub,README.md): Removed unusedHalton3base-3 radical inverse routine and updated the SSGI technical attribution table inREADME.md.
-
Loop Optimization in Spatial Filter (
-
Dedicated
_realisticHashed Alpha Hair Variants (Materials/Hair/,Materials/Toon/Hair/):-
Separated Realistic vs Stylized Workflows: Base hair material presets across standard and toon libraries (
material_hair*.fx) now retain classic alpha cutout (HASHED_ALPHA_TEST_ENABLE 0). Stylized and anime-style models keep their sharp, crisp hair card silhouettes without subpixel stippling. -
40 New
*_realistic.fxPresets: Introduced dedicated*_realistic.fxshaders across the entire hair collection (14 base presets + 26 procedural metallic/silky/bonus presets) with Wyman & McGuire (2017) band-limited Hashed Alpha testing enabled (HASHED_ALPHA_TEST_ENABLE 1,HASHED_ALPHA_SCALE 1.0f). - Targeted Soft AA Strands with TAA: High-fidelity, dense strand-based or semi-realistic hair models can seamlessly opt into soft anti-aliased hair cards and subpixel reconstruction without affecting anime models in the same scene.
-
Separated Realistic vs Stylized Workflows: Base hair material presets across standard and toon libraries (
-
Anti-Aliasing Overhaul: SMAA Ultra+ & FXAA HQ (
Shader/SMAA.fxsub,ray.conf,ray_advanced.conf):- Native 1x Ultra SMAA Pipeline: Replaced the legacy broken pseudo-2x routing with a dedicated, high-performance 1x Ultra SMAA pipeline.
-
Linear Depth Predication (
Gbuffer8Map): UpgradedSMAAColorEdgeDetectionPSwith G-Buffer linear depth predication (SMAA_DEPTH_THRESHOLD 0.05f,SMAA_DEPTH_SCALE 3.0f). Accurately detects delicate silhouettes (fine hair tips, eyelashes, accessories, geometric boundaries) that pure color contrast fails to resolve. -
Dual-Axis Bilinear Blending: Re-architected
SMAANeighborhoodBlendingPSwith dual-axis bilinear sample weights (weight.xyandweight.zw). Completely eliminates diagonal jagged staircasing and crawling on thin hair strands and geometric edges. -
Subpixel Micro-Feature Reconstruction: Added dedicated subpixel reconstruction (
SMAA_SUBPIXEL_RECONSTRUCTION 1, weight0.65f) to reconstruct subpixel details and 1-pixel features without blurring or softening textures. -
FXAA Preset 12 HQ: Activated 12-sample FXAA quality preset with subpixel quality tuned to
0.75for superior edge coverage in FXAA mode.
-
Band-Limited Hashed Alpha Hair Cutout (
Materials/material_common_2.0.fxsub,Materials/Toon/material_common_2.0.fxsub):-
Zero-Grain Solid Interior: Solved the noisy "sand/stipple" degradation on hair. Stochastic alpha testing is strictly band-limited to a narrow subpixel boundary fringe (
[ALPHA_THRESHOLD - 0.12f, ALPHA_THRESHOLD + 0.12f]). Solid hair strand interiors (alpha >= 0.62f) remain 100% solid and opaque with zero noise, holes, or missing texels. -
Dave Hoskins Hash without Sine: Replaced legacy trigonometric noise (
sin(dot(...)) * 43758.5453f) with Dave Hoskins' polynomialHash31and power-of-two quantized scale (exp2(-floor(log2(maxDeriv)))per Wyman & McGuire, I3D 2017). Eliminates float precision loss, coordinate-dependent clumping, and swimming noise under camera movement on DirectX 9 SM 3.0. -
Pass Synchronization & Halo/Veil Elimination: Synchronized
Material2PSclipping withHashedAlphaClipand forcedmaterial.alpha = 0for opaque hair pixels. Completely eliminates the dirty semi-transparent hair-card veil/film over skin while ensuring hair geometry correctly writes toGbuffer8RT, preventing skin subsurface scattering (SSSS) dermal blood bleed onto hair silhouettes. -
Full Hair Library Coverage: Enabled
HASHED_ALPHA_TEST_ENABLE 1across all 14 base hair materials and all 26 procedural hair presets (Procedural Metallic,Procedural Silky, andProcedural Bonus).
-
Zero-Grain Solid Interior: Solved the noisy "sand/stipple" degradation on hair. Stochastic alpha testing is strictly band-limited to a narrow subpixel boundary fringe (
-
Studio Color Grading Engine & Dedicated Controller (
ColorGradingController.pmx,Shader/ColorGrading.fxsub,Shader/PostProcessHDR.fxsub):-
Pre-Tonemap Linear HDR 3-Way Split Toning: Independent control over Shadows (Lift), Midtones (Gamma), and Highlights (Gain) with per-zone Tint (
R/G/B), Contrast, and Saturation (0.0xdesaturation to4.0xboost). IncludesShadowLift+/-for black-level lift/crush andHighlightGain+/-for highlight intensity. -
Perceptual Naka-Rushton Luma Partitioning: Tonal zones partition based on compressed perceptual brightness (
$pLuma = \frac{luma}{luma + 0.18}$ ), smoothly mapping middle gray (0.18) to0.50. Calibrated thresholds (mColorGradingShadowMax = 0.45f,mColorGradingHighlightMin = 0.40finray_advanced.conf) ensure lit skin, hair sheen, specular reflections, and sky all receive natural highlight grading without clipping or tone-map desaturation. -
2D White Balance (Temperature & Tint): Planckian blackbody
Temperature+/-coupled with orthogonal Green/MagentaTint+/-, normalized by luminance to prevent unwanted scene exposure shifts. -
Smart Saturation & Color Wheel (
Vibrance&Hue): Non-linearVibrance+/-boosts muted/unsaturated tones while protecting already saturated colors and anime skin tones. Branchless 3D Rodrigues rotation (Hue+/-) enables full 360° global hue angle shifts in ~4 ALU instructions. -
Cinematic Creative Film Presets: Built-in one-touch looks with uniform dynamic branching (zero GPU cost when inactive):
TealOrange+,BleachBypass+,CrossProcess+, andMonochrome+. -
60-Morph Studio PMX Widget (
ColorGradingController.pmx): Cleanly organized across Eyebrows (Master/Vibrance/Hue), Eyes (White Balance & Shadows/Lift), Mouth (Highlights/Gain & Midtones/Gamma), and Other (Color Balance & Film Presets). Features non-destructivemax(...)binding withray_controller.pmx.
-
Pre-Tonemap Linear HDR 3-Way Split Toning: Independent control over Shadows (Lift), Midtones (Gamma), and Highlights (Gain) with per-zone Tint (
-
Unified Skin SSS Pipeline (Breaking Removal):
-
Single SSS Toolchain (
Shader/BRDF.fxsub):SubsurfaceShadingnow always runs the UESubsurfaceBxDFcheat path — WrappedDiffuse (w=1/3, n=1.5) + AO-scaled BackScatter + view-dependent InScatter + HSV-luminance-preserving Beer-Lambert transmission — plusSubsurfaceShadingBacklitGlow. Removed theSKIN_SSS_STYLEswitch along withSubsurfaceShadingPreIntegratedSkin,SubsurfaceShadingPennerSkin, and the deferred-path skin branch (all skin now shares the standard diffuse branch). -
Removed UE mobile skin trick (
SKIN_SHADOW_ROTATE/SkinRotatedNoL): The shadow-rotated terminator knob is gone from both shader andray.conf. -
Deleted
Shader/PreIntegratedSkin.fxsubandShader/textures/shadowLUT.bmp: The LUT-based machinery is no longer referenced anywhere.
-
Single SSS Toolchain (
-
Transmittance Authoring:
- Explicit sRGB transmittance constants across all skin materials — face skin
(238, 104, 94), body skin(220, 90, 80)— converted to linear internally byGetCustomDataB.
- Explicit sRGB transmittance constants across all skin materials — face skin
-
Texture-Space SSS Diffusion (
SSSS_TEXSPACE):-
Model UV-Space Irradiance (
Shader/SSSUVSpace.fxsub): Each opaque skin material renders its direct sun irradiance into the model's UV atlas once per frame. -
Constant Texture-Space Kernel (
Shader/PostProcessScattering.fxsub): Convolves the UV irradiance field with the Christensen-Burley diffusion profile across UV coordinates. Scatter radius remains invariant to camera distance and completely eliminates screen-space silhouette haloing and light bleeding into background geometry/hair. -
Robust Deferred Decode (
Shader/ShadingMaterials.fxsub): Replaces the Lambert base with the convolved irradiance at the packed G-buffer UV. Non-matching texels, alpha pieces, and multi-model collisions seamlessly fall back to screen-space SSSS (albedoErr < 0.25f). -
Target Lifetime & Filtering (
Shader/textures.fxsub,ray.fx):SSSUVLightMap,SSSUVLightTemp, andSSSUVAlbedoMapdeclaredsharedwithCLAMPaddressing,LINEARalbedo sampling, and frame-start clearing inDeferredLighting.
-
Model UV-Space Irradiance (
-
Pre-Integrated Skin Shading Fixes:
-
Uncorrupted Diffuse Reflectance (
Shader/BRDF.fxsub): Removed destructive Beer-Lambert transmittance multiplication that previously destroyed 99.8% of green and 99.99% of blue direct sunlight. -
Polynomial Safety Bounding: Added
saturateclamps on curvature, curva, and interpolation weights to eliminate negative polynomial extrapolation spikes. -
Backlight-Only Penner Translucency: Gated strictly to backlit hemisphere (
$N \cdot L < 0$ ) with quadratic falloff, eliminating red blobs on lit facial features. -
Smooth Geometric Curvature Scaling: Reduced normal derivative scale from
18.0fto2.0finMaterialPSandMaterial2PS.
-
Uncorrupted Diffuse Reflectance (
-
Full Static-Review Pass Across Shader Codebase:
-
Toon Material Common Re-Sync:
Materials/Toon/material_common_2.0.fxsubreplaced with PBR copy. Hex-tiling, micro-glitter, hashed alpha testing, detail normal map, and POM self-shadowing now work for all Toon-subtree materials. -
Per-Object Motion Blur Contract Repair: Fixed producer encoder to
velocity * 0.25 + 0.5matching consumer(v - 0.5) * 4.0decode. Isotropic screen-unit velocity length clamping. -
AA Tail Clean Ping-Pong (
ray.fx): Single-consumer pipelines route throughShadingMapTemp2to eliminate D3D9 feedback loops; upgraded TAA history target to HDRA16B16G16R16F. -
SSR Roughness Filter Alignment:
SSR_BlurY*passes use Y texel size for half-texel alignment shift, properly centering filter lattice on non-square viewports. -
Dead Code Cleanup: Removed orphaned
PostProcessColorGrading.fxsub,skybox_fog.fxsub,HexTiling.fxsub,cloud.tga, andnoise.png. FixedBOKEH_MODEfallback default. - ANSI Encoding Safety: Normalized comments to pure ASCII across 26 files (zero UTF-8 BOM hazards for MME).
-
Controller Bindings Verified: All 102
CONTROLOBJECTbindings verified against real PMX morph names viapymeshio.
-
Toon Material Common Re-Sync:
-
Authorable BRDF / Skin / SSS Knobs (
ray.conf,Shader/BRDF.fxsub):-
SPEC_LIGHT_SIN_ALPHA: SphereMaxNoH softening (de Carpentier 2017 / Decima Engine) treating point-ish lights as angular spheres to soften highlight edges. -
BRDF_FRESNEL_TYPE 1: Adobe F82 Fresnel (Kutz et al. 2021) preserving hue variation of colored speculars at mid angles. -
BRDF_CLOTH_VIS_CHARLIE 1: Full Estevez & Kulla 2017 exponential fit for grazing-angle cloth sheen falloff. - Authorable Skin Knobs:
SKIN_BACKLIT_STRENGTH/_G/_IOR(Henyey-Greenstein backlit forward glow),SKIN_SPEC_LOBE*(dual-lobe skin specular profile), andSKIN_SSS_MFP_SCALE(global mean-free-path multiplier).
-
-
Skin Dark-Blotch Elimination & Scale-Invariance:
- Translucency thickness probe gated to forward lobe only, preventing background occluder blotches.
-
$C^1$ Monotone Hermite Soft Knee Energy Budgets inShadingMaterialsandskylighting, eliminating desaturated gray-blue blotches. - Restored ratio form
deltaN/(deltaP + eps)in material subroutines for true scale-invariant geometric screen-space curvature.
-
Separable SSSS Wide-Diffusion Tuning Restoration:
- SSSS blur restored to direction-split perspective-correction state with 2D 48px kernel clamp and loose bilateral depth tolerance.
-
Skylighting Compile Fix (X3528):
- Flattened dynamic branch on alpha-material
ShadingMaterialcall containingddx/ddyto resolve ps_3_0 compile error X3528.
- Flattened dynamic branch on alpha-material
-
SkyVisibility Neutral Baseline & Bidirectional Controller Scaling:
- Re-calibrated default baseline occlusion intensity from 1.0 down to 0.60 (
mSkyVisibilityIntensity), preventing automatic saturation/clipping under covered geometry. - Re-mapped
Intensity+/SkyVis+morph to scale up to 1.35×, allowing artists to dramatically deepen macro overhead shadows when desired. - Re-mapped
Intensity-/SkyVis-morph to smoothly scale down to 0.0, enabling full attenuation and disabling of overhead occlusion. - Fixed downward normal penalty in
Shader/SkyVisibility.fxsubso it exclusively activates on downward-tilted undersides ($N_y < 0$ ) without falsely inflating occlusion on upright geometry or open outdoor walls. - Raised default ambient floor to 0.08 to prevent pitch-black artifacts in deeply covered spaces.
- Re-calibrated default baseline occlusion intensity from 1.0 down to 0.60 (
-
Separable SSSS Miniature Scale-Invariance & Normal Preservation:
- Restored scale-invariant bilateral depth tolerance (
max(linearDepth * 0.035f, 1e-4f)+ tap span), removing the hardcoded0.08floor that leaked blur across tiny/doll-size characters. - Clamped blur kernel footprint to 24px (
maxStep = 24.0f * ViewportOffset2), preventing close-up macro shots from swallowing miniature models into mush. - Upgraded normal rejection to power-law metric (
pow(saturate(dot(N1, N)), 1.25)), preserving smooth blur across organic limb curves while strictly rejecting backfaces and perpendicular geometry ($N_1 \cdot N \le 0$ ) across nostrils, eyelids, and fingers.
- Restored scale-invariant bilateral depth tolerance (
-
Top-Down Sky Visibility & Macro Heightfield AO (Snowdrop Engine / GDC 2016):
- Implemented directional horizon search and cone-tracing ambient occlusion (
Shader/SkyVisibility.fxsub,Shader/SkyVisibilityPass.fxsub). - Solves the longstanding ambient light leaking problem where outdoor skylight / ambient IBL illuminated covered spaces under canopies, bridges, roofs, porches, and open doorways.
- Dedicated controller SkyVisibilityController.pmx with morphs for fine-tuning intensity (
Intensity+/-), search radius (Radius+/-), ambient floor (Floor+/-), contrast curve (Contrast+/-), and center bone positioning. - Eliminated boundary clipping line and expanded occluder search footprint to 400 world units with distance falloff, fixing false overhead planar darkening.
- Correct pipeline pass ordering in ray.fx: evaluated strictly before SSGI to ensure physically grounded indirect bounce light.
- Implemented directional horizon search and cone-tracing ambient occlusion (
-
Skin Shading & Subsurface Diffusion (SSSS) Refinements:
-
Intrinsic Epidermal Baseline Wrap: Added wavelength-dependent baseline wrap (
baseWrap = float3(0.45, 0.22, 0.08)) inShader/BRDF.fxsub(SubsurfaceShadingPreIntegratedSkin), allowing red spectrum light to bleed 45% past the terminator into deep shadow on flat and cylindrical geometry (arms, torso, neck), eliminating harsh cutoffs. -
Continuous
$C^1$ Quadratic Terminator Envelope: Replaced non-differentiable tent falloff with smooth quadratic curvesaturate(1 - (N.L)^2), eliminating micro-artifacts and intensity ridges along shadow edges. -
Hardware Bilinear SSSS Convolution: Converted
SSSSBlurXandSSSSBlurYinray.fxfrom point sampling to hardware bilinear filtering, eliminating subpixel stepping and dither noise. -
Relaxed Bilateral Filter Weights (
Shader/PostProcessScattering.fxsub): Converted normal rejection weights to Half-Lambert metric (saturate(dot * 0.5 + 0.5)), increased scale-invariant depth tolerance, expanded close-up kernel clamp to 48px, and removed unblurred shadow blendback on skin. -
Curvature Regularization & Shadow Clip Protection: Clamped finite-difference denominator (
max(deltaP_sq, 1e-3f)) in material subroutines and bypassed early-outclip(shadow - 1e-5)on skin materials.
-
Intrinsic Epidermal Baseline Wrap: Added wavelength-dependent baseline wrap (
-
Next-Gen SSGI 3.0 Architectural Overhaul:
- Ground-up redesign of Screen-Space Global Illumination inspired by Unreal Engine 5 Lumen SSRT (
Shader/SSGI/SSGI_Trace.fxsub,Shader/SSGI/SSGI_Filter.fxsub,Shader/SSGI/SSGI_Resolve.fxsub). - Tom Duff et al. (2017) Orthonormal Tangent Basis: Branchless 8-instruction coordinate frame construction around surface normals without trigonometric functions.
- Stratified Halton (2, 3) Cosine Hemisphere Rays: Focused ray density where radiative transfer is mathematically greatest.
-
Per-Pixel IGN Rotation: Full
$[0, 2\pi)$ direction set rotation via Interleaved Gradient Noise with decoupled elevation and step jitter, eliminating radial banding and grazing self-intersections. -
Analytical Screen-Edge Clipping (
ClipRayToScreenEdge): Analytical ray step scaling to viewport boundaries with smooth vignetting and seamless IBL environment fallback. - Adaptive Depth Thickness Gating: Dynamic depth threshold test with backface rejection to prevent light leaks through fingers, ears, and thin walls.
-
Dyadic À-Trous Cross-Bilateral Reconstruction: 5x5 Karis luminance outlier rejection, dyadic stride
$1.0 \to 2.0$ , and tangent-plane distance edge-stopping (BilateralPlaneWeight) preserving gradients across tilted surfaces and character curves. - Calibrated Quality Presets: Low (4/12), Medium (8/12), High (12/14), and Cinematic (20/16).
- Multi-Bounce Fix: Corrected visibility term handling to prevent double attenuation when combining SSAO/SSDO with diffuse indirect light.
-
Repository Governance: Added GitHub Issue forms (
.github/ISSUE_TEMPLATE/), PR checklist, andCONTRIBUTING.md.
- Ground-up redesign of Screen-Space Global Illumination inspired by Unreal Engine 5 Lumen SSRT (
-
Practical Real-Time Hex-Tiling (Mikkelsen 2022):
- Integrated Morten S. Mikkelsen's stochastic hex-tiling algorithm (
Shader/HexTiling.fxsub) intoMaterials/material_common_2.0.fxsub. - Eliminates repetitive tiling patterns on large surfaces (terrain, grass, asphalt, rock, concrete, fabrics) using equilateral triangle decomposition and Dave Hoskins polynomial hashing without trigonometric precision bugs.
- Features luminance contrast blending for color maps and heightfield partial derivative (
$dH/duv$ ) slope blending for tangent normal maps. - Shared
HexTilingContextevaluates UV coordinates, barycentric weights, rotations, and partial derivatives once per pixel across Albedo, Normal, Sub-Normal, Smoothness, Metalness, and Occlusion channels. - Added Distance-Adaptive LOD Fade (
HEX_TILING_DISTANCE_LOD 1) to smoothly collapse to 1 texture sample at distance, saving GPU memory bandwidth. - Added Height-Blended Displacement (
HEX_TILING_HEIGHT_BLEND 1) using Frostbite/Unreal height-lerp for sharp, natural crevices.
- Integrated Morten S. Mikkelsen's stochastic hex-tiling algorithm (
-
Hashed Alpha Testing (Wyman & McGuire, I3D 2017):
- Replaced hard binary alpha cutout (
clip(alpha - threshold)) with scale-invariant stochastic spatial hashing (HASHED_ALPHA_TEST_ENABLE 1). - Combined with TAA history reconstruction, produces silky-smooth, soft anti-aliased transparency for anime hair tips, eyelashes, foliage, and lace while maintaining full deferred G-buffer depth, SSAO/GTAO, and shadow reception.
- Replaced hard binary alpha cutout (
- Detail Normal Maps & Micro-Surface Layering:
-
Multi-Spectral Pre-Integrated Skin Curvature SSS (Penner / Jimenez):
- Integrated multi-spectral wavelength wrap (
$w_r = 0.40, w_g = 0.18, w_b = 0.06$ ) directly into direct BRDF lighting, smoothly extending light into the shadow terminator up to$N \cdot L \le -0.35$ . - Added saturated chromatic blood-fringe dispersion along the shadow boundary, giving character faces, hands, and noses natural organic warmth and translucency.
- Preserved full energy conservation and separated forward skin diffusion from backward ear/thin feature transmission (
SubsurfaceTranslucency).
- Integrated multi-spectral wavelength wrap (
-
Volumetric Clouds 2.0 with Adaptive Empty Space Skipping:
- Implemented coarse adaptive stepping (
$\times 2.25$ stride) in empty air, reducing primary ray noise samples by more than 50% across open sky regions. - Added precision boundary refinement (
$0.75\times$ backstep) upon entering cloud density, preserving 100% of fine fractal wisps, multi-scattering, and Silver Lining without edge slicing. - Added early ray termination on exiting the 4.5 km atmospheric boundary.
- Implemented coarse adaptive stepping (
-
CineStill 800T Multi-Scale Film Halation:
- Upgraded filmic halation into a multi-octave diffusion model (blending 2nd and 3rd bloom tiers) simulating physical red wavelength back-scattering from the film polyester base.
- Added non-linear highlight overexposure response and silhouette edge contrast bleeding (
smoothstep(0.20, 1.10)). - Defaulted to
FILMIC_HALATION_MODE 2for the iconic warm crimson-amber glow on practical lights, neon, and specular glints.
-
Expanded 48-Preset Material Library (PBR & Toon):
- Added 24 brand-new material presets fully mirrored in
Materials/andMaterials/Toon/(48 files total):- Architecture: Brick, Concrete, Asphalt, Wet Asphalt, Parquet, Rough Wood, Ceramic Tiles, Polished Marble.
- Cloth: Leather Black, Latex, Denim, Wool, Stockings (Hashed Alpha), Lace (Hashed Alpha).
- Nature: Ground Dirt, Ground Mud, Snow (SSS + Micro-Glitter), Ice, Sand (Micro-Glitter), Tree Bark.
- Sci-Fi: Carbon Fiber (Anisotropic), Hologram (Emissive + Hashed Alpha), Cyber Grid, Diamond.
- All materials feature native Hex-Tiling, Hashed Alpha testing, and auto-albedo adaptation.
- Added 24 brand-new material presets fully mirrored in
-
Core Engine Performance Optimizations:
- Contact Shadows: Hoisted view-projection matrix multiplications out of raymarching loops into clip-space homogeneous lerp.
-
XeGTAO: Replaced costly trigonometric
cos/acosevaluations with square-root horizon identities and distance-squared early culling. -
Point & Spot Lights: Added early range clipping
clip(LightRange^2 - distSq). - Directional Lighting: Pre-scaled Vogel-disk PCF rotation vector outside the sample loop.
-
EON Diffuse BRDF: Hoisted reciprocal calculations out of
E_FON_approx. -
SSGI Raymarching: Replaced vector normalization divides with reciprocal square roots (
rsqrt). - Hexagonal Bokeh DoF: Precomputed blur distance and inverse margin factors outside the sample loop.
- Water Caustics: Statically precomputed Gerstner wave Hessian constants.
- G-Buffer Normal Mapping: Eliminated redundant texture fetches for HQ and Ultra normal modes.
-
McGuire 2014 2D DDA SSR Engine: Complete re-architecture of Screen-Space Reflections using Morgan McGuire & Michael Mara (2014) 2D digital differential analyzer (DDA) ray traversal. Integrated hybrid bisection and secant method root-finding with subpixel binary refinement search (
SSR_QUALITY 1..4). Removed jitter grain and contact gap under feet; glossy and mirror reflections resolve sharply at full LOD 0. -
Complete Removal of Legacy Hi-Z Subsystem: Fully eliminated all remaining hierarchical depth pyramid files (
HiZ_Traversal.fxsub,HiZ_Build.fxsub,HiZ_Common.fxsub,HiZ_Main.fxsub). Refraction and SSR now evaluate directly against native G-buffer depth. -
Overhaul of Volumetric Clouds & Skybox:
- Ported SA_DirectX 3.0 cumulus cloud model with Frostbite / Nubis multi-scattering lighting and dual Beer-Powder attenuation.
- Implemented spherical planetary Earth curvature and natural horizon projection for 60+ FPS unrolled raymarching.
- Added anti-tiling domain warping with golden-angle rotation octaves to eliminate repetitive cloud patterns across wide horizons.
- Calibrated MMD controller morphs (
Cloud+/Cloud-) to smoothly ramp from completely clear skies to lush cumulus formations without solid overcast artifacts. - Synchronized cloud top/bottom bounds with atmospheric fog godray transmission passes.
-
Percentage-Closer Soft Shadows (PCSS): Real-time contact-hardening soft shadows for cascaded directional sun maps (
SUN_SHADOW_PCSS_ENABLE 1..4). Evaluates adaptive blocker search and penumbra filtering with world-space continuity across cascade splits, eliminating cascade seams and light bleeding. -
Real-Time Directional Water Caustics: Implemented analytic wave curvature back-projection along sun direction (
WATER_CAUSTICS_ENABLE 1) with chromatic dispersion and dedicatedCausticsController.pmx(WaterHeight, Caustics intensity, and wave speed morphs). -
Energy-Preserving Oren-Nayar (EON) Diffuse BRDF: Exact implementation of the Portsmouth, Kutz & Hill (JCGT 2025) diffuse model (
DIFFUSE_BRDF_TYPE 1), preserving diffuse energy across high roughness angles. -
G-DLAA Anti-Aliasing (
AA_QUALITY 7): Hybrid geometric and directionally adaptive anti-aliasing preserving sharp silhouette lines and geometric details without temporal history lag. Fixed SMAA 1x routing. -
Cornea Parallax & Micro-Glitter Material Suite:
- Added true refractive cornea depth with iris parallax offset mapping (
ComputeCorneaIrisParallax). - Procedural multi-layer micro-glitter sparkle presets (
material_glitter.fx,material_glitter_gold.fx) with stochastic specular glint response. - Upgraded Charlie Sheen BRDF for microfiber and velvet cloth shading.
- Added true refractive cornea depth with iris parallax offset mapping (
- Octahedral Normal Encoding: Precision octahedral encoding/decoding for unit normal vectors in math core and G-buffer.
- FidelityFX CAS & Dithering Polish: Eliminated diagonal moiré patterns in CAS sharpening and normalized temporal bent normals in GTAO.
-
Ground-Truth Ambient Occlusion (GTAO & GTSO): Upgraded to reference XeGTAO architecture with cosine horizon integration, Jimenez multi-bounce color approximation, and material-level
SSAOMapvisibility masking. Eliminated background shadow halos and NaN singularities. - Disney Christensen-Burley 11-Tap BSSRDF: Multi-spectral subsurface scattering profile with strict incident energy budgeting and dermal chromatic dispersion along the shadow terminator.
- Parallax Occlusion Mapping (POM) Self-Shadowing: Self-shadow raymarching for deep relief displacement textures.
- Unified Heitz/Burley Anisotropic GGX Microfacet BRDF: Physical anisotropic reflection distribution for metals, hair, and brushed surfaces.
- Triangular Blue-Noise Dithering & DoF Early-Exit: Subpixel noise decorrelation to eliminate banding and optimization for in-focus DoF regions.
- Volumetric Light Shaft Occlusion: Depth-aware shadow occlusion integrated into atmospheric fog godrays.
- SSGI 1:1 Resolution & Hi-Z Decoupling: Completely rewrote the SSGI trace algorithm to use hybrid linear-quadratic raymarching at full 1:1 screen resolution, removing all Hi-Z dependencies and fixing the 10x10 fractional grid artifacts.
- Expanded Room-Scale Emissive Bounce: Doubled the maximum screen-space trace radius (up to 150m world radius), relaxed the quadratic falloff for emissive materials, and added a ray-progress fade to ensure smooth light boundaries without sharp screen-space cutoff rings.
-
Camera & Object Motion Blur: High-performance screen-space velocity motion blur supporting both camera view-projection history (Mode 1) and animated per-object skinned mesh vertex tracking via offscreen
VelocityMap(Mode 2), with 12-tap linear accumulation and shutter speed control. Fully decoupled from TAA with custom multi-stage render target pass routing (ShadingMapTemp2) so it operates smoothly across all anti-aliasing modes (FXAA, SMAA x1/x2, TAA, or disabled). - Screen-Space Global Shadows (SSGS): Long-range screen-space directional shadow raymarching with distance-adaptive penumbra dilation (up to 15m range). Casts soft proximity shadows between nearby characters and objects independently of shadow map resolution.
- Spectral / Chromatic Dispersion Bloom: Physically-grounded wavelength separation (Cauchy lens dispersion approximation) applied across downsampled bloom tiers, producing subtle to anamorphic chromatic rainbow fringes on high-intensity specular highlights and emissive sources.
-
Temporal HBAO Denoising: Temporal history accumulation with depth validation and 3x3 neighborhood box clamping for ambient occlusion (
HBAO_TEMPORAL_DENOISE), providing rock-solid contact shading in motion without shimmering. - Volumetric Fog & God Rays 2.0: Upgraded atmospheric fog and sun rays with Henyey-Greenstein forward phase scattering and dynamic per-frame temporal interleaved gradient noise.
-
Cinematic Cat's Eye Bokeh (DoF 2.0): Optical mechanical vignetting simulation for depth of field (
DOF_BOKEH_CATS_EYE), smoothly deforming circular bokeh discs into oval cat-eye shapes toward image edges. -
Filmic Halation (Film Emulsion Bleed): Physically-modeled 35mm photographic film light bleed (
FILMIC_HALATION_MODE), generating a subtle warm Kodak Vision3 red-orange halo specifically along high-contrast silhouette edges.
-
Community Toon Shadow Grading: A single
ToonShadowGradepipeline in the BRDF grades every CEL/TONEBASED shadow color, withray.confknobs ported from the community toon shaders — multiply/add grade and YIQ hue rotation (PAToon2/M4Toon2), low-saturation auto-tint so shadows over white clothes and skin read as tinted rather than gray dirt (M4Toon2), apow(albedo, n)self-power fallback for materials that define no shadow color (Jashin), a luminance-preserving warm push for anime skin shadows (T_ToonShader), and a silhouette rim light folded into the terminator before banding so it inherits the cel bands (Jashin). Float knobs gate through runtime ternaries with#ifndefdefaults — the HLSL preprocessor#ifis integer-only. -
Crisp Cel Ramp: Band transition widths tightened (0.035/0.025 → 0.02/0.015), cast-shadow hardening sharpened to
smoothstep(0.35, 0.65), the deep-shadow band nowlerp(c, c*c, 0.5)instead ofc*c(full squaring doubles chroma and reads burnt), and IBL ambient for toon materials quantized to 2 luma steps so the shadow fill stays flat. -
Materials/ToonLibrary: The entire material tree duplicated as ready-made cel-shaded presets —CUSTOM_ENABLE 8with per-category shadow colors (skin, hair including procedural presets, eyes, cloth, foliage, default lavender) — plus base cel and tone-based templates and a README.Editor/skipped;Programmable/WaterandWetnesscopied verbatim; allMAP_FROM 1/2texture references resolve inside the tree. See Toon Shading. - Fixed SSGI On Toon Receivers: The 4-step luma ladder in the GI combine zeroed bounced GI darker than 0.125 luma — which is essentially all bounce light — so CEL/TONEBASED materials received no SSGI at all. Toon receivers now take the generic Reinhard×albedo path; the double bilateral blur already keeps GI low-frequency enough not to smear the bands.
- Strengthened Contact Shadows: Decoupled from the Hi-Z traversal into a flat jittered linear march over a dual depth surface (freeing ps_3_0 temp registers in every lighting pass that inlines it); the trace range was lengthened 3× (up to 1.5 view-space units) with high-exponent visibility so micro-occlusion reads near sun-shadow darkness at typical camera distances, and occlusion now scales continuously with ray penetration — giving shadow edges a real penumbra instead of a frozen diagonal dither line.
-
Calibrated Skin GI Bounce: Skin's emitter contribution is clamped to a gain-invariant reference level (
SKIN_GI_EMISSION_SCALE 0.04) — boosting SSGI fills the room without amplifying skin into a light source, while skin-to-skin bounce still scales — and skin reception dropped its extra Reinhard compression, so SSGI+ lights skin as linearly as every other surface. -
Sane SSS Defaults & Grounded Skin: Fixed the swapped
mSSSSIntensityMin/Maxcontroller defaults (restored Min 0.04 / Max 0.02, matching upstream) soSSSS+/SSSS-widen/narrow the kernel as documented, and raisedSKIN_AO_STRENGTHto 0.75 so figures no longer glow in cast shadows and stay attached to contact occlusion. -
HDR Sky Fallback for SSGI: Sky radiance gathered at ray termination now samples the
EnvLightMapHDR environment projection (instead of the LDR tonemapped scene background) via 4 jittered taps with a stronger,SSGISkyLight-scaled weight — a small bright keyhole such as a window now fills the room instead of collapsing into a single streak. - Removed Legacy Matcap Layer: The optional matcap highlight — the last remaining feature of the upstream forward layer — was redundant under deferred PBR specular + IBL and has been dropped; the Main pass is now purely the alpha cutout into the scene buffer.
-
Deferred-Lighting Optimization Pass: Removed a duplicated contact-shadow trace in the directional-light pass that ran the 16-step ray twice per lit pixel and squared its darkening; replaced the sun-shadow 5×5 PCF grid (25 taps) with a rotated 12-tap Vogel disk at the same footprint — the previously discarded IGN rotation now actually decorrelates the pattern between pixels; LOD-0 gather steps read G-buffer depth and shading model in a single tap;
DecodeNormallost its per-decode branch in favor of a clamp. -
Removed Dead PCSS Code: The never-enabled
PCSS_SHADOW_ENABLEbranches (spot blocker search + penumbra filter, directional min/multiply selection) and their helpers (SearchRegionRadius,PenumbraRadius,ProjectToLight) are deleted — no behavior change, they never compiled in. Recoverable from git history if percentage-closer soft shadows ever get wired up for real. - Stability: Initialized diffuse/specular outputs in the area-light shadowless passes, preventing undefined values on the alpha path.
-
Forced-Transparency Presets:
Materials/Transparent/material_force_transparent.fxandmaterial_force_glass.fxforce the deferred transparent path on materials regardless of their source alpha — for models authored with opaque flags on see-through parts. - Hardened Cel Shading: CEL/Toon materials now evaluate through the terminator (deep-shadow band instead of a black back side with a hard line at nl = 0), take their band edges from geometry shadow only, harden incoming soft PCF/contact-shadow gradients, gate speculars into a crisp band keyed to the cel threshold, and luma-quantize IBL ambient to 1/4 steps so smooth ambient no longer breaks the bands.
- Suppression Presets Win Over Exclusion Clips: SSGI/SSAO/SSR visibility presets ≤ 0 now take effect on additive-blended and sub-0.01-alpha pixels that the exclusion clips previously skipped — suppressed materials no longer receive GI or act as GI emitters (e.g. emissive eyes glowing in dark scenes).
- SSS Energy Budget Raised to 1.4: Artistic glow headroom for the additive scatter term.
-
Compiler & Stability Fixes: Split the directional-light G-buffer decode into two stages to bring
LightSourcePSback under the ps_3_0 temp-register budget (X4505), repaired Hi-Z includes broken by MME main-fx-relative paths,[flatten]-guardedShadingMaterialfor gradient legality, and initialized diffuse outputs in shadowless light passes.
-
Tinted Glass Presets:
material_glass_color.fx,material_glasses_color.fx, andmaterial_plastic_color.fxinherit the MMD material diffuse color into transmission (ALBEDO_MAP_APPLY_DIFFUSE), with hue-preservingGLASS_TINT_EXPONENTcompression (0.25) so colored glass stays strongly transparent. -
Unified Alpha Cutout Threshold (0.5): All deferred passes (
main_ex_alpha,main_ex_mask,main_ex_noalpha,main_ex_with_sphmap) now use oneALPHA_THRESHOLD 0.5— pixels with alpha ≥ 0.5 render as opaque cutouts through the full deferred path (SSR, GI, and shadows apply to them) instead of falling into the forward-blended pass with its sorting artifacts. -
Wetness Ordered-Dither Alpha Clipping: The Wetness subsystem modulates its cutout threshold per pixel with Interleaved Gradient Noise (
AlphaDitherover VPOS) — semi-transparent texels near the threshold dissolve into a stochastic screen-door pattern instead of clipping along hard geometry edges.
-
Rough Specular GI (
SSGI_SPECULAR_GI): Reuses the denoised GI radiance as a Fresnel(F0)-weighted indirect specular term, filling colored indirect reflections on rough surfaces where mirror SSR misses and the IBL cubemap is too blurry. Automatically off for skin, glass, and emissive materials. -
Hi-Z Traced Glass Refraction (
GLASS_REFRACTION): Refracted rays are traced through the Hi-Z depth pyramid to the true background point, falling back to the flat screen-offset path on miss. Fully independent of GI/SSR — it builds its own Hi-Z pyramid when neither feature is active. -
Depth-Validated TAA History (
AA_QUALITY 6): Stores per-frame linear depth in a second render target and rejects stale history when the reprojected point mismatches what was visible last frame, killing ghosting on moving models and disocclusions. - Outdoor Sky Radiance Gather: SSGI rays escaping towards the background gather skybox radiance at ray termination for smooth ambient fill; temporal phase dither activates only under TAA, static spatial dither keeps SMAA/FXAA modes stable.
- Multi-Bounce Quadratic AO Attenuation: AO² curve applied to multi-bounce GI diffuse irradiance — HBAO contact shadows can darken corners deeply without GI wash-out.
-
Banding & Self-Illumination Fixes: White-noise hash jitter replaces IGN (whose fixed diagonal gradient survived the bilateral filter as banding without temporal accumulation), positive hemisphere cosine threshold eliminates coplanar floor self-sampling rings, jitters sky-fallback tap distances, samples MMD background via
ScnSampon sky pixels, and widens the indirect-mode denoiser. -
Optimized Hi-Z SSR & BRDF Energy Conservation: View-space near-plane ray clipping, roughness-adaptive initial mip level, temporal dither for contact reflections, cross-bilateral geometry-aware (depth/normal) roughness pre-filtering, and analytical multi-scattering energy compensation in
SpecularBRDF_GGX. -
Scale-Invariant Separable SSSS: Kernel-relative world-space tolerance and a 16px blur kernel clamp keep subsurface scattering correct on macro-shot miniatures; guards
normalize()NaN and marches translucency thickness probes past sky holes. -
Physical Dermal Reflectance & Bounded Skin GI Emission: Skin albedo clamped to real dermal reflectance (10–45%) once in
DecodeGbufferso every consumer (direct, IBL, SSS, GI) stays physical; additive SSS capped to incident irradiance (SKIN_SSS_ENERGY_BUDGET), IBL cavity light-bleed bounded (5.5x → 0.8x), skin bounce emission suppressed to 12% (SKIN_GI_EMISSION_SCALE), and scattered skin AO unified underSKIN_AO_STRENGTH. -
New Debug Controller Morphs:
SSGIEmissiveBoost,SSGIModeGain, andSSGISkyLighttuning knobs (stock at 0) in the Other panel, plus the previously dormant SSGI cone angle now wired to the gather radius. - Hair Whorl Fix: Anisotropic tangent degeneracy at the hair crown resolved.
- Hi-Z SSR Stabilization: Near-plane ray endpoint clamping (Z ≥ 0.05) eliminates negative-W projective inversions; adaptive mip-texel DDA stepping removes cell boundary oscillation and horizontal scanline noise; symmetric 2×2 box reduction offsets stop cumulative spatial drift across mip levels; smooth Hermite confidence weighting preserves grazing and downward-tilted floor reflections; blur kernel scale guarded against division by zero.
- Decoupled Occlusion: SSAO/HBAO no longer depend on the Hi-Z buffer, resolving reflection banding and specular occlusion cutouts.
-
Procedural Vegetation & Foliage Wind Engine: Real-time World Position Offset (WPO) vertex wind animation system built directly into
material_common_2.0.fxsubwith zero rigging/physics requirements. Includes 4 specialized presets inMaterials/Foliage/(material_leaves_tree.fx,material_grass.fx,material_vines.fx,material_palm.fx). All shadows, depth, reflections, and SSGI light bounces animate synchronously. -
Geometric Normal Variance Specular Anti-Aliasing: Toksvig / Kaplanyan microfacet filtering via screen-space normal derivatives (
ddx/ddy), eliminating specular flickering and pixel crawling on hair, jewelry, and detailed meshes. - Directional Bent-Normal Specular Occlusion: Cone-traced directional ambient occlusion (Lagarde/Frostbite 2014) for IBL/SSR, preventing sky reflections from glowing inside crevices and clothing folds.
-
Thin-Film Wave Interference & Iridescence: Airy multi-spectral optical phase shift for
ClearCoatmaterials (material_carpaint.fx), creating realistic rainbow pearlescence and soap bubble/oil sheen effects. -
Hi-Z Hierarchical Contact Shadows: Complete rewrite using hierarchical depth traversal (
HiZ_TraceRayDetailed), slope-scaled normal bias, and dual-hemisphere terminator fade (zero false wall artifacts). - Modular SSGI & Progressive Hi-Z LOD Gather: Decoupled trace, filter, and resolve passes with multi-scale Hi-Z pyramid raymarching, up to 75m world radius, and Jimenez multi-bounce indirect illumination.
-
SSGI Visibility Masking Pass: Dedicated
SSGIVisibilityMapoffscreen target with 11 mask presets (Shadow/SSGI visibility 0.0.fx...1.0.fx) to eliminate unwanted bounce light from emissive/anime eyes. - Physically Based Dermal Absorption Profile: Calibrated skin albedo reflectance and soft-knee photometric compression to eliminate unnatural fluorescent skin glow in bright GI scenarios.
- Calibrated Eye Emissive & Socket Occlusion Isolation: Restored expressive 0.85 eye iris self-illumination while exempting eye materials from deep orbital cavity SSDO darkening.
- Multi-Scale Hi-Z HBAO & SSDO: Direct MIP sampling from Hi-Z depth targets with sequential temporary register accumulation (<10 registers, resolving SM 3.0 X4505 limit).
- Physical SSSS Translucency & Geometric Depth-Thickness: Henyey-Greenstein forward transmission lobe, multi-spectral flesh absorption, and screen-space geometric thickness measurement along light rays.
- Normal-Preserving Bilateral SSSS Filter: Protects fine facial features (creases, eyelids, nostrils) from cross-boundary skin blur.
- 5-Tap Catmull-Rom Bicubic TAA: Unreal Engine 5 standard temporal anti-aliasing reconstruction with Karis HDR anti-firefly luma weighting.
- Karis 13-Tap Anti-Firefly Bloom Downsampling: 5 overlapping bilinear box filter groups eliminating specular shimmering and sparkling on metal and jewelry.
- Atmospheric & Volumetric IGN Dithering: Interleaved Gradient Noise anti-banding jitter across all godrays, sky fogs, and volumetric cube/sphere haze.
-
Debug Controller Refactoring: Moved
DebugController.fxto project root for seamless native MME include path resolution.
- Hi-Z Pyramid Integration: Consolidated conservative min-depth pyramid generation for screen-space effects.
- Hair & Skin BRDF Refinements: Minor energy conservation fixes and stability tuning.
- Modular Hi-Z Traversal Engine: Clean-room hierarchical depth ray traversal architecture.
- Optimized G-Buffer Packing: Channel remapping and precision upgrades for SM 3.0 compatibility.
- SSGI 2.0: Dual-mode Global Illumination with 75m world reach, 180-degree Lambertian wrap, and photometric soft-knee compression.
- Dual-Lobe Skin Specular: MetaHuman/UE5 dual-specular lobe model.
- Kajiya-Kay Hair BRDF: Anisotropic hair highlights with tangent shifts and transmission color bleed.
- AgX Tonemapping: Official Blender 4.0 6th-order polynomial color science (16.5 EV).
- Clean-Room Hi-Z SSR: 100% independent hierarchical depth pyramid raymarching.
- CONVEX_NORMAL Mode: Refractive corneal dome correction for anime eye meshes.
- Spectral Dispersion: Wavelength-separated RGB chromatic aberration for glass.
- Panavision Flares: Anamorphic blue streak profile with exponential falloff.
- HBSSDO integration and Contact Shadow enhancements.
- Subsurface scattering performance pass.
- Shadow cascade filter radius tuning.
Ray-MMD ReForge is an open-source next-generation PBR render engine for MMD based on Ray-MMD (Rui). Released under the MIT License.