https://github.com/mrdoob/three.js/wiki/Migration-Guide#r167--r168
https://github.com/mrdoob/three.js/milestone/81?closed=1
- Global
- Clean up. #29050, #29057, #29080, #29088, #29104 (@linbingquan, @aardgoose, @WestLangley)
- Simplify tone mapping nomenclature. #29093 (@WestLangley)
- Background
- BatchedMesh
- BleachBypassNode
- Add FX class for bleach color effects. #28974 (@cmhhelgeson)
- ContextNode
- Controls
- CubeMapNode
- GLSLNodeBuilder
- Add
enableExtension()
. #28952, #29102 (@cmhhelgeson)
- Add
- InstancedPointsNodeMaterial
- Simplify extension. #29122 (@aardgoose)
- Don't rebuild every frame. #29222 (@aardgoose)
- Add
pointWidthNode
. #29236 (@cmhhelgeson) - Support opacity. #29252 (@RenaudRohlinger)
- LightProbeNode
- Material
- MaterialX
- MotionBlurNode
- Add FX class for per-object motion blur. #29058 (@Mugen87, @sunag, @gkjohnson)
- NodeBuilder
- NodeMaterial
- Nodes
- Remove keywords. #29129 (@sunag)
- Add anaglyph and parallax barrier pass nodes. #29184, #29201 (@Mugen87, @cmhhelgeson)
- Add
invocationLocalIndex
. #29202 (@cmhhelgeson)
- OperatorNode
- Maintain variable types in comparison. #29194 (@cmhhelgeson)
- PassNode
- PMREMNode
- SepiaNode
- Add FX class for sepia effect. #28961, #28991, #29130 (@cmhhelgeson, @sunag, @WestLangley)
- ShaderNode
- Remove
isArrayInput
. #29205 (@wcandillon)
- Remove
- SSAAPassNode
- StereoPassNode
- ToneMappingNode
- Properly handle alpha. #29076 (@WestLangley)
- Adhere to consistent capitalization. #29091 (@WestLangley)
- Remove the default value for
toneMapping
. #29101 (@WestLangley)
- TSL
- Add
spherizeUV()
. #28976 (@sunag) - Rename
uniforms()
touniformArray()
. #28910, #28979 (@cmhhelgeson, @Mugen87) - Introduce
billboarding()
. #29011 (@sunag) - Introduce
viewportSafeUV()
. #29025, #29067 (@sunag) - Flow control function names revision. #29064, #29090 (@sunag, @aardgoose)
- Remove
stack
parameter ofFn()
. #29070 (@sunag) - Rename
remainder()
tomodInt()
. #29092 (@cmhhelgeson) - Deferred function call and
once()
. #29121 (@sunag) - Support instancing and skinning without normals. #29134 (@RenaudRohlinger)
- Use TSL approach in more modules. #29178, #29188 (@sunag)
- Introduce
flip*()
syntax. #29208 (@sunag) - Rename
viewportTopLeft
toviewportUV
. #29211, #29241 (@sunag) - Prevent
viewportBottomLeft
breaking change and cleanup. #29223 (@RenaudRohlinger) - Color space revision. #29248, #29259 (@sunag)
- Add
- VelocityNode
- Add component for rendering motion vectors per fragment. #29058 (@Mugen87, @sunag, @gkjohnson)
- ViewportDepthNode
- WebGLRenderer
- Add support for changing the assigned render target depth texture. #28584 (@gkjohnson)
- WebGPUPipelineUtils
- WebGPURenderer
- Add
debug.getShaderAsync()
. #28997, #29001, #29010 (@Mugen87, @sunag) - Apply
Scene.environment
only on PBR materials. #29033 (@Mugen87) - Fix instance meshes that shares the same count. #29066 (@RenaudRohlinger)
- Enable subgroup directives/builtins. #29053 (@cmhhelgeson)
- Only use PMREM for background when blurriness is configured. #29089 (@Mugen87)
- Avoid using proxy in rendering cycle. #29094 (@sunag)
- Premultiply alpha for clear color. #29103 (@Mugen87)
- Manual shadow update control via
shadow.needsUpdate
. #29110 (@RenaudRohlinger) - WebGL State improvements. #29132 (@RenaudRohlinger)
- Don't create duplicate shader programs in the WebGL fallback renderer. #29135 (@aardgoose)
- New normal nodes approach. #29137 (@sunag)
- Fix scissor with MSAA for WebGL backend. #29148 (@aardgoose)
- Fix
generateMipmaps()
in texture layers for WebGPU backend. #29151 (@sunag) - Fix occlusion when rendering to a texture with WebGL backend. #29154 (@aardgoose)
- Fix linear filter textures w/o mipmaps. #29172 (@RenaudRohlinger)
- Fix
BatchedMesh
with indexed geometry. #29174 (@RenaudRohlinger) - Remove redundant code. #29176, #29186 (@aardgoose)
- Align WebGL backend extensions initialization with
WebGLRenderer
. #29177 (@RenaudRohlinger) - Cache
GPUBindGroupLayouts
. #29158 (@aardgoose, @sunag) - Support filterable Float32 textures in WebGPU. #29175 (@RenaudRohlinger)
BatchedMesh
colors support. #29203 (@RenaudRohlinger)- Reduce
bindingGroup
creation for data texture content updates. #29183 (@aardgoose) - Use material name or type to label WebGPU pipelines, add names to Nodes internal materials. #29217 (@aardgoose)
- Get fallback approach. #29218 (@sunag)
- Use
getPreferredCanvasFormat()
. #29221 (@sunag) - Fix sync
NodeFrame
state if render call tree are used. #29230 (@sunag) - Improve
clippingContext
cache key. #29232 (@aardgoose) - Support Compressed Texture Array. #29231 (@RenaudRohlinger)
- Remove duplicate const. #29237 (@aardgoose)
- Improve Tree-shaking. #29187, #29250 (@sunag)
- Add signature to shader. #29240 (@WestLangley)
getCache()
&trackTimestamp
check optimization. #29245 (@aardgoose)- Rework to use a single renderBundle per
Group.static
object. #29239 (@aardgoose) - Move viewport and scissor to WebGPU convention - top-left. #29249 (@sunag)
- Fix wrong color space for video textures in WebGL backend. #29254 (@RenaudRohlinger)
- Ensure correct pixel storage parameters in WebGL backend. #29255 (@RenaudRohlinger)
- Cache
textureViews
for reuse inbindGroup
. #29257, #29261 (@aardgoose, @sunag)
- Add
- WebXRManager
- WGSLNodeBuilder
- Fix
pow()
with negative base on Windows. #28971 (@sunag) - Fix WGSL vertex code directive typo. #29023 (@cmhhelgeson)
- Fix
Documentation
- Improve
Audio
page. #29099 (@mrxz) - Improve Chinese translation. #28965, #29107, #29123, #29229 (@Uiwzen, @puxiao, @appache163)
- Improve
Creating a scene
guide. #29118 (@KURELLANAVEEN)
Examples
- Clean up. #29014, #29086, #29157 (@WestLangley, @0b5vr, @Mugen87)
- Add
webgpu_tsl_vfx_flames
example. (@brunosimon) - Update
webgpu_mrt_mask
imports. #28972 (@sunag) - Add
webgpu_shadowmap_opacity
example. #28973 (@sunag) - Add
webgpu_tsl_coffee_smoke
example. #28967 (@brunosimon) - Add
webgpu_tsl_compute_attractors_particles
example. #28983 (@brunosimon) - Add
webgpu_tsl_halftone
example. #28998 (@brunosimon) - Add
webgpu_tsl_raging_sea
example. #29000 (@brunosimon) - Fix flickering/black screen on Apple devices with
webgpu_mesh_batch
. #29002 (@Mugen87) - Add
webgpu_tsl_earth
example. #29003 (@brunosimon) - Add
webgpu_tsl_procedural_terrain
example. #28999 (@brunosimon) - Add
webgpu_postprocessing_masking
example. #29016 (@sunag) - Add
webgpu_tsl_angular_slicing
example. #29007 (@brunosimon) - Add
webgpu_tsl_vfx_tornado
example. #29020 (@brunosimon) - Revert "scroll to currently selected example in the sidebar". #29042 (@Mugen87)
- Improve
webgpu_morphtargets_face
example. #29047 (@Mugen87) - Add performance comparison examples for WebGL and WebGPU renderers. #29077 (@RenaudRohlinger)
- Use
FullScreenQuad
in effect addons. #29126 (@Mugen87) - Add
webgpu_compute_birds
example. #29081 (@cmhhelgeson) - Update tags. #29155 (@cmhhelgeson)
- Remove curvature estimation demo. #29171 (@Mugen87)
- Improve
webgl_texture2darray_layerupdate
example. #29190 (@HunterLarco) - Simplify bloom emissive demo. #29215 (@Mugen87)
- Remove
LogLuvLoader
. #29144 (@mrdoob) - Fixed smoothstep usage failing to compile in Chrome Beta. #29265 (@mrdoob)
Addons
-
AnimationClipCreator
-
ArcballControls
-
BleachBypassShader
-
DragControls
-
FirstPersonControls
-
FlyControls
-
GLTFExporter
-
KTX2Loader
-
LightProbeHelper
- Clean up. #29166 (@WestLangley)
-
OrbitControls
-
OutlinePass
-
PCDLoader
-
PointerLockControls
-
RapierPhysics
-
RoomEnvironment
-
SkyMesh
-
SSAARender
-
StereoEffect
-
TrackballControls
-
USDZExporter
-
WaterMesh
-
Water2Mesh
-
WebGL
Node Editor
Editor
- Add Korean language. #29022 (@shinjeongmin)
- Remove unused method
moveObject()
. #29078 (@s-rigaud)