Three.js

Frameworks & LibrariesMIT

A JavaScript 3D library.

Latest r186 · by Three.jsWritten in JavaScriptWebsitemrdoob/three.jsRSS

Release activity

Release activity — 6 releases across 6 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026
MondayNo releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026No releases on Sep 14, 2026
TuesdayNo releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 20261 release on Sep 8, 2026
WednesdayNo releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 20261 release on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026
ThursdayNo releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026No releases on Sep 10, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026
SaturdayNo releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026No releases on Sep 12, 2026

6 releases in the last year

Changelog

r186

Latest
Added 9
  • 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
Changed 2
  • Don't scale render target viewports by the pixel ratio in Backends
  • Mark visibility dirty in BatchedMesh setGeometryIdAt()
Fixed 10
  • 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

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: Add resetState() 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)
  • Bindings
    • Remove cached bind groups in _destroyBindings(). #33954 (@Mugen87)
    • Fix _destroyBindings(). #34014 (@Mugen87)
    • Fix stale storage buffer attributes. #34388 (@Mugen87)
  • BufferGeometry
    • Clean up serialization/deserilization. #34044 (@Mugen87)
  • Core
    • Fix some copy() and toJSON() implementations. #34083 (@Mugen87)
    • Don't check against default values in toJSON(). #34178 (@Mugen87)
    • Initialize render targets with valid dimensions. #34380 (@204a, @Mugen87)
  • 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)
  • 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)
  • 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 WeakMap in Info. #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)
  • 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)
  • 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)
  • WebGLTextures
    • Improve max textures warning. 7cab421ee0a0790bfc45e672fdf1702ff401e5f6 (@Mugen87)
  • WebGLTextureUtils
    • Delete PIXEL_PACK_BUFFER after copy. #34323 (@Mugen87)
  • 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 UnfilterableFloat for 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 layerUpdates support to CompressedArrayTexture. #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_product support. #34451 (@Mugen87)
  • WebGPUUtils
    • Refactor getTextureSampleData(). #34121 (@Mugen87)
  • WebXR
    • Restore camera properties at session end. #34152 (@Mugen87)

Nodes

  • Nodes
    • Make node buffer binding labels deterministic. #34069 (@RenaudRohlinger)
    • Add renderer.debug.onNodeBuilderCreated callback. #34068 (@RenaudRohlinger)
    • Remove top-level side effects for better tree-shaking. #34332 (@mrdoob, @claude)
    • Add updateBefore and updateAfter support for compute stage. #34401 (@sunag)
  • Batch
    • Support positionPrevious. #34100 (@Mugen87)
  • 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)
  • Line2NodeMaterial
    • Implement setupPosition(). #34005 (@Mugen87, @sunag)
  • 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)
  • 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 ArrayCamera in highp matrix nodes. #34384 (@Mugen87)
  • MRTNode
    • Fix blend modes bug in merge(). #34248 (@Mugen87)
    • Allow clear colors per attachment. #34250 (@Mugen87)
  • 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 retroreflective and 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)
  • 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, resolutionScale and preserve default type. #34307 (@sunag)
    • Fix reset and restore renderer state. #34385 (@sunag)
    • Keep the renderer state per instance. #34508 (@mrdoob, @claude)
  • ScreenNode
    • Refactor DPR handling. #34186 (@Mugen87)
  • ShadowNode
    • Fix WeakMap usage. #33964 (@Mugen87)
    • Move shadow material and render object helpers to base class. #34312 (@sunag)
  • 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)
  • 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 lighting per pass(). #34051 (@sunag)
    • Add OnAfterObjectUpdate(). #34101 (@Mugen87)
    • Fix update of previous instance matrix data. #34107 (@Mugen87)
    • Add batchIndirectIndex. #34111 (@Mugen87)
    • Support primitive values in custom struct constructors. #34113 (@sunag)
    • Build CodeNode includes as references. #34132 (@Ryan-G7, @Mugen87, @sunag)
    • Remove export of 'append'. #34156 (@Methuselah96)
    • Add horizontalRotation option to billboarding(). #34197 (@sunag)
    • Add 4x8 pack/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)
  • 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)
  • CityGenerator
    • Improved city example. #33906 (@mrdoob, @claude)
  • CSS2DRenderer
    • Support Rotation. #33474 (@WestLangley)
  • FBXLoader
    • Support multiple clips in single timeline. #34167 (@Mugen87)
    • Fix missing userData copy. #34302 (@Mugen87)
    • Use global URL instead of window.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 TSLGraphEditor raycasting 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)
  • 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 up uniform. #34354 (@Mugen87)
  • 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 _movePrev too often. #34173 (@Mugen87)
    • Implemented multi-touch rotate. #34249 (@surdu, @Mugen87)
  • Transpiler
    • Add GLSL preprocessor directives and macro support. #34206 (@sunag)
    • Add array support. #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 OnBeforeRenderPipeline and OnAfterRenderPipeline and update context directly on material. #34025 (@sunag)
    • Fix angle bug in hashBlur(). #34077 (@Mugen87)
    • Pass stepSize to RaymarchingBox callback. #34257 (@sunag)
  • Addons
    • Add TAAUtils for shared functions. #34458 (@Mugen87)
  • BloomNode
    • Add faster blur strategy. #33923 (@Mugen87)
  • ClusteredLightsNode
    • Add dispose(), optimize create(). #34375 (@204a, @Mugen87)
  • 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)
  • 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 SSAONode and depthAwareBlur. #33921 (@mrdoob, @claude)
  • 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 getCanvasTarget in 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 @class tag. #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_deferred example. #34049 (@sunag)
  • Optimize backdrop water demo. #34086 (@Mugen87)
  • Refined the webgl_volume_perlin with bisection based refinement. #34090 (@mmmovania, @Mugen87)
  • Refined the webgpu_volume_perlin with 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)
View originalPermalink
How r186 went

r185

Added 3
  • Introduce transformNormalByInverseViewMatrix() in WebGLRenderer Shaders
  • Add createDataTexture() to DataTextureLoader
  • Add registerMaterial() and Material.fromJSON() to MaterialLoader
Changed 7
  • Harmonize errors
  • Update Three.WebGPU.js
  • Refactor inTangents and outTangents in BezierInterpolant
  • Support Transformed Geometry when Serializing in BufferGeometry
  • Optimize frustum computations in FrustumArray
  • Support new WICG HTML-in-Canvas API signatures in HTMLTexture
  • Improve handling of assets with unicode characters in Loaders and Editor
Fixed 7
  • Fix time warping bug in AnimationAction
  • Fix needsUpdate in TSL Compute Bindings
  • Fix attribute count mismatch in computeVertexNormals() and computeTangents()
  • Fix stale viewMatrix with multiple cameras in ClippingContext
  • Make sure IES texture can be exchanged in IESSpotLight
  • Fix FPS counter freeze when WebGLBackend query is unavailable in Inspector
  • Fix setValues() to honor Euler and Vector2 types in Material
Removed 1
  • Remove deprecated code
Deprecated 1
  • Deprecate scale(), rotate(), and translate() in Matrix3

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#184--185 https://github.com/mrdoob/three.js/milestone/98?closed=1

  • Global
    • Remove deprecated code. #33407 (@Mugen87)
    • Harmonize errors. #33588 (@Mugen87)
    • Update Three.WebGPU.js. ebd2a765edd45f419f3e530c5d24c83d2567af4f (@Mugen87)
  • AnimationAction
    • Fix time warping bug. #33617 (@Mugen87)
  • BezierInterpolant
    • Refactor inTangents/outTangents. #33515 (@Mugen87)
  • Bindings
    • TSL Compute: Fix needsUpdate. #33530 (@thelazylamaGit)
  • Box3
    • Improve docs. #33633 (@Mugen87)
  • BufferGeometry
    • Fix attribute count mismatch in computeVertexNormals() and computeTangents(). #33520 (@Mugen87)
    • Support Transformed Geometry when Serializing. #33641 (@WestLangley, @Mugen87)
  • ClippingContext
    • Fix stale viewMatrix with multiple cameras. #33578 (@Mugen87)
  • common.glsl
    • WebGLRenderer Shaders: introduce transformNormalByInverseViewMatrix(). #33351 (@WestLangley, @Mugen87)
    • Update inverseTransformDirection definition for clarity. #33431 (@WestLangley)
  • DataTextureLoader
    • Add createDataTexture(). #33705 (@Mugen87)
  • FrustumArray
    • Optimize frustum computations. #33804 (@Mugen87)
  • HTMLTexture
    • Support new WICG HTML-in-Canvas API signatures. #33788 (@ewewraw)
    • Annotate Chrome versions for each API code path. ff95cea91e31f5333ecb7c69edd6d1864ba626f8 (@mrdoob, @claude)
  • IESSpotLight
    • Make sure IES texture can be exchanged. #33502 (@dswhy)
  • Inspector
    • Fix FPS counter freeze when WebGLBackend query is unavailable. #33755 (@sunag)
  • LoadingManager
    • Loaders, Editor: Improve handling of assets with unicode characters. #33301 (@Mugen87)
  • Material
    • Fixed setValues() to honor Euler and Vector2 types. #33476 (@FE-kang, @Mugen87)
  • MaterialLoader
    • Add registerMaterial() and Material.fromJSON(). #33714 (@Mugen87)
  • Matrix3
    • deprecate .scale(), .rotate(), and .translate(). #33757 (@WestLangley)
  • Matrix4
    • Introduce faster version of determinant(). #33814 (@Mugen87)
    • Use determinant3x3() where appropriate. #33820 (@WestLangley)
    • Rename determinant3x3() to determinantAffine(). #33823 (@Mugen87)
  • npm
    • Exclude examples/fonts from the published package. #33744 (@mrdoob, @claude)
  • Object3D
    • Honor matrixWorldNeedsUpdate in updateWorldMatrix(). #33746 (@Mugen87)
  • ObjectLoader
    • Allow ObjectLoader to use custom loading managers in sync'd image loads. #33669 (@SeanCurtis-TRI)
  • PMREMGenerator
    • Avoid unnecessary depth buffers in render targets. #33585 (@shotamatsuda)
    • Apply await renderer.init() policy. #33587 (@Mugen87)
  • Raycaster
    • Fix setFromCamera() with ortho cameras. #33568 (@Mugen87)
  • Renderer
    • Export missing classes. #33623 (@pepperoni505)
    • Ensure valid camera state in compileAsync(). #33668 (@Mugen87)
    • Fix light invalidation by nested render calls. #33737 (@Mugen87)
    • Fix compileAsync(). #33784 (@Mugen87)
    • Improve render list processing of render bundles. #33811 (@Mugen87)
    • Merge update ranges if possible. #33813 (@Mugen87)
    • Fully support InstancedMesh with render bundles. #33839 (@Mugen87)
    • Improve texture check in _getShadowNodes(). #33845 (@sunag)
  • Renderers
    • Clean up logs. #33508 (@Mugen87)
    • Fix sort of render lists with reversed depth buffer. #33700 (@Mugen87)
    • Disable bump mapping for wireframe rendering. #33777 (@mrdoob, @claude)
  • RenderList
    • Fix occlusionQueryCount. #33765 (@Mugen87)
  • RenderObject
    • Guard against undefined geometry attribute in getAttributes(). #33460 (@RenaudRohlinger)
    • Properly compare interleaved buffer attributes. #33558 (@Mugen87)
    • Drop redundant morph target check. #33771 (@Mugen87)
    • Optimize getKeys(). #33805 (@Mugen87)
    • Fix handling of side. #33860 (@Mugen87)
  • ShaderLib
    • Fix formatting of main function declaration. #33696 (@pohlt)
  • Shaders
    • Update nomenclature. #33727 (@WestLangley)
    • Add deprecation note. #33729 (@WestLangley)
  • ShapePath
    • Update toShapes(). #33503 (@Mugen87)
    • Fix containment test. #33885 (@Mugen87)
  • SphereGeometry
    • Make pole vertices more robust. #33652 (@Mugen87)
  • Src
    • Clean up. #33590 (@WestLangley)
  • StereoCamera
    • Fix matrix computation. #33731 (@Mugen87)
  • UniformsGroup
    • Pool per-uniform update-range objects. #33427 (@RenaudRohlinger, @claude)
  • WebGLOutput
    • Handle antialias. #33446 (@mrdoob)
  • WebGLRenderer
    • Fix stale scratch framebuffers after context restore. #33533 (@vizerb, @Mugen87)
    • reset statistics (info.reset) before shadowMap.render. #33688 (@ldaoust01)
    • Improve lookups of shader stages. #33829 (@Mugen87)
    • Always bind position to location 0. #33841 (@Mugen87)
    • Fix normal maps with DoubleSide+ flat shading. #33859 (@Mugen87)
    • Fix normal maps with BackSide and vertex tangents. #33861 (@Mugen87)
  • WebGLTextureUtils
    • fix copyTextureToTexture() usage inside updateBefore(). #33736 (@marcofugaro, @Mugen87)
  • WebGLUniformsGroups
    • Optimize UBO updates to avoid GC churn. #33704 (@mrdoob, @claude)
  • WebGPUBackend
    • toggle comment causing import to appear in build. #33449 (@daigofuji)
  • WebGPUBindingUtils
    • Guard updateBinding() against destroyed GPU buffer. #33461 (@RenaudRohlinger, @Mugen87)
  • WebGPUPipelineUtils
    • reset shared render-pipeline descriptor before suspending in the async path. #33794 (@hsheth2, @Mugen87)
  • WebGPURenderer
    • Honor layerUpdates for compressed array textures. #33417 (@RenaudRohlinger, @sunag)
    • Ensure valid render pipelines when using depthBias. #33471 (@Mugen87)
    • Support all BPTC formats. #33482 (@Mugen87)
    • Surface uncaptured GPU errors and WGSL diagnostics. #33418 (@RenaudRohlinger, @claude, @sunag)
    • Restore framebuffer after clear. #33512 (@Mugen87)
    • Make structs work in vertex shader with WebGL. #33509 (@Mugen87)
    • Fix texture disposal for render targets. #33511 (@Mugen87)
    • Honor the Compositor Contract. #33457 (@WestLangley, @Mugen87)
    • Optimize submit() calls. #33513 (@Mugen87)
    • Support rendering to texture arrays. #33507 (@cabanier, @Mugen87, @elalish, @ycw)
    • Introduce descriptor classes and caching. #33525 (@Mugen87)
    • Fix mipmap filter mode. #33527 (@XorTdsc)
    • More descriptor usage. #33529 (@Mugen87)
    • Improve support for output types. #33299 (@sunag)
    • Add support for WebXR with WebGPU. #33583 (@cabanier)
    • Manage hardwareClipping on builder level. #33681 (@Mugen87)
    • Fix dispose of override material render objects. #33682 (@Mugen87)
    • Fix stale texture references in bindings. #33680 (@Mugen87)
    • Refactor material lighting setup. #33702 (@sunag)
    • Fix unsupported texture sample counts. #33722 (@sunag)
    • add lighting.enabled. #33721 (@sunag)
    • Fix getShaderAsync() render context retrieval. #33733 (@sunag)
    • Add WGSL polyfill for inverse(). #33745 (@Mugen87)
    • Fix displacement-map shadows. #33774 (@sunag)
    • Track frontFaceCW in needsRenderUpdate. #33780 (@LLiJJing)
    • Correctly honor 4-byte stride alignment. #33787 (@Mugen87)
    • Minor performance fixes. #33802 (@Mugen87)
    • Fully support ExternalTexture. #33816 (@Mugen87)
    • Scope sampler caching to bindings to prevent sampler collision on shared. #33847 (@sunag)
    • Improve Sampler disposal. #33850 (@Mugen87)
    • Fix background rotation with nodes. #33892 (@Mugen87)
    • Fix environment rotation with nodes. #33904 (@Mugen87)
  • WebGPUUtils
    • Cache preferred canvas format. #33800 (@Mugen87)
  • XRManager
    • Use foveateBoundTexture() to enable foveation. #33484 (@cabanier)

Nodes

  • Nodes
    • Fix toConst() usage in Camera. #33831 (@Mugen87)
  • ColorAdjustment
    • Add max() for outputs. #33854 (@sunag)
  • InstanceNode
    • Sync update ranges in updateBefore. #33615 (@thejustinwalsh, @Mugen87)
  • Line2NodeMaterial
    • Refactoring, use native node material hooks. #33689 (@sunag)
    • Fix the warn on cache-key, keep it in set lineColorNode. a219a9deed6798ec7d333433c69c46d44cd1905f (@sunag)
  • Morph
    • Fix individual morphTargetInfluences per object. #33772 (@sunag)
  • NodeBuilder
    • Fast-path getDataFromNode when no sub-build is active. #33656 (@mrdoob)
    • Use .nodes as Set instead of Array. #33664 (@sunag)
    • Use .sequentialNodes as Set instead of Array. #33703 (@mrdoob)
    • Make registerDeclaration() more robust. #33869 (@Mugen87)
  • NodeMaterial
    • Dynamically copy properties in copy(). #33775 (@sunag)
  • NodeMaterialObserver
    • Fix default version value of textures. #33422 (@Mugen87)
    • Reuse lightsData cache entry per frame. #33425 (@RenaudRohlinger, @claude)
    • Fix environment rotation and intensity checks. #33764 (@Mugen87)
  • NodeUniformBuffer
    • Fix byteLength to follow overridden buffer getter. #33469 (@RenaudRohlinger)
  • NodeUtils
    • Update getAlignmentFromType to use 4-byte elements and add bool type. #33546 (@sunag)
  • PassNode
    • Fix implicit depth texture creation when depthBuffer: false. #33410 (@thelazylamaGit, @Mugen87)
  • PMREMNode
    • Fix dispose of internal PMREMs. #33849 (@Mugen87)
  • PointShadowNode
    • Fix shadows with logarithmic depth buffer. #33584 (@Mugen87)
  • RTTNode
    • Introduce setResolutioScale() and updates. #33606 (@sunag)
  • ShadowFilterNode
    • Use textureGatherCompare in PCFSoftShadowFilter. #33534 (@RenaudRohlinger, @claude, @shotamatsuda)
  • ShadowNode
    • Fix shadow viewer inspect and introduce equirectDirection. #33752 (@sunag)
  • StackNode
    • Fix outputNode flow propagation. #33405 (@sunag)
  • StorageTextureNode
    • Bypass UV matrix transforms. #33545 (@thelazylamaGit)
    • Set referenceNode & add .store() function. #33544 (@thelazylamaGit)
  • TSL
    • Remove string, arrayBuffer definitions. #33430 (@sunag)
    • Fix setName() for attributes. #33432 (@sunag)
    • Introduce storageTexture3D. #33443 (@shotamatsuda)
    • Make not() on vector produce component-wise logical not. #33442 (@shotamatsuda)
    • Fix redundant min/max calls being generated. #33441 (@shotamatsuda)
    • Fix stack node sequence. #33402 (@sunag)
    • Cache function nodes per renderer's backend. #33517 (@sunag)
    • Add support for textureGather and textureGatherCompare. #33475 (@shotamatsuda, @sunag)
    • Make sure structs are built when compiling functions. #33524 (@Mugen87, @sunag)
    • Introduce nodeProxyConstructor. #33542 (@sunag)
    • Remove modInt export from Three.TSL.js. #33628 (@Methuselah96)
    • Add missing StorageTexture3DNode exports. #33630 (@Methuselah96)
    • Migrate vertex accessor classes to TSL Fn. #33674 (@sunag)
    • Fix varying code sequence in vertex stage. #33709 (@sunag)
    • Align packing nomenclature with packing.glsl.js. #33715 (@WestLangley, @sunag)
    • Introduce ambientOcclusion property. #33728 (@sunag)
    • Fix direction and normal transform methods. #33725 (@Mugen87)
    • Rename directionToFaceDirection -> negateOnBackSide. #33753 (@sunag)
    • Introduce override context. #33807 (@sunag)
    • Use RGBA for batching color. #33866 (@Mugen87)
    • Fix crash in MRT when output is not bound by RenderTarget. #33888 (@sunag)
    • Restore instanced matrix buffer capacity. #33889 (@jure)
  • VolumetricLightingModel
    • Fix crash when used with clustered lights. #33896 (@ShiKirill, @Mugen87)

