| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| r187 source code.tar.gz | < 12 hours ago | 374.8 MB | |
| r187 source code.zip | < 12 hours ago | 378.8 MB | |
| README.md | < 12 hours ago | 36.0 kB | |
| Totals: 3 Items | 753.7 MB | 0 | |
https://github.com/mrdoob/three.js/wiki/Migration-Guide#186--187 https://github.com/mrdoob/three.js/milestone/100?closed=1
- Global
- Remove code deprecated in r177. [#34517] (@linbingquan, @Mugen87)
- AnimationUtils
- Fix cubic spline additive reference sampling. [#34860] (@gjija)
- Backend
- Keep occlusion query results per camera. [#35066] (@arodic, @claude)
- BatchedMesh
- Clarify geometry compatibility requirements. [#34675] (@MikeFernandez-Pro, @Mugen87)
- Fix sort corruption. [#34828] (@Mugen87)
- Make shadows more node compatible. [#34829] (@Mugen87)
- Fix draw ranges after
setGeometrySize(). [#34983] (@MikeFernandez-Pro) - Fix memory leak of previous matrix data. [#35272] (@Mugen87)
- Bindings
- Avoid recreating initial texture bind groups. [#34657] (@mrdoob)
- Avoid cache key allocations in
_update(). [#35120] (@Snuble-bot, @Mugen87, @claude) - Avoid cache key collision with similar IDs. [#35226] (@Mugen87)
- Box3
- Use BatchedMesh bounds in precise mode. [#34863] (@gjija)
- BufferAttribute
- (Interleaved)BufferAttribute: Optimize normalized data access. [#34992] (@zeux)
- BufferGeometry
- Finalize tangents once per vertex. [#34624] (@mrdoob)
- Color
- Accept negative hues and decimal percentages in
setStyle(). [#34849] (@ewraj) - ColorManagement
- Fix order of color space conversion matrix. [#34952] (@michaelcrosato, @claude)
- CompressedTexture
- Default
mipmapsto an empty array. [#35081] (@arodic, @Mugen87, @claude) - Core
- Make
copy()methods more robust. [#34691] (@Mugen87) - Fix reversed depth function mapping. [#35264] (@WilliamLiu-1997)
- Curves
- Invalidate cached lengths when copying or deserializing. [#35118] (@dewanshshekhar, @Mugen87)
- EdgesGeometry
- Use a Map for edge lookups. [#34805] (@sarojpahi)
- FramebufferTexture
- Fix
sourcecopy. [#34636] (@Mugen87) - Geometries
- Add missing delete. [#34648] (@Mugen87)
- Inspector
- Auto-render non-texture nodes in the Viewer and fix
toInspector()registration. [#35253] (@sunag) - InterleavedBuffer
- Fix clone() and toJSON() of views into a shared array buffer. [#34755] (@vincentfretin, @claude)
- KeyframeTrack
- Fix
shift()ignoring tangent data. [#34951] (@kwy404) - LatheGeometry
- Normalize the normal of the last point. [#35153] (@spokodev)
- LightProbe
- Fix JSON round trips. [#34859] (@gjija, @Mugen87)
- LightShadow
- Clean up. [#35213] (@Mugen87)
- Line
- Line, Points: Copy morph targets in
copy(). [#35147] (@Enesuygurs) - Line3
- Fix closest point for degenerate segments in
distanceSqToLine3(). [#34673] (@kwy404) - Math
- Improve tree-shaking of unused classes. [#34619] (@mrdoob)
- MeshPhysicalMaterial
- Add EON rough diffuse BRDF. [#34379] (@Ryan-G7, @Mugen87)
- Add iridescence thickness min/max properties. [#35039] (@Mugen87)
- Object3D
- Honor pivot when decomposing local matrices. [#34811] (@gjija, @mrdoob)
- ObjectLoader
- Fix loading of BatchedMesh available ids. [#34652] (@gjija, @Mugen87)
- Restore
SpotLight.map. [#35128] (@HEOJUNFO, @claude) - PMREM
- Restore minimal roughness, improve roughness ramp. [#34645] (@Mugen87)
- PMREMGenerator
- Replace the CubeUV atlas with cube render targets. [#34585] (@mrdoob, @claude)
- RenderContexts
- Simplify comment. [121e62] (@Mugen87)
- Add the camera type to the state key. [#35123] (@arodic, @claude, @sunag)
- Renderer
- Fix edge cases in
dispose(). [#34765] (@Mugen87) - Improve canvas target disposal. [#34969] (@Mugen87)
- Track the source material in override passes. [#35232] (@mrdoob)
- Renderers
- Fix polygon offset with reveresed depth buffer. [#34606] (@Mugen87)
- Preallocate wireframe indices. [#34621] (@mrdoob)
- Fix blit region in
copyTextureToTexture(). [#35167] (@batuhansalkim) - Ignore logarithmic depth buffer when reversed depth buffer is enabled. [#35276] (@mrdoob, @claude)
- RendererUtils
- Preserve additional renderer state. [#35233] (@kemchenj)
- RenderObject
- Use
hashArray()ingetDynamicCacheKey(). [#34553] (@Mugen87) - Fix dispose listener for geometries. [#34605] (@Mugen87)
- Detect missing color change for instanced meshes. [#34752] (@Mugen87)
- Add uv
channelto material cache key. [#34773] (@Mugen87) - Exclude deprecated
iridescenceThicknessRange. [2b7c79] (@Mugen87) - Fix handling of
blendingandcombine. [#35113] (@a411919924, @Mugen87, @claude) - RenderObjects
- Improve geometry check. [#34799] (@Mugen87)
- RenderTarget
- Give each attachment its own
TextureSource. [#34970] (@ycw, @Mugen87) - Shadows
- Fix point light shadow seams. [#35267] (@mrdoob, @Mugen87)
- Skeleton
- Take ownership of previous data. [#34976] (@Mugen87)
- SkinnedMesh
- Avoid iterator spread in applyBoneTransform(). [#34810] (@sarojpahi)
- Sprite
- Serialize
center. [#35162] (@mkantautas) - StorageBufferAttribute
- Add support for disposing storage buffer attributes. [#34664] (@gkjohnson)
- Fix feedback on disposal. [#34666] (@gkjohnson, @Mugen87)
- Texture
- Add
mipmapsAutoUpdate. [#34630] (@Mugen87) - Textures
- Return
generationkey inupdateTexture(). [#34659] (@Mugen87) - TextureSource
- Never write
undefinedinto the target vector in getSize(). [#34615] (@madisonrickert, @Mugen87, @claude) - Triangle
- Fix
closestPointToPoint()returningNaNwhenaequalsb. [#34695] (@kwy404, @Mugen87) - WebGLBackend
- Fix single-layer array render targets. [#34510] (@WilliamLiu-1997, @Mugen87)
- Clear caches in
dispose(). [#34602] (@Mugen87) - Improve
dispose(). [#34688] (@Mugen87) - Fix clear() with a disabled color write mask. [#34729] (@drakeo338, @Mugen87)
- Fix FloatType depth textures with MSAA. [#34768] (@WilliamLiu-1997)
- Fix MSAA with default depth textures. [#34927] (@WilliamLiu-1997)
- Use correct depth texture for clear. [#34928] (@Mugen87)
- Move
transformsandattributestoComputePipeline. [#35009] (@Mugen87) - WebGLProgram
- Remove unreachable shader chunk alias fallback. [ce84e0] (@mrdoob)
- WebGLPrograms
- Remove undefined morphAttributeCount cache-key field. [eb955c] (@mrdoob)
- Fix material.precision leaking into other materials. [#34818] (@mrdoob)
- WebGLRenderer
- Only apply pixel ratio to the canvas in setViewport() and setScissor(). [#34460] (@mrdoob, @claude)
- Support
FrustumArray. [#34275] (@Mugen87) - Improve geometry disposal. [#34529] (@Mugen87)
- Improve texture disposal. [#34530] (@Mugen87)
- Reuse binding points for uniform groups. [#34669] (@gkjohnson)
- Align shadow camera layer handling to
WebGPURenderer. [#34670] (@Mugen87) - Correctly init default depth textures. [#34687] (@Mugen87)
- Add
getProgramVariant(). [#34739] (@Mugen87) - Support
needsDepthTextureinsetEffects(). [#34858] (@mrdoob) - Fix PCF shadow bias with reversed depth. [#34892] (@WilliamLiu-1997)
- Move
frameincreament before project. [#35103] (@Mugen87) - Fix color morphing regression. [#35140] (@Mugen87)
- Fix instanced attributes viewing a buffer attribute. [#35227] (@sunag)
- WebGLState
- Reset blending cache in
setMRTBlending(). [#34990] (@yujiaxu-ops, @Mugen87, @claude) - WebGLTextures
- Fix point light shadow disposal. [#34522] (@Mugen87)
- Don't invalidate depth for
DRAW_FRAMEBUFFER. [#35155] (@Mugen87) - WebGLTextureUtils
- Fix
copyTextureToBuffer()with red, RG and integer formats. [#34852] (@mrdoob) - Fix source layer detection in
copyTextureToTexture(). [#35111] (@HEOJUNFO, @claude) - WebGLUniformsGroups
- Fix uniforms with array values. [#34889] (@mrdoob)
- Fix std140 layout of arrays of uniforms. [#34890] (@mrdoob)
- WebGPUBackend
- Skip generateMipmaps when the framebuffer copy dest has no mip chain. [#34582] (@204a)
- Fix widening of
uint16indices in standard use case. [#34734] (@cmhhelgeson, @Mugen87) - Fix ArrayCamera depth clear value with reversed depth. [#34804] (@mrdoob, @claude)
- Recreate array camera layer descriptors when the depth texture changes. [#34850] (@mrdoob)
- Fix
copyFramebufferToTexture()outside of render passes. [#35133] (@mrdoob, @Mugen87) - WebGPUBindingUtils
- Select depth aspect for sampled depth textures. [#34584] (@WilliamLiu-1997)
- WebGPURenderer
- Fix render target texture dispose crash. [#34496] (@Mugen87)
- Textures never removes dispose listeners. [#34368] (@wcandillon, @Mugen87, @claude)
- Align
dispose()for geometries. [#34516] (@Mugen87) - Ensure valid state in
compileAsync(). [#34506] (@Mugen87) - Properly delete shader programs. [#34601] (@Mugen87)
- Refactor node attribute disposal. [#34603] (@Mugen87)
- Improve VAO caching and disposal. [#34610] (@Mugen87)
- Replace "addLight" with "lightNode" reference. [#34622] (@gkjohnson)
- Unify handling of interleaved attributes. [#34690] (@Mugen87)
- Derive
viewportandstencilflags from render context. [#34692] (@Mugen87) - Introduce
ProxyNodeMaterial. [#34684] (@sunag) - Refactor render cache key. [#34726] (@Mugen87)
- Reset
timestampWriteswith disabledtrackTimestamp. [#34760] (@Mugen87) - Add missing
DEPTH32F_STENCIL8, fix default depth texture. [#34803] (@Mugen87) - Support depth-only render targets. [#34782] (@mrdoob, @Mugen87, @claude)
- Release previous pipeline and programs when switching to cached ones. [#34821] (@mrdoob)
- Add
_updateDispatchSize(). [#34871] (@Mugen87) - Clear texture update ranges after upload. [#34919] (@MikeFernandez-Pro, @Mugen87)
- Throw an error if "count" and "dispatchSize" are used together. [#34813] (@gkjohnson, @sunag)
- Fix
scissorTestcheck. [#35000] (@Mugen87) - Always bind struct storage buffers as arrays. [#34807] (@gkjohnson)
- Compile pipelines in parallel in
compileAsync(). [#34816] (@sunag) - Fix shader reuse for instanced meshes. [#34872] (@EdoardoLuciani, @mrdoob, @sunag)
- Preserve material side in
compileAsync(). [#35016] (@mrdoob) - Share node builds across call depths. [#35014] (@mrdoob, @Mugen87)
- Support
dispose()for all buffer attributes. [#34685] (@sunag) - Support uncompressed data in compressed textures. [#35082] (@arodic, @Mugen87, @claude)
- Support
CompressedCubeTexture. [#35083] (@arodic, @Mugen87, @claude) - Share builds between instanced meshes with
referenceAttribute(). [#35007] (@mrdoob, @sunag) - Fix output camera initialization when starting in XR. [#35126] (@salmanmkc, @Mugen87)
- Fix disposed geometries with static objects and bundles. [#35105] (@sunag, @Mugen87)
- Fixed disposed PMREM. [#35185] (@Mugen87)
- Cull ArrayCamera draws per sub-camera. [#35164] (@bhouston, @Mugen87, @claude)
- Merge consecutive
BatchedMeshdraws that share a geometry range. [#35259] (@MikeFernandez-Pro, @Mugen87) - Rename
ProxyNodeMaterial->NodeMaterialInstance. [#35269] (@sunag) - Start the internal animation loop on first use. [#35278] (@mrdoob, @claude)
- Don't start the animation loop in
setAnimationLoop( null ). [#35279] (@mrdoob, @claude) - WebGPUTextureUtils
- Fix getColorBuffer() cache check. [#34826] (@mrdoob)
- Fix row padding in
copyTextureToBuffer(). [#34851] (@mrdoob) - WebXRController
- Use quaternion when decomposing pose matrices. [#34817] (@mrdoob)
Nodes
- Nodes
- Make build more efficient. [#34531] (@Mugen87)
- Unify temporary node caching in
Node. [#34607] (@sunag) - Use named MathUtils imports. [#34625] (@mrdoob)
- Delegate variable statements to NodeBuilder. [#34617] (@sunag)
- Fix
lightViewPosition()with ArrayCamera. [#34912] (@bhouston, @claude) - AttributeNode
- Allow the context to provide attribute values. [#35054] (@sunag)
- BasicEnvironmentNode
- Limit env map rotation to
envNode. [#34570] (@Mugen87) - Batch
- Only update the previous matrices texture when the matrices change. [#35057] (@HEOJUNFO, @Mugen87, @claude)
- Recreate the previous matrices texture when the instance count changes. [#35075] (@HEOJUNFO, @Mugen87, @claude)
- BitcountNode
- Return the input type for zero in the WebGL fallback. [#35217] (@HEOJUNFO, @claude)
- BumpMapNode
- Add
normalNodeparameter. [#35101] (@MikeFernandez-Pro) - Camera
- Isolate ArrayCamera uniforms across shader builders. [#34916] (@bhouston)
- ClippingNode
- Fix clipping with ArrayCamera. [#35096] (@bhouston, @Mugen87)
- EnvironmentNode
- Resolve environment textures before rendering. [#35036] (@sunag)
- getParallaxCorrectNormal
- Keep axis-aligned directions finite. [#35049] (@bhouston, @Mugen87)
- GLSLNodeBuilder
- Fix buffer name collisions between stages. [#35012] (@mrdoob)
- Fix
generateTextureLevel()with depth textures. [#35136] (@Mugen87) - Fix uniform block lookups in shared bind groups. [#35222] (@mrdoob, @claude)
- LightProbeNode
- Update light probe uniforms in the render group. [#35060] (@arodic, @claude)
- LightsNode
- Honor light version for shadow casting lights. [#34949] (@Mugen87)
- Fix cache key of shadow casting lights before the first build. [#35019] (@mrdoob)
- MaterialNode
- Fix clearcoat roughness texture channel. [#34564] (@hybridherbst)
- Node
- Cache node overrides per context. [#35050] (@sunag)
- NodeBuilder
- Move shared bind groups cache into Bindings. [#34707] (@Mugen87)
- Remove
getSharedDataFromNode(). [#34857] (@mrdoob) - NodeMangager
- Fix stack trace in async builds. [#34727] (@Mugen87)
- NodeMaterial
- Fix
copy(). [#34766] (@Mugen87) - Add
emissiveNodeto lambert, phong and toon materials. [#35059] (@MikeFernandez-Pro) - NodeMaterialObserver
- Force full refresh when the output target changes. [#34968] (@arodic)
- Force full refresh with custom fog and environment nodes. [#34996] (@arodic)
- Clean up. [c5e506] (@Mugen87)
- Add missing material properties. [#35022] (@Mugen87)
- Track texture uv transforms. [#35062] (@arodic, @Mugen87, @claude)
- Improve output target ceck. [#35156] (@Mugen87)
- Revert
fogNodeandenvironmentNodetracking. [#35221] (@Mugen87) - NodeSampler
- Fix
clone(). [#35094] (@Mugen87) - NodeStorageBuffer
- Fix stale attribute references. [#34939] (@WilliamLiu-1997)
- NodeUniformBuffer
- Fix stale attribute references. [#34941] (@Mugen87)
- NodeUtils
- Add
mergeContext()to merge override nodes of nested contexts. [#35108] (@sunag) - OverrideContextNode
- Add
shaderStageparameter tooverrideNodes(). [#35109] (@sunag) - PassNode
- Compile with the render configuration in
compileAsync(). [#35168] (@sunag) - PhysicalLightingModel
- Fix specular intensity in direct lighting. [#34764] (@EdoardoLuciani)
- PointShadowNode
- Adhere CubeCamera conventions. [#34899] (@Mugen87)
- Loop over shadow filter taps. [#35186] (@bhouston)
- RangeNode
- Use
hash()instead of per-object buffers. [#34897] (@mrdoob) - Make random values independent of node creation order. [#34920] (@sunag, @mrdoob)
- RectAreaLightNode
- Fix lighting with ArrayCamera. [#35095] (@bhouston, @Mugen87)
- ReflectorNode
- Fix reflection with view offset. [#34917] (@scottcampbelldata)
- Fix
bounces: falsewith multiple cameras. [#34977] (@arodic) - RenderOutputNode
- Make
premultipliedAlphaoptional. [#34948] (@Mugen87) - RTTNode
- Keep the renderer's clear color. [#34855] (@HEOJUNFO, @Mugen87, @claude)
- ShadowBaseNode
- Remove unused velocity flag. [#34854] (@mrdoob)
- ShadowFilterNode
- WebGLRenderer, WebGPURenderer: Fix PCF radius for non-square shadow maps. [#35018] (@mrdoob)
- Create the PCF shadow uniforms once per shadow. [#35047] (@sunag)
- ShadowNode
- Render shadows with needsUpdate only once. [#34794] (@mrdoob, @claude)
- Fix shadows with reverse depth in first frame. [#34801] (@Mugen87)
- Update shadows at least once. [#35093] (@Mugen87)
- Avoid redundant scene matrix updates. [#35203] (@mrdoob)
- SpriteNodeMaterial
- Use the center of the rendered sprite. [#35064] (@arodic, @claude)
- StorageBufferNode
- Better support
mat2with WebGL. [#34595] (@Mugen87) - TextureNode
- Simplify and optimize uniforms. [#34552] (@Mugen87)
- Propagate comparison sampling to the shared binding. [#34555] (@dswhy, @Mugen87)
- Detect filter and type changes. [#34556] (@Mugen87)
- Allow for non-mergeable uniforms. [#34450] (@Mirei3D)
- Fix int/float arithmetic regression. [#34898] (@Mugen87)
- Add
getTextureGradient()context to provide analytic uv gradients. [#35121] (@sunag) - ToneMappingFunctions
- Fix ACES Filmic fit denominator. [#35110] (@HEOJUNFO, @claude)
- TSL
- Fix
attributeArray()buffer count usage. [#34591] (@Mugen87) - Fix scalar constant caching. [#34618] (@mrdoob)
- Enable caching for reused type conversions. [#34633] (@sunag)
- Use local declarations for cached values and variable intents. [#34637] (@sunag)
- Share and vectorize bicubic filter calculations. [#34655] (@mrdoob)
- Share dielectric scattering in indirect lighting. [#34656] (@mrdoob, @Mugen87)
- Fix per-component
select(). [#34425] (@bhouston, @sunag) - Fix scope and reuse of function calls containing loops. [#34643] (@sunag)
- Share EON directional albedo in indirect lighting. [#34660] (@mrdoob, @Mugen87)
- Add type promotion in operators and math functions. [#33695] (@shotamatsuda, @sunag)
- Fix getViewPosition() with WebGL reversed depth. [#34724] (@WilliamLiu-1997)
- Add function layout to IBLSheenBRDF. [#34824] (@mrdoob, @claude)
- Simplify function layouts and add layouts to pure functions. [#34843] (@sunag)
- Optimize function layouts with include deduplication and default parameters. [#34848] (@sunag)
- Make nodes their own variable intents and improve build performance. [#34815] (@sunag)
- Fix external variables being generated twice when used in a branch. [#35067] (@sunag)
- Add color morphing. [#35141] (@Mugen87, @sunag)
- Fix parameter length of
quadBroadcast(). [#35218] (@HEOJUNFO, @Mugen87, @claude) - Build
before()nodes only in the setup stage. [#35245] (@sunag) - TSLCore
- Move the swizzle cache to a
WeakMap. [#35251] (@sunag) - UniformArrayNode
- Fix
mat2usage in WebGL. [#34587] (@Mugen87) - ViewportDepthNode
- Rename
getProjectionDepth()toprojectionDepth(). [#35230] (@Mugen87) - WGSLNodeBuilder
- Add Directives to Fragment Stage and Update NodeBuilder. [#34513] (@cmhhelgeson, @Mugen87)
- Support
gather()with multisampled textures. [#34609] (@RenaudRohlinger, @claude) - Honor read-write storage textures in the fragment stage. [#34923] (@HEOJUNFO, @Mugen87, @claude)
- Fix
grad()with unfilterable textures. [#35169] (@sunag)
Addons
- Addons
- Avoid unnecessary regex backtracking. [#35184] (@mrdoob)
- 3DMLoader
- Fix authentication and custom header forwarding to internal asset loaders. [#35024] (@bhouston)
- BitonicSort
- Dispatch a complete sort in one compute pass. [#35275] (@subashc2023)
- BufferGeometryUtils
- Validate morph attributes in mergeGeometries(). [#34532] (@cuishuang)
- Support interleaved data in
mergeVertices(). [#34665] (@Mugen87) - Match tangent precision to quantized normals in
computeMikkTSpaceTangents(). [#34714] (@mrdoob, @Mugen87, @claude) - Fix
deinterleaveGeometry()with morph attributes. [#34827] (@MikeFernandez-Pro) - Add
remapAttribute(). [#34945] (@bhouston) - Preserve
morphTargetsRelativeinmergeGeometries(). [#35177] (@HEOJUNFO, @Mugen87) - Fix group count of Infinity in mergeGroups(). [#35258] (@shan3520, @Mugen87)
- CCDIKSolver
- Improve clamp. [#35023] (@Mugen87)
- ClusteredLighting
- Add spot lights and WebGL2 fallback support. [#34978] (@sunag)
- ColladaLoader
- Fix n-gon attribute triangulation. [#34862] (@gjija, @Mugen87)
- Fix sRGB to linear conversion of vertex colors. [#35129] (@HEOJUNFO, @claude)
- ColorConverter
- Fix HSV conversion at black and white boundaries. [#34806] (@dhairyajangir)
- CSMShader
- Sync
lights_fragment_beginwith the core chunk. [#35248] (@subashc2023) - DDSLoader
- Align data length computation to DirectXTex. [#34908] (@Mugen87)
- DRACOLoader
- Fix loop bound when repacking unaligned attributes. [#35037] (@cherenkov, @claude)
- EXRExporter
- Fix zip partial block. [#34964] (@richardmonette)
- Add RLE compression. [#34972] (@richardmonette)
- Add PIZ compression. [#34979] (@richardmonette)
- Add textureIndex option for MRT render targets. [#35207] (@repalash)
- EXRLoader
- Remove duplicate half-float decoder. [#34574] (@bhouston)
- Use lookup table for DWA linear conversion. [#34573] (@bhouston)
- GCodeLoader
- Fix extrusion detection in relative mode. [#34895] (@scottcampbelldata, @Mugen87)
- Fix parsing of files with CRLF line endings. [#35171] (@L4XB, @Mugen87)
- GLTFExporter
- Fix orthographic camera xmag and ymag. [#35215] (@HEOJUNFO, @Mugen87, @claude)
- GLTFLoader
- Fix GLTF loader credential forwarding to buffers and bitmap textures. [#35025] (@bhouston)
- Parse embedded KTX2 images without a Blob. [#35193] (@Construkted-Reality, @Mugen87, @claude)
- GTAOPass
- Remove combined depth and normal texture support. [#34836] (@bhouston, @Mugen87)
- Fix external buffer handling. [#34831] (@bhouston)
- IESLoader
- Apply photometric factors linearly instead of squaring candela. [#34554] (@dswhy)
- IESLoader, IESSpotLight: Add support for 2D & symmetric profiles. [#34626] (@gkjohnson)
- Inspector
- Remove Circular Dependency. [#34592] (@cmhhelgeson)
- Fix CPU time double counting and FPS with skipped frames. [#35070] (@sunag)
- Fix number input drag interfering with text selection. [#35117] (@MikeFernandez-Pro)
- Truncate long parameter labels. [#35206] (@MikeFernandez-Pro)
- Fix overdraw render mode. [#35255] (@sunag)
- Fix mini panel checkbox and collapsed folder spacing. [#35252] (@sunag)
- Fix color grading exports and add example. [#35257] (@sunag)
- Fix GPU time display and triangle count for indirect draws. [#35256] (@sunag)
- JXLLoader
- Add native HDR image loading. [#35015] (@bhouston, @Mugen87)
- KTXLoader
- Fix mipmap size read. [#34905] (@Mugen87)
- Correctly round down mips. [#34906] (@Mugen87)
- LDrawLoader
- Optimize smoothNormals() by fixing quadratic time complexity. [#35200] (@AvaLovelace1)
- Fix null conditional edge material for unknown colours. [#35219] (@3a632062, @claude)
- LightMapper
- Diffuse light baker, works with Light Probe and VXGI. [#34991] (@bhouston)
- Clean up demo, add VGXI gather function. [#35183] (@Mugen87)
- LightProbeGrid
- Batch probe capture with ArrayCamera for ~4x faster bakes. [#34909] (@bhouston, @claude)
- Project SH in row blocks. [#35150] (@bhouston, @claude)
- Faster multi-bounce (and default examples to use multi-bounce). [#35145] (@bhouston, @Mugen87)
- Place probes at the center of their cells. [#35265] (@mrdoob)
- Only sample the last grid that contains the fragment. [#34798] (@mrdoob, @Mugen87, @claude)
- LightProbeGridWebGL
- Extend from
Light. [#34744] (@Mugen87) - LineMaterial
- Fix world-unit extrusion with orthographic cameras. [#34540] (@diarmidmackenzie, @Mugen87)
- Fix depth shifting. [#35139] (@Mugen87)
- Loaders
- Add priority and HTTP cache controls. [#34936] (@bhouston, @Mugen87)
- Lut
- Read the end colors of a color map in linear space. [#35181] (@L4XB, @Mugen87)
- LUT3dlLoader
- Prevent invalid bit depth values. [#34903] (@Mugen87)
- LUTCubeLoader
- Fix domain regex. [#34900] (@Mugen87)
- MaterialXDocument
- Clean MaterialX loader + compiler. [#34523] (@bhouston)
- MaterialXLoader bug fix: Support handlers that resolve with a Texture. [#34575] (@bhouston, @Mugen87)
- MaterialXLoader bug fix: consistent and correct nodedef defaults. [#34593] (@bhouston)
- MaterialXLoader
- Only resolve loading promises when all sub-resources are loaded. [#34439] (@bhouston)
- Support displacement nodes (both scalar and vector). [#34576] (@bhouston)
- Match output-less
separate2/3/4behaviour with MaterialX. [#34835] (@hybridherbst) - Add
setNodeResolver(). [#34832] (@hybridherbst) - Support
hsvadjust,facingratioandtriplanarprojection. [#34986] (@hybridherbst) - Support
surface_unlit. [#34987] (@hybridherbst) - Support nodes implemented by node graphs. [#34988] (@hybridherbst)
- Forward texture request configuration. [#35026] (@bhouston)
- MikkTSpace
- Replace WASM with JavaScript. [#34623] (@mrdoob)
- Speed up tangent generation. [#34713] (@mrdoob, @claude)
- NRRDLoader
- Fix parsing of the last header field. [#35178] (@HEOJUNFO, @Mugen87)
- NURBSCurve
- Fix
clone(). [#34542] (@Dev-next-gen) - OBB
- Fix plane distance sign in intersection tests. [#35195] (@Shubham-Padkonde, @Mugen87)
- Fix applyMatrix4() with rotated boxes and negative determinants. [#35261] (@Enesuygurs, @Mugen87)
- OBJExporter
- Support export of vertex colors in meshes. [#35131] (@shan3520)
- Fix export of indexed lines. [#35154] (@nk-batman21, @Mugen87)
- OBJLoader
- Parse l and p statements correctly. [#35006] (@shan3520, @Mugen87)
- Octree
- Preserve configured subdivision limits. [#34814] (@dhairyajangir)
- Fix sphere collisions at triangle edges. [#35196] (@Shubham-Padkonde, @Mugen87)
- Project box contacts toward the triangle plane. [#35197] (@Shubham-Padkonde, @Mugen87)
- Correct line segment to line segment closest point calculation. [#35216] (@shan3520)
- OrbitControls
- Reset state when the one-finger touch action is disabled. [#34651] (@gjija)
- Fix
zoomToCursorwhen dollying with the mouse. [#34856] (@mrdoob) - Move away from
getRootNode(). [#34973] (@Mugen87) - PCDLoader
- Respect COUNT when locating ASCII fields. [#34809] (@dhairyajangir, @Mugen87)
- Allow more separation styles. [#34901] (@Mugen87)
- PDBLoader
- Fix coordinate field slices. [#34896] (@scottcampbelldata, @Mugen87)
- PLYExporter
- Skip Points without position attributes. [#34762] (@somasoil, @Mugen87)
- Fix export of quantized attributes. [#35192] (@nk-batman21, @Mugen87)
- PLYLoader
- Fix colors, tex coords and indices for quads. [#34649] (@Mugen87)
- Move custom data parsing. [#34911] (@Mugen87)
- PVRLoader
- Fix mips size computation. [#34910] (@Mugen87)
- RapierPhysics
- Update Rapier to 0.21.0 and use jsDelivr CDN. [#35223] (@linbingquan)
- Reflector/ReflectorNode
- Better handle asymetric projections. [#34929] (@Mugen87)
- SceneUtils
- Keep
normalizedincreateMeshesFromMultiMaterialMesh(). [#35224] (@mmporong, @Mugen87) - STLLoader
- Fix
COLOR=parsing. [#34902] (@Mugen87) - SVGLoader
- Fix stylesheet parsing. [#34775] (@Mugen87)
- Improve path parsing. [#35005] (@Mugen87)
- Support
hrefinuseelements. [#35165] (@nk-batman21, @Mugen87) - SVGRenderer
- Use the target of directional lights for the light direction. [#35208] (@repalash)
- TGALoader
- Fix color palette index. [#34907] (@Mugen87)
- TSL
- More usage of
EPSILON. [#35063] (@Mugen87) - unwrapUVs
- Real-time generator of UV atlases for lightmap and normal baking. [#34944] (@bhouston, @Mugen87)
- USDAParser
- Avoid per-character string building in preprocessing. [#35020] (@cherenkov)
- Keep time samples at negative time codes. [#35172] (@L4XB, @Mugen87)
- Keep comment markers inside strings and asset paths. [#35182] (@L4XB, @Mugen87)
- USDComposer
- Correct the color space setting in to be linear sRGB. [#34644] (@Jeggery)
- USDLoader
- USDLoader bug: Load texture images through ImageLoader. [#35010] (@bhouston)
- VXGI
- Mitigate light bleeding. [#35160] (@Mugen87)
- VXGIVolume
- Improve disposal. [#34933] (@Mugen87)
- WebGPURenderer
- Introduce
StandardDrawingPipeline,MeshletDrawingPipelineandVisibilityBufferDrawingPipeline. [#35191] (@sunag) - XREstimatedLight
- Remove session listeners in
dispose(). [#35106] (@salmanmkc, @Mugen87)
Addons / Nodes
- TSL
- Add lens dirt TSL function. [#34715] (@Mugen87)
- Add isBackgroundDepth() and use it in post processing nodes. [#34792] (@mrdoob, @claude)
- Remove redundant
nodeObject()calls. [#34841] (@sunag) - ClusteredLightsNode
- Improve
dispose()and code structure. [#34930] (@Mugen87) - Preserve shader cache keys on first use. [#35271] (@sunag)
- DynamicLightsNode
- Refactor to restore lost support. [#34774] (@Mugen87)
- Identify batched lights by their class. [#35004] (@yujiaxu-ops, @Mugen87, @claude)
- GTAONode
- Fix false self-occlusion on distant slanted surfaces. [#34718] (@EdoardoLuciani, @Mugen87)
- Fix view direction for orthographic cameras. [#35073] (@martincollignon, @Mugen87, @claude)
- lensDirt
- Clean up. [f9cb76] (@Mugen87)
- LightProbeGrid
- Add a small margin to the bounds test. [#35268] (@mrdoob)
- MaterialXLoader
- Return 0 instead of
NaNfrom burn and dodge. [#34834] (@hybridherbst) - Vector and color noise now use one noise per channel. [#34833] (@hybridherbst)
- Add
randomfloatandrandomcolor. [#34866] (@hybridherbst) - OutlineNode
- Outline Nodes: Honor
positionNode, improvedispose(). [#34759] (@Mugen87) - PassNode/TAA
- Improve depth support. [#34802] (@Mugen87)
- PixelationPassNode
- Simplify Code. [#34543] (@cmhhelgeson, @Mugen87)
- SoftParticles
- Fix shader compilation with the WebGL backend. [#35249] (@subashc2023)
- SpecularHelpers
- Fix the GGX tangent frame at the poles. [#35237] (@bhouston)
- SSGINode
- Support resolution scale, add
getProjectionDepth(). [#35229] (@Mugen87) - SSRNode
- Default to the full GGX sampling lobe. [#35243] (@bhouston)
- Validate ray bounds and refined hits. [#35238] (@bhouston, @Mugen87)
- Fix refinement regression. [#35266] (@Mugen87)
- Clip traversal to the viewport and refine coarse hits. [#35240] (@bhouston)
- Support material F0 and F90 in stochastic reflections. [#35242] (@bhouston)
- TAAUNode
- TAA Nodes: Register inputs ahead of consumers. [#34565] (@Mugen87)
- TemporalReprojectNode
- Update the depth pass before the node. [#34823] (@mrdoob, @claude)
- Match the history depth type to the scene depth. [#34793] (@mrdoob, @Mugen87, @claude)
- TileShadowNode
- Support reversed depth buffer. [#34784] (@mrdoob, @claude)
- Honor shadow camera layers. [#34785] (@mrdoob, @claude)
- Add depthType option. [#34786] (@mrdoob, @claude)
- Use a depth-only render target. [#34783] (@mrdoob, @claude)
- Sample only the tile that covers the fragment. [#34787] (@mrdoob, @claude)
- TRAANode
- Fix previous-depth texture leak. [#34873] (@EdoardoLuciani)
- WebGLNodesHandler
- Use the WebGL PMREM generator. [#34628] (@mrdoob)
- Add missing
fogDensityuniform. [#35250] (@subashc2023) - WebGPURenderer
- Init render target textures differently. [#35204] (@Mugen87)
Docs
- Line3: Fix at() return description. [#34545] (@Hugohong258)
- TSL Guide: Fix parameter highlighting with parentheses in descriptions, plus edge case workaround. [#34577] (@ycw)
- Add a
Static Propertiessubsection to improve discoverability. [#34642] (@ycw) - Raycaster: Document batchId in Intersection. [#34674] (@MikeFernandez-Pro)
- BatchedMesh: Clarify when to recompute bounding volumes. [#34699] (@MikeFernandez-Pro, @Mugen87)
- Fix incorrect
@defaultvalues. [#34700] (@ZainnQureshii, @claude) - Fix JSDoc for
TextureLoader.loadto indicate optional callbacks. [#34730] (@ycw) - Opt embedded tweets out of personalization. [#34795] (@ycw)
- LightUtils: Fix Documenation. [#34845] (@cmhhelgeson)
- BatchedMesh: Fix
getGeometryRangeAt()description. [#34847] (@MikeFernandez-Pro) - Fix typo in Object3D.js documentation. [f2a1c2] (@mrdoob)
- DirectRenderPipeline: Document MSAA restriction. [#34954] (@Mugen87)
- NodeMaterial: Clarify
positionNodewith instancing. [#34981] (@MikeFernandez-Pro) - SkyMesh: Improve docs. [#34989] (@Mugen87)
- InspectorBase: fix renderer types in JSDoc. [#35027] (@kercre123)
- Fix incorrect default values in JSDoc. [#35034] (@ihsandeniz)
- SpriteNodeMaterial: Correct positionNode type in docs. [#35071] (@SachchitNesarikar)
- Fix typo in ExtrudeGeometry section. [#35180] (@andayers06)
- Fix callback parameters of
Object3DandInterpolant. [#35231] (@mmporong, @claude) - TSL Guide: Update for r187. [#35254] (@sunag)
- Fix minor issue in BokehPass inline documentation code sample. [#35274] (@cool-user1481)
Manual
- Improve update guide. [#34867] (@Mugen87)
- Fix broken links in WebXR and textures pages. [#34958] (@SatvikMishra08)
- Clarify replacing geometries when buffers outgrow capacity. [#35104] (@xlb3055, @Mugen87)
- Add three-player-controller to libraries and plugins. [#35234] (@hh-hang)
Examples
- Clean up. [#34518] (@Mugen87)
- Clean up. [#34539] (@Mugen87)
- Remove iOS iframe auto-resize workaround. [#34546] (@paulmasson)
- Clean up. [#34547] (@Mugen87)
- Only use SunLight in larger scenes. [#34586] (@Mugen87)
- Fix MaterialX shader precompilation. [d8d1c9] (@mrdoob)
- Skip MaterialX double-pass precompilation. [1b437f] (@mrdoob)
- Update path tracer to latest WebGPU version. [#34704] (@gkjohnson)
- Use Inspector in webgpu_renderer_pathtracer.html. [#34708] (@ycw)
- Add webgpu_tsl_occlusion_dither. [#34710] (@MikeFernandez-Pro)
- Remove redundant lil-gui CSS from webgpu_renderer_pathtracer.html. [#34731] (@ycw)
- Update fflate to 0.8.3. [#34737] (@brennanmceachran, @claude)
- Clean up. [#34740] (@Mugen87)
- Clean Up. [#34839] (@cmhhelgeson, @Mugen87)
- Clean Up 2. [#34840] (@cmhhelgeson)
- Linting. [#34925] (@cmhhelgeson, @Mugen87)
- Fix Readback in Reduce Example. [#34924] (@cmhhelgeson, @Mugen87)
- Clean up. [#34984] (@Mugen87)
- Fix hover highlight of first instance in
webgl_batch_lod_bvh. [#34998] (@MikeFernandez-Pro) - Add VDB loader community example. [#35043] (@richardmonette)
- Fix wireform transform not matching on CSG example. [#35152] (@ctkerns)
- Replace MRT scan asset. [#35158] (@Mugen87)
- Clean up. [#35188] (@Mugen87)
- Move point light uniforms to
renderGroupinwebgpu_volume_fire. [#35198] (@MikeFernandez-Pro) - Switch Physics engine in ball pool demo. [#35209] (@Mugen87)
- Improve shadows in
lightprobes_complex. [8c211c] (@mrdoob, @claude) - Rename
webgpu_gpudriven_*towebgpu_meshlets_*. [#35282] (@mrdoob, @claude)
Devtools
- Lights, persistent helpers, previews without a renderer and 1.19. [#35220] (@mrdoob, @claude)
Editor
- Add missing
sidebar/project/cameralocale. [#34512] (@ycw) - Fix editor lint warnings. [#34515] (@ycw)
- Better IDB perf metrics and error handling. [#34514] (@ycw, @Mugen87)
- Add zh/ja/ko/fa/fr translations for perspective/orthographic camera shortcuts. [#34796] (@linbingquan)
Tests
- Add lint rule to prevent import from /build in tests. [#34541] (@bhouston)
- Add TSL code generation reference tests. [#34631] (@sunag)
- Report size: Always format sizes in kB. [227e7b] (@mrdoob, @claude)
- Consolidate TSL unit tests. [#34918] (@bhouston)
- Simplify TSL case names and reference parsing. [#35056] (@sunag)
- Restart browser after a timeout. [#35098] (@bhouston)
- Retry examples after a timeout. [#35146] (@bhouston)
- Retry completely black screenshot mismatches. [#35166] (@bhouston)
Build
- Make
three/tsltree-shakeable. [#34533] (@monken)
CI
- Report size: Measure full builds as self-contained bundles. [#34777] (@mrdoob, @claude)
- Fix broken link to Node.js get help. [#35151] (@ctkerns)