diff --git a/examples-testing/changes.patch b/examples-testing/changes.patch index 5fd7b4098..b8d257876 100644 --- a/examples-testing/changes.patch +++ b/examples-testing/changes.patch @@ -1,5 +1,5 @@ diff --git a/examples-testing/examples/css2d_label.ts b/examples-testing/examples/css2d_label.ts -index 48a2d1f0..e7260210 100644 +index 48a2d1f..e726021 100644 --- a/examples-testing/examples/css2d_label.ts +++ b/examples-testing/examples/css2d_label.ts @@ -7,7 +7,7 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -39,7 +39,7 @@ index 48a2d1f0..e7260210 100644 scene.add(moon); diff --git a/examples-testing/examples/css3d_molecules.ts b/examples-testing/examples/css3d_molecules.ts -index 53847260..f08bb34a 100644 +index 5384726..f08bb34 100644 --- a/examples-testing/examples/css3d_molecules.ts +++ b/examples-testing/examples/css3d_molecules.ts @@ -5,11 +5,11 @@ import { PDBLoader } from 'three/addons/loaders/PDBLoader.js'; @@ -155,7 +155,7 @@ index 53847260..f08bb34a 100644 const atom = document.createElement('img'); atom.src = colorSprite; diff --git a/examples-testing/examples/css3d_orthographic.ts b/examples-testing/examples/css3d_orthographic.ts -index 4aabbed0..67e41fde 100644 +index 4aabbed..67e41fd 100644 --- a/examples-testing/examples/css3d_orthographic.ts +++ b/examples-testing/examples/css3d_orthographic.ts @@ -2,11 +2,11 @@ import * as THREE from 'three'; @@ -257,7 +257,7 @@ index 4aabbed0..67e41fde 100644 camera.setViewOffset( fullWidth || window.innerWidth, diff --git a/examples-testing/examples/css3d_periodictable.ts b/examples-testing/examples/css3d_periodictable.ts -index e3a33f79..516df464 100644 +index e3a33f7..516df46 100644 --- a/examples-testing/examples/css3d_periodictable.ts +++ b/examples-testing/examples/css3d_periodictable.ts @@ -597,11 +597,16 @@ const table = [ @@ -362,7 +362,7 @@ index e3a33f79..516df464 100644 .onUpdate(render) .start(); diff --git a/examples-testing/examples/css3d_sandbox.ts b/examples-testing/examples/css3d_sandbox.ts -index 1088b84b..02f1fa75 100644 +index 1088b84..02f1fa7 100644 --- a/examples-testing/examples/css3d_sandbox.ts +++ b/examples-testing/examples/css3d_sandbox.ts @@ -2,13 +2,13 @@ import * as THREE from 'three'; @@ -463,7 +463,7 @@ index 1088b84b..02f1fa75 100644 camera.setViewOffset( fullWidth || window.innerWidth, diff --git a/examples-testing/examples/css3d_sprites.ts b/examples-testing/examples/css3d_sprites.ts -index dfe24e79..93f2c07b 100644 +index dfe24e7..93f2c07 100644 --- a/examples-testing/examples/css3d_sprites.ts +++ b/examples-testing/examples/css3d_sprites.ts @@ -4,12 +4,12 @@ import TWEEN from 'three/addons/libs/tween.module.js'; @@ -511,7 +511,7 @@ index dfe24e79..93f2c07b 100644 .onComplete(transition) .start(); diff --git a/examples-testing/examples/css3d_youtube.ts b/examples-testing/examples/css3d_youtube.ts -index 62652f87..3dcc2f12 100644 +index 62652f8..3dcc2f1 100644 --- a/examples-testing/examples/css3d_youtube.ts +++ b/examples-testing/examples/css3d_youtube.ts @@ -3,10 +3,10 @@ import * as THREE from 'three'; @@ -562,7 +562,7 @@ index 62652f87..3dcc2f12 100644 controls.addEventListener('start', function () { diff --git a/examples-testing/examples/games_fps.ts b/examples-testing/examples/games_fps.ts -index d41f9161..306ccdc5 100644 +index d41f916..306ccdc 100644 --- a/examples-testing/examples/games_fps.ts +++ b/examples-testing/examples/games_fps.ts @@ -39,7 +39,7 @@ directionalLight.shadow.radius = 4; @@ -664,7 +664,7 @@ index d41f9161..306ccdc5 100644 } }); diff --git a/examples-testing/examples/misc_animation_groups.ts b/examples-testing/examples/misc_animation_groups.ts -index 33fc4199..e5cc63bc 100644 +index 33fc419..e5cc63b 100644 --- a/examples-testing/examples/misc_animation_groups.ts +++ b/examples-testing/examples/misc_animation_groups.ts @@ -2,8 +2,8 @@ import * as THREE from 'three'; @@ -679,7 +679,7 @@ index 33fc4199..e5cc63bc 100644 init(); diff --git a/examples-testing/examples/misc_animation_keys.ts b/examples-testing/examples/misc_animation_keys.ts -index e2f141f9..a2e43b58 100644 +index e2f141f..a2e43b5 100644 --- a/examples-testing/examples/misc_animation_keys.ts +++ b/examples-testing/examples/misc_animation_keys.ts @@ -2,8 +2,8 @@ import * as THREE from 'three'; @@ -706,7 +706,7 @@ index e2f141f9..a2e43b58 100644 scene.add(mesh); diff --git a/examples-testing/examples/misc_boxselection.ts b/examples-testing/examples/misc_boxselection.ts -index e7079c40..89676cd4 100644 +index e7079c4..89676cd 100644 --- a/examples-testing/examples/misc_boxselection.ts +++ b/examples-testing/examples/misc_boxselection.ts @@ -5,8 +5,8 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -763,7 +763,7 @@ index e7079c40..89676cd4 100644 } }); diff --git a/examples-testing/examples/misc_controls_arcball.ts b/examples-testing/examples/misc_controls_arcball.ts -index fbef3318..be69ca7b 100644 +index fbef331..be69ca7 100644 --- a/examples-testing/examples/misc_controls_arcball.ts +++ b/examples-testing/examples/misc_controls_arcball.ts @@ -12,8 +12,12 @@ const cameraType = { type: 'Perspective' }; @@ -829,7 +829,7 @@ index fbef3318..be69ca7b 100644 camera = makeOrthographicCamera(); camera.position.set(0, 0, orthographicDistance); diff --git a/examples-testing/examples/misc_controls_drag.ts b/examples-testing/examples/misc_controls_drag.ts -index eb7e7ca0..4d327e38 100644 +index eb7e7ca..4d327e3 100644 --- a/examples-testing/examples/misc_controls_drag.ts +++ b/examples-testing/examples/misc_controls_drag.ts @@ -2,12 +2,12 @@ import * as THREE from 'three'; @@ -881,7 +881,7 @@ index eb7e7ca0..4d327e38 100644 } diff --git a/examples-testing/examples/misc_controls_fly.ts b/examples-testing/examples/misc_controls_fly.ts -index 5c37e20a..acb42943 100644 +index 5c37e20..acb4294 100644 --- a/examples-testing/examples/misc_controls_fly.ts +++ b/examples-testing/examples/misc_controls_fly.ts @@ -19,11 +19,15 @@ const MARGIN = 0; @@ -932,7 +932,7 @@ index 5c37e20a..acb42943 100644 meshMoon = new THREE.Mesh(geometry, materialMoon); meshMoon.position.set(radius * 5, 0, 0); diff --git a/examples-testing/examples/misc_controls_map.ts b/examples-testing/examples/misc_controls_map.ts -index 2f52190c..3a96c544 100644 +index 2f52190..3a96c54 100644 --- a/examples-testing/examples/misc_controls_map.ts +++ b/examples-testing/examples/misc_controls_map.ts @@ -4,7 +4,7 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -945,7 +945,7 @@ index 2f52190c..3a96c544 100644 init(); //render(); // remove when using animation loop diff --git a/examples-testing/examples/misc_controls_orbit.ts b/examples-testing/examples/misc_controls_orbit.ts -index 186e216c..0f8b9b11 100644 +index 186e216..0f8b9b1 100644 --- a/examples-testing/examples/misc_controls_orbit.ts +++ b/examples-testing/examples/misc_controls_orbit.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -958,7 +958,7 @@ index 186e216c..0f8b9b11 100644 init(); //render(); // remove when using animation loop diff --git a/examples-testing/examples/misc_controls_pointerlock.ts b/examples-testing/examples/misc_controls_pointerlock.ts -index 66b06167..b9e41acc 100644 +index 66b0616..b9e41ac 100644 --- a/examples-testing/examples/misc_controls_pointerlock.ts +++ b/examples-testing/examples/misc_controls_pointerlock.ts @@ -2,11 +2,11 @@ import * as THREE from 'three'; @@ -1028,7 +1028,7 @@ index 66b06167..b9e41acc 100644 const box = new THREE.Mesh(boxGeometry, boxMaterial); diff --git a/examples-testing/examples/misc_controls_trackball.ts b/examples-testing/examples/misc_controls_trackball.ts -index b6479e9f..2e8f3dad 100644 +index b6479e9..2e8f3da 100644 --- a/examples-testing/examples/misc_controls_trackball.ts +++ b/examples-testing/examples/misc_controls_trackball.ts @@ -5,7 +5,12 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -1055,7 +1055,7 @@ index b6479e9f..2e8f3dad 100644 controls.rotateSpeed = 1.0; diff --git a/examples-testing/examples/misc_controls_transform.ts b/examples-testing/examples/misc_controls_transform.ts -index 9d14bf7e..11cc8b14 100644 +index 9d14bf7..11cc8b1 100644 --- a/examples-testing/examples/misc_controls_transform.ts +++ b/examples-testing/examples/misc_controls_transform.ts @@ -3,8 +3,8 @@ import * as THREE from 'three'; @@ -1081,7 +1081,7 @@ index 9d14bf7e..11cc8b14 100644 orbit.object = currentCamera; diff --git a/examples-testing/examples/misc_exporter_draco.ts b/examples-testing/examples/misc_exporter_draco.ts -index 40a62fb1..cb9d3f59 100644 +index 40a62fb..cb9d3f5 100644 --- a/examples-testing/examples/misc_exporter_draco.ts +++ b/examples-testing/examples/misc_exporter_draco.ts @@ -4,7 +4,11 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -1113,7 +1113,7 @@ index 40a62fb1..cb9d3f59 100644 save(new Blob([buffer], { type: 'application/octet-stream' }), filename); } diff --git a/examples-testing/examples/misc_exporter_exr.ts b/examples-testing/examples/misc_exporter_exr.ts -index c239a65f..1b774b55 100644 +index c239a65..1b774b5 100644 --- a/examples-testing/examples/misc_exporter_exr.ts +++ b/examples-testing/examples/misc_exporter_exr.ts @@ -5,7 +5,14 @@ import { EXRExporter, ZIP_COMPRESSION, ZIPS_COMPRESSION, NO_COMPRESSION } from ' @@ -1142,7 +1142,7 @@ index c239a65f..1b774b55 100644 const link = document.createElement('a'); diff --git a/examples-testing/examples/misc_exporter_gltf.ts b/examples-testing/examples/misc_exporter_gltf.ts -index e4172b85..3ceb9601 100644 +index e4172b8..3ceb960 100644 --- a/examples-testing/examples/misc_exporter_gltf.ts +++ b/examples-testing/examples/misc_exporter_gltf.ts @@ -6,7 +6,7 @@ import { KTX2Loader } from 'three/addons/loaders/KTX2Loader.js'; @@ -1206,7 +1206,7 @@ index e4172b85..3ceb9601 100644 object.position.set(400, 0, 200); diff --git a/examples-testing/examples/misc_exporter_obj.ts b/examples-testing/examples/misc_exporter_obj.ts -index 025034da..73638fff 100644 +index 025034d..73638ff 100644 --- a/examples-testing/examples/misc_exporter_obj.ts +++ b/examples-testing/examples/misc_exporter_obj.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -1251,7 +1251,7 @@ index 025034da..73638fff 100644 } diff --git a/examples-testing/examples/misc_exporter_ply.ts b/examples-testing/examples/misc_exporter_ply.ts -index b7e32468..c1682103 100644 +index b7e3246..c168210 100644 --- a/examples-testing/examples/misc_exporter_ply.ts +++ b/examples-testing/examples/misc_exporter_ply.ts @@ -4,7 +4,11 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -1288,7 +1288,7 @@ index b7e32468..c1682103 100644 save(new Blob([buffer], { type: 'application/octet-stream' }), filename); } diff --git a/examples-testing/examples/misc_exporter_stl.ts b/examples-testing/examples/misc_exporter_stl.ts -index ff6d6e2b..105aeb07 100644 +index ff6d6e2..105aeb0 100644 --- a/examples-testing/examples/misc_exporter_stl.ts +++ b/examples-testing/examples/misc_exporter_stl.ts @@ -4,7 +4,11 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -1325,7 +1325,7 @@ index ff6d6e2b..105aeb07 100644 save(new Blob([buffer], { type: 'application/octet-stream' }), filename); } diff --git a/examples-testing/examples/misc_exporter_usdz.ts b/examples-testing/examples/misc_exporter_usdz.ts -index d2c4fdfa..a751a6eb 100644 +index d2c4fdf..a751a6e 100644 --- a/examples-testing/examples/misc_exporter_usdz.ts +++ b/examples-testing/examples/misc_exporter_usdz.ts @@ -7,7 +7,7 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -1365,7 +1365,7 @@ index d2c4fdfa..a751a6eb 100644 } diff --git a/examples-testing/examples/misc_lookat.ts b/examples-testing/examples/misc_lookat.ts -index 280b6e2d..be88f897 100644 +index 280b6e2..be88f89 100644 --- a/examples-testing/examples/misc_lookat.ts +++ b/examples-testing/examples/misc_lookat.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -1390,7 +1390,7 @@ index 280b6e2d..be88f897 100644 mouseY = (event.clientY - windowHalfY) * 10; } diff --git a/examples-testing/examples/misc_uv_tests.ts b/examples-testing/examples/misc_uv_tests.ts -index 4f782d45..0759cfca 100644 +index 4f782d4..0759cfc 100644 --- a/examples-testing/examples/misc_uv_tests.ts +++ b/examples-testing/examples/misc_uv_tests.ts @@ -7,7 +7,7 @@ import { UVsDebug } from 'three/addons/utils/UVsDebug.js'; @@ -1403,7 +1403,7 @@ index 4f782d45..0759cfca 100644 d.innerHTML = '

' + name + '

