Three.js

Frameworks & Libraries

A JavaScript 3D library.

Latest r185 · by Three.jsWebsitemrdoob/three.js

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.
MayJunJulAug
SundayNo releases on Apr 19, 2026No releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No 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, 2026
MondayNo releases on Apr 20, 2026No releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No 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, 2026
TuesdayNo releases on Apr 21, 2026No releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No 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, 2026
WednesdayNo releases on Apr 22, 2026No releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No 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, 2026
ThursdayNo releases on Apr 23, 2026No releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No 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, 2026
FridayNo releases on Apr 24, 2026No releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No 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, 2026
SaturdayNo releases on Apr 25, 2026No releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No 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, 2026

6 releases in the last year

Changelog

r185

Added 5
  • Support Transformed Geometry when Serializing in BufferGeometry
  • Add `max()` for outputs in ColorAdjustment
  • Introduce `transformNormalByInverseViewMatrix()` in WebGLRenderer Shaders
  • Support new WICG HTML-in-Canvas API signatures in HTMLTexture
  • Add `registerMaterial()` and `Material.fromJSON()` in MaterialLoader
Changed 4
  • Refactor `inTangents`/`outTangents` in BezierInterpolant
  • Refactor Line2NodeMaterial to use native node material hooks
  • Fixed setValues() to honor Euler and Vector2 types in Material
  • Introduce faster version of `determinant()` in Matrix4
Fixed 9
  • Fix time warping bug in AnimationAction
  • Fix needsUpdate in TSL Compute Bindings
  • Fix attribute count mismatch in `computeVertexNormals()` and `computeTangents()` in BufferGeometry
  • 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
Removed 1
  • Remove deprecated code
Deprecated 1
  • Deprecate `.scale()`, `.rotate()`, and `.translate()` in Matrix3

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)
    • Update package-lock.json. #33563 (@Mugen87)
    • Harmonize errors. #33588 (@Mugen87)
    • Update Three.WebGPU.js. ebd2a765edd45f419f3e530c5d24c83d2567af4f (@Mugen87)
    • Update package-lock.json. bea0fa775817a8b1a25656ce0396e67580557f02 (@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)
  • CI
    • Improve permissions. #33466 (@Mugen87)
  • ClippingContext
    • Fix stale viewMatrix with multiple cameras. #33578 (@Mugen87)
  • ColorAdjustment
    • Add max() for outputs. #33854 (@sunag)
  • common.glsl
    • WebGLRenderer Shaders: introduce transformNormalByInverseViewMatrix(). #33351 (@WestLangley, @Mugen87)
    • Update inverseTransformDirection definition for clarity. #33431 (@WestLangley)
  • 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)
  • 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)
  • 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)
  • 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)
  • Nodes
    • Fix toConst() usage in Camera. #33831 (@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)
  • 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)
  • PassNode
    • Fix implicit depth texture creation when depthBuffer: false. #33410 (@thelazylamaGit, @Mugen87)
  • PMREMGenerator
    • Avoid unnecessary depth buffers in render targets. #33585 (@shotamatsuda)
    • Apply await renderer.init() policy. #33587 (@Mugen87)
  • PMREMNode
    • Fix dispose of internal PMREMs. #33849 (@Mugen87)
  • PointShadowNode
    • Fix shadows with logarithmic depth buffer. #33584 (@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)
  • RTTNode
    • Introduce setResolutioScale() and updates. #33606 (@sunag)
  • ShaderLib
    • Fix formatting of main function declaration. #33696 (@pohlt)
  • Shaders
    • Update nomenclature. #33727 (@WestLangley)
    • Add deprecation note. #33729 (@WestLangley)
  • ShadowFilterNode
    • Use textureGatherCompare in PCFSoftShadowFilter. #33534 (@RenaudRohlinger, @claude, @shotamatsuda)
  • ShadowNode
    • Fix shadow viewer inspect and introduce equirectDirection. #33752 (@sunag)
  • SphereGeometry
    • Make pole vertices more robust. #33652 (@Mugen87)
  • Src
    • Clean up. #33590 (@WestLangley)
  • StackNode
    • Fix outputNode flow propagation. #33405 (@sunag)
  • StereoCamera
    • Fix matrix computation. #33731 (@Mugen87)
  • 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)
  • 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, @renovate[bot], @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)
  • WebGPUUtils
    • Cache preferred canvas format. #33800 (@Mugen87)
  • XRManager
    • Use foveateBoundTexture() to enable foveation. #33484 (@cabanier)