Addons

  • Addons
    • Removed TiledLighting. #33751 (@sunag)
  • ArcballControls
    • Document correct usage of adjustNearFar. #33479 (@Mugen87)
    • Fix swapped X/Y gizmo ring orientations. #33536 (@raeraex2)
  • AsciiEffect
    • Add escapeHTML(). #33567 (@Mugen87)
  • BufferGeometryUtils
    • Optimize toCreasedNormals(). #33768 (@mrdoob, @claude)
  • CSMShadowNode
    • Fix inconsistency in frustum split. #33510 (@shotamatsuda)
  • DRACOExporter
    • Removed bundled encoders in favor of CDN. #33789 (@mrdoob, @claude)
  • DRACOLoader
    • Use relative file urls by default. #33564 (@gkjohnson)
    • Deprecate "setDecoderConfig" function. #33602 (@gkjohnson)
    • Add exported urls for GLTF decoder. #33691 (@gkjohnson)
  • EXRLoader
    • Fix out-of-bounds read on partial scanline blocks. #33620 (@Mugen87)
  • FirstPersonControls
    • Damping, separate move sources, release fix, E/Q keys. #33874 (@mrdoob, @claude)
  • GLTFExporter
    • Improve multi-scene animation support. #33748 (@Mugen87)
    • Fix export of normal maps. #33837 (@Mugen87)
  • Inspector
    • Added scope for styles. #33456 (@sunag)
    • Added storage settings and info feature. #33571 (@sunag)
    • Add unread warning and error notification badges. #33732 (@sunag)
    • Migrate Graph to Canvas & add FPS graph to toggle button. #33756 (@sunag)
    • Improved Viewer, Timeline. #33750 (@sunag)
    • Fix slider using step() after define the value. #33806 (@sunag)
    • Improve state preservation, layout sizing and add CPU/GPU graph metrics. #33808 (@sunag)
    • Inline extensions configuration and remove extensions.json. #33812 (@sunag)
    • Improve mobile compatibility. #33819 (@sunag)
    • Improve folder renaming, color/select value updates, and visibility controls. #33853 (@sunag)
    • Add overdraw render mode. #33870 (@mrdoob, @claude)
    • Group duplicate console messages and allow detached tab panels to remain visible. #33864 (@sunag)
    • Fix Timeline resize. c1889da3c4fe9f3828fa90786d6a8772252ba966 (@sunag)
  • KTX2Loader
    • Use relative file urls by default. #33603 (@gkjohnson)
    • Fix regression in rgba16 unorm support. #33662 (@donmccurdy)
    • Disable etc1 on Chrome Mesa (Linux). #33697 (@arpu, @Mugen87, @donmccurdy, @mrdoob)
  • LightProbeGrid
    • Improve docs. #33426 (@Mugen87)
    • Avoid redundant matrixWorld updates during bake. #33489 (@mrdoob, @claude)
    • Add indirect bounces option to bake(). #33657 (@mrdoob)
  • LineMaterial
    • Fix trimSegment() with reversed depth buffer. #33572 (@Mugen87)
    • Trim line distances. #33607 (@Mugen87)
  • LineSegment2
    • Don't raycast without a valid resolution. #33872 (@Mugen87)
  • LoftGeometry
    • Fix UVs for non-uniform sections. #33815 (@mrdoob)
  • lottie_canvas.module
    • LottieLoader, TTFLoader: Removed bundled libs in favor of CDN. #33798 (@mrdoob, @claude)
  • LWOLoader
    • Deprecate loader. #33621 (@Mugen87)
  • MaterialXLoader
    • Avoid compiling unused BSDF lobes. #33712 (@mrdoob, @claude)
  • Matrix3
    • Remove remaining usage of translate() and scale(). #33754 (@Mugen87)
  • MikkTSpace
    • Add dispose(), cache promise. #33501 (@Shane-oo, @Mugen87)
  • PLYExporter
    • Honor data types of buffer attributes. #33625 (@Mugen87)
    • Support custom attributes. #33627 (@Mugen87)
  • PLYLoader
    • Honor PLY data types when creating buffer attributes. #33622 (@Mugen87)
  • RapierPhysics
    • Add applyImpulse(). #33459 (@Mugen87)
  • Reflector
    • Make getReflectionCamera() public. #33556 (@Mugen87)
  • SVGLoader
    • Honor scale in strokeWidth. #33411 (@Mugen87)
    • Improve createShapes(). #33415 (@Mugen87)
    • Add material helpers. #33424 (@Mugen87)
    • Basic gradients support. #33436 (@Mugen87)
    • Make stroke generation more robust. #33438 (@Mugen87)
  • TransformControls
    • Add viewport support. #33451 (@Mugen87)
    • Fix edge case transforms. #27719 (@AlaricBaraou, @Mugen87)
    • Allow visibility control of rotation gizmos. #33562 (@Mugen87)
  • USDAParser
    • Infer the elementSize of missing skeletal joint attributes. #33596 (@bigbigbiglazycat, @Mugen87)
    • Fix inline-brace prim definitions being silently dropped. #33773 (@wheresoli)
  • USDLoader
    • Preserve USDA animation timing metadata. #33560 (@mkeblx, @mrdoob)
    • Fix texture paths in standalone USD files. #33610 (@Mugen87)
  • USDZExporter
    • Support mimeType setting via Texture.userData. #33579 (@Mugen87)
    • Fix opacity regression. #33580 (@Mugen87)
    • Add animation support. #33589 (@Mugen87)
    • Improve usability. #33597 (@Mugen87)
    • Add multi-material support. #33598 (@Mugen87)
    • Basic normal scale support. #33851 (@Mugen87)
  • USDZLoader
    • Reorder quaternion components in USDA quatf[] array parsing. #33577 (@bigbigbiglazycat, @Mugen87)
    • Preserve attribute connections when a direct value follows. #33581 (@Mugen87)
    • Add onLoad() and onError() to parse(). #33582 (@Mugen87)
  • VolumeShader
    • Support perspective cameras. #33493 (@Mugen87)
    • Improve apply_colormap(). #33867 (@Mugen87)
  • VRMLLoader
    • Allow multi-line strings. #33616 (@Mugen87)
  • Water2Mesh
    • Simplify flowMap setup. #33540 (@Mugen87)
  • WebGPURenderer
    • Added ClusteredLighting (Forward+ clustered) shading. #33406 (@mrdoob, @claude, @sunag)
    • Add fallback for XR with WebGPU. #33497 (@cabanier, @Mugen87, @elalish, @ycw)

Addons / Nodes

  • ClusteredLightsNode
    • Fix point light distance attenuation. #33679 (@mrdoob, @claude)
    • keep castShadow point lights on the material-lights path. #33792 (@hsheth2)
    • include clustered lights in getLights(). #33793 (@hsheth2)
  • CSMShadowNode
    • Add support for reversed depth buffer. #33506 (@shotamatsuda)
  • FXAANode
    • Refactor ApplyFXAA(). #33708 (@Mugen87)
  • GTAONode
    • Cosine-weighted integration with per-slice normal projection. #33654 (@marcofugaro)
  • ImportanceSampledEnvironment
    • Spatiotemporal Denoiser for SSR. #33843 (@0beqz)
  • PixelationPassNode
    • Fix examples to avoid fading alpha. #33450 (@gkjohnson)
  • SSAAPassNode
    • Make clear color handling more consistent. #33478 (@Mugen87)
  • SSGINode
    • Use a half float render target. #33769 (@mrdoob, @claude)
    • Optimize code. #33782 (@Mugen87)
    • Reduce bandwidth with RG11B10. #33822 (@Mugen87)

Docs

  • Improve displacementMap JSDoc. #33453 (@Mugen87)
  • Document minimum texture sizes of PMREMGenerator. #33465 (@Mugen87)
  • Core: Fix JSDoc. #33569 (@Mugen87)
  • Fix code example generation. #33586 (@Mugen87)
  • Fix typo in ARButton docstring. #33608 (@Carifio24)
  • Add color space notes. #33636 (@Mugen87)
  • Correct lightMap description. #33642 (@WestLangley)
  • SSSNode: Fix typos in JSDoc. #33713 (@hanityx)
  • Update TSL.md. 522bc18d8beaf8a145bc69f4c261108071d827fb (@Mugen87)
  • Fix Safari scrolling to anchors. #33719 (@shotamatsuda)
  • Update nomenclature. #33742 (@WestLangley)
  • NodeMaterial.setupOutput and TSL positionLocal. #33791 (@cmhhelgeson)
  • Update TSL.md. 67e7b21040c4224014a637f706c279ce548e98d6 (@sunag)
  • Update TSL.md. 5402547a11f7239473e9085c3dcf724f7aa953ce (@sunag)
  • Fix JSDoc type expressions for docs build. 1b4637dd8530a76dafc5565d49dc62b76982a82b (@mrdoob, @claude)

Manual

  • Fix links in material table. #33487 (@Mugen87)
  • Improve Installation guide. #33599 (@Mugen87)
  • Update nomenclature. #33723 (@WestLangley)
  • Fix link navigation. #33858 (@Mugen87)

Examples

  • Update webgl_loader_svg.html. 27867588d172f90bca9ee93ed3faf4de775a4f6f (@Mugen87)
  • Explicitly set clear color in WebGPU demos. #33452 (@gkjohnson)
  • Clean up. #33470 (@Mugen87)
  • Make wave speed frame rate independent in webgl_shaders_ocean. #33492 (@unrealsid, @Mugen87)
  • Fix final alpha issues. #33496 (@gkjohnson)
  • Update webgl_loader_ifc to use web-ifc directly. #33491 (@agviegas, @claude)
  • Clean up. #33505 (@Mugen87)
  • Add webgpu_furnace_test.html. #33516 (@WestLangley)
  • Added GUI to Furnace Tests. #33523 (@WestLangley)
  • Improve GUI in webgpu_lines_fat.html. #33498 (@WestLangley)
  • Improve GUI in webgl_lines_fat.html. #33538 (@WestLangley)
  • Add Open Graph Protocol fields. #33543 (@Mugen87)
  • Update tags.json. 82181ef0af3f2fbe0e275663b0fc7f287aff2fbd (@Mugen87)
  • Improve webgpu anamorphic, rtt and bloom. #33600 (@sunag)
  • Remove "setDecoderPath" in non-gltf path examples. #33604 (@gkjohnson)
  • Add TSL function for grounded skyboxes. #33611 (@Mugen87)
  • Add nanite-style rasterizer. #33605 (@sunag)
  • Update webgpu_compute_nanite-style.html. 76d1eba5eadada3c25ff8cb0657b8ed23e8aeff1 (@Mugen87)
  • Improve WebGPU AO example. #33631 (@marcofugaro)
  • Improve AO scale. #33637 (@Mugen87)
  • Cleanup webgpu_postprocessing_ssaa. #33653 (@Methuselah96)
  • Optimize and shade smooth Tennyson Bust model. #33655 (@marcofugaro)
  • webgpu_lights_clustered firefly-style HDR sprites. #33660 (@mrdoob)
  • Update CDN dependencies. #33677 (@mrdoob, @claude)
  • Improved face alignment in webgl_morphtargets_webcam. #33690 (@mrdoob, @claude)
  • Add webgpu_skinning_instancing_individual. #33644 (@RenaudRohlinger, @sunag)
  • Migrate examples to new DRACOLoader url config. #33724 (@gkjohnson)
  • Fix Animation Speed label of webgpu_compute_nanite-style. 607fc7dc268e47b94eccc66121224d87a33c5c91 (@sunag)
  • Subset MPLUSRounded1c font in webgl_geometry_text_stroke. #33743 (@mrdoob, @claude)
  • Add TileCreasedNormalsPlugin. #33767 (@mrdoob, @claude)
  • Add inspector to the ball pool example. 195e328825d0bbe237355ee0ab433f60af4f29b9 (@mrdoob, @claude)
  • Add LoftGeometry addon and example. #33776 (@mrdoob, @claude)
  • Rename webgpu_compute_nanite-style to webgpu_compute_rasterizer. 4c83d5e32dc8ef3f46d4024689a752eeb7df4561 (@mrdoob, @claude)
  • Clean up webgpu_compute_rasterizer. 60e798e6c40007d01f7a1392be4f761338a54166 (@mrdoob, @claude)
  • Remove ammo.js examples. #33786 (@mrdoob, @claude)
  • Use CDN version of Ammo.js. #33799 (@Mugen87)
  • Rework webgpu_lights_clustered. #33803 (@mrdoob, @claude)
  • Fix and optimize snow compute demo. #33833 (@Mugen87, @sunag)
  • Add volumetric fire, enhances the VolumetricLightingModel. #33848 (@sunag)
  • Update misc_exporter_gltf_normals.html. 70ea716718752e84fa3223b73d5bd875ceac8a1e (@Mugen87)
  • Add procedural city generator. #33817 (@mrdoob, @claude)
  • Improve webgpu_custom_fog with terrain and forest generators. #33873 (@mrdoob, @claude)
  • Improve webgpu_custom_fog_scattering. #33825 (@mrdoob, @claude)
  • Add webgpu_compute_rasterizer_ibl. #33783 (@mrdoob, @claude, @sunag)
  • Use FirstPersonControls in webgpu_compute_rasterizer. aace2e8bab4ade32dd76af3d5e05b464d20f1a39 (@mrdoob, @claude)

Devtools

  • Make hierarchy collapsible. #33645 (@Mugen87)
  • Resolve linter issues. #33646 (@Mugen87)
  • Remove empty scenes. #33647 (@Mugen87)
  • Bump version to 1.16. 4e3822704a4ddca670beaa4f5f779ead0437762b (@mrdoob)
  • clean up. #33879 (@linbingquan)

Editor

  • Remove legacy JSON format Worker code. #33423 (@andesyteoss)
  • Improve SVG setup. #33447 (@Mugen87)
  • Make light targets editable. #33541 (@Mugen87)
  • Fix ListboxItem text content. #33648 (@Mugen87)
  • Add texture parameters dialog. #33651 (@Mugen87)
  • Fix name conflict during glTF export. #33699 (@Mugen87)
  • Rework auto-completion in script editor. #33711 (@Mugen87)
  • Fix collision detection in arkanoid demo. #33718 (@Mugen87)
  • Update arkanoid.app.json. 716b6448c37c77de9a0ec6a7f0368d34eb7b0c48 (@Mugen87)
  • Add support for orthographic cameras. #33701 (@Mugen87)
  • Fix outliner regression. #33735 (@Mugen87)
  • Make size of vertex normals helper configurable. #33790 (@Mugen87)

Tests

  • Add unit test for custom interpolant. #33480 (@Mugen87)
  • Run unittests in browser with Puppeteer. #33550 (@catalin-enache, @Mugen87)
  • Update CatmullRomCurve3.tests.js. 6b719702fbc30f1fc3d6448420601d409df883f8 (@Mugen87)
  • Update screenshot. #33635 (@Mugen87)
  • Fix WebGPU Device Lost errors. #33650 (@shotamatsuda)
  • fix Buffer handling for Node.js 23+. #33672 (@WestLangley)
  • Print elapsed seconds. #33726 (@shotamatsuda)

Utils

  • Improved changelog.js. d718472ad975a38a86bbc63b859f3b2286dc3a53 (@mrdoob, @claude)

CI

  • Improve permissions. #33466 (@Mugen87)
View originalPermalink
How r185 went

r184

Added 10
  • Add HTMLTexture
  • Add DepthTexture to scene render target
  • Add clampToLine parameter to Plane.intersectLine()
  • Add support for packed normal maps in WebGLRenderer
  • Add NodeMaterial compatibility layer to WebGLRenderer
  • Add grip update event to WebXRController if enabled
Changed 6
  • Update @rollup/plugin-terser to 1.0.0
  • Update ESLint to ECMA 2022
  • Preserve interpolant settings on AnimationAction creation
  • Update SkinnedMesh applyBoneTransform to optionally take Vector4 and support direction or position transformation
  • Improve HTMLTexture support
  • Make WebGPURenderer compileAsync() truly non-blocking
Fixed 4
  • Fix timeScale reversal jump in AnimationAction
  • Fix race condition with loading manager in AudioLoader
  • Fix getColorAt throwing an error when colors have not been set in InstancedMesh and BatchedMesh
  • Fix geometry corruption on 2-point curves in CatmullRomCurve3