'; diff --git a/examples-testing/examples/physics_ammo_instancing.ts b/examples-testing/examples/physics_ammo_instancing.ts -index 265c254c..3a6ae139 100644 +index 265c254..3a6ae13 100644 --- a/examples-testing/examples/physics_ammo_instancing.ts +++ b/examples-testing/examples/physics_ammo_instancing.ts @@ -1,12 +1,12 @@ @@ -1424,7 +1424,7 @@ index 265c254c..3a6ae139 100644 init(); diff --git a/examples-testing/examples/physics_jolt_instancing.ts b/examples-testing/examples/physics_jolt_instancing.ts -index 022263c0..3df667b6 100644 +index 022263c..3df667b 100644 --- a/examples-testing/examples/physics_jolt_instancing.ts +++ b/examples-testing/examples/physics_jolt_instancing.ts @@ -1,12 +1,12 @@ @@ -1445,7 +1445,7 @@ index 022263c0..3df667b6 100644 init(); diff --git a/examples-testing/examples/physics_rapier_instancing.ts b/examples-testing/examples/physics_rapier_instancing.ts -index f23cf766..859a1d59 100644 +index f23cf76..859a1d5 100644 --- a/examples-testing/examples/physics_rapier_instancing.ts +++ b/examples-testing/examples/physics_rapier_instancing.ts @@ -1,12 +1,12 @@ @@ -1466,7 +1466,7 @@ index f23cf766..859a1d59 100644 init(); diff --git a/examples-testing/examples/svg_lines.ts b/examples-testing/examples/svg_lines.ts -index 99b74c40..65aaf28d 100644 +index 99b74c4..65aaf28 100644 --- a/examples-testing/examples/svg_lines.ts +++ b/examples-testing/examples/svg_lines.ts @@ -4,7 +4,7 @@ import { SVGRenderer } from 'three/addons/renderers/SVGRenderer.js'; @@ -1479,7 +1479,7 @@ index 99b74c40..65aaf28d 100644 init(); animate(); diff --git a/examples-testing/examples/svg_sandbox.ts b/examples-testing/examples/svg_sandbox.ts -index e6be8386..faea9a7a 100644 +index e6be838..faea9a7 100644 --- a/examples-testing/examples/svg_sandbox.ts +++ b/examples-testing/examples/svg_sandbox.ts @@ -6,9 +6,9 @@ import { SVGRenderer, SVGObject } from 'three/addons/renderers/SVGRenderer.js'; @@ -1564,7 +1564,7 @@ index e6be8386..faea9a7a 100644 node.appendChild(doc.documentElement); diff --git a/examples-testing/examples/webaudio_orientation.ts b/examples-testing/examples/webaudio_orientation.ts -index 7baaa88a..e133c2cd 100644 +index 7baaa88..e133c2c 100644 --- a/examples-testing/examples/webaudio_orientation.ts +++ b/examples-testing/examples/webaudio_orientation.ts @@ -4,16 +4,16 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -1626,7 +1626,7 @@ index 7baaa88a..e133c2cd 100644 const wall = new THREE.Mesh(wallGeometry, wallMaterial); wall.position.set(0, 0.5, -0.5); diff --git a/examples-testing/examples/webaudio_sandbox.ts b/examples-testing/examples/webaudio_sandbox.ts -index d67d0d55..21c7a0bf 100644 +index d67d0d5..21c7a0b 100644 --- a/examples-testing/examples/webaudio_sandbox.ts +++ b/examples-testing/examples/webaudio_sandbox.ts @@ -4,19 +4,23 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -1730,7 +1730,7 @@ index d67d0d55..21c7a0bf 100644 const gui = new GUI(); const soundControls = new SoundControls(); diff --git a/examples-testing/examples/webaudio_timing.ts b/examples-testing/examples/webaudio_timing.ts -index 9e17bcbc..475113b9 100644 +index 9e17bcb..475113b 100644 --- a/examples-testing/examples/webaudio_timing.ts +++ b/examples-testing/examples/webaudio_timing.ts @@ -2,22 +2,22 @@ import * as THREE from 'three'; @@ -1771,7 +1771,7 @@ index 9e17bcbc..475113b9 100644 ball.userData.down = false; } diff --git a/examples-testing/examples/webaudio_visualizer.ts b/examples-testing/examples/webaudio_visualizer.ts -index a3f58cb3..0bad866f 100644 +index a3f58cb..0bad866 100644 --- a/examples-testing/examples/webaudio_visualizer.ts +++ b/examples-testing/examples/webaudio_visualizer.ts @@ -1,8 +1,13 @@ @@ -1817,7 +1817,7 @@ index a3f58cb3..0bad866f 100644 const geometry = new THREE.PlaneGeometry(1, 1); diff --git a/examples-testing/examples/webgl2_buffergeometry_attributes_integer.ts b/examples-testing/examples/webgl2_buffergeometry_attributes_integer.ts -index 96926c2c..76e6c251 100644 +index 96926c2..76e6c25 100644 --- a/examples-testing/examples/webgl2_buffergeometry_attributes_integer.ts +++ b/examples-testing/examples/webgl2_buffergeometry_attributes_integer.ts @@ -1,6 +1,6 @@ @@ -1849,7 +1849,7 @@ index 96926c2c..76e6c251 100644 glslVersion: THREE.GLSL3, }); diff --git a/examples-testing/examples/webgl2_buffergeometry_attributes_none.ts b/examples-testing/examples/webgl2_buffergeometry_attributes_none.ts -index a1424e87..f7fcf29f 100644 +index a1424e8..f7fcf29 100644 --- a/examples-testing/examples/webgl2_buffergeometry_attributes_none.ts +++ b/examples-testing/examples/webgl2_buffergeometry_attributes_none.ts @@ -1,6 +1,6 @@ @@ -1881,7 +1881,7 @@ index a1424e87..f7fcf29f 100644 mesh.rotation.y = (time / 1000.0) * 0.5; diff --git a/examples-testing/examples/webgl2_clipculldistance.ts b/examples-testing/examples/webgl2_clipculldistance.ts -index a5fb54d4..0165880a 100644 +index a5fb54d..0165880 100644 --- a/examples-testing/examples/webgl2_clipculldistance.ts +++ b/examples-testing/examples/webgl2_clipculldistance.ts @@ -2,9 +2,14 @@ import * as THREE from 'three'; @@ -1922,7 +1922,7 @@ index a5fb54d4..0165880a 100644 transparent: true, vertexColors: true, diff --git a/examples-testing/examples/webgl2_materials_texture3d.ts b/examples-testing/examples/webgl2_materials_texture3d.ts -index 977dbadb..fb1460ca 100644 +index 977dbad..fb1460c 100644 --- a/examples-testing/examples/webgl2_materials_texture3d.ts +++ b/examples-testing/examples/webgl2_materials_texture3d.ts @@ -5,7 +5,15 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -1952,7 +1952,7 @@ index 977dbadb..fb1460ca 100644 material.uniforms['u_renderthreshold'].value = volconfig.isothreshold; // For ISO renderstyle material.uniforms['u_cmdata'].value = cmtextures[volconfig.colormap]; diff --git a/examples-testing/examples/webgl2_materials_texture3d_partialupdate.ts b/examples-testing/examples/webgl2_materials_texture3d_partialupdate.ts -index 1ad6d264..10b32582 100644 +index 1ad6d26..10b3258 100644 --- a/examples-testing/examples/webgl2_materials_texture3d_partialupdate.ts +++ b/examples-testing/examples/webgl2_materials_texture3d_partialupdate.ts @@ -6,14 +6,14 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -2005,7 +2005,7 @@ index 1ad6d264..10b32582 100644 renderer.render(scene, camera); } diff --git a/examples-testing/examples/webgl2_multiple_rendertargets.ts b/examples-testing/examples/webgl2_multiple_rendertargets.ts -index 86708082..f63b7de6 100644 +index 8670808..f63b7de 100644 --- a/examples-testing/examples/webgl2_multiple_rendertargets.ts +++ b/examples-testing/examples/webgl2_multiple_rendertargets.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -2055,7 +2055,7 @@ index 86708082..f63b7de6 100644 }); diff --git a/examples-testing/examples/webgl2_multisampled_renderbuffers.ts b/examples-testing/examples/webgl2_multisampled_renderbuffers.ts -index df84fb14..fc3da7a8 100644 +index df84fb1..fc3da7a 100644 --- a/examples-testing/examples/webgl2_multisampled_renderbuffers.ts +++ b/examples-testing/examples/webgl2_multisampled_renderbuffers.ts @@ -5,9 +5,9 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -2080,7 +2080,7 @@ index df84fb14..fc3da7a8 100644 camera = new THREE.PerspectiveCamera(45, container.offsetWidth / container.offsetHeight, 10, 2000); camera.position.z = 500; diff --git a/examples-testing/examples/webgl2_texture2darray_compressed.ts b/examples-testing/examples/webgl2_texture2darray_compressed.ts -index f263be70..bc8f8622 100644 +index f263be7..bc8f862 100644 --- a/examples-testing/examples/webgl2_texture2darray_compressed.ts +++ b/examples-testing/examples/webgl2_texture2darray_compressed.ts @@ -3,7 +3,12 @@ import * as THREE from 'three'; @@ -2109,7 +2109,7 @@ index f263be70..bc8f8622 100644 }); diff --git a/examples-testing/examples/webgl2_ubo.ts b/examples-testing/examples/webgl2_ubo.ts -index 01064f11..814edd87 100644 +index 01064f1..814edd8 100644 --- a/examples-testing/examples/webgl2_ubo.ts +++ b/examples-testing/examples/webgl2_ubo.ts @@ -1,11 +1,11 @@ @@ -2158,7 +2158,7 @@ index 01064f11..814edd87 100644 child.rotation.y += delta * 0.3; } diff --git a/examples-testing/examples/webgl2_ubo_arrays.ts b/examples-testing/examples/webgl2_ubo_arrays.ts -index d846e144..85bcff4c 100644 +index d846e14..85bcff4 100644 --- a/examples-testing/examples/webgl2_ubo_arrays.ts +++ b/examples-testing/examples/webgl2_ubo_arrays.ts @@ -4,11 +4,15 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -2210,7 +2210,7 @@ index d846e144..85bcff4c 100644 // Parameters for circular movement const radius = 5; // Smaller radius for individual circular movements diff --git a/examples-testing/examples/webgl2_volume_cloud.ts b/examples-testing/examples/webgl2_volume_cloud.ts -index 77dd8de4..6414f1b4 100644 +index 77dd8de..6414f1b 100644 --- a/examples-testing/examples/webgl2_volume_cloud.ts +++ b/examples-testing/examples/webgl2_volume_cloud.ts @@ -4,8 +4,8 @@ import { ImprovedNoise } from 'three/addons/math/ImprovedNoise.js'; @@ -2247,7 +2247,7 @@ index 77dd8de4..6414f1b4 100644 renderer.render(scene, camera); } diff --git a/examples-testing/examples/webgl2_volume_instancing.ts b/examples-testing/examples/webgl2_volume_instancing.ts -index bf90eeea..135869e2 100644 +index bf90eee..135869e 100644 --- a/examples-testing/examples/webgl2_volume_instancing.ts +++ b/examples-testing/examples/webgl2_volume_instancing.ts @@ -2,7 +2,11 @@ import * as THREE from 'three'; @@ -2273,7 +2273,7 @@ index bf90eeea..135869e2 100644 const transform = new THREE.Object3D(); diff --git a/examples-testing/examples/webgl2_volume_perlin.ts b/examples-testing/examples/webgl2_volume_perlin.ts -index a98f9a68..5689cf91 100644 +index a98f9a6..5689cf9 100644 --- a/examples-testing/examples/webgl2_volume_perlin.ts +++ b/examples-testing/examples/webgl2_volume_perlin.ts @@ -4,8 +4,8 @@ import { ImprovedNoise } from 'three/addons/math/ImprovedNoise.js'; @@ -2297,7 +2297,7 @@ index a98f9a68..5689cf91 100644 renderer.render(scene, camera); } diff --git a/examples-testing/examples/webgl_animation_keyframes.ts b/examples-testing/examples/webgl_animation_keyframes.ts -index c3acdc43..fef2f2e8 100644 +index c3acdc4..fef2f2e 100644 --- a/examples-testing/examples/webgl_animation_keyframes.ts +++ b/examples-testing/examples/webgl_animation_keyframes.ts @@ -8,10 +8,10 @@ import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js'; @@ -2314,7 +2314,7 @@ index c3acdc43..fef2f2e8 100644 const stats = new Stats(); container.appendChild(stats.dom); diff --git a/examples-testing/examples/webgl_animation_multiple.ts b/examples-testing/examples/webgl_animation_multiple.ts -index 152c6506..ce388749 100644 +index 152c650..ce38874 100644 --- a/examples-testing/examples/webgl_animation_multiple.ts +++ b/examples-testing/examples/webgl_animation_multiple.ts @@ -4,11 +4,11 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -2364,7 +2364,7 @@ index 152c6506..ce388749 100644 const model1 = shareSkinnedMesh.clone(); diff --git a/examples-testing/examples/webgl_animation_skinning_morph.ts b/examples-testing/examples/webgl_animation_skinning_morph.ts -index f05369aa..5e9ce7d0 100644 +index f05369a..5e9ce7d 100644 --- a/examples-testing/examples/webgl_animation_skinning_morph.ts +++ b/examples-testing/examples/webgl_animation_skinning_morph.ts @@ -5,10 +5,29 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -2466,7 +2466,7 @@ index f05369aa..5e9ce7d0 100644 activeAction = actions[name]; diff --git a/examples-testing/examples/webgl_buffergeometry.ts b/examples-testing/examples/webgl_buffergeometry.ts -index 28b2c96a..6a802ab6 100644 +index 28b2c96..6a802ab 100644 --- a/examples-testing/examples/webgl_buffergeometry.ts +++ b/examples-testing/examples/webgl_buffergeometry.ts @@ -2,17 +2,17 @@ import * as THREE from 'three'; @@ -2503,7 +2503,7 @@ index 28b2c96a..6a802ab6 100644 geometry.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3).onUpload(disposeArray)); diff --git a/examples-testing/examples/webgl_buffergeometry_custom_attributes_particles.ts b/examples-testing/examples/webgl_buffergeometry_custom_attributes_particles.ts -index 0dffa65c..96dd8910 100644 +index 0dffa65..96dd891 100644 --- a/examples-testing/examples/webgl_buffergeometry_custom_attributes_particles.ts +++ b/examples-testing/examples/webgl_buffergeometry_custom_attributes_particles.ts @@ -2,9 +2,11 @@ import * as THREE from 'three'; @@ -2541,7 +2541,7 @@ index 0dffa65c..96dd8910 100644 stats = new Stats(); diff --git a/examples-testing/examples/webgl_buffergeometry_drawrange.ts b/examples-testing/examples/webgl_buffergeometry_drawrange.ts -index 142ff43b..903b59ee 100644 +index 142ff43..903b59e 100644 --- a/examples-testing/examples/webgl_buffergeometry_drawrange.ts +++ b/examples-testing/examples/webgl_buffergeometry_drawrange.ts @@ -5,15 +5,15 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -2579,7 +2579,7 @@ index 142ff43b..903b59ee 100644 camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 4000); camera.position.z = 1750; diff --git a/examples-testing/examples/webgl_buffergeometry_glbufferattribute.ts b/examples-testing/examples/webgl_buffergeometry_glbufferattribute.ts -index aea462cf..f66207e2 100644 +index aea462c..f66207e 100644 --- a/examples-testing/examples/webgl_buffergeometry_glbufferattribute.ts +++ b/examples-testing/examples/webgl_buffergeometry_glbufferattribute.ts @@ -2,11 +2,11 @@ import * as THREE from 'three'; @@ -2635,7 +2635,7 @@ index aea462cf..f66207e2 100644 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW); diff --git a/examples-testing/examples/webgl_buffergeometry_indexed.ts b/examples-testing/examples/webgl_buffergeometry_indexed.ts -index a2f9f379..4ad49d3c 100644 +index a2f9f37..4ad49d3 100644 --- a/examples-testing/examples/webgl_buffergeometry_indexed.ts +++ b/examples-testing/examples/webgl_buffergeometry_indexed.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -2651,7 +2651,7 @@ index a2f9f379..4ad49d3c 100644 init(); diff --git a/examples-testing/examples/webgl_buffergeometry_instancing.ts b/examples-testing/examples/webgl_buffergeometry_instancing.ts -index a5b90ae6..df382735 100644 +index a5b90ae..df38273 100644 --- a/examples-testing/examples/webgl_buffergeometry_instancing.ts +++ b/examples-testing/examples/webgl_buffergeometry_instancing.ts @@ -3,14 +3,14 @@ import * as THREE from 'three'; @@ -2693,7 +2693,7 @@ index a5b90ae6..df382735 100644 object.rotation.y = time * 0.0005; object.material.uniforms['time'].value = time * 0.005; diff --git a/examples-testing/examples/webgl_buffergeometry_instancing_billboards.ts b/examples-testing/examples/webgl_buffergeometry_instancing_billboards.ts -index 2158dff3..2c97fbd9 100644 +index 2158dff..2c97fbd 100644 --- a/examples-testing/examples/webgl_buffergeometry_instancing_billboards.ts +++ b/examples-testing/examples/webgl_buffergeometry_instancing_billboards.ts @@ -2,10 +2,10 @@ import * as THREE from 'three'; @@ -2722,7 +2722,7 @@ index 2158dff3..2c97fbd9 100644 depthWrite: true, }); diff --git a/examples-testing/examples/webgl_buffergeometry_instancing_interleaved.ts b/examples-testing/examples/webgl_buffergeometry_instancing_interleaved.ts -index bef2c264..c0887a8d 100644 +index bef2c26..c0887a8 100644 --- a/examples-testing/examples/webgl_buffergeometry_instancing_interleaved.ts +++ b/examples-testing/examples/webgl_buffergeometry_instancing_interleaved.ts @@ -2,8 +2,8 @@ import * as THREE from 'three'; @@ -2746,7 +2746,7 @@ index bef2c264..c0887a8d 100644 camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 1000); diff --git a/examples-testing/examples/webgl_buffergeometry_lines.ts b/examples-testing/examples/webgl_buffergeometry_lines.ts -index 1aaa5ca4..9d608594 100644 +index 1aaa5ca..9d60859 100644 --- a/examples-testing/examples/webgl_buffergeometry_lines.ts +++ b/examples-testing/examples/webgl_buffergeometry_lines.ts @@ -2,11 +2,11 @@ import * as THREE from 'three'; @@ -2791,7 +2791,7 @@ index 1aaa5ca4..9d608594 100644 for (let i = 0; i < segments; i++) { diff --git a/examples-testing/examples/webgl_buffergeometry_lines_indexed.ts b/examples-testing/examples/webgl_buffergeometry_lines_indexed.ts -index 58296087..8af0d6e9 100644 +index 5829608..8af0d6e 100644 --- a/examples-testing/examples/webgl_buffergeometry_lines_indexed.ts +++ b/examples-testing/examples/webgl_buffergeometry_lines_indexed.ts @@ -2,16 +2,16 @@ import * as THREE from 'three'; @@ -2856,7 +2856,7 @@ index 58296087..8af0d6e9 100644 add_vertex(points[0]); diff --git a/examples-testing/examples/webgl_buffergeometry_points.ts b/examples-testing/examples/webgl_buffergeometry_points.ts -index 4547d9d0..357c3ddd 100644 +index 4547d9d..357c3dd 100644 --- a/examples-testing/examples/webgl_buffergeometry_points.ts +++ b/examples-testing/examples/webgl_buffergeometry_points.ts @@ -2,17 +2,17 @@ import * as THREE from 'three'; @@ -2882,7 +2882,7 @@ index 4547d9d0..357c3ddd 100644 // diff --git a/examples-testing/examples/webgl_buffergeometry_points_interleaved.ts b/examples-testing/examples/webgl_buffergeometry_points_interleaved.ts -index 93eed992..60e05bc0 100644 +index 93eed99..60e05bc 100644 --- a/examples-testing/examples/webgl_buffergeometry_points_interleaved.ts +++ b/examples-testing/examples/webgl_buffergeometry_points_interleaved.ts @@ -2,16 +2,16 @@ import * as THREE from 'three'; @@ -2907,7 +2907,7 @@ index 93eed992..60e05bc0 100644 camera = new THREE.PerspectiveCamera(27, window.innerWidth / window.innerHeight, 5, 3500); camera.position.z = 2750; diff --git a/examples-testing/examples/webgl_buffergeometry_rawshader.ts b/examples-testing/examples/webgl_buffergeometry_rawshader.ts -index 5bc113dc..225e220a 100644 +index 5bc113d..225e220 100644 --- a/examples-testing/examples/webgl_buffergeometry_rawshader.ts +++ b/examples-testing/examples/webgl_buffergeometry_rawshader.ts @@ -2,14 +2,14 @@ import * as THREE from 'three'; @@ -2949,7 +2949,7 @@ index 5bc113dc..225e220a 100644 object.rotation.y = time * 0.0005; object.material.uniforms.time.value = time * 0.005; diff --git a/examples-testing/examples/webgl_buffergeometry_selective_draw.ts b/examples-testing/examples/webgl_buffergeometry_selective_draw.ts -index d07176c5..ce51386e 100644 +index d07176c..ce51386 100644 --- a/examples-testing/examples/webgl_buffergeometry_selective_draw.ts +++ b/examples-testing/examples/webgl_buffergeometry_selective_draw.ts @@ -2,8 +2,8 @@ import * as THREE from 'three'; @@ -3006,7 +3006,7 @@ index d07176c5..ce51386e 100644 function hideLines() { diff --git a/examples-testing/examples/webgl_buffergeometry_uint.ts b/examples-testing/examples/webgl_buffergeometry_uint.ts -index 0b8df6ec..dbb23e05 100644 +index 0b8df6e..dbb23e0 100644 --- a/examples-testing/examples/webgl_buffergeometry_uint.ts +++ b/examples-testing/examples/webgl_buffergeometry_uint.ts @@ -2,16 +2,16 @@ import * as THREE from 'three'; @@ -3031,7 +3031,7 @@ index 0b8df6ec..dbb23e05 100644 // diff --git a/examples-testing/examples/webgl_camera.ts b/examples-testing/examples/webgl_camera.ts -index f3d66360..4235f508 100644 +index f3d6636..4235f50 100644 --- a/examples-testing/examples/webgl_camera.ts +++ b/examples-testing/examples/webgl_camera.ts @@ -6,11 +6,11 @@ let SCREEN_WIDTH = window.innerWidth; @@ -3061,7 +3061,7 @@ index f3d66360..4235f508 100644 case 79 /*O*/: activeCamera = cameraOrtho; diff --git a/examples-testing/examples/webgl_camera_array.ts b/examples-testing/examples/webgl_camera_array.ts -index 8b10e27c..11295c5f 100644 +index 8b10e27..11295c5 100644 --- a/examples-testing/examples/webgl_camera_array.ts +++ b/examples-testing/examples/webgl_camera_array.ts @@ -1,7 +1,7 @@ @@ -3084,7 +3084,7 @@ index 8b10e27c..11295c5f 100644 subcamera.aspect = ASPECT_RATIO; subcamera.updateProjectionMatrix(); diff --git a/examples-testing/examples/webgl_camera_logarithmicdepthbuffer.ts b/examples-testing/examples/webgl_camera_logarithmicdepthbuffer.ts -index f1d44000..7f149db1 100644 +index f1d4400..7f149db 100644 --- a/examples-testing/examples/webgl_camera_logarithmicdepthbuffer.ts +++ b/examples-testing/examples/webgl_camera_logarithmicdepthbuffer.ts @@ -1,6 +1,6 @@ @@ -3261,7 +3261,7 @@ index f1d44000..7f149db1 100644 if (amount === 0) return; const dir = amount / Math.abs(amount); diff --git a/examples-testing/examples/webgl_clipping.ts b/examples-testing/examples/webgl_clipping.ts -index cde10c7d..6ab3ba65 100644 +index cde10c7..6ab3ba6 100644 --- a/examples-testing/examples/webgl_clipping.ts +++ b/examples-testing/examples/webgl_clipping.ts @@ -5,7 +5,12 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -3299,7 +3299,7 @@ index cde10c7d..6ab3ba65 100644 get Plane() { diff --git a/examples-testing/examples/webgl_clipping_advanced.ts b/examples-testing/examples/webgl_clipping_advanced.ts -index 614d710d..02b9ad88 100644 +index 614d710..02b9ad8 100644 --- a/examples-testing/examples/webgl_clipping_advanced.ts +++ b/examples-testing/examples/webgl_clipping_advanced.ts @@ -5,7 +5,7 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -3421,7 +3421,7 @@ index 614d710d..02b9ad88 100644 const planeMeshes = volumeVisualization.children; diff --git a/examples-testing/examples/webgl_clipping_intersection.ts b/examples-testing/examples/webgl_clipping_intersection.ts -index 5f45e45d..cb3cbdf2 100644 +index 5f45e45..cb3cbdf 100644 --- a/examples-testing/examples/webgl_clipping_intersection.ts +++ b/examples-testing/examples/webgl_clipping_intersection.ts @@ -4,7 +4,7 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -3454,7 +3454,7 @@ index 5f45e45d..cb3cbdf2 100644 render(); diff --git a/examples-testing/examples/webgl_clipping_stencil.ts b/examples-testing/examples/webgl_clipping_stencil.ts -index ecb6b42b..6efdbf5a 100644 +index ecb6b42..6efdbf5 100644 --- a/examples-testing/examples/webgl_clipping_stencil.ts +++ b/examples-testing/examples/webgl_clipping_stencil.ts @@ -3,9 +3,13 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -3484,7 +3484,7 @@ index ecb6b42b..6efdbf5a 100644 const baseMat = new THREE.MeshBasicMaterial(); baseMat.depthWrite = false; diff --git a/examples-testing/examples/webgl_custom_attributes.ts b/examples-testing/examples/webgl_custom_attributes.ts -index 0dc89774..8725fd46 100644 +index 0dc8977..8725fd4 100644 --- a/examples-testing/examples/webgl_custom_attributes.ts +++ b/examples-testing/examples/webgl_custom_attributes.ts @@ -2,11 +2,16 @@ import * as THREE from 'three'; @@ -3528,7 +3528,7 @@ index 0dc89774..8725fd46 100644 stats = new Stats(); diff --git a/examples-testing/examples/webgl_custom_attributes_lines.ts b/examples-testing/examples/webgl_custom_attributes_lines.ts -index 3e2454e9..d89a77d5 100644 +index 3e2454e..d89a77d 100644 --- a/examples-testing/examples/webgl_custom_attributes_lines.ts +++ b/examples-testing/examples/webgl_custom_attributes_lines.ts @@ -1,20 +1,25 @@ @@ -3582,7 +3582,7 @@ index 3e2454e9..d89a77d5 100644 stats = new Stats(); diff --git a/examples-testing/examples/webgl_custom_attributes_points.ts b/examples-testing/examples/webgl_custom_attributes_points.ts -index ae112980..9035134c 100644 +index ae11298..9035134 100644 --- a/examples-testing/examples/webgl_custom_attributes_points.ts +++ b/examples-testing/examples/webgl_custom_attributes_points.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -3618,7 +3618,7 @@ index ae112980..9035134c 100644 stats = new Stats(); diff --git a/examples-testing/examples/webgl_custom_attributes_points2.ts b/examples-testing/examples/webgl_custom_attributes_points2.ts -index edd158fa..6f58c70a 100644 +index edd158f..6f58c70 100644 --- a/examples-testing/examples/webgl_custom_attributes_points2.ts +++ b/examples-testing/examples/webgl_custom_attributes_points2.ts @@ -4,8 +4,8 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -3693,7 +3693,7 @@ index edd158fa..6f58c70a 100644 function animate() { diff --git a/examples-testing/examples/webgl_custom_attributes_points3.ts b/examples-testing/examples/webgl_custom_attributes_points3.ts -index 1b46a805..e5798e30 100644 +index 1b46a80..e5798e3 100644 --- a/examples-testing/examples/webgl_custom_attributes_points3.ts +++ b/examples-testing/examples/webgl_custom_attributes_points3.ts @@ -4,11 +4,11 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -3770,7 +3770,7 @@ index 1b46a805..e5798e30 100644 stats = new Stats(); diff --git a/examples-testing/examples/webgl_decals.ts b/examples-testing/examples/webgl_decals.ts -index 23cdb4da..bbaddccc 100644 +index 23cdb4d..bbaddcc 100644 --- a/examples-testing/examples/webgl_decals.ts +++ b/examples-testing/examples/webgl_decals.ts @@ -7,12 +7,12 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -3852,7 +3852,7 @@ index 23cdb4da..bbaddccc 100644 specular: 0x111111, map: map, diff --git a/examples-testing/examples/webgl_effects_anaglyph.ts b/examples-testing/examples/webgl_effects_anaglyph.ts -index 8415973d..d6a7d4c5 100644 +index 8415973..d6a7d4c 100644 --- a/examples-testing/examples/webgl_effects_anaglyph.ts +++ b/examples-testing/examples/webgl_effects_anaglyph.ts @@ -2,9 +2,13 @@ import * as THREE from 'three'; @@ -3881,7 +3881,7 @@ index 8415973d..d6a7d4c5 100644 mouseY = (event.clientY - windowHalfY) / 100; } diff --git a/examples-testing/examples/webgl_effects_ascii.ts b/examples-testing/examples/webgl_effects_ascii.ts -index a412bb79..751102d7 100644 +index a412bb7..751102d 100644 --- a/examples-testing/examples/webgl_effects_ascii.ts +++ b/examples-testing/examples/webgl_effects_ascii.ts @@ -3,9 +3,13 @@ import * as THREE from 'three'; @@ -3901,7 +3901,7 @@ index a412bb79..751102d7 100644 const start = Date.now(); diff --git a/examples-testing/examples/webgl_effects_parallaxbarrier.ts b/examples-testing/examples/webgl_effects_parallaxbarrier.ts -index 90c86797..e03cb5d7 100644 +index 90c8679..e03cb5d 100644 --- a/examples-testing/examples/webgl_effects_parallaxbarrier.ts +++ b/examples-testing/examples/webgl_effects_parallaxbarrier.ts @@ -2,9 +2,13 @@ import * as THREE from 'three'; @@ -3930,7 +3930,7 @@ index 90c86797..e03cb5d7 100644 mouseY = (event.clientY - windowHalfY) / 100; } diff --git a/examples-testing/examples/webgl_effects_peppersghost.ts b/examples-testing/examples/webgl_effects_peppersghost.ts -index 41dfb4b6..54f8aaa5 100644 +index 41dfb4b..54f8aaa 100644 --- a/examples-testing/examples/webgl_effects_peppersghost.ts +++ b/examples-testing/examples/webgl_effects_peppersghost.ts @@ -2,10 +2,10 @@ import * as THREE from 'three'; @@ -3948,7 +3948,7 @@ index 41dfb4b6..54f8aaa5 100644 init(); diff --git a/examples-testing/examples/webgl_effects_stereo.ts b/examples-testing/examples/webgl_effects_stereo.ts -index dd2f61f9..6dab1b6e 100644 +index dd2f61f..6dab1b6 100644 --- a/examples-testing/examples/webgl_effects_stereo.ts +++ b/examples-testing/examples/webgl_effects_stereo.ts @@ -2,9 +2,13 @@ import * as THREE from 'three'; @@ -3977,7 +3977,7 @@ index dd2f61f9..6dab1b6e 100644 mouseY = (event.clientY - windowHalfY) * 10; } diff --git a/examples-testing/examples/webgl_framebuffer_texture.ts b/examples-testing/examples/webgl_framebuffer_texture.ts -index df4acc9d..636f9db9 100644 +index df4acc9..636f9db 100644 --- a/examples-testing/examples/webgl_framebuffer_texture.ts +++ b/examples-testing/examples/webgl_framebuffer_texture.ts @@ -3,10 +3,10 @@ import * as THREE from 'three'; @@ -4013,7 +4013,7 @@ index df4acc9d..636f9db9 100644 for (let i = 0; i < l; i++) { diff --git a/examples-testing/examples/webgl_furnace_test.ts b/examples-testing/examples/webgl_furnace_test.ts -index a8195417..46230b4a 100644 +index a819541..46230b4 100644 --- a/examples-testing/examples/webgl_furnace_test.ts +++ b/examples-testing/examples/webgl_furnace_test.ts @@ -1,6 +1,6 @@ @@ -4045,7 +4045,7 @@ index a8195417..46230b4a 100644 render(); diff --git a/examples-testing/examples/webgl_geometries.ts b/examples-testing/examples/webgl_geometries.ts -index 2b2d0261..d5820b37 100644 +index 2b2d026..d5820b3 100644 --- a/examples-testing/examples/webgl_geometries.ts +++ b/examples-testing/examples/webgl_geometries.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -4067,7 +4067,7 @@ index 2b2d0261..d5820b37 100644 object.rotation.y = timer * 2.5; } diff --git a/examples-testing/examples/webgl_geometries_parametric.ts b/examples-testing/examples/webgl_geometries_parametric.ts -index 29bf7ae2..30a6930c 100644 +index 29bf7ae..30a6930 100644 --- a/examples-testing/examples/webgl_geometries_parametric.ts +++ b/examples-testing/examples/webgl_geometries_parametric.ts @@ -6,12 +6,12 @@ import * as Curves from 'three/addons/curves/CurveExtras.js'; @@ -4095,7 +4095,7 @@ index 29bf7ae2..30a6930c 100644 object.rotation.y = timer * 2.5; } diff --git a/examples-testing/examples/webgl_geometry_colors.ts b/examples-testing/examples/webgl_geometry_colors.ts -index bc0bf517..68466b5b 100644 +index bc0bf51..68466b5 100644 --- a/examples-testing/examples/webgl_geometry_colors.ts +++ b/examples-testing/examples/webgl_geometry_colors.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -4138,7 +4138,7 @@ index bc0bf517..68466b5b 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_geometry_colors_lookuptable.ts b/examples-testing/examples/webgl_geometry_colors_lookuptable.ts -index 6b013852..382a9b7a 100644 +index 6b01385..382a9b7 100644 --- a/examples-testing/examples/webgl_geometry_colors_lookuptable.ts +++ b/examples-testing/examples/webgl_geometry_colors_lookuptable.ts @@ -5,19 +5,19 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -4186,7 +4186,7 @@ index 6b013852..382a9b7a 100644 map.needsUpdate = true; } diff --git a/examples-testing/examples/webgl_geometry_convex.ts b/examples-testing/examples/webgl_geometry_convex.ts -index ade9cb80..87ea7be3 100644 +index ade9cb8..87ea7be 100644 --- a/examples-testing/examples/webgl_geometry_convex.ts +++ b/examples-testing/examples/webgl_geometry_convex.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -4208,7 +4208,7 @@ index ade9cb80..87ea7be3 100644 // if normal and uv attributes are not removed, mergeVertices() can't consolidate indentical vertices with different normal/uv data diff --git a/examples-testing/examples/webgl_geometry_cube.ts b/examples-testing/examples/webgl_geometry_cube.ts -index 572601ac..136a3141 100644 +index 572601a..136a314 100644 --- a/examples-testing/examples/webgl_geometry_cube.ts +++ b/examples-testing/examples/webgl_geometry_cube.ts @@ -1,7 +1,7 @@ @@ -4222,7 +4222,7 @@ index 572601ac..136a3141 100644 init(); diff --git a/examples-testing/examples/webgl_geometry_dynamic.ts b/examples-testing/examples/webgl_geometry_dynamic.ts -index 06e858f5..28273563 100644 +index 06e858f..2827356 100644 --- a/examples-testing/examples/webgl_geometry_dynamic.ts +++ b/examples-testing/examples/webgl_geometry_dynamic.ts @@ -4,9 +4,13 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -4251,7 +4251,7 @@ index 06e858f5..28273563 100644 for (let i = 0; i < position.count; i++) { diff --git a/examples-testing/examples/webgl_geometry_extrude_shapes.ts b/examples-testing/examples/webgl_geometry_extrude_shapes.ts -index 7428aee3..386e8d57 100644 +index 7428aee..386e8d5 100644 --- a/examples-testing/examples/webgl_geometry_extrude_shapes.ts +++ b/examples-testing/examples/webgl_geometry_extrude_shapes.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -4273,7 +4273,7 @@ index 7428aee3..386e8d57 100644 'three.js webgl - geometry extrude shapes'; document.body.appendChild(info); diff --git a/examples-testing/examples/webgl_geometry_extrude_splines.ts b/examples-testing/examples/webgl_geometry_extrude_splines.ts -index 0741083d..e988b543 100644 +index 0741083..e988b54 100644 --- a/examples-testing/examples/webgl_geometry_extrude_splines.ts +++ b/examples-testing/examples/webgl_geometry_extrude_splines.ts @@ -6,9 +6,14 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -4343,7 +4343,7 @@ index 0741083d..e988b543 100644 }); folderGeometry diff --git a/examples-testing/examples/webgl_geometry_minecraft.ts b/examples-testing/examples/webgl_geometry_minecraft.ts -index 765aa1e4..b15665d8 100644 +index 765aa1e..b15665d 100644 --- a/examples-testing/examples/webgl_geometry_minecraft.ts +++ b/examples-testing/examples/webgl_geometry_minecraft.ts @@ -6,9 +6,9 @@ import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.j @@ -4386,7 +4386,7 @@ index 765aa1e4..b15665d8 100644 } diff --git a/examples-testing/examples/webgl_geometry_nurbs.ts b/examples-testing/examples/webgl_geometry_nurbs.ts -index a603710b..74676e45 100644 +index a603710..74676e4 100644 --- a/examples-testing/examples/webgl_geometry_nurbs.ts +++ b/examples-testing/examples/webgl_geometry_nurbs.ts @@ -7,10 +7,10 @@ import { NURBSSurface } from 'three/addons/curves/NURBSSurface.js'; @@ -4478,7 +4478,7 @@ index a603710b..74676e45 100644 document.removeEventListener('pointermove', onPointerMove); diff --git a/examples-testing/examples/webgl_geometry_sdf.ts b/examples-testing/examples/webgl_geometry_sdf.ts -index 01b047a2..9ce7da93 100644 +index 01b047a..9ce7da9 100644 --- a/examples-testing/examples/webgl_geometry_sdf.ts +++ b/examples-testing/examples/webgl_geometry_sdf.ts @@ -1,10 +1,19 @@ @@ -4513,7 +4513,7 @@ index 01b047a2..9ce7da93 100644 // Example SDF from https://www.shadertoy.com/view/MdXSWn --> diff --git a/examples-testing/examples/webgl_geometry_shapes.ts b/examples-testing/examples/webgl_geometry_shapes.ts -index f1d00f01..2042c353 100644 +index f1d00f0..2042c35 100644 --- a/examples-testing/examples/webgl_geometry_shapes.ts +++ b/examples-testing/examples/webgl_geometry_shapes.ts @@ -2,11 +2,11 @@ import * as THREE from 'three'; @@ -4603,7 +4603,7 @@ index f1d00f01..2042c353 100644 document.removeEventListener('pointermove', onPointerMove); diff --git a/examples-testing/examples/webgl_geometry_teapot.ts b/examples-testing/examples/webgl_geometry_teapot.ts -index 4c884a55..b94b16db 100644 +index 4c884a5..b94b16d 100644 --- a/examples-testing/examples/webgl_geometry_teapot.ts +++ b/examples-testing/examples/webgl_geometry_teapot.ts @@ -5,22 +5,30 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -4650,7 +4650,7 @@ index 4c884a55..b94b16db 100644 init(); render(); diff --git a/examples-testing/examples/webgl_geometry_terrain.ts b/examples-testing/examples/webgl_geometry_terrain.ts -index 8b6ed84e..22ec3f6a 100644 +index 8b6ed84..22ec3f6 100644 --- a/examples-testing/examples/webgl_geometry_terrain.ts +++ b/examples-testing/examples/webgl_geometry_terrain.ts @@ -5,9 +5,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -4712,7 +4712,7 @@ index 8b6ed84e..22ec3f6a 100644 context.drawImage(canvas, 0, 0); diff --git a/examples-testing/examples/webgl_geometry_terrain_raycast.ts b/examples-testing/examples/webgl_geometry_terrain_raycast.ts -index f1383c13..6e9cd025 100644 +index f1383c1..6e9cd02 100644 --- a/examples-testing/examples/webgl_geometry_terrain_raycast.ts +++ b/examples-testing/examples/webgl_geometry_terrain_raycast.ts @@ -5,18 +5,18 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -4802,7 +4802,7 @@ index f1383c13..6e9cd025 100644 helper.position.copy(intersects[0].point); } diff --git a/examples-testing/examples/webgl_geometry_text.ts b/examples-testing/examples/webgl_geometry_text.ts -index 831ebcd6..e5947329 100644 +index 831ebcd..e594732 100644 --- a/examples-testing/examples/webgl_geometry_text.ts +++ b/examples-testing/examples/webgl_geometry_text.ts @@ -1,23 +1,23 @@ @@ -4914,7 +4914,7 @@ index 831ebcd6..e5947329 100644 document.removeEventListener('pointermove', onPointerMove); diff --git a/examples-testing/examples/webgl_geometry_text_shapes.ts b/examples-testing/examples/webgl_geometry_text_shapes.ts -index adfb6008..141b618f 100644 +index adfb600..141b618 100644 --- a/examples-testing/examples/webgl_geometry_text_shapes.ts +++ b/examples-testing/examples/webgl_geometry_text_shapes.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -4957,7 +4957,7 @@ index adfb6008..141b618f 100644 if (shape.holes && shape.holes.length > 0) { for (let j = 0; j < shape.holes.length; j++) { diff --git a/examples-testing/examples/webgl_geometry_text_stroke.ts b/examples-testing/examples/webgl_geometry_text_stroke.ts -index 9a198325..e47d7b66 100644 +index 9a19832..e47d7b6 100644 --- a/examples-testing/examples/webgl_geometry_text_stroke.ts +++ b/examples-testing/examples/webgl_geometry_text_stroke.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -5000,7 +5000,7 @@ index 9a198325..e47d7b66 100644 if (shape.holes && shape.holes.length > 0) { for (let j = 0; j < shape.holes.length; j++) { diff --git a/examples-testing/examples/webgl_gpgpu_birds.ts b/examples-testing/examples/webgl_gpgpu_birds.ts -index 20a5e0d9..5bb4ed25 100644 +index 20a5e0d..5bb4ed2 100644 --- a/examples-testing/examples/webgl_gpgpu_birds.ts +++ b/examples-testing/examples/webgl_gpgpu_birds.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -5109,7 +5109,7 @@ index 20a5e0d9..5bb4ed25 100644 mouseX = event.clientX - windowHalfX; diff --git a/examples-testing/examples/webgl_gpgpu_birds_gltf.ts b/examples-testing/examples/webgl_gpgpu_birds_gltf.ts -index 3176b95a..df84fb25 100644 +index 3176b95..df84fb2 100644 --- a/examples-testing/examples/webgl_gpgpu_birds_gltf.ts +++ b/examples-testing/examples/webgl_gpgpu_birds_gltf.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -5283,7 +5283,7 @@ index 3176b95a..df84fb25 100644 mouseX = event.clientX - windowHalfX; diff --git a/examples-testing/examples/webgl_gpgpu_protoplanet.ts b/examples-testing/examples/webgl_gpgpu_protoplanet.ts -index 30444ddb..158350b0 100644 +index 30444dd..158350b 100644 --- a/examples-testing/examples/webgl_gpgpu_protoplanet.ts +++ b/examples-testing/examples/webgl_gpgpu_protoplanet.ts @@ -4,22 +4,32 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -5373,7 +5373,7 @@ index 30444ddb..158350b0 100644 } diff --git a/examples-testing/examples/webgl_gpgpu_water.ts b/examples-testing/examples/webgl_gpgpu_water.ts -index 00c32f22..57e7c212 100644 +index 00c32f2..57e7c21 100644 --- a/examples-testing/examples/webgl_gpgpu_water.ts +++ b/examples-testing/examples/webgl_gpgpu_water.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -5486,7 +5486,7 @@ index 00c32f22..57e7c212 100644 setMouseCoords(event.clientX, event.clientY); diff --git a/examples-testing/examples/webgl_helpers.ts b/examples-testing/examples/webgl_helpers.ts -index a8c3b977..09ad778d 100644 +index a8c3b97..09ad778 100644 --- a/examples-testing/examples/webgl_helpers.ts +++ b/examples-testing/examples/webgl_helpers.ts @@ -5,10 +5,10 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -5523,7 +5523,7 @@ index a8c3b977..09ad778d 100644 line.material.opacity = 0.25; line.material.transparent = true; diff --git a/examples-testing/examples/webgl_instancing_dynamic.ts b/examples-testing/examples/webgl_instancing_dynamic.ts -index 88562fc5..a8b1e2d0 100644 +index 88562fc..a8b1e2d 100644 --- a/examples-testing/examples/webgl_instancing_dynamic.ts +++ b/examples-testing/examples/webgl_instancing_dynamic.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -5539,7 +5539,7 @@ index 88562fc5..a8b1e2d0 100644 const count = Math.pow(amount, 3); const dummy = new THREE.Object3D(); diff --git a/examples-testing/examples/webgl_instancing_morph.ts b/examples-testing/examples/webgl_instancing_morph.ts -index 8686a75b..fb76abe3 100644 +index 8686a75..fb76abe 100644 --- a/examples-testing/examples/webgl_instancing_morph.ts +++ b/examples-testing/examples/webgl_instancing_morph.ts @@ -4,7 +4,13 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -5576,7 +5576,7 @@ index 8686a75b..fb76abe3 100644 renderer.render(scene, camera); diff --git a/examples-testing/examples/webgl_instancing_performance.ts b/examples-testing/examples/webgl_instancing_performance.ts -index bf1deaba..705d2cf3 100644 +index bf1deab..705d2cf 100644 --- a/examples-testing/examples/webgl_instancing_performance.ts +++ b/examples-testing/examples/webgl_instancing_performance.ts @@ -6,8 +6,12 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -5677,7 +5677,7 @@ index bf1deaba..705d2cf3 100644 const k = 1024; diff --git a/examples-testing/examples/webgl_instancing_raycast.ts b/examples-testing/examples/webgl_instancing_raycast.ts -index 371ea070..861bc9c5 100644 +index 371ea07..861bc9c 100644 --- a/examples-testing/examples/webgl_instancing_raycast.ts +++ b/examples-testing/examples/webgl_instancing_raycast.ts @@ -4,9 +4,13 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -5723,7 +5723,7 @@ index 371ea070..861bc9c5 100644 } diff --git a/examples-testing/examples/webgl_instancing_scatter.ts b/examples-testing/examples/webgl_instancing_scatter.ts -index fc3b9cc9..d0904e8e 100644 +index fc3b9cc..d0904e8 100644 --- a/examples-testing/examples/webgl_instancing_scatter.ts +++ b/examples-testing/examples/webgl_instancing_scatter.ts @@ -5,7 +5,7 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -5796,7 +5796,7 @@ index fc3b9cc9..d0904e8e 100644 ages[i] += 0.005; diff --git a/examples-testing/examples/webgl_interactive_buffergeometry.ts b/examples-testing/examples/webgl_interactive_buffergeometry.ts -index 1d6608b1..c6aca942 100644 +index 1d6608b..c6aca94 100644 --- a/examples-testing/examples/webgl_interactive_buffergeometry.ts +++ b/examples-testing/examples/webgl_interactive_buffergeometry.ts @@ -2,18 +2,18 @@ import * as THREE from 'three'; @@ -5856,7 +5856,7 @@ index 1d6608b1..c6aca942 100644 linePosition.copyAt(0, meshPosition, face.a); linePosition.copyAt(1, meshPosition, face.b); diff --git a/examples-testing/examples/webgl_interactive_cubes.ts b/examples-testing/examples/webgl_interactive_cubes.ts -index adfcfddf..d26cee37 100644 +index adfcfdd..d26cee3 100644 --- a/examples-testing/examples/webgl_interactive_cubes.ts +++ b/examples-testing/examples/webgl_interactive_cubes.ts @@ -2,10 +2,10 @@ import * as THREE from 'three'; @@ -5901,7 +5901,7 @@ index adfcfddf..d26cee37 100644 INTERSECTED = null; } diff --git a/examples-testing/examples/webgl_interactive_cubes_gpu.ts b/examples-testing/examples/webgl_interactive_cubes_gpu.ts -index 2644469c..d48fa232 100644 +index 2644469..d48fa23 100644 --- a/examples-testing/examples/webgl_interactive_cubes_gpu.ts +++ b/examples-testing/examples/webgl_interactive_cubes_gpu.ts @@ -5,12 +5,12 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -5959,7 +5959,7 @@ index 2644469c..d48fa232 100644 pointer.y = e.clientY; } diff --git a/examples-testing/examples/webgl_interactive_cubes_ortho.ts b/examples-testing/examples/webgl_interactive_cubes_ortho.ts -index 520674b5..4b083ffe 100644 +index 520674b..4b083ff 100644 --- a/examples-testing/examples/webgl_interactive_cubes_ortho.ts +++ b/examples-testing/examples/webgl_interactive_cubes_ortho.ts @@ -2,11 +2,11 @@ import * as THREE from 'three'; @@ -6005,7 +6005,7 @@ index 520674b5..4b083ffe 100644 INTERSECTED = null; } diff --git a/examples-testing/examples/webgl_interactive_lines.ts b/examples-testing/examples/webgl_interactive_lines.ts -index b137c550..891e5541 100644 +index b137c55..891e554 100644 --- a/examples-testing/examples/webgl_interactive_lines.ts +++ b/examples-testing/examples/webgl_interactive_lines.ts @@ -2,8 +2,13 @@ import * as THREE from 'three'; @@ -6034,7 +6034,7 @@ index b137c550..891e5541 100644 pointer.y = -(event.clientY / window.innerHeight) * 2 + 1; } diff --git a/examples-testing/examples/webgl_interactive_points.ts b/examples-testing/examples/webgl_interactive_points.ts -index 93113b86..e090fb6c 100644 +index 93113b8..e090fb6 100644 --- a/examples-testing/examples/webgl_interactive_points.ts +++ b/examples-testing/examples/webgl_interactive_points.ts @@ -4,19 +4,19 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -6115,7 +6115,7 @@ index 93113b86..e090fb6c 100644 attributes.size.array[INTERSECTED] = PARTICLE_SIZE * 1.25; attributes.size.needsUpdate = true; diff --git a/examples-testing/examples/webgl_interactive_raycasting_points.ts b/examples-testing/examples/webgl_interactive_raycasting_points.ts -index 41c158a4..bb134818 100644 +index 41c158a..bb13481 100644 --- a/examples-testing/examples/webgl_interactive_raycasting_points.ts +++ b/examples-testing/examples/webgl_interactive_raycasting_points.ts @@ -2,16 +2,16 @@ import * as THREE from 'three'; @@ -6194,7 +6194,7 @@ index 41c158a4..bb134818 100644 pointer.y = -(event.clientY / window.innerHeight) * 2 + 1; } diff --git a/examples-testing/examples/webgl_interactive_voxelpainter.ts b/examples-testing/examples/webgl_interactive_voxelpainter.ts -index 48b16f3b..dae1d758 100644 +index 48b16f3..dae1d75 100644 --- a/examples-testing/examples/webgl_interactive_voxelpainter.ts +++ b/examples-testing/examples/webgl_interactive_voxelpainter.ts @@ -1,15 +1,15 @@ @@ -6274,7 +6274,7 @@ index 48b16f3b..dae1d758 100644 case 16: isShiftDown = false; diff --git a/examples-testing/examples/webgl_layers.ts b/examples-testing/examples/webgl_layers.ts -index 8bdcda7f..f24cdc8b 100644 +index 8bdcda7..f24cdc8 100644 --- a/examples-testing/examples/webgl_layers.ts +++ b/examples-testing/examples/webgl_layers.ts @@ -3,8 +3,8 @@ import * as THREE from 'three'; @@ -6289,7 +6289,7 @@ index 8bdcda7f..f24cdc8b 100644 let theta = 0; const radius = 5; diff --git a/examples-testing/examples/webgl_lensflares.ts b/examples-testing/examples/webgl_lensflares.ts -index 230cebfa..56651e28 100644 +index 230cebf..56651e2 100644 --- a/examples-testing/examples/webgl_lensflares.ts +++ b/examples-testing/examples/webgl_lensflares.ts @@ -5,10 +5,10 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -6316,7 +6316,7 @@ index 230cebfa..56651e28 100644 light.color.setHSL(h, s, l); light.position.set(x, y, z); diff --git a/examples-testing/examples/webgl_lightprobe.ts b/examples-testing/examples/webgl_lightprobe.ts -index 2efcad52..b21d0287 100644 +index 2efcad5..b21d028 100644 --- a/examples-testing/examples/webgl_lightprobe.ts +++ b/examples-testing/examples/webgl_lightprobe.ts @@ -5,12 +5,15 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -6348,7 +6348,7 @@ index 2efcad52..b21d0287 100644 prefix + 'px' + postfix, prefix + 'nx' + postfix, diff --git a/examples-testing/examples/webgl_lightprobe_cubecamera.ts b/examples-testing/examples/webgl_lightprobe_cubecamera.ts -index c714d297..ccf95e09 100644 +index c714d29..ccf95e0 100644 --- a/examples-testing/examples/webgl_lightprobe_cubecamera.ts +++ b/examples-testing/examples/webgl_lightprobe_cubecamera.ts @@ -4,9 +4,9 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -6373,7 +6373,7 @@ index c714d297..ccf95e09 100644 prefix + 'px' + postfix, prefix + 'nx' + postfix, diff --git a/examples-testing/examples/webgl_lights_hemisphere.ts b/examples-testing/examples/webgl_lights_hemisphere.ts -index 6a4965df..152a2428 100644 +index 6a4965d..152a242 100644 --- a/examples-testing/examples/webgl_lights_hemisphere.ts +++ b/examples-testing/examples/webgl_lights_hemisphere.ts @@ -5,16 +5,16 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -6409,7 +6409,7 @@ index 6a4965df..152a2428 100644 topColor: { value: new THREE.Color(0x0077ff) }, bottomColor: { value: new THREE.Color(0xffffff) }, diff --git a/examples-testing/examples/webgl_lights_physical.ts b/examples-testing/examples/webgl_lights_physical.ts -index 707ef200..8e4cf0bb 100644 +index 707ef20..8e4cf0b 100644 --- a/examples-testing/examples/webgl_lights_physical.ts +++ b/examples-testing/examples/webgl_lights_physical.ts @@ -5,13 +5,19 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -6454,7 +6454,7 @@ index 707ef200..8e4cf0bb 100644 stats = new Stats(); container.appendChild(stats.dom); diff --git a/examples-testing/examples/webgl_lights_pointlights.ts b/examples-testing/examples/webgl_lights_pointlights.ts -index ea95070c..020d2160 100644 +index ea95070..020d216 100644 --- a/examples-testing/examples/webgl_lights_pointlights.ts +++ b/examples-testing/examples/webgl_lights_pointlights.ts @@ -4,7 +4,15 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -6475,7 +6475,7 @@ index ea95070c..020d2160 100644 const clock = new THREE.Clock(); diff --git a/examples-testing/examples/webgl_lights_rectarealight.ts b/examples-testing/examples/webgl_lights_rectarealight.ts -index b841fa6b..f3051618 100644 +index b841fa6..f305161 100644 --- a/examples-testing/examples/webgl_lights_rectarealight.ts +++ b/examples-testing/examples/webgl_lights_rectarealight.ts @@ -6,8 +6,8 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -6499,7 +6499,7 @@ index b841fa6b..f3051618 100644 renderer.render(scene, camera); diff --git a/examples-testing/examples/webgl_lights_spotlight.ts b/examples-testing/examples/webgl_lights_spotlight.ts -index 894abaf6..342a70fb 100644 +index 894abaf..342a70f 100644 --- a/examples-testing/examples/webgl_lights_spotlight.ts +++ b/examples-testing/examples/webgl_lights_spotlight.ts @@ -5,9 +5,9 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -6535,7 +6535,7 @@ index 894abaf6..342a70fb 100644 }); }); diff --git a/examples-testing/examples/webgl_lights_spotlights.ts b/examples-testing/examples/webgl_lights_spotlights.ts -index 70caf5a5..fc4817fb 100644 +index 70caf5a..fc4817f 100644 --- a/examples-testing/examples/webgl_lights_spotlights.ts +++ b/examples-testing/examples/webgl_lights_spotlights.ts @@ -29,7 +29,7 @@ const spotLight1 = createSpotlight(0xff7f00); @@ -6566,7 +6566,7 @@ index 70caf5a5..fc4817fb 100644 .to( { diff --git a/examples-testing/examples/webgl_lines_colors.ts b/examples-testing/examples/webgl_lines_colors.ts -index 9da19ee2..68bc979b 100644 +index 9da19ee..68bc979 100644 --- a/examples-testing/examples/webgl_lines_colors.ts +++ b/examples-testing/examples/webgl_lines_colors.ts @@ -8,7 +8,7 @@ let mouseX = 0, @@ -6606,7 +6606,7 @@ index 9da19ee2..68bc979b 100644 } } diff --git a/examples-testing/examples/webgl_lines_dashed.ts b/examples-testing/examples/webgl_lines_dashed.ts -index 4849e7c3..4bddc484 100644 +index 4849e7c..4bddc48 100644 --- a/examples-testing/examples/webgl_lines_dashed.ts +++ b/examples-testing/examples/webgl_lines_dashed.ts @@ -4,8 +4,8 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -6639,7 +6639,7 @@ index 4849e7c3..4bddc484 100644 object.rotation.y = 0.25 * time; } diff --git a/examples-testing/examples/webgl_lines_fat.ts b/examples-testing/examples/webgl_lines_fat.ts -index 75a66df6..37d59938 100644 +index 34c2e2d..5e03987 100644 --- a/examples-testing/examples/webgl_lines_fat.ts +++ b/examples-testing/examples/webgl_lines_fat.ts @@ -10,15 +10,20 @@ import { LineMaterial } from 'three/addons/lines/LineMaterial.js'; @@ -6671,7 +6671,7 @@ index 75a66df6..37d59938 100644 init(); diff --git a/examples-testing/examples/webgl_lines_fat_raycasting.ts b/examples-testing/examples/webgl_lines_fat_raycasting.ts -index e5b61d4a..49a66bb1 100644 +index 75cef62..e72b18a 100644 --- a/examples-testing/examples/webgl_lines_fat_raycasting.ts +++ b/examples-testing/examples/webgl_lines_fat_raycasting.ts @@ -11,12 +11,13 @@ import { LineSegmentsGeometry } from 'three/addons/lines/LineSegmentsGeometry.js @@ -6704,8 +6704,8 @@ index e5b61d4a..49a66bb1 100644 const matLine = new LineMaterial({ color: 0xffffff, -@@ -179,7 +179,7 @@ function onWindowResize() { - matThresholdLine.resolution.set(window.innerWidth, window.innerHeight); +@@ -173,7 +173,7 @@ function onWindowResize() { + renderer.setSize(window.innerWidth, window.innerHeight); } -function onPointerMove(event) { @@ -6713,7 +6713,7 @@ index e5b61d4a..49a66bb1 100644 pointer.x = (event.clientX / window.innerWidth) * 2 - 1; pointer.y = -(event.clientY / window.innerHeight) * 2 + 1; } -@@ -208,9 +208,9 @@ function animate() { +@@ -202,9 +202,9 @@ function animate() { sphereOnLine.visible = true; sphereInter.position.copy(intersects[0].point); @@ -6725,7 +6725,7 @@ index e5b61d4a..49a66bb1 100644 const colors = obj.geometry.getAttribute('instanceColorStart'); color.fromBufferAttribute(colors, index); -@@ -234,7 +234,7 @@ function animate() { +@@ -228,7 +228,7 @@ function animate() { // @@ -6734,7 +6734,7 @@ index e5b61d4a..49a66bb1 100644 switch (val) { case 0: line.visible = true; -@@ -279,7 +279,7 @@ function initGui() { +@@ -273,7 +273,7 @@ function initGui() { gui.add(params, 'width', 1, 10).onChange(function (val) { matLine.linewidth = val; @@ -6743,7 +6743,7 @@ index e5b61d4a..49a66bb1 100644 }); gui.add(params, 'alphaToCoverage').onChange(function (val) { -@@ -287,8 +287,8 @@ function initGui() { +@@ -281,8 +281,8 @@ function initGui() { }); gui.add(params, 'threshold', 0, 10).onChange(function (val) { @@ -6755,7 +6755,7 @@ index e5b61d4a..49a66bb1 100644 gui.add(params, 'translation', 0, 10).onChange(function (val) { diff --git a/examples-testing/examples/webgl_lines_fat_wireframe.ts b/examples-testing/examples/webgl_lines_fat_wireframe.ts -index 1b6b6567..95cb9cee 100644 +index 59660ad..9f38fcb 100644 --- a/examples-testing/examples/webgl_lines_fat_wireframe.ts +++ b/examples-testing/examples/webgl_lines_fat_wireframe.ts @@ -8,15 +8,20 @@ import { LineMaterial } from 'three/addons/lines/LineMaterial.js'; @@ -6796,7 +6796,7 @@ index 1b6b6567..95cb9cee 100644 const geometry = new WireframeGeometry2(geo); diff --git a/examples-testing/examples/webgl_loader_3dm.ts b/examples-testing/examples/webgl_loader_3dm.ts -index 7570306f..a363c213 100644 +index 7570306..a363c21 100644 --- a/examples-testing/examples/webgl_loader_3dm.ts +++ b/examples-testing/examples/webgl_loader_3dm.ts @@ -5,8 +5,8 @@ import { Rhino3dmLoader } from 'three/addons/loaders/3DMLoader.js'; @@ -6829,7 +6829,7 @@ index 7570306f..a363c213 100644 for (let i = 0; i < layers.length; i++) { diff --git a/examples-testing/examples/webgl_loader_3ds.ts b/examples-testing/examples/webgl_loader_3ds.ts -index 10ce3407..ac3a6e23 100644 +index 10ce340..ac3a6e2 100644 --- a/examples-testing/examples/webgl_loader_3ds.ts +++ b/examples-testing/examples/webgl_loader_3ds.ts @@ -3,8 +3,8 @@ import * as THREE from 'three'; @@ -6857,7 +6857,7 @@ index 10ce3407..ac3a6e23 100644 }); diff --git a/examples-testing/examples/webgl_loader_3mf.ts b/examples-testing/examples/webgl_loader_3mf.ts -index c31e3219..eecda516 100644 +index c31e321..eecda51 100644 --- a/examples-testing/examples/webgl_loader_3mf.ts +++ b/examples-testing/examples/webgl_loader_3mf.ts @@ -4,7 +4,12 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -6898,7 +6898,7 @@ index c31e3219..eecda516 100644 scene.remove(object); diff --git a/examples-testing/examples/webgl_loader_3mf_materials.ts b/examples-testing/examples/webgl_loader_3mf_materials.ts -index fcdd7308..3cfb49b4 100644 +index fcdd730..3cfb49b 100644 --- a/examples-testing/examples/webgl_loader_3mf_materials.ts +++ b/examples-testing/examples/webgl_loader_3mf_materials.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -6911,7 +6911,7 @@ index fcdd7308..3cfb49b4 100644 init(); diff --git a/examples-testing/examples/webgl_loader_amf.ts b/examples-testing/examples/webgl_loader_amf.ts -index ee576e04..7569a044 100644 +index ee576e0..7569a04 100644 --- a/examples-testing/examples/webgl_loader_amf.ts +++ b/examples-testing/examples/webgl_loader_amf.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -6924,7 +6924,7 @@ index ee576e04..7569a044 100644 init(); diff --git a/examples-testing/examples/webgl_loader_bvh.ts b/examples-testing/examples/webgl_loader_bvh.ts -index 0be3add4..cfdf0bc7 100644 +index 0be3add..cfdf0bc 100644 --- a/examples-testing/examples/webgl_loader_bvh.ts +++ b/examples-testing/examples/webgl_loader_bvh.ts @@ -5,8 +5,8 @@ import { BVHLoader } from 'three/addons/loaders/BVHLoader.js'; @@ -6939,7 +6939,7 @@ index 0be3add4..cfdf0bc7 100644 init(); diff --git a/examples-testing/examples/webgl_loader_collada.ts b/examples-testing/examples/webgl_loader_collada.ts -index 62588b69..e1e82771 100644 +index 62588b6..e1e8277 100644 --- a/examples-testing/examples/webgl_loader_collada.ts +++ b/examples-testing/examples/webgl_loader_collada.ts @@ -4,13 +4,13 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -6960,7 +6960,7 @@ index 62588b69..e1e82771 100644 camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 2000); camera.position.set(8, 10, 8); diff --git a/examples-testing/examples/webgl_loader_collada_skinning.ts b/examples-testing/examples/webgl_loader_collada_skinning.ts -index 5cb808b1..7b2b57bd 100644 +index 5cb808b..7b2b57b 100644 --- a/examples-testing/examples/webgl_loader_collada_skinning.ts +++ b/examples-testing/examples/webgl_loader_collada_skinning.ts @@ -5,13 +5,13 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -6981,7 +6981,7 @@ index 5cb808b1..7b2b57bd 100644 camera = new THREE.PerspectiveCamera(25, window.innerWidth / window.innerHeight, 1, 1000); camera.position.set(15, 10, -15); diff --git a/examples-testing/examples/webgl_loader_draco.ts b/examples-testing/examples/webgl_loader_draco.ts -index c9947c69..69bf22b4 100644 +index c9947c6..69bf22b 100644 --- a/examples-testing/examples/webgl_loader_draco.ts +++ b/examples-testing/examples/webgl_loader_draco.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -6997,34 +6997,79 @@ index c9947c69..69bf22b4 100644 // Configure and create Draco decoder. const dracoLoader = new DRACOLoader(); diff --git a/examples-testing/examples/webgl_loader_fbx.ts b/examples-testing/examples/webgl_loader_fbx.ts -index 8625cee0..816d8036 100644 +index 9c044b1..cc34275 100644 --- a/examples-testing/examples/webgl_loader_fbx.ts +++ b/examples-testing/examples/webgl_loader_fbx.ts -@@ -5,11 +5,11 @@ import Stats from 'three/addons/libs/stats.module.js'; - import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; +@@ -6,10 +6,16 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; import { FBXLoader } from 'three/addons/loaders/FBXLoader.js'; + import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; --let camera, scene, renderer, stats; -+let camera: THREE.PerspectiveCamera, scene: THREE.Scene, renderer: THREE.WebGLRenderer, stats: Stats; - +-let camera, scene, renderer, stats, object, loader, guiMorphsFolder; ++let camera: THREE.PerspectiveCamera, ++ scene: THREE.Scene, ++ renderer: THREE.WebGLRenderer, ++ stats: Stats, ++ object: THREE.Group, ++ loader: FBXLoader, ++ guiMorphsFolder: GUI; const clock = new THREE.Clock(); -let mixer; -+let mixer: THREE.AnimationMixer; ++let mixer: THREE.AnimationMixer | null; - init(); + const params = { + asset: 'Samba Dancing', +@@ -87,13 +93,18 @@ function init() { + guiMorphsFolder = gui.addFolder('Morphs').hide(); + } -@@ -62,7 +62,7 @@ function init() { - action.play(); +-function loadAsset(asset) { ++function loadAsset(asset: string) { + loader.load('models/fbx/' + asset + '.fbx', function (group) { + if (object) { + object.traverse(function (child) { +- if (child.material) child.material.dispose(); +- if (child.material && child.material.map) child.material.map.dispose(); +- if (child.geometry) child.geometry.dispose(); ++ if ((child as THREE.Mesh).material) ++ (child as THREE.Mesh).material.dispose(); ++ if ( ++ (child as THREE.Mesh).material && ++ (child as THREE.Mesh).material.map ++ ) ++ (child as THREE.Mesh).material.map!.dispose(); ++ if ((child as THREE.Mesh).geometry) (child as THREE.Mesh).geometry.dispose(); + }); + + scene.remove(object); +@@ -116,15 +127,21 @@ function loadAsset(asset) { + guiMorphsFolder.hide(); object.traverse(function (child) { - if (child.isMesh) { + if ((child as THREE.Mesh).isMesh) { child.castShadow = true; child.receiveShadow = true; + +- if (child.morphTargetDictionary) { ++ if ((child as THREE.Mesh).morphTargetDictionary) { + guiMorphsFolder.show(); + const meshFolder = guiMorphsFolder.addFolder(child.name || child.uuid); +- Object.keys(child.morphTargetDictionary).forEach(key => { +- meshFolder.add(child.morphTargetInfluences, child.morphTargetDictionary[key], 0, 1, 0.01); ++ Object.keys((child as THREE.Mesh).morphTargetDictionary!).forEach(key => { ++ meshFolder.add( ++ (child as THREE.Mesh).morphTargetInfluences!, ++ (child as THREE.Mesh).morphTargetDictionary![key], ++ 0, ++ 1, ++ 0.01, ++ ); + }); + } } diff --git a/examples-testing/examples/webgl_loader_fbx_nurbs.ts b/examples-testing/examples/webgl_loader_fbx_nurbs.ts -index f2e45bcb..c15264d7 100644 +index f2e45bc..c15264d 100644 --- a/examples-testing/examples/webgl_loader_fbx_nurbs.ts +++ b/examples-testing/examples/webgl_loader_fbx_nurbs.ts @@ -5,7 +5,7 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -7037,7 +7082,7 @@ index f2e45bcb..c15264d7 100644 init(); diff --git a/examples-testing/examples/webgl_loader_gcode.ts b/examples-testing/examples/webgl_loader_gcode.ts -index 6fd3e149..79c64232 100644 +index 6fd3e14..79c6423 100644 --- a/examples-testing/examples/webgl_loader_gcode.ts +++ b/examples-testing/examples/webgl_loader_gcode.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -7050,7 +7095,7 @@ index 6fd3e149..79c64232 100644 init(); render(); diff --git a/examples-testing/examples/webgl_loader_gltf.ts b/examples-testing/examples/webgl_loader_gltf.ts -index e1b0adc5..6fcb3ed5 100644 +index e1b0adc..6fcb3ed 100644 --- a/examples-testing/examples/webgl_loader_gltf.ts +++ b/examples-testing/examples/webgl_loader_gltf.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7063,7 +7108,7 @@ index e1b0adc5..6fcb3ed5 100644 init(); diff --git a/examples-testing/examples/webgl_loader_gltf_anisotropy.ts b/examples-testing/examples/webgl_loader_gltf_anisotropy.ts -index 6e240a27..96a39391 100644 +index 6e240a2..96a3939 100644 --- a/examples-testing/examples/webgl_loader_gltf_anisotropy.ts +++ b/examples-testing/examples/webgl_loader_gltf_anisotropy.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7076,7 +7121,7 @@ index 6e240a27..96a39391 100644 init(); diff --git a/examples-testing/examples/webgl_loader_gltf_avif.ts b/examples-testing/examples/webgl_loader_gltf_avif.ts -index 37d63859..68dff97f 100644 +index 37d6385..68dff97 100644 --- a/examples-testing/examples/webgl_loader_gltf_avif.ts +++ b/examples-testing/examples/webgl_loader_gltf_avif.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7089,7 +7134,7 @@ index 37d63859..68dff97f 100644 init(); render(); diff --git a/examples-testing/examples/webgl_loader_gltf_compressed.ts b/examples-testing/examples/webgl_loader_gltf_compressed.ts -index 82024303..0926a591 100644 +index 8202430..0926a59 100644 --- a/examples-testing/examples/webgl_loader_gltf_compressed.ts +++ b/examples-testing/examples/webgl_loader_gltf_compressed.ts @@ -7,7 +7,7 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -7102,7 +7147,7 @@ index 82024303..0926a591 100644 init(); render(); diff --git a/examples-testing/examples/webgl_loader_gltf_dispersion.ts b/examples-testing/examples/webgl_loader_gltf_dispersion.ts -index d17e066d..496142db 100644 +index d17e066..496142d 100644 --- a/examples-testing/examples/webgl_loader_gltf_dispersion.ts +++ b/examples-testing/examples/webgl_loader_gltf_dispersion.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7115,7 +7160,7 @@ index d17e066d..496142db 100644 init().then(render); diff --git a/examples-testing/examples/webgl_loader_gltf_instancing.ts b/examples-testing/examples/webgl_loader_gltf_instancing.ts -index 5d23e775..b8a6814d 100644 +index 5d23e77..b8a6814 100644 --- a/examples-testing/examples/webgl_loader_gltf_instancing.ts +++ b/examples-testing/examples/webgl_loader_gltf_instancing.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7128,7 +7173,7 @@ index 5d23e775..b8a6814d 100644 init(); render(); diff --git a/examples-testing/examples/webgl_loader_gltf_iridescence.ts b/examples-testing/examples/webgl_loader_gltf_iridescence.ts -index eb0f8d91..9ab15779 100644 +index eb0f8d9..9ab1577 100644 --- a/examples-testing/examples/webgl_loader_gltf_iridescence.ts +++ b/examples-testing/examples/webgl_loader_gltf_iridescence.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7141,7 +7186,7 @@ index eb0f8d91..9ab15779 100644 init().catch(function (err) { console.error(err); diff --git a/examples-testing/examples/webgl_loader_gltf_lights.ts b/examples-testing/examples/webgl_loader_gltf_lights.ts -index f2bd5b10..7efbb033 100644 +index f2bd5b1..7efbb03 100644 --- a/examples-testing/examples/webgl_loader_gltf_lights.ts +++ b/examples-testing/examples/webgl_loader_gltf_lights.ts @@ -6,7 +6,7 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -7166,7 +7211,7 @@ index f2bd5b10..7efbb033 100644 } }); diff --git a/examples-testing/examples/webgl_loader_gltf_sheen.ts b/examples-testing/examples/webgl_loader_gltf_sheen.ts -index 1ff3e7a8..ac16074b 100644 +index 1ff3e7a..ac16074 100644 --- a/examples-testing/examples/webgl_loader_gltf_sheen.ts +++ b/examples-testing/examples/webgl_loader_gltf_sheen.ts @@ -6,7 +6,7 @@ import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js'; @@ -7191,7 +7236,7 @@ index 1ff3e7a8..ac16074b 100644 const gui = new GUI(); diff --git a/examples-testing/examples/webgl_loader_gltf_transmission.ts b/examples-testing/examples/webgl_loader_gltf_transmission.ts -index 87a47d2c..c1341d80 100644 +index 87a47d2..c1341d8 100644 --- a/examples-testing/examples/webgl_loader_gltf_transmission.ts +++ b/examples-testing/examples/webgl_loader_gltf_transmission.ts @@ -6,7 +6,12 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -7209,7 +7254,7 @@ index 87a47d2c..c1341d80 100644 init(); diff --git a/examples-testing/examples/webgl_loader_imagebitmap.ts b/examples-testing/examples/webgl_loader_imagebitmap.ts -index 1049e985..ae304ad8 100644 +index 1049e98..ae304ad 100644 --- a/examples-testing/examples/webgl_loader_imagebitmap.ts +++ b/examples-testing/examples/webgl_loader_imagebitmap.ts @@ -1,7 +1,7 @@ @@ -7232,7 +7277,7 @@ index 1049e985..ae304ad8 100644 cube.position.set(Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1); cube.rotation.set(Math.random() * 2 * Math.PI, Math.random() * 2 * Math.PI, Math.random() * 2 * Math.PI); diff --git a/examples-testing/examples/webgl_loader_kmz.ts b/examples-testing/examples/webgl_loader_kmz.ts -index f93555e4..8793a351 100644 +index f93555e..8793a35 100644 --- a/examples-testing/examples/webgl_loader_kmz.ts +++ b/examples-testing/examples/webgl_loader_kmz.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -7245,7 +7290,7 @@ index f93555e4..8793a351 100644 init(); diff --git a/examples-testing/examples/webgl_loader_lwo.ts b/examples-testing/examples/webgl_loader_lwo.ts -index fb10c834..df003a04 100644 +index fb10c83..df003a0 100644 --- a/examples-testing/examples/webgl_loader_lwo.ts +++ b/examples-testing/examples/webgl_loader_lwo.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -7258,7 +7303,7 @@ index fb10c834..df003a04 100644 init(); diff --git a/examples-testing/examples/webgl_loader_md2_control.ts b/examples-testing/examples/webgl_loader_md2_control.ts -index 683e4c2a..845039ea 100644 +index 683e4c2..845039e 100644 --- a/examples-testing/examples/webgl_loader_md2_control.ts +++ b/examples-testing/examples/webgl_loader_md2_control.ts @@ -9,10 +9,10 @@ import { Gyroscope } from 'three/addons/misc/Gyroscope.js'; @@ -7309,7 +7354,7 @@ index 683e4c2a..845039ea 100644 case 'ArrowUp': case 'KeyW': diff --git a/examples-testing/examples/webgl_loader_mdd.ts b/examples-testing/examples/webgl_loader_mdd.ts -index 5b13e8f4..83aad15c 100644 +index 5b13e8f..83aad15 100644 --- a/examples-testing/examples/webgl_loader_mdd.ts +++ b/examples-testing/examples/webgl_loader_mdd.ts @@ -2,7 +2,11 @@ import * as THREE from 'three'; @@ -7326,7 +7371,7 @@ index 5b13e8f4..83aad15c 100644 init(); diff --git a/examples-testing/examples/webgl_loader_obj.ts b/examples-testing/examples/webgl_loader_obj.ts -index f61eeb75..44b29b66 100644 +index f61eeb7..44b29b6 100644 --- a/examples-testing/examples/webgl_loader_obj.ts +++ b/examples-testing/examples/webgl_loader_obj.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -7361,7 +7406,7 @@ index f61eeb75..44b29b66 100644 const percentComplete = (xhr.loaded / xhr.total) * 100; console.log('model ' + percentComplete.toFixed(2) + '% downloaded'); diff --git a/examples-testing/examples/webgl_loader_obj_mtl.ts b/examples-testing/examples/webgl_loader_obj_mtl.ts -index 4308aee7..f27d82d9 100644 +index 4308aee..f27d82d 100644 --- a/examples-testing/examples/webgl_loader_obj_mtl.ts +++ b/examples-testing/examples/webgl_loader_obj_mtl.ts @@ -4,7 +4,7 @@ import { MTLLoader } from 'three/addons/loaders/MTLLoader.js'; @@ -7383,7 +7428,7 @@ index 4308aee7..f27d82d9 100644 const percentComplete = (xhr.loaded / xhr.total) * 100; console.log(percentComplete.toFixed(2) + '% downloaded'); diff --git a/examples-testing/examples/webgl_loader_pcd.ts b/examples-testing/examples/webgl_loader_pcd.ts -index d69e3fa2..312ad67c 100644 +index d69e3fa..312ad67 100644 --- a/examples-testing/examples/webgl_loader_pcd.ts +++ b/examples-testing/examples/webgl_loader_pcd.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7396,7 +7441,7 @@ index d69e3fa2..312ad67c 100644 init(); render(); diff --git a/examples-testing/examples/webgl_loader_pdb.ts b/examples-testing/examples/webgl_loader_pdb.ts -index b560efa7..9882dff5 100644 +index b560efa..9882dff 100644 --- a/examples-testing/examples/webgl_loader_pdb.ts +++ b/examples-testing/examples/webgl_loader_pdb.ts @@ -5,10 +5,10 @@ import { PDBLoader } from 'three/addons/loaders/PDBLoader.js'; @@ -7455,7 +7500,7 @@ index b560efa7..9882dff5 100644 geometryAtoms.translate(offset.x, offset.y, offset.z); geometryBonds.translate(offset.x, offset.y, offset.z); diff --git a/examples-testing/examples/webgl_loader_ply.ts b/examples-testing/examples/webgl_loader_ply.ts -index 0f4042b7..dff17d16 100644 +index 0f4042b..dff17d1 100644 --- a/examples-testing/examples/webgl_loader_ply.ts +++ b/examples-testing/examples/webgl_loader_ply.ts @@ -4,9 +4,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -7480,7 +7525,7 @@ index 0f4042b7..dff17d16 100644 directionalLight.position.set(x, y, z); scene.add(directionalLight); diff --git a/examples-testing/examples/webgl_loader_svg.ts b/examples-testing/examples/webgl_loader_svg.ts -index 45361b92..f5d72d3c 100644 +index 45361b9..f5d72d3 100644 --- a/examples-testing/examples/webgl_loader_svg.ts +++ b/examples-testing/examples/webgl_loader_svg.ts @@ -3,14 +3,24 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -7559,7 +7604,7 @@ index 45361b92..f5d72d3c 100644 if (geometry) { const mesh = new THREE.Mesh(geometry, material); diff --git a/examples-testing/examples/webgl_loader_texture_dds.ts b/examples-testing/examples/webgl_loader_texture_dds.ts -index bc4bd057..0bf94def 100644 +index bc4bd05..0bf94de 100644 --- a/examples-testing/examples/webgl_loader_texture_dds.ts +++ b/examples-testing/examples/webgl_loader_texture_dds.ts @@ -2,8 +2,8 @@ import * as THREE from 'three'; @@ -7583,7 +7628,7 @@ index bc4bd057..0bf94def 100644 mesh.position.y = -2; scene.add(mesh); diff --git a/examples-testing/examples/webgl_loader_texture_ktx.ts b/examples-testing/examples/webgl_loader_texture_ktx.ts -index af66eb81..f7832073 100644 +index af66eb8..f783207 100644 --- a/examples-testing/examples/webgl_loader_texture_ktx.ts +++ b/examples-testing/examples/webgl_loader_texture_ktx.ts @@ -17,8 +17,8 @@ import { KTXLoader } from 'three/addons/loaders/KTXLoader.js'; @@ -7649,7 +7694,7 @@ index af66eb81..f7832073 100644 meshes.push(new THREE.Mesh(geometry, material1)); meshes.push(new THREE.Mesh(geometry, material2)); diff --git a/examples-testing/examples/webgl_loader_texture_logluv.ts b/examples-testing/examples/webgl_loader_texture_logluv.ts -index 7f3fbd4a..181e0033 100644 +index 7f3fbd4..181e003 100644 --- a/examples-testing/examples/webgl_loader_texture_logluv.ts +++ b/examples-testing/examples/webgl_loader_texture_logluv.ts @@ -8,7 +8,7 @@ const params = { @@ -7662,7 +7707,7 @@ index 7f3fbd4a..181e0033 100644 init(); diff --git a/examples-testing/examples/webgl_loader_texture_rgbm.ts b/examples-testing/examples/webgl_loader_texture_rgbm.ts -index a882cdbc..a7cbf3e0 100644 +index a882cdb..a7cbf3e 100644 --- a/examples-testing/examples/webgl_loader_texture_rgbm.ts +++ b/examples-testing/examples/webgl_loader_texture_rgbm.ts @@ -8,7 +8,7 @@ const params = { @@ -7675,7 +7720,7 @@ index a882cdbc..a7cbf3e0 100644 init(); diff --git a/examples-testing/examples/webgl_loader_texture_tga.ts b/examples-testing/examples/webgl_loader_texture_tga.ts -index c4f65b79..fd6bab07 100644 +index c4f65b7..fd6bab0 100644 --- a/examples-testing/examples/webgl_loader_texture_tga.ts +++ b/examples-testing/examples/webgl_loader_texture_tga.ts @@ -5,7 +5,7 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -7688,7 +7733,7 @@ index c4f65b79..fd6bab07 100644 init(); diff --git a/examples-testing/examples/webgl_loader_texture_tiff.ts b/examples-testing/examples/webgl_loader_texture_tiff.ts -index f097774a..bb5b9d9d 100644 +index f097774..bb5b9d9 100644 --- a/examples-testing/examples/webgl_loader_texture_tiff.ts +++ b/examples-testing/examples/webgl_loader_texture_tiff.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -7701,7 +7746,7 @@ index f097774a..bb5b9d9d 100644 init(); diff --git a/examples-testing/examples/webgl_loader_tilt.ts b/examples-testing/examples/webgl_loader_tilt.ts -index 2a583c2b..8e3e976b 100644 +index 2a583c2..8e3e976 100644 --- a/examples-testing/examples/webgl_loader_tilt.ts +++ b/examples-testing/examples/webgl_loader_tilt.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -7714,7 +7759,7 @@ index 2a583c2b..8e3e976b 100644 init(); diff --git a/examples-testing/examples/webgl_loader_ttf.ts b/examples-testing/examples/webgl_loader_ttf.ts -index 168371a1..073084f7 100644 +index 168371a..073084f 100644 --- a/examples-testing/examples/webgl_loader_ttf.ts +++ b/examples-testing/examples/webgl_loader_ttf.ts @@ -4,9 +4,9 @@ import { TTFLoader } from 'three/addons/loaders/TTFLoader.js'; @@ -7803,7 +7848,7 @@ index 168371a1..073084f7 100644 document.removeEventListener('pointermove', onPointerMove); document.removeEventListener('pointerup', onPointerUp); diff --git a/examples-testing/examples/webgl_loader_usdz.ts b/examples-testing/examples/webgl_loader_usdz.ts -index d75823d8..cdd7c733 100644 +index d75823d..cdd7c73 100644 --- a/examples-testing/examples/webgl_loader_usdz.ts +++ b/examples-testing/examples/webgl_loader_usdz.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7816,7 +7861,7 @@ index d75823d8..cdd7c733 100644 init(); diff --git a/examples-testing/examples/webgl_loader_vox.ts b/examples-testing/examples/webgl_loader_vox.ts -index 06184801..1f9629e0 100644 +index 0618480..1f9629e 100644 --- a/examples-testing/examples/webgl_loader_vox.ts +++ b/examples-testing/examples/webgl_loader_vox.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -7829,7 +7874,7 @@ index 06184801..1f9629e0 100644 init(); diff --git a/examples-testing/examples/webgl_loader_vrml.ts b/examples-testing/examples/webgl_loader_vrml.ts -index fecf4bb4..a6093ead 100644 +index fecf4bb..a6093ea 100644 --- a/examples-testing/examples/webgl_loader_vrml.ts +++ b/examples-testing/examples/webgl_loader_vrml.ts @@ -6,7 +6,12 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -7883,7 +7928,7 @@ index fecf4bb4..a6093ead 100644 vrmlScene = object; scene.add(object); diff --git a/examples-testing/examples/webgl_loader_vtk.ts b/examples-testing/examples/webgl_loader_vtk.ts -index dfc79865..de6983fb 100644 +index dfc7986..de6983f 100644 --- a/examples-testing/examples/webgl_loader_vtk.ts +++ b/examples-testing/examples/webgl_loader_vtk.ts @@ -5,9 +5,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -7899,7 +7944,7 @@ index dfc79865..de6983fb 100644 init(); diff --git a/examples-testing/examples/webgl_loader_xyz.ts b/examples-testing/examples/webgl_loader_xyz.ts -index 90e00984..61ef0cf1 100644 +index 90e0098..61ef0cf 100644 --- a/examples-testing/examples/webgl_loader_xyz.ts +++ b/examples-testing/examples/webgl_loader_xyz.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -7915,7 +7960,7 @@ index 90e00984..61ef0cf1 100644 init(); diff --git a/examples-testing/examples/webgl_lod.ts b/examples-testing/examples/webgl_lod.ts -index 0bb9e7be..bd1d0e46 100644 +index 0bb9e7b..bd1d0e4 100644 --- a/examples-testing/examples/webgl_lod.ts +++ b/examples-testing/examples/webgl_lod.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -7940,7 +7985,7 @@ index 0bb9e7be..bd1d0e46 100644 [new THREE.IcosahedronGeometry(100, 8), 300], [new THREE.IcosahedronGeometry(100, 4), 1000], diff --git a/examples-testing/examples/webgl_marchingcubes.ts b/examples-testing/examples/webgl_marchingcubes.ts -index d11df56a..ea05a705 100644 +index d11df56..ea05a70 100644 --- a/examples-testing/examples/webgl_marchingcubes.ts +++ b/examples-testing/examples/webgl_marchingcubes.ts @@ -7,17 +7,42 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -8056,7 +8101,7 @@ index d11df56a..ea05a705 100644 // fill the field with some metaballs diff --git a/examples-testing/examples/webgl_materials_alphahash.ts b/examples-testing/examples/webgl_materials_alphahash.ts -index 807e5a33..b2e1cd10 100644 +index 807e5a3..b2e1cd1 100644 --- a/examples-testing/examples/webgl_materials_alphahash.ts +++ b/examples-testing/examples/webgl_materials_alphahash.ts @@ -10,9 +10,15 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -8079,7 +8124,7 @@ index 807e5a33..b2e1cd10 100644 let needsUpdate = false; diff --git a/examples-testing/examples/webgl_materials_blending.ts b/examples-testing/examples/webgl_materials_blending.ts -index 11cc009b..7f7fd73c 100644 +index 11cc009..7f7fd73 100644 --- a/examples-testing/examples/webgl_materials_blending.ts +++ b/examples-testing/examples/webgl_materials_blending.ts @@ -1,7 +1,7 @@ @@ -8132,7 +8177,7 @@ index 11cc009b..7f7fd73c 100644 canvas.height = 32; diff --git a/examples-testing/examples/webgl_materials_blending_custom.ts b/examples-testing/examples/webgl_materials_blending_custom.ts -index 07244742..62111971 100644 +index 0724474..6211197 100644 --- a/examples-testing/examples/webgl_materials_blending_custom.ts +++ b/examples-testing/examples/webgl_materials_blending_custom.ts @@ -2,12 +2,12 @@ import * as THREE from 'three'; @@ -8183,7 +8228,7 @@ index 07244742..62111971 100644 material.blendEquation = value; } diff --git a/examples-testing/examples/webgl_materials_bumpmap.ts b/examples-testing/examples/webgl_materials_bumpmap.ts -index d954fab7..73947a37 100644 +index d954fab..73947a3 100644 --- a/examples-testing/examples/webgl_materials_bumpmap.ts +++ b/examples-testing/examples/webgl_materials_bumpmap.ts @@ -4,13 +4,13 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -8232,7 +8277,7 @@ index d954fab7..73947a37 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_materials_car.ts b/examples-testing/examples/webgl_materials_car.ts -index e810f7b7..5f71ea26 100644 +index e810f7b..5f71ea2 100644 --- a/examples-testing/examples/webgl_materials_car.ts +++ b/examples-testing/examples/webgl_materials_car.ts @@ -8,16 +8,16 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; @@ -8313,7 +8358,7 @@ index e810f7b7..5f71ea26 100644 // shadow diff --git a/examples-testing/examples/webgl_materials_cubemap.ts b/examples-testing/examples/webgl_materials_cubemap.ts -index 5f269275..87044a87 100644 +index 5f26927..87044a8 100644 --- a/examples-testing/examples/webgl_materials_cubemap.ts +++ b/examples-testing/examples/webgl_materials_cubemap.ts @@ -5,9 +5,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -8338,7 +8383,7 @@ index 5f269275..87044a87 100644 head.position.y = -3; head.material = cubeMaterial1; diff --git a/examples-testing/examples/webgl_materials_cubemap_dynamic.ts b/examples-testing/examples/webgl_materials_cubemap_dynamic.ts -index 13a26890..8b84f71a 100644 +index 13a2689..8b84f71 100644 --- a/examples-testing/examples/webgl_materials_cubemap_dynamic.ts +++ b/examples-testing/examples/webgl_materials_cubemap_dynamic.ts @@ -6,12 +6,12 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -8368,7 +8413,7 @@ index 13a26890..8b84f71a 100644 cube.position.x = Math.cos(time) * 30; diff --git a/examples-testing/examples/webgl_materials_cubemap_mipmaps.ts b/examples-testing/examples/webgl_materials_cubemap_mipmaps.ts -index 944f4c18..21010ffa 100644 +index 944f4c1..21010ff 100644 --- a/examples-testing/examples/webgl_materials_cubemap_mipmaps.ts +++ b/examples-testing/examples/webgl_materials_cubemap_mipmaps.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -8408,7 +8453,7 @@ index 944f4c18..21010ffa 100644 customizedCubeTexture.colorSpace = THREE.SRGBColorSpace; customizedCubeTexture.minFilter = THREE.LinearMipMapLinearFilter; diff --git a/examples-testing/examples/webgl_materials_cubemap_refraction.ts b/examples-testing/examples/webgl_materials_cubemap_refraction.ts -index 8c025071..a47c4832 100644 +index 8c02507..a47c483 100644 --- a/examples-testing/examples/webgl_materials_cubemap_refraction.ts +++ b/examples-testing/examples/webgl_materials_cubemap_refraction.ts @@ -4,9 +4,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -8447,7 +8492,7 @@ index 8c025071..a47c4832 100644 mouseY = (event.clientY - windowHalfY) * 4; } diff --git a/examples-testing/examples/webgl_materials_cubemap_render_to_mipmaps.ts b/examples-testing/examples/webgl_materials_cubemap_render_to_mipmaps.ts -index 599a1369..fa4f85c1 100644 +index 599a136..fa4f85c 100644 --- a/examples-testing/examples/webgl_materials_cubemap_render_to_mipmaps.ts +++ b/examples-testing/examples/webgl_materials_cubemap_render_to_mipmaps.ts @@ -1,8 +1,8 @@ @@ -8490,7 +8535,7 @@ index 599a1369..fa4f85c1 100644 const material = new THREE.ShaderMaterial({ diff --git a/examples-testing/examples/webgl_materials_curvature.ts b/examples-testing/examples/webgl_materials_curvature.ts -index 60992dbc..15625389 100644 +index 60992db..1562538 100644 --- a/examples-testing/examples/webgl_materials_curvature.ts +++ b/examples-testing/examples/webgl_materials_curvature.ts @@ -4,14 +4,16 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -8581,7 +8626,7 @@ index 60992dbc..15625389 100644 ninjaMeshRaw = new THREE.Mesh(bufferGeo, materialRaw); diff --git a/examples-testing/examples/webgl_materials_displacementmap.ts b/examples-testing/examples/webgl_materials_displacementmap.ts -index fd0be9a5..9b08fe73 100644 +index fd0be9a..9b08fe7 100644 --- a/examples-testing/examples/webgl_materials_displacementmap.ts +++ b/examples-testing/examples/webgl_materials_displacementmap.ts @@ -6,8 +6,8 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -8617,7 +8662,7 @@ index fd0be9a5..9b08fe73 100644 mesh = new THREE.Mesh(geometry, material); diff --git a/examples-testing/examples/webgl_materials_envmaps.ts b/examples-testing/examples/webgl_materials_envmaps.ts -index 18a5542e..13fe2efc 100644 +index 18a5542..13fe2ef 100644 --- a/examples-testing/examples/webgl_materials_envmaps.ts +++ b/examples-testing/examples/webgl_materials_envmaps.ts @@ -3,9 +3,19 @@ import * as THREE from 'three'; @@ -8644,7 +8689,7 @@ index 18a5542e..13fe2efc 100644 init(); diff --git a/examples-testing/examples/webgl_materials_envmaps_exr.ts b/examples-testing/examples/webgl_materials_envmaps_exr.ts -index c3f3f4f7..4ae4cb95 100644 +index c3f3f4f..4ae4cb9 100644 --- a/examples-testing/examples/webgl_materials_envmaps_exr.ts +++ b/examples-testing/examples/webgl_materials_envmaps_exr.ts @@ -14,11 +14,12 @@ const params = { @@ -8677,7 +8722,7 @@ index c3f3f4f7..4ae4cb95 100644 roughness: params.roughness, envMapIntensity: 1.0, diff --git a/examples-testing/examples/webgl_materials_envmaps_groundprojected.ts b/examples-testing/examples/webgl_materials_envmaps_groundprojected.ts -index 48e0077f..09c67188 100644 +index 48e0077..09c6718 100644 --- a/examples-testing/examples/webgl_materials_envmaps_groundprojected.ts +++ b/examples-testing/examples/webgl_materials_envmaps_groundprojected.ts @@ -13,7 +13,7 @@ const params = { @@ -8713,7 +8758,7 @@ index 48e0077f..09c67188 100644 // shadow const mesh = new THREE.Mesh( diff --git a/examples-testing/examples/webgl_materials_envmaps_hdr.ts b/examples-testing/examples/webgl_materials_envmaps_hdr.ts -index b4c6f64e..48b6c01c 100644 +index b4c6f64..48b6c01 100644 --- a/examples-testing/examples/webgl_materials_envmaps_hdr.ts +++ b/examples-testing/examples/webgl_materials_envmaps_hdr.ts @@ -8,7 +8,13 @@ import { HDRCubeTextureLoader } from 'three/addons/loaders/HDRCubeTextureLoader. @@ -8765,7 +8810,7 @@ index b4c6f64e..48b6c01c 100644 metalness: params.metalness, roughness: params.roughness, diff --git a/examples-testing/examples/webgl_materials_modified.ts b/examples-testing/examples/webgl_materials_modified.ts -index c6ee5af3..a1a808a7 100644 +index c6ee5af..a1a808a 100644 --- a/examples-testing/examples/webgl_materials_modified.ts +++ b/examples-testing/examples/webgl_materials_modified.ts @@ -5,7 +5,7 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -8807,7 +8852,7 @@ index c6ee5af3..a1a808a7 100644 if (shader) { shader.uniforms.time.value = performance.now() / 1000; diff --git a/examples-testing/examples/webgl_materials_normalmap_object_space.ts b/examples-testing/examples/webgl_materials_normalmap_object_space.ts -index 1fc6f806..72108134 100644 +index 1fc6f80..7210813 100644 --- a/examples-testing/examples/webgl_materials_normalmap_object_space.ts +++ b/examples-testing/examples/webgl_materials_normalmap_object_space.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -8848,7 +8893,7 @@ index 1fc6f806..72108134 100644 child.scale.multiplyScalar(0.5); diff --git a/examples-testing/examples/webgl_materials_physical_clearcoat.ts b/examples-testing/examples/webgl_materials_physical_clearcoat.ts -index 408fd992..dc782ea9 100644 +index 408fd99..dc782ea 100644 --- a/examples-testing/examples/webgl_materials_physical_clearcoat.ts +++ b/examples-testing/examples/webgl_materials_physical_clearcoat.ts @@ -7,12 +7,12 @@ import { HDRCubeTextureLoader } from 'three/addons/loaders/HDRCubeTextureLoader. @@ -8869,7 +8914,7 @@ index 408fd992..dc782ea9 100644 init(); diff --git a/examples-testing/examples/webgl_materials_physical_transmission.ts b/examples-testing/examples/webgl_materials_physical_transmission.ts -index d4596797..6464232e 100644 +index d459679..6464232 100644 --- a/examples-testing/examples/webgl_materials_physical_transmission.ts +++ b/examples-testing/examples/webgl_materials_physical_transmission.ts @@ -19,7 +19,7 @@ const params = { @@ -8891,7 +8936,7 @@ index d4596797..6464232e 100644 context.fillRect(0, 1, 2, 1); diff --git a/examples-testing/examples/webgl_materials_physical_transmission_alpha.ts b/examples-testing/examples/webgl_materials_physical_transmission_alpha.ts -index d81f59c3..1e194ce8 100644 +index d81f59c..1e194ce 100644 --- a/examples-testing/examples/webgl_materials_physical_transmission_alpha.ts +++ b/examples-testing/examples/webgl_materials_physical_transmission_alpha.ts @@ -22,17 +22,20 @@ const params = { @@ -8929,7 +8974,7 @@ index d81f59c3..1e194ce8 100644 scene = new THREE.Scene(); diff --git a/examples-testing/examples/webgl_materials_texture_anisotropy.ts b/examples-testing/examples/webgl_materials_texture_anisotropy.ts -index 1e030d64..65577721 100644 +index 1e030d6..6557772 100644 --- a/examples-testing/examples/webgl_materials_texture_anisotropy.ts +++ b/examples-testing/examples/webgl_materials_texture_anisotropy.ts @@ -5,9 +5,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -8970,7 +9015,7 @@ index 1e030d64..65577721 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_materials_texture_canvas.ts b/examples-testing/examples/webgl_materials_texture_canvas.ts -index d23c6843..5a190fab 100644 +index d23c684..5a190fa 100644 --- a/examples-testing/examples/webgl_materials_texture_canvas.ts +++ b/examples-testing/examples/webgl_materials_texture_canvas.ts @@ -1,6 +1,10 @@ @@ -9015,7 +9060,7 @@ index d23c6843..5a190fab 100644 function onWindowResize() { diff --git a/examples-testing/examples/webgl_materials_texture_filters.ts b/examples-testing/examples/webgl_materials_texture_filters.ts -index 178c2ce4..fb67cabe 100644 +index 178c2ce..fb67cab 100644 --- a/examples-testing/examples/webgl_materials_texture_filters.ts +++ b/examples-testing/examples/webgl_materials_texture_filters.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -9058,7 +9103,7 @@ index 178c2ce4..fb67cabe 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_materials_texture_manualmipmap.ts b/examples-testing/examples/webgl_materials_texture_manualmipmap.ts -index 24bd4eb9..5d5e77b6 100644 +index 24bd4eb..5d5e77b 100644 --- a/examples-testing/examples/webgl_materials_texture_manualmipmap.ts +++ b/examples-testing/examples/webgl_materials_texture_manualmipmap.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -9104,7 +9149,7 @@ index 24bd4eb9..5d5e77b6 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_materials_texture_partialupdate.ts b/examples-testing/examples/webgl_materials_texture_partialupdate.ts -index 5adfc8e6..55d802e3 100644 +index 5adfc8e..55d802e 100644 --- a/examples-testing/examples/webgl_materials_texture_partialupdate.ts +++ b/examples-testing/examples/webgl_materials_texture_partialupdate.ts @@ -1,6 +1,11 @@ @@ -9130,7 +9175,7 @@ index 5adfc8e6..55d802e3 100644 const data = texture.image.data; diff --git a/examples-testing/examples/webgl_materials_texture_rotation.ts b/examples-testing/examples/webgl_materials_texture_rotation.ts -index 2666d09d..b284d9ff 100644 +index 2666d09..b284d9f 100644 --- a/examples-testing/examples/webgl_materials_texture_rotation.ts +++ b/examples-testing/examples/webgl_materials_texture_rotation.ts @@ -3,7 +3,10 @@ import * as THREE from 'three'; @@ -9155,7 +9200,7 @@ index 2666d09d..b284d9ff 100644 if (texture.matrixAutoUpdate === true) { texture.offset.set(API.offsetX, API.offsetY); diff --git a/examples-testing/examples/webgl_materials_toon.ts b/examples-testing/examples/webgl_materials_toon.ts -index 03db286a..883244f5 100644 +index 03db286..883244f 100644 --- a/examples-testing/examples/webgl_materials_toon.ts +++ b/examples-testing/examples/webgl_materials_toon.ts @@ -4,20 +4,20 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -9194,7 +9239,7 @@ index 03db286a..883244f5 100644 font: font, diff --git a/examples-testing/examples/webgl_materials_video.ts b/examples-testing/examples/webgl_materials_video.ts -index 4f0d26a1..0bf378c5 100644 +index 4f0d26a..0bf378c 100644 --- a/examples-testing/examples/webgl_materials_video.ts +++ b/examples-testing/examples/webgl_materials_video.ts @@ -5,13 +5,16 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -9311,7 +9356,7 @@ index 4f0d26a1..0bf378c5 100644 } diff --git a/examples-testing/examples/webgl_materials_video_webcam.ts b/examples-testing/examples/webgl_materials_video_webcam.ts -index cf6f8d50..00b48c16 100644 +index cf6f8d5..00b48c1 100644 --- a/examples-testing/examples/webgl_materials_video_webcam.ts +++ b/examples-testing/examples/webgl_materials_video_webcam.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -9333,7 +9378,7 @@ index cf6f8d50..00b48c16 100644 const texture = new THREE.VideoTexture(video); texture.colorSpace = THREE.SRGBColorSpace; diff --git a/examples-testing/examples/webgl_materials_wireframe.ts b/examples-testing/examples/webgl_materials_wireframe.ts -index 8adbd71d..6424e8cb 100644 +index 8adbd71..6424e8c 100644 --- a/examples-testing/examples/webgl_materials_wireframe.ts +++ b/examples-testing/examples/webgl_materials_wireframe.ts @@ -8,7 +8,10 @@ const API = { @@ -9369,7 +9414,7 @@ index 8adbd71d..6424e8cb 100644 const position = geometry.attributes.position; diff --git a/examples-testing/examples/webgl_math_obb.ts b/examples-testing/examples/webgl_math_obb.ts -index 48480d10..97a81a97 100644 +index 48480d1..97a81a9 100644 --- a/examples-testing/examples/webgl_math_obb.ts +++ b/examples-testing/examples/webgl_math_obb.ts @@ -5,9 +5,16 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -9414,7 +9459,7 @@ index 48480d10..97a81a97 100644 } diff --git a/examples-testing/examples/webgl_math_orientation_transform.ts b/examples-testing/examples/webgl_math_orientation_transform.ts -index 99be247d..2ff2bca4 100644 +index 99be247..2ff2bca 100644 --- a/examples-testing/examples/webgl_math_orientation_transform.ts +++ b/examples-testing/examples/webgl_math_orientation_transform.ts @@ -1,6 +1,10 @@ @@ -9430,7 +9475,7 @@ index 99be247d..2ff2bca4 100644 const spherical = new THREE.Spherical(); const rotationMatrix = new THREE.Matrix4(); diff --git a/examples-testing/examples/webgl_mesh_batch.ts b/examples-testing/examples/webgl_mesh_batch.ts -index 458700ac..7c519a2a 100644 +index 5c70b6c..7ddd301 100644 --- a/examples-testing/examples/webgl_mesh_batch.ts +++ b/examples-testing/examples/webgl_mesh_batch.ts @@ -4,12 +4,12 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -9483,20 +9528,16 @@ index 458700ac..7c519a2a 100644 } } } -@@ -213,18 +213,26 @@ function init() { +@@ -213,14 +213,18 @@ function init() { // --function sortFunction(list, camera) { +-function sortFunction(list) { +type BatchedMeshWithOptions = THREE.BatchedMesh & { + _options?: RadixSortOptions<{ start: number; count: number; z: number }>; +}; + -+function sortFunction( -+ this: THREE.BatchedMesh, -+ list: { start: number; count: number; z: number }[], -+ camera: THREE.Camera, -+) { ++function sortFunction(this: THREE.BatchedMesh, list: { start: number; count: number; z: number }[]) { // initialize options - this._options = this._options || { + (this as BatchedMeshWithOptions)._options = (this as BatchedMeshWithOptions)._options || { @@ -9508,13 +9549,8 @@ index 458700ac..7c519a2a 100644 + const options = (this as BatchedMeshWithOptions)._options!; options.reversed = this.material.transparent; - // convert depth to unsigned 32 bit range -- const factor = (2 ** 32 - 1) / camera.far; // UINT32_MAX / max_depth -+ const factor = (2 ** 32 - 1) / (camera as THREE.PerspectiveCamera).far; // UINT32_MAX / max_depth - for (let i = 0, l = list.length; i < l; i++) { - list[i].z *= factor; - } -@@ -260,9 +268,9 @@ function animateMeshes() { + let minZ = Infinity; +@@ -270,9 +274,9 @@ function animateMeshes() { const rotationMatrix = mesh.userData.rotationSpeeds[i]; const id = ids[i]; @@ -9526,7 +9562,7 @@ index 458700ac..7c519a2a 100644 } } else { for (let i = 0; i < loopNum; i++) { -@@ -279,10 +287,10 @@ function animateMeshes() { +@@ -289,10 +293,10 @@ function animateMeshes() { } function render() { @@ -9542,7 +9578,7 @@ index 458700ac..7c519a2a 100644 renderer.render(scene, camera); diff --git a/examples-testing/examples/webgl_mirror.ts b/examples-testing/examples/webgl_mirror.ts -index 8b27363a..7d0f6cfb 100644 +index 8b27363..7d0f6cf 100644 --- a/examples-testing/examples/webgl_mirror.ts +++ b/examples-testing/examples/webgl_mirror.ts @@ -3,18 +3,18 @@ import * as THREE from 'three'; @@ -9570,7 +9606,7 @@ index 8b27363a..7d0f6cfb 100644 // renderer renderer = new THREE.WebGLRenderer({ antialias: true }); diff --git a/examples-testing/examples/webgl_modifier_edgesplit.ts b/examples-testing/examples/webgl_modifier_edgesplit.ts -index 4725eff6..96620f50 100644 +index 4725eff..96620f5 100644 --- a/examples-testing/examples/webgl_modifier_edgesplit.ts +++ b/examples-testing/examples/webgl_modifier_edgesplit.ts @@ -7,9 +7,11 @@ import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js' @@ -9598,7 +9634,7 @@ index 4725eff6..96620f50 100644 modifier = new EdgeSplitModifier(); diff --git a/examples-testing/examples/webgl_modifier_simplifier.ts b/examples-testing/examples/webgl_modifier_simplifier.ts -index e6ea453b..f55a6581 100644 +index e6ea453..f55a658 100644 --- a/examples-testing/examples/webgl_modifier_simplifier.ts +++ b/examples-testing/examples/webgl_modifier_simplifier.ts @@ -4,7 +4,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -9620,7 +9656,7 @@ index e6ea453b..f55a6581 100644 simplified.material.flatShading = true; const count = Math.floor(simplified.geometry.attributes.position.count * 0.875); // number of vertices to remove diff --git a/examples-testing/examples/webgl_modifier_tessellation.ts b/examples-testing/examples/webgl_modifier_tessellation.ts -index 4600fc6c..83af66a7 100644 +index 4600fc6..83af66a 100644 --- a/examples-testing/examples/webgl_modifier_tessellation.ts +++ b/examples-testing/examples/webgl_modifier_tessellation.ts @@ -4,14 +4,14 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -9672,7 +9708,7 @@ index 4600fc6c..83af66a7 100644 controls = new TrackballControls(camera, renderer.domElement); diff --git a/examples-testing/examples/webgl_morphtargets.ts b/examples-testing/examples/webgl_morphtargets.ts -index 40d605f8..5965ef35 100644 +index 40d605f..5965ef3 100644 --- a/examples-testing/examples/webgl_morphtargets.ts +++ b/examples-testing/examples/webgl_morphtargets.ts @@ -3,12 +3,16 @@ import * as THREE from 'three'; @@ -9719,7 +9755,7 @@ index 40d605f8..5965ef35 100644 } diff --git a/examples-testing/examples/webgl_morphtargets_face.ts b/examples-testing/examples/webgl_morphtargets_face.ts -index ceada53d..08e011dc 100644 +index ceada53..08e011d 100644 --- a/examples-testing/examples/webgl_morphtargets_face.ts +++ b/examples-testing/examples/webgl_morphtargets_face.ts @@ -12,7 +12,13 @@ import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js'; @@ -9755,7 +9791,7 @@ index ceada53d..08e011dc 100644 } }); diff --git a/examples-testing/examples/webgl_morphtargets_horse.ts b/examples-testing/examples/webgl_morphtargets_horse.ts -index 2c29e9c0..5e285283 100644 +index 2c29e9c..5e28528 100644 --- a/examples-testing/examples/webgl_morphtargets_horse.ts +++ b/examples-testing/examples/webgl_morphtargets_horse.ts @@ -4,9 +4,9 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -9772,7 +9808,7 @@ index 2c29e9c0..5e285283 100644 const radius = 600; let theta = 0; diff --git a/examples-testing/examples/webgl_morphtargets_sphere.ts b/examples-testing/examples/webgl_morphtargets_sphere.ts -index 2b889911..8ddf9f4a 100644 +index 2b88991..8ddf9f4 100644 --- a/examples-testing/examples/webgl_morphtargets_sphere.ts +++ b/examples-testing/examples/webgl_morphtargets_sphere.ts @@ -4,9 +4,9 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -9818,7 +9854,7 @@ index 2b889911..8ddf9f4a 100644 } } diff --git a/examples-testing/examples/webgl_multiple_elements.ts b/examples-testing/examples/webgl_multiple_elements.ts -index 64f8a9c5..8dafa688 100644 +index 64f8a9c..8dafa68 100644 --- a/examples-testing/examples/webgl_multiple_elements.ts +++ b/examples-testing/examples/webgl_multiple_elements.ts @@ -2,14 +2,14 @@ import * as THREE from 'three'; @@ -9849,7 +9885,7 @@ index 64f8a9c5..8dafa688 100644 for (let i = 0; i < 40; i++) { const scene = new THREE.Scene(); diff --git a/examples-testing/examples/webgl_multiple_scenes_comparison.ts b/examples-testing/examples/webgl_multiple_scenes_comparison.ts -index 41a5130d..66d539a9 100644 +index 41a5130..66d539a 100644 --- a/examples-testing/examples/webgl_multiple_scenes_comparison.ts +++ b/examples-testing/examples/webgl_multiple_scenes_comparison.ts @@ -2,15 +2,15 @@ import * as THREE from 'three'; @@ -9897,7 +9933,7 @@ index 41a5130d..66d539a9 100644 slider.style.left = sliderPos - slider.offsetWidth / 2 + 'px'; } diff --git a/examples-testing/examples/webgl_multiple_views.ts b/examples-testing/examples/webgl_multiple_views.ts -index 29126b01..b418641f 100644 +index 29126b0..b418641 100644 --- a/examples-testing/examples/webgl_multiple_views.ts +++ b/examples-testing/examples/webgl_multiple_views.ts @@ -2,16 +2,27 @@ import * as THREE from 'three'; @@ -9970,7 +10006,7 @@ index 29126b01..b418641f 100644 view.updateCamera(camera, scene, mouseX, mouseY); diff --git a/examples-testing/examples/webgl_panorama_cube.ts b/examples-testing/examples/webgl_panorama_cube.ts -index efd09cfc..e4832209 100644 +index efd09cf..e483220 100644 --- a/examples-testing/examples/webgl_panorama_cube.ts +++ b/examples-testing/examples/webgl_panorama_cube.ts @@ -2,14 +2,14 @@ import * as THREE from 'three'; @@ -10013,7 +10049,7 @@ index efd09cfc..e4832209 100644 canvas.width = tileWidth; context.drawImage(image, tileWidth * i, 0, tileWidth, tileWidth, 0, 0, tileWidth, tileWidth); diff --git a/examples-testing/examples/webgl_panorama_equirectangular.ts b/examples-testing/examples/webgl_panorama_equirectangular.ts -index 55274522..850cc6aa 100644 +index 5527452..850cc6a 100644 --- a/examples-testing/examples/webgl_panorama_equirectangular.ts +++ b/examples-testing/examples/webgl_panorama_equirectangular.ts @@ -1,6 +1,6 @@ @@ -10105,7 +10141,7 @@ index 55274522..850cc6aa 100644 camera.fov = THREE.MathUtils.clamp(fov, 10, 75); diff --git a/examples-testing/examples/webgl_pmrem_test.ts b/examples-testing/examples/webgl_pmrem_test.ts -index b33e4e2f..3f0ef819 100644 +index b33e4e2..3f0ef81 100644 --- a/examples-testing/examples/webgl_pmrem_test.ts +++ b/examples-testing/examples/webgl_pmrem_test.ts @@ -5,7 +5,7 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -10130,7 +10166,7 @@ index b33e4e2f..3f0ef819 100644 }); diff --git a/examples-testing/examples/webgl_points_billboards.ts b/examples-testing/examples/webgl_points_billboards.ts -index 24d4de1a..f1a089bf 100644 +index 24d4de1..f1a089b 100644 --- a/examples-testing/examples/webgl_points_billboards.ts +++ b/examples-testing/examples/webgl_points_billboards.ts @@ -4,7 +4,11 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -10156,7 +10192,7 @@ index 24d4de1a..f1a089bf 100644 mouseX = event.clientX - windowHalfX; diff --git a/examples-testing/examples/webgl_points_sprites.ts b/examples-testing/examples/webgl_points_sprites.ts -index 31b9e2ce..d8f24b29 100644 +index 31b9e2c..d8f24b2 100644 --- a/examples-testing/examples/webgl_points_sprites.ts +++ b/examples-testing/examples/webgl_points_sprites.ts @@ -4,14 +4,18 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -10199,7 +10235,7 @@ index 31b9e2ce..d8f24b29 100644 mouseX = event.clientX - windowHalfX; diff --git a/examples-testing/examples/webgl_points_waves.ts b/examples-testing/examples/webgl_points_waves.ts -index 91986e9e..cb8e7687 100644 +index 91986e9..cb8e768 100644 --- a/examples-testing/examples/webgl_points_waves.ts +++ b/examples-testing/examples/webgl_points_waves.ts @@ -6,10 +6,10 @@ const SEPARATION = 100, @@ -10237,7 +10273,7 @@ index 91986e9e..cb8e7687 100644 mouseX = event.clientX - windowHalfX; diff --git a/examples-testing/examples/webgl_portal.ts b/examples-testing/examples/webgl_portal.ts -index 4bc59593..e61736c3 100644 +index 4bc5959..e61736c 100644 --- a/examples-testing/examples/webgl_portal.ts +++ b/examples-testing/examples/webgl_portal.ts @@ -3,26 +3,26 @@ import * as THREE from 'three'; @@ -10294,7 +10330,7 @@ index 4bc59593..e61736c3 100644 thisPortalMesh.worldToLocal(reflectedPosition.copy(camera.position)); reflectedPosition.x *= -1.0; diff --git a/examples-testing/examples/webgl_postprocessing.ts b/examples-testing/examples/webgl_postprocessing.ts -index ecc9b28e..2e894236 100644 +index ecc9b28..2e89423 100644 --- a/examples-testing/examples/webgl_postprocessing.ts +++ b/examples-testing/examples/webgl_postprocessing.ts @@ -8,8 +8,8 @@ import { RGBShiftShader } from 'three/addons/shaders/RGBShiftShader.js'; @@ -10309,7 +10345,7 @@ index ecc9b28e..2e894236 100644 init(); diff --git a/examples-testing/examples/webgl_postprocessing_advanced.ts b/examples-testing/examples/webgl_postprocessing_advanced.ts -index adaef620..2b43e46a 100644 +index adaef62..2b43e46 100644 --- a/examples-testing/examples/webgl_postprocessing_advanced.ts +++ b/examples-testing/examples/webgl_postprocessing_advanced.ts @@ -21,11 +21,21 @@ import { GammaCorrectionShader } from 'three/addons/shaders/GammaCorrectionShade @@ -10375,7 +10411,7 @@ index adaef620..2b43e46a 100644 diffuseMap.colorSpace = THREE.SRGBColorSpace; diff --git a/examples-testing/examples/webgl_postprocessing_afterimage.ts b/examples-testing/examples/webgl_postprocessing_afterimage.ts -index 508f90b8..53e74b77 100644 +index 508f90b..53e74b7 100644 --- a/examples-testing/examples/webgl_postprocessing_afterimage.ts +++ b/examples-testing/examples/webgl_postprocessing_afterimage.ts @@ -7,10 +7,10 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -10393,7 +10429,7 @@ index 508f90b8..53e74b77 100644 const params = { enable: true, diff --git a/examples-testing/examples/webgl_postprocessing_backgrounds.ts b/examples-testing/examples/webgl_postprocessing_backgrounds.ts -index 57a6a2db..f6d4c716 100644 +index 57a6a2d..f6d4c71 100644 --- a/examples-testing/examples/webgl_postprocessing_backgrounds.ts +++ b/examples-testing/examples/webgl_postprocessing_backgrounds.ts @@ -11,10 +11,10 @@ import { ClearPass } from 'three/addons/postprocessing/ClearPass.js'; @@ -10430,7 +10466,7 @@ index 57a6a2db..f6d4c716 100644 prefix + 'px' + postfix, prefix + 'nx' + postfix, diff --git a/examples-testing/examples/webgl_postprocessing_fxaa.ts b/examples-testing/examples/webgl_postprocessing_fxaa.ts -index 55745f88..78bb4bda 100644 +index 55745f8..78bb4bd 100644 --- a/examples-testing/examples/webgl_postprocessing_fxaa.ts +++ b/examples-testing/examples/webgl_postprocessing_fxaa.ts @@ -6,14 +6,19 @@ import { ShaderPass } from 'three/addons/postprocessing/ShaderPass.js'; @@ -10457,7 +10493,7 @@ index 55745f88..78bb4bda 100644 camera = new THREE.PerspectiveCamera(45, container.offsetWidth / container.offsetHeight, 1, 2000); camera.position.z = 500; diff --git a/examples-testing/examples/webgl_postprocessing_glitch.ts b/examples-testing/examples/webgl_postprocessing_glitch.ts -index f846c0ce..5eaa953f 100644 +index f846c0c..5eaa953 100644 --- a/examples-testing/examples/webgl_postprocessing_glitch.ts +++ b/examples-testing/examples/webgl_postprocessing_glitch.ts @@ -5,21 +5,21 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -10498,7 +10534,7 @@ index f846c0ce..5eaa953f 100644 updateOptions(); diff --git a/examples-testing/examples/webgl_postprocessing_godrays.ts b/examples-testing/examples/webgl_postprocessing_godrays.ts -index fb760441..73c8beb2 100644 +index fb76044..73c8beb 100644 --- a/examples-testing/examples/webgl_postprocessing_godrays.ts +++ b/examples-testing/examples/webgl_postprocessing_godrays.ts @@ -11,16 +11,37 @@ import { @@ -10720,7 +10756,7 @@ index fb760441..73c8beb2 100644 renderer.setRenderTarget(null); renderer.clear(); diff --git a/examples-testing/examples/webgl_postprocessing_gtao.ts b/examples-testing/examples/webgl_postprocessing_gtao.ts -index d8e7f7a9..062d0755 100644 +index d8e7f7a..062d075 100644 --- a/examples-testing/examples/webgl_postprocessing_gtao.ts +++ b/examples-testing/examples/webgl_postprocessing_gtao.ts @@ -10,7 +10,14 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -10740,7 +10776,7 @@ index d8e7f7a9..062d0755 100644 init(); diff --git a/examples-testing/examples/webgl_postprocessing_masking.ts b/examples-testing/examples/webgl_postprocessing_masking.ts -index f6e7310b..598a33dc 100644 +index f6e7310..598a33d 100644 --- a/examples-testing/examples/webgl_postprocessing_masking.ts +++ b/examples-testing/examples/webgl_postprocessing_masking.ts @@ -6,8 +6,8 @@ import { ClearPass } from 'three/addons/postprocessing/ClearPass.js'; @@ -10755,7 +10791,7 @@ index f6e7310b..598a33dc 100644 init(); diff --git a/examples-testing/examples/webgl_postprocessing_material_ao.ts b/examples-testing/examples/webgl_postprocessing_material_ao.ts -index 2f17a530..c0374ac4 100644 +index 2f17a53..c0374ac 100644 --- a/examples-testing/examples/webgl_postprocessing_material_ao.ts +++ b/examples-testing/examples/webgl_postprocessing_material_ao.ts @@ -10,7 +10,12 @@ import { GTAOPass } from 'three/addons/postprocessing/GTAOPass.js'; @@ -10782,7 +10818,7 @@ index 2f17a530..c0374ac4 100644 gui.add(sceneParameters, 'shadow').onChange(value => { renderer.shadowMap.enabled = value; diff --git a/examples-testing/examples/webgl_postprocessing_outline.ts b/examples-testing/examples/webgl_postprocessing_outline.ts -index 35657546..fa861b5b 100644 +index 3565754..fa861b5 100644 --- a/examples-testing/examples/webgl_postprocessing_outline.ts +++ b/examples-testing/examples/webgl_postprocessing_outline.ts @@ -12,11 +12,11 @@ import { OutlinePass } from 'three/addons/postprocessing/OutlinePass.js'; @@ -10838,7 +10874,7 @@ index 35657546..fa861b5b 100644 selectedObjects.push(object); } diff --git a/examples-testing/examples/webgl_postprocessing_pixel.ts b/examples-testing/examples/webgl_postprocessing_pixel.ts -index 15b54d07..fdea0e6e 100644 +index 15b54d0..fdea0e6 100644 --- a/examples-testing/examples/webgl_postprocessing_pixel.ts +++ b/examples-testing/examples/webgl_postprocessing_pixel.ts @@ -6,8 +6,14 @@ import { RenderPixelatedPass } from 'three/addons/postprocessing/RenderPixelated @@ -10929,7 +10965,7 @@ index 15b54d07..fdea0e6e 100644 const worldScreenWidth = (camera.right - camera.left) / camera.zoom; const worldScreenHeight = (camera.top - camera.bottom) / camera.zoom; diff --git a/examples-testing/examples/webgl_postprocessing_procedural.ts b/examples-testing/examples/webgl_postprocessing_procedural.ts -index 86982427..4533b72b 100644 +index 8698242..4533b72 100644 --- a/examples-testing/examples/webgl_postprocessing_procedural.ts +++ b/examples-testing/examples/webgl_postprocessing_procedural.ts @@ -3,16 +3,20 @@ import * as THREE from 'three'; @@ -10981,7 +11017,7 @@ index 86982427..4533b72b 100644 postMaterial = noiseRandom3DMaterial; const postPlane = new THREE.PlaneGeometry(2, 2); diff --git a/examples-testing/examples/webgl_postprocessing_rgb_halftone.ts b/examples-testing/examples/webgl_postprocessing_rgb_halftone.ts -index fa46d4c8..2de78ec5 100644 +index fa46d4c..2de78ec 100644 --- a/examples-testing/examples/webgl_postprocessing_rgb_halftone.ts +++ b/examples-testing/examples/webgl_postprocessing_rgb_halftone.ts @@ -8,11 +8,11 @@ import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js'; @@ -10999,7 +11035,7 @@ index fa46d4c8..2de78ec5 100644 init(); diff --git a/examples-testing/examples/webgl_postprocessing_sao.ts b/examples-testing/examples/webgl_postprocessing_sao.ts -index bf40d026..deb21b3f 100644 +index bf40d02..deb21b3 100644 --- a/examples-testing/examples/webgl_postprocessing_sao.ts +++ b/examples-testing/examples/webgl_postprocessing_sao.ts @@ -8,10 +8,10 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -11018,7 +11054,7 @@ index bf40d026..deb21b3f 100644 init(); diff --git a/examples-testing/examples/webgl_postprocessing_smaa.ts b/examples-testing/examples/webgl_postprocessing_smaa.ts -index 6f71f647..44b765c1 100644 +index 6f71f64..44b765c 100644 --- a/examples-testing/examples/webgl_postprocessing_smaa.ts +++ b/examples-testing/examples/webgl_postprocessing_smaa.ts @@ -8,7 +8,12 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -11045,7 +11081,7 @@ index 6f71f647..44b765c1 100644 renderer = new THREE.WebGLRenderer(); renderer.setPixelRatio(window.devicePixelRatio); diff --git a/examples-testing/examples/webgl_postprocessing_sobel.ts b/examples-testing/examples/webgl_postprocessing_sobel.ts -index 55d88dc0..1512ed8b 100644 +index 55d88dc..1512ed8 100644 --- a/examples-testing/examples/webgl_postprocessing_sobel.ts +++ b/examples-testing/examples/webgl_postprocessing_sobel.ts @@ -11,9 +11,9 @@ import { ShaderPass } from 'three/addons/postprocessing/ShaderPass.js'; @@ -11061,7 +11097,7 @@ index 55d88dc0..1512ed8b 100644 const params = { enable: true, diff --git a/examples-testing/examples/webgl_postprocessing_ssaa.ts b/examples-testing/examples/webgl_postprocessing_ssaa.ts -index 429e02de..438d81e7 100644 +index 429e02d..438d81e 100644 --- a/examples-testing/examples/webgl_postprocessing_ssaa.ts +++ b/examples-testing/examples/webgl_postprocessing_ssaa.ts @@ -7,10 +7,10 @@ import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js'; @@ -11098,7 +11134,7 @@ index 429e02de..438d81e7 100644 composer.render(); diff --git a/examples-testing/examples/webgl_postprocessing_ssao.ts b/examples-testing/examples/webgl_postprocessing_ssao.ts -index e55ab044..811417b6 100644 +index e55ab04..811417b 100644 --- a/examples-testing/examples/webgl_postprocessing_ssao.ts +++ b/examples-testing/examples/webgl_postprocessing_ssao.ts @@ -8,10 +8,10 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -11117,7 +11153,7 @@ index e55ab044..811417b6 100644 init(); diff --git a/examples-testing/examples/webgl_postprocessing_ssr.ts b/examples-testing/examples/webgl_postprocessing_ssr.ts -index 307cfd1d..6b864359 100644 +index 307cfd1..6b86435 100644 --- a/examples-testing/examples/webgl_postprocessing_ssr.ts +++ b/examples-testing/examples/webgl_postprocessing_ssr.ts @@ -18,17 +18,17 @@ const params = { @@ -11159,7 +11195,7 @@ index 307cfd1d..6b864359 100644 geometry = new THREE.BoxGeometry(0.05, 0.05, 0.05); material = new THREE.MeshStandardMaterial({ color: 'green' }); diff --git a/examples-testing/examples/webgl_postprocessing_taa.ts b/examples-testing/examples/webgl_postprocessing_taa.ts -index 11a98674..ddb2bcc6 100644 +index 11a9867..ddb2bcc 100644 --- a/examples-testing/examples/webgl_postprocessing_taa.ts +++ b/examples-testing/examples/webgl_postprocessing_taa.ts @@ -8,8 +8,13 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -11188,7 +11224,7 @@ index 11a98674..ddb2bcc6 100644 renderer = new THREE.WebGLRenderer(); renderer.setPixelRatio(window.devicePixelRatio); diff --git a/examples-testing/examples/webgl_postprocessing_transition.ts b/examples-testing/examples/webgl_postprocessing_transition.ts -index 00b81394..9f8ce1fc 100644 +index 00b8139..9f8ce1f 100644 --- a/examples-testing/examples/webgl_postprocessing_transition.ts +++ b/examples-testing/examples/webgl_postprocessing_transition.ts @@ -7,10 +7,10 @@ import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js'; @@ -11310,7 +11346,7 @@ index 00b81394..9f8ce1fc 100644 const dummy = new THREE.Object3D(); diff --git a/examples-testing/examples/webgl_postprocessing_unreal_bloom.ts b/examples-testing/examples/webgl_postprocessing_unreal_bloom.ts -index 53ec2fe2..b407c23e 100644 +index 53ec2fe..b407c23 100644 --- a/examples-testing/examples/webgl_postprocessing_unreal_bloom.ts +++ b/examples-testing/examples/webgl_postprocessing_unreal_bloom.ts @@ -10,8 +10,8 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -11334,7 +11370,7 @@ index 53ec2fe2..b407c23e 100644 clock = new THREE.Clock(); diff --git a/examples-testing/examples/webgl_postprocessing_unreal_bloom_selective.ts b/examples-testing/examples/webgl_postprocessing_unreal_bloom_selective.ts -index d633806e..a25f53b5 100644 +index d633806..a25f53b 100644 --- a/examples-testing/examples/webgl_postprocessing_unreal_bloom_selective.ts +++ b/examples-testing/examples/webgl_postprocessing_unreal_bloom_selective.ts @@ -22,7 +22,7 @@ const params = { @@ -11403,7 +11439,7 @@ index d633806e..a25f53b5 100644 } } diff --git a/examples-testing/examples/webgl_raycaster_sprite.ts b/examples-testing/examples/webgl_raycaster_sprite.ts -index f35d5de1..73dd9349 100644 +index f35d5de..73dd934 100644 --- a/examples-testing/examples/webgl_raycaster_sprite.ts +++ b/examples-testing/examples/webgl_raycaster_sprite.ts @@ -2,10 +2,10 @@ import * as THREE from 'three'; @@ -11439,7 +11475,7 @@ index f35d5de1..73dd9349 100644 } } diff --git a/examples-testing/examples/webgl_raycaster_texture.ts b/examples-testing/examples/webgl_raycaster_texture.ts -index 72c7054d..0e584dc0 100644 +index 72c7054..0e584dc 100644 --- a/examples-testing/examples/webgl_raycaster_texture.ts +++ b/examples-testing/examples/webgl_raycaster_texture.ts @@ -8,7 +8,15 @@ const WRAPPING = { @@ -11652,7 +11688,7 @@ index 72c7054d..0e584dc0 100644 circleTexture.needsUpdate = true; } diff --git a/examples-testing/examples/webgl_raymarching_reflect.ts b/examples-testing/examples/webgl_raymarching_reflect.ts -index e5448ebb..58fe2f1c 100644 +index e5448eb..58fe2f1 100644 --- a/examples-testing/examples/webgl_raymarching_reflect.ts +++ b/examples-testing/examples/webgl_raymarching_reflect.ts @@ -5,11 +5,11 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -11683,7 +11719,7 @@ index e5448ebb..58fe2f1c 100644 mesh = new THREE.Mesh(geometry, material); mesh.frustumCulled = false; diff --git a/examples-testing/examples/webgl_read_float_buffer.ts b/examples-testing/examples/webgl_read_float_buffer.ts -index 68452a12..51fbce5e 100644 +index 68452a1..51fbce5 100644 --- a/examples-testing/examples/webgl_read_float_buffer.ts +++ b/examples-testing/examples/webgl_read_float_buffer.ts @@ -2,9 +2,14 @@ import * as THREE from 'three'; @@ -11757,7 +11793,7 @@ index 68452a12..51fbce5e 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_refraction.ts b/examples-testing/examples/webgl_refraction.ts -index 572575af..169120a1 100644 +index 572575a..169120a 100644 --- a/examples-testing/examples/webgl_refraction.ts +++ b/examples-testing/examples/webgl_refraction.ts @@ -4,14 +4,14 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -11779,7 +11815,7 @@ index 572575af..169120a1 100644 clock = new THREE.Clock(); diff --git a/examples-testing/examples/webgl_rtt.ts b/examples-testing/examples/webgl_rtt.ts -index 9f16fdab..9c70a341 100644 +index 9f16fda..9c70a34 100644 --- a/examples-testing/examples/webgl_rtt.ts +++ b/examples-testing/examples/webgl_rtt.ts @@ -2,9 +2,16 @@ import * as THREE from 'three'; @@ -11847,7 +11883,7 @@ index 9f16fdab..9c70a341 100644 mouseY = event.clientY - windowHalfY; } diff --git a/examples-testing/examples/webgl_shader.ts b/examples-testing/examples/webgl_shader.ts -index 47a6c7ec..7ac1257b 100644 +index 47a6c7e..7ac1257 100644 --- a/examples-testing/examples/webgl_shader.ts +++ b/examples-testing/examples/webgl_shader.ts @@ -1,13 +1,13 @@ @@ -11879,7 +11915,7 @@ index 47a6c7ec..7ac1257b 100644 const mesh = new THREE.Mesh(geometry, material); diff --git a/examples-testing/examples/webgl_shader_lava.ts b/examples-testing/examples/webgl_shader_lava.ts -index 973a580e..a5d1f1af 100644 +index 973a580..a5d1f1a 100644 --- a/examples-testing/examples/webgl_shader_lava.ts +++ b/examples-testing/examples/webgl_shader_lava.ts @@ -5,14 +5,22 @@ import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; @@ -11921,7 +11957,7 @@ index 973a580e..a5d1f1af 100644 mesh = new THREE.Mesh(new THREE.TorusGeometry(size, 0.3, 30, 30), material); diff --git a/examples-testing/examples/webgl_shaders_ocean.ts b/examples-testing/examples/webgl_shaders_ocean.ts -index 8b0f9a73..afbdb1da 100644 +index 8b0f9a7..afbdb1d 100644 --- a/examples-testing/examples/webgl_shaders_ocean.ts +++ b/examples-testing/examples/webgl_shaders_ocean.ts @@ -7,14 +7,14 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -11953,7 +11989,7 @@ index 8b0f9a73..afbdb1da 100644 function updateSun() { const phi = THREE.MathUtils.degToRad(90 - parameters.elevation); diff --git a/examples-testing/examples/webgl_shaders_sky.ts b/examples-testing/examples/webgl_shaders_sky.ts -index 18020f78..3b61996d 100644 +index 18020f7..3b61996 100644 --- a/examples-testing/examples/webgl_shaders_sky.ts +++ b/examples-testing/examples/webgl_shaders_sky.ts @@ -4,9 +4,9 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -11969,7 +12005,7 @@ index 18020f78..3b61996d 100644 init(); render(); diff --git a/examples-testing/examples/webgl_shadow_contact.ts b/examples-testing/examples/webgl_shadow_contact.ts -index 9eda35b8..0c262569 100644 +index 9eda35b..0c26256 100644 --- a/examples-testing/examples/webgl_shadow_contact.ts +++ b/examples-testing/examples/webgl_shadow_contact.ts @@ -5,9 +5,9 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -12022,7 +12058,7 @@ index 9eda35b8..0c262569 100644 // blur horizontally and draw in the renderTargetBlur diff --git a/examples-testing/examples/webgl_shadowmap.ts b/examples-testing/examples/webgl_shadowmap.ts -index 6d0ac3ad..d03a38a3 100644 +index 6d0ac3a..d03a38a 100644 --- a/examples-testing/examples/webgl_shadowmap.ts +++ b/examples-testing/examples/webgl_shadowmap.ts @@ -15,18 +15,18 @@ let SCREEN_WIDTH = window.innerWidth; @@ -12130,7 +12166,7 @@ index 6d0ac3ad..d03a38a3 100644 if (morph.position.x > 2000) { morph.position.x = -1000 - Math.random() * 500; diff --git a/examples-testing/examples/webgl_shadowmap_csm.ts b/examples-testing/examples/webgl_shadowmap_csm.ts -index c89bc02d..4da2da35 100644 +index c89bc02..4da2da3 100644 --- a/examples-testing/examples/webgl_shadowmap_csm.ts +++ b/examples-testing/examples/webgl_shadowmap_csm.ts @@ -2,12 +2,32 @@ import * as THREE from 'three'; @@ -12182,7 +12218,7 @@ index c89bc02d..4da2da35 100644 }); }); diff --git a/examples-testing/examples/webgl_shadowmap_pcss.ts b/examples-testing/examples/webgl_shadowmap_pcss.ts -index a47a011f..7e1f5fb3 100644 +index a47a011..7e1f5fb 100644 --- a/examples-testing/examples/webgl_shadowmap_pcss.ts +++ b/examples-testing/examples/webgl_shadowmap_pcss.ts @@ -4,10 +4,10 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -12215,7 +12251,7 @@ index a47a011f..7e1f5fb3 100644 THREE.ShaderChunk.shadowmap_pars_fragment = shader; diff --git a/examples-testing/examples/webgl_shadowmap_performance.ts b/examples-testing/examples/webgl_shadowmap_performance.ts -index 0e45b63f..1b61f3db 100644 +index 0e45b63..1b61f3d 100644 --- a/examples-testing/examples/webgl_shadowmap_performance.ts +++ b/examples-testing/examples/webgl_shadowmap_performance.ts @@ -16,16 +16,16 @@ const FLOOR = -250; @@ -12287,7 +12323,7 @@ index 0e45b63f..1b61f3db 100644 if (morph.position.x > 2000) { morph.position.x = -1000 - Math.random() * 500; diff --git a/examples-testing/examples/webgl_shadowmap_pointlight.ts b/examples-testing/examples/webgl_shadowmap_pointlight.ts -index c68d6974..996aedd4 100644 +index c68d697..996aedd 100644 --- a/examples-testing/examples/webgl_shadowmap_pointlight.ts +++ b/examples-testing/examples/webgl_shadowmap_pointlight.ts @@ -4,8 +4,8 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -12332,7 +12368,7 @@ index c68d6974..996aedd4 100644 context.fillRect(0, 1, 2, 1); diff --git a/examples-testing/examples/webgl_shadowmap_progressive.ts b/examples-testing/examples/webgl_shadowmap_progressive.ts -index 86ec6817..dc329b9a 100644 +index 86ec681..dc329b9 100644 --- a/examples-testing/examples/webgl_shadowmap_progressive.ts +++ b/examples-testing/examples/webgl_shadowmap_progressive.ts @@ -9,17 +9,17 @@ import { ProgressiveLightMap } from 'three/addons/misc/ProgressiveLightMap.js'; @@ -12392,7 +12428,7 @@ index 86ec6817..dc329b9a 100644 } else { // Uniform Hemispherical Surface Distribution for Ambient Occlusion diff --git a/examples-testing/examples/webgl_shadowmap_viewer.ts b/examples-testing/examples/webgl_shadowmap_viewer.ts -index f974ef03..755278b8 100644 +index f974ef0..755278b 100644 --- a/examples-testing/examples/webgl_shadowmap_viewer.ts +++ b/examples-testing/examples/webgl_shadowmap_viewer.ts @@ -5,10 +5,14 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -12424,7 +12460,7 @@ index f974ef03..755278b8 100644 color: 0xff0000, shininess: 150, diff --git a/examples-testing/examples/webgl_shadowmap_vsm.ts b/examples-testing/examples/webgl_shadowmap_vsm.ts -index 4867c731..2e2ccaa9 100644 +index 4867c73..2e2ccaa 100644 --- a/examples-testing/examples/webgl_shadowmap_vsm.ts +++ b/examples-testing/examples/webgl_shadowmap_vsm.ts @@ -5,9 +5,13 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -12463,7 +12499,7 @@ index 4867c731..2e2ccaa9 100644 renderer.render(scene, camera); diff --git a/examples-testing/examples/webgl_shadowmesh.ts b/examples-testing/examples/webgl_shadowmesh.ts -index 412fc028..6043a477 100644 +index 412fc02..6043a47 100644 --- a/examples-testing/examples/webgl_shadowmesh.ts +++ b/examples-testing/examples/webgl_shadowmesh.ts @@ -12,18 +12,18 @@ const renderer = new THREE.WebGLRenderer({ stencil: true }); @@ -12541,7 +12577,7 @@ index 412fc028..6043a477 100644 } } diff --git a/examples-testing/examples/webgl_simple_gi.ts b/examples-testing/examples/webgl_simple_gi.ts -index 4ab6dc89..adea084a 100644 +index 4ab6dc8..adea084 100644 --- a/examples-testing/examples/webgl_simple_gi.ts +++ b/examples-testing/examples/webgl_simple_gi.ts @@ -3,7 +3,7 @@ import * as THREE from 'three'; @@ -12728,7 +12764,7 @@ index 4ab6dc89..adea084a 100644 init(); diff --git a/examples-testing/examples/webgl_sprites.ts b/examples-testing/examples/webgl_sprites.ts -index 2e418934..c9f61690 100644 +index 2e41893..c9f6169 100644 --- a/examples-testing/examples/webgl_sprites.ts +++ b/examples-testing/examples/webgl_sprites.ts @@ -1,13 +1,17 @@ @@ -12792,7 +12828,7 @@ index 2e418934..c9f61690 100644 const scale = Math.sin(time + sprite.position.x * 0.01) * 0.3 + 1.0; diff --git a/examples-testing/examples/webgl_test_memory.ts b/examples-testing/examples/webgl_test_memory.ts -index f5d0e112..128862a2 100644 +index f5d0e11..128862a 100644 --- a/examples-testing/examples/webgl_test_memory.ts +++ b/examples-testing/examples/webgl_test_memory.ts @@ -1,6 +1,6 @@ @@ -12813,7 +12849,7 @@ index f5d0e112..128862a2 100644 'rgb(' + Math.floor(Math.random() * 256) + diff --git a/examples-testing/examples/webgl_test_memory2.ts b/examples-testing/examples/webgl_test_memory2.ts -index 366a2791..74077e99 100644 +index 366a279..74077e9 100644 --- a/examples-testing/examples/webgl_test_memory2.ts +++ b/examples-testing/examples/webgl_test_memory2.ts @@ -2,15 +2,15 @@ import * as THREE from 'three'; @@ -12864,7 +12900,7 @@ index 366a2791..74077e99 100644 + console.log('after', renderer.info.programs!.length); } diff --git a/examples-testing/examples/webgl_test_wide_gamut.ts b/examples-testing/examples/webgl_test_wide_gamut.ts -index 57c38ba0..1da45af5 100644 +index 57c38ba..1da45af 100644 --- a/examples-testing/examples/webgl_test_wide_gamut.ts +++ b/examples-testing/examples/webgl_test_wide_gamut.ts @@ -2,8 +2,8 @@ import * as THREE from 'three'; @@ -12936,7 +12972,7 @@ index 57c38ba0..1da45af5 100644 // and does so without distortion. Akin to CSS object-fit: contain. // Source: https://github.com/mrdoob/three.js/pull/17199 diff --git a/examples-testing/examples/webgl_tonemapping.ts b/examples-testing/examples/webgl_tonemapping.ts -index 08115cf3..f68d7a8d 100644 +index 08115cf..f68d7a8 100644 --- a/examples-testing/examples/webgl_tonemapping.ts +++ b/examples-testing/examples/webgl_tonemapping.ts @@ -1,22 +1,35 @@ @@ -13009,7 +13045,7 @@ index 08115cf3..f68d7a8d 100644 guiExposure.destroy(); guiExposure = null; diff --git a/examples-testing/examples/webgl_video_kinect.ts b/examples-testing/examples/webgl_video_kinect.ts -index 4f0e2f11..7b4a3fab 100644 +index 4f0e2f1..7b4a3fa 100644 --- a/examples-testing/examples/webgl_video_kinect.ts +++ b/examples-testing/examples/webgl_video_kinect.ts @@ -2,9 +2,9 @@ import * as THREE from 'three'; @@ -13055,7 +13091,7 @@ index 4f0e2f11..7b4a3fab 100644 mouse.y = (event.clientY - window.innerHeight / 2) * 8; } diff --git a/examples-testing/examples/webgl_video_panorama_equirectangular.ts b/examples-testing/examples/webgl_video_panorama_equirectangular.ts -index 866eca16..07301138 100644 +index 866eca1..0730113 100644 --- a/examples-testing/examples/webgl_video_panorama_equirectangular.ts +++ b/examples-testing/examples/webgl_video_panorama_equirectangular.ts @@ -1,6 +1,6 @@ @@ -13103,7 +13139,7 @@ index 866eca16..07301138 100644 lon = (onPointerDownPointerX - event.clientX) * 0.1 + onPointerDownLon; lat = (onPointerDownPointerY - event.clientY) * 0.1 + onPointerDownLat; diff --git a/examples-testing/examples/webgl_water.ts b/examples-testing/examples/webgl_water.ts -index 496a5f85..379619a1 100644 +index 496a5f8..379619a 100644 --- a/examples-testing/examples/webgl_water.ts +++ b/examples-testing/examples/webgl_water.ts @@ -4,9 +4,13 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -13123,7 +13159,7 @@ index 496a5f85..379619a1 100644 const params = { color: '#ffffff', diff --git a/examples-testing/examples/webgl_water_flowmap.ts b/examples-testing/examples/webgl_water_flowmap.ts -index d0255e43..c924d666 100644 +index d0255e4..c924d66 100644 --- a/examples-testing/examples/webgl_water_flowmap.ts +++ b/examples-testing/examples/webgl_water_flowmap.ts @@ -4,7 +4,7 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -13136,7 +13172,7 @@ index d0255e43..c924d666 100644 init(); diff --git a/examples-testing/examples/webgpu_backdrop_area.ts b/examples-testing/examples/webgpu_backdrop_area.ts -index 0123e703..d4a9e6d0 100644 +index 0123e70..d4a9e6d 100644 --- a/examples-testing/examples/webgpu_backdrop_area.ts +++ b/examples-testing/examples/webgpu_backdrop_area.ts @@ -24,8 +24,8 @@ import WebGPURenderer from 'three/addons/renderers/webgpu/WebGPURenderer.js'; @@ -13167,7 +13203,7 @@ index 0123e703..d4a9e6d0 100644 }); } diff --git a/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts b/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts -index 2a3a26f5..a394dceb 100644 +index 2a3a26f..a394dce 100644 --- a/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts +++ b/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts @@ -1,6 +1,6 @@ @@ -13344,7 +13380,7 @@ index 2a3a26f5..a394dceb 100644 if (amount === 0) return; const dir = amount / Math.abs(amount); diff --git a/examples-testing/examples/webgpu_clearcoat.ts b/examples-testing/examples/webgpu_clearcoat.ts -index 37050450..7fc18065 100644 +index 3705045..7fc1806 100644 --- a/examples-testing/examples/webgpu_clearcoat.ts +++ b/examples-testing/examples/webgpu_clearcoat.ts @@ -10,12 +10,12 @@ import { HDRCubeTextureLoader } from 'three/addons/loaders/HDRCubeTextureLoader. @@ -13365,7 +13401,7 @@ index 37050450..7fc18065 100644 init(); diff --git a/examples-testing/examples/webgpu_clipping.ts b/examples-testing/examples/webgpu_clipping.ts -index c89b95fe..60e05710 100644 +index c89b95f..60e0571 100644 --- a/examples-testing/examples/webgpu_clipping.ts +++ b/examples-testing/examples/webgpu_clipping.ts @@ -12,7 +12,12 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -13410,7 +13446,7 @@ index c89b95fe..60e05710 100644 object.position.y = 0.8; diff --git a/examples-testing/examples/webgpu_custom_fog_background.ts b/examples-testing/examples/webgpu_custom_fog_background.ts -index 9f06a5a9..5b5f93ce 100644 +index 9f06a5a..5b5f93c 100644 --- a/examples-testing/examples/webgpu_custom_fog_background.ts +++ b/examples-testing/examples/webgpu_custom_fog_background.ts @@ -10,8 +10,8 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -13425,7 +13461,7 @@ index 9f06a5a9..5b5f93ce 100644 init(); diff --git a/examples-testing/examples/webgpu_instancing_morph.ts b/examples-testing/examples/webgpu_instancing_morph.ts -index 0d7e9fe6..5067e622 100644 +index 0d7e9fe..5067e62 100644 --- a/examples-testing/examples/webgpu_instancing_morph.ts +++ b/examples-testing/examples/webgpu_instancing_morph.ts @@ -7,7 +7,13 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -13462,7 +13498,7 @@ index 0d7e9fe6..5067e622 100644 renderer.render(scene, camera); diff --git a/examples-testing/examples/webgpu_lights_ies_spotlight.ts b/examples-testing/examples/webgpu_lights_ies_spotlight.ts -index 1430a290..58b951d4 100644 +index 1430a29..58b951d 100644 --- a/examples-testing/examples/webgpu_lights_ies_spotlight.ts +++ b/examples-testing/examples/webgpu_lights_ies_spotlight.ts @@ -7,12 +7,12 @@ import WebGPURenderer from 'three/addons/renderers/webgpu/WebGPURenderer.js'; @@ -13492,7 +13528,7 @@ index 1430a290..58b951d4 100644 for (let i = 0; i < lights.length; i++) { diff --git a/examples-testing/examples/webgpu_loader_gltf.ts b/examples-testing/examples/webgpu_loader_gltf.ts -index d0fd3109..7292c9ed 100644 +index d0fd310..7292c9e 100644 --- a/examples-testing/examples/webgpu_loader_gltf.ts +++ b/examples-testing/examples/webgpu_loader_gltf.ts @@ -10,7 +10,7 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -13505,7 +13541,7 @@ index d0fd3109..7292c9ed 100644 init(); render(); diff --git a/examples-testing/examples/webgpu_loader_gltf_anisotropy.ts b/examples-testing/examples/webgpu_loader_gltf_anisotropy.ts -index b5e71a42..0e819254 100644 +index b5e71a4..0e81925 100644 --- a/examples-testing/examples/webgpu_loader_gltf_anisotropy.ts +++ b/examples-testing/examples/webgpu_loader_gltf_anisotropy.ts @@ -6,7 +6,7 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -13518,7 +13554,7 @@ index b5e71a42..0e819254 100644 init(); diff --git a/examples-testing/examples/webgpu_loader_gltf_compressed.ts b/examples-testing/examples/webgpu_loader_gltf_compressed.ts -index 74e7d69d..bacdc109 100644 +index 74e7d69..bacdc10 100644 --- a/examples-testing/examples/webgpu_loader_gltf_compressed.ts +++ b/examples-testing/examples/webgpu_loader_gltf_compressed.ts @@ -8,7 +8,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -13530,8 +13566,21 @@ index 74e7d69d..bacdc109 100644 init(); +diff --git a/examples-testing/examples/webgpu_loader_gltf_dispersion.ts b/examples-testing/examples/webgpu_loader_gltf_dispersion.ts +index 2985687..731ee60 100644 +--- a/examples-testing/examples/webgpu_loader_gltf_dispersion.ts ++++ b/examples-testing/examples/webgpu_loader_gltf_dispersion.ts +@@ -6,7 +6,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; + import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; + import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; + +-let camera, scene, renderer; ++let camera: THREE.PerspectiveCamera, scene: THREE.Scene, renderer: WebGPURenderer; + + init().then(render); + diff --git a/examples-testing/examples/webgpu_loader_gltf_iridescence.ts b/examples-testing/examples/webgpu_loader_gltf_iridescence.ts -index b36a9fee..d4c841b8 100644 +index b36a9fe..d4c841b 100644 --- a/examples-testing/examples/webgpu_loader_gltf_iridescence.ts +++ b/examples-testing/examples/webgpu_loader_gltf_iridescence.ts @@ -9,7 +9,7 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -13544,7 +13593,7 @@ index b36a9fee..d4c841b8 100644 init().catch(function (err) { console.error(err); diff --git a/examples-testing/examples/webgpu_loader_gltf_sheen.ts b/examples-testing/examples/webgpu_loader_gltf_sheen.ts -index b8fb3832..0bcc65c1 100644 +index b8fb383..0bcc65c 100644 --- a/examples-testing/examples/webgpu_loader_gltf_sheen.ts +++ b/examples-testing/examples/webgpu_loader_gltf_sheen.ts @@ -11,7 +11,7 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -13569,7 +13618,7 @@ index b8fb3832..0bcc65c1 100644 const gui = new GUI(); diff --git a/examples-testing/examples/webgpu_loader_gltf_transmission.ts b/examples-testing/examples/webgpu_loader_gltf_transmission.ts -index e8de51c0..1db14de9 100644 +index e8de51c..1db14de 100644 --- a/examples-testing/examples/webgpu_loader_gltf_transmission.ts +++ b/examples-testing/examples/webgpu_loader_gltf_transmission.ts @@ -8,7 +8,12 @@ import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js'; @@ -13587,7 +13636,7 @@ index e8de51c0..1db14de9 100644 init(); diff --git a/examples-testing/examples/webgpu_materials_displacementmap.ts b/examples-testing/examples/webgpu_materials_displacementmap.ts -index 5c7287ff..da3d0831 100644 +index 5c7287f..da3d083 100644 --- a/examples-testing/examples/webgpu_materials_displacementmap.ts +++ b/examples-testing/examples/webgpu_materials_displacementmap.ts @@ -10,8 +10,8 @@ import { OBJLoader } from 'three/addons/loaders/OBJLoader.js'; @@ -13623,7 +13672,7 @@ index 5c7287ff..da3d0831 100644 mesh = new THREE.Mesh(geometry, material); diff --git a/examples-testing/examples/webgpu_materials_lightmap.ts b/examples-testing/examples/webgpu_materials_lightmap.ts -index 99b484c4..9eb3c67b 100644 +index 99b484c..9eb3c67 100644 --- a/examples-testing/examples/webgpu_materials_lightmap.ts +++ b/examples-testing/examples/webgpu_materials_lightmap.ts @@ -8,8 +8,8 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; @@ -13638,7 +13687,7 @@ index 99b484c4..9eb3c67b 100644 init(); diff --git a/examples-testing/examples/webgpu_materials_texture_anisotropy.ts b/examples-testing/examples/webgpu_materials_texture_anisotropy.ts -index ca0ae9e7..2125232e 100644 +index ca0ae9e..2125232 100644 --- a/examples-testing/examples/webgpu_materials_texture_anisotropy.ts +++ b/examples-testing/examples/webgpu_materials_texture_anisotropy.ts @@ -3,9 +3,9 @@ import * as THREE from 'three'; @@ -13679,7 +13728,7 @@ index ca0ae9e7..2125232e 100644 const windowHalfY = window.innerHeight / 2; diff --git a/examples-testing/examples/webgpu_materials_texture_partialupdate.ts b/examples-testing/examples/webgpu_materials_texture_partialupdate.ts -index b25b4234..8f3d457b 100644 +index 83d6b53..8f3d457 100644 --- a/examples-testing/examples/webgpu_materials_texture_partialupdate.ts +++ b/examples-testing/examples/webgpu_materials_texture_partialupdate.ts @@ -1,7 +1,12 @@ @@ -13696,12 +13745,7 @@ index b25b4234..8f3d457b 100644 let last = 0; const position = new THREE.Vector2(); -@@ -75,11 +80,11 @@ async function animate() { - - // perform copy from src to dest texture to a random position - -- renderer.copyTextureToTexture(dataTexture, diffuseMap, new THREE.Vector2(), position); -+ renderer.copyTextureToTexture(dataTexture, diffuseMap, null, position); +@@ -79,7 +84,7 @@ async function animate() { } } @@ -13711,7 +13755,7 @@ index b25b4234..8f3d457b 100644 const data = texture.image.data; diff --git a/examples-testing/examples/webgpu_materials_toon.ts b/examples-testing/examples/webgpu_materials_toon.ts -index 107f4f84..f7b787da 100644 +index 107f4f8..f7b787d 100644 --- a/examples-testing/examples/webgpu_materials_toon.ts +++ b/examples-testing/examples/webgpu_materials_toon.ts @@ -12,18 +12,19 @@ import Stats from 'three/addons/libs/stats.module.js'; @@ -13748,7 +13792,7 @@ index 107f4f84..f7b787da 100644 font: font, diff --git a/examples-testing/examples/webgpu_materials_transmission.ts b/examples-testing/examples/webgpu_materials_transmission.ts -index f3f854ee..72688efc 100644 +index f3f854e..72688ef 100644 --- a/examples-testing/examples/webgpu_materials_transmission.ts +++ b/examples-testing/examples/webgpu_materials_transmission.ts @@ -21,7 +21,7 @@ const params = { @@ -13770,7 +13814,7 @@ index f3f854ee..72688efc 100644 context.fillRect(0, 1, 2, 1); diff --git a/examples-testing/examples/webgpu_materials_video.ts b/examples-testing/examples/webgpu_materials_video.ts -index fbbabfca..a1a82bd3 100644 +index fbbabfc..a1a82bd 100644 --- a/examples-testing/examples/webgpu_materials_video.ts +++ b/examples-testing/examples/webgpu_materials_video.ts @@ -2,11 +2,14 @@ import * as THREE from 'three'; @@ -13884,7 +13928,7 @@ index fbbabfca..a1a82bd3 100644 } diff --git a/examples-testing/examples/webgpu_mesh_batch.ts b/examples-testing/examples/webgpu_mesh_batch.ts -index 53166211..48fb5207 100644 +index 5316621..48fb520 100644 --- a/examples-testing/examples/webgpu_mesh_batch.ts +++ b/examples-testing/examples/webgpu_mesh_batch.ts @@ -4,15 +4,15 @@ import Stats from 'stats-gl'; @@ -13976,7 +14020,7 @@ index 53166211..48fb5207 100644 list[i].z *= factor; } diff --git a/examples-testing/examples/webgpu_morphtargets.ts b/examples-testing/examples/webgpu_morphtargets.ts -index 751d39f9..f54fb934 100644 +index 751d39f..f54fb93 100644 --- a/examples-testing/examples/webgpu_morphtargets.ts +++ b/examples-testing/examples/webgpu_morphtargets.ts @@ -8,7 +8,11 @@ import WebGL from 'three/addons/capabilities/WebGL.js'; @@ -14026,7 +14070,7 @@ index 751d39f9..f54fb934 100644 } diff --git a/examples-testing/examples/webgpu_morphtargets_face.ts b/examples-testing/examples/webgpu_morphtargets_face.ts -index 3a13ab5a..2850b1be 100644 +index 3a13ab5..2850b1b 100644 --- a/examples-testing/examples/webgpu_morphtargets_face.ts +++ b/examples-testing/examples/webgpu_morphtargets_face.ts @@ -24,7 +24,7 @@ async function init() { @@ -14059,7 +14103,7 @@ index 3a13ab5a..2850b1be 100644 } }); diff --git a/examples-testing/examples/webgpu_multiple_rendertargets_readback.ts b/examples-testing/examples/webgpu_multiple_rendertargets_readback.ts -index 19e195de..6a7d4ceb 100644 +index 19e195d..6a7d4ce 100644 --- a/examples-testing/examples/webgpu_multiple_rendertargets_readback.ts +++ b/examples-testing/examples/webgpu_multiple_rendertargets_readback.ts @@ -26,8 +26,14 @@ import WebGPURenderer from 'three/addons/renderers/webgpu/WebGPURenderer.js'; @@ -14145,7 +14189,7 @@ index 19e195de..6a7d4ceb 100644 pixelBufferTexture.image.data = pixelBuffer; pixelBufferTexture.needsUpdate = true; diff --git a/examples-testing/examples/webgpu_parallax_uv.ts b/examples-testing/examples/webgpu_parallax_uv.ts -index 2540603f..0d2dd795 100644 +index 2540603..0d2dd79 100644 --- a/examples-testing/examples/webgpu_parallax_uv.ts +++ b/examples-testing/examples/webgpu_parallax_uv.ts @@ -5,9 +5,9 @@ import WebGPURenderer from 'three/addons/renderers/webgpu/WebGPURenderer.js'; @@ -14161,7 +14205,7 @@ index 2540603f..0d2dd795 100644 init(); diff --git a/examples-testing/examples/webgpu_postprocessing_afterimage.ts b/examples-testing/examples/webgpu_postprocessing_afterimage.ts -index b89f2921..c3cfcdfe 100644 +index b89f292..c3cfcdf 100644 --- a/examples-testing/examples/webgpu_postprocessing_afterimage.ts +++ b/examples-testing/examples/webgpu_postprocessing_afterimage.ts @@ -5,9 +5,10 @@ import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; @@ -14188,7 +14232,7 @@ index b89f2921..c3cfcdfe 100644 postProcessing.outputNode = combinedPass; diff --git a/examples-testing/examples/webgpu_video_panorama.ts b/examples-testing/examples/webgpu_video_panorama.ts -index c6e051fe..dca0db31 100644 +index c6e051f..dca0db3 100644 --- a/examples-testing/examples/webgpu_video_panorama.ts +++ b/examples-testing/examples/webgpu_video_panorama.ts @@ -2,7 +2,7 @@ import * as THREE from 'three'; @@ -14237,7 +14281,7 @@ index c6e051fe..dca0db31 100644 lon = (onPointerDownPointerX - event.clientX) * 0.1 + onPointerDownLon; lat = (onPointerDownPointerY - event.clientY) * 0.1 + onPointerDownLat; diff --git a/examples-testing/examples/webxr_ar_cones.ts b/examples-testing/examples/webxr_ar_cones.ts -index 95eb3439..0e641cdb 100644 +index 95eb343..0e641cd 100644 --- a/examples-testing/examples/webxr_ar_cones.ts +++ b/examples-testing/examples/webxr_ar_cones.ts @@ -1,8 +1,8 @@ @@ -14252,7 +14296,7 @@ index 95eb3439..0e641cdb 100644 init(); diff --git a/examples-testing/examples/webxr_ar_hittest.ts b/examples-testing/examples/webxr_ar_hittest.ts -index 1867cc47..77acf97e 100644 +index 1867cc4..77acf97 100644 --- a/examples-testing/examples/webxr_ar_hittest.ts +++ b/examples-testing/examples/webxr_ar_hittest.ts @@ -1,13 +1,13 @@ @@ -14302,7 +14346,7 @@ index 1867cc47..77acf97e 100644 reticle.visible = false; } diff --git a/examples-testing/examples/webxr_ar_lighting.ts b/examples-testing/examples/webxr_ar_lighting.ts -index 9de23ad9..df20bb43 100644 +index 9de23ad..df20bb4 100644 --- a/examples-testing/examples/webxr_ar_lighting.ts +++ b/examples-testing/examples/webxr_ar_lighting.ts @@ -3,9 +3,9 @@ import { RGBELoader } from 'three/addons/loaders/RGBELoader.js'; @@ -14319,7 +14363,7 @@ index 9de23ad9..df20bb43 100644 init(); diff --git a/examples-testing/examples/webxr_vr_handinput.ts b/examples-testing/examples/webxr_vr_handinput.ts -index d746e458..af438f0f 100644 +index d746e45..af438f0 100644 --- a/examples-testing/examples/webxr_vr_handinput.ts +++ b/examples-testing/examples/webxr_vr_handinput.ts @@ -4,13 +4,13 @@ import { VRButton } from 'three/addons/webxr/VRButton.js'; @@ -14343,7 +14387,7 @@ index d746e458..af438f0f 100644 init(); diff --git a/examples-testing/examples/webxr_vr_panorama.ts b/examples-testing/examples/webxr_vr_panorama.ts -index 535e1c93..ab2e4ee0 100644 +index 535e1c9..ab2e4ee 100644 --- a/examples-testing/examples/webxr_vr_panorama.ts +++ b/examples-testing/examples/webxr_vr_panorama.ts @@ -1,9 +1,9 @@ @@ -14380,7 +14424,7 @@ index 535e1c93..ab2e4ee0 100644 canvas.width = tileWidth; context.drawImage(imageObj, tileWidth * i, 0, tileWidth, tileWidth, 0, 0, tileWidth, tileWidth); diff --git a/examples-testing/examples/webxr_vr_panorama_depth.ts b/examples-testing/examples/webxr_vr_panorama_depth.ts -index 66215469..9ad505c4 100644 +index 6621546..9ad505c 100644 --- a/examples-testing/examples/webxr_vr_panorama_depth.ts +++ b/examples-testing/examples/webxr_vr_panorama_depth.ts @@ -1,12 +1,16 @@ @@ -14403,7 +14447,7 @@ index 66215469..9ad505c4 100644 clock = new THREE.Clock(); diff --git a/examples-testing/examples/webxr_vr_rollercoaster.ts b/examples-testing/examples/webxr_vr_rollercoaster.ts -index b8c35a9e..ee5f02da 100644 +index b8c35a9..ee5f02d 100644 --- a/examples-testing/examples/webxr_vr_rollercoaster.ts +++ b/examples-testing/examples/webxr_vr_rollercoaster.ts @@ -9,7 +9,7 @@ import { @@ -14443,7 +14487,7 @@ index b8c35a9e..ee5f02da 100644 // diff --git a/examples-testing/examples/webxr_vr_sandbox.ts b/examples-testing/examples/webxr_vr_sandbox.ts -index 9e8e7590..72aab013 100644 +index 9e8e759..72aab01 100644 --- a/examples-testing/examples/webxr_vr_sandbox.ts +++ b/examples-testing/examples/webxr_vr_sandbox.ts @@ -11,9 +11,9 @@ import { XRControllerModelFactory } from 'three/addons/webxr/XRControllerModelFa @@ -14480,7 +14524,7 @@ index 9e8e7590..72aab013 100644 + update(): void; } diff --git a/examples-testing/examples/webxr_vr_video.ts b/examples-testing/examples/webxr_vr_video.ts -index 50a99041..b5925eb1 100644 +index 50a9904..b5925eb 100644 --- a/examples-testing/examples/webxr_vr_video.ts +++ b/examples-testing/examples/webxr_vr_video.ts @@ -1,12 +1,12 @@ @@ -14508,7 +14552,7 @@ index 50a99041..b5925eb1 100644 const texture = new THREE.VideoTexture(video); diff --git a/examples-testing/examples/webxr_xr_controls_transform.ts b/examples-testing/examples/webxr_xr_controls_transform.ts -index f3b4796e..c66cccea 100644 +index f3b4796..c66ccce 100644 --- a/examples-testing/examples/webxr_xr_controls_transform.ts +++ b/examples-testing/examples/webxr_xr_controls_transform.ts @@ -3,14 +3,14 @@ import { TransformControls } from 'three/addons/controls/TransformControls.js'; diff --git a/three.js b/three.js index db0a63d4f..7a2ccef35 160000 --- a/three.js +++ b/three.js @@ -1 +1 @@ -Subproject commit db0a63d4f0c5819267c88a4507471913ad57184f +Subproject commit 7a2ccef35998273f4cb99d20ffaea08c7d44ef52 diff --git a/types/three/examples/jsm/nodes/Nodes.d.ts b/types/three/examples/jsm/nodes/Nodes.d.ts index 809b1d390..06758aef2 100644 --- a/types/three/examples/jsm/nodes/Nodes.d.ts +++ b/types/three/examples/jsm/nodes/Nodes.d.ts @@ -211,6 +211,7 @@ export { materialClearcoatNormal, materialClearcoatRoughness, materialColor, + materialDispersion, materialEmissive, materialIridescence, materialIridescenceIOR, diff --git a/types/three/examples/jsm/nodes/accessors/MaterialNode.d.ts b/types/three/examples/jsm/nodes/accessors/MaterialNode.d.ts index ffdf65a18..e6ab14ca6 100644 --- a/types/three/examples/jsm/nodes/accessors/MaterialNode.d.ts +++ b/types/three/examples/jsm/nodes/accessors/MaterialNode.d.ts @@ -37,7 +37,8 @@ export type MaterialNodeScope = | typeof MaterialNode.LINE_GAP_SIZE | typeof MaterialNode.LINE_WIDTH | typeof MaterialNode.LINE_DASH_OFFSET - | typeof MaterialNode.POINT_WIDTH; + | typeof MaterialNode.POINT_WIDTH + | typeof MaterialNode.DISPERSION; export default class MaterialNode extends Node { static ALPHA_TEST: "alphaTest"; @@ -74,6 +75,7 @@ export default class MaterialNode extends Node { static LINE_WIDTH: "linewidth"; static LINE_DASH_OFFSET: "dashOffset"; static POINT_WIDTH: "pointWidth"; + static DISPERSION: "dispersion"; scope: MaterialNodeScope; constructor(scope?: MaterialNodeScope); @@ -115,4 +117,5 @@ export const materialLineGapSize: ShaderNodeObject; export const materialLineWidth: ShaderNodeObject; export const materialLineDashOffset: ShaderNodeObject; export const materialPointWidth: ShaderNodeObject; +export const materialDispersion: ShaderNodeObject; export const materialAnisotropyVector: ShaderNodeObject>; diff --git a/types/three/examples/jsm/nodes/core/PropertyNode.d.ts b/types/three/examples/jsm/nodes/core/PropertyNode.d.ts index 1b7feccae..108864abc 100644 --- a/types/three/examples/jsm/nodes/core/PropertyNode.d.ts +++ b/types/three/examples/jsm/nodes/core/PropertyNode.d.ts @@ -40,3 +40,4 @@ export const transmission: ShaderNodeObject; export const thickness: ShaderNodeObject; export const attenuationDistance: ShaderNodeObject; export const attenuationColor: ShaderNodeObject; +export const dispersion: ShaderNodeObject; diff --git a/types/three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts b/types/three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts index 615b47095..bec381051 100644 --- a/types/three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +++ b/types/three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts @@ -7,6 +7,7 @@ export default class PhysicalLightingModel extends LightingModel { iridescence: boolean; anisotropy: boolean; transmission: boolean; + dispersion: boolean; clearcoatRadiance: Node | null; clearcoatSpecularDirect: Node | null; @@ -22,6 +23,7 @@ export default class PhysicalLightingModel extends LightingModel { iridescence?: boolean, anisotropy?: boolean, transmission?: boolean, + dispersion?: boolean, ); computeMultiscattering(singleScatter: Node, multiScatter: Node, specularF90: Node): void; diff --git a/types/three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts b/types/three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts index 07c78fd57..9101caea1 100644 --- a/types/three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +++ b/types/three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts @@ -32,6 +32,7 @@ export default class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial { thicknessNode: ShaderNodeObject | null; attenuationDistanceNode: ShaderNodeObject | null; attenuationColorNode: ShaderNodeObject | null; + dispersionNode: ShaderNodeObject | null; anisotropyNode: ShaderNodeObject | null; @@ -78,4 +79,11 @@ export default class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial { set transmission(value: number); constructor(parameters?: MeshPhysicalNodeMaterialParameters); + + get useClearcoat(): boolean; + get useIridescence(): boolean; + get useSheen(): boolean; + get useAnisotropy(): boolean; + get useTransmission(): boolean; + get useDispersion(): boolean; }