Docs

  • Improve displacementMap JSDoc. #33453 (@Mugen87)
  • Document minimum texture sizes of PMREMGenerator. #33465 (@Mugen87)
  • 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)
  • 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)
  • Example: 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)

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

    • Add support for reversed depth buffer. #33506 (@shotamatsuda)
    • Fix inconsistency in frustum split. #33510 (@shotamatsuda)
  • 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)
  • 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)
  • DataTextureLoader

    • Add createDataTexture(). #33705 (@Mugen87)
  • EXRLoader

    • Fix out-of-bounds read on partial scanline blocks. #33620 (@Mugen87)
  • FXAANode

    • Refactor ApplyFXAA(). #33708 (@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)
  • GTAONode

    • Cosine-weighted integration with per-slice normal projection. #33654 (@marcofugaro)
  • ImportanceSampledEnvironment

    • Spatiotemporal Denoiser for SSR. #33843 (@0beqz)
  • 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)
  • LWOLoader

    • Deprecate loader. #33621 (@Mugen87)
  • 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)
  • 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)
  • PixelationPassNode

    • Fix examples to avoid fading alpha. #33450 (@gkjohnson)
  • RapierPhysics

    • Add applyImpulse(). #33459 (@Mugen87)
  • Reflector

    • Make getReflectionCamera() public. #33556 (@Mugen87)
  • 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)
  • 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)
  • ShapePath

    • Update toShapes(). #33503 (@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)
  • VRMLLoader

    • Allow multi-line strings. #33616 (@Mugen87)
  • VolumeShader

    • Support perspective cameras. #33493 (@Mugen87)
    • Improve apply_colormap(). #33867 (@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, @renovate[bot], @ycw)
  • lottie_canvas.module

    • LottieLoader, TTFLoader: Removed bundled libs in favor of CDN. #33798 (@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 (@sebastiondev)
  • 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)
  • E2E: Update screenshot. #33635 (@Mugen87)
  • E2E: Fix WebGPU Device Lost errors. #33650 (@shotamatsuda)
  • test/e2e: fix Buffer handling for Node.js 23+. #33672 (@WestLangley)
  • E2E: Print elapsed seconds. #33726 (@shotamatsuda)

Utils

  • Improved changelog.js. d718472ad975a38a86bbc63b859f3b2286dc3a53 (@mrdoob, @claude)
View originalPermalink
How r185 went

r184

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)
    • Execute npm audit fix. #33333 (@Mugen87)
  • GLSLNodeBuilder
    • Fix texelFetch lod type. #33399 (@Mugen87)
  • ImageBitmapLoader
    • Improve docs. #33379 (@Mugen87)
  • Inspector
    • Add Memory tab and improve Renderer.info. #33097 (@sunag)
  • InstancedMesh
    • add consistent return values to functions. #33059 (@gkjohnson)
  • LightProbeGrid
    • Add position-dependent diffuse Global Illumination. #33125 (@mrdoob, @Mugen87, @claude)
  • Line2NodeMaterial
    • Fix clone() losing worldUnits, dashed, and linewidth. #33236 (@cyphercodes)
  • 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)
  • 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)
  • Object3D
    • Correctly copy pivot. #33163 (@PoseidonEnergy, @Mugen87)
  • ObjectLoader
    • Fix log regression. #33240 (@Om-Mishra09)
  • PassNode
    • Fix scissor and viewport setup. #33204 (@Mugen87)
  • 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)
  • RenderOutputNode
    • Fixes typos in RenderPipeline related docs. #33034 (@jwheare)
  • RenderPipeline
    • Fix sync with renderer.outputColorSpace and renderer.toneMapping. #33187 (@sunag)
  • RenderTarget
    • Preserve multiview in copy(). #33285 (@Kundan-CR7)
  • Shaders
    • Clean up. #33133 (@WestLangley)
  • ShadowNode
    • Add support for renderer.highPrecision. #33246 (@shotamatsuda, @sunag)
  • 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)
  • 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)
  • UniformsGroup
    • Fix incorrect index in Vector4 dirty check. #33276 (@Mridul012)
  • UniformUtils
    • Fix deep-copy with array of uniforms. #33384 (@Mugen87)
  • ViewportDepthTextureNode
    • Fixes framebuffer caching with multiple references of different sizes. #32690 (@arodic)
  • 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)
  • WGSLNodeBuilder
    • Fix varying indexes. #33229 (@sunag)
    • Fix textureDimensions() cache scope. #33312 (@sunag)
    • Add allowGlobalVariables. #33319 (@sunag)