Removed 1
  • Remove deprecated instancing render paths in BatchedMesh

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#183--184 https://github.com/mrdoob/three.js/milestone/97?closed=1

  • Global
    • Update @rollup/plugin-terser to 1.0.0. 456f1696908c6ff169f19c1318ac8b8a87c38541 (@mrdoob, @claude)
    • Update ESLint to ECMA 2022. #33128 (@PoseidonEnergy)
    • Added HTMLTexture. #31233 (@mrdoob, @claude)
  • AnimationAction
    • Preserve interpolant settings on action creation. #33033 (@gigajuad, @Mugen87)
    • Fix timeScale reversal jump. #33035 (@Mugen87)
  • AudioLoader
    • Fix race condition with loading manager. #33378 (@Mugen87)
  • BatchedMesh
    • InstancedMesh, BatchedMesh: Fix getColorAt throwing an error when colors have not been set. #33079 (@gkjohnson)
    • Remove deprecated instancing render paths. #33234 (@Mugen87)
  • CatmullRomCurve3
    • Geometry corruption on 2-point curves. #33270 (@Necro-Rohan)
  • CubeRenderTarget
    • Restore generateMipmaps correctly. #33069 (@PoseidonEnergy)
  • DataTextureLoader
    • Fix log regression. #33148 (@Mugen87)
    • Move return in catch block to correct position. #33243 (@Om-Mishra09)
  • Dev
    • Fix vulnerabilities. #33141 (@Mugen87)
  • ImageBitmapLoader
    • Improve docs. #33379 (@Mugen87)
  • InstancedMesh
    • add consistent return values to functions. #33059 (@gkjohnson)
  • Line3
    • Handle degenerate line in closestPointToPointParameter(). #33264 (@Necro-Rohan)
  • Loaders
    • Make return types in load() consistent. #33380 (@Mugen87)
  • MaterialLoader
    • Simplified bool check. #33066 (@PoseidonEnergy)
  • Math
    • Make use of Static initialization blocks. #33140 (@PoseidonEnergy)
  • MeshPhysicalMaterial
    • Fix Anisotropic regression. #33205 (@Mugen87)
  • Object3D
    • Correctly copy pivot. #33163 (@PoseidonEnergy, @Mugen87)
  • ObjectLoader
    • Fix log regression. #33240 (@Om-Mishra09)
  • Plane
    • Add clampToLine to intersectLine(). #33398 (@Mugen87)
  • Renderer
    • Make hasCompatibility() more predictable. #33087 (@Mugen87, @sunag)
  • Renderers
    • Make animation modules more robust. #33159 (@Mugen87)
    • Cache pixel storage parameters. #33227 (@Mugen87)
    • Support EXT_texture_norm16 formats. #33303 (@pohlt, @Mugen87)
  • RenderPipeline
    • Fix sync with renderer.outputColorSpace and renderer.toneMapping. #33187 (@sunag)
  • RenderTarget
    • Preserve multiview in copy(). #33285 (@Kundan-CR7)
  • Shaders
    • Clean up. #33133 (@WestLangley)
  • SkinnedMesh
    • Update "applyBoneTransform" to optionally take Vector4, support direction or position transformation. #33091 (@gkjohnson)
  • Source
    • Fix getSize() for VideoFrame. #33131 (@PoseidonEnergy)
  • Texture
    • Remove default setter parameter. #33129 (@PoseidonEnergy)
  • Textures
    • Improved HTMLTexture support. #33400 (@mrdoob, @claude)
  • Triangle
    • Simpler bool check in isFrontFacing(). #33071 (@PoseidonEnergy)
  • UniformsGroup
    • Fix incorrect index in Vector4 dirty check. #33276 (@Mridul012)
  • UniformUtils
    • Fix deep-copy with array of uniforms. #33384 (@Mugen87)
  • WebGLOutput
    • Add DepthTexture to scene render target. c0553ae6966096947e2b84499e788c52503a5a2e (@mrdoob, @claude)
  • WebGLRenderer
    • Use working color space for render targets. #33036 (@Mugen87)
    • Add support for packed normal maps. #33055 (@castano)
    • Fix feedback loop regression. #33063 (@Mugen87)
    • Fix envMap and background rotation. #33077 (@WestLangley)
    • Fix active texture setting in copyTextureToTexture(). #33153 (@geekuillaume, @Mugen87)
    • Add NodeMaterial compatibility layer. #32851 (@gkjohnson, @sunag)
    • Improve reverse depth buffer logging. #33176 (@Mugen87)
    • Save/restore textureUnits on render state stack. #33217 (@SSopin)
    • Set depth mask when clearing depth. #33241 (@mlavik1)
    • Implement normal bias fallback. #33391 (@Mugen87)
  • WebGLTextures
    • Prevent flipping image bitmaps. #33073 (@Mugen87)
  • WebGLTimestampQueryPool
    • Fixed warning message. #33068 (@PoseidonEnergy)
  • WebGPUBackend
    • Reuse clear color instance. #33189 (@Mugen87)
    • Simplify code. #33388 (@Mugen87)
  • WebGPURenderer
    • Make compileAsync() truly non-blocking. #32984 (@RenaudRohlinger, @sunag)
    • Fix texture compare fallback for shadows. #33050 (@Mugen87)
    • Honor layerUpdates for array textures. #33072 (@ahaensler)
    • Improve compatibility test for reversed depth buffer. #33086 (@Mugen87)
    • Make device capabilities handling more consistent. #33094 (@Mugen87)
    • Add individual dispose for CanvasTarget caching. #33106 (@sunag)
    • Remove inline functions in rendering methods. #33108 (@PoseidonEnergy, @Mugen87)
    • Use node events to update the binding groups. #33047 (@sunag)
    • Fix WebXR sampling array-texture. #33132 (@sunag)
    • Simplification of the frame buffer cache for WebXR layers. #33154 (@sunag)
    • Support unfilterable float32 StorageTextures. #33155 (@sunag)
    • Use depth32float instead of depth24plus when using reversedDepthBuffer. #33184 (@PoseidonEnergy, @Mugen87)
    • Ensure render targets have consistent default depth values. #33191 (@Mugen87)
    • Add compute shader bounds check. #33186 (@marcofugaro, @sunag)
    • Refactor env map rotation. #33232 (@Mugen87)
    • Introduce Quad cache per RendeTarget texture. #33228 (@sunag)
    • Implement WEBGL_multi_draw fallback. #33238 (@Mugen87)
    • Fix texture issues. #33296 (@Mugen87)
    • Clean up. #33305 (@Mugen87)
    • Introduce ReadbackBuffer and reuse getArrayBufferAsync() buffers. #33300 (@sunag)
    • Fix WebGPU render bundle reuse across render contexts. #33335 (@RenaudRohlinger)
    • Adjust getArrayBufferAsync behavior, add support for partial readback. #33322 (@gkjohnson, @sunag)
  • WebGPUTextureUtils
    • Fix check layerUpdates property. #33075 (@sunag)
    • Fix copyTextureToBuffer() dispose buffer. #33366 (@sunag)
  • WebXRController
    • Add grip update event if enabled. #33118 (@danrossi, @Mugen87)

Nodes

  • GLSLNodeBuilder
    • Fix texelFetch lod type. #33399 (@Mugen87)
  • Line2NodeMaterial
    • Fix clone() losing worldUnits, dashed, and linewidth. #33236 (@cyphercodes)
  • NodeManager
    • Make delete() more robust. #33160 (@Mugen87)
  • NodeMaterialObserver
    • Avoid usage of Object.keys(). #33113 (@Mugen87)
    • Speed up material comparisons. #33198 (@Mugen87)
    • Speed up geometry comparisons. #33199 (@Mugen87)
  • NodeObjectLoader
    • Fix parseAsync(). #33377 (@Mugen87)
  • NodeUtils
    • Replace instanceof Array with Array.isArray(). #33262 (@Mridul012)
  • PassNode
    • Fix scissor and viewport setup. #33204 (@Mugen87)
  • RenderOutputNode
    • Fixes typos in RenderPipeline related docs. #33034 (@jwheare)
  • ShadowNode
    • Add support for renderer.highPrecision. #33246 (@shotamatsuda, @sunag)
  • TSL
    • Fix array texture with no .depth() defined breaks shader compilation. #33096 (@sunag)
    • Improves compilation performance by 3.0x. #33120 (@sunag)
    • Fix two issues in StorageTextureNode. #33167 (@PoseidonEnergy)
    • add hyperbolic math nodes. #33233 (@thelazylamaGit)
    • Make global context available within compute nodes. #33231 (@shotamatsuda, @sunag)
    • Add global and local scope. #33302 (@sunag)
    • Add OnFrameUpdate and OnBeforeFrameUpdate. #33356 (@shotamatsuda)
  • ViewportDepthTextureNode
    • Fixes framebuffer caching with multiple references of different sizes. #32690 (@arodic)
  • WGSLNodeBuilder
    • Fix varying indexes. #33229 (@sunag)
    • Fix textureDimensions() cache scope. #33312 (@sunag)
    • Add allowGlobalVariables. #33319 (@sunag)

Addons

  • Addons
    • Update export file. #33390 (@Mugen87)
  • ArcballControls
    • Controls reset touch-action to empty string instead of 'auto'. #33144 (@Kodub)
  • BufferGeometryUtils
    • Fix two bugs. #33338 (@nameearly)
  • CCDIKSolver
    • Fix limitation handling. #33386 (@Mugen87)
  • ColladaLoader
    • Add suport for polygons primitive. #33143 (@Mugen87)
    • Add support for instance_joint. #33293 (@Mugen87)
  • ColorUtils
    • Add setKelvin(). #33381 (@Nedunchezhiyan-M, @Mugen87)
  • EXRLoader
    • Support YCbCr and B44/A. #33212 (@Mugen87)
    • Fix channel rule matching. #33216 (@Mugen87)
    • Add multi-part and deep scanline support. #33218 (@Mugen87)
    • Put known headers into "skipped" section. #33248 (@Mugen87)
    • Remove buggy getBigInt64() fallback. #33387 (@Mugen87)
  • FBXLoader
    • Add skinning fixes. #33316 (@Mugen87)
    • Correct bind matrix. #33317 (@Mugen87)
    • Fix penumbra computation. #33321 (@Mugen87)
    • Fix rotation animations. #33323 (@Mugen87)
    • Fix opacity fallback. #33325 (@Mugen87)
    • Guard against orphaned animation curve nodes. #33327 (@digitalbreed)
    • Add coordinate system correction for Z-up. #33332 (@Mugen87)
    • Fix morph deltas. #33350 (@Mugen87)
  • FirstPersonControls
    • Update interaction model. #33124 (@mrdoob, @claude)
    • Fix deprecated handleResize() message. f5d4b94ac51f1a4e552770a5de588fd2a016bef3 (@mrdoob, @claude)
  • GLSLDecoder
    • Replace deprecated substr() with slice(). #33260 (@Mridul012)
  • GLTFExporter
    • Add EXT_texture_webp support. #33117 (@BorisKourt)
    • Make attribute prefix more robust. #33357 (@Mugen87)
  • GLTFLoader
    • Fix morph target parsing. #33020 (@Mugen87)
    • Handle zero ior edge case. #33119 (@Mugen87)
  • GPUComputationRenderer
    • Call dispose() on variable's material. #33318 (@madisonrickert, @claude)
  • HDRLoader
    • Fix header parse logic. #33174 (@stack1ng)
  • Inspector
    • Use fixed mini-panel. #33070 (@sunag)
    • Introduce forceWebGL. #33074 (@sunag)
    • Introduce Timeline ( Commands Recorder ). #33078 (@sunag)
    • Add Memory tab and improve Renderer.info. #33097 (@sunag)
    • Add Capture Stack Trace for Settings. #33122 (@sunag)
    • Added string type support to parameters. #33156 (@sunag)
    • Introduce TSL Graph Addons. #33165 (@sunag)
    • Add export functionality to Inspector Timeline tab and enhance call detail logging. #33192 (@Makio64, @sunag)
    • Added Extension support and revisions. #33200 (@sunag)
    • Improvements. #33230 (@sunag)
    • Fix Tab.isActive. 33feff9e355cddabc3493533fb4ee9bc09091c6d (@sunag)
    • Replace deprecated substr() with slice(). #33267 (@Mridul012)
  • KTX2Loader
    • Support RGBA 16-bit unsigned normalized formats. #33245 (@donmccurdy, @Mugen87)
  • LDrawLoader
    • Fix incorrect normals on double sided faces. #33383 (@Mugen87)
  • LightProbeGrid
    • Add position-dependent diffuse Global Illumination. #33125 (@mrdoob, @Mugen87, @claude)
  • meshopt_decoder.module
    • Upgrade meshopt_decoder.module.js to 1.1.1. #33393 (@zeux)
  • Reflector
    • Support orthographic cameras. #33249 (@Mugen87)
    • Clean up. b4822a411ab883290e21f9f5251ed40a7815265c (@Mugen87)
  • Sky
    • Make sun disc optional. #33031 (@jwheare)
  • SVGLoader
    • Fix round stroke joins and caps when arcDivisions = 1. #33256 (@georgpukk, @Mugen87)
  • SVGRenderer
    • Fix performance regression. #33220 (@Mugen87)
  • TransformControls
    • Allow visibility control of plane gizmos. #33170 (@Mugen87)
  • USDComposer
    • recurse mesh children and skip GeomSubset nodes. db5f5e5496e7844736aecb012e039018c1e43b0f (@mrdoob)
    • avoid global displayOpacity on subset materials. 7f89d9b273ef32af1666fbd2b61c6dc4d5c39822 (@mrdoob)
    • add Camera prim parsing. 8d9c591c1c93a5c583a69e5ec6083d26b85a028d (@mrdoob)
    • Add light support. a158b85f4eff6f3fdfa4dfdaa01087fca9fabcf6 (@mrdoob, @claude)
    • Fix reference parsing. #33294 (@Mugen87)
    • Fix uv data for multi-material meshes. #33297 (@Mugen87)
  • USDCParser
    • handle empty array payload and validate offsets. 9a141d0f9c0528275a7f3ca3bf7745a5cca70de2 (@mrdoob)
  • USDLoader
    • Fix flat shading on meshes without normals. #33081 (@mrdoob, @claude)
    • Add support for geometric primitives (Cube, Sphere, Cylinder, Cone, Capsule). #33082 (@mrdoob, @claude)
    • Add support for MaterialX UsdPreviewSurface materials. #33083 (@mrdoob, @claude)
    • Add metersPerUnit support. #33084 (@mrdoob, @claude)
    • Fix skeleton skinning distortion. #33085 (@mrdoob, @claude)
  • VTKLoader
    • Deprecated loader. #33363 (@Mugen87)
  • WebXR
    • Added model caching to XRHandModelFactory. #33252 (@NssGourav, @Mugen87)

Addons / Nodes

  • TSL
    • Improve dispose() of some FX addons. #33126 (@Mugen87)
  • Bayer
    • Bayer node: fix web worker usage. #33279 (@pavel-mazhuga, @Mugen87)
  • ChromaticAberrationNode
    • Remove unused _invSize uniform. cbf6fff0287c3d259a17af418a549f8598eb47ed (@Mugen87)
  • CSMShadowNode
    • Fix error when disposed multiple times. #33202 (@shotamatsuda)
  • FSR1Node
    • Add FSR 1 port for WebGPURenderer. #33339 (@Mugen87)
  • GodraysNode
    • Simplify shadow coord computation. #33162 (@Mugen87)
  • OutlineNode
    • Support sprites. #33112 (@Mugen87)
    • Early out when nothing is selected. #33358 (@Mugen87)
  • SSGINode
    • Remove dead code. 4c1fe47d87c2869af064101fab856d3fa289cc68 (@mrdoob, @claude)
  • TAAUNode
    • Adding new node for TAA with Upsampling. #33368 (@Mugen87)
  • TRAANode
    • Improve docs. d2d9d4069320de51d2e7f36855375f4640578ecb (@Mugen87)
    • Add velocity node source. #32274 (@shotamatsuda)
    • Add support for reversed/logarithmic depth buffers and orthograhic cameras. #33364 (@shotamatsuda)
  • WebGPURenderer
    • Introduce Dynamic Lights. #33042 (@RenaudRohlinger, @sunag)

Docs

  • Fix billboarding examples in TSL.md. #33056 (@jwheare)
  • Using the correct class type for NodeManager. #33067 (@PoseidonEnergy)
  • Texture: Fix typo in JSDoc. #33130 (@PoseidonEnergy)
  • AudioContext: Improve JSDoc. #33213 (@Mugen87)
  • Fix module links in search. #33255 (@Mugen87)
  • Fix typos in TessellateModifier and LineMaterial. #33272 (@Jadu07)
  • Update incorrect documentation for setMatrixAt. #33310 (@nopeless)
  • SkeletonUtils: Improve JSDoc. 37a0863cc7ce723922c67feb9cca30cdb5d2a637 (@Mugen87)

Manual

  • Translate manual/zh/game.html to Chinese. #33123 (@DDDDD12138)
  • Remove reference to Matrix4.setRotationFromQuaternion(). #33320 (@Kodub)

Examples

  • Add sky to scene. #33037 (@Mugen87)
  • Fix colors in webgpu_custom_fog. #33057 (@Methuselah96)
  • Fix floor threshold in games_fps. #33053 (@Mugen87)
  • Improve watch demo. #33089 (@lo-th, @Mugen87)
  • Rename webxr_xr_sculpt to webxr_xr_marchingcubes. 3a0e75bae17144edc35220c77cdfde029101d939 (@mrdoob)
  • Improve MapControls demo. #33171 (@Mugen87)
  • Add SSGI Ball Pool demo. #33258 (@mrdoob, @claude)
  • Fix links missing target="_blank" in webgl_loader_3dtiles example. 11e6acb93e826c62deb1e18cc251f6812e889cac (@mrdoob, @claude)
  • Add volumetric clouds and atmosphere to webgl_loader_3dtiles. #33292 (@mrdoob, @claude)
  • fix ArcherRi01 model ext name. #33324 (@linbingquan)
  • Update versions for external libraries. #33362 (@gkjohnson)
  • Autoplay sintel video, remove Play overlay. f3fa844ba4ca59d4f1bef62daadcea720456de39 (@mrdoob, @claude)
  • Remove unused memorial.png texture. 6814f96375a7eba5946c808d898422c7c5edb5f0 (@mrdoob, @claude)
  • Add banking to roller coaster track and camera. 354fc4ec29c0a5b7c9f21909e57e6e0e5d053e81 (@mrdoob, @claude)
  • Fix lightprobes complex scene issues. 4cf573d9ab3442b663eed9a1639376138f4797b1 (@mrdoob, @claude)

Devtools

  • Added new DevTools. #30870 (@mrdoob, @Darkensses, @cesmoak, @claude)

Editor

  • add deterministic dropped-file finder for URL resolution. 52133860a3021871867a9f194e92062c5931e4e6 (@mrdoob)
  • Improve animation panel. #33110 (@Mugen87)
  • Add TextGeometry. #33253 (@Mugen87)

Tests

  • Tighten pixel diff tolerance and refresh screenshots. #33389 (@mrdoob, @claude)
  • Added webgpu_compute_sort_bitonic to exceptionList. 4a48e81fa8691027b7fdc8180a5df04cf6827410 (@mrdoob)

CI

  • E2E: Replace SwiftShader with software Dawn (Lavapipe). #33346 (@mrdoob, @claude)
View originalPermalink
How r184 went

r183

Added 12
  • Add BezierInterpolant for animation interpolation
  • Add ReversedDepthFuncs dictionary to Core
  • Add support for scene.environment IBL in MeshLambertMaterial
  • Add support for scene.environment IBL in MeshPhongMaterial
  • Add clearcoat support for rect area lights in MeshPhysicalMaterial
  • Add pivot property to Object3D
Changed 8
  • Exclude scale from view matrix in Camera
  • Cache determinant result in Matrix4.decompose()
  • Optimize Matrix4.invert() calculation
  • Support extrapolation in Quaternion slerp methods
  • Simplify GGX VNDF importance sampling in PMREM
  • Rename shadowMap.color to shadowMap.colored then to shadowMap.transmitted in Renderer
  • Rename Nodes to NodeManager in WebGPURenderer
  • Rename RenderPipeline to RenderObjectPipeline in WebGPURenderer
Fixed 9
  • Fix closest point in Line3.distanceSqToLine3()
  • Correctly set nextIndexStart and nextVertexStart in BatchedMesh
  • Fix ID assignment bug in RenderObject
  • Fix shadow map uniform management in WebGLRenderer
  • Fix PCFSoftShadowMap check in WebGLRenderer
  • Fix pointlight shadows with reversed depth buffer in WebGLRenderer
Removed 3
  • Remove deprecated code
  • Remove reference to Clock in AudioListener
  • Remove bindingsReference from BindGroup
