版本发布 8
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. 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) - 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) - 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) - Test - Remove servez reference. adfc78595273c614f1e0557131644924a039c322 (@mrdoob) - Texture3DNode - Remove outdated `setupUV()`. #32630 (@Mugen87) - TextureNode - Use `compareNode` for Android if `compareStepNode` is not compatible. #32956 (@sunag) - 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 `retroPass`and 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) - WebGPUTexturePassUtils - Cleanup generateMipmaps. #32915 (@greggman) - 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. 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, @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. 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) **Addons** - Anaglyph - Rename `screenDistance` to `planeDistance`. #32943 (@Mugen87) - AnaglyphEffect - Use frameCorners() for physically-correct stereo. #32929 (@zalo, @claude) - 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) - 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) - 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) **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. 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) - build-docs: Clean up stale .html files before generating new ones. ed98cc4aa1f5decd9b23f54aa5ca2865e95fa56a (@mrdoob, @claude) - Improve changelog.js. 2cc37c2bdab8318bdb14033bdbe6763b695d21b2 (@mrdoob, @claude) - Improve changelog.js. 8863cdbd3aa3f66df4c5e5385f717adaf8b06ada (@mrdoob, @claude)
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 (@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)
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) - 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) - Align `frontFace` and `cullMode` values to WebGL backend. #31769 (@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 (@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 (@s-rigaud, @Mugen87) - Improve Chinese translation. #31616 (@IanDingMing) - 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) **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 for ssr(). #31649, #3166 (@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)
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 (@Mugen87) - 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) - 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) - 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) **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 (@powah, @Mugen87, @WestLangley) **Examples** - Clean up. #31504, #31483, #31485, #31412, #31411, #31379 (@Mugen87, @WestLangley, @linbingquan) - 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) **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)
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) - 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) - 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 (@zeevick10, @Methuselah96) - Improve water demo. #31291 (@Mugen87) - 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 (@sunag) - 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)
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) - 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) - 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) - 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 (@cabanier) - Fix blend factor nomenclature. #31188 (@WestLangley) - 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) **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)
https://github.com/mrdoob/three.js/wiki/Migration-Guide#r174--r175 https://github.com/mrdoob/three.js/milestone/88?closed=1 - Global - Remove deprecated code. #30621 (@Mugen87) - AnalyticLightNode - Fix call of `setupShadowNode()`. #30713 (@s-rigaud) - AnimationClip - Deprecate `parseAnimation()`. #30625 (@Mugen87) - ArrayElementNode - Optimize indexes. #30741 (@sunag) - AtomicFunctionNode - Add inline support. #30732 (@sunag) - Attributes - Fix `null` check. #30694 (@Mugen87) - Backend - Move `trackTimestamp` to parent class. #30714 (@s-rigaud) - BufferGeometry - Fix clone index data copy. #30680 (@s-rigaud) - Controls - Require `element` in `connect()`. #30772 (@mrdoob) - Earcut - Copy mapbox/earcut file into core libs. #30756 (@gkjohnson) - ExtrudeGeometry - Automatically clean shape data. #30750 (@mlasala45) - FileLoader - Avoid `undefined` for members. #30622 (@Mugen87) - ImageUtils - Add optional `type` parameter to `getDataURL()`. #30751 (@Mugen87) - Material - Add `allowOverride`. #30753 (@Mugen87) - MorphNode - Improve performance. #30742 (@sunag) - NodeBuilder - Add abstract reference for `buildFunctionCode()`. #30712 (@s-rigaud) - NodeMaterial - Add support for `compute()` integrated into the material. #30768 (@sunag) - OperatorNode - Fix `notEqual()` redundant bool conversion. #30740 (@sunag) - Renderer - Disallow render target resizing while in XR. #30738 (@cabanier) - ShadowMaskModel - Fix signatures. #30764 (@Mugen87) - TextureNode - Add `blur()` check and warning. #30722 (@sunag) - TSL - Simplify expression output. #30691 (@RenaudRohlinger) - Add `samplerComparison`. #30734 (@sunag) - Fix `equal()` inconsistent. #30777 (@sunag) - Allow `max()`/`min()` to take an arbitrary number of arguments. #30780 (@sunag) - Avoid name collisions. #30785 (@sunag) - Improve warnings. #30783 (@sunag) - Deprecated `modInt()` and minor fixes. #30790, #30796 (@sunag) - Add `debug()`. #30797 (@sunag) - WebGLBackend - Bring back 3D functionality for `copyTextureToTexture()`. #30584, #30644 (@zonkypop, @Mugen87) - WebGLRenderer - Refactor `setRenderTargetTextures()`. #30628 (@cabanier) - Fixed `readRenderTargetPixelsAsync()` readability check. #30672 (@greyb1t) - Fix reference to `drawingBufferColorSpace`. #30707 (@s-rigaud) - WebGPUAttributeUtils - Use correct buffer offset for `updateRanges`. #30617 (@zonkypop) - Add int8/uint8 patch. #30749 (@sunag) - WebGPUBackend - Make `copyTextureToTexture()` work with 3D textures. #30618 (@zonkypop) - WebGPUConstants - Fix name of `RG11B10UFloat`. #30717 (@s-rigaud) - WebGPURenderer - Fix texture view caching and dispose event stacking #30647 (@RenaudRohlinger) - Honor `material.outputNode` if used with MRT. #30659 (@sunag) - RenderBundle support transparent objects. #30689 (@RenaudRohlinger) - RenderBundle use correct LightsNode. #30700 (@RenaudRohlinger) - Revisions for release. #30803 (@sunag) - WebGPUTextureUtils - Fix reference for `BC4RSnorm`. #30678 (@s-rigaud) - XRManager - Fix up AA for WebXR and use multisample extension only when needed. #30724 (@cabanier) - Add more integrated support for WebXR Layers. #30730 (@cabanier) **Manual** - Move guides from old docs to manual. #30736 (@Mugen87) **Docs** - Add more JSDoc. #30620, #30624, #30629, #30631, #30633, #30638, #30641, #30642, #30646, #30649, #30651, #30656, #30658, #30662, #30675, #30686, #30692, #30702, #30705, #30719, #30727, #30733, #30752, #30793 (@Mugen87) - Fix typings and typos. #30626, #30632, #30664, #30665, #30677, #30711, #30723, #30721, #30776, #30789, #30791 (@s-rigaud, @omahs) - Improve Chinese translation. #30683 (@kang-git) - Remove old docs. #30748 (@Mugen87) **Examples** - Clean up. #30798 (@s-rigaud) - Cleanup volumetric lighting examples. #30660 (@sunag) - Improve `webgpu_compute_geometry` example. #30699 (@cmhhelgeson) - Avoid relying on implicit event parameter. #30792 (@s-rigaud) **Addons** - AMFLoader - Fix materialId reference. #30668 (@s-rigaud) - AnimationClipCreator - Default to empty string for clip name. #30666 (@s-rigaud) - AsciiEffect - Avoid useless split operations. #30667 (@s-rigaud) - Fix values types. #30710 (@s-rigaud) - CSMShader - Add missing `getPointShadow()` argument. #30771 (@brentyi) - EXRLoader - Fix string comparison. #30709 (@s-rigaud) - GLTFExporter - Delete invalid and outdated fallback. #30744 (@Bajdzis) - GLTFLoader - Fix bad reference to `PATH_PROPERTIES`. #30669 (@s-rigaud) - LDrawLoader - Wrong call to `parseModel()`. #30670 (@s-rigaud) - Fix error message. #30801 (@s-rigaud - LUTImageLoader - Harmonize ctor. #30720 (@Mugen87) - LWOLoader - Fix method calls. #30802 (@s-rigaud) - MD2Loader - Clip creation requires additional argument. #30671 (@s-rigaud) - OculusHandModel - Fix reference to path attribute. #30679 (@s-rigaud) - ProgressiveLightMapGPU - Disclove potpack hidden behavior. #30716 (@s-rigaud) - PointerLockControls - Add `unadjustedMovementoption` to `lock()`. #30687 (@james090500) - USDZExporter - Reuse instantiated material for `buildXform()`. #30661 (@zphr) - USDZLoader - Fix Blob options. #30708 (@s-rigaud) - ViewHelper - Adjust viewport position for WebGPU renderer. #30735 (@Child-qjj) - VolumeSlice - Comment out broken code path. #30715 (@s-rigaud) **Editor** - Fix publish. #30690 (@Mugen87) - Improve Chinese translation. #30787 (@linbingquan) - Add color space options for background textures. #30794 (@Mugen87)
https://github.com/mrdoob/three.js/wiki/Migration-Guide#r173--r174 https://github.com/mrdoob/three.js/milestone/87?closed=1 - Global - Improve ESLint setup. #30509, #30513, #30580 (@s-rigaud) - Animation - Rename `frame` parameter to `xrFrame`. #30558 (@Mugen87) - BatchedMesh - Deprecate old instancing render paths. #30550 (@gkjohnson) - MeshNormalNodeMaterial - Convert packed normal to working color space. #30590 (@WestLangley, @cmhhelgeson) - PMREMGenerator - Add size and position options to `fromScene()`. #30477 (@Mugen87, @Spiri0) - PMREMNode - Manage own generator, fix caching. #30504 (@Mugen87) - Renderer - Disable autoClear in the output pass. #30454 (@Mugen87) - Return self in `init()`. #30556 (@CodyJasonBennett) - RenderTarget - Fix copy of images. #30585 (@Mugen87) - SpriteNodeMaterial - Set `transparent=true` as default. #30435 (@sunag) - Fix `scaleNode` type conversion. #30545 (@sunag) - StructTypeNode - Fix inclusion when added to the layout. #30439 (@sunag) - TSL - Introduce `RaymarchingBox` and `raymarchingTexture3D`. #30495 (@sunag) - WebGLBackend - Configure scissor/viewport before clear. #30452 (@Mugen87) - Fix depth regression. #30527 (@Mugen87) - Optimize vertex state definition. #30562 (@Mugen87) - Only invalidate framebuffers on supported devices. #30606 (@Mugen87) - WebGLRenderer - Assign `currentRenderState` in `renderer.compile()`. #30607 (@cmhhelgeson) - WebGPUBackend - Add support for `setStencilReference()`. #30470 (@Mugen87) - Fix clear(). #30485 (@Mugen87) - WebGPURenderer - Fix clear for default framebuffer. #30457 (@RenaudRohlinger) - Add `setOutputRenderTarget()` #30459 (@sunag) - Fix info metrics. #30483 (@Mugen87) - Simplify clear color generation. #30486 (@Mugen87) - Fix color space of clear colors. #30488 (@Mugen87) - Honor polygonOffset with WebGPU backend. #30496 (@Mugen87) - Add tone-mapping/output color space support for WebXR. #30499 (@sunag) - Fix output depth struct. #30514 (@sunag) - Fix storage buffer binding update and 4 bytes alignment. #30529 (@RenaudRohlinger) - Support rotation of env maps. #30528 (@Mugen87, @sunag) - Fix storage buffer update range. #30532 (@RenaudRohlinger) - Fix `mat2()` arguments. #30543 (@RenaudRohlinger) - Add volumetric lighting. #30530 (@sunag) - Harmonize clear of MRT textures. #30586 (@Mugen87) - XRManager - Simplify MSAA setup. #30500 (@Mugen87) - Mark XR rendertarget as needing a resolve for depth or stencil. #30565 (@cabanier) **Manual** - Clean up. #30480 (@fengT-T) **Docs** - Improve JSDoc setup. #30430, #30443, #30449, #30453, #30460, #30461, #30466, #30542 (@Mugen87) - Fix typos and types. #30510, #30511, #30546, #30548, #30555, #30557, #30559, #30602, #30603 (@s-rigaud, @Mugen87) - Improve dispose guide. #30441, #30524 (@Mugen87, @catalin-enache) - Add more JSDoc. #30442, #30534, #30541, #30547, #30552, #30573, #30574, #30579, #30588, #30592, #30601, #30610 (@Mugen87) - Add instructions for improving editor auto-completion. #30444 (@Makio64) - Add `Mattercraft` to `Wrappers and Frameworks`guide. #30465 (@nyan-left) - Improve Chinese translation. #30475 (@haiyoucuv) - Improve `LOD` page. #30591 (@guiseek) - Improve `Raycaster` page. #30478 (@trusktr) - Improve `displacementBias` description. #30564 (@s-rigaud) **Examples** - Clean up. #30432 (@Mugen87) - Update particle count to 500k in WebGPU compute example. #30455 (@Makio64) - Adjust volume instances demo to write to depth. #30464 (@gkjohnson) - Fix time usage. #30498 (@Mugen87) **Addons** - 3MFLoader - Fix parsing of assets with sub models. #30491 (@Jack-J-Young) - AfterImageNode - Refactor code and improve demo. #30433 (@Mugen87) - CCDIKSolver - Add `blendFactor` support. #30415 (@anishwij) - DDSLoader - Fix incorrect alpha when loading 24-bit uncompressed textures. #30598 (@miere43) - FBXLoader - Handle out-of-bounds material assignments. #30581 (@hybridherbst) - MTLLoader - Add support for displacement maps. #30508 (@krotalias) - OutlinePass - Honor original `overrideMaterial`. #30578 (@Mugen87) - Raymarching - Move `raymarchingTexture3D` to example and update `webgpu_volume_perlin`. #30531 (@sunag) - Reflector - Add `forceUpdate`. #30569 (@Shane-oo) - SelectionHelper - Ensure DOM cleanup. #30473 (@trusktr) - Timer - Add `connect()`/`disconnect()`. #30551 (@Mugen87) - TSL Transpiler - Support matrix types. #30501 (@Mugen87) - Support varying. #30506 (@Mugen87) - Support more matrix types, bool vectors. #30517 (@CodyJasonBennett) - Basic texture support. #30521 (@Mugen87) - Add support for `discard`. #30538 (@Mugen87)