Docs

  • Fix billboarding examples in TSL.md. #33056 (@jwheare)
  • Using the correct class type for NodeManager. #33067 (@PoseidonEnergy)
  • Fix typo in JSDoc. #33130 (@PoseidonEnergy)
  • 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)
  • 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)

Addons

  • Addons

    • Update export file. #33390 (@Mugen87)
  • ArcballControls

    • Controls reset touch-action to empty string instead of 'auto'. #33144 (@Kodub)
  • Bayer

    • Bayer node: fix web worker usage. #33279 (@pavel-mazhuga, @Mugen87)
  • BufferGeometryUtils

    • Fix two bugs. #33338 (@nameearly)
  • CCDIKSolver

    • Fix limitation handling. #33386 (@Mugen87)
  • CSMShadowNode

    • Fix error when disposed multiple times. #33202 (@shotamatsuda)
  • ChromaticAberrationNode

    • Remove unused _invSize uniform. cbf6fff0287c3d259a17af418a549f8598eb47ed (@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)
  • FSR1Node

    • Add FSR 1 port for WebGPURenderer. #33339 (@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)
  • GodraysNode

    • Simplify shadow coord computation. #33162 (@Mugen87)
  • 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 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)
  • OutlineNode

    • Support sprites. #33112 (@Mugen87)
    • Early out when nothing is selected. #33358 (@Mugen87)
  • Reflector

    • Support orthographic cameras. #33249 (@Mugen87)
    • Clean up. b4822a411ab883290e21f9f5251ed40a7815265c (@Mugen87)
  • SSGINode

    • Remove dead code. 4c1fe47d87c2869af064101fab856d3fa289cc68 (@mrdoob, @claude)
  • SVGLoader

    • Fix round stroke joins and caps when arcDivisions = 1. #33256 (@georgpukk, @Mugen87)
  • SVGRenderer

    • Fix performance regression. #33220 (@Mugen87)
  • Sky

    • Make sun disc optional. #33031 (@jwheare)
  • 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)
  • TSL

    • Improve dispose() of some FX addons. #33126 (@Mugen87)
  • TransformControls

    • Allow visibility control of plane gizmos. #33170 (@Mugen87)
  • USDCParser

    • handle empty array payload and validate offsets. 9a141d0f9c0528275a7f3ca3bf7745a5cca70de2 (@mrdoob)
  • 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)
  • 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)
  • WebGPURenderer

    • Introduce Dynamic Lights. #33042 (@RenaudRohlinger, @sunag)
  • WebXR

    • Added model caching to XRHandModelFactory. #33252 (@NssGourav, @Mugen87)
  • meshopt_decoder.module

    • Upgrade meshopt_decoder.module.js to 1.1.1. #33393 (@zeux)

Devtools

  • Added new DevTools. #30870 (@mrdoob, @Darkensses, @cesmoak, @claude, @github-advanced-security[bot])

Editor

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

Tests

  • E2E: Replace SwiftShader with software Dawn (Lavapipe). #33346 (@mrdoob, @claude)
  • E2E: Tighten pixel diff tolerance and refresh screenshots. #33389 (@mrdoob, @claude)
  • E2E: Added webgpu_compute_sort_bitonic to exceptionList. 4a48e81fa8691027b7fdc8180a5df04cf6827410 (@mrdoob)
View originalPermalink
How r184 went