Deprecated 1
  • Deprecate Clock module

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#182--183 https://github.com/mrdoob/three.js/milestone/96?closed=1

  • Global
    • Remove deprecated code. #32569 (@Mugen87)
    • Replace eslint-plugin-import with eslint-plugin-import-x. #32651 (@mrdoob)
    • Removed eslint-plugin-import-x. #32653 (@mrdoob)
  • Animation
    • Add BezierInterpolant. #32829 (@mrdoob, @claude)
  • AnimationAction
    • Fixed typos in /src folder. #32629 (@mrdoob)
  • AnimationMixer
    • DEVTOOLS access to AnimationMixer + Loaders. #32616 (@marwie)
  • AudioListener
    • Remove reference to Clock. #33026 (@Mugen87)
  • BatchedMesh
    • correctly set the nextIndexStart, nextVertexStart. #32744 (@gkjohnson)
    • Enable per-instance opacity. #32725 (@vanruesc, @gkjohnson)
    • Add support for wireframe materials. #32948 (@gkjohnson)
  • BindGroup
    • Remove bindingsReference. #32910 (@Mugen87)
  • Cache
    • Don't cache Blobs. #32989 (@Mugen87)
  • Camera
    • Exclude scale from view matrix. #32805 (@Mugen87)
  • Clock
    • Deprecated module. #32798 (@Mugen87)
  • Core
    • Add ReversedDepthFuncs dictionary. #32983 (@Mugen87)
  • Helpers
    • Clarify the usage of update(). #32717 (@Mugen87)
  • Lighting
    • Refactor camera usage. #32557 (@sunag)
  • LightShadow
    • Introduce biasNode. #32811 (@Mugen87)
  • Line3
    • Fix closest point in distanceSqToLine3(). #32878 (@Mugen87)
  • Matrix4
    • Cache determinant result in decompose(). #32658 (@mrdoob, @microsoftcopilot)
    • Optimize invert() calculation. #32657 (@mrdoob)
  • MeshLambertMaterial
    • Add support for scene.environment IBL. #32791 (@mrdoob, @claude)
  • MeshPhongMaterial
    • Add support for scene.environment IBL. #32795 (@mrdoob, @claude)
  • MeshPhysicalMaterial
    • Added clearcoat support for rect area lights. #32809 (@TobiasNoell)
  • Object3D
    • Document static, add support in copy() and JSON. #32679 (@Mugen87)
    • Added pivot property. #32745 (@mrdoob)
  • ObjectLoader
    • Wrap JSON.parse() in try/catch for consistent error handling. #32947 (@glowsenior)
  • Playground
    • Archived playground. #32771 (@mrdoob)
  • PMREM
    • Simplify GGX VNDF importance sampling. #32737 (@Mugen87)
  • Quaternion
    • Quaternion - Support extrapolation in slerp methods. #32541 (@WestLangley)
  • RenderContext
    • Refactor context key. #32546 (@Mugen87)
  • Renderer
    • Rename shadowMap.color to shadowMap.colored. #32608 (@Mugen87)
    • Rename shadowMap.colored -> shadowMap.transmitted. #32611 (@sunag)
    • Shadow map improvements. #32705 (@Mugen87)
  • RenderObject
    • Fix ID assignment bug. #32700 (@Mugen87)
    • Update bundle reference at correct point. #32901 (@Mugen87)
  • RenderTarget
    • minor formatting. #32988 (@epreston)
  • ShadowMaterial
    • Respect "premultiplied alpha". #32550 (@gkjohnson)
  • TorusGeometry
    • Update TorusGeometry with thetaStart and thetaLength. #32760 (@3dpk-interactive)
  • TSL
    • Introduce TSL.md (TSL Spec). #32601 (@sunag)
    • Add RenderPipeline for TSL Spec. #32928 (@sunag)
  • UniformGroups
    • Partially updates. #32558 (@sunag)
  • UniformsGroup
    • Add range cache and fix clear old update ranges. #32561 (@sunag)
  • WebGLRenderer
    • Allow InstancedMesh provide a unique ID for WebGLBindingStates. #32556 (@OndrejSpanel)
    • Consider skinning / instancing when sorting objects. #28125 (@OndrejSpanel)
    • Fix shadow map uniform management. #32590 (@Mugen87)
    • Fix PCFSoftShadowMap check. #32593 (@Mugen87)
    • Ensure readback checks work on correct attachment state. #32506 (@andredsm)
    • Fix pointlight shadows with reversed depth buffer. #32749 (@Mugen87)
    • Fix remaining shadow issues with reversed depth. #32751 (@Mugen87)
    • Fix shadow bias with reversed depth buffer. #32770 (@Mugen87)
    • Unify cubemaps and cubeuvmaps into WebGLEnvironments. #32792 (@mrdoob, @claude)
    • Force flat shading for geometries without normals. #32831 (@mrdoob, @claude)
    • Only clear when bit mask is set. #33010 (@Philipp-M)
  • WebGLShadowMap
    • Fix wrong camera state. #32777 (@Mugen87)
  • WebGLState
    • Fix polygon offset with reversed depth buffer. #32832 (@Mugen87)
  • WebGPURenderer
    • Fix compileAsync() with target scenes. #32530 (@Mugen87)
    • Prevent translation of skybox. #32537 (@Mugen87)
    • Prevent undefined GPUShaderStage. #32539 (@verekia)
    • Fix shadow comparison on Adreno GPUs. #32548 (@sunag)
    • Introduce shadowMap.color. #32596 (@sunag)
    • Unify uniformGroup bindings across shader stages. #32602 (@sunag)
    • Add per-attachment MRT blending support. #32636 (@sunag)
    • Fix depth/stencil format out-of-sync bug. #32731 (@Mugen87)
    • Use @interpolate(flat, either) for all cases. #32761 (@greggman)
    • Rename Nodes to NodeManager. #32786 (@sunag)
    • Rename RenderPipeline to RenderObjectPipeline. #32785 (@sunag)
    • Always request compatibility mode and upgrade to core. #32762 (@greggman, @Mugen87)
    • Optimize chain key array reset. #32833 (@Mugen87)
    • Fall back to default texture when texture creation fails. #32853 (@ycw)
    • Introduce initRenderTarget(). #32867 (@Mugen87)
    • Export CubeRenderTarget and use it in examples. #32871 (@Mugen87)
    • WebGL viewport / scissors not working correctly with PostProcessing. #32883 (@TobiasNoell)
    • Fix overrideMaterial node assignments. #32896 (@Mugen87)
    • Turn off antialiasing in compat mode. #32902 (@greggman)
    • Make wireframe update more flexible. #32908 (@Mugen87)
    • Make generateMipmap work in compatibility mode. #32906 (@greggman)
    • Fix flipY and cache key when generateMipmap. #32922 (@sunag)
    • Improve checks for uniform buffer limits. #32949 (@sunag)
    • Fix wireframe rendering for BatchedMesh. #32955 (@Mugen87)
    • Improve compatibilityMode support for MRT. #32973 (@sunag)
    • Add basic reversed depth buffer support. #32967 (@Mugen87)
    • Add shared BindGroup via hash. #32936 (@sunag)
    • Use all visibility for shared BindingGroup. #32997 (@sunag)
    • Minor improvements for shared BindingGroup. #32998 (@sunag)
    • Reversed depth buffer fixes. #33000 (@Mugen87)
    • Fix stencilBack not matching stencilFront in pipeline. #33002 (@jpt)
    • Remove outdated bind groups. #33011 (@Mugen87)
    • Fix binding update after dispose a StorageTexture. #33028 (@sunag)
  • WebGPUTexturePassUtils
    • Cleanup generateMipmaps. #32915 (@greggman)
  • XRManager
    • Fix XR camera layers inheritance. #32626 (@wrangelvid)

Nodes

  • Nodes
    • Update exports. #32783 (@Mugen87)
    • Fix PMREM cache. #32941 (@Mugen87)
  • GLSLNodeBuilder
    • Fix CubeDepthTexture sampler. #32857 (@Mugen87)
    • Fix array texture layer support for filtered sampling. #33008 (@RenaudRohlinger)
  • InstanceNode
    • Support velocity. #32586 (@Mugen87)
    • Fix UBO size and attribute update. #32615 (@Mugen87)
  • Line2NodeMaterial
    • Avoid performance degradation with viewportSharedTexture(). #32639 (@Mugen87, @sunag)
    • Rename useColor property to vertexColors. #32670 (@sunag)
  • MeshPhysicalNodeMaterial
    • Fix missing iorNode in MeshPhysicalNodeMaterial copy method. #32821 (@TobiasNoell)
  • NodeBuilder
    • Fix shared group detection. #32913 (@Mugen87)
    • Fix update nodes sequence. #32991 (@sunag)
  • NodeBuilders
    • Unifies uniform groups of different shader stages. #32534 (@sunag)
  • NodeMaterial
    • Add maskShadowNode. #32598 (@sunag)
    • Remove shadowPositionNode fallback to reduce CPU load. #32699 (@Mugen87)
  • NodeMaterialObeserver
    • Fix detection of replaced attribute/index. #32933 (@Mugen87)
  • ShadowFilterNode
    • Fix TSL warning in VSMShadowFilter. #32836 (@Mugen87)
  • SkinningNode
    • Fix tangent transformation. #32718 (@Mugen87)
  • SpriteSheetUVNode
    • Transform to TSL function and fix countNode access. #32693 (@gayanMatch)
  • StorageTextureNode
    • Add TSL read/write support. #32734 (@NateSmyth)
  • Texture3DNode
    • Remove outdated setupUV(). #32630 (@Mugen87)
  • TextureNode
    • Use compareNode for Android if compareStepNode is not compatible. #32956 (@sunag)
  • TSL
    • Introduce clipSpace. #32594 (@sunag)
    • Remove exports for removed TSL methods. #32635 (@Methuselah96)
    • use raw data for DebugNode callback. #32638 (@linbingquan)
    • Add exponentialHeightFogFactor(). #32659 (@Mugen87)
    • Check if the stack has a valid output. #32669 (@sunag)
    • Fix positionView sub-build. #32691 (@sunag)
    • Revert positionWorld re-computation. #32710 (@sunag)
    • Fixing invalid GLSL using nested structures. #32724 (@sunag)
    • Move SceneNode to TSL functions. #32838 (@sunag)
    • Support switching StorageBufferAttribute when using storage(). #32847 (@sunag)
    • Force flat shading for geometries without normals for normal* nodes. #32848 (@sunag)
    • Avoid side effect of getTextureLevel() in normals. #32877 (@Mugen87)
    • Remove scriptable node. #32925 (@sunag)
    • Introduce StackTrace. #32914 (@sunag)
    • Add retroPassand example. #32930 (@sunag)
    • Remove ScriptableNodeResources export. #32945 (@Methuselah96)
    • Cache camera* uniform nodes. #32938 (@sunag)
    • Fix instancedArray() bufferCount property. #32977 (@sunag)
  • ViewportDepthNode
    • Support reversed depth in viewZ functions. #33001 (@Mugen87)
  • ViewportTextureNode
    • Change update type to RENDER. #32664 (@Mugen87)
  • WGSLNodeBuilder
    • Fix array texture layer support for filtered sampling. #32990 (@RenaudRohlinger)
    • Introduce generateStorageTextureLoad. #33029 (@sunag)

Addons

  • AnaglyphEffect
    • Use frameCorners() for physically-correct stereo. #32929 (@zalo, @claude)
    • Rename screenDistance to planeDistance. #32943 (@Mugen87)
  • CCDIKSolver
    • Fixed typos in /examples/jsm folder. #32631 (@mrdoob)
  • ColladaLoader
    • Split into modular files. #32796 (@mrdoob, @claude)
    • Improve animation support. #32830 (@mrdoob, @claude)
    • Apply falloff angle to spot lights. 17529114983185f1266b40e36933d306badfd5f5 (@mrdoob, @claude)
  • Exporters
    • Add Object3D.pivot support. #32769 (@mrdoob)
  • GCodeLoader
    • Add support for M82/M83 commands. #32687 (@Mugen87)
  • Global
    • Remove deprecated code. #32572 (@Mugen87)
    • Replace Clock with Timer. #32793 (@Mugen87)
  • GLTFExporter
    • Fix skinIndex export for InterleavedBufferAttribute. #32607 (@querielo, @Mugen87)
  • GLTFExporter/GLTFLoader
    • Add Object3D.pivot support. #32774 (@mrdoob)
  • GLTFLoader
    • Fix empty groups when multiple scenes reference same nodes. #32567 (@YusakuNo1)
    • GLTFLoader and KTX2Loader: Add a sanity check for navigator.userAgent before using it. #32633 (@leonmetthez)
    • Implement support for KHR_meshopt_compression. #32163 (@zeux)
    • Add getMaterialExtension helper. #32748 (@mrdoob, @claude)
  • HalftoneShader
    • Add diamond shape option. #32942 (@NateWr)
  • Inspector
    • Store parameters object+key. #32507 (@marwie)
    • Add "Copy All" button to Console tab. #32825 (@seantai, @sunag)
    • Fix compatibility with WebGLBackend if used as a fallback. #33019 (@sunag)
  • JoltPhysics
    • Fix dynamic import Vite warning. e796263ee25703290d920d958888061b799c7ded (@mrdoob)
  • KTX2Loader
    • Fix alpha for BC3 textures. #32772 (@donmccurdy)
  • LDrawLoader
    • De‑magic condition. #32886 (@ycw)
  • LensflareMesh
    • Fix DPR usage. #32625 (@Mugen87)
  • LineMaterial
    • Set needsupdate when changing worldUnits property. #32952 (@dsafa)
  • Loaders
    • Use named fflate imports and native TextDecoder. #32765 (@mrdoob)
  • OrbitControls
    • Expose pan, rotate and dolly methods. #32810 (@TobiasNoell)
    • Add cursorStyle property. #32981 (@Mugen87)
  • PCDLoader
    • Fix label parsing. #32683 (@Mugen87)
  • RapierPhysics
    • Fix dynamic import Vite warning. #32565 (@mrdoob, @claude)
  • RoomEnvironment
    • Adjust scene position. #32646 (@mrdoob)
  • Sky/SkyMesh
    • Remove legacy gamma correction curve. #32677 (@mrdoob)
    • Added procedural clouds. #32682 (@mrdoob)
  • UltraHDRLoader
    • Add support for ISO 21496-1 gainmap metadata. #32862 (@mrdoob)
  • USDAParser
    • Improve text parsing robustness. #32747 (@mrdoob, @claude)
  • USDAParser/USDComposer
    • Clean up. 3cd3e5b87e4a75aa14cf43958ddcaf9c6edebebc (@mrdoob)
  • USDComposer
    • Fix color space handling for material colors. 73636e35bfc1800f0242cbd0a5c488b184546943 (@mrdoob)
    • Clean up. e3f4523ed8d11e538cdbfbe573514a7fe01ed64a (@mrdoob)
    • Added primvars:displayOpacity support. 27f2f4eb5fbf78f42d0447a7b7f1879445b96111 (@mrdoob)
    • Fixed variant composition. 9a711cc1f452a917fe92eab3b4538fd34f45687a (@mrdoob)
    • Support variant overrides on ancestor prims. 96432fc0bd1a4a44afea6ebed27f65e9ed342c9e (@mrdoob)
  • USDCParser
    • Fixed scalar handling. 43166fcb2c5378a3cdd4c782175d0daf136a10d1 (@mrdoob)
  • USDLoader
    • Added USDC file support. #32704 (@mrdoob)
    • Refactored into USDComposer and added animation support. #32740 (@mrdoob)
    • Improve material and UV support. #32746 (@mrdoob)
    • Unify USD format handling and add .usd support. 5532147c692e1ec3c34e8d6455a598945011223e (@mrdoob)
    • Add OpenPBR Surface shader and polygon hole support. #32764 (@mrdoob)
    • Various bug fixes and improvements. #32766 (@mrdoob)
    • Performance improvements and external texture support. #32790 (@mrdoob, @claude)
    • Improve transform handling, skinning, and image loading. #32828 (@mrdoob, @claude)
    • Fix material binding lookup for variants. 43c8ff7e8966b1a359b104915290b8d4619e80cc (@mrdoob, @claude)
    • Apply UsdUVTexture scale to material colors. 585b578fb735485a95b651ff9d9e001601d3090f (@mrdoob, @claude)
    • Fix skin binding fallback when geomBindTransform is missing. 608f75712d745b76d02a13441b4b428fbdd6eafa (@mrdoob)
    • Align USDZ root-layer handling with core spec. ee01f32583d15adf56c828c82fa63dabb9eec1b9 (@mrdoob)
    • simplify asset parsing and avoid redundant work. 80587e802b6104083c56f70d9d4275620b4d7915 (@mrdoob)
  • ViewHelper
    • Add location property for positioning. 22afab942a46cd9f6b7310e3c210a6a19655ca0d (@mrdoob, @claude)
  • VRMLLoader
    • Add camera support. #32580 (@Mugen87)
  • VTKLoader
    • Fix ReDoS vulnerability. #32622 (@mrdoob)
  • Water
    • Use HalfFloatType for reflection render target. #32678 (@mrdoob)
  • Water/WaterMesh
    • Improve realism. #32681 (@mrdoob)
  • WaterMesh
    • Remove unneeded Lambert material. 40d7441aee16fc0bc0839ba597b2f7ec84324045 (@mrdoob)
  • WebGLRenderer
    • More fixes for reversed depth buffer. #32799 (@Mugen87)

Addons / Nodes

  • TSL
    • Improve retroPass and example. #32954 (@sunag)
  • LDrawConditionalLineNodeMaterial
    • fix import. #32861 (@gkjohnson)
  • Nodes
    • Removing unnecessary nodesObject. #33014 (@sunag)
  • SSRNode
    • Performance optimizations. #32637 (@mrdoob)
    • Add distance-aware blur for roughness. #32834 (@mrdoob, @claude)
    • Use squared roughness for blur LOD and simplify pointPlaneDistance. #32993 (@mrdoob, @claude)
  • WebGPU_Display_StereoExample
    • Add new Anaglyph Techniques. #32905 (@zalo)
  • WebGPURenderer
    • Rename PostProcessing to RenderPipeline. #32789 (@sunag)
    • Add GodraysNode. #32888 (@Mugen87)

Docs

  • Update URL in VignetteShader.js documentation. #32573 (@jwheare)
  • Update documentation for ImageBitmapLoader options. #32574 (@jwheare)
  • Improved search results. #32577 (@mrdoob)
  • Remove .is properties from search results. #32578 (@mrdoob)
  • Fix JSDoc Example. #32603 (@leannepepper)
  • Object3D: worldToLocal typo. #32647 (@satelllte)
  • GLTFLoader: Update documentation to include KHR_meshopt_compression. #32661 (@donmccurdy)
  • improve JSDoc documentation in utils.js. #32743 (@Achieve3318)
  • Improve documentation for edge cases in MathUtils functions. #32806 (@sharpenteeth, @Mugen87)
  • Prevent translators from aggressively translating parameter names. #32868 (@ycw)
  • KTX2Loader. Fix typo in TYPE_MAP. #32899 (@epreston)
  • Clarify auto update flags. #32909 (@Mugen87)
  • Add missing JSDoc. #32921 (@Mugen87)
  • FileLoader: Fix typo in JSDoc. #32946 (@glowsenior)
  • Added llms.txt, llms-full.txt and llms/build.js script. #32673 (@mrdoob)
  • build-docs: Clean up stale .html files before generating new ones. ed98cc4aa1f5decd9b23f54aa5ca2865e95fa56a (@mrdoob, @claude)
  • Fix typo and link in Installation manual. #32972 (@pavan-sh)
  • utils : update probeAsync jsdoc. #32995 (@epreston)
  • NodeMaterialObserver: Fix typo. #33024 (@Mugen87)

Manual

  • Frame-rate independent cube rotation example. #32627 (@satelllte)
  • Update rendering-on-demand.html. 4bbae20d6759dd0bd160fede992dd5d82e0b8294 (@Mugen87)
  • Improve Chinese translation. #32804 (@guo-weijie)
  • Update WebGPU guide. #32846 (@Mugen87)
  • docs(zh): translate "Getting Started" manual pages into Chinese. #32996 (@DDDDD12138)
  • Add Physics page. #33004 (@Mugen87, @walcht)
  • Replace the template literal with string concat in lights page. #33012 (@v-stamenova)
  • Improve Chinese translation. #33021 (@DDDDD12138)

Examples

  • Cleanup examples. #32528 (@Methuselah96)
  • Add external example for Polyslice G-code slicer. #32502 (@jgphilpott, @microsoftcopilot, @Mugen87)
  • Remove material AO demo. #32579 (@Mugen87)
  • Update webgpu_shadowmap. #32610 (@sunag)
  • Add basic fog scattering demo. #32613 (@Mugen87)
  • Add shadow tag to webgpu_postprocessing_sss. e85890ebc870883c4147fefd472cb13542bc9e4b (@mrdoob)
  • Clean up. 15cbc8c6f2b104835082cf08dadfdd1a72fcf5b0 (@mrdoob)
  • Improved grid in webgpu_loader_materialx. 5cde3c7ec5af65456dfc1c29d3e592be6051400f (@mrdoob)
  • Cleanup examples. #32634 (@Methuselah96)
  • Improved examples. 0168a66eaebd0cd5a5ae5dc85ad20ed34b03827a (@mrdoob)
  • Added bloom to ocean examples. #32680 (@mrdoob)
  • Improved webgl_animation_keyframes. #32685 (@mrdoob)
  • jolt-physics@1.0.0. #32711 (@linbingquan)
  • Remove obsolete shadow bias from WebGPU demos. #32715 (@Mugen87)
  • Add missing UnrealBloomPass parameters. #32736 (@Methuselah96)
  • Add support for reversed depth to post processing modules. #32773 (@Mugen87)
  • Replace Clock with Timer. #32782 (@Mugen87)
  • Update Godrays demo. #32801 (@Mugen87)
  • Improved draco example and re-encode bunny.drc with 2.2 (cl7) reducing file size from 96KB to 47KB. 89c278c26286bfb223a2c82ec388b094b69d2a94 (@mrdoob)
  • Update webgpu_postprocessing_godrays.html. d167b69e3c0b7157ac96ca9eda3c5a0c351cfa2b (@Mugen87)
  • Various fixes for WebGPU compatibility mode. #32907 (@greggman)
  • Add Volumetric Lighting using TRAA. #32953 (@sunag)
  • Update webgpu_parallax_uv, and webgpu_cubemap_adjustments examples using .hdr file. #32976 (@sunag)
  • Scroll sidebar to selected example. #32980 (@sunag)
  • Clean up. #32994 (@Mugen87)
  • Improve birds compute demo. #33016 (@Mugen87)
  • Fix sidebar scrolling to selected example. #33023 (@sunag)

