r184
Added 9
- Add HTMLTexture
- Add position-dependent diffuse Global Illumination with LightProbeGrid
- Add support for EXT_texture_norm16 formats in renderers
- Add hyperbolic math nodes to TSL
- Add OnFrameUpdate and OnBeforeFrameUpdate to TSL
- Add global and local scope to TSL
- Add DepthTexture to scene render target in WebGLOutput
- Add NodeMaterial compatibility layer to WebGLRenderer
- Add support for packed normal maps to WebGLRenderer
Changed 7
- Update @rollup/plugin-terser to 1.0.0
- Update ESLint to ECMA 2022
- Improve HTMLTexture support
- Update applyBoneTransform in SkinnedMesh to optionally take Vector4 and support direction or position transformation
- Improve compilation performance in TSL by 3.0x
- Make WebGPURenderer compileAsync() truly non-blocking
- Cache pixel storage parameters in renderers
Fixed 4
- Fix timeScale reversal jump in AnimationAction
- Fix race condition with loading manager in AudioLoader
- Fix getColorAt throwing an error when colors have not been set in InstancedMesh and BatchedMesh
- Fix geometry corruption on 2-point curves in CatmullRomCurve3
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
timeScalereversal 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
generateMipmapscorrectly. #33069 (@PoseidonEnergy)
- Restore
- DataTextureLoader
- Fix log regression. #33148 (@Mugen87)
- Move
returnin catch block to correct position. #33243 (@Om-Mishra09)
- Dev
- Fix vulnerabilities. #33141 (@Mugen87)
- Execute
npm audit fix. #33333 (@Mugen87)
- GLSLNodeBuilder
- Fix texelFetch
lodtype. #33399 (@Mugen87)
- Fix texelFetch
- ImageBitmapLoader
- Improve docs. #33379 (@Mugen87)
- Inspector
- Add Memory tab and improve
Renderer.info. #33097 (@sunag)
- Add Memory tab and improve
- 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)
- Handle degenerate line in
- Loaders
- Make return types in
load()consistent. #33380 (@Mugen87)
- Make return types in
- 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)
- Make
- NodeMaterialObserver
- Avoid usage of
Object.keys(). #33113 (@Mugen87) - Speed up material comparisons. #33198 (@Mugen87)
- Speed up geometry comparisons. #33199 (@Mugen87)
- Avoid usage of
- NodeObjectLoader
- Fix
parseAsync(). #33377 (@Mugen87)
- Fix
- NodeUtils
- Replace
instanceof ArraywithArray.isArray(). #33262 (@Mridul012)
- Replace
- Object3D
- Correctly copy
pivot. #33163 (@PoseidonEnergy, @Mugen87)
- Correctly copy
- ObjectLoader
- Fix log regression. #33240 (@Om-Mishra09)
- PassNode
- Fix scissor and viewport setup. #33204 (@Mugen87)
- Plane
- Add
clampToLinetointersectLine(). #33398 (@Mugen87)
- Add
- Renderer
- Make
hasCompatibility()more predictable. #33087 (@Mugen87, @sunag)
- Make
- 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.outputColorSpaceandrenderer.toneMapping. #33187 (@sunag)
- Fix sync with
- RenderTarget
- Preserve multiview in copy(). #33285 (@Kundan-CR7)
- Shaders
- Clean up. #33133 (@WestLangley)
- ShadowNode
- Add support for
renderer.highPrecision. #33246 (@shotamatsuda, @sunag)
- Add support for
- SkinnedMesh
- Update "applyBoneTransform" to optionally take Vector4, support direction or position transformation. #33091 (@gkjohnson)
- Source
- Fix
getSize()forVideoFrame. #33131 (@PoseidonEnergy)
- Fix
- Texture
- Remove default setter parameter. #33129 (@PoseidonEnergy)
- Textures
- Improved HTMLTexture support. #33400 (@mrdoob, @claude)
- Triangle
- Simpler bool check in
isFrontFacing(). #33071 (@PoseidonEnergy)
- Simpler bool check in
- 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
hyperbolicmath nodes. #33233 (@thelazylamaGit) - Make global context available within compute nodes. #33231 (@shotamatsuda, @sunag)
- Add
globalandlocalscope. #33302 (@sunag) - Add OnFrameUpdate and OnBeforeFrameUpdate. #33356 (@shotamatsuda)
- Fix array texture with no
- 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
CanvasTargetcaching. #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
depth32floatinstead ofdepth24pluswhen usingreversedDepthBuffer. #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_drawfallback. #33238 (@Mugen87) - Fix texture issues. #33296 (@Mugen87)
- Clean up. #33305 (@Mugen87)
- Introduce
ReadbackBufferand reusegetArrayBufferAsync()buffers. #33300 (@sunag) - Fix WebGPU render bundle reuse across render contexts. #33335 (@RenaudRohlinger)
- Adjust getArrayBufferAsync behavior, add support for partial readback. #33322 (@gkjohnson, @sunag)
- Make
- WebGPUTextureUtils
- Fix check
layerUpdatesproperty. #33075 (@sunag) - Fix
copyTextureToBuffer()dispose buffer. #33366 (@sunag)
- Fix check
- 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
MapControlsdemo. #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
_invSizeuniform. cbf6fff0287c3d259a17af418a549f8598eb47ed (@Mugen87)
- Remove unused
-
ColladaLoader
- Add suport for
polygonsprimitive. #33143 (@Mugen87) - Add support for
instance_joint. #33293 (@Mugen87)
- Add suport for
-
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
penumbracomputation. #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)
- Add FSR 1 port for
-
FirstPersonControls
- Update interaction model. #33124 (@mrdoob, @claude)
- Fix deprecated handleResize() message. f5d4b94ac51f1a4e552770a5de588fd2a016bef3 (@mrdoob, @claude)
-
GLSLDecoder
- Replace deprecated
substr()withslice(). #33260 (@Mridul012)
- Replace deprecated
-
GLTFExporter
- Add
EXT_texture_webpsupport. #33117 (@BorisKourt) - Make attribute prefix more robust. #33357 (@Mugen87)
- Add
-
GLTFLoader
- Fix morph target parsing. #33020 (@Mugen87)
- Handle zero
ioredge case. #33119 (@Mugen87)
-
GPUComputationRenderer
- Call
dispose()on variable's material. #33318 (@madisonrickert, @claude)
- Call
-
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 TraceforSettings. #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
Extensionsupport and revisions. #33200 (@sunag) - Improvements. #33230 (@sunag)
- Fix
Tab.isActive. 33feff9e355cddabc3493533fb4ee9bc09091c6d (@sunag) - Replace deprecated
substr()withslice(). #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)
- Fix round stroke joins and caps when
-
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)
- Improve
-
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)