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)
- Bump lodash from 4.17.21 to 4.17.23. #32814 (@dependabot)
- remove jshint remnants. #32885 (@ycw)
- Update package.json. 4c280ff (@Mugen87)
- Update package.json. 3332b33 (@Mugen87)
- Animation
- AnimationAction
- AnimationMixer
- BatchedMesh
- correctly set the nextIndexStart, nextVertexStart. #32744 (@gkjohnson)
- Enable per-instance opacity. #32725 (@vanruesc, @gkjohnson)
- Add support for wireframe materials. #32948 (@gkjohnson)
- BindGroup
- Cache
- Camera
- Clock
- Core
- GLSLNodeBuilder
- Fix
CubeDepthTexturesampler. #32857 (@Mugen87) - Fix array texture layer support for filtered sampling. #33008 (@RenaudRohlinger)
- Fix
- Helpers
- InstanceNode
- Lighting
- LightShadow
- Line2NodeMaterial
- Line3
- Matrix4
- Cache determinant result in decompose(). #32658 (@mrdoob, @MicrosoftCopilot)
- Optimize invert() calculation. #32657 (@mrdoob)
- MeshLambertMaterial
- MeshPhongMaterial
- MeshPhysicalMaterial
- Added clearcoat support for rect area lights. #32809 (@TobiasNoell)
- MeshPhysicalNodeMaterial
- Fix missing iorNode in MeshPhysicalNodeMaterial copy method. #32821 (@TobiasNoell)
- NodeBuilder
- NodeBuilders
- NodeMaterial
- NodeMaterialObeserver
- Nodes
- Object3D
- ObjectLoader
- Wrap
JSON.parse()in try/catch for consistent error handling. #32947 (@glowsenior)
- Wrap
- Playground
- PMREM
- RenderContext
- Renderer
- RenderObject
- RenderTarget
- ShadowFilterNode
- ShadowMaterial
- Respect "premultiplied alpha". #32550 (@gkjohnson)
- SkinningNode
- SpriteSheetUVNode
- Transform to TSL function and fix
countNodeaccess. #32693 (@gayanMatch)
- Transform to TSL function and fix
- StorageTextureNode
- Add TSL read/write support. #32734 (@NateSmyth)
- Test
- Texture3DNode
- TextureNode
- TSL
- Introduce
clipSpace. #32594 (@sunag) - Introduce
TSL.md(TSL Spec). #32601 (@sunag) - Remove exports for removed TSL methods. #32635 (@Methuselah96)
- use raw data for
DebugNodecallback. #32638 (@linbingquan) - Add
exponentialHeightFogFactor(). #32659 (@Mugen87) - Check if the stack has a valid output. #32669 (@sunag)
- Fix
positionViewsub-build. #32691 (@sunag) - Revert
positionWorldre-computation. #32710 (@sunag) - Fixing invalid GLSL using nested structures. #32724 (@sunag)
- Move
SceneNodeto TSL functions. #32838 (@sunag) - Support switching
StorageBufferAttributewhen usingstorage(). #32847 (@sunag) - Force flat shading for geometries without normals for
normal*nodes. #32848 (@sunag) - Avoid side effect of
getTextureLevel()in normals. #32877 (@Mugen87) - Remove
scriptablenode. #32925 (@sunag) - Introduce
StackTrace. #32914 (@sunag) - Add
RenderPipelinefor TSL Spec. #32928 (@sunag) - Add
retroPassand example. #32930 (@sunag) - Remove ScriptableNodeResources export. #32945 (@Methuselah96)
- Cache
camera*uniform nodes. #32938 (@sunag) - Fix
instancedArray()bufferCountproperty. #32977 (@sunag)
- Introduce
- UniformGroups
- UniformsGroup
- ViewportDepthNode
- ViewportTextureNode
- 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
PCFSoftShadowMapcheck. #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
- WebGLState
- 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
NodestoNodeManager. #32786 (@sunag) - Rename
RenderPipelinetoRenderObjectPipeline. #32785 (@sunag) - Rename
PostProcessingtoRenderPipeline. #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
CubeRenderTargetand use it in examples. #32871 (@Mugen87) - WebGL viewport / scissors not working correctly with PostProcessing. #32883 (@TobiasNoell)
- Fix
overrideMaterialnode 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
flipYand cache key whengenerateMipmap. #32922 (@sunag) - Improve checks for uniform buffer limits. #32949 (@sunag)
- Fix wireframe rendering for
BatchedMesh. #32955 (@Mugen87) - Improve
compatibilityModesupport for MRT. #32973 (@sunag) - Add basic reversed depth buffer support. #32967 (@Mugen87)
- Add shared
BindGroupvia 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
- WebGPUTexturePassUtils
- WGSLNodeBuilder
- Fix array texture layer support for filtered sampling. #32990 (@RenaudRohlinger)
- 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 (@Angel98518, @daniel)
- Update TorusGeometry with thetaStart and thetaLength. #32760 (@3dpk-interactive)
- Improve documentation for edge cases in MathUtils functions. #32806 (@dive2tech, @Gittensor Miner, @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)
- Fix typo and link in Installation manual. #32972 (@pavan-sh)
- utils : update probeAsync jsdoc. #32995 (@epreston)
Manual
- Frame-rate independent cube rotation example. #32627 (@satelllte)
- Update rendering-on-demand.html. 4bbae20 (@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, @walid Chtioui)
- Replace the template literal with string concat in lights page. #33012 (@v-stamenova)
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. e85890e (@mrdoob)
- Clean up. 15cbc8c (@mrdoob)
- Improved grid in webgpu_loader_materialx. 5cde3c7 (@mrdoob)
- Cleanup examples. #32634 (@Methuselah96)
- Improved examples. 0168a66 (@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
ClockwithTimer. #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. 89c278c (@mrdoob)
- Update webgpu_postprocessing_godrays.html. d167b69 (@Mugen87)
- Various fixes for WebGPU compatibility mode. #32907 (@greggman)
- Add Volumetric Lighting using TRAA. #32953 (@sunag)
- Update
webgpu_parallax_uv, andwebgpu_cubemap_adjustmentsexamples using.hdrfile. #32976 (@sunag) - Scroll sidebar to selected example. #32980 (@sunag)
- Clean up. #32994 (@Mugen87)
- Improve birds compute demo. #33016 (@Mugen87)
Addons
-
Anaglyph
-
AnaglyphEffect
-
CCDIKSolver
-
ColladaLoader
-
Exporters
-
GCodeLoader
-
GLTFExporter
-
GLTFExporter/GLTFLoader
-
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
-
HalftoneShader
-
Inspector
-
JoltPhysics
-
KTX2Loader
- Fix alpha for BC3 textures. #32772 (@donmccurdy)
-
LDrawConditionalLineNodeMaterial
- fix import. #32861 (@gkjohnson)
-
LDrawLoader
-
LensflareMesh
-
LineMaterial
-
Loaders
-
Nodes
-
Object3D
-
OrbitControls
- Expose pan, rotate and dolly methods. #32810 (@TobiasNoell)
- Add
cursorStyleproperty. #32981 (@Mugen87)
-
PCDLoader
-
RapierPhysics
-
RoomEnvironment
-
SSRNode
-
Sky/SkyMesh
-
TSL
-
USDAParser
-
USDAParser/USDComposer
-
USDCParser
-
USDComposer
-
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. 5532147 (@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. 43c8ff7 (@mrdoob, @claude)
- Apply UsdUVTexture scale to material colors. 585b578 (@mrdoob, @claude)
-
UltraHDRLoader
-
VRMLLoader
-
VTKLoader
-
ViewHelper
-
Water
-
Water/WaterMesh
-
WaterMesh
-
WebGLRenderer
-
WebGPURenderer
-
WebGPU_Display_StereoExample
-
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. f02c685 (@mrdoob)
- Add Resources panel to Project sidebar. #32729 (@mrdoob)
- UI css scope. #32714 (@linbingquan)
- Enable logarithmic depth buffer. #32732 (@mrdoob)
- Debounce Resources panel updates. 8084de7 (@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. d9b39f4 (@mrdoob)
- Improve service worker caching and activation. c36ae33 (@mrdoob)
- Add dialog for glTF import. #32784 (@Mugen87)
- Improve geometry sidebar with interleaved and instanced support. 86c5b3e (@mrdoob, @claude)
- Change default tone mapping to Neutral. ceda42c (@mrdoob, @claude)
- Added WebGPURenderer support. #32842 (@mrdoob, @claude)
- Improve UI layout. 293ed86 (@mrdoob, @claude)
- Fix camera move error. #32843 (@linbingquan)
- Clean up Viewport.Controls. a97401b (@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. 3ab79b8 (@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)
Tests
- Quaternion - Support extrapolation in slerp methods. #32541 (@WestLangley)
- Puppeteer: Remove express dependency. #32649 (@mrdoob)
- Removed rollup-plugin-filesize dependency. #32650 (@mrdoob)
- Puppeteer: Replaced jimp with jpeg-js and pngjs. #32652 (@mrdoob, @claude)
- Puppeteer: Removed pixelmatch dependency. #32656 (@mrdoob)
Utils
- Replaced servez with custom server.js. #32654 (@mrdoob)
- Replaced concurrently with custom preview.js. #32655 (@mrdoob)
- Update utils/server.js to selfsigned 5.0.0. 5b5594a (@mrdoob)
- server.js: removed redundant call to path.normalize(). 7cc1805 (@mrdoob)
- server.js: simplified code. 7cd43e0 (@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. f45d6f9 (@mrdoob, @claude)
- build-docs: Clean up stale .html files before generating new ones. ed98cc4 (@mrdoob, @claude)
- Improve changelog.js. 2cc37c2 (@mrdoob, @claude)
- Improve changelog.js. 8863cdb (@mrdoob, @claude)