Editor

  • Modernized ui.js. #32545 (@mrdoob)
  • use ES6 const/let for app.js. #32712 (@linbingquan)
  • Move render options from sidebar to menubar. #32727 (@mrdoob)
  • Replace FFmpeg with WebCodecs for video rendering. #32728 (@mrdoob)
  • Use parseAsync when rendering image. f02c6851af95be4d2ca655521a6928bd7e35d297 (@mrdoob)
  • Add Resources panel to Project sidebar. #32729 (@mrdoob)
  • UI css scope. #32714 (@linbingquan)
  • Enable logarithmic depth buffer. #32732 (@mrdoob)
  • Debounce Resources panel updates. 8084de7640e5b7794754f8bad3b53b9641840493 (@mrdoob)
  • Add default environment. #32752 (@mrdoob)
  • ESLint: migrate to flat config, note missing eqeqeq rule. #32754 (@ycw)
  • Simplify environment handling. #32757 (@mrdoob)
  • Clean up sw.js. d9b39f4ea88d1b87d91c7f1f6cb43c04670658cd (@mrdoob)
  • Improve service worker caching and activation. c36ae33e09de7cb788ad098c6778ac2b8d10249b (@mrdoob)
  • Add dialog for glTF import. #32784 (@Mugen87)
  • Improve geometry sidebar with interleaved and instanced support. 86c5b3e9afb9a910909f06e6086ffccb519cc7dc (@mrdoob, @claude)
  • Change default tone mapping to Neutral. ceda42c71f661585fa16282536695ef0c18e781f (@mrdoob, @claude)
  • Added WebGPURenderer support. #32842 (@mrdoob, @claude)
  • Improve UI layout. 293ed86238d8563af70a4ddab51067891c7188ee (@mrdoob, @claude)
  • Fix camera move error. #32843 (@linbingquan)
  • Clean up Viewport.Controls. a97401bca9c0bbacbb931aa0f8a446ad161c1ae2 (@mrdoob, @claude)
  • Add morph target support. #32844 (@Mugen87)
  • Fix canvas reference for video rendering. #32864 (@ycw)
  • Retain viewport color when rendering images/videos. #32866 (@Mugen87)
  • Deprecate ServiceWorker. 3ab79b8334a6c905f7ab54ef02ed3e82884aad6a (@mrdoob, @claude)
  • fix app publishing for project using WebGPURenderer. #32897 (@ycw)
  • Refine eslint config: limited exclusion and lint fixes. #32917 (@ycw)
  • Cleanup. #32965 (@linbingquan)
  • Add Animation panel. #32869 (@mrdoob, @claude)
  • fallback viewport camera to default camera. f4f07b2b4a5b5bb0fb0be723b19dc0641ba7f8b7 (@mrdoob)

Tests

  • Remove express dependency. #32649 (@mrdoob)
  • Removed rollup-plugin-filesize dependency. #32650 (@mrdoob)
  • Replaced jimp with jpeg-js and pngjs. #32652 (@mrdoob, @claude)
  • Replaced servez with custom server.js. #32654 (@mrdoob)
  • Removed pixelmatch dependency. #32656 (@mrdoob)
  • Remove servez reference. adfc78595273c614f1e0557131644924a039c322 (@mrdoob)
  • remove jshint remnants. #32885 (@ycw)

Utils

  • Replaced concurrently with custom preview.js. #32655 (@mrdoob)
  • Update utils/server.js to selfsigned 5.0.0. 5b5594a161c3c41f6e1fc9aa58e96949bbc5c2d8 (@mrdoob)
  • server.js: removed redundant call to path.normalize(). 7cc18054c7fa5e438b9a6cd648b1d4296282920d (@mrdoob)
  • server.js: simplified code. 7cd43e066a725ea6b2349e52911a01613a9cbeaa (@mrdoob)
  • Remove dev-ssl and preview-ssl. #32672 (@mrdoob)
  • utils/server.js: cross-platform isMain check. #32674 (@ycw)
  • Add changelog generator. #32781 (@mrdoob, @claude)
  • Fix loading of sites without .html extension. #32970 (@Mugen87)
  • build-llms: Clean up stale .md files before generating new ones. f45d6f94de70d6f8351a0e0a17628979718044dc (@mrdoob, @claude)
  • Improve changelog.js. 2cc37c2bdab8318bdb14033bdbe6763b695d21b2 (@mrdoob, @claude)
  • Improve changelog.js. 8863cdbd3aa3f66df4c5e5385f717adaf8b06ada (@mrdoob, @claude)
View originalPermalink
How r183 went

r182

Added 3
  • Add indirectOffset parameter for indirect drawing in BufferGeometry
  • Add support for StorageInstancedBufferAttribute in InstanceNode
  • Add basic support for normal unpacking in NormalMapNode
Changed 10
  • Migrate to ESLint 9 with flat config
  • Optimize BatchNode generated shader code
  • Improve ChainMap dynamic key size
  • Unify Light.toJSON() implementations
  • Align Line2NodeMaterial wide lines with WebGLRenderer version
  • Optimize Matrix4.determinant() calculation
Fixed 6
  • Fix index and attribute updates in BatchedMesh.optimize()
  • Honor closed property of CatmullRomCurve3 in ExtrudeGeometry
  • Fix Material.copy() to include allowOverride
  • Avoid NaN values in Matrix4 when scale is zero
  • Fix iridescence energy conservation for mixed materials in MeshPhysicalMaterial
  • Fix furnace test energy loss for intermediate metalness values in MeshStandardMaterial
Removed 1
  • Remove LightProbe.fromJSON()

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#181--182 https://github.com/mrdoob/three.js/milestone/95?closed=1

  • Global
    • Migrate to ESLint 9, flat config. #32471, #32518, #32519, #32520 (@gkjohnson, @Mugen87)
  • BatchedMesh
    • Fix index and attribute updates in optimize(). #32185 (@querielo)
  • BatchNode
    • Optimize generated shader code. #32203 (@Mugen87)
  • BufferGeometry
    • Add indirectOffset parameter for indirect drawing. #32392, #32413 (@holtsetio, @RenaudRohlinger)
  • ChainMap
    • Improve dynamic key size. #32510 (@sunag)
  • ExtrudeGeometry
    • Honor closed property of CatmullRomCurve3. #32410 (@Mugen87)
  • InstanceNode
    • Add support for StorageInstancedBufferAttribute. #32240 (@RenaudRohlinger)
  • Light
    • Unify toJSON() implementations. #32414 (@Mugen87)
  • LightProbe
    • Remove fromJSON(). #32415 (@Mugen87)
  • Line2NodeMaterial
    • Align wide lines with WebGLRenderer version. #32234 (@Mugen87)
  • Material
    • Fix copy() to include allowOverride. #32269, ba1655cf3587349768665c442a4f7cc0ecd23759 (@crazylogic03, @Mugen87)
  • Matrix4
    • Optimize determinant() calculation. #32157 (@mrdoob)
    • Avoid NaN values when scale is zero. #32440 (@Om-Mishra09)
  • MeshPhysicalMaterial
    • Fix iridescence energy conservation for mixed materials. #32309 (@mrdoob)
    • Improve Sheen energy conservation and analytic approximation. #32356, #32397 (@mrdoob)
  • MeshStandardMaterial
    • Fix furnace test energy loss for intermediate metalness values. #32190, #32201 (@mrdoob)
    • Improve physical accuracy. #32330 (@mrdoob)
  • NodeBuilder
    • Add missing vector types to generateConst(). #32162 (@cmhhelgeson)
    • Cache node attributes for vertex stage only. #32189 (@Mugen87)
    • Ignore events for shared context. #32492 (@sunag)
  • NormalMapNode
    • Add basic support for normal unpacking. #31695 (@castano)
  • PMREMGenerator
    • Improve GGX VNDF accuracy and match Blender roughness. #32311 (@mrdoob)
    • Reduce DFG LUT resolution to 16x16. #32358 (@mrdoob)
  • PointShadowNode
    • Refactor to use native cube depth texture. #32379 (@mrdoob)
  • PolyhedronGeometry
    • Fix typo in fromJSON(). #32475 (@Ayush123-e)
  • ShaderMaterial
    • Fix copy() to include missing properties. #32219 (@NssGourav)
  • Source
    • Guard reference to VideoFrame. #32301 (@Mugen87)
  • StructTypeNode
    • Fix memory length calculations. #32377 (@holtsetio)
  • TSL
    • Add renderer context node (global). #32295 (@sunag)
    • Check for undefined in uniform(). #32183 (@Mugen87)
    • Add texture3DLoad() and texture3DLevel(). #32171 (@RenaudRohlinger)
    • Add bitcount related functions. #31990 (@cmhhelgeson)
    • Add support for mat3 and mat4 using bufferAttribute(). #32204 (@sunag)
    • Do not auto-generate tangent attribute. #32220 (@Mugen87)
    • Pre-pass using global context. #32276, #32345 (@sunag)
    • Introduce float packing / unpacking intrinsics. #32329 (@Ne0nWinds)
    • Introduce builtinShadowContext() and builtinAOContext(). #32384, #32378 (@sunag, @querielo)
    • Renamed DFGApprox to DFGLUT. #32399 (@mrdoob)
    • Fix non-stack function call with loops. #32420 (@sunag)
    • Prevent memory leaks in ShadowNode. #32395 (@querielo)
    • Fix get member from array element. #32514 (@sunag)
    • Remove nodeObject() for Node classes. #32515 (@sunag)
  • Vector3
    • Clean up. #32363 (@MOHITKOURAV01)
  • WebGLRenderer
    • Support more EAC texture formats. #32308 (@castano)
    • Modernized shadow mapping. #32181, #32303, #32407, #32443 (@mrdoob)
    • Align transmission render target samples with canvas. #32444 (@mrdoob)
    • Remove SUPPORTS_VERTEX_TEXTURES. #32455 (@mrdoob)
    • Clean up setupRenderBufferStorage(). #32456 (@mrdoob)
    • Use Map for O(1) program lookup. #32463 (@mrdoob)
    • Move point light shadow logic from PointLightShadow. #32473 (@mrdoob)
    • Refactor tone mapping and shadow map functions. #32512 (@mrdoob)
    • Add outputBufferType and setEffects(). #32461 (@mrdoob)
  • WebGPURenderer
    • Support more EAC texture formats. #32308 (@castano)
    • Fix textured backgrounds with ortho cameras. #32313 (@Mugen87)
    • Improve StorageTexture3D support. #32150 (@RenaudRohlinger)
    • Optimize VSM shadow code. #32209 (@mrdoob)
    • Fix shadowing of error function. #32245 (@Methuselah96)
    • Improve cache bindings from node uniforms. #32244 (@sunag)
    • Set opaque blend mode for secondary MRT targets. #32265 (@sunag)
    • Add update ranges for bindings. #32248 (@sunag)
    • Buffer labeling adjustment. #32247 (@cmhhelgeson)
    • Relates MRT for RenderContext in obtaining a unique context. #32264 (@sunag)
    • Fix VSM shadow artifacts. #32327 (@mrdoob)
    • Fix point light shadows. #32365 (@mrdoob)
    • PCF shadow filtering with Vogel disk sampling and IGN. #32381, #32407 (@mrdoob)
    • Use correct cache for default cube textures. #32425 (@SE7EN2028)
    • Refine video texture warning. #32439 (@Mugen87)
    • Improve resource disposal. #32446 (@querielo)
    • Skip invalid frame of video textures. #32441 (@whatisor)
    • Improve Bind Group Layout cache system. #32451, #32249 (@cmhhelgeson, @Mugen87)
    • Consistent enable() and disable() usage. #32503 (@Mugen87)
    • Consistent bindFramebuffer() usage. #32504 (@Mugen87)
    • Rename getColorBufferType() to getOutputBufferType(). #32501 (@sunag)
    • Use outputType as default in getPreferredCanvasFormat(). 5ae9a2edc7698b96457064355bd4df505814f475 (@sunag)
    • Prevent translation of skybox. #32526 (@Mugen87, @SebastianTusk)
  • WGSLNodeBuilder
    • Improves code formatting. #32511 (@sunag)

Docs

  • Clean up. d70adae523c1b3c67defbe9fdf3a69c153cbd454, 9e94632cb90fc22f0b32f1461d625439b9db47e8, 72f91e3cf64eee7f392c8b15bddbc36bc56247d5 (@Mugen87)
  • Add missing @private annotation. #32165 (@Mugen87)
  • Fix external links. #32161 (@mrdoob)
  • Fix ShadowNode JSDoc. #32166 (@Mugen87)
  • Improved search with category matching. #32164 (@mrdoob)
  • Fix JSDoc of inspector. #32192 (@Mugen87)
  • Remove unused parameter from BatchedMesh.optimize(). #32186 (@querielo)
  • Improve ShaderMaterial.fog. #32224 (@Mugen87)
  • Fix return type in compileAsync(). #32205 (@querielo)
  • Fix options of PMREMGenerator. #32285 (@ycw)
  • Improve SkyMesh. #32289 (@jwheare)
  • Open panel on mobile when no page is selected. #32261 (@mrdoob)
  • Fix typo in MaterialLoader. #32316 (@michael-erskine)
  • Replace [name] in docstring. #32332 (@ycw)
  • Update default anisotropy value in Texture. #32346 (@thibka)
  • Fix restitution param desc in physics addons. #32341 (@SollyBunny)
  • Fix typo in DecalGeometry. #32366 (@rotu)
  • Improve Bloom radius description. #32450 (@Mugen87)
  • Fix Renderer WebGPU convention. #32457 (@sunag)
  • Fixed typo in BufferGeometry. #32477 (@Magnus1X)

Manual

  • Update OffscreenCanvas support details. #32184 (@aganders3)
  • Fix formatting in prerequisites.html. #32217 (@Mugen87)
  • Add guide about Post-Processing with WebGPURenderer. #32279 (@Mugen87)
  • Add guide about WebGPURenderer. #32260 (@Mugen87)

Examples

  • Add radial blur demo. #32297 (@Mugen87)
  • Fix chromatic aberration type usage of caustics example. #32169 (@sunag)
  • Improve BPCEM demo. #32172 (@Mugen87)
  • Fix thumbnail of backdrop demo. #32178 (@Mugen87)
  • Simplify render bundle demo. #32215 (@Mugen87)
  • Cleanup stats-gl. #32242 (@RenaudRohlinger)
  • Improve ray marching in volume rendering examples. #32235 (@mrdoob)
  • Move webgpu_struct_drawindirect to TSL. #32222 (@cmhhelgeson)
  • Add WebGPU Contact Shadows. #32262 (@querielo)
  • Renamed “external” tag to “community”. #32232 (@mrdoob)
  • Open panel on mobile when no example is selected. #32261 (@mrdoob)
  • Update credit link in webgl_animation_skinning_ik. #32259 (@abernier)
  • Add model selector to glTF loader examples. #32364, 1296afb199e2420f322bd5d45701fd686cfe2f38, #32406 (@mrdoob)
  • Made shadows soft in webgl_shadowmap_pointlights. 56838ce12c409fdf24992932839490d7ab58877f (@mrdoob)
  • Added webgpu_shadowmap_pointlight example. 3b0c9cd4760c0b75f3fa4ce1ac5f882e37f68fd3, 645e0898bdbf6992cbd24c016e6a539d68181873 (@mrdoob)
  • Migrate royal_esplanade examples to UltraHDRLoader. #32380 (@mrdoob)
  • Use real-world scale in stereo demo. #32403 (@Mugen87)
  • Fix WebGPU water simulation on mobile GPUs. #32411 (@mrdoob)
  • Update Compute Fluid to use IndirectStorageBuffer. #32176 (@cmhhelgeson)
  • Update webgl_loader_texture_ktx example with new formats. #32448 (@castano)
  • Improved RectAreaLight examples. #32493 (@mrdoob)
  • Unify import path for WebGPU related classes. #32494 (@Mugen87)
  • Fix MRT readback with WebGL backend. #32505 (@Mugen87)

Addons

  • AmmoPhysics

    • Support restitution. #32347 (@SollyBunny)
  • BloomNode

    • Implement disposal of materials to prevent memory leaks. #32452 (@querielo)
  • Controls

    • Fix stuck state when releasing mouse outside window. #32323 (@mrdoob)
  • CSM

    • Reuse origin vector. #32331 (@Mugen87)
  • Inspector

    • Fix Viewer aspect ratio. #32194 (@sunag)
    • Fix slider dimensions. #32177 (@Mugen87)
    • Improve UX. #32197, a6ca2537932e47510b2542990f6033d9f794454a (@sunag)
    • Add window/panel boundary constraints. #32208 (@sunag)
    • Mini-panel for parameters. #32257 (@sunag)
    • Fix value update of number and checkbox elements. #32355 (@Mugen87)
    • Fix cube depth texture error. #32412 (@sunag)
    • Update checkmark internal box size. 7ad089e773167ed7a7da33dc13ee7fd05280bc36 (@sunag)
    • Add warn if the inspected node outside of frame scope. #32458 (@sunag)
  • LDrawLoader

    • Align material, group behavior with other loaders. #32522 (@gkjohnson)
  • MapControls

    • Improve panning accuracy. #32324 (@mrdoob)
  • Octree

    • Add Box3 interface. #32343, 6e006b29964ff6facb832690d3e38918d8434b64 (@Mugen87, @mrdoob)
  • Physics

    • Add errors when trying to use getShape() for unsupported geometry types. #32372 (@SollyBunny)
  • PixelationPassNode

    • Fix zero normal processing. #32159 (@Mugen87)
  • SkyMesh

    • Add isSkyMesh flag and deprecate isSky. #32263 (@querielo)
  • SSRNode

    • Ensure boolean value for isPerspectiveCamera uniform. #32218 (@FarazzShaikh)
  • SVGLoader

    • Add stylesheet jsName vs svgName fix. #32119 (@jhlggit)
  • SVGRenderer

    • Add depth sorting for Sprites and SVGObjects. #32212 (@mrdoob)
    • Add near/far plane clipping support. #32210 (@mrdoob)
  • TRAANode

    • Improve motion factor and disocclusion. #32296 (@shotamatsuda)
    • Replace MSAA sample pattern with Halton sequence. #32319 (@shotamatsuda)
    • Reduce smearing. #32322 (@shotamatsuda)
  • TSL Transpiler

    • Support struct definitions and declarations. #32300 (@Ne0nWinds)
    • Fix Fn layout generation when generating a function with no input parameters. #32272 (@Ne0nWinds)
  • UltraHDRLoader

    • Fix incorrect alpha channel values. #32464 (@mrdoob)
    • Improve parsing performance. #32468, 4b110fe4c39799672f1d1de51fc013d5f2930989, d7f67fafff6eaa4871963b14baeff060f2f13102 (@mrdoob)
    • Remove debug console. #32513 (@sunag)
  • UnrealBloomPass

    • Fix alpha handling. #32517, #32521(@mrdoob, @gkjohnson)
  • VOXLoader

    • Added scene graph support. #32488 (@mrdoob)
    • Implemented greedy meshing. #32489 (@mrdoob)
    • Accept version 200 files. #32490 (@mrdoob)
    • Replace VOXMesh and VOXData3DTexture classes with functions. #32491 (@mrdoob)

