- Add linting for tsl/
- Add resetState() function to Renderer
- Add retroreflectivity support to MeshPhysicalMaterial
- Add intersectsFrustum() method to Object3D
- Add dispose() method to Object3D
- Add serialization/deserialization support for clipping planes in Material
- Add environment lighting support for retroreflective materials
- Add support for MinEquation and MaxEquation in WebGLBackend
- Add SunLight with cascaded shadow maps to WebGLRenderer
- Don't scale render target viewports by the pixel ratio in Backends
- Mark visibility dirty in BatchedMesh setGeometryIdAt()
- Fix stale index bookkeeping in AnimationObjectGroup uncache() and unsubscribe_()
- Make BezierInterpolant interpolate_() more robust
- Remove cached bind groups in _destroyBindings()
- Fix _destroyBindings() in Bindings
- Fix stale storage buffer attributes in Bindings
- Delete the disposed geometry's own attributes in Geometries
- Fix regression in ImageBitmapLoader load()
- Fix large isPowerOfTwo values in MathUtils
- Fix diffuse Fresnel blend for retroreflective in MeshPhysicalMaterial
- Handle empty spheres in Ray intersectSphere()
From Three.js
https://github.com/mrdoob/three.js/wiki/Migration-Guide#185--186 https://github.com/mrdoob/three.js/milestone/99?closed=1
- Global
- Add linting for tsl/. #34488 (@ycw)
- Clean up. #34499 (@Mugen87)
- AnimationObjectGroup
- Fix stale index bookkeeping in uncache() and unsubscribe_(). #34035 (@sean-kim05, @Mugen87)
- Backend
Renderer: AddresetState()function. #33877 (@pepperoni505, @Mugen87)
- Backends
- Don't scale render target viewports by the pixel ratio. #34333 (@mrdoob, @claude)
- BatchedMesh
- Mark visibility dirty in setGeometryIdAt(). #34096 (@wrangelvid)
- BezierInterpolant
- Make
interpolate_()more robust. #33934 (@Mugen87)
- Make
- Bindings
- Remove cached bind groups in
_destroyBindings(). #33954 (@Mugen87) - Fix
_destroyBindings(). #34014 (@Mugen87) - Fix stale storage buffer attributes. #34388 (@Mugen87)
- Remove cached bind groups in
- BufferGeometry
- Clean up serialization/deserilization. #34044 (@Mugen87)
- Core
- Fix some
copy()andtoJSON()implementations. #34083 (@Mugen87) - Don't check against default values in
toJSON(). #34178 (@Mugen87) - Initialize render targets with valid dimensions. #34380 (@204a, @Mugen87)
- Fix some
- Frustum
- Improve docs. #34093 (@Mugen87)
- Geometries
- Delete the disposed geometry's own attributes. #33939 (@sashankaryal, @Mugen87)
- ImageBitmapLoader
- Fix regression in
load(). #34151 (@Mugen87) - Avoid mutating loader options. #34500 (@cuishuang, @Mugen87)
- Fix regression in
- KeyframeTrack
- Serialize/deserialize tangent data. #34400 (@Mugen87)
- Material
- Add serialization/deserialization support for clipping planes. #34084 (@Mugen87)
- MathUtils
- Fix large isPowerOfTwo values. #34459 (@lprnmns, @Mugen87)
- MeshPhysicalMaterial
- Add support for retroreflectivity. #33949 (@bhouston)
- Fix diffuse Fresnel blend for
retroreflective. #34057 (@Mugen87)
- Object3D
- Add
intersectsFrustum(). #34065 (@Mugen87) - Add
dispose(). #34141 (@Mugen87)
- Add
- PMREMGenerator
- Replace separable blur with spiral blur on both renderers. #32367 (@mrdoob, @claude)
- QuadMesh
- Optimize rendering by bypassing MVP transforms. #33917 (@sunag)
- Ray
- New watertight intersectTriangle(). #33661 (@Mugen87)
- Handle empty spheres in intersectSphere(). #34016 (@sean-kim05)
- Renderer
- Don't use MSAA for fullscreen-passes. #33936 (@Mugen87)
- Fix operator-precedence bug. #33943 (@Mugen87)
- Fix computation of
_projScreenMatrix. #33947 (@Mugen87) - Clear inactive render lists. #33941 (@Mugen87)
- Warn when using removed PCFSoftShadowMap. 1b7d5f7aed0bef0303ccceeb036f977584c84330 (@mrdoob, @claude)
- Remove remaining PCFSoftShadowMap code. #33987 (@mrdoob, @claude)
- Clarify PCFSoftShadowMap warning. 4d0de92db18c49a44a821762a43420dbdb7c29e8 (@mrdoob, @claude)
- Use
WeakMapinInfo. #34045 (@Mugen87) - Simplify
_getFrameBufferTarget(). #34157 (@Mugen87) - Introduce
dispose()async. #34364 (@sunag)
- Renderers
- honor renderOrder with reversed depth buffer. #33945 (@LLiJJing, @claude)
- Refactor sort key negate. #33948 (@Mugen87)
- Optimize multi-scattering energy compensation. #34046 (@Mugen87)
- Optimize DFG LUT sampling. #34055 (@Mugen87)
- RenderTarget
- Introduce storage flags for MSAA. #33974 (@Mugen87)
- RenderTarget3D
- Fix texture setup. #34117 (@Mugen87)
- Shaders
- Fix multi-scattering energy compensation, remove BRDF_GGX_Multiscatter. #33983 (@mrdoob, @claude)
- Fix iridescence IBL multiscattering and transposed XYZ_TO_REC709. #33984 (@mrdoob, @claude)
- Improve energy conservation for diffuse and sheen lighting. #33985 (@mrdoob, @claude)
- Make comments more explicit. #34038 (@WestLangley)
- Add environment lighting support for retroreflective materials. #33995 (@mrdoob, @bhouston, @claude)
- Source
- Reanme to
TextureSource. #34202 (@Mugen87)
- Reanme to
- src
- Remove deprecated code. #33886 (@linbingquan)
- Src
- Improve retroreflection nomenclature. #34079 (@WestLangley)
- Clean up. #34161 (@WestLangley)
- Clean up. #34272 (@WestLangley)
- SunLight
- Clean up. #34258 (@mrdoob, @claude)
- Reduce cascade count to 2. 52184ab39216913eb2984cbcffaf0efe1b677378 (@mrdoob, @claude)
- TimestampQueryPool
- Clear timestamps Map on query resolution and dispose. #34243 (@sunag)
- TorusGeometry
- Forward thetaStart and thetaLength in fromJSON(). #34034 (@sean-kim05, @Mugen87)
- Tour
- Add Playground Projects and Templates. #34437 (@sunag)
- Vector3
- Clean up comments. #34037 (@WestLangley)
- WebGLAnimation
- Schedule next frame before the loop callback. #34448 (@aktanazat, @Mugen87)
- WebGLBackend
- Fix usage of
storeMultisampledDepthBuffer. #34142 (@Mugen87) - Add support for MinEquation and MaxEquation. #34146 (@tonybart1337)
- Make clear of default framebuffer more consistent. #34502 (@WilliamLiu-1997, @Mugen87)
- Fix usage of
- WebGLOutput
- Match depth texture format to stencil setting. #34008 (@sawa-zen, @Mugen87)
- Optimize MSAA support. #34030 (@Mugen87)
- WebGLRenderer
- Fix
clearLayerUpdates()call. #33989 (@Mugen87) - Tighten multi-scattering check. #34047 (@Mugen87)
- Fix color texture check for
BatchedMesh. #34056 (@Mugen87) - Optimize readRenderTargetPixels capability checks. #34183 (@dli7319, @Mugen87)
- Support Node Materials in
compile(). #34232 (@Mugen87) - Add SunLight with cascaded shadow maps. #34221 (@mrdoob, @claude)
- Make GL init more robust. #34299 (@Mugen87)
- Unbind PIXEL_PACK_BUFFER after async readback. #34321 (@TheBlek, @cursoragent)
- fix compileAsync() crashing when a tracked material is disposed mid-flight. #34378 (@kvvasuu, @Mugen87)
- Honor clipping in
compile(). #34507 (@Mugen87)
- Fix
- WebGLTextures
- Improve max textures warning. 7cab421ee0a0790bfc45e672fdf1702ff401e5f6 (@Mugen87)
- WebGLTextureUtils
- Delete
PIXEL_PACK_BUFFERafter copy. #34323 (@Mugen87)
- Delete
- WebGPU
- Allow read_write storage buffers and atomic ops in non-compute stages. #33626 (@SebastianBaltes, @claude)
- WebGPUAttributeUtils
- Fix interleaved buffer handling for integer attributes. #34098 (@Ryan-G7, @Mugen87)
- WebGPUBackend
- WebGPUBackend - Fix type of _getDefaultRenderPassDescriptor. #33969 (@cmhhelgeson)
- Check for render bundle/occlusion query combination. #34286 (@Mugen87)
- compare GPU bind groups by handle in _draw(). #34276 (@jjmhalew, @Mugen87, @claude)
- WebGPURenderer
- Use
UnfilterableFloatfor NORM16 textures. #33910 (@Mugen87) - Do not render shadow maps when precompile. #33924 (@Mugen87)
- Honor resolve flags in WebGPU backend. #33946 (@Mugen87)
- Fix stale occlusion queries. #33959 (@Mugen87)
- Make occlusion queries more robust. #33972 (@Mugen87)
- Add support for
TRANSIENT_ATTACHMENT. #33977 (@Mugen87) - Add missing
layerUpdatessupport toCompressedArrayTexture. #33996 (@Mugen87) - Support shared depth texture between multiple passes. #34042 (@sunag)
- Support dynamic swapping of the lighting system. #34050 (@sunag)
- Fix XR shadows. #34088 (@cabanier, @Mugen87)
- Introduce compileComputeAsync(). #32551 (@RenaudRohlinger)
- Fix native WebGPU XR camera selection. #34112 (@cabanier)
- Fix
copyTextureToBuffer()3D and array textures when using WebGL. #34129 (@Mugen87) - Fix transmission during WebXR rendering. #34114 (@cabanier)
- Enable MSAA for native XR layers. #34143 (@cabanier)
- Add MSAA support to WebXR WebGPU. #34120 (@cabanier)
- Support material blend color and alpha. #34154 (@Mugen87)
- Introduce refresh types for render objects. #34162 (@Mugen87)
- Add DirectRenderPipeline. #34166 (@cabanier, @Mugen87, @sunag)
- Fix draw offsets of
BatchedMesh. #34212 (@Mugen87) - Fix timestamp query limits. #34236 (@sunag)
- Refresh shared uniform buffers. #34283 (@cabanier, @Mugen87)
- Make cache key for bind groups more robust. #34288 (@Mugen87)
- Add clipping + stencil demo. #34325 (@Mugen87)
- Dispose render objects when the renderer is disposed. #34327 (@wcandillon, @Mugen87)
- Add missing material properties to state checks. #34406 (@Mugen87)
- Fix viewport regression with array cameras. #34424 (@Mugen87)
- Fix integer array texture bindings. #34422 (@WilliamLiu-1997, @Mugen87)
- Add
packed_4x8_integer_dot_productsupport. #34451 (@Mugen87)
- Use
- WebGPUUtils
- Refactor
getTextureSampleData(). #34121 (@Mugen87)
- Refactor
- WebXR
- Restore camera properties at session end. #34152 (@Mugen87)
Nodes
- Nodes
- Make node buffer binding labels deterministic. #34069 (@RenaudRohlinger)
- Add
renderer.debug.onNodeBuilderCreatedcallback. #34068 (@RenaudRohlinger) - Remove top-level side effects for better tree-shaking. #34332 (@mrdoob, @claude)
- Add
updateBeforeandupdateAftersupport for compute stage. #34401 (@sunag)
- Batch
- Support
positionPrevious. #34100 (@Mugen87)
- Support
- BitcountNode
- Fix GLSL Bitcount + add test coverage for BRDF/BSDF, depth, color space, type constructors, and bit operations. #34350 (@bhouston, @Mugen87)
- ContextNode
- Avoid redundant calls. #34251 (@sunag)
- DFGLUT
- Mention direct lighting use in headers, fix generator output path. d60e5bd8688dbef0c0efab901cb2ddae2ecd447b (@mrdoob, @claude)
- GLSLNodeBuilder
- TSL Bug: Fix bitcast(uint, 'int')'s GLSL polyfill return type. #34429 (@bhouston)
- TSL Bug: bitcast() fails unnecessary between int and uint vector types. #34430 (@bhouston, @Mugen87)
- LightsNode
- Introduce
getBuiltinLights. #33909 (@sunag) - Detect dynamic shadow map size changes. #34360 (@Mugen87)
- Introduce
- Line2NodeMaterial
- Implement
setupPosition(). #34005 (@Mugen87, @sunag)
- Implement
- MathNode
- Fix integer
min()/max()on the WebGL backend. #34018 (@mrcljx, @Mugen87) - TSL Unit Tests - Fix determinant() type inference reporting the matrix's own type instead of float. #34341 (@bhouston, @Mugen87)
- Fix integer
- MathUtils
- TSL Unit Tests - Fix sinc() removable singularity computing a literal 0/0. #34337 (@bhouston, @Mugen87)
- TSL Unit Tests - Fix gain() JS-ternary-on-a-Node bug and wrong base formula; fix pcurve() NaN exponent. #34340 (@bhouston, @Mugen87)
- MeshPhysicalNodeMaterial
- Fix specular nodes. #34164 (@Mugen87)
- ModelNode
- Support
ArrayCamerain highp matrix nodes. #34384 (@Mugen87)
- Support
- MRTNode
- Fix blend modes bug in
merge(). #34248 (@Mugen87) - Allow clear colors per attachment. #34250 (@Mugen87)
- Fix blend modes bug in
- NodeBuilder
- Check for reserved keywords. #33871 (@Mugen87)
- NodeFunction
- Filter initial spaces and comments. #34363 (@sunag)
- NodeManager
- Correctly dispose of background mesh. #34108 (@Mugen87)
- NodeMaterial
- Improve scene lighting enabled check. #34052 (@sunag)
- NodeMaterialObserver
- Honor
retroreflectiveand fix updates with nested render calls. #33992 (@mrdoob, @claude) - Add geometry version check. #34064 (@Mugen87)
- Fix stale render object cache. #34076 (@Mugen87)
- Monitor dispose for geometries and textures. #34287 (@Mugen87)
- Track shadow map sizes. #34361 (@Mugen87)
- Honor
- PMREMNode
- Handle unresolved PMREM during setup. #33881 (@jure)
- ReferenceElementNode
- Move into own file. #34245 (@Mugen87)
- RotateNode
- TSL Unit Tests - Fix rotate() 3D Euler-angle path rotating in the wrong direction. #34338 (@bhouston, @Mugen87)
- Add support for Euler Order. #34348 (@WestLangley)
- RTTNode
- Add
autoUpdate,resolutionScaleand preserve defaulttype. #34307 (@sunag) - Fix reset and restore renderer state. #34385 (@sunag)
- Keep the renderer state per instance. #34508 (@mrdoob, @claude)
- Add
- ScreenNode
- Refactor DPR handling. #34186 (@Mugen87)
- ShadowNode
- Fix
WeakMapusage. #33964 (@Mugen87) - Move shadow material and render object helpers to base class. #34312 (@sunag)
- Fix
- Skinning
- Support bone counts exceeding UBO limit. #34200 (@Mugen87)
- StorageTextureNode
- Preserve integer store values. #34423 (@WilliamLiu-1997)
- SubgroupFunctionNode
- TSL Unit Tests: Workgroups, StorageBuffer Atomics, Compute builtins, Barriers and Subgroups. #34431 (@bhouston)
- TSL Bug: Fix
subgroupAll()/subgroupAny()parameter length. #34432 (@bhouston) - TSL Bug: Fix subgroup broadcast first param length. #34433 (@bhouston, @Mugen87)
- TextureNode
- Add
isPlainGather(). #34119 (@Mugen87) - Refactor
isPlainGather(). #34201 (@Mugen87)
- Add
- ToonLightingModel
- Use the view space normal for the gradient irradiance. #34247 (@lazerg)
- TSL
- Respect texture format when sampling textures. #33875 (@sunag)
- Make
textureSize()more robust. #33925 (@Mugen87) - Inline transform of normal and tangent. #33938 (@WestLangley)
- Do not export
PMREMUtils. #33986 (@sunag) - Fixing rbmax / rbmin calculation of
getParallaxCorrectNormal(). #34007 (@Mugen87) - Fix update range clear bug in
Instance. #34022 (@explodi, @Mugen87) - Support individual
lightingperpass(). #34051 (@sunag) - Add
OnAfterObjectUpdate(). #34101 (@Mugen87) - Fix update of previous instance matrix data. #34107 (@Mugen87)
- Add
batchIndirectIndex. #34111 (@Mugen87) - Support primitive values in custom
structconstructors. #34113 (@sunag) - Build CodeNode includes as references. #34132 (@Ryan-G7, @Mugen87, @sunag)
- Remove export of 'append'. #34156 (@Methuselah96)
- Add
horizontalRotationoption tobillboarding(). #34197 (@sunag) - Add
4x8pack/unpack functions. #34263 (@Mugen87) - Update exports in Three.TSL. #34310 (@sunag)
- Honor type in
toAttribute(). #34347 (@Mugen87) - Add TSL GPU unit test coverage for LTC area lights, point light, SH irradiance, equirect/spritesheet UV, and post-processing utils. #34358 (@bhouston)
- Add warnings to GPGPU Nodes. #34291 (@cmhhelgeson)
- Add atomic workgroup array support. #34428 (@WilliamLiu-1997, @bhouston)
- Add missing clamp to
V_Neubelt(). #34449 (@Mugen87)
- UniformArrayNode
- Fix
update()overwrite. #33962 (@Mugen87)
- Fix
- WGSLNodeBuilder
- TSL Unit Tests - Fix faceForward() WGSL capitalization bug. #34342 (@bhouston, @Mugen87)
- WGSLNodeFunction
- Add missing WGSL-TSL type entry. #34099 (@Mugen87)
Addons
- Addons
- Disable depth buffer when possible. #34043 (@Mugen87)
- Fix typos. #34105 (@pailhead)
- Gaussian Splat renderer / loader using TSL for WebGPU/WebGL + glTF import. #33950 (@bhouston, @Mugen87)
- 3DMLoader
- add views, namedViews, and strings to userData. #34498 (@YCoCg)
- 3MFLoader
- Basic support of Beam Lattice. #34267 (@Mugen87)
- AST
- TSL & Transpiler: Support parameterless loops (do ... while). #34209 (@sunag)
- BufferGeometryUtils
- Let
toTrianglesDrawMode()modify geometries in-place. #33878 (@Mugen87) - avoid vertex hash overflow at zero tolerance. #34390 (@hamedrabah, @Mugen87)
- Let
- CityGenerator
- Improved city example. #33906 (@mrdoob, @claude)
- CSS2DRenderer
- Support Rotation. #33474 (@WestLangley)
- FBXLoader
- Support multiple clips in single timeline. #34167 (@Mugen87)
- Fix missing
userDatacopy. #34302 (@Mugen87) - Use global
URLinstead ofwindow.URL. #34328 (@hybridherbst)
- FirstPersonControls
- Make keyboard movement world axis aligned. f88964a17e29a61e26ad4981754bb68ebf62264d (@mrdoob, @claude)
- Restore R/F shortcuts and unify example look speed. #34485 (@mrdoob)
- GaussianSplatMesh
- Fix sort invalidation for transforms. #34233 (@gqfx, @Mugen87)
- Add support for per-mesh bounding box, frustum culling. #34254 (@gkjohnson)
- Inline splat data reads to improve bounding box generation performance. #34262 (@gkjohnson)
- Pack RGBA8 colors in storage buffers. #34255 (@gqfx)
- Add support for raycasting. #34284 (@gkjohnson, @bhouston)
- GaussianSplatPLYLoader
- PLYGaussianSplatLoader -> GaussianSplatPLYLoader. #34292 (@WestLangley)
- GaussianSplatUtils
- Simplify GaussianSplatUtils via ThreeJS math classes. #34223 (@bhouston)
- Global
- Remove deprecated code. #33880 (@Mugen87)
- GLTFExporter
- Cache normal maps. #33940 (@Mugen87)
- Implement ability to export with a copyright notice. #34138 (@Mirei3D, @Mugen87)
- GLTFGaussianSplatLoaderExtension
- Optimize Gaussian Splat loading. #34205 (@bhouston)
- View-dependent Gaussian Splatting via Spherical Harmonics. #34215 (@bhouston)
- GLTFLoader
- Fix EXT_mesh_gpu_instancing custom instance attributes shared across nodes. #33927 (@sebgoubier, @Mugen87)
- Skip skinning without skin attributes. #33988 (@0b5vr, @Mugen87)
- Fix KHR_texture_transform support when rotation is specified. #34033 (@zeux)
- HTMLMesh
- Improve form controls support. #34172 (@Mugen87)
- Inspector
- Stop keyboard events from leaking into the app. 0696807d586ab1c04b8fcedc71079559c07f1ddf (@mrdoob, @claude)
- Add
debounce(). #33932 (@Mugen87) - resolve bare three imports in TSL graph loader. #33965 (@bhushan6)
- Fix
TSLGraphEditorraycasting and refactor primary pass retrieval. #34133 (@sunag) - Use absolute positioning and add alignment configuration. #34137 (@sunag)
- Add split screen, list grid mode and revisions. #34140 (@sunag)
- Fix split screen overlay alignment on sub-window canvases. #34203 (@sunag)
- Add Color Grading extension and improve lifecycle API. #34216 (@sunag)
- Optimize Timeline tab rendering with virtual scrolling. #34230 (@sunag)
- Polish split screen divider and select dark theme. #34318 (@sunag)
- Implement disposal support and improve split screen handling. #34383 (@sunag)
- Support nonce and CSP compliance. #34396 (@sunag)
- LightProbeGrid
- Rename to LightProbeGridWebGL. #33911 (@mrdoob, @claude)
- Add WebGPURenderer version. #33913 (@mrdoob, @claude)
- Support incremental baking. #34486 (@mrdoob)
- LightProbeGridWebGL
- Fix SunLight integration. #34370 (@Mugen87)
- MaterialXLoader
- Materialx upgrade. #33485 (@bhouston, @cursoragent, @sunag)
- OrbitControls
- Improve
disconnect(). #34504 (@Mugen87)
- Improve
- PCDLoader
- Fix regex to remove comments. #34199 (@Virtycle, @Mugen87)
- PLYGaussianSplatLoader
- a dedicated loader for Gaussian splat PLYs. #34278 (@bhouston)
- Rename
- GaussianSplatMesh -> GaussianSplat. #34306 (@WestLangley)
- Rhino3dmLoader
- performance, PBR materials, editor import. #34180 (@fraguada)
- SimplifyModifier
- Refactor implementation. #34021 (@Mugen87)
- Sky
- Sky, SkyMesh: More realistic clouds. #33942 (@mrdoob, @claude)
- Fix FP16 overflow. #34058 (@Mugen87)
- Sky, SkyMesh: Slow down default cloud speed. 04679755feb07e1d7ad256307d5c4a7bb8043f92 (@mrdoob, @claude)
- Sky/SkyMesh
- Remove
upuniform. #34354 (@Mugen87)
- Remove
- SkyscraperGenerator
- Cheaper weathering noise. #33900 (@mrdoob, @claude)
- SPZLoader
- add support for SPZ version 4 in SPZLoader and add new SPZ v4 example. #34222 (@bhouston)
- SunLight
- Move to addons. #34326 (@mrdoob, @claude)
- TrackballControls
- Avoid updating
_movePrevtoo often. #34173 (@Mugen87) - Implemented multi-touch rotate. #34249 (@surdu, @Mugen87)
- Avoid updating
- Transpiler
- Add GLSL preprocessor directives and macro support. #34206 (@sunag)
- Add
arraysupport. #34208 (@sunag)
- TubePainter
- Properly transform normals. #34061 (@WestLangley)
- UnrealBloomPass
- Don't request depth buffer. #34036 (@Mugen87)
- Merge adjacent taps into bilinear fetches. #34479 (@mrdoob, @claude)
- USDLoader
- Resolve connected attribute values. #34309 (@cabanier)
- VolumeSlice
- Move property declarations. #34130 (@Mugen87)
- WebGLXRFallback
- Detect WebGPU XR support upfront. #34080 (@cabanier)
- WebGPURenderer
- Add SunLight support. #34259 (@mrdoob, @claude)
- XRControllerModelFactory
- Fix profile hot-swap. #34266 (@Mugen87)
Addons / Nodes
- TSL
- Add
softParticles(). #33887 (@Mugen87) - Support primitive values in
array(). #33929 (@sunag) - Introduce
OnBeforeRenderPipelineandOnAfterRenderPipelineand update context directly on material. #34025 (@sunag) - Fix angle bug in
hashBlur(). #34077 (@Mugen87) - Pass
stepSizetoRaymarchingBoxcallback. #34257 (@sunag)
- Add
- Addons
- Add
TAAUtilsfor shared functions. #34458 (@Mugen87)
- Add
- BloomNode
- Add faster blur strategy. #33923 (@Mugen87)
- ClusteredLightsNode
- Add
dispose(), optimizecreate(). #34375 (@204a, @Mugen87)
- Add
- CSMShadowNode
- Fix frame-late bug. #34213 (@Mugen87)
- DenoiseNode
- Dispose internal noise texture. #34418 (@204a)
- DepthOfFieldNode
- Fix render target leak on repeated setup. #34188 (@cl0nazepamm, @Mugen87)
- DotScreenNode/RGBShiftNode
- Make ctor more flexible. #34417 (@Mugen87)
- DualKawaseBloomNode
- Added DualKawaseBloomNode. #33920 (@mrdoob, @claude)
- Remove DualKawaseBloomNode. #33979 (@mrdoob, @claude)
- GTAONode
- Add Quadratic ray stepping, smooth sphere falloff. #33895 (@Mugen87)
- Improve code example. #33902 (@Mugen87)
- Clip-space ray marching and loop micro-optimizations. #33903 (@mrdoob, @Mugen87, @claude)
- Fix banding issue. #33919 (@marcofugaro, @Mugen87)
- Optimize code. #33930 (@Mugen87)
- Bake sample count into the shader. #33931 (@Mugen87)
- Dispose internal noise texture. #34369 (@204a, @Mugen87)
- Nodes
- More consistent
dispose()usage. #34419 (@Mugen87)
- More consistent
- OITPassNode
- Add node for Order Independent Transparency. #34253 (@Mugen87)
- Improve MSAA support. #34274 (@Mugen87)
- PassNode
- Fix pixel ratio in derived passes. #34453 (@Mugen87)
- SMAANode
- Fix and simplification. #34031 (@sunag)
- SSAAPassNode
- Use single-sample render targets. #34367 (@204a, @Mugen87)
- SSAONode
- Add
SSAONodeanddepthAwareBlur. #33921 (@mrdoob, @claude)
- Add
- SSRNode
- Clean up. #34377 (@Mugen87)
- VXGINode
- Voxel Cone Tracing for Diffuse GI. #34402 (@Mugen87)
- WebGLNodesHandler
- Reuse collected lights and preparation data. #34219 (@hybridherbst)
- Fix error with
getCanvasTargetin WebGLRenderer. #34303 (@hybridherbst)
- WoodNodeMaterial
- Specialize single-octave noise. #33970 (@mrdoob, @claude)
Docs
- Fix heading typo in CONTRIBUTING.md. 6cac81241961e3b68b0a5992cf325b4e9db8b3af (@mrdoob)
- Improve descriptions. #34027 (@Mugen87)
- Resolve reamining TODOs. #34029 (@Mugen87)
- Matrix4: Improve inline documentation. #34067 (@WestLangley)
- Fix typos and a wrong parameter name in JSDoc comments. #34169 (@xdroberto)
- fix broken TSL anchor links for roughnessNode and metalnessNode. #34170 (@latent-9)
- Drop JSDoc params the functions no longer take. #34226 (@darkdi)
- Drop three more JSDoc params in WGSLNodeBuilder. #34237 (@darkdi)
- Fix usage of
@classtag. #34244 (@Mugen87) - Fix broken cross-links to texture utils pages. #34271 (@FirmaSpring)
- Improve
BundleGroup. #34305 (@Mugen87) - Tour of TSL. #34085 (@sunag)
- IndexNode - Update JSDoc. #34413 (@cmhhelgeson, @Mugen87)
- LoopNode - Update JSDoc. #34415 (@cmhhelgeson, @Mugen87)
Manual
- Remove
i18n. #33997 (@Mugen87) - Add Addons section anchor. #34017 (@zackabrah)
- Add anchors to headings. #34020 (@zackabrah)
- Slowed down colourshift effect in scenegraph tutorial. #34048 (@chesterblack)
Examples
- Improve performance of clustered lights demo. #33901 (@Mugen87)
- webgl_postprocessing_pixel: Snap Objects to Pixel Grid. #33908 (@zalo, @claude)
- Add SSAO blur toggle in webgpu_postprocessing_ao. 70820b8d96b7cb2221a24c8170429b4169745a01 (@mrdoob, @claude)
- Optimise PNGs across the repo. #33882 (@Chubercik)
- Skip TRAA for SSAO in webgpu_postprocessing_ao. 84569eb27a3e070e6a4844e59e906ea0ee26c4cb (@mrdoob, @claude)
- Use FXAA in clustered light demo. #33935 (@Mugen87)
- Removed (wip) from webgpu. d51eb061e673cb9ec7f22c0277eefe925d7e2f05 (@mrdoob)
- Clean up. #33981 (@WestLangley)
- Clean up. #33994 (@Mugen87)
- Refresh external links in /examples. #34001 (@bhouston)
- Clean up. #34010 (@Mugen87)
- Properly transform normal vectors. #34015 (@WestLangley)
- Clean up. #34026 (@Mugen87)
- More clean up. #34028 (@Mugen87)
- Properly transform normal. #34039 (@WestLangley)
- Add
webgpu_deferredexample. #34049 (@sunag) - Optimize backdrop water demo. #34086 (@Mugen87)
- Refined the
webgl_volume_perlinwith bisection based refinement. #34090 (@mmmovania, @Mugen87) - Refined the
webgpu_volume_perlinwith bisection based refinement. #34094 (@mmmovania, @Mugen87) - Update webgl_volume_perlin.html. be6469cce5f91576c9efc8dc984c7ae3970197d3 (@Mugen87)
- Eliminate branch divergence in volume refinement loops. #34097 (@WestLangley)
- Clean up. #34148 (@Mugen87)
- Clean up. #34185 (@Mugen87)
- Change preset in backdrop area. #34195 (@Mugen87)
- Make example links clickable in title & info. #34207 (@bhouston, @Mugen87)
- Make material arrays demo more interesting. #34220 (@Mugen87)
- Optimize rain demo. #34229 (@Mugen87)
- Replace sun-like DirectionalLights with SunLight. #34228 (@mrdoob, @claude)
- Clean up. #34273 (@WestLangley)
- Update tags.json. 04008d6f255b9e2c92244244f484bd4508a14908 (@Mugen87)
- Rename Gaussian Splat Example. #34293 (@WestLangley, @Mugen87)
- Update webgl_lightprobes_sponza screenshot for two sun cascades. 5c81184a805495f5394aa50ad4c33d5f332a4b37 (@mrdoob, @claude)
- Add post-processing volumetric fog example. #34319 (@sunag)
- Remove
ecsy. #34359 (@Mugen87) - Clean up. #34408 (@Mugen87)
- Update tags. #34411 (@Mugen87)
- Optimize glTF asset. #34435 (@Mugen87)
- Optimize glTF asset. #34436 (@Mugen87)
- Improve tags. #34472 (@Mugen87)
- Clean up tags. #34473 (@Mugen87)
- Add Sculptor addon. #33164 (@mrdoob, @claude)
- Improve fog scattering trees and performance. #34491 (@mrdoob)
- Refine custom fog terrain and resource handling. 511de1d2ee7c89f534b457d72e4ea4a7b20b50d4 (@mrdoob)
- Update custom fog screenshot. e0119d1b87122d74701db34a04354e8979aff98e (@mrdoob)
- Use SunLight in WebGPU examples. #34476 (@mrdoob, @claude)
- Improve webgpu_materials_retroreflective. #33990 (@mrdoob, @claude)
Devtools
- Clean up, light count and 1.17. #34387 (@mrdoob, @claude)
- Object details, box highlight and 1.18. #34399 (@mrdoob, @claude)
Editor
- Don't use picker object with skeletons. #34062 (@Mugen87)
- Fix animation selection. #34322 (@Mugen87)
- Add group selection. #34144 (@Mugen87)
Tests
- Try to fix the webgpu async timeouts. #34225 (@pailhead, @claude)
- GPU-native unit tests for TSL. #34331 (@bhouston)
- fix lint error. #34345 (@linbingquan)
- Update screenshots. #34346 (@Mugen87)
- Add TSL GPU unit test coverage for math, packing, conversion, vector/matrix, logic/bitwise, color, tone mapping, and procedural helpers. #34349 (@bhouston, @Mugen87)
- Unit tests: import unbuilt source instead of build/ output. #34362 (@bhouston)
- Remove empty QUnit.module scaffolding. #34409 (@samuel7james)
- TSL Tests: Give each GPU unit test kernel its own random canary value. #34427 (@bhouston)
- Stabilize input and video screenshots. #34474 (@mrdoob)
Utils
- Dev: Improve
preview.js. #34407 (@Mugen87) - Support branches in changelog.js. f64ed0d50506064c99445e4b72ff0f82b387968e (@mrdoob, @claude)
- Improve changelog.js. 16e1f0369b3ea976a581ca651de868818c9f0a9b (@mrdoob, @claude)
- Rename Tour of TSL to TSL Guide. #34457 (@mrdoob, @claude)
- Update TSL links in llms build. c4ffe022f2a4f982b42b7da5af79a87066a138ae (@mrdoob, @claude)
Build
- Deprecate CommonJS build. #33891 (@mrdoob, @claude)
- Remove minified builds. #33893 (@mrdoob, @claude)
CI
- Comment on PRs with E2E screenshot failures. #33971 (@mrdoob, @claude)
- Add Core to bundle size report. #34330 (@mrdoob, @claude)
- fix grammar. #34482 (@linbingquan, @Mugen87)