All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- DenoiseMaterial based on "glslSmartDenoise" to smooth the final render.
- Support for vertex colors.
- Support for attenuated transmission.
- PathTracingRenderer.alpha: Docs specifying premuliplied alpha behavior.
- Support for thin film transmission.
- Diffuse materials looking too dark.
- Specular sampling to use perceptual roughness.
- Default specular and ior values to match three.js.
- Opacity support now requires setting
material.transparent
to true.
- Support for sheen parameter support
- Support for iridescence parameter support
- Support for lights to the DynamicPathTracingGenerator
- Support for circular area lights
- Support for spot lights
- Add support for specular color and intensity control
- Support for IES Profiles on the new "PhysicalSpotLight" class
- IESLoader for loading IES profiles as textures
- PhysicalPathTracingMaterial: Default "environment intensity" from 2.0 to 1.0.
- White hotspots at some glancing angles.
- Support for equirect rendering with EquirectCamera.
- Support for area lights.
- Support for threejs compatible texture transforms.
- Support for Clearcoat properties.
- Support for arrays of objects passed to pathtracer scene generator.
- Black renders on M1 Safari devices.
- Camera ray direction recision issues when scrolling far from the origin.
- Textures not working correctly on Pixel 6 due to an issue with
floatBitsToInt
. PathTracingRenderer.alpha
not being able to be changed after rendering.- Improved reflective behavior for perfectly smooth surfaces.
- Case where partially transparent objects would cast full shadows.
- Support for material alpha map.
- Ability to disable casting of shadows.
- Support for rendering with Orthographic cameras.
- Support for texture transform properties per texture.
- Some black artifacts when rendering with depth of field.
DynamicPathTracingSceneGenerator.reset
not correctly resetting the class resulting in errors when calling "generate" again.
- Materials to use a texture instead of uniforms to cut down on max uniform errors.
SUPPORT_DOF
no longer needs to be explicitly set and will be toggled automatically based on the bokeh size parameter.- Removed direct support for environment blur with addition of MIS. Instead use
BlurredEnvMapGenerator
to preblur an environment map. - Antialiasing jitter is now performed per ray in the shader instead of via camera position jitter for improved AA.
GRADIENT_BG
define option toFEATURE_GRADIENT_BG
- Support for "matte" material flag.
- Support for Multiple Importance Sampling for the envionment map and an associated "FEATURE_MIS" flag.
BlurredEnvMapGenerator
to blur environment maps.- Support for rendering transparent backgrounds.
- Support for gradient environment colors. Use a
DataTexture
, instead.
- Support for material sidedness which must be set explicitly on the material uniforms. See
MaterialStructUniform.side
for more information. DynamicPathTracingSceneGenerator
to support skinned and morph target meshes.- A
PhysicalCamera
instance and associated shader uniforms and updates to support camera depth of field and shaped bokeh. PathTracingSceneWorker
as separate from the synchronousPathTracingSceneGenerator
to support more build processes.- Support for morph target, skinned meshes to scene generators.
PhysicalPathTracingMaterial
to have a "bounces" uniform rather than define.PathTracingSceneGenerator
is now synchronous.
- Case where material arrays did not work correctly.
Initial release with support for path tracing physically based materials with properties including metalness, transmission, roughness, opacity, alpha cutout, and more!