Editor

  • Save and restore controls state. #32408 (@mrdoob)
  • Scale PointLightHelper based on camera distance. b7c9099db9d7e6a959d2bf46b2e5fb807e91dbcf (@mrdoob)
  • Cycle through overlapping objects on click. c745aee7c0b5297a986818235d2f2ffae029223c (@mrdoob)
  • Scale down touchscreen zoom speed #32454 (@TylerSelden)

Tests

  • Removed todo()s. #32483 (@mrdoob)
View originalPermalink
How r182 went

r181

Added 2
  • Support wireframe in MeshMatcapMaterial
  • Add hints in comments in NodeBuilder
Changed 9
  • Use internal log, warn and error functions instead of the system ones
  • Updated Earcut to latest version
  • Lazily instantiate abort controller in LoadingManager
  • Simplify caching in NodeFrame
  • Implement GGX VNDF importance sampling in PMREMGenerator
  • Rewrite slerp() and slerpFlat() in Quaternion
Fixed 9
  • Honor updateRanges in InstanceNode
  • Fix alpha discard in NodeMaterial
  • Honor aoNode in NodeMaterial clone()
  • Ensure clear of internal render target in PassNode
  • Fix Favg assignment in PhysicalLightingModel
  • Fix resize of 3D textures in RenderTarget
Removed 1
  • Remove WebGL 1.0 compatibility code in WebGLRenderer

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#180--181 https://github.com/mrdoob/three.js/milestone/94?closed=1

  • Global
    • Use internal log, warn and error functions instead of the system ones. #31790 (@sunag)
  • Earcut
    • Updated to latest version. #31956 (@tonybart1337)
  • InstanceNode
    • Honor updateRanges. #31816 (@Mugen87)
  • LoadingManager
    • Lazily instantiate abort controller. #32120 (@NuroDev)
  • MeshMatcapMaterial
    • Support wireframe. #31917 (@WestLangley)
  • NodeBuilder
    • Add hints in comments. #32004 (@cmhhelgeson)
  • NodeFrame
    • Simplify caching. #31896 (@cmhhelgeson)
  • NodeMaterial
    • Fix alpha discard. #31927 (@Mugen87)
    • Honor aoNode in clone(). #32084 (@querielo)
  • PassNode
    • Ensure clear of internal render target. #31993 (@Mugen87)
  • PhysicalLightingModel
    • Fix Favg assignment. #32094 (@sunag)
  • PMREMGenerator
    • Implement GGX VNDF importance sampling. #32114, #32134, #32148, #32154, #32225, #32310 (@mrdoob)
  • Quaternion
    • Rewrite slerp() and slerpFlat(). #31875 (@WestLangley)
  • RenderTarget
    • Fix resize of 3D textures. #31854 (@Mugen87)
  • Sampler
    • Don't set _texture to null. #31874 (@Mugen87)
  • ShadowNode
    • Fix shadows in first frame. #32021 (@Mugen87)
  • TextureNode
    • Manage y-flip as a uniform. #31929 (@Mugen87, @sunag)
  • TSL
    • Clone PassMultipleTextureNode with offsetNode. #31849 (@shotamatsuda)
    • Fix onDispose listener not being removed in Sampler. #31868 (@shotamatsuda)
    • Minor fixes. #31808 (@Mugen87)
    • Fix coordinate types for load() on 3D texture nodes. #31775 (@shotamatsuda)
    • Add member type support for layout function parameter. #31838 (@sunag)
    • Fix conditional cache and introduce isolate(). #31973, 594893f13ea9f252a2e918d2c3755878157220cb (@sunag)
    • Forces assignment of a function call if a loop is detected. #31974 (@sunag)
    • Fix auto type conversion for layout parameters. #32059 (@sunag)
    • Resolve some name collision. #32032 (@sunag)
    • Move Interleaved Gradient Noise into PostProcessingUtils. #32074 (@Mugen87)
    • Fix recursive cache key. #32070 (@sunag)
    • Fix size computations in FX/RTT nodes. #32077 (@Mugen87)
    • Ensure nodeProxyIntent always sets intent: true. #32092 (@querielo)
    • Refactor positionViewDirection to handle orthographic camera cases. #32088 (@querielo)
    • Fix overloadingFn return type. #32112 (@sunag)
    • Add active stack and improve "node block" support. #32109 (@sunag)
    • Assign stack for nodes after remove stack. #32137 (@sunag)
    • Add OnBefore* events. #32144, 1d9c5a0859ac357488443d62b44ed2c457915fc1 (@sunag)
    • Fix get element through an output Fn value. #32143 (@sunag)
  • VideoTexture
    • Reset internal state rVFCId on dispose. #32082 (@ycw)
  • WebGLRenderer
    • Fix WebXR Depth Sensing. #31831 (@cabanier)
    • Use DFG LUT instead of analytical approximation. #32054, 9b0d0937c75eab4d46f5f66b3e0c18bcb1f8c07b, 5e3cd6c52b3151a7243a0dd639334c7ce4d9c320, 361853114a24b7df70df907d3f38d1997a24b34d, e225530224722d9df1e392dbfcffc7dbdbe46a4a (@mrdoob)
    • Clean up. 39b05002504a06b6a58a07570b0a6231f9390417 (@mrdoob)
    • Remove WebGL 1.0 compatibility code. #32071, 62e6f436cec8bae9a55f47f7fca16629ea0eb679 (@mrdoob)
    • Add multi-scattering energy compensation for direct lighting. #32072 (@mrdoob)
    • Improve rough reflection mixing for IBL. #32102 (@mrdoob)
  • WebGPURenderer
    • Guard reference to VideoFrame. #31864 (@Mugen87)
    • Prevent dispose of default textures. #31860 (@Mugen87)
    • Fix renderer not being garbage collected. #31798 (@shotamatsuda)
    • Properly delete compute node bindings in dispose(). #31832 (@cmhhelgeson)
    • Properly delete bind groups when render objects are disposed. #31879 (@cmhhelgeson)
    • Align copyTextureToTexture() with WebGLRenderer. #31810 (@shotamatsuda)
    • Fix shadow's alphaTest if used material.map. #31803 (@sunag)
    • Add cache for shadow nodes. #31880 (@sunag)
    • Decouple samplers from textures. #31899 (@Mugen87)
    • Introduce Inspector. #31869, #31928, #31958, #31963, #31962, #31982, #31997, #32003, #32007 (@sunag)
    • Fix rendering morphed meshes. #31904 (@Mugen87)
    • Skip resolving anti-aliasing twice. #31743, #31924 (@sunag)
    • Introduce CanvasTarget. #31919 (@sunag)
    • Make Render Bundle work with MRT. #31906 (@Berthur)
    • Fix tone mapping mode detect. #31957 (@sunag)
    • Fix binding sampler update. #31971 (@sunag)
    • Fix logs in WebGL backend. #31978 (@Mugen87)
    • Fix compressed texture feature detection for WebGL backend. #31980 (@Mugen87)
    • Adjustments and Polyfill in GLSLNodeBuilder. #31999 (@cmhhelgeson)
    • Fix functions with struct layouts cannot resolve struct types. #32000 (@shotamatsuda)
    • Allow manual mipmap creation with StorageTexture. #31983, #32039 (@RenaudRohlinger)
    • Deprecate renderAsync(), computeAsync() and related async methods. #32022, #32026, #32029, #32033, #32042, #32063 (@Mugen87, @sunag)
    • Remove waitForGPU(). #32024 (@Mugen87)
    • Fix transmission flicker. #32043 (@Mugen87)
    • Add multi-scattering energy compensation for direct lighting. #32089 (@mrdoob)
    • Improve rough reflection mixing for IBL. #32108 (@mrdoob)
    • Fix material transparent assignment. #32110 (@sunag)
    • Enable dynamic shadowMap type switching. #32105 (@querielo)
    • Introduce dispatchWorkgroupsIndirect #31488 (@Spiri0)
    • Improve shader validation #32130 (@sunag)
    • Fix dispose RenderTarget textures. #32131 (@sunag)
    • Fix types for indirect compute and modify example to show usage. #32129 (@TheBlek)
    • Improve cache key verification. #32138 (@sunag)
  • XRManager
    • Reset XRWebGLBinding on session end. #31835 (@harryhjsh)

Docs

  • Document animation loop parameter. #31853 (@Mugen87)
  • Add PLYLoader page. #31848 (@mmjinglin163)
  • Improve AnimationClip page. #31915 (@kang-git)
  • Improve Chinese translation. #31806, #31817, #31828, #32041 (@mmjinglin163, @pangda9527)
  • Improve JSDoc. #31822, #31819, #32017 (@s-rigaud)
  • Update link to packLDrawModel script extension. #31938 (@jjohnson5253)
  • Improve translation accuracy and consistency. #31960 (@puxiao)
  • Added redirects for old docs URL. #31986 (@mrdoob)
  • Reduce folder size of new docs. #31992 (@mrdoob)
  • Updated templates with old design. #32002 (@mrdoob)
  • Generate old docs system and design. #32036, 28dcaf5f9db3326dc40eb98d377b48e72afbf771, 64d3d974170722d303d49b77b48d7e466da2608d, ed360e81958bbebd4a4c0bf4ae254dc884aa5593, a02ba14525946ce991a6a119449b7ea9c04f358e, 4b510dfb7df38ac8aa1e0a7f64a2b3550dbc7615, 1ef293278f707f7f715c0313772bc86d10d3216c, a4777982c4b1c1ba3106fd59a10393172bfd63cb (@mrdoob)
  • New Docs: Add translation disable flags. #32048 (@mrdoob)
  • Add type annotations for dispatch size in ComputeNode. #32068 (@shotamatsuda)
  • Improve GLTFLoader page. #32096 (@marwie)
  • Removed legacy docs. #32117
  • Added new docs generated with JSDocs. #32118, 96fe466f8edce6e90f7c48a6fe252a2b22f7b667 (@mrdoob)
  • Update JSDoc links for better readability. #32132 (@marwie)
  • Fixed properties layout. #32156 (@mrdoob)

Manual

  • Don’t open external URLs in iFrame. #31856 (@xjh22222228)
  • Manual: Improve Responsive guide. #31942 (@davcri)

Examples

  • Clean up. #31830, #31829, #31823, #31855, #31843, #31811, #31842, #31844, #31824, #31898, #31887, #31914, #32011, #32018, #32051, #32057 (@WestLangley, @s-rigaud, @Methuselah96, @Mugen87)
  • Use instancing in webgpu_compute_birds example. #31766 (@cmhhelgeson)
  • Add WebGPU HDR example. #31893 (@RenaudRohlinger)
  • Update with the new style and inspector. #31907, #31951, #31954, #31964, #31976, #31984, #31995, #32060 (@sunag, @Mugen87)
  • Set OrthographicCamera near plane >= 0. #31912 (@WestLangley)
  • Use globalId in compute water demo, update IndexNode comments. #31941 (@cmhhelgeson)
  • Add shadow intensity to spotlight examples. #31972 (@WestLangley)
  • Don’t use property() for creating variables. #32028 (@shotamatsuda)
  • Improve webgl_watch example. b61441df2e92a487f3063cd44cc614be8bbd9a4a (@mrdoob)
  • Improve webgl_postprocessing_unreal_bloom example. 2cff1474de2e0037c12bc46c1d9d472f14b04637 (@mrdoob)
  • Apply camera constraint immediately in WebGPU bloom demo. #32081 (@ycw)
  • Fix output control in SSS demo. #32083 (@ycw)
  • Add bloom strength to webgl_postprocessing_unreal_bloom_selective. #32125 (@querielo)
  • Visualize normal as color in webgpu_postprocessing_ao. #32141, #32153 (@ycw, @sunag)

Addons

  • AfterImageNode

    • Fix swap. #32140 (@Mugen87)
  • AsciiEffect

    • Remove noise from black texture. #31858 (@s-rigaud)
  • BitonicSort

    • Add new bitonic sort addon. #31852, #31949 (@cmhhelgeson)
  • CSS2DRenderer

    • Add sortObjects. #31946 (@Konseyy)
  • CSSRenderer

    • Ensure element exists when execute remove. #31905 (@xiaoliyooo)
  • DRACOLoader

    • Implement data alignment for WebGPU. #31991 (@donmccurdy)
  • FontLoader

    • Add text direction. #31683, #32078 (@Rikahei)
  • GlitchPass

    • Fix heightMap member name. #32047 (@joey8angelo)
  • GTAONode

    • Optimize render target format. #31883 (@Mugen87)
    • Add basic support for temporal filtering. #32076 (@Mugen87)
  • HTMLMesh

    • Fix dimensions of canvas drawing. #31931 (@pvtech-adam)
  • KTX2Loader

    • Fix ETC1S/UASTC prioritization. #31871 (@zeux)
    • Honor setRequestHeader(). #32115 (@LR17)
  • MaterialXLoader

    • Use ImageBitmapLoader to prevent blocking. 154e14558021d0aae2770eafb621741ac25680e4, bca53e60926c4afb05c6d16672c00554d9c8bbde (@mrdoob)
  • ProgressiveLightMap

    • Make normals mandatory. #31825 (@Mugen87)
  • SelectionBox

    • Add support for BatchedMesh. #32052 (@sunjiang0018)
  • SSGINode

    • New node for screen-space global illumination. #31839, #31865, #31867, #31863, #31873, #31881, #31890, #31882 (@Mugen87, @zalo)
  • SSSNode

    • Add new node for Screen-Space Shadows. #32050 (@Mugen87)
  • SVGLoader

    • Make node transform parsing more robust. #31985 (@Mugen87)
  • TRAANode

    • Reduce Ghosting/Smearing. #31895 (@zalo)
    • Make depth copy more robust. #31908 (@Mugen87)
    • Add adaptive blend weights. #32139 (@Mugen87)
  • TSL Transpiler

    • Fix immutable to dynamic parameter conversion and shadertoy example. #31996 (@sunag)
  • TubePainter

    • Improved generated geometry and added caps. #32025 (@mrdoob)
    • Fixed end caps and removed object allocations. #32030, 21009ebc442a3566e76ba0f4d9b8b19a5c910c7d (@mrdoob)
  • UnrealBloomPass

    • Backported blur improvements. 057d341afde09e38c59037e39fc81198b241258d (@mrdoob)
  • USDZExporter

    • Improve material prop types and setup. #32008 (@mkeblx)
  • ViewHelper

    • Add OffscreenCanvas support. #32128, f957f0b2adada81cb7c1de6fe34a79ead0026a93, babe7f2cc2946b87cdf5e6958fb660bc8ba5d8a3 (@Mugen87)
  • WaterMesh

    • Fix incorrect resolution scale assignment. #32056 (@jonsmithers)
  • XRHandModelFactory

    • Fix inverted hand models. #31634 (@jorodi)

Tests

  • Remove obsolete material callbacks. #31876 (@codyjasonbennett)
  • Improved E2E robustness. #32091, #32090, b3dde01ebb2509893dc41a9d29bd6dfba1794731, 3a987fad398939a7b6a2c4e9b7d2dd5df99ffa50 (@mrdoob)

Editor

  • Fix material reference in SetMaterialRangeCommand. #32080 (@ycw)

Node Editor

  • Fix usage of timerLocal. #31889 (@Mugen87)
View originalPermalink
How r181 went

r180

Added 7
  • Add userData to AnimationClip and honor in glTF loader and exporter
  • Support copy() and clone() for ExternalTexture
  • Add missing map properties to Material toJSON()
  • Add texture offset feature to TSL
  • Add SubgroupFunctionNode with compute reduction demo
  • Introduce uniformFlow() to TSL
  • Add HDR support to WebGPURenderer
Changed 3
  • Move ClippingNode uniforms into render group
  • Make Renderer dispose() more robust
  • Honor sizeAttenuation for SpriteNodeMaterial perspective camera only
Fixed 9
  • Fix caching of texture bindings
  • Fix texelFetch*() code generation with depth textures
  • Fix texture() code generation for depth texture
  • Fix type of bindingsReference in NodeBuilderState createBindings()
  • Fix PointsNodeMaterial scaling bugs
  • Fix broken point primitive rendering
Removed 1
  • Remove deprecated code

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#179--180 https://github.com/mrdoob/three.js/milestone/93?closed=1

  • Global
    • Clean up. #31719, #31564, #31671, #31732, #31734, #31726 (@Methuselah96, @WestLangley, @s-rigaud)
    • Remove deprecated code. #31632, #31555 (@Mugen87)
  • AnimationClip
    • Add userData and honor in glTF loader and exporter. #31586 (@repalash)
  • Bindings
    • Fix caching of texture bindings. #31755 (@Mugen87)
  • ClippingNode
    • Move uniforms into render group. #31716 (@Mugen87)
  • ExternalTexture
    • Support copy(), clone(). #31731 (@donmccurdy)
  • GLSLNodeBuilder
    • Fix texelFetch*() code generation with depth textures. #31760 (@shotamatsuda)
    • Fix texture() code generation for depth texture. #31770 (@shotamatsuda)
  • Material
    • Add missing map properties to toJSON(). #31578 (@Mugen87)
  • NodeBuilderState
    • Fix type of bindingsReference in createBindings(). #31678 (@cmhhelgeson)
  • PointsNodeMaterial
    • Fix scaling bugs. #31627, #31707 (@WestLangley)
    • Fix broken point primitive rendering. #31702 (@Mugen87)
    • Improve JSDoc. #31703 (@Mugen87, @WestLangley)
  • Renderer
    • Make dispose() more robust. #31681 (@Mugen87)
  • RenderObject
    • Honor sampler data in material cache key. #31633 (@Mugen87)
    • Fix cache key for instanced meshes. #31783 (@Mugen87)
  • Sampler
    • Fix dispose. #31751 (@Mugen87)
  • Sprite
    • Improve JSDoc. #31642 (@cmhhelgeson)
  • SpriteNodeMaterial
    • Honor sizeAttenuation for perspective camera only. #31628 (@WestLangley)
  • TSL
    • Add texture offset feature. #31715 (@shotamatsuda)
    • Refine pow2/3/4 and remove polyfill for Windows. #31720 (@shotamatsuda)
    • Improve camera array support and introduce cameraViewport. #31615 (@RenaudRohlinger)
    • Replace Proxy approach with prototypes. #31691 (@sunag)
    • Fix update type of screenDPR. #31706 (@Mugen87)
    • Fix type propagation in members. #31699 (@sunag)
    • Fix member type in function layout. #31609 (@sunag)
    • Fixed persistent reference of the first stack. #31717 (@sunag)
    • Uniformly implement resolution scale. #31697 (@Mugen87)
    • Fix performance of viewportTexture(). #31591, #31599 (@sunag, @Mugen87)
    • Add SubgroupFunctionNode with compute reduction demo. #31378 (@cmhhelgeson)
    • Introduce uniformFlow(). #31531 (@cmhhelgeson)
    • Fix instance buffer size in instance(). #31608 (@ahaensler)
    • Fix missing getMemberType() in context(). #31601 (@sunag)
    • Use dynamic parameters eval for Fn(). #31592 (@sunag)
    • Improve error message for operators with void values. #31593 (@sunag)
    • Improve warnings. #31562 (@sunag)
    • Add AA-samples parameter to reflector-node. #31542 (@NoxDawnsong)
    • Improve Fn() warning if not invoked. #31552 (@sunag)
    • Fix assignment to swizzled for var intent. #31647 (@sunag)
    • Show an error message if no stack defined for assign operation. #31756 (@sunag)
    • Fix bitcast type resolver. #31746 (@cmhhelgeson)
    • Fix primitive vector conversion, vec* with ivec*. #31793 (@sunag)
    • Add bitcast functions and transpiler support. #31781 (@cmhhelgeson)
    • Export screenDPR. #31809 (@shotamatsuda)
  • WebGLBackend
    • Fix manual clear with MSAA render targets. #31705 (@Mugen87)
    • Cache WebGL buffer when updating UBOs. #31684 (@Mugen87)
    • Honor layerUpdates for array textures. #31582 (@ahaensler)
  • WebGPUBackend
    • Remove redundant dispose handlers. #31603 (@Mugen87)
  • WebGPURenderer
    • Fix broken worker support. #31607 (@Mugen87)
    • Fix rgb9e5ufloat usage and rg11b10ufloat constant value. #31698 (@Mugen87)
    • Add HDR support. #29573 (@RenaudRohlinger, @donmccurdy)
    • Support ExternalTexture with GPUTexture #31653 (@donmccurdy)
    • Fix rendering into mips. #31645 (@Mugen87)
    • Add support for manual mipmaps for regular textures. #31637 (@Mugen87)
    • Add support for manual mipmaps for cube textures. #31639 (@Mugen87)
    • Add warning when video textures with invalid color spaces are used. #31569 (@ycw)
    • Fix MSAA using mipmap levels. #31544 (@NoxDawnsong)
    • Add missing rgba8unorm-srgb to WebGPUTextureUtils. #31655 (@Mugen87)
    • Add support for BC4 and BC5 texture compression. #31737 (@Mugen87)
    • Fix Texture.onUpdate() call. #31752 (@Berthur)
    • Fix timestamp query conflict. #31762 (@sunag)
    • Align frontFace and cullMode setup. #31784, #31769 (@sunag, @Mugen87)
  • WebGPUTextureUtils
    • Fix readback buffer size. #31765, 6c7d8077a36efe80e1bb4b42fa5c2846fcd965a4 (@Mugen87, @greggman)
  • XRManager
    • Lazily initialise XRWebGLBinding in XR managers. #31648 (@harryhjsh)
    • Fix typo in getBinding JSDoc. #31656 (@vincentfretin)

