@needle-tools/three 0.162.12 → 0.169.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. package/README.md +3 -3
  2. package/build/three.cjs +29789 -1941
  3. package/build/three.module.js +29095 -1933
  4. package/build/three.module.min.js +2 -2
  5. package/build/three.webgpu.js +80003 -0
  6. package/build/three.webgpu.min.js +6 -0
  7. package/build/three.webgpu.nodes.js +79951 -0
  8. package/build/three.webgpu.nodes.min.js +6 -0
  9. package/examples/jsm/Addons.js +2 -5
  10. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  11. package/examples/jsm/animation/CCDIKSolver.js +4 -2
  12. package/examples/jsm/capabilities/WebGL.js +27 -21
  13. package/examples/jsm/controls/ArcballControls.js +174 -158
  14. package/examples/jsm/controls/DragControls.js +260 -132
  15. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  16. package/examples/jsm/controls/FlyControls.js +194 -188
  17. package/examples/jsm/controls/OrbitControls.js +790 -797
  18. package/examples/jsm/controls/PointerLockControls.js +24 -15
  19. package/examples/jsm/controls/TrackballControls.js +469 -448
  20. package/examples/jsm/controls/TransformControls.js +98 -63
  21. package/examples/jsm/csm/CSMShader.js +4 -4
  22. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  23. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  24. package/examples/jsm/effects/StereoEffect.js +6 -1
  25. package/examples/jsm/environments/RoomEnvironment.js +2 -6
  26. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  27. package/examples/jsm/exporters/EXRExporter.js +19 -11
  28. package/examples/jsm/exporters/GLTFExporter.js +77 -8
  29. package/examples/jsm/exporters/KTX2Exporter.js +21 -13
  30. package/examples/jsm/exporters/OBJExporter.js +5 -1
  31. package/examples/jsm/exporters/PLYExporter.js +9 -7
  32. package/examples/jsm/exporters/USDZExporter.js +55 -11
  33. package/examples/jsm/geometries/DecalGeometry.js +4 -1
  34. package/examples/jsm/geometries/InstancedPointsGeometry.js +1 -1
  35. package/examples/jsm/geometries/TeapotGeometry.js +1 -1
  36. package/examples/jsm/geometries/TextGeometry.js +10 -2
  37. package/examples/jsm/helpers/LightProbeHelper.js +43 -44
  38. package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
  39. package/examples/jsm/helpers/ViewHelper.js +75 -61
  40. package/examples/jsm/interactive/HTMLMesh.js +7 -9
  41. package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  42. package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  43. package/examples/jsm/libs/draco/README.md +2 -2
  44. package/examples/jsm/libs/fflate.module.js +694 -496
  45. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  46. package/examples/jsm/lights/LightProbeGenerator.js +24 -10
  47. package/examples/jsm/lights/RectAreaLightTexturesLib.js +91 -0
  48. package/examples/jsm/lights/RectAreaLightUniformsLib.js +8 -63
  49. package/examples/jsm/lines/LineMaterial.js +1 -17
  50. package/examples/jsm/lines/LineSegments2.js +15 -0
  51. package/examples/jsm/lines/Wireframe.js +16 -1
  52. package/examples/jsm/lines/webgpu/Line2.js +20 -0
  53. package/examples/jsm/lines/webgpu/LineSegments2.js +376 -0
  54. package/examples/jsm/loaders/3MFLoader.js +2 -0
  55. package/examples/jsm/loaders/ColladaLoader.js +9 -6
  56. package/examples/jsm/loaders/DRACOLoader.js +4 -2
  57. package/examples/jsm/loaders/EXRLoader.js +351 -97
  58. package/examples/jsm/loaders/FBXLoader.js +77 -78
  59. package/examples/jsm/loaders/GLTFLoader.js +76 -14
  60. package/examples/jsm/loaders/KTX2Loader.js +30 -22
  61. package/examples/jsm/loaders/LDrawLoader.js +3 -2
  62. package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
  63. package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
  64. package/examples/jsm/loaders/LUTImageLoader.js +0 -14
  65. package/examples/jsm/loaders/MMDLoader.js +31 -12
  66. package/examples/jsm/loaders/MTLLoader.js +4 -3
  67. package/examples/jsm/loaders/MaterialXLoader.js +45 -21
  68. package/examples/jsm/loaders/OBJLoader.js +5 -3
  69. package/examples/jsm/loaders/PCDLoader.js +14 -13
  70. package/examples/jsm/loaders/PDBLoader.js +3 -2
  71. package/examples/jsm/loaders/PLYLoader.js +8 -5
  72. package/examples/jsm/loaders/RGBMLoader.js +16 -0
  73. package/examples/jsm/loaders/STLLoader.js +3 -2
  74. package/examples/jsm/loaders/USDZLoader.js +124 -76
  75. package/examples/jsm/loaders/UltraHDRLoader.js +583 -0
  76. package/examples/jsm/loaders/VRMLLoader.js +11 -11
  77. package/examples/jsm/loaders/VTKLoader.js +80 -6
  78. package/examples/jsm/loaders/XYZLoader.js +3 -2
  79. package/examples/jsm/loaders/lwo/IFFParser.js +8 -5
  80. package/examples/jsm/materials/MeshGouraudMaterial.js +7 -1
  81. package/examples/jsm/math/Octree.js +26 -20
  82. package/examples/jsm/misc/GPUComputationRenderer.js +9 -25
  83. package/examples/jsm/misc/Timer.js +1 -1
  84. package/examples/jsm/modifiers/CurveModifier.js +11 -9
  85. package/examples/jsm/modifiers/CurveModifierGPU.js +233 -0
  86. package/examples/jsm/modifiers/SimplifyModifier.js +2 -1
  87. package/examples/jsm/objects/InstancedPoints.js +2 -2
  88. package/examples/jsm/objects/Lensflare.js +2 -2
  89. package/examples/jsm/objects/LensflareMesh.js +322 -0
  90. package/examples/jsm/objects/SkyMesh.js +187 -0
  91. package/examples/jsm/objects/Water2Mesh.js +158 -0
  92. package/examples/jsm/objects/WaterMesh.js +101 -0
  93. package/examples/jsm/physics/JoltPhysics.js +281 -0
  94. package/examples/jsm/physics/RapierPhysics.js +25 -5
  95. package/examples/jsm/postprocessing/GlitchPass.js +0 -3
  96. package/examples/jsm/postprocessing/LUTPass.js +5 -71
  97. package/examples/jsm/postprocessing/OutlinePass.js +31 -46
  98. package/examples/jsm/postprocessing/RenderPass.js +1 -1
  99. package/examples/jsm/postprocessing/RenderTransitionPass.js +168 -0
  100. package/examples/jsm/postprocessing/SAOPass.js +0 -1
  101. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  102. package/examples/jsm/postprocessing/SSAOPass.js +6 -12
  103. package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -4
  104. package/examples/jsm/renderers/CSS2DRenderer.js +25 -5
  105. package/examples/jsm/renderers/CSS3DRenderer.js +24 -3
  106. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +1 -3
  107. package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +1 -1
  108. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +7 -4
  109. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +19 -5
  110. package/examples/jsm/shaders/BleachBypassShader.js +1 -2
  111. package/examples/jsm/shaders/ColorifyShader.js +1 -2
  112. package/examples/jsm/shaders/FXAAShader.js +0 -2
  113. package/examples/jsm/shaders/GTAOShader.js +1 -1
  114. package/examples/jsm/shaders/LuminosityHighPassShader.js +1 -3
  115. package/examples/jsm/shaders/OutputShader.js +1 -1
  116. package/examples/jsm/transpiler/GLSLDecoder.js +47 -5
  117. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -2
  118. package/examples/jsm/transpiler/TSLEncoder.js +24 -22
  119. package/examples/jsm/utils/BufferGeometryUtils.js +18 -16
  120. package/examples/jsm/utils/GeometryCompressionUtils.js +37 -122
  121. package/examples/jsm/utils/SceneUtils.js +60 -1
  122. package/examples/jsm/utils/ShadowMapViewer.js +3 -8
  123. package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
  124. package/examples/jsm/utils/SkeletonUtils.js +84 -66
  125. package/examples/jsm/utils/SortUtils.js +8 -5
  126. package/examples/jsm/utils/TextureUtils.js +3 -2
  127. package/examples/jsm/utils/TextureUtilsGPU.js +63 -0
  128. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  129. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  130. package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
  131. package/package.json +11 -8
  132. package/src/Three.WebGPU.Nodes.js +200 -0
  133. package/src/Three.WebGPU.js +201 -0
  134. package/src/Three.js +23 -1
  135. package/src/animation/AnimationClip.js +1 -1
  136. package/src/animation/tracks/BooleanKeyframeTrack.js +10 -1
  137. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -2
  138. package/src/animation/tracks/StringKeyframeTrack.js +10 -1
  139. package/src/audio/Audio.js +2 -2
  140. package/src/constants.js +6 -7
  141. package/src/core/BufferAttribute.js +0 -9
  142. package/src/core/Clock.js +1 -1
  143. package/src/core/InterleavedBuffer.js +0 -9
  144. package/src/core/Object3D.js +34 -29
  145. package/src/core/Raycaster.js +6 -2
  146. package/src/core/RenderTarget.js +8 -0
  147. package/src/extras/Controls.js +32 -0
  148. package/src/extras/PMREMGenerator.js +12 -11
  149. package/src/extras/TextureUtils.js +210 -0
  150. package/src/geometries/CylinderGeometry.js +11 -4
  151. package/src/lights/Light.js +1 -0
  152. package/src/lights/LightShadow.js +5 -0
  153. package/{examples/jsm/lights → src/lights/webgpu}/IESSpotLight.js +1 -1
  154. package/src/loaders/FileLoader.js +5 -1
  155. package/src/loaders/LoaderUtils.js +3 -1
  156. package/src/loaders/MaterialLoader.js +8 -1
  157. package/src/loaders/ObjectLoader.js +36 -2
  158. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeLoader.js +27 -5
  159. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeMaterialLoader.js +22 -18
  160. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeObjectLoader.js +21 -1
  161. package/src/materials/Material.js +4 -0
  162. package/src/materials/MeshPhysicalMaterial.js +20 -0
  163. package/src/materials/ShaderMaterial.js +0 -4
  164. package/src/materials/nodes/InstancedPointsNodeMaterial.js +156 -0
  165. package/{examples/jsm/nodes/materials → src/materials/nodes}/Line2NodeMaterial.js +69 -68
  166. package/src/materials/nodes/LineBasicNodeMaterial.js +31 -0
  167. package/{examples/jsm/nodes/materials → src/materials/nodes}/LineDashedNodeMaterial.js +15 -12
  168. package/src/materials/nodes/MeshBasicNodeMaterial.js +77 -0
  169. package/src/materials/nodes/MeshLambertNodeMaterial.js +47 -0
  170. package/src/materials/nodes/MeshMatcapNodeMaterial.js +57 -0
  171. package/src/materials/nodes/MeshNormalNodeMaterial.js +44 -0
  172. package/src/materials/nodes/MeshPhongNodeMaterial.js +78 -0
  173. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +248 -0
  174. package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshSSSNodeMaterial.js +10 -7
  175. package/src/materials/nodes/MeshStandardNodeMaterial.js +108 -0
  176. package/src/materials/nodes/MeshToonNodeMaterial.js +38 -0
  177. package/{examples/jsm/nodes/materials → src/materials/nodes}/NodeMaterial.js +198 -157
  178. package/{examples/jsm/nodes/materials/Materials.js → src/materials/nodes/NodeMaterials.js} +7 -1
  179. package/{examples/jsm/nodes/materials → src/materials/nodes}/PointsNodeMaterial.js +10 -7
  180. package/src/materials/nodes/ShadowNodeMaterial.js +38 -0
  181. package/src/materials/nodes/SpriteNodeMaterial.js +123 -0
  182. package/src/materials/nodes/VolumeNodeMaterial.js +108 -0
  183. package/src/materials/nodes/manager/NodeMaterialObserver.js +302 -0
  184. package/src/math/Box2.js +4 -4
  185. package/src/math/Box3.js +6 -6
  186. package/src/math/ColorManagement.js +10 -0
  187. package/src/math/Matrix2.js +54 -0
  188. package/src/math/Spherical.js +4 -5
  189. package/src/math/Triangle.js +24 -0
  190. package/src/math/Vector4.js +13 -0
  191. package/src/nodes/Nodes.js +164 -0
  192. package/src/nodes/TSL.js +179 -0
  193. package/src/nodes/accessors/AccessorsUtils.js +25 -0
  194. package/src/nodes/accessors/BatchNode.js +128 -0
  195. package/src/nodes/accessors/Bitangent.js +13 -0
  196. package/{examples/jsm → src}/nodes/accessors/BufferAttributeNode.js +44 -6
  197. package/{examples/jsm → src}/nodes/accessors/BufferNode.js +13 -4
  198. package/src/nodes/accessors/Camera.js +13 -0
  199. package/{examples/jsm → src}/nodes/accessors/ClippingNode.js +22 -15
  200. package/src/nodes/accessors/CubeTextureNode.js +79 -0
  201. package/src/nodes/accessors/InstanceNode.js +144 -0
  202. package/src/nodes/accessors/InstancedPointsMaterialNode.js +24 -0
  203. package/src/nodes/accessors/Lights.js +51 -0
  204. package/src/nodes/accessors/MaterialNode.js +441 -0
  205. package/src/nodes/accessors/MaterialProperties.js +3 -0
  206. package/{examples/jsm → src}/nodes/accessors/MaterialReferenceNode.js +10 -5
  207. package/src/nodes/accessors/ModelNode.js +72 -0
  208. package/src/nodes/accessors/ModelViewProjectionNode.js +42 -0
  209. package/{examples/jsm → src}/nodes/accessors/MorphNode.js +51 -33
  210. package/src/nodes/accessors/Normal.js +88 -0
  211. package/{examples/jsm → src}/nodes/accessors/Object3DNode.js +18 -34
  212. package/src/nodes/accessors/PointUVNode.js +30 -0
  213. package/src/nodes/accessors/Position.js +10 -0
  214. package/src/nodes/accessors/ReferenceBaseNode.js +171 -0
  215. package/{examples/jsm → src}/nodes/accessors/ReferenceNode.js +58 -9
  216. package/src/nodes/accessors/ReflectVector.js +10 -0
  217. package/src/nodes/accessors/RendererReferenceNode.js +35 -0
  218. package/{examples/jsm → src}/nodes/accessors/SceneNode.js +9 -6
  219. package/src/nodes/accessors/SkinningNode.js +191 -0
  220. package/src/nodes/accessors/StorageBufferNode.js +147 -0
  221. package/{examples/jsm/nodes/accessors/TextureStoreNode.js → src/nodes/accessors/StorageTextureNode.js} +35 -10
  222. package/src/nodes/accessors/Tangent.js +22 -0
  223. package/src/nodes/accessors/Texture3DNode.js +103 -0
  224. package/{examples/jsm/nodes/accessors/TextureBicubicNode.js → src/nodes/accessors/TextureBicubic.js} +3 -32
  225. package/{examples/jsm → src}/nodes/accessors/TextureNode.js +123 -39
  226. package/src/nodes/accessors/TextureSizeNode.js +36 -0
  227. package/src/nodes/accessors/UV.js +3 -0
  228. package/{examples/jsm/nodes/accessors/UniformsNode.js → src/nodes/accessors/UniformArrayNode.js} +33 -15
  229. package/{examples/jsm → src}/nodes/accessors/UserDataNode.js +10 -7
  230. package/src/nodes/accessors/VelocityNode.js +134 -0
  231. package/{examples/jsm → src}/nodes/accessors/VertexColorNode.js +9 -5
  232. package/{examples/jsm → src}/nodes/code/CodeNode.js +9 -5
  233. package/{examples/jsm → src}/nodes/code/ExpressionNode.js +10 -6
  234. package/{examples/jsm → src}/nodes/code/FunctionCallNode.js +8 -5
  235. package/{examples/jsm → src}/nodes/code/FunctionNode.js +8 -31
  236. package/{examples/jsm → src}/nodes/code/ScriptableNode.js +24 -7
  237. package/{examples/jsm → src}/nodes/code/ScriptableValueNode.js +11 -8
  238. package/{examples/jsm → src}/nodes/core/AssignNode.js +12 -9
  239. package/{examples/jsm → src}/nodes/core/AttributeNode.js +29 -12
  240. package/{examples/jsm → src}/nodes/core/BypassNode.js +11 -7
  241. package/src/nodes/core/CacheNode.js +50 -0
  242. package/{examples/jsm → src}/nodes/core/ConstNode.js +6 -3
  243. package/{examples/jsm → src}/nodes/core/ContextNode.js +27 -11
  244. package/src/nodes/core/IndexNode.js +99 -0
  245. package/{examples/jsm → src}/nodes/core/InputNode.js +7 -3
  246. package/{examples/jsm → src}/nodes/core/LightingModel.js +2 -2
  247. package/src/nodes/core/MRTNode.js +85 -0
  248. package/{examples/jsm → src}/nodes/core/Node.js +114 -57
  249. package/{examples/jsm → src}/nodes/core/NodeBuilder.js +327 -90
  250. package/src/nodes/core/NodeCache.js +36 -0
  251. package/{examples/jsm → src}/nodes/core/NodeFrame.js +52 -10
  252. package/{examples/jsm → src}/nodes/core/NodeFunction.js +2 -2
  253. package/{examples/jsm → src}/nodes/core/NodeUniform.js +1 -2
  254. package/{examples/jsm → src}/nodes/core/NodeUtils.js +56 -8
  255. package/{examples/jsm → src}/nodes/core/OutputStructNode.js +13 -12
  256. package/{examples/jsm → src}/nodes/core/ParameterNode.js +7 -4
  257. package/src/nodes/core/PropertyNode.js +88 -0
  258. package/{examples/jsm → src}/nodes/core/StackNode.js +31 -11
  259. package/{examples/jsm → src}/nodes/core/StructTypeNode.js +7 -3
  260. package/{examples/jsm → src}/nodes/core/TempNode.js +10 -6
  261. package/src/nodes/core/UniformGroupNode.js +59 -0
  262. package/{examples/jsm → src}/nodes/core/UniformNode.js +37 -5
  263. package/{examples/jsm → src}/nodes/core/VarNode.js +14 -14
  264. package/src/nodes/core/VaryingNode.js +108 -0
  265. package/{examples/jsm → src}/nodes/display/AfterImageNode.js +38 -28
  266. package/src/nodes/display/AnaglyphPassNode.js +67 -0
  267. package/{examples/jsm → src}/nodes/display/AnamorphicNode.js +33 -30
  268. package/src/nodes/display/BleachBypass.js +26 -0
  269. package/src/nodes/display/BlendMode.js +54 -0
  270. package/src/nodes/display/BloomNode.js +341 -0
  271. package/{examples/jsm → src}/nodes/display/BumpMapNode.js +20 -38
  272. package/src/nodes/display/ColorAdjustment.js +46 -0
  273. package/src/nodes/display/ColorSpaceFunctions.js +38 -0
  274. package/src/nodes/display/ColorSpaceNode.js +114 -0
  275. package/src/nodes/display/DenoiseNode.js +204 -0
  276. package/src/nodes/display/DepthOfFieldNode.js +124 -0
  277. package/src/nodes/display/DotScreenNode.js +66 -0
  278. package/src/nodes/display/FXAANode.js +332 -0
  279. package/src/nodes/display/FilmNode.js +56 -0
  280. package/src/nodes/display/FrontFacingNode.js +45 -0
  281. package/src/nodes/display/GTAONode.js +331 -0
  282. package/{examples/jsm → src}/nodes/display/GaussianBlurNode.js +47 -24
  283. package/src/nodes/display/Lut3DNode.js +57 -0
  284. package/src/nodes/display/MotionBlur.js +25 -0
  285. package/{examples/jsm → src}/nodes/display/NormalMapNode.js +14 -14
  286. package/src/nodes/display/ParallaxBarrierPassNode.js +58 -0
  287. package/src/nodes/display/PassNode.js +378 -0
  288. package/src/nodes/display/PixelationPassNode.js +213 -0
  289. package/{examples/jsm → src}/nodes/display/PosterizeNode.js +8 -7
  290. package/src/nodes/display/RGBShiftNode.js +53 -0
  291. package/src/nodes/display/RenderOutputNode.js +60 -0
  292. package/src/nodes/display/SSAAPassNode.js +287 -0
  293. package/src/nodes/display/ScreenNode.js +181 -0
  294. package/src/nodes/display/Sepia.js +17 -0
  295. package/src/nodes/display/SobelOperatorNode.js +126 -0
  296. package/src/nodes/display/StereoCompositePassNode.js +110 -0
  297. package/src/nodes/display/StereoPassNode.js +83 -0
  298. package/src/nodes/display/ToneMappingFunctions.js +190 -0
  299. package/src/nodes/display/ToneMappingNode.js +67 -0
  300. package/src/nodes/display/ToonOutlinePassNode.js +111 -0
  301. package/src/nodes/display/TransitionNode.js +80 -0
  302. package/src/nodes/display/ViewportDepthNode.js +125 -0
  303. package/src/nodes/display/ViewportDepthTextureNode.js +33 -0
  304. package/src/nodes/display/ViewportSharedTextureNode.js +39 -0
  305. package/{examples/jsm → src}/nodes/display/ViewportTextureNode.js +20 -14
  306. package/src/nodes/fog/FogExp2Node.js +35 -0
  307. package/src/nodes/fog/FogNode.js +50 -0
  308. package/src/nodes/fog/FogRangeNode.js +36 -0
  309. package/src/nodes/functions/BSDF/BRDF_GGX.js +59 -0
  310. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  311. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  312. package/{examples/jsm → src}/nodes/functions/BSDF/DFGApprox.js +2 -2
  313. package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.js +2 -2
  314. package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
  315. package/{examples/jsm → src}/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  316. package/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.js +2 -2
  317. package/src/nodes/functions/BSDF/LTC.js +131 -0
  318. package/{examples/jsm → src}/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  319. package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -4
  320. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
  321. package/src/nodes/functions/BasicLightingModel.js +78 -0
  322. package/{examples/jsm → src}/nodes/functions/PhongLightingModel.js +11 -9
  323. package/src/nodes/functions/PhysicalLightingModel.js +633 -0
  324. package/src/nodes/functions/ShadowMaskModel.js +31 -0
  325. package/src/nodes/functions/ToonLightingModel.js +51 -0
  326. package/src/nodes/functions/material/getGeometryRoughness.js +13 -0
  327. package/{examples/jsm → src}/nodes/functions/material/getRoughness.js +2 -2
  328. package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  329. package/{examples/jsm → src}/nodes/geometry/RangeNode.js +28 -11
  330. package/src/nodes/gpgpu/AtomicFunctionNode.js +99 -0
  331. package/src/nodes/gpgpu/BarrierNode.js +40 -0
  332. package/src/nodes/gpgpu/ComputeBuiltinNode.js +98 -0
  333. package/{examples/jsm → src}/nodes/gpgpu/ComputeNode.js +10 -6
  334. package/src/nodes/gpgpu/WorkgroupInfoNode.js +100 -0
  335. package/src/nodes/lighting/AONode.js +27 -0
  336. package/{examples/jsm → src}/nodes/lighting/AmbientLightNode.js +6 -8
  337. package/src/nodes/lighting/AnalyticLightNode.js +522 -0
  338. package/src/nodes/lighting/BasicEnvironmentNode.js +30 -0
  339. package/src/nodes/lighting/BasicLightMapNode.js +32 -0
  340. package/{examples/jsm → src}/nodes/lighting/DirectionalLightNode.js +7 -9
  341. package/src/nodes/lighting/EnvironmentNode.js +138 -0
  342. package/{examples/jsm → src}/nodes/lighting/HemisphereLightNode.js +12 -11
  343. package/{examples/jsm → src}/nodes/lighting/IESSpotLightNode.js +7 -9
  344. package/src/nodes/lighting/IrradianceNode.js +27 -0
  345. package/src/nodes/lighting/LightProbeNode.js +53 -0
  346. package/{examples/jsm → src}/nodes/lighting/LightUtils.js +3 -3
  347. package/src/nodes/lighting/LightingContextNode.js +67 -0
  348. package/{examples/jsm → src}/nodes/lighting/LightingNode.js +9 -3
  349. package/src/nodes/lighting/LightsNode.js +250 -0
  350. package/{examples/jsm → src}/nodes/lighting/PointLightNode.js +12 -13
  351. package/src/nodes/lighting/RectAreaLightNode.js +97 -0
  352. package/{examples/jsm → src}/nodes/lighting/SpotLightNode.js +14 -16
  353. package/{examples/jsm → src}/nodes/materialx/MaterialXNodes.js +2 -2
  354. package/src/nodes/materialx/lib/mx_hsv.js +127 -0
  355. package/{examples/jsm → src}/nodes/materialx/lib/mx_noise.js +500 -603
  356. package/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.js +3 -9
  357. package/{examples/jsm/nodes/math/CondNode.js → src/nodes/math/ConditionalNode.js} +48 -13
  358. package/src/nodes/math/Hash.js +13 -0
  359. package/src/nodes/math/MathNode.js +407 -0
  360. package/{examples/jsm → src}/nodes/math/MathUtils.js +0 -7
  361. package/src/nodes/math/OperatorNode.js +319 -0
  362. package/{examples/jsm → src}/nodes/math/TriNoise3D.js +19 -29
  363. package/{examples/jsm → src}/nodes/parsers/GLSLNodeFunction.js +7 -7
  364. package/src/nodes/pmrem/PMREMNode.js +240 -0
  365. package/src/nodes/pmrem/PMREMUtils.js +288 -0
  366. package/src/nodes/procedural/Checker.js +14 -0
  367. package/src/nodes/tsl/TSLBase.js +30 -0
  368. package/{examples/jsm/nodes/shadernode/ShaderNode.js → src/nodes/tsl/TSLCore.js} +122 -96
  369. package/{examples/jsm → src}/nodes/utils/ArrayElementNode.js +9 -5
  370. package/{examples/jsm → src}/nodes/utils/ConvertNode.js +7 -3
  371. package/src/nodes/utils/CubeMapNode.js +160 -0
  372. package/src/nodes/utils/Discard.js +8 -0
  373. package/src/nodes/utils/EquirectUVNode.js +36 -0
  374. package/src/nodes/utils/FlipNode.js +68 -0
  375. package/{examples/jsm → src}/nodes/utils/FunctionOverloadingNode.js +11 -5
  376. package/{examples/jsm → src}/nodes/utils/JoinNode.js +6 -3
  377. package/{examples/jsm → src}/nodes/utils/LoopNode.js +23 -12
  378. package/src/nodes/utils/MatcapUVNode.js +33 -0
  379. package/{examples/jsm → src}/nodes/utils/MaxMipLevelNode.js +16 -7
  380. package/{examples/jsm → src}/nodes/utils/OscNode.js +12 -8
  381. package/src/nodes/utils/Packing.js +4 -0
  382. package/src/nodes/utils/RTTNode.js +133 -0
  383. package/{examples/jsm → src}/nodes/utils/ReflectorNode.js +21 -5
  384. package/{examples/jsm → src}/nodes/utils/RemapNode.js +12 -8
  385. package/{examples/jsm → src}/nodes/utils/RotateNode.js +8 -13
  386. package/{examples/jsm → src}/nodes/utils/SetNode.js +7 -4
  387. package/{examples/jsm → src}/nodes/utils/SplitNode.js +7 -3
  388. package/{examples/jsm → src}/nodes/utils/SpriteSheetUVNode.js +10 -6
  389. package/src/nodes/utils/SpriteUtils.js +47 -0
  390. package/{examples/jsm → src}/nodes/utils/StorageArrayElementNode.js +11 -12
  391. package/{examples/jsm → src}/nodes/utils/TimerNode.js +8 -5
  392. package/{examples/jsm → src}/nodes/utils/TriplanarTexturesNode.js +11 -9
  393. package/src/nodes/utils/UVUtils.js +19 -0
  394. package/src/nodes/utils/ViewportUtils.js +14 -0
  395. package/src/objects/BatchedMesh.js +302 -144
  396. package/src/objects/InstancedMesh.js +11 -1
  397. package/src/objects/LOD.js +21 -0
  398. package/src/objects/Line.js +67 -43
  399. package/src/objects/Mesh.js +7 -23
  400. package/src/objects/Points.js +2 -0
  401. package/src/renderers/WebGLRenderer.js +473 -224
  402. package/{examples/jsm → src}/renderers/common/Animation.js +3 -0
  403. package/{examples/jsm → src}/renderers/common/Attributes.js +4 -1
  404. package/{examples/jsm → src}/renderers/common/Backend.js +30 -27
  405. package/{examples/jsm → src}/renderers/common/Background.js +18 -10
  406. package/src/renderers/common/BindGroup.js +18 -0
  407. package/src/renderers/common/Bindings.js +203 -0
  408. package/src/renderers/common/BundleGroup.js +26 -0
  409. package/src/renderers/common/ChainMap.js +59 -0
  410. package/{examples/jsm → src}/renderers/common/ClippingContext.js +24 -12
  411. package/{examples/jsm → src}/renderers/common/Color4.js +1 -1
  412. package/{examples/jsm → src}/renderers/common/CubeRenderTarget.js +16 -4
  413. package/{examples/jsm → src}/renderers/common/Geometries.js +37 -5
  414. package/{examples/jsm → src}/renderers/common/Info.js +35 -15
  415. package/{examples/jsm → src}/renderers/common/Pipelines.js +2 -2
  416. package/src/renderers/common/PostProcessing.js +90 -0
  417. package/src/renderers/common/QuadMesh.js +55 -0
  418. package/src/renderers/common/RenderBundle.js +18 -0
  419. package/src/renderers/common/RenderBundles.js +38 -0
  420. package/{examples/jsm → src}/renderers/common/RenderContext.js +25 -2
  421. package/{examples/jsm → src}/renderers/common/RenderContexts.js +1 -1
  422. package/{examples/jsm → src}/renderers/common/RenderList.js +11 -2
  423. package/src/renderers/common/RenderObject.js +413 -0
  424. package/{examples/jsm → src}/renderers/common/RenderObjects.js +9 -2
  425. package/{examples/jsm → src}/renderers/common/Renderer.js +431 -83
  426. package/{examples/jsm → src}/renderers/common/SampledTexture.js +14 -5
  427. package/{examples/jsm → src}/renderers/common/StorageBufferAttribute.js +1 -1
  428. package/{examples/jsm → src}/renderers/common/StorageInstancedBufferAttribute.js +1 -1
  429. package/{examples/jsm → src}/renderers/common/StorageTexture.js +2 -1
  430. package/{examples/jsm → src}/renderers/common/Textures.js +15 -15
  431. package/{examples/jsm → src}/renderers/common/Uniform.js +10 -5
  432. package/{examples/jsm → src}/renderers/common/UniformsGroup.js +69 -31
  433. package/src/renderers/common/extras/PMREMGenerator.js +771 -0
  434. package/src/renderers/common/nodes/NodeBuilderState.js +58 -0
  435. package/src/renderers/common/nodes/NodeLibrary.js +118 -0
  436. package/src/renderers/common/nodes/NodeSampledTexture.js +64 -0
  437. package/{examples/jsm → src}/renderers/common/nodes/NodeSampler.js +8 -1
  438. package/{examples/jsm → src}/renderers/common/nodes/NodeStorageBuffer.js +5 -1
  439. package/{examples/jsm → src}/renderers/common/nodes/NodeUniform.js +3 -3
  440. package/{examples/jsm → src}/renderers/common/nodes/NodeUniformBuffer.js +2 -1
  441. package/{examples/jsm → src}/renderers/common/nodes/NodeUniformsGroup.js +2 -8
  442. package/{examples/jsm → src}/renderers/common/nodes/Nodes.js +106 -68
  443. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +31 -1
  444. package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +1 -1
  445. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -1
  446. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +9 -1
  447. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +0 -9
  448. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -10
  449. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  450. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +8 -22
  451. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
  452. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +1 -0
  453. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
  454. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  455. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
  456. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
  457. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +1 -1
  458. package/src/renderers/shaders/ShaderChunk/morphinstance_vertex.glsl.js +1 -1
  459. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +3 -14
  460. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +10 -31
  461. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +3 -23
  462. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +45 -13
  463. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +38 -25
  464. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +3 -0
  465. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +3 -3
  466. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +19 -11
  467. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  468. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
  469. package/src/renderers/shaders/ShaderChunk.js +0 -2
  470. package/src/renderers/shaders/ShaderLib/depth.glsl.js +8 -0
  471. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -0
  472. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  473. package/src/renderers/shaders/ShaderLib.js +2 -1
  474. package/src/renderers/shaders/UniformsLib.js +3 -0
  475. package/src/renderers/shaders/UniformsUtils.js +10 -1
  476. package/src/renderers/webgl/WebGLAttributes.js +42 -38
  477. package/src/renderers/webgl/WebGLBackground.js +24 -3
  478. package/src/renderers/webgl/WebGLBindingStates.js +14 -51
  479. package/src/renderers/webgl/WebGLBufferRenderer.js +23 -22
  480. package/src/renderers/webgl/WebGLCapabilities.js +44 -13
  481. package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
  482. package/src/renderers/webgl/WebGLExtensions.js +7 -20
  483. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +23 -21
  484. package/src/renderers/webgl/WebGLLights.js +21 -44
  485. package/src/renderers/webgl/WebGLMaterials.js +9 -8
  486. package/src/renderers/webgl/WebGLMorphtargets.js +78 -217
  487. package/src/renderers/webgl/WebGLProgram.js +46 -78
  488. package/src/renderers/webgl/WebGLPrograms.js +37 -40
  489. package/src/renderers/webgl/WebGLProperties.js +7 -0
  490. package/src/renderers/webgl/WebGLRenderStates.js +15 -9
  491. package/src/renderers/webgl/WebGLShadowMap.js +25 -25
  492. package/src/renderers/webgl/WebGLState.js +35 -58
  493. package/src/renderers/webgl/WebGLTextures.js +313 -358
  494. package/src/renderers/webgl/WebGLUniforms.js +12 -2
  495. package/src/renderers/webgl/WebGLUniformsGroups.js +8 -8
  496. package/src/renderers/webgl/WebGLUtils.js +9 -78
  497. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBackend.js +389 -152
  498. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +145 -0
  499. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/nodes/GLSLNodeBuilder.js +245 -44
  500. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLAttributeUtils.js +7 -1
  501. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLConstants.js +2 -0
  502. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLExtensions.js +2 -0
  503. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLState.js +21 -3
  504. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLTextureUtils.js +271 -43
  505. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLUtils.js +6 -23
  506. package/{examples/jsm → src}/renderers/webgpu/WebGPUBackend.js +318 -141
  507. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +42 -0
  508. package/{examples/jsm → src}/renderers/webgpu/WebGPURenderer.js +10 -7
  509. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +59 -0
  510. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +105 -0
  511. package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeBuilder.js +424 -95
  512. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +159 -0
  513. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUAttributeUtils.js +37 -18
  514. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUBindingUtils.js +86 -32
  515. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUConstants.js +10 -1
  516. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUPipelineUtils.js +68 -27
  517. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
  518. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTextureUtils.js +235 -68
  519. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUUtils.js +43 -5
  520. package/src/renderers/webxr/WebXRDepthSensing.js +11 -6
  521. package/src/renderers/webxr/WebXRManager.js +53 -38
  522. package/src/scenes/Scene.js +7 -1
  523. package/src/textures/CompressedArrayTexture.js +14 -0
  524. package/src/textures/DataArrayTexture.js +14 -0
  525. package/src/textures/DepthTexture.js +1 -3
  526. package/src/textures/Texture.js +12 -2
  527. package/src/utils.js +62 -1
  528. package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  529. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  530. package/examples/jsm/loaders/TiltLoader.js +0 -520
  531. package/examples/jsm/nodes/Nodes.js +0 -195
  532. package/examples/jsm/nodes/accessors/AccessorsUtils.js +0 -10
  533. package/examples/jsm/nodes/accessors/BitangentNode.js +0 -89
  534. package/examples/jsm/nodes/accessors/CameraNode.js +0 -119
  535. package/examples/jsm/nodes/accessors/CubeTextureNode.js +0 -61
  536. package/examples/jsm/nodes/accessors/InstanceNode.js +0 -71
  537. package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  538. package/examples/jsm/nodes/accessors/MaterialNode.js +0 -314
  539. package/examples/jsm/nodes/accessors/ModelNode.js +0 -33
  540. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +0 -39
  541. package/examples/jsm/nodes/accessors/NormalNode.js +0 -96
  542. package/examples/jsm/nodes/accessors/PointUVNode.js +0 -26
  543. package/examples/jsm/nodes/accessors/PositionNode.js +0 -104
  544. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +0 -35
  545. package/examples/jsm/nodes/accessors/SkinningNode.js +0 -124
  546. package/examples/jsm/nodes/accessors/StorageBufferNode.js +0 -72
  547. package/examples/jsm/nodes/accessors/TangentNode.js +0 -109
  548. package/examples/jsm/nodes/accessors/TextureSizeNode.js +0 -35
  549. package/examples/jsm/nodes/accessors/UVNode.js +0 -47
  550. package/examples/jsm/nodes/core/CacheNode.js +0 -49
  551. package/examples/jsm/nodes/core/IndexNode.js +0 -66
  552. package/examples/jsm/nodes/core/NodeCache.js +0 -26
  553. package/examples/jsm/nodes/core/NodeKeywords.js +0 -80
  554. package/examples/jsm/nodes/core/PropertyNode.js +0 -72
  555. package/examples/jsm/nodes/core/UniformGroupNode.js +0 -36
  556. package/examples/jsm/nodes/core/VaryingNode.js +0 -65
  557. package/examples/jsm/nodes/display/BlendModeNode.js +0 -128
  558. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +0 -99
  559. package/examples/jsm/nodes/display/ColorSpaceNode.js +0 -108
  560. package/examples/jsm/nodes/display/FrontFacingNode.js +0 -27
  561. package/examples/jsm/nodes/display/PassNode.js +0 -183
  562. package/examples/jsm/nodes/display/ToneMappingNode.js +0 -184
  563. package/examples/jsm/nodes/display/ViewportDepthNode.js +0 -97
  564. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +0 -31
  565. package/examples/jsm/nodes/display/ViewportNode.js +0 -134
  566. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +0 -31
  567. package/examples/jsm/nodes/fog/FogExp2Node.js +0 -35
  568. package/examples/jsm/nodes/fog/FogNode.js +0 -38
  569. package/examples/jsm/nodes/fog/FogRangeNode.js +0 -34
  570. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +0 -40
  571. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +0 -393
  572. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +0 -13
  573. package/examples/jsm/nodes/lighting/AONode.js +0 -27
  574. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +0 -241
  575. package/examples/jsm/nodes/lighting/EnvironmentNode.js +0 -181
  576. package/examples/jsm/nodes/lighting/LightNode.js +0 -57
  577. package/examples/jsm/nodes/lighting/LightingContextNode.js +0 -66
  578. package/examples/jsm/nodes/lighting/LightsNode.js +0 -188
  579. package/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  580. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -28
  581. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -28
  582. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +0 -34
  583. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -40
  584. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -65
  585. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +0 -155
  586. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +0 -80
  587. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -90
  588. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +0 -130
  589. package/examples/jsm/nodes/math/HashNode.js +0 -34
  590. package/examples/jsm/nodes/math/MathNode.js +0 -391
  591. package/examples/jsm/nodes/math/OperatorNode.js +0 -274
  592. package/examples/jsm/nodes/procedural/CheckerNode.js +0 -42
  593. package/examples/jsm/nodes/utils/DiscardNode.js +0 -27
  594. package/examples/jsm/nodes/utils/EquirectUVNode.js +0 -33
  595. package/examples/jsm/nodes/utils/MatcapUVNode.js +0 -30
  596. package/examples/jsm/nodes/utils/PackingNode.js +0 -55
  597. package/examples/jsm/nodes/utils/RotateUVNode.js +0 -35
  598. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
  599. package/examples/jsm/objects/QuadMesh.js +0 -66
  600. package/examples/jsm/renderers/common/Bindings.js +0 -173
  601. package/examples/jsm/renderers/common/ChainMap.js +0 -89
  602. package/examples/jsm/renderers/common/PostProcessing.js +0 -25
  603. package/examples/jsm/renderers/common/RenderObject.js +0 -221
  604. package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +0 -44
  605. package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +0 -49
  606. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +0 -104
  607. package/examples/jsm/utils/GPUStatsPanel.js +0 -128
  608. package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  609. package/src/renderers/WebGL1Renderer.js +0 -7
  610. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -10
  611. /package/{examples/jsm → src}/nodes/core/NodeAttribute.js +0 -0
  612. /package/{examples/jsm → src}/nodes/core/NodeCode.js +0 -0
  613. /package/{examples/jsm → src}/nodes/core/NodeFunctionInput.js +0 -0
  614. /package/{examples/jsm → src}/nodes/core/NodeParser.js +0 -0
  615. /package/{examples/jsm → src}/nodes/core/NodeVar.js +0 -0
  616. /package/{examples/jsm → src}/nodes/core/NodeVarying.js +0 -0
  617. /package/{examples/jsm → src}/nodes/core/UniformGroup.js +0 -0
  618. /package/{examples/jsm → src}/nodes/core/constants.js +0 -0
  619. /package/{examples/jsm → src}/nodes/materialx/DISCLAIMER.md +0 -0
  620. /package/{examples/jsm → src}/nodes/parsers/GLSLNodeParser.js +0 -0
  621. /package/{examples/jsm → src}/renderers/common/Binding.js +0 -0
  622. /package/{examples/jsm → src}/renderers/common/Buffer.js +0 -0
  623. /package/{examples/jsm → src}/renderers/common/BufferUtils.js +0 -0
  624. /package/{examples/jsm → src}/renderers/common/ComputePipeline.js +0 -0
  625. /package/{examples/jsm → src}/renderers/common/Constants.js +0 -0
  626. /package/{examples/jsm → src}/renderers/common/DataMap.js +0 -0
  627. /package/{examples/jsm → src}/renderers/common/Pipeline.js +0 -0
  628. /package/{examples/jsm → src}/renderers/common/ProgrammableStage.js +0 -0
  629. /package/{examples/jsm → src}/renderers/common/RenderLists.js +0 -0
  630. /package/{examples/jsm → src}/renderers/common/RenderPipeline.js +0 -0
  631. /package/{examples/jsm → src}/renderers/common/Sampler.js +0 -0
  632. /package/{examples/jsm → src}/renderers/common/StorageBuffer.js +0 -0
  633. /package/{examples/jsm → src}/renderers/common/UniformBuffer.js +0 -0
  634. /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLCapabilities.js +0 -0
  635. /package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeParser.js +0 -0