r183

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)
    • Update package.json. 4c280ff9c2599baba7afe262e434a1449d6f67d4 (@Mugen87)
    • Update package.json. 3332b33bea214d2033de83272ec56bd08dca4a00 (@Mugen87)
  • 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)
  • GLSLNodeBuilder
    • Fix CubeDepthTexture sampler. #32857 (@Mugen87)
    • Fix array texture layer support for filtered sampling. #33008 (@RenaudRohlinger)
  • Helpers
    • Clarify the usage of update(). #32717 (@Mugen87)
  • InstanceNode
    • Support velocity. #32586 (@Mugen87)
    • Fix UBO size and attribute update. #32615 (@Mugen87)
  • Lighting
    • Refactor camera usage. #32557 (@sunag)
  • LightShadow
    • Introduce biasNode. #32811 (@Mugen87)
  • Line2NodeMaterial
    • Avoid performance degradation with viewportSharedTexture(). #32639 (@Mugen87, @sunag)
    • Rename useColor property to vertexColors. #32670 (@sunag)
  • 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)
  • 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)
  • Nodes
    • Update exports. #32783 (@Mugen87)
    • Fix PMREM cache. #32941 (@Mugen87)
  • Object3D
    • Document static, add support in copy() and JSON. #32679 (@Mugen87)
  • 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)
  • ShadowFilterNode
    • Fix TSL warning in VSMShadowFilter. #32836 (@Mugen87)
  • ShadowMaterial
    • Respect "premultiplied alpha". #32550 (@gkjohnson)
  • 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)
  • TorusGeometry
    • Update TorusGeometry with thetaStart and thetaLength. #32760 (@3dpk-interactive)
  • TSL
    • Introduce clipSpace. #32594 (@sunag)
    • Introduce TSL.md (TSL Spec). #32601 (@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 RenderPipeline for TSL Spec. #32928 (@sunag)
    • Add retroPassand example. #32930 (@sunag)
    • Remove ScriptableNodeResources export. #32945 (@Methuselah96)
    • Cache camera* uniform nodes. #32938 (@sunag)
    • Fix instancedArray() bufferCount property. #32977 (@sunag)
  • UniformGroups
    • Partially updates. #32558 (@sunag)
  • UniformsGroup
    • Add range cache and fix clear old update ranges. #32561 (@sunag)
  • ViewportDepthNode
    • Support reversed depth in viewZ functions. #33001 (@Mugen87)
  • ViewportTextureNode
    • Change update type to RENDER. #32664 (@Mugen87)
  • 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)
    • Rename PostProcessing to RenderPipeline. #32789 (@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)
  • WGSLNodeBuilder
    • Fix array texture layer support for filtered sampling. #32990 (@RenaudRohlinger)
    • Introduce generateStorageTextureLoad. #33029 (@sunag)
  • XRManager
    • Fix XR camera layers inheritance. #32626 (@wrangelvid)

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)
  • worldToLocal typo. #32647 (@satelllte)
  • 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)
  • 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)
  • 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)
  • 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)

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)
  • 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)
  • Global

    • Remove deprecated code. #32572 (@Mugen87)
    • Replace Clock with Timer. #32793 (@Mugen87)
  • 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)
  • LDrawConditionalLineNodeMaterial

    • fix import. #32861 (@gkjohnson)
  • 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)
  • Nodes

    • Removing unnecessary nodesObject. #33014 (@sunag)
  • Object3D

    • Added pivot property. #32745 (@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)
  • 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)
  • Sky/SkyMesh

    • Remove legacy gamma correction curve. #32677 (@mrdoob)
    • Added procedural clouds. #32682 (@mrdoob)
  • TSL

    • Improve retroPass and example. #32954 (@sunag)
  • USDAParser

    • Improve text parsing robustness. #32747 (@mrdoob, @claude)
  • USDAParser/USDComposer

    • Clean up. 3cd3e5b87e4a75aa14cf43958ddcaf9c6edebebc (@mrdoob)
  • USDCParser

    • Fixed scalar handling. 43166fcb2c5378a3cdd4c782175d0daf136a10d1 (@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)
  • 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)
  • UltraHDRLoader

    • Add support for ISO 21496-1 gainmap metadata. #32862 (@mrdoob)
  • VRMLLoader

    • Add camera support. #32580 (@Mugen87)
  • VTKLoader

    • Fix ReDoS vulnerability. #32622 (@mrdoob)
  • ViewHelper

    • Add location property for positioning. 22afab942a46cd9f6b7310e3c210a6a19655ca0d (@mrdoob, @claude)
  • 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)
  • WebGPURenderer

    • Add GodraysNode. #32888 (@Mugen87)
  • WebGPU_Display_StereoExample

    • Add new Anaglyph Techniques. #32905 (@zalo)
  • examples

    • jolt-physics@1.0.0. #32711 (@linbingquan)

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

  • Puppeteer: Remove express dependency. #32649 (@mrdoob)
  • Removed rollup-plugin-filesize dependency. #32650 (@mrdoob)
  • Puppeteer: Replaced jimp with jpeg-js and pngjs. #32652 (@mrdoob, @claude)
  • Replaced servez with custom server.js. #32654 (@mrdoob)
  • Puppeteer: Removed pixelmatch dependency. #32656 (@mrdoob)
  • Test: 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

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

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

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

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

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

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

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