Docs

  • Improve JSDoc. #31733, #31742, #31754, #31773, #31772 (@s-rigaud, @Mugen87)
  • Improve Chinese translation. #31616, #31795, #31797 (@IanDingMing, @mmjinglin163)
  • Improve WebXRManager page. #31657 (@harryhjsh)

Manual

  • Improve Chinese translation. #31635, #31574, #31575, #31589, #31590 (@HappyColour, @yuangang123)
  • Fix missing href parameters for manual/#xx/lights. #31763 (@Rikahei)
  • Fix double open hyperlink by open in new tab. #31780 (@Rikahei)

Examples

  • Clean up. #31725, #31700, #31696, #31643, #31623, #31651, #31736, #31738 (@Methuselah96, @linbingquan, @Mugen87, @WestLangley)
  • Add webgpu_multiple_elements example. #31724, #31782 (@sunag)
  • Add WebGPU KTX2 test demo. #31714 (@Mugen87)
  • Add reflector resolutionScale to webgl_mirror example. #31692 (@WestLangley)
  • Add GLTF progressive example. #31625 (@marwie)
  • Add WebGPU check to some compute demos. #31685 (@Mugen87)
  • Improve comments in webgpu_custom_fog_background example. #31626 (@WestLangley)
  • Fix webgpu_compute_particles_fluid GUI. #31570 (@ycw)
  • Rename reversed depth buffer example. #31563 (@WestLangley)
  • Align webgpu_camera with WebGL demo. #31594 (@WestLangley)
  • Add TSL Procedural Wood Material. #31640, #31786 (@SeeleyLogan, @bhouston)
  • Add KHR animation pointer example page. #31761 (@marwie)
  • Added CSS3D + WebGL example. #31572 (@mrdoob)
  • Add FastHDR environment example page #31749 (@marwie)

Addons

  • DepthOfFieldNode

    • New implementation. #31547, #31554 (@Mugen87)
  • DragControls

    • Fix firing events when actions are disabled. #31612 (@ahaensler)
  • FirstPersonControls

    • Fix dispose not release listener. #31606 (@314159265358x)
  • GLTFExporter

    • Make getToBlobPromise() more robust. #31598 (@boggan)
  • GTAONode

    • Add comments to TSL. #31676 (@Mugen87)
  • KTX2Loader

    • Fix WebGPU feature detection. #31721 (@Mugen87)
    • Add VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT. #31689 (@hybridherbst)
    • Support generateMipmaps=true. #31621 (@donmccurdy)
    • Support RGB9E5. #31611 (@donmccurdy)
    • Support R11G11B10 in loader and renderers. #31613 (@donmccurdy)
    • Support for BC4, BC5. #31713 (@donmccurdy)
    • Add PVRTC1 RGBA support. #31771 (@donmccurdy)
  • RGBELoader

    • Rename to HDRLoader. #31604 (@mrdoob)
  • RGBMLoader

    • Removal. #31566 (@mrdoob)
  • ShadowMapViewerGPU

    • Fix DepthTexture usage. #31673 (@sunag)
  • SSRPass

    • Add resolutionScale. #31629 (@Mugen87)
  • SSRNode

    • Use linear filtering and half float for reflection buffer. #31646 (@Mugen87)
    • Improve performance and add quality setting. #31576 (@Mugen87)
    • Add blurred mipmaps and honor roughness. #31649, #31663 (@Mugen87, @sunag)
  • TSL

    • Add boxBlur(). #31556 (@Mugen87)
    • Align API of blur filters and deprecated premultipliedGaussianBlur(). #31557, #31559, #31741 (@Mugen87, @sunag, @s-rigaud)
  • TSL Transpiler

    • Add grouped precedence levels. #31581 (@sunag)
    • Remove the need for toVar(). #31580 (@sunag)
    • Fix addition of Before for non ++ or . #31579 (@sunag)

Tests

  • Run addons unit tests. #31664 (@mkeblx)
  • Add an USDZ E2E test. #31662 (@mkeblx)
View originalPermalink
How r180 went

r179

Added 10
  • Add compileAsync() to PassNode
  • Provide viewport and scissor API in PassNode
  • Add method for computing closest squared distance between line segments in Line3
  • Add abort() to Loader
  • Add checking the lights in NodeMaterialObserver
  • Add setColors() to SkeletonHelper
Changed 6
  • Improve MaterialX import support to align with Blender's MaterialX exporter
  • Rewrite makeOrthographic() in Matrix4 for clarity
  • Ignore private sub properties in getNodeChildren() in NodeUtils
  • Make info log evaluation more robust in Renderer
  • Move Timer into core
  • Rename label() to setName() in TSL
Fixed 3
  • Fix setInstanceCount() in BatchedMesh
  • Fix back-projection in ProjectorLight
  • Make sure fog is applied only once in NodeMaterial
Removed 1
  • Remove unused lineWidth property from Line2NodeMaterial

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#178--179 https://github.com/mrdoob/three.js/milestone/92?closed=1

  • Global
    • Optimize CI workflow by eliminating redundant setup steps. #31383 (@souhailaS)
  • BatchedMesh
    • Fix setInstanceCount(). #31458 (@andreas-hilti)
  • PassNode
    • Add compileAsync(). #31501 (@Mugen87)
    • Provide viewport and scissor API. #31390, #31428 (@Mugen87)
  • ProjectorLight
    • Fix back-projection. #31473, #31474 (@Mugen87)
  • Line2NodeMaterial
    • Remove unused lineWidth property. #31401 (@Jenychen1996)
  • Line3
    • Add method for computing closest squared distance between line segments. #31384 (@TheBlek, @Mugen87)
  • Loader
    • Add abort(). #31276 (@Mugen87, @gkjohnson)
  • MaterialXNodes
    • Improved MaterialX import support to align with Blender's MaterialX exporter. #31439 (@bhouston, @sunag)
  • Matrix4
    • Rewrite makeOrthographic() for clarity. #31451 (@WestLangley)
  • NodeMaterial
    • Make sure fog is applied only once. #31463 (@Mugen87)
  • NodeMaterialObserver
    • Add checking the lights. #31440 (@sunag)
  • NodeUtils
    • Ignore private sub properties in getNodeChildren(). #31523 (@Mugen87, @sunag)
  • Renderer
    • Make info log evaluation more robust. #31438 (@Mugen87)
  • SkeletonHelper
    • Add setColors(). #31484 (@lukehorvat)
  • StorageTexture
    • Add .setSize(). #31502 (@sunag)
  • Timer
    • Move into core. #31385 (@Mugen87)
  • TSL
    • Double-check on the parents of the atomic functions to prevent errors. #31509 (@sunag)
    • Add load() function to texture(). #31510 (@sunag)
    • Introduce boolean for uniform(). #31507 (@sunag)
    • Sequential object as parameters for Fn( { .. } ). #31498 (@sunag)
    • Rename label() to setName(). #31490, #31546 (@Mugen87, @sunag)
    • Add debug() for the stack when running outside the code flow. #31486 (@sunag)
    • Introduce automatic use of toVar() to assign(). #31459 (@sunag)
    • Introduce computeKernel(). #31402 (@Spiri0, @sunag)
    • Fix pass() build during sample() call using Mesh. #31431 (@sunag)
    • viewportTexture() cache FramebufferTexture according to RenderTarget. #31343 (@sunag)
    • Introduce events. #31514 (@sunag)
    • Fix blocky gaussian blur. #31528 (@NoxDawnsong)
  • VideoTexture
    • Cancel rVFC on Dispose. #31375 (@ycw)
  • WebGLRenderer
    • Improve reversed depth buffer support. #31508, #31495, #31499, #31496, #31500, #31464, #31481, #31466, #31370, #31391, #31426, #31410, #31405, #31407, #31512 (@WestLangley, @CodyJasonBennett, @sunag)
    • Support MRT for 2d array textures. #31476 (@mrxz)
  • WebGPUBackend
    • Remove obsolete argument from getDrawingBufferSize(). #31460 (@Mugen87)
    • Fix manual clear() regression. #31388 (@Mugen87)
  • WebGPURenderer
    • Improve and fix texture bindings manager. #31497 (@sunag)
    • SampledTexture extends of Sampler for bindings. #31494 (@sunag)
    • Persistent video texture approach. #31416, #31425, #31423 (@sunag, @Mugen87)
    • Avoid hardcoding color spaces. #31519 (@Mugen87)
    • Explicitly set colorSpace for video textures. #31534 (@ycw)
  • WebGPUUtils
    • Ensure sample count is valid. #31352 (@ycw)
  • WebXRManager
    • Set glBinding separately from layer creation. #31443 (@mikeskydev)
    • Disable left eye layer for right eye camera and vice versa. #31437 (@mrxz)
    • Add Raw Camera Access module. #31487, #31543 (@mikeskydev, @Mugen87)

Docs

  • Clean up. #31447, #31450 (@s-rigaud)
  • Add KTX2Exporter page. #31441 (@mkeblx)
  • Add USDZExporter page #31417 (@mkeblx)
  • Improve AnimationClip page. #31415 (@Mugen87)
  • Improve KeyframeTrack page. #31373 (@floriandotorg)
  • Improve Texture page. #31477 (@agargaro)
  • Improve Korean translation. #31344 (@sonwonjae)
  • Improve JSDoc. #31475, #31380, #31341, #31529, #31535 (@powah, @Mugen87, @WestLangley, @cmhhelgeson)

Examples

  • Clean up. #31504, #31483, #31485, #31412, #31411, #31379, 827a421c0fad4f4cc5c4be12bef62568459aa435 (@Mugen87, @WestLangley, @linbingquan, @mrdoob)
  • Improved webgpu_reflection example. #31409, #31372 (@mrdoob, @Mugen87)
  • Add webgpu_postprocessing_dof_basic. #31445 (@Mugen87)
  • Upgrade meshopt_decoder.module.js to 0.22. #31449 (@zeux)
  • Switch to OrbitControls in webgl_shadowmap example. #31406 (@WestLangley)
  • Improve AA approach in WebGPU water demo. #31354 (@Mugen87)
  • Use onLoad() in webgpu_materials. #31362 (@andyleiserson)
  • Add webgpu_compute_texture_3d example. #31337 (@RenaudRohlinger)
  • Rename import from three to three/webgpu in WebGPU demos. #31518 (@sunag)
  • Add GUI to webgpu_loader_materialx example. #31530 (@WestLangley)
  • Improve WebGPU SSR example. #31539 (@mrdoob)
  • Improve MaterialX example. #31541, d71fc3874e846b63960355f25c44c1a5315c9314 (@mrdoob)
  • Improve WebGPU reflection example. 5e919439cc0362c6b32fa1f493aaba0315b22579 (@mrdoob)
  • Improve transpiler example. 0688cb08bf181e1d7e6367a04a4c89c8b3cdc5bf ba0568f4f51644ec2b6c81e177bd4a1ad4c1db52 (@mrdoob)

Addons

  • EXRLoader

    • Added lossyDctChannelDecode. #31482 (@mrdoob)
    • Introduces output-format API. #31511 (@sciecode)
    • Set color space to linear-sRGB. #31525 (@WestLangley)
  • FBXLoader

    • Fix vertex color check. #31420 (@Mugen87)
  • GTAOPass

    • Improve cache performance. #31454 (@querielo)
    • Exclude Line2 objects from AO calculation #31422 (@wyc001122)
  • HTMLMesh

    • Add support for email and password inputs. #31345 (@HuangLinBao)
  • LensflareMesh

    • Use colorNode instead of fragmentNode. #31433 (@Mugen87)
  • LightProbeGenerator

    • Support FloatType in fromCubeRenderTarget(). #31349 (@Mugen87)
  • OutlinePass

    • Exclude Line2 objects from outline computation. #31503 (@pwlviolet)
  • RapierPhysics

    • Support RoundedBoxGeometry. #31351 (@linbingquan)
  • RoomEnvironment

    • Set emissiveIntensity instead. #31348 (@WestLangley)
  • RoundedBoxGeometry

    • Add type, parameters and toJSON(). #31340 (@vis-prime)
  • SSAOPass

    • Improve cache performance. #31453 (@querielo)
  • TRAANode

    • New TRAA implementation. #31421 (@Mugen87, @sunag)
  • TTFLoader

    • Fix when TTF has different unicode assign to same glyph index. #31386 (@Rikahei)
  • TSL Transpiler

    • Fix operator precedence of GLSLDecoder. #31515 (@sunag)
  • USDZExporter

    • Add option for onlyVisible. #31489 (@mkeblx)
    • Export scene hierarchy. #31448 (@mkeblx)
    • Use object names #31442, #31444 (@mkeblx)
    • Refactor to use two stages. #31400 (@mkeblx)

Tests

  • Clean up Frustum tests. #31456 (@WestLangley)
  • Add test for USDZExporter. #31435 (@mkeblx)

Editor

  • Fix crash when geometry lacks position attribute. #31334 (@AlexRynas)
  • Add support for EXR files. 01d3c943f0452ff856b4bdd162f4c86bd67dc2ee (@mrdoob)
  • Load image loaders only when needed. 2f3dd3822cb270b422dae55153f69dfffd08ff85 (@mrdoob)
View originalPermalink
How r179 went

r178

Added 4
  • Initial support for Float16Array in renderers
  • Add normalized property to GLBufferAttribute
  • Introduce sample() in TSL
  • Introduce textureBicubicLevel() in TSL
Changed 8
  • Upgrade monaco-editor
  • Inline performance.now() in Clock
  • Optimize caching in ImageLoader
  • Use unique cache keys per loader type in Loader
  • Update epsilon in Quaternion.setFromUnitVectors()
  • Move TriplanarTexturesNode to triplanarTextures() Fn in TSL
  • Move EquirectUVNode to equirectUV() Fn in TSL
  • Move MatcapUVNode to matcapUV Fn constant in TSL
Fixed 6
  • Correct the blending formulas in all renderers
  • Honor sprite offset in Frustum.intersectsSprite()
  • Fix interpolation specifier in NodeBuilder
  • Honor material.premultipliedAlpha in the shader in NodeMaterial
  • Check attributes version of the geometry in RenderObject
  • Fix Fn as parameter in TSL
Removed 2
  • Remove deprecated code
  • Remove PURE annotation from SampleNode

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#r177--r178 https://github.com/mrdoob/three.js/milestone/91?closed=1

  • Global
    • Remove deprecated code. #31254 (@Mugen87)
    • Correct the blending formulas in all renderers. #31246 (@WestLangley)
    • Upgrade monaco-editor. #31300 (@linbingquan)
    • Initial support for Float16Array in renderers. #31305 (@Mugen87)
  • Clock
    • Inline performance.now(). #31295 (@linbingquan)
  • Frustum
    • Honor sprite offset in intersectsSprite(). #31307 (@Mugen87)
  • GLBufferAttribute
    • Add normalized property. #31268 (@Rtwo-Dtwo)
  • ImageLoader
    • Optimize caching. #31258 (@Mugen87)
  • Loader
    • Use unique cache keys per loader type. #31315, ac07a8accb1228707e694a221d9ed8ab71d694f6, ee327fd8e13ae7d6e5fbcd6506a4006405aa5232 (@Mugen87, @mrdoob)
  • NodeBuilder
    • Fix interpolation specifier. #31222 (@cmhhelgeson)
  • NodeMaterial
    • Honor material.premultipliedAlpha in the shader. #31166 (@WestLangley)
  • Quaternion
    • Update epsilon in setFromUnitVectors(). #31302 (@Mugen87)
  • RenderObject
    • Check attributes version of the geometry. #31227 (@sunag)
  • SampleNode
    • Remove PURE annotation. #31293 (@Mugen87)
  • TSL
    • Fix Fn as parameter. #31214 (@sunag)
    • Introduce sample(). #31287 (@sunag)
    • Introduce textureBicubicLevel(). #31288 (@sunag)
    • Move TriplanarTexturesNode to triplanarTextures() Fn. #31285 (@sunag)
    • Move EquirectUVNode to equirectUV() Fn. #31283 (@sunag)
    • Move MatcapUVNode to matcapUV Fn constant. #31284 (@sunag)
    • Remove transformed* prefix. #31271 (@sunag)
    • Fix convertToTexture() auto resize. #31277 (@sunag)
    • Fix outgoingLight redeclaration. #31266 (@sunag)
    • Introduce Chromatic Aberration. #31236 (@pashaydev)
    • Fix inconsistent chaining for step() (Parameter order). #31241 (@sunag)
    • Rename premult to premultiplyAlpha. #31240 (@sunag)
    • Introduce tangentViewFrame and bitangentViewFrame. #31282 (@sunag)
    • Use node.nodeType instead of safeGetNodeType(). #31328 (@sunag)
    • Introduce subBuild(). #31260 (@sunag)
  • WebGLPrograms
    • Don't use flat shading with enabled wireframe. #31242 (@Mugen87)
    • Fix cache key with gradient maps. #31292 (@Mugen87)
  • WebGLRenderer
    • Correctly restore render target during transmission pass. #31320 (@Mugen87)
  • WebGPUConstants
    • Add missing features. #31323 (@cmhhelgeson)
  • WebGPURenderer
    • Use correct invalidation array in WebGL backend. #31255 (@cabanier)
    • Make MSAA with MRT work with WebGL backend. #31228 (@Mugen87)
    • Honor depth/stencil in blitFramebuffer(). #31219 (@Mugen87)
    • Add Storage3DTexture and StorageArrayTexture. #31175, #31327 (@Spiri0, @sunag)
    • Allow storage buffer on Iindex attribute. #31335 (@RenaudRohlinger)
  • XRManager
    • Silence opaque framebuffer warning. #31201 (@cabanier)
  • XRRenderTarget
    • Clean up. #31210 (@Mugen87)

Docs

  • Improve JSDoc. #31261, #31224, #31317 (@linbingquan, @SamJB123)

Manual

  • Open external links in new tab. #31273 (@Mugen87)
  • Fix code typo in scene graph page. #31289 (@MeirArani)
  • Improve French translation. #31252 (@AlexandreGagne10)
  • Fix links to homepage. #31301 (@Mugen87)