package/src/Three.js CHANGED
@@ -5,7 +5,6 @@ export { WebGL3DRenderTarget } from './renderers/WebGL3DRenderTarget.js';
5
5
  export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
6
6
  export { WebGLRenderTarget } from './renderers/WebGLRenderTarget.js';
7
7
  export { WebGLRenderer } from './renderers/WebGLRenderer.js';
8
- export { WebGL1Renderer } from './renderers/WebGL1Renderer.js';
9
8
  export { ShaderLib } from './renderers/shaders/ShaderLib.js';
10
9
  export { UniformsLib } from './renderers/shaders/UniformsLib.js';
11
10
  export { UniformsUtils } from './renderers/shaders/UniformsUtils.js';
@@ -121,6 +120,7 @@ export { Sphere } from './math/Sphere.js';
121
120
  export { Ray } from './math/Ray.js';
122
121
  export { Matrix4 } from './math/Matrix4.js';
123
122
  export { Matrix3 } from './math/Matrix3.js';
123
+ export { Matrix2 } from './math/Matrix2.js';
124
124
  export { Box3 } from './math/Box3.js';
125
125
  export { Box2 } from './math/Box2.js';
126
126
  export { Line3 } from './math/Line3.js';
@@ -151,15 +151,25 @@ export { Path } from './extras/core/Path.js';
151
151
  export { ShapePath } from './extras/core/ShapePath.js';
