Releases: gkjohnson/three-gpu-pathtracer
Releases · gkjohnson/three-gpu-pathtracer
v0.0.13
Changed
TRANSPARENT_TRAVERSALS
define totransmissiveBounces
uniform.- EquirectUniformInfo now defaults to a white environment map so lighting is present by default.
- Add "stepRayOrigin" function for reuse in the path tracer functions.
Added
- Transmissive materials now traverse more bounces than non transmissive materials for improved quality. See
transmissiveBounces
uniform. - Support for russian roulette path termination after 3 bounces. See the
FEATURE_RUSSIAN_ROULETTE
flag. - QuiltPathTracingRenderer to enable rending for the Looking Glass Display.
Fixed
- PathTracingSceneGenerator / Worker: include point lights and directional lights in the result.
- Translucent and transparent meshes incorrectly completely blocking area and punctual lights.
- Respect the Material "sheen" field.
- Incorrectly squaring the sheen term.
- Iridescence being incorrectly applied to materials.
New Demos
v0.0.12
v0.0.11
v0.0.10
v0.0.9
Added
- Support for
Material.flatShading
to render flat-shaded materials. - Support for randomization using Owen-scrambled and shuffled Sobol values enabling sample stratification and image in fewer samples.
- Support for directional lights, point lights.
Fixed
- Roughness and metalness maps not being assigned correctly.
- Case where textures using shared "Source" with different encodings were not treated as unique.
- Spot Lights no longer have a dark hot spot.
Changed
- Move "random" functions around.
v0.0.8
Fixed
- Three.js semver package version.
- Removed 3 texture sampler units to add room for future features, background map.
- Texture memory leak in
BlurredEnvMapGenerator
. - PathtracingSceneGenerator / DynamicPathTracingSceneGenerator: both generators now only include visible geometry in the result.
Added
GradientEquirectTexture
class for generating an equirect background texture with a gradient.AttributesTextureArray
class for storing multiple vertex attribute buffers in a sampler array to save texture units.
Removed
- Removed
FEATURE_GRADIENT_BG
define and bgGradientTop, bgGradientBottom uniforms. Use the new GradientEquirectTexture class instead. - PhysicalPathTracingMaterial: Removed
normalAttribute
,tangentAttribute
,uvAttribute
, andcolorAttribute
uniforms. UseattributesArray
to store those parameters, instead. MaterialsTexture.setSide
function.
Changed
MaterialsTexture
automatically uses the specified material side unless the object is transmissive - in which case double-sided is used.- Used textures are now reduced to just those with unique sources.
PhysicalPathTracingMaterial.uniforms.environmentRotation
from aMatrix3
to aMatrix4
.- Updated three-mesh-bvh to v0.5.19.
- Rework application of Fresnel based on Joe Shutte's Disney BSDF writeup resulting in improve handling of metalness brightness.
- Use a 1.1 fresnel by default for plastics since it matches GlTF models more exactly.
New Demo Features
v0.0.7
Added
- 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.
Fixed
- Diffuse materials looking too dark.
- Specular sampling to use perceptual roughness.
- Default specular and ior values to match three.js.
Changed
- Opacity support now requires setting
material.transparent
to true.
New Demo Features
- Physically Based Models
- Cellophane Elbow Crab Demo
- Glass Crab Demo
v0.0.6
Added
- 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
Changed
- PhysicalPathTracingMaterial: Default "environment intensity" from 2.0 to 1.0.
Fixed
- White hotspots at some glancing angles.
New Demo Features
- Area Light Demo
- Circular Area Lights
- Model Viewer Models Demo
- Add support for irradiance, sheen, specular color
- Spot Lights
- New demo
v0.0.5
Added
- 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.
Fixed
- Black renders on M1 Safari devices.
- Camera ray direction recision issues when scrolling far from the origin.
New Demo Features
- Area Light Demo
- New demo
- Model Viewer Models Demo
- New demo
- Interior Scene
- Equirect rendering support
- Material Ball demo
- Clearcoat material property
- Equirect rendering support
v0.0.4
Fixed
- 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.
Added
- Support for material alpha map.
- Ability to disable casting of shadows.
- Support for rendering with Orthographic cameras.
- Support for texture transform properties per texture.
New Demo Features
- Physically Based Models & Material Ball demos
- Add option to render scene with Orthographic camera
- Material Ball demo
- Add option to disable shadow casting per material