Examples

  • Clean up. #31265, #31303, 15ff86b24fdd1d81415936eb143a01c5bcff445b, 4106588164c61e93052d51fb4be5d5cfbfb30c5b (@zeevick10, @Methuselah96. @mrdoob)
  • Improve water demo. #31291, a9666c619752a355649fcc832b7f27286d4b3940 (@Mugen87, @mrdoob)
  • Add BatchedMesh LOD and BVH example page. #31239 (@agargaro)
  • Merge geometry demos. #31253 (@Mugen87)
  • Fix GUI colors in webgpu_compute_cloth example. #31232 (@WestLangley)
  • Fix instancedArray() usage of webgpu_compute_birds. #31230 (@sunag)
  • Fix texture path of webgpu_sandbox. #31217 (@sunag)
  • Merge OBJ demos. #31216 (@Mugen87)
  • Add new path demo. #31209 (@Mugen87)
  • Add webgpu_reflection_roughness. #31294, c06fa765243ce8379b539d73e6690914bec2039a, f7e8be081f447ad13c268b025ef4862af323f362 (@sunag, @mrdoob)
  • Improve lottie example. #31321 (@linbingquan)
  • Add window resize event to webgl_geometry_extrude_shapes. #31324 (@linbingquan)

Addons

  • ArcballControls

    • Add passive: false for wheel event. #31259 (@juji)
  • FBXLoader

    • Gracefully handle missing color data. #31248 (@Mugen87)
  • RapierPhysics

    • Add removeMesh(). #31296, #31298 (@linbingquan)
  • RoundedBoxGeometry

    • Fix parameters of the parent class. #31319 (@linbingquan)
  • TransformControls

    • Make gizmo colors configurable. #31262 (@Mugen87)
  • TSL Transpiler

    • Add support for switch statements. #31272 (@cmhhelgeson)
    • Fix unary negate after arithmetic operator. #31297 (@sunag)
    • Add simplified Fn() layout. #31299 (@sunag)
    • Introduce Linker and improvements. #31314 (@sunag)
    • Introduce WGSLEncoder. #31329 (@sunag)

Editor

  • Fix typo in comment. #31264 (@vtjl10)
View originalPermalink
How r178 went

r177

Added 5
  • Add toJSON() and fromJSON() methods to Box3
  • Add count property to Mesh
  • Introduce maskNode and improve shapeCircle() in NodeMaterial
  • Add toJSON() and fromJSON() methods to Sphere
  • Add custom attenuation using spotLight.attenuationNode in SpotLightNode
Changed 5
  • Increase version of Object/Scene format
  • Improve nomenclature in ColorManagement
  • Change normalView to normalWorld in HemisphereLightNode
  • Cleanup alphaTest in NodeMaterial
  • Execute setupVertex() if vertexNode is defined in NodeMaterial
Fixed 10
  • Fix exports in src/three.tsl.js
  • Set the proper up-direction in AudioListener
  • Make error handling more robust in ImageBitmapLoader
  • Fix castShadow regression in LightsNode
  • Fix dashOffset with LineDashedMaterial in MaterialNode
  • Fix missing intensity uniform updates in NodeMaterialObserver

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#r176--r177 https://github.com/mrdoob/three.js/milestone/90?closed=1

  • Global
    • Increase version of Object/Scene format. #31096 (@repalash)
    • Fix exports in src/three.tsl.js. #31109 (@ycw)
    • Add DeepWiki link. #31182, c421357d4384e99a6e5500665b72a58a547cf8a8 (@lumotai, @mrdoob)
  • AudioListener
    • Set the proper up-direction. #31054 (@WestLangley)
  • Box3
    • Add toJSON() and fromJSON() methods. #31028 (@gkjohnson)
  • ColorManagement
    • Improve Nomenclature. #31152 (@WestLangley)
  • HemisphereLightNode
    • Change normalView to normalWorld. #31074 (@vitro-mod)
  • ImageBitmapLoader
    • Make error handling more robust. #31088 (@Mugen87)
  • LightsNode
    • Fix castShadow regression. #31106 (@Mugen87)
  • MaterialNode
    • Fix dashOffset with LineDashedMaterial. #31008 (@Mugen87)
  • Mesh
    • Add count property. #31091 (@sunag)
  • NodeMaterial
    • Cleanup alphaTest. #31147 (@sunag)
    • Introduce maskNode and improve shapeCircle(). #31127 (@sunag)
    • Execute setupVertex() if vertexNode is defined. #31136 (@sunag)
  • NodeMaterialObserver
    • Fix missing intensity uniform updates. #31120 (@Mugen87)
  • PMREMGenerator
    • Fix usage with PMREMNode. #31001 (@Mugen87)
  • Ray
    • Handle empty spheres in intersectsSphere(). #31200 (@Mugen87, @jmeurice)
  • ShadowMaskModel
    • Fix usage with non shadow casting light. #31081 (@Mugen87)
  • ShadowNode
    • Fix VSM with point lights. #31103 (@Mugen87)
    • Clean up. #31104 (@Mugen87)
  • Sphere
    • Add toJSON() and fromJSON() methods. #31028 (@gkjohnson)
  • SpotLightNode
    • Add custom attenuation using spotLight.attenuationNode. #31013 (@sunag)
  • SpotLightShadow
    • Introduce aspect property. #31020 (@sunag)
  • Sprite
    • Add count property. #31091 (@sunag)
  • StorageBufferNode
    • Add getMemberType(). #31139 (@HongchengZhao)
  • Texture
    • Add setValues(). #31087 (@CodyJasonBennett)
    • Texture: Introduce width, height, depth. #31025 (@sunag)
    • Add updateRanges. #30998 (@CodyJasonBennett)
  • TSL
    • Improve build stages #31156 (@sunag)
    • Ensure memory alignment for struct(). #31151 (@sunag)
    • Fix mat2 boundary size. #31162 (@sunag)
    • Ensure 4 byte alignment for instancedArray() and attributeArray(). #31146 (@sunag)
    • Add premult() and unpremult(). #31114 (@sunag)
    • Fix reflector() clear texture and stop update if bounce is false. #31110 (@sunag)
    • Add hashBlur() options {repeats,mask,premultipliedAlpha}. #31115 (@sunag)
    • Fix getBitangent(). #31059 (@Mugen87)
    • Fix lightShadowMatrix() if renderer.shadowMap.enabled is false. #31024 (@sunag)
    • Fix .toVarying() analyze for optimization. #31090 (@sunag)
    • Fix auto-cache if using multiple conditionals. #31076 (@sunag)
    • Introduce namespace. #31168 (@sunag)
    • Fix object-as-parameter checking for Fn(). #31176 (@sunag)
    • Introduce uniformTexture() and uniformCubeTexture(). #31190 (@sunag)
    • Use multi argument versions of min() and max(). #31196 (@kristiker)
  • WebGPURenderer
    • Honor Texture.premultiplyAlpha in WebGPU backend. #31157 (@Mugen87)
    • Fix generate mipmaps when using copyFramebufferToTexture() in WebGPU backend. #31163 (@sunag)
    • Apply color management changes from #26644. #31142 (@Mugen87)
    • Fix runtime errors introduced by texture array refactor. #31108, #31099 (@cabanier)
    • Rename XRResetState() to _resetXRState(). #31105 (@cabanier)
    • Introduce ProjectorLight. #31022 (@sunag)
    • Array-Based RenderTarget Refactor. #30959 (@RenaudRohlinger)
    • Cache pipeline per render/compute pass. #31066 (@Mugen87)
    • Optimize WebXR render path. #31134, #31189, #31198 (@cabanier)
    • Fix blend factor nomenclature. #31188 (@WestLangley)
    • Check if OffscreenCanvas is in window before accessing. #31194 (@pavel-mazhuga)
  • WebGLRenderer
    • Add MRT support to readRenderTargetPixels(). #31204 (@Mugen87, @repalash)
  • WebGLTextureUtils
    • Clean up. #31195 (@linbingquan)
  • WGSLNodeBuilder
    • Fix use of sampler for vertex stage. #31052 (@sunag)
  • XRManager
    • Fix layer color correction. #31124 (@cabanier)

Docs

  • Clean up. #31046 (@Mugen87)
  • Improve LoaderUtils page. #31082 (@ycw)
  • Improve SkeletonHelper JSDoc. #31113 (@upisfree)
  • Improve XRManager JSDoc. #31101 (@Mugen87)

Manual

  • Fix primitives page. #30997 (@Mugen87)

Examples

  • Clean up. #31130, #31138, #31030, #31107 (@WestLangley, @linbingquan, @ycw)
  • Add webgpu_compute_particles_fluid. #31148, #31159 (@holtsetio)
  • Add webgpu_compute_cloth. #31123 (@holtsetio)
  • Improve noise.png. #31137 (@Mugen87)
  • Improve webgpu_compute_particles. #31092 (@mrdoob)
  • Add webgpu_reflection_blurred. #31116, #31118 (@sunag)
  • Add textured assets to webgl_loader_fbx. #31117 (@tatsuya-ogawa)
  • Integrate lookAt() into the rotateTowards() demo. #31063 (@Mugen87)
  • Fix memory leak in FBX demo. #31068 (@Mugen87)
  • Make dynamic instancing demo more interesting. #31058 (@Mugen87)
  • WebGPU Compute Water Adjustment. #30985, #31011 (@cmhhelgeson, @sunag)
  • Update shadow opacity in webgpu_shadowmap_opacity. #30984 (@sunag)
  • Cleanup webgl_reverse_depth_buffer. #30989 (@CodyJasonBennett)
  • Fix shadows in physics instancing demos. #30988 (@Mugen87)
  • Fix webgpu_water GUI. #31014 (@sunag)
  • Add resize event listener for physics_rapier_instancing. #31012 (@linbingquan)
  • Clean up XR examples browser notices. #31053 (@mkeblx)
  • Make point lights demo more interesting. #31040 (@Mugen87)
  • Remove webgl_geometry_dynamic. #31047 (@Mugen87)
  • Make tone mapping demos more interesting. #31045 (@Mugen87)
  • Make layers example a bit more interesting. #31036 (@Mugen87)
  • Add GUI to normal and bump map demo. #31077 (@Mugen87)
  • Fix memory leak in SVG demo. #31170 (@Mugen87)
  • Enable MSAA in AO demo. #31192 (@Mugen87)
  • Refactored webxr_vr_haptics. 1859806c1f861870410701014e366659ed307109 (@mrdoob)

Addons

  • AfterimagePass

    • Add damp accessor. #31035 (@neilrackett)
  • ArcballControls

    • Fix state data for reset. #31184 (@Mugen87)
  • CSMShadowNode

    • Fix toggle of castShadow. #31186 (@Mugen87)
  • FBXLoader

    • Improve error handling. #31017 (@Mugen87)
    • Use getHandler() for custom texture loaders. #31032 (@tatsuya-ogawa)
    • Add webp MIME type. #31098 (@Altrozero)
  • FXAAPass

    • Add pass class for FXAA post processing shader. #31044 (@neilrackett)
  • GLTFExporter

    • Push nodes parent-first instead of child-first. #31125 (@aaronfranke)
  • GLTFLoader

    • Clone node associations. #31051 (@nkrajina)
  • HTMLMesh

    • Add support for input of type text and number in VR. #31160 (@vincentfretin)
  • KTX2Loader

    • Support ETC2, BCn, and ASTC 4x4 sRGB. #31155 (@donmccurdy)
  • LDrawLoader

    • Don't clear already-loaded materials onload. #31150 (@Floppy)
    • Improve docs. #31153 (@Mugen87)
  • LineMaterial

    • Fix clipping planes. #31144 (@rtortajada)
  • Octree

    • Improve configurability. #31097 (@Mugen87)
  • PCDLoader

    • Parse header without TextDecoder. #31069 (@F-loat)
    • Implement data type dependent binary parsing. #31061 (@F-loat)
  • PeppersGhostEffect

    • Remove addon. #31037 (@Mugen87)
  • SkyMesh

    • Improve varyings declaration. #31133 (@sunag)
  • USDZExporter

    • Fix object indentation level. #31126 (@mkeblx)
    • Fix JSDoc to match default value. #31119 (@mkeblx)

Editor

  • Fix minor bugs. #31050 (@Mugen87)
View originalPermalink
How r177 went

r176

Added 3
  • Add heightSegments parameter to CapsuleGeometry
  • Add dFdx and dFdy warnings to TSL
  • Show shader stage in TSL debug() message
Changed 2
  • Replace ArrowHelper cylinder with cone geometry
  • Change CapsuleGeometry length param to height and fix UVs
Fixed 14
  • Fix ReferenceError in Animation in non-browser environment
  • Make sure background nodes can be disposed of
  • Fix BatchedMesh toJSON() and ObjectLoader integration
  • Fix ExtrudeGeometry regression introduced with last release
  • Honor spotlight maps in LightsNode cache key
  • Fix alpha of vertex-color in NodeMaterial
Removed 2
  • Remove legacy code
  • Remove Luminance and LuminanceAlpha format

From Three.js

https://github.com/mrdoob/three.js/wiki/Migration-Guide#r175--r176 https://github.com/mrdoob/three.js/milestone/89?closed=1

  • Global
    • Remove legacy code. #30821 (@Mugen87)
    • Remove Luminance and LuminanceAlpha format. #30934 (@gkjohnson)
  • ArrowHelper
    • Replace cylinder with cone geometry. #30867 (@shlomnissan)
  • Animation
    • Fix ReferenceError in non-broswer environment. #30835 (@chirsz-ever)
  • Background
    • Make sure background nodes can be disposed of. #30938 (@Mugen87)
  • BatchedMesh
    • Fix toJSON(), ObjectLoader integration. #30965 (@gkjohnson)
  • CapsuleGeometry
    • Add heightSegments parameter. #30868 (@mkeblx)
    • Change length param to height, fix UVs. #30915 (@mkeblx)
  • ExtrudeGeometry
    • Fix regression introduced with last release. #30822 (@mlasala45)
  • LightsNode
    • Honor spotlight maps in cache key. #30940 (@Mugen87)
  • NodeMaterial
    • Fix alpha of vertex-color. #30974 (@sunag)
  • NodeMaterialObserver
    • Force refresh when rendering velocity. #30840 (@Mugen87)
  • RenderTarget
    • Fix depth texture assignment regression. #30921 (@Spiri0)
  • ShadowNode
    • Inherit camera.layers only if shadow.camera.layers is not set. #30877 (@RenaudRohlinger)
  • TSL
    • Don't flip normals when using flat shading. #30823 (@Mugen87, @sunag)
    • Fix frontFacing when using material.flatShading. #30828 (@sunag)
    • Add dFdx and dFdy warnings. #30831 (@sunag)
    • Show shader stage in debug() message. #30833 (@sunag)
    • Fix blur() on Framebuffer. #30845 (@RenaudRohlinger)
    • Fix bitangent* when using material.flatShading. #30837 (@sunag)
    • Fix instance() optional parameter. #30848 (@sunag)
    • Introduce varying.setInterpolation(). #30582 (@cmhhelgeson, @sunag)
    • Fix optional Fn parameters. #30884 (@sunag)
    • Fix texture() matrix sync. #30893 (@sunag)
    • Fix early-z rejection. #30891 (@sunag)
    • Add increment() and decrement() and fix unsual for() expression syntax for transpiler. #30912 (@Mugen87, @sunag)
    • Fix dispose() when using reflector(). #30933 (@Mugen87)
    • Fix and improve bvec operators. #30922 (@sunag)
    • Fix debug() changes the compiled code. #30944 (@sunag)
    • Add switch/case. #30935 (@Mugen87)
    • Add expression support for loop( { update: ... } ). #30947 (@sunag)
    • Add Stack() and .toStack(). #30956 (@sunag)
    • Cache getShadowRenderObjectFunction(). #30969 (@sunag)
    • Fixes the return value of atomic* nodes. #30971 (@sunag)
    • Auto-cache atomic* nodes. #30972 (@sunag)
    • Fix denoise() sampler texture. #30975 (@sunag)
    • Improve debug() callback changing to ( builder, code ) signature. #30976 (@sunag)
  • VelocityNode
    • Fix initial value of previous model matrix. #30839 (@Mugen87)
  • WebGLRenderer
    • Fix binding __webglFramebuffer when mipmaps are used. #30746 (@haxiomic)
    • Support alphaToCoverage with shadows. #30871 (@Mugen87)
  • WebGPURenderer
    • Introduce Shadow Map Array. #30830 (@RenaudRohlinger)
    • Introduce compatibilityMode. #30854, #30869, #30875 (@sunag)
    • Disable draw call when object.count = 0. #30881 (@cmhhelgeson)
    • Make material.transparent behave as in WebGLRenderer. #30862 (@rkreis-v)
    • Add Multiview support. (@cabanier)
    • Introduce renderer.highPrecision. #30970 (@sunag)
  • WGSLNodeBuilder
    • Improve isCustomStruct() checking. #30525 (@Spiri0)
  • XRManager
    • Request reference space for both layers and non layers. #30902 (@danrossi)

Docs

  • Clean up. #30888, #30927, #30978 (@rizzler329842, @notgod6, @arcs-)
  • Simplify JSDoc output directory. #30815 (@Mugen87)
  • Fix typos and types. #30843, #30874, #30880, #30879 (@s-rigaud)
  • Improve SkinningNode. #30852 (@Mugen87)
  • JSDoc: Add import section for addons. #30853, #30860 (@Mugen87)
  • Improve Chinese translation. #30887 (@linzhou559)

Examples

  • Clean up. #30820, #30979 (@Mugen87, @Methuselah96)
  • Added additional Rapier physics examples. #30818 (@NikLever)
  • Fix AR hit-test. #30866 (@mkeblx)
  • Use InstancedMesh in webgl_clipping_advanced. 2cb9218b049b93c0b412e4b1e73ab340bf87e6ba (@mrdoob)
  • Fix WebXR Haptics example when entering VR from Oculus Browser button. #30859 (@arturitu)
  • Add external "3d tiles" globe example. #30883, #30907 (@gkjohnson)
  • Use post-processing and improve description in reverse depth buffer demo. #30941 (@CodyJasonBennett)
  • Add webgpu_caustics example and shadow revisions. #30962 (@sunag)
  • Call ImageBitmap.close() in webgl_loader_imagebitmap. #30977 (@Mugen87)

Addons

  • Global

    • Fix SSAA/TRAA state reset. #30838 (@Mugen87)
    • Clean up. #30917, #30918, #30953 (@satelllte, @Mugen87)
  • AfterImageNode

    • Fix usage of multiple nodes. #30834 (@Makio64)
  • GLTFLoader

    • Remove support detection for WebP and AVIF. #30864 (@Mugen87)
  • IFFParser

    • Fix missing Debbuger attribute declarations #30946 (@s-rigaud)
  • ImprovedNoise

    • Use MathUtils.lerp(). #30905 (@satelllte)
  • LottieLoader

    • Deprecated loader, inline library usage. #30896 (@Mugen87)
  • MD2CharacterComplex

    • Fix frontDeceleration attribute name. #30817 (@s-rigaud)
  • OutlinePass

    • Fix using with BatchedMesh. #30952 (@luigidenora)
  • PointerLockControls

    • Constant for mouse sensitivity #30966 (@satelllte)
  • RapierPhysics

    • Add heightfield support. #30906 (@andytriboletti)
  • RoomEnvironment

    • Use InstancedMesh. df3b15e5f4a35aa083138d71965b1352f4102685 (@mrdoob)
  • TileShadowNode

    • Fix shadow manual update. #30863 (@RenaudRohlinger)
  • TSLTranspiler

    • Add valid !=. #30890 (@s-rigaud)
    • Fix typo. 2edea69e6e6bb213198a9864034824b856aa9c09 (@sunag)
  • Water2Mesh

    • Fix missing material.transparent=true. #30892 (@sunag)

Editor

  • Fix selection box update when reparenting objects in hierarchy. #30904 (@lixinde)
View originalPermalink
How r176 went
View all

Discussion

If you publish Three.js, you can claim this product by proving you administer its repository.