152
152
  export { CurvePath } from './extras/core/CurvePath.js';
153
153
  export { Curve } from './extras/core/Curve.js';
154
+ export { Controls } from './extras/Controls.js';
154
155
  export { DataUtils } from './extras/DataUtils.js';
155
156
  export { ImageUtils } from './extras/ImageUtils.js';
156
157
  export { ShapeUtils } from './extras/ShapeUtils.js';
158
+ export { TextureUtils } from './extras/TextureUtils.js';
157
159
  export { PMREMGenerator } from './extras/PMREMGenerator.js';
158
160
  export { WebGLUtils } from './renderers/webgl/WebGLUtils.js';
159
161
  export { createCanvasElement } from './utils.js';
160
162
  export * from './constants.js';
161
163
  export * from './Three.Legacy.js';
162
164
 
165
+ export * from './materials/nodes/NodeMaterials.js';
166
+ export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
167
+ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
168
+ export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
169
+ export * from './nodes/Nodes.js';
170
+ export * from './nodes/TSL.js';
171
+ export { default as BasicNodeLibrary } from './renderers/webgpu/nodes/BasicNodeLibrary.js';
172
+
163
173
  if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
164
174
 
165
175
  __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {
@@ -170,9 +180,21 @@ if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
170
180
 
171
181
  if ( typeof window !== 'undefined' ) {
172
182
 
183
+ try {
184
+
185
+ if ( import.meta ) {
186
+
187
+ if ( ! window.__THREE__IMPORTS__) window.__THREE__IMPORTS__ = [];
188
+ window.__THREE__IMPORTS__.push( { url: import.meta.url, revision: REVISION } );
189
+
190
+ }
191
+
192
+ } catch { }
193
+
173
194
  if ( window.__THREE__ ) {
174
195
 
175
196
  console.warn( 'WARNING: Multiple instances of Three.js being imported. Existing: ' + window.__THREE__ + ', new: ' + REVISION );
197
+ console.warn( window.__THREE__IMPORTS__ );
176
198
 
177
199
  } else {
178
200
 
@@ -11,7 +11,7 @@ import { NormalAnimationBlendMode } from '../constants.js';
11
11
 
12
12
  class AnimationClip {
13
13
 
14
- constructor( name, duration = - 1, tracks, blendMode = NormalAnimationBlendMode ) {
14
+ constructor( name = '', duration = - 1, tracks = [], blendMode = NormalAnimationBlendMode ) {
15
15
 
16
16
  this.name = name;
17
17
  this.tracks = tracks;
@@ -4,7 +4,16 @@ import { KeyframeTrack } from '../KeyframeTrack.js';
4
4
  /**
5
5
  * A Track of Boolean keyframe values.
6
6
  */
7
- class BooleanKeyframeTrack extends KeyframeTrack {}
7
+ class BooleanKeyframeTrack extends KeyframeTrack {
8
+
9
+ // No interpolation parameter because only InterpolateDiscrete is valid.
10
+ constructor( name, times, values ) {
11
+
12
+ super( name, times, values );
13
+
14
+ }
15
+
16
+ }
8
17
 
9
18
  BooleanKeyframeTrack.prototype.ValueTypeName = 'bool';
10
19
  BooleanKeyframeTrack.prototype.ValueBufferType = Array;
@@ -1,4 +1,3 @@
1
- import { InterpolateLinear } from '../../constants.js';
2
1
  import { KeyframeTrack } from '../KeyframeTrack.js';
3
2
  import { QuaternionLinearInterpolant } from '../../math/interpolants/QuaternionLinearInterpolant.js';
4
3
 
@@ -17,7 +16,7 @@ class QuaternionKeyframeTrack extends KeyframeTrack {
17
16
 
18
17
  QuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';
19
18
  // ValueBufferType is inherited
20
- QuaternionKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;
19
+ // DefaultInterpolation is inherited;
21
20
  QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;
22
21
 
23
22
  export { QuaternionKeyframeTrack };
@@ -4,7 +4,16 @@ import { KeyframeTrack } from '../KeyframeTrack.js';
4
4
  /**
5
5
  * A Track that interpolates Strings
6
6
  */
7
- class StringKeyframeTrack extends KeyframeTrack {}
7
+ class StringKeyframeTrack extends KeyframeTrack {
8
+
9
+ // No interpolation parameter because only InterpolateDiscrete is valid.
10
+ constructor( name, times, values ) {
11
+
12
+ super( name, times, values );
13
+
14
+ }
15
+
16
+ }
8
17
 
9
18
  StringKeyframeTrack.prototype.ValueTypeName = 'string';
10
19
  StringKeyframeTrack.prototype.ValueBufferType = Array;
@@ -158,7 +158,7 @@ class Audio extends Object3D {
158
158
 
159
159
  }
160
160
 
161
- stop() {
161
+ stop( delay = 0 ) {
162
162
 
163
163
  if ( this.hasPlaybackControl === false ) {
164
164
 
@@ -171,7 +171,7 @@ class Audio extends Object3D {
171
171
 
172
172
  if ( this.source !== null ) {
173
173
 
174
- this.source.stop();
174
+ this.source.stop( this.context.currentTime + delay );
175
175
  this.source.onended = null;
176
176
 
177
177
  }
package/src/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- export const REVISION = '162';
1
+ export const REVISION = '169';
2
2
 
3
3
  export const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
4
4
  export const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
@@ -91,7 +91,9 @@ export const HalfFloatType = 1016;
91
91
  export const UnsignedShort4444Type = 1017;
92
92
  export const UnsignedShort5551Type = 1018;
93
93
  export const UnsignedInt248Type = 1020;
94
+ export const UnsignedInt5999Type = 35902;
94
95
  export const AlphaFormat = 1021;
96
+ export const RGBFormat = 1022;
95
97
  export const RGBAFormat = 1023;
96
98
  export const LuminanceFormat = 1024;
97
99
  export const LuminanceAlphaFormat = 1025;
@@ -101,6 +103,7 @@ export const RedFormat = 1028;
101
103
  export const RedIntegerFormat = 1029;
102
104
  export const RGFormat = 1030;
103
105
  export const RGIntegerFormat = 1031;
106
+ export const RGBIntegerFormat = 1032;
104
107
  export const RGBAIntegerFormat = 1033;
105
108
 
106
109
  export const RGB_S3TC_DXT1_Format = 33776;
@@ -149,12 +152,10 @@ export const AdditiveAnimationBlendMode = 2501;
149
152
  export const TrianglesDrawMode = 0;
150
153
  export const TriangleStripDrawMode = 1;
151
154
  export const TriangleFanDrawMode = 2;
152
- /** @deprecated Use LinearSRGBColorSpace or NoColorSpace in three.js r152+. */
153
- export const LinearEncoding = 3000;
154
- /** @deprecated Use SRGBColorSpace in three.js r152+. */
155
- export const sRGBEncoding = 3001;
156
155
  export const BasicDepthPacking = 3200;
157
156
  export const RGBADepthPacking = 3201;
157
+ export const RGBDepthPacking = 3202;
158
+ export const RGDepthPacking = 3203;
158
159
  export const TangentSpaceNormalMap = 0;
159
160
  export const ObjectSpaceNormalMap = 1;
160
161
 
@@ -211,7 +212,5 @@ export const StreamCopyUsage = 35042;
211
212
  export const GLSL1 = '100';
212
213
  export const GLSL3 = '300 es';
213
214
 
214
- export const _SRGBAFormat = 1035; // fallback for WebGL 1
215
-
216
215
  export const WebGLCoordinateSystem = 2000;
217
216
  export const WebGPUCoordinateSystem = 2001;
@@ -3,7 +3,6 @@ import { Vector2 } from '../math/Vector2.js';
3
3
  import { denormalize, normalize } from '../math/MathUtils.js';
4
4
  import { StaticDrawUsage, FloatType } from '../constants.js';
5
5
  import { fromHalfFloat, toHalfFloat } from '../extras/DataUtils.js';
6
- import { warnOnce } from '../utils.js';
7
6
 
8
7
  const _vector = /*@__PURE__*/ new Vector3();
9
8
  const _vector2 = /*@__PURE__*/ new Vector2();
@@ -28,7 +27,6 @@ class BufferAttribute {
28
27
  this.normalized = normalized;
29
28
 
30
29
  this.usage = StaticDrawUsage;
31
- this._updateRange = { offset: 0, count: - 1 };
32
30
  this.updateRanges = [];
33
31
  this.gpuType = FloatType;
34
32
 
@@ -44,13 +42,6 @@ class BufferAttribute {
44
42
 
45
43
  }
46
44
 
47
- get updateRange() {
48
-
49
- warnOnce( 'THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.' ); // @deprecated, r159
50
- return this._updateRange;
51
-
52
- }
53
-
54
45
  setUsage( value ) {
55
46
 
56
47
  this.usage = value;
package/src/core/Clock.js CHANGED
@@ -67,7 +67,7 @@ class Clock {
67
67
 
68
68
  function now() {
69
69
 
70
- return ( typeof performance === 'undefined' ? Date : performance ).now(); // see #10732
70
+ return performance.now();
71
71
 
72
72
  }
73
73
 
@@ -1,6 +1,5 @@
1
1
  import * as MathUtils from '../math/MathUtils.js';
2
2
  import { StaticDrawUsage } from '../constants.js';
3
- import { warnOnce } from '../utils.js';
4
3
 
5
4
  class InterleavedBuffer {
6
5
 
@@ -13,7 +12,6 @@ class InterleavedBuffer {
13
12
  this.count = array !== undefined ? array.length / stride : 0;
14
13
 
15
14
  this.usage = StaticDrawUsage;
16
- this._updateRange = { offset: 0, count: - 1 };
17
15
  this.updateRanges = [];
18
16
 
19
17
  this.version = 0;
@@ -30,13 +28,6 @@ class InterleavedBuffer {
30
28
 
31
29
  }
32
30
 
33
- get updateRange() {
34
-
35
- warnOnce( 'THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.' ); // @deprecated, r159
36
- return this._updateRange;
37
-
38
- }
39
-
40
31
  setUsage( value ) {
41
32
 
42
33
  this.usage = value;
@@ -333,12 +333,7 @@ class Object3D extends EventDispatcher {
333
333
 
334
334
  if ( object && object.isObject3D ) {
335
335
 
336
- if ( object.parent !== null ) {
337
-
338
- object.parent.remove( object );
339
-
340
- }
341
-
336
+ object.removeFromParent();
342
337
  object.parent = this;
343
338
  this.children.push( object );
344
339
 
@@ -431,10 +426,18 @@ class Object3D extends EventDispatcher {
431
426
 
432
427
  object.applyMatrix4( _m1 );
433
428
 
434
- this.add( object );
429
+ object.removeFromParent();
430
+ object.parent = this;
431
+ this.children.push( object );
435
432
 
436
433
  object.updateWorldMatrix( false, true );
437
434
 
435
+ object.dispatchEvent( _addedEvent );
436
+
437
+ _childaddedEvent.child = object;
438
+ this.dispatchEvent( _childaddedEvent );
439
+ _childaddedEvent.child = null;
440
+
438
441
  return this;
439
442
 
440
443
  }
@@ -586,13 +589,17 @@ class Object3D extends EventDispatcher {
586
589
 
587
590
  if ( this.matrixWorldNeedsUpdate || force ) {
588
591
 
589
- if ( this.parent === null ) {
592
+ if ( this.matrixWorldAutoUpdate === true ) {
590
593
 
591
- this.matrixWorld.copy( this.matrix );
594
+ if ( this.parent === null ) {
592
595
 
593
- } else {
596
+ this.matrixWorld.copy( this.matrix );
594
597
 
595
- this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );
598
+ } else {
599
+
600
+ this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );
601
+
602
+ }
596
603
 
597
604
  }
598
605
 
@@ -602,7 +609,7 @@ class Object3D extends EventDispatcher {
602
609
 
603
610
  }
604
611
 
605
- // update children
612
+ // make sure descendants are updated if required
606
613
 
607
614
  const children = this.children;
608
615
 
@@ -610,11 +617,7 @@ class Object3D extends EventDispatcher {
610
617
 
611
618
  const child = children[ i ];
612
619
 
613
- if ( child.matrixWorldAutoUpdate === true || force === true ) {
614
-
615
- child.updateMatrixWorld( force );
616
-
617
- }
620
+ child.updateMatrixWorld( force );
618
621
 
619
622
  }
620
623
 
@@ -624,7 +627,7 @@ class Object3D extends EventDispatcher {
624
627
 
625
628
  const parent = this.parent;
626
629
 
627
- if ( updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true ) {
630
+ if ( updateParents === true && parent !== null ) {
628
631
 
629
632
  parent.updateWorldMatrix( true, false );
630
633
 
@@ -632,17 +635,21 @@ class Object3D extends EventDispatcher {
632
635
 
633
636
  if ( this.matrixAutoUpdate ) this.updateMatrix();
634
637
 
635
- if ( this.parent === null ) {
638
+ if ( this.matrixWorldAutoUpdate === true ) {
636
639
 
637
- this.matrixWorld.copy( this.matrix );
640
+ if ( this.parent === null ) {
638
641
 
639
- } else {
642
+ this.matrixWorld.copy( this.matrix );
643
+
644
+ } else {
640
645
 
641
- this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );
646
+ this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );
647
+
648
+ }
642
649
 
643
650
  }
644
651
 
645
- // update children
652
+ // make sure descendants are updated
646
653
 
647
654
  if ( updateChildren === true ) {
648
655
 
@@ -652,11 +659,7 @@ class Object3D extends EventDispatcher {
652
659
 
653
660
  const child = children[ i ];
654
661
 
655
- if ( child.matrixWorldAutoUpdate === true ) {
656
-
657
- child.updateWorldMatrix( false, true );
658
-
659
- }
662
+ child.updateWorldMatrix( false, true );
660
663
 
661
664
  }
662
665
 
@@ -749,7 +752,7 @@ class Object3D extends EventDispatcher {
749
752
  sphereCenter: bound.sphere.center.toArray()
750
753
  } ) );
751
754
 
752
- object.maxGeometryCount = this._maxGeometryCount;
755
+ object.maxInstanceCount = this._maxInstanceCount;
753
756
  object.maxVertexCount = this._maxVertexCount;
754
757
  object.maxIndexCount = this._maxIndexCount;
755
758
 
@@ -758,6 +761,8 @@ class Object3D extends EventDispatcher {
758
761
 
759
762
  object.matricesTexture = this._matricesTexture.toJSON( meta );
760
763
 
764
+ if ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );
765
+
761
766
  if ( this.boundingSphere !== null ) {
762
767
 
763
768
  object.boundingSphere = {
@@ -101,13 +101,17 @@ function ascSort( a, b ) {
101
101
 
102
102
  function intersect( object, raycaster, intersects, recursive ) {
103
103
 
104
+ let propagate = true;
105
+
104
106
  if ( object.layers.test( raycaster.layers ) ) {
105
107
 
106
- object.raycast( raycaster, intersects );
108
+ const result = object.raycast( raycaster, intersects );
109
+
110
+ if ( result === false ) propagate = false;
107
111
 
108
112
  }
109
113
 
110
- if ( recursive === true ) {
114
+ if ( propagate === true && recursive === true ) {
111
115
 
112
116
  const children = object.children;
113
117
 
@@ -34,6 +34,8 @@ class RenderTarget extends EventDispatcher {
34
34
  minFilter: LinearFilter,
35
35
  depthBuffer: true,
36
36
  stencilBuffer: false,
37
+ resolveDepthBuffer: true,
38
+ resolveStencilBuffer: true,
37
39
  depthTexture: null,
38
40
  samples: 0,
39
41
  count: 1
@@ -58,6 +60,9 @@ class RenderTarget extends EventDispatcher {
58
60
  this.depthBuffer = options.depthBuffer;
59
61
  this.stencilBuffer = options.stencilBuffer;
60
62
 
63
+ this.resolveDepthBuffer = options.resolveDepthBuffer;
64
+ this.resolveStencilBuffer = options.resolveStencilBuffer;
65
+
61
66
  this.depthTexture = options.depthTexture;
62
67
 
63
68
  this.samples = options.samples;
@@ -135,6 +140,9 @@ class RenderTarget extends EventDispatcher {
135
140
  this.depthBuffer = source.depthBuffer;
136
141
  this.stencilBuffer = source.stencilBuffer;
137
142
 
143
+ this.resolveDepthBuffer = source.resolveDepthBuffer;
144
+ this.resolveStencilBuffer = source.resolveStencilBuffer;
145
+
138
146
  if ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();
139
147
 
140
148
  this.samples = source.samples;
@@ -0,0 +1,32 @@
1
+ import { EventDispatcher } from '../core/EventDispatcher.js';
2
+
3
+ class Controls extends EventDispatcher {
4
+
5
+ constructor( object, domElement = null ) {
6
+
7
+ super();
8
+
9
+ this.object = object;
10
+ this.domElement = domElement;
11
+
12
+ this.enabled = true;
13
+
14
+ this.state = - 1;
15
+
16
+ this.keys = {};
17
+ this.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };
18
+ this.touches = { ONE: null, TWO: null };
19
+
20
+ }
21
+
22
+ connect() {}
23
+
24
+ disconnect() {}
25
+
26
+ dispose() {}
27
+
28
+ update( /* delta */ ) {}
29
+
30
+ }
31
+
32
+ export { Controls };
@@ -49,16 +49,16 @@ const INV_PHI = 1 / PHI;
49
49
  // Vertices of a dodecahedron (except the opposites, which represent the
50
50
  // same axis), used as axis directions evenly spread on a sphere.
51
51
  const _axisDirections = [
52
- /*@__PURE__*/ new Vector3( 1, 1, 1 ),
53
- /*@__PURE__*/ new Vector3( - 1, 1, 1 ),
54
- /*@__PURE__*/ new Vector3( 1, 1, - 1 ),
55
- /*@__PURE__*/ new Vector3( - 1, 1, - 1 ),
56
- /*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),
57
- /*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),
58
- /*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),
59
- /*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),
52
+ /*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ),
60
53
  /*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),
61
- /*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ) ];
54
+ /*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),
55
+ /*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),
56
+ /*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),
57
+ /*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),
58
+ /*@__PURE__*/ new Vector3( - 1, 1, - 1 ),
59
+ /*@__PURE__*/ new Vector3( 1, 1, - 1 ),
60
+ /*@__PURE__*/ new Vector3( - 1, 1, 1 ),
61
+ /*@__PURE__*/ new Vector3( 1, 1, 1 ) ];
62
62
 
63
63
  /**
64
64
  * This class generates a Prefiltered, Mipmapped Radiance Environment Map
@@ -448,12 +448,13 @@ class PMREMGenerator {
448
448
  const renderer = this._renderer;
449
449
  const autoClear = renderer.autoClear;
450
450
  renderer.autoClear = false;
451
+ const n = this._lodPlanes.length;
451
452
 
452
- for ( let i = 1; i < this._lodPlanes.length; i ++ ) {
453
+ for ( let i = 1; i < n; i ++ ) {
453
454
 
454
455
  const sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );
455
456
 
456
- const poleAxis = _axisDirections[ ( i - 1 ) % _axisDirections.length ];
457
+ const poleAxis = _axisDirections[ ( n - i - 1 ) % _axisDirections.length ];
457
458
 
458
459
  this._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );
459
460