super-three 0.137.0 → 0.141.0

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 (703) hide show
  1. package/README.md +23 -25
  2. package/build/three.cjs +3721 -4964
  3. package/build/three.js +3723 -4966
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +5705 -7216
  6. package/examples/js/animation/CCDIKSolver.js +3 -2
  7. package/examples/js/animation/MMDPhysics.js +2 -2
  8. package/examples/js/controls/ArcballControls.js +3 -1
  9. package/examples/js/controls/PointerLockControls.js +3 -2
  10. package/examples/js/controls/TrackballControls.js +1 -4
  11. package/examples/js/controls/TransformControls.js +5 -6
  12. package/examples/js/controls/experimental/CameraControls.js +2 -2
  13. package/examples/js/csm/CSMFrustum.js +1 -1
  14. package/examples/js/csm/CSMShader.js +51 -35
  15. package/examples/js/curves/CurveExtras.js +14 -18
  16. package/examples/js/effects/AnaglyphEffect.js +7 -4
  17. package/examples/js/effects/AsciiEffect.js +10 -29
  18. package/examples/js/exporters/ColladaExporter.js +29 -7
  19. package/examples/js/exporters/EXRExporter.js +458 -0
  20. package/examples/js/exporters/GLTFExporter.js +213 -128
  21. package/examples/js/exporters/OBJExporter.js +12 -18
  22. package/examples/js/exporters/PLYExporter.js +15 -20
  23. package/examples/js/exporters/USDZExporter.js +13 -0
  24. package/examples/js/geometries/DecalGeometry.js +0 -7
  25. package/examples/js/geometries/LightningStrike.js +2 -2
  26. package/examples/js/geometries/ParametricGeometries.js +3 -3
  27. package/examples/js/helpers/OctreeHelper.js +74 -0
  28. package/examples/js/helpers/VertexNormalsHelper.js +4 -23
  29. package/examples/js/helpers/VertexTangentsHelper.js +3 -13
  30. package/examples/js/helpers/ViewHelper.js +266 -0
  31. package/examples/js/interactive/HTMLMesh.js +235 -40
  32. package/examples/js/interactive/SelectionHelper.js +1 -1
  33. package/examples/js/libs/opentype.min.js +1 -118
  34. package/examples/js/lines/Line2.js +1 -2
  35. package/examples/js/lines/LineGeometry.js +10 -21
  36. package/examples/js/lines/LineMaterial.js +2 -3
  37. package/examples/js/lines/LineSegments2.js +214 -140
  38. package/examples/js/lines/LineSegmentsGeometry.js +3 -14
  39. package/examples/js/lines/Wireframe.js +2 -3
  40. package/examples/js/lines/WireframeGeometry2.js +1 -2
  41. package/examples/js/loaders/3MFLoader.js +21 -17
  42. package/examples/js/loaders/AMFLoader.js +1 -1
  43. package/examples/js/loaders/ColladaLoader.js +33 -12
  44. package/examples/js/loaders/DDSLoader.js +23 -30
  45. package/examples/js/loaders/EXRLoader.js +269 -266
  46. package/examples/js/loaders/FBXLoader.js +11 -0
  47. package/examples/js/loaders/FontLoader.js +1 -2
  48. package/examples/js/loaders/GCodeLoader.js +0 -1
  49. package/examples/js/loaders/GLTFLoader.js +249 -60
  50. package/examples/js/loaders/KMZLoader.js +1 -1
  51. package/examples/js/loaders/KTX2Loader.js +1 -9
  52. package/examples/js/loaders/LDrawLoader.js +3 -11
  53. package/examples/js/loaders/LUT3dlLoader.js +1 -1
  54. package/examples/js/loaders/LUTCubeLoader.js +1 -1
  55. package/examples/js/loaders/LWOLoader.js +4 -2
  56. package/examples/js/loaders/LogLuvLoader.js +1 -2
  57. package/examples/js/loaders/MMDLoader.js +18 -4
  58. package/examples/js/loaders/NRRDLoader.js +1 -1
  59. package/examples/js/loaders/OBJLoader.js +9 -5
  60. package/examples/js/loaders/PCDLoader.js +22 -13
  61. package/examples/js/loaders/PDBLoader.js +11 -11
  62. package/examples/js/loaders/PLYLoader.js +5 -1
  63. package/examples/js/loaders/RGBELoader.js +3 -11
  64. package/examples/js/loaders/RGBMLoader.js +12 -15
  65. package/examples/js/loaders/SVGLoader.js +16 -9
  66. package/examples/js/loaders/VOXLoader.js +3 -4
  67. package/examples/js/loaders/VTKLoader.js +260 -295
  68. package/examples/js/loaders/lwo/LWO2Parser.js +4 -4
  69. package/examples/js/loaders/lwo/LWO3Parser.js +4 -4
  70. package/examples/js/math/ConvexHull.js +6 -15
  71. package/examples/js/math/Lut.js +27 -26
  72. package/examples/js/misc/MorphAnimMesh.js +2 -2
  73. package/examples/js/misc/ProgressiveLightMap.js +1 -1
  74. package/examples/js/misc/Volume.js +37 -46
  75. package/examples/js/misc/VolumeSlice.js +21 -21
  76. package/examples/js/modifiers/EdgeSplitModifier.js +0 -7
  77. package/examples/js/modifiers/SimplifyModifier.js +1 -8
  78. package/examples/js/modifiers/TessellateModifier.js +0 -7
  79. package/examples/js/objects/Lensflare.js +2 -2
  80. package/examples/js/objects/LightningStorm.js +4 -5
  81. package/examples/js/objects/MarchingCubes.js +6 -11
  82. package/examples/js/objects/Reflector.js +10 -4
  83. package/examples/js/objects/ReflectorForSSRPass.js +1 -1
  84. package/examples/js/objects/Refractor.js +10 -4
  85. package/examples/js/objects/ShadowMesh.js +1 -2
  86. package/examples/js/objects/Sky.js +1 -1
  87. package/examples/js/objects/Water.js +1 -2
  88. package/examples/js/objects/Water2.js +1 -1
  89. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +6 -10
  90. package/examples/js/postprocessing/AfterimagePass.js +2 -6
  91. package/examples/js/postprocessing/BloomPass.js +50 -19
  92. package/examples/js/postprocessing/DotScreenPass.js +1 -1
  93. package/examples/js/postprocessing/EffectComposer.js +1 -6
  94. package/examples/js/postprocessing/LUTPass.js +2 -2
  95. package/examples/js/postprocessing/OutlinePass.js +7 -12
  96. package/examples/js/postprocessing/SAOPass.js +2 -7
  97. package/examples/js/postprocessing/SSAARenderPass.js +1 -6
  98. package/examples/js/postprocessing/SSRPass.js +3 -8
  99. package/examples/js/postprocessing/TAARenderPass.js +4 -4
  100. package/examples/js/postprocessing/UnrealBloomPass.js +3 -12
  101. package/examples/js/renderers/CSS2DRenderer.js +20 -25
  102. package/examples/js/renderers/CSS3DRenderer.js +6 -7
  103. package/examples/js/renderers/Projector.js +97 -124
  104. package/examples/js/renderers/SVGRenderer.js +3 -4
  105. package/examples/js/shaders/BlendShader.js +2 -1
  106. package/examples/js/shaders/CopyShader.js +4 -3
  107. package/examples/js/shaders/FXAAShader.js +239 -1069
  108. package/examples/js/shaders/FreiChenShader.js +1 -1
  109. package/examples/js/shaders/HorizontalBlurShader.js +1 -1
  110. package/examples/js/shaders/HorizontalTiltShiftShader.js +1 -1
  111. package/examples/js/shaders/SSRShader.js +3 -3
  112. package/examples/js/shaders/ToneMapShader.js +1 -1
  113. package/examples/js/utils/BufferGeometryUtils.js +282 -22
  114. package/examples/js/utils/GPUStatsPanel.js +1 -1
  115. package/examples/js/utils/LDrawUtils.js +6 -6
  116. package/examples/js/utils/SceneUtils.js +59 -0
  117. package/examples/js/utils/SkeletonUtils.js +1 -1
  118. package/examples/js/utils/UVsDebug.js +23 -33
  119. package/examples/jsm/animation/CCDIKSolver.js +3 -9
  120. package/examples/jsm/animation/MMDPhysics.js +1 -1
  121. package/examples/jsm/capabilities/WebGPU.js +6 -0
  122. package/examples/jsm/controls/ArcballControls.js +3 -1
  123. package/examples/jsm/controls/PointerLockControls.js +4 -2
  124. package/examples/jsm/controls/TrackballControls.js +1 -4
  125. package/examples/jsm/controls/TransformControls.js +6 -6
  126. package/examples/jsm/controls/experimental/CameraControls.js +2 -2
  127. package/examples/jsm/csm/CSMFrustum.js +1 -1
  128. package/examples/jsm/csm/CSMShader.js +51 -35
  129. package/examples/jsm/curves/CurveExtras.js +15 -17
  130. package/examples/jsm/effects/AnaglyphEffect.js +4 -4
  131. package/examples/jsm/effects/AsciiEffect.js +9 -22
  132. package/examples/jsm/exporters/ColladaExporter.js +31 -6
  133. package/examples/jsm/exporters/EXRExporter.js +507 -0
  134. package/examples/jsm/exporters/GLTFExporter.js +231 -125
  135. package/examples/jsm/exporters/KTX2Exporter.js +281 -0
  136. package/examples/jsm/exporters/OBJExporter.js +11 -18
  137. package/examples/jsm/exporters/PLYExporter.js +23 -21
  138. package/examples/jsm/exporters/USDZExporter.js +12 -0
  139. package/examples/jsm/geometries/DecalGeometry.js +0 -7
  140. package/examples/jsm/geometries/LightningStrike.js +2 -2
  141. package/examples/jsm/geometries/ParametricGeometries.js +3 -3
  142. package/examples/jsm/helpers/OctreeHelper.js +58 -0
  143. package/examples/jsm/helpers/VertexNormalsHelper.js +4 -25
  144. package/examples/jsm/helpers/VertexTangentsHelper.js +3 -15
  145. package/examples/jsm/helpers/ViewHelper.js +295 -0
  146. package/examples/jsm/interactive/HTMLMesh.js +252 -34
  147. package/examples/jsm/interactive/SelectionHelper.js +1 -1
  148. package/examples/jsm/libs/flow.module.js +30 -27
  149. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  150. package/examples/jsm/libs/mikktspace.module.js +128 -0
  151. package/examples/jsm/libs/opentype.module.js +14568 -0
  152. package/examples/jsm/lines/Line2.js +2 -2
  153. package/examples/jsm/lines/LineGeometry.js +11 -19
  154. package/examples/jsm/lines/LineMaterial.js +3 -3
  155. package/examples/jsm/lines/LineSegments2.js +210 -145
  156. package/examples/jsm/lines/LineSegmentsGeometry.js +3 -12
  157. package/examples/jsm/lines/Wireframe.js +3 -3
  158. package/examples/jsm/lines/WireframeGeometry2.js +2 -2
  159. package/examples/jsm/loaders/3DMLoader.js +3 -2
  160. package/examples/jsm/loaders/3MFLoader.js +21 -17
  161. package/examples/jsm/loaders/AMFLoader.js +1 -1
  162. package/examples/jsm/loaders/ColladaLoader.js +40 -12
  163. package/examples/jsm/loaders/DDSLoader.js +21 -28
  164. package/examples/jsm/loaders/EXRLoader.js +268 -265
  165. package/examples/jsm/loaders/FBXLoader.js +11 -0
  166. package/examples/jsm/loaders/FontLoader.js +2 -2
  167. package/examples/jsm/loaders/GCodeLoader.js +0 -1
  168. package/examples/jsm/loaders/GLTFLoader.js +263 -66
  169. package/examples/jsm/loaders/KMZLoader.js +1 -1
  170. package/examples/jsm/loaders/KTX2Loader.js +1 -10
  171. package/examples/jsm/loaders/LDrawLoader.js +4 -11
  172. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  173. package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
  174. package/examples/jsm/loaders/LWOLoader.js +5 -3
  175. package/examples/jsm/loaders/LogLuvLoader.js +2 -2
  176. package/examples/jsm/loaders/MMDLoader.js +21 -3
  177. package/examples/jsm/loaders/NRRDLoader.js +1 -2
  178. package/examples/jsm/loaders/OBJLoader.js +11 -7
  179. package/examples/jsm/loaders/PCDLoader.js +23 -15
  180. package/examples/jsm/loaders/PDBLoader.js +11 -11
  181. package/examples/jsm/loaders/PLYLoader.js +10 -2
  182. package/examples/jsm/loaders/RGBELoader.js +4 -12
  183. package/examples/jsm/loaders/RGBMLoader.js +14 -11
  184. package/examples/jsm/loaders/SVGLoader.js +17 -9
  185. package/examples/jsm/loaders/TTFLoader.js +1 -1
  186. package/examples/jsm/loaders/VOXLoader.js +5 -5
  187. package/examples/jsm/loaders/VTKLoader.js +256 -284
  188. package/examples/jsm/loaders/ifc/web-ifc-api.js +9 -8
  189. package/examples/jsm/loaders/lwo/LWO2Parser.js +4 -4
  190. package/examples/jsm/loaders/lwo/LWO3Parser.js +4 -4
  191. package/examples/jsm/math/ConvexHull.js +6 -15
  192. package/examples/jsm/math/Lut.js +35 -25
  193. package/examples/jsm/misc/MorphAnimMesh.js +2 -2
  194. package/examples/jsm/misc/ProgressiveLightMap.js +1 -1
  195. package/examples/jsm/misc/Volume.js +37 -44
  196. package/examples/jsm/misc/VolumeSlice.js +21 -21
  197. package/examples/jsm/modifiers/EdgeSplitModifier.js +0 -7
  198. package/examples/jsm/modifiers/SimplifyModifier.js +1 -8
  199. package/examples/jsm/modifiers/TessellateModifier.js +0 -7
  200. package/examples/jsm/node-editor/NodeEditor.js +78 -9
  201. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +14 -0
  202. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  203. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  204. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  205. package/examples/jsm/node-editor/core/BaseNode.js +17 -11
  206. package/examples/jsm/node-editor/core/DataFile.js +59 -0
  207. package/examples/jsm/node-editor/core/FileEditor.js +20 -0
  208. package/examples/jsm/node-editor/core/FileURLEditor.js +29 -0
  209. package/examples/jsm/node-editor/display/BlendEditor.js +3 -3
  210. package/examples/jsm/node-editor/display/NormalMapEditor.js +49 -0
  211. package/examples/jsm/node-editor/examples/matcap.json +1 -0
  212. package/examples/jsm/node-editor/inputs/ColorEditor.js +7 -6
  213. package/examples/jsm/node-editor/inputs/FloatEditor.js +2 -2
  214. package/examples/jsm/node-editor/inputs/SliderEditor.js +2 -2
  215. package/examples/jsm/node-editor/inputs/TextureEditor.js +155 -0
  216. package/examples/jsm/node-editor/inputs/Vector2Editor.js +3 -2
  217. package/examples/jsm/node-editor/inputs/Vector3Editor.js +3 -2
  218. package/examples/jsm/node-editor/inputs/Vector4Editor.js +4 -3
  219. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +3 -3
  220. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +16 -11
  221. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +15 -5
  222. package/examples/jsm/node-editor/math/AngleEditor.js +3 -2
  223. package/examples/jsm/node-editor/math/DotEditor.js +2 -2
  224. package/examples/jsm/node-editor/math/InvertEditor.js +4 -4
  225. package/examples/jsm/node-editor/math/LimiterEditor.js +22 -9
  226. package/examples/jsm/node-editor/math/NormalizeEditor.js +3 -2
  227. package/examples/jsm/node-editor/math/OperatorEditor.js +20 -8
  228. package/examples/jsm/node-editor/math/PowerEditor.js +17 -8
  229. package/examples/jsm/node-editor/math/TrigonometryEditor.js +3 -2
  230. package/examples/jsm/node-editor/procedural/CheckerEditor.js +4 -4
  231. package/examples/jsm/node-editor/utils/JoinEditor.js +2 -2
  232. package/examples/jsm/node-editor/utils/OscillatorEditor.js +2 -2
  233. package/examples/jsm/node-editor/utils/PreviewEditor.js +166 -0
  234. package/examples/jsm/node-editor/utils/SplitEditor.js +2 -2
  235. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  236. package/examples/jsm/nodes/Nodes.js +283 -94
  237. package/examples/jsm/nodes/accessors/BufferNode.js +24 -0
  238. package/examples/jsm/nodes/accessors/CameraNode.js +27 -196
  239. package/examples/jsm/nodes/accessors/CubeTextureNode.js +103 -0
  240. package/examples/jsm/nodes/accessors/InstanceNode.js +58 -0
  241. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialNode.js +49 -11
  242. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialReferenceNode.js +0 -0
  243. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelNode.js +8 -0
  244. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelViewProjectionNode.js +0 -0
  245. package/examples/jsm/nodes/accessors/NormalNode.js +39 -99
  246. package/examples/jsm/{renderers/nodes → nodes}/accessors/Object3DNode.js +34 -17
  247. package/examples/jsm/{renderers/nodes → nodes}/accessors/PointUVNode.js +2 -2
  248. package/examples/jsm/nodes/accessors/PositionNode.js +41 -110
  249. package/examples/jsm/nodes/accessors/ReferenceNode.js +65 -0
  250. package/examples/jsm/nodes/accessors/ReflectNode.js +34 -121
  251. package/examples/jsm/nodes/accessors/SkinningNode.js +102 -0
  252. package/examples/jsm/nodes/accessors/StorageBufferNode.js +21 -0
  253. package/examples/jsm/nodes/accessors/TextureNode.js +100 -0
  254. package/examples/jsm/nodes/accessors/UVNode.js +17 -43
  255. package/examples/jsm/nodes/accessors/UserDataNode.js +23 -0
  256. package/examples/jsm/nodes/core/ArrayUniformNode.js +23 -0
  257. package/examples/jsm/nodes/core/AttributeNode.js +33 -30
  258. package/examples/jsm/{renderers/nodes → nodes}/core/BypassNode.js +2 -2
  259. package/examples/jsm/{renderers/nodes → nodes}/core/CodeNode.js +2 -30
  260. package/examples/jsm/nodes/core/ConstNode.js +10 -106
  261. package/examples/jsm/{renderers/nodes → nodes}/core/ContextNode.js +17 -3
  262. package/examples/jsm/nodes/core/ExpressionNode.js +24 -7
  263. package/examples/jsm/nodes/core/FunctionCallNode.js +26 -67
  264. package/examples/jsm/nodes/core/FunctionNode.js +43 -216
  265. package/examples/jsm/nodes/core/InputNode.js +28 -60
  266. package/examples/jsm/nodes/core/InstanceIndexNode.js +21 -0
  267. package/examples/jsm/nodes/core/Node.js +228 -94
  268. package/examples/jsm/{renderers/nodes → nodes}/core/NodeAttribute.js +2 -2
  269. package/examples/jsm/nodes/core/NodeBuilder.js +388 -560
  270. package/examples/jsm/{renderers/nodes → nodes}/core/NodeCode.js +0 -0
  271. package/examples/jsm/nodes/core/NodeFrame.js +30 -23
  272. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunction.js +0 -0
  273. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunctionInput.js +0 -0
  274. package/examples/jsm/{renderers/nodes → nodes}/core/NodeKeywords.js +0 -0
  275. package/examples/jsm/{renderers/nodes → nodes}/core/NodeParser.js +0 -0
  276. package/examples/jsm/nodes/core/NodeUniform.js +8 -6
  277. package/examples/jsm/nodes/core/NodeUtils.js +69 -37
  278. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVar.js +2 -2
  279. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVary.js +2 -2
  280. package/examples/jsm/{renderers/nodes → nodes}/core/PropertyNode.js +0 -0
  281. package/examples/jsm/nodes/core/TempNode.js +20 -112
  282. package/examples/jsm/nodes/core/UniformNode.js +46 -0
  283. package/examples/jsm/nodes/core/VarNode.js +58 -27
  284. package/examples/jsm/{renderers/nodes → nodes}/core/VaryNode.js +0 -0
  285. package/examples/jsm/{renderers/nodes → nodes}/core/constants.js +0 -0
  286. package/examples/jsm/{renderers/nodes → nodes}/display/ColorSpaceNode.js +10 -11
  287. package/examples/jsm/nodes/display/FrontFacingNode.js +21 -0
  288. package/examples/jsm/nodes/display/NormalMapNode.js +86 -0
  289. package/examples/jsm/nodes/display/ToneMappingNode.js +51 -0
  290. package/examples/jsm/nodes/fog/FogNode.js +31 -0
  291. package/examples/jsm/nodes/fog/FogRangeNode.js +27 -0
  292. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +33 -0
  293. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -0
  294. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +27 -0
  295. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +18 -0
  296. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +18 -0
  297. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +18 -0
  298. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +94 -0
  299. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +22 -0
  300. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +12 -0
  301. package/examples/jsm/nodes/functions/material/getRoughness.js +18 -0
  302. package/examples/jsm/nodes/gpgpu/ComputeNode.js +63 -0
  303. package/examples/jsm/nodes/lighting/AONode.js +25 -0
  304. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +37 -0
  305. package/examples/jsm/nodes/lighting/EnvironmentNode.js +65 -0
  306. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +50 -0
  307. package/examples/jsm/nodes/lighting/LightingContextNode.js +75 -0
  308. package/examples/jsm/nodes/lighting/LightingNode.js +19 -0
  309. package/examples/jsm/nodes/lighting/LightsNode.js +120 -0
  310. package/examples/jsm/nodes/lighting/PunctualLightNode.js +68 -0
  311. package/examples/jsm/nodes/loaders/NodeLoader.js +107 -0
  312. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +42 -0
  313. package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -0
  314. package/examples/jsm/{renderers/nodes → nodes}/materials/LineBasicNodeMaterial.js +11 -4
  315. package/examples/jsm/nodes/materials/Materials.js +65 -0
  316. package/examples/jsm/{renderers/nodes → nodes}/materials/MeshBasicNodeMaterial.js +13 -4
  317. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +162 -22
  318. package/examples/jsm/nodes/materials/NodeMaterial.js +128 -113
  319. package/examples/jsm/{renderers/nodes → nodes}/materials/PointsNodeMaterial.js +13 -4
  320. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +84 -16
  321. package/examples/jsm/nodes/math/CondNode.js +26 -95
  322. package/examples/jsm/nodes/math/MathNode.js +164 -187
  323. package/examples/jsm/nodes/math/OperatorNode.js +161 -41
  324. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeFunction.js +2 -2
  325. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeParser.js +0 -0
  326. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeFunction.js +20 -5
  327. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeParser.js +0 -0
  328. package/examples/jsm/nodes/procedural/CheckerNode.js +16 -57
  329. package/examples/jsm/nodes/shadernode/ShaderNode.js +262 -0
  330. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +274 -0
  331. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +106 -0
  332. package/examples/jsm/{renderers/nodes → nodes}/utils/ArrayElementNode.js +3 -3
  333. package/examples/jsm/{renderers/nodes → nodes}/utils/ConvertNode.js +11 -3
  334. package/examples/jsm/nodes/utils/JoinNode.js +17 -89
  335. package/examples/jsm/nodes/utils/MatcapUVNode.js +25 -0
  336. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +32 -0
  337. package/examples/jsm/{renderers/nodes → nodes}/utils/OscNode.js +18 -2
  338. package/examples/jsm/{renderers/nodes → nodes}/utils/SplitNode.js +16 -0
  339. package/examples/jsm/{renderers/nodes → nodes}/utils/SpriteSheetUVNode.js +3 -3
  340. package/examples/jsm/nodes/utils/TimerNode.js +30 -65
  341. package/examples/jsm/objects/Lensflare.js +2 -2
  342. package/examples/jsm/objects/LightningStorm.js +4 -4
  343. package/examples/jsm/objects/MarchingCubes.js +5 -9
  344. package/examples/jsm/objects/Reflector.js +8 -4
  345. package/examples/jsm/objects/ReflectorForSSRPass.js +2 -2
  346. package/examples/jsm/objects/Refractor.js +8 -4
  347. package/examples/jsm/objects/ShadowMesh.js +2 -2
  348. package/examples/jsm/objects/Sky.js +2 -2
  349. package/examples/jsm/objects/Water.js +2 -2
  350. package/examples/jsm/objects/Water2.js +2 -2
  351. package/examples/jsm/offscreen/jank.js +5 -5
  352. package/examples/jsm/offscreen/offscreen.js +1 -1
  353. package/examples/jsm/offscreen/scene.js +11 -11
  354. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +5 -7
  355. package/examples/jsm/postprocessing/AfterimagePass.js +0 -10
  356. package/examples/jsm/postprocessing/BloomPass.js +48 -20
  357. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  358. package/examples/jsm/postprocessing/EffectComposer.js +1 -9
  359. package/examples/jsm/postprocessing/LUTPass.js +2 -2
  360. package/examples/jsm/postprocessing/OutlinePass.js +7 -11
  361. package/examples/jsm/postprocessing/SAOPass.js +2 -9
  362. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -4
  363. package/examples/jsm/postprocessing/SSRPass.js +3 -9
  364. package/examples/jsm/postprocessing/TAARenderPass.js +4 -4
  365. package/examples/jsm/postprocessing/UnrealBloomPass.js +3 -8
  366. package/examples/jsm/renderers/CSS2DRenderer.js +21 -24
  367. package/examples/jsm/renderers/CSS3DRenderer.js +7 -8
  368. package/examples/jsm/renderers/Projector.js +101 -128
  369. package/examples/jsm/renderers/SVGRenderer.js +4 -4
  370. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +1 -1
  371. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +127 -23
  372. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +14 -3
  373. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +5 -5
  374. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +4 -4
  375. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +16 -10
  376. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +8 -7
  377. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +43 -0
  378. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +14 -7
  379. package/examples/jsm/renderers/webgpu/WebGPUInfo.js +1 -1
  380. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -6
  381. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +20 -20
  382. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +2 -1
  383. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +66 -0
  384. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -24
  385. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +14 -14
  386. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +2 -2
  387. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +5 -8
  388. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +23 -20
  389. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +37 -18
  390. package/examples/jsm/renderers/webgpu/WebGPUUniform.js +14 -14
  391. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +5 -32
  392. package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +2 -2
  393. package/examples/jsm/renderers/webgpu/constants.js +3 -2
  394. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +276 -284
  395. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeSampledTexture.js +20 -2
  396. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +24 -14
  397. package/examples/jsm/shaders/BlendShader.js +2 -1
  398. package/examples/jsm/shaders/CopyShader.js +4 -3
  399. package/examples/jsm/shaders/FXAAShader.js +219 -1051
  400. package/examples/jsm/shaders/FreiChenShader.js +1 -1
  401. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -1
  402. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +1 -1
  403. package/examples/jsm/shaders/SSRShader.js +3 -3
  404. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  405. package/examples/jsm/utils/BufferGeometryUtils.js +292 -22
  406. package/examples/jsm/utils/GPUStatsPanel.js +1 -1
  407. package/examples/jsm/utils/LDrawUtils.js +6 -6
  408. package/examples/jsm/utils/SceneUtils.js +76 -2
  409. package/examples/jsm/utils/SkeletonUtils.js +1 -1
  410. package/examples/jsm/utils/UVsDebug.js +23 -32
  411. package/examples/jsm/webxr/ARButton.js +14 -4
  412. package/examples/jsm/webxr/OculusHandPointerModel.js +3 -3
  413. package/examples/jsm/webxr/Text2D.js +1 -1
  414. package/examples/jsm/webxr/VRButton.js +15 -1
  415. package/examples/jsm/webxr/XRHandMeshModel.js +3 -7
  416. package/examples/jsm/webxr/XRHandModelFactory.js +3 -0
  417. package/package.json +37 -19
  418. package/src/Three.Legacy.js +41 -1912
  419. package/src/Three.js +6 -3
  420. package/src/animation/AnimationClip.js +1 -1
  421. package/src/animation/AnimationMixer.js +5 -3
  422. package/src/animation/AnimationObjectGroup.js +2 -2
  423. package/src/animation/PropertyBinding.js +8 -18
  424. package/src/audio/PositionalAudio.js +8 -0
  425. package/src/cameras/ArrayCamera.js +2 -3
  426. package/src/cameras/Camera.js +2 -2
  427. package/src/cameras/CubeCamera.js +6 -1
  428. package/src/cameras/OrthographicCamera.js +2 -2
  429. package/src/cameras/PerspectiveCamera.js +2 -2
  430. package/src/constants.js +7 -2
  431. package/src/core/BufferAttribute.js +7 -12
  432. package/src/core/BufferGeometry.js +4 -4
  433. package/src/core/GLBufferAttribute.js +2 -2
  434. package/src/core/InstancedBufferAttribute.js +2 -2
  435. package/src/core/InstancedBufferGeometry.js +2 -2
  436. package/src/core/InstancedInterleavedBuffer.js +2 -2
  437. package/src/core/InterleavedBuffer.js +2 -2
  438. package/src/core/InterleavedBufferAttribute.js +5 -11
  439. package/src/core/Object3D.js +6 -3
  440. package/src/core/Raycaster.js +2 -2
  441. package/src/extras/DataUtils.js +127 -40
  442. package/src/extras/Earcut.js +2 -2
  443. package/src/extras/PMREMGenerator.js +132 -104
  444. package/src/extras/core/CurvePath.js +3 -3
  445. package/src/extras/core/ShapePath.js +5 -6
  446. package/src/extras/curves/ArcCurve.js +2 -2
  447. package/src/extras/curves/CatmullRomCurve3.js +2 -2
  448. package/src/extras/curves/CubicBezierCurve.js +2 -2
  449. package/src/extras/curves/CubicBezierCurve3.js +2 -2
  450. package/src/extras/curves/EllipseCurve.js +2 -2
  451. package/src/extras/curves/LineCurve.js +2 -2
  452. package/src/extras/curves/LineCurve3.js +2 -1
  453. package/src/extras/curves/QuadraticBezierCurve.js +2 -2
  454. package/src/extras/curves/QuadraticBezierCurve3.js +2 -2
  455. package/src/extras/curves/SplineCurve.js +2 -2
  456. package/src/geometries/CapsuleGeometry.js +33 -0
  457. package/src/geometries/ExtrudeGeometry.js +2 -0
  458. package/src/geometries/Geometries.js +1 -0
  459. package/src/geometries/TorusKnotGeometry.js +2 -2
  460. package/src/geometries/WireframeGeometry.js +3 -2
  461. package/src/helpers/BoxHelper.js +2 -2
  462. package/src/helpers/PointLightHelper.js +1 -1
  463. package/src/helpers/SkeletonHelper.js +3 -2
  464. package/src/lights/AmbientLight.js +2 -2
  465. package/src/lights/AmbientLightProbe.js +2 -2
  466. package/src/lights/DirectionalLight.js +2 -2
  467. package/src/lights/DirectionalLightShadow.js +2 -2
  468. package/src/lights/HemisphereLight.js +4 -4
  469. package/src/lights/HemisphereLightProbe.js +2 -2
  470. package/src/lights/Light.js +4 -4
  471. package/src/lights/LightProbe.js +2 -2
  472. package/src/lights/PointLight.js +4 -4
  473. package/src/lights/PointLightShadow.js +2 -2
  474. package/src/lights/RectAreaLight.js +2 -2
  475. package/src/lights/SpotLight.js +4 -4
  476. package/src/lights/SpotLightShadow.js +2 -2
  477. package/src/loaders/FileLoader.js +3 -1
  478. package/src/loaders/ImageBitmapLoader.js +2 -2
  479. package/src/loaders/ImageLoader.js +1 -1
  480. package/src/loaders/LoaderUtils.js +1 -1
  481. package/src/loaders/MaterialLoader.js +8 -3
  482. package/src/loaders/ObjectLoader.js +23 -25
  483. package/src/materials/LineBasicMaterial.js +6 -13
  484. package/src/materials/LineDashedMaterial.js +2 -15
  485. package/src/materials/Material.js +48 -14
  486. package/src/materials/Materials.js +66 -18
  487. package/src/materials/MeshBasicMaterial.js +6 -31
  488. package/src/materials/MeshDepthMaterial.js +2 -22
  489. package/src/materials/MeshDistanceMaterial.js +2 -22
  490. package/src/materials/MeshLambertMaterial.js +6 -34
  491. package/src/materials/MeshMatcapMaterial.js +6 -28
  492. package/src/materials/MeshNormalMaterial.js +2 -26
  493. package/src/materials/MeshPhongMaterial.js +6 -48
  494. package/src/materials/MeshPhysicalMaterial.js +32 -35
  495. package/src/materials/MeshStandardMaterial.js +6 -54
  496. package/src/materials/MeshToonMaterial.js +6 -38
  497. package/src/materials/PointsMaterial.js +6 -15
  498. package/src/materials/RawShaderMaterial.js +2 -2
  499. package/src/materials/ShaderMaterial.js +3 -17
  500. package/src/materials/ShadowMaterial.js +6 -8
  501. package/src/materials/SpriteMaterial.js +6 -12
  502. package/src/math/Box2.js +2 -2
  503. package/src/math/Box3.js +5 -5
  504. package/src/math/Color.js +84 -35
  505. package/src/math/ColorManagement.js +74 -0
  506. package/src/math/Euler.js +16 -14
  507. package/src/math/Interpolant.js +4 -9
  508. package/src/math/MathUtils.js +76 -7
  509. package/src/math/Matrix3.js +2 -2
  510. package/src/math/Matrix4.js +2 -3
  511. package/src/math/Plane.js +2 -2
  512. package/src/math/Quaternion.js +11 -2
  513. package/src/math/Spherical.js +1 -1
  514. package/src/math/SphericalHarmonics3.js +2 -2
  515. package/src/math/Vector2.js +2 -2
  516. package/src/math/Vector3.js +12 -3
  517. package/src/math/Vector4.js +2 -2
  518. package/src/math/interpolants/DiscreteInterpolant.js +1 -1
  519. package/src/objects/Bone.js +2 -2
  520. package/src/objects/Group.js +2 -2
  521. package/src/objects/InstancedMesh.js +4 -4
  522. package/src/objects/Line.js +76 -107
  523. package/src/objects/LineLoop.js +2 -2
  524. package/src/objects/LineSegments.js +15 -23
  525. package/src/objects/Mesh.js +82 -104
  526. package/src/objects/Points.js +32 -54
  527. package/src/objects/SkinnedMesh.js +5 -8
  528. package/src/objects/Sprite.js +4 -4
  529. package/src/renderers/WebGL3DRenderTarget.js +22 -0
  530. package/src/renderers/WebGLArrayRenderTarget.js +22 -0
  531. package/src/renderers/WebGLCubeRenderTarget.js +7 -14
  532. package/src/renderers/WebGLMultipleRenderTargets.js +8 -5
  533. package/src/renderers/WebGLRenderTarget.js +16 -18
  534. package/src/renderers/WebGLRenderer.js +108 -63
  535. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +46 -0
  536. package/src/renderers/shaders/ShaderChunk/common.glsl.js +1 -0
  537. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +12 -13
  538. package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +1 -1
  539. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +3 -19
  540. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +107 -0
  541. package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -0
  542. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -6
  543. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +25 -0
  544. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +0 -6
  545. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +23 -0
  546. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +43 -5
  547. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -0
  548. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +1 -1
  549. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +7 -7
  550. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +1 -9
  551. package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +16 -31
  552. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +1 -1
  553. package/src/renderers/shaders/ShaderChunk.js +6 -0
  554. package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -0
  555. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +1 -0
  556. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +3 -2
  557. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +1 -0
  558. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -0
  559. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +6 -0
  560. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +1 -0
  561. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +10 -0
  562. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +1 -0
  563. package/src/renderers/shaders/ShaderLib/points.glsl.js +1 -0
  564. package/src/renderers/shaders/ShaderLib.js +6 -0
  565. package/src/renderers/shaders/UniformsLib.js +2 -2
  566. package/src/renderers/webgl/WebGLAttributes.js +6 -6
  567. package/src/renderers/webgl/WebGLBackground.js +3 -0
  568. package/src/renderers/webgl/WebGLBindingStates.js +57 -29
  569. package/src/renderers/webgl/WebGLLights.js +0 -1
  570. package/src/renderers/webgl/WebGLMaterials.js +72 -187
  571. package/src/renderers/webgl/WebGLMorphtargets.js +47 -23
  572. package/src/renderers/webgl/WebGLProgram.js +57 -19
  573. package/src/renderers/webgl/WebGLPrograms.js +75 -86
  574. package/src/renderers/webgl/WebGLShaderCache.js +4 -3
  575. package/src/renderers/webgl/WebGLShadowMap.js +6 -8
  576. package/src/renderers/webgl/WebGLTextures.js +567 -380
  577. package/src/renderers/webgl/WebGLUniforms.js +79 -80
  578. package/src/renderers/webgl/WebGLUtils.js +12 -1
  579. package/src/renderers/webxr/WebXRManager.js +60 -45
  580. package/src/scenes/Fog.js +2 -2
  581. package/src/scenes/FogExp2.js +2 -2
  582. package/src/scenes/Scene.js +2 -2
  583. package/src/textures/CanvasTexture.js +2 -2
  584. package/src/textures/CompressedTexture.js +2 -2
  585. package/src/textures/CubeTexture.js +2 -2
  586. package/src/textures/{DataTexture3D.js → Data3DTexture.js} +4 -4
  587. package/src/textures/{DataTexture2DArray.js → DataArrayTexture.js} +4 -4
  588. package/src/textures/DataTexture.js +2 -5
  589. package/src/textures/DepthTexture.js +5 -5
  590. package/src/textures/FramebufferTexture.js +2 -2
  591. package/src/textures/Source.js +123 -0
  592. package/src/textures/Texture.js +27 -97
  593. package/src/textures/VideoTexture.js +2 -2
  594. package/examples/js/csm/Frustum.js +0 -133
  595. package/examples/js/deprecated/Geometry.js +0 -1656
  596. package/examples/js/loaders/VRMLoader.js +0 -72
  597. package/examples/js/objects/ReflectorRTT.js +0 -16
  598. package/examples/js/postprocessing/SSRrPass.js +0 -494
  599. package/examples/js/shaders/SSRrShader.js +0 -336
  600. package/examples/jsm/deprecated/Geometry.js +0 -1869
  601. package/examples/jsm/libs/opentype.module.min.js +0 -119
  602. package/examples/jsm/loaders/NodeMaterialLoader.js +0 -263
  603. package/examples/jsm/loaders/VRMLoader.js +0 -78
  604. package/examples/jsm/nodes/accessors/ColorsNode.js +0 -56
  605. package/examples/jsm/nodes/accessors/LightNode.js +0 -60
  606. package/examples/jsm/nodes/accessors/ResolutionNode.js +0 -64
  607. package/examples/jsm/nodes/accessors/ScreenUVNode.js +0 -64
  608. package/examples/jsm/nodes/core/NodeLib.js +0 -64
  609. package/examples/jsm/nodes/core/StructNode.js +0 -106
  610. package/examples/jsm/nodes/effects/BlurNode.js +0 -171
  611. package/examples/jsm/nodes/effects/ColorAdjustmentNode.js +0 -140
  612. package/examples/jsm/nodes/effects/LuminanceNode.js +0 -75
  613. package/examples/jsm/nodes/inputs/BoolNode.js +0 -51
  614. package/examples/jsm/nodes/inputs/ColorNode.js +0 -58
  615. package/examples/jsm/nodes/inputs/CubeTextureNode.js +0 -108
  616. package/examples/jsm/nodes/inputs/FloatNode.js +0 -51
  617. package/examples/jsm/nodes/inputs/IntNode.js +0 -51
  618. package/examples/jsm/nodes/inputs/Matrix3Node.js +0 -63
  619. package/examples/jsm/nodes/inputs/Matrix4Node.js +0 -63
  620. package/examples/jsm/nodes/inputs/PropertyNode.js +0 -47
  621. package/examples/jsm/nodes/inputs/RTTNode.js +0 -157
  622. package/examples/jsm/nodes/inputs/ReflectorNode.js +0 -90
  623. package/examples/jsm/nodes/inputs/ScreenNode.js +0 -28
  624. package/examples/jsm/nodes/inputs/TextureNode.js +0 -116
  625. package/examples/jsm/nodes/inputs/Vector2Node.js +0 -57
  626. package/examples/jsm/nodes/inputs/Vector3Node.js +0 -58
  627. package/examples/jsm/nodes/inputs/Vector4Node.js +0 -59
  628. package/examples/jsm/nodes/materials/BasicNodeMaterial.js +0 -26
  629. package/examples/jsm/nodes/materials/PhongNodeMaterial.js +0 -36
  630. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +0 -40
  631. package/examples/jsm/nodes/materials/nodes/BasicNode.js +0 -154
  632. package/examples/jsm/nodes/materials/nodes/MeshStandardNode.js +0 -116
  633. package/examples/jsm/nodes/materials/nodes/PhongNode.js +0 -409
  634. package/examples/jsm/nodes/materials/nodes/RawNode.js +0 -62
  635. package/examples/jsm/nodes/materials/nodes/SpriteNode.js +0 -236
  636. package/examples/jsm/nodes/materials/nodes/StandardNode.js +0 -609
  637. package/examples/jsm/nodes/misc/BumpMapNode.js +0 -163
  638. package/examples/jsm/nodes/misc/NormalMapNode.js +0 -138
  639. package/examples/jsm/nodes/misc/TextureCubeNode.js +0 -86
  640. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +0 -280
  641. package/examples/jsm/nodes/postprocessing/NodePass.js +0 -93
  642. package/examples/jsm/nodes/postprocessing/NodePostProcessing.js +0 -148
  643. package/examples/jsm/nodes/procedural/Fractal3DNode.js +0 -104
  644. package/examples/jsm/nodes/procedural/Noise2DNode.js +0 -149
  645. package/examples/jsm/nodes/procedural/Noise3DNode.js +0 -141
  646. package/examples/jsm/nodes/utils/BypassNode.js +0 -85
  647. package/examples/jsm/nodes/utils/ColorSpaceNode.js +0 -145
  648. package/examples/jsm/nodes/utils/MaxMIPLevelNode.js +0 -56
  649. package/examples/jsm/nodes/utils/RemapNode.js +0 -155
  650. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -101
  651. package/examples/jsm/nodes/utils/SubSlotNode.js +0 -77
  652. package/examples/jsm/nodes/utils/SwitchNode.js +0 -103
  653. package/examples/jsm/nodes/utils/UVTransformNode.js +0 -66
  654. package/examples/jsm/nodes/utils/VelocityNode.js +0 -170
  655. package/examples/jsm/objects/ReflectorRTT.js +0 -15
  656. package/examples/jsm/postprocessing/SSRrPass.js +0 -579
  657. package/examples/jsm/renderers/nodes/Nodes.js +0 -166
  658. package/examples/jsm/renderers/nodes/ShaderNode.js +0 -373
  659. package/examples/jsm/renderers/nodes/accessors/CameraNode.js +0 -68
  660. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +0 -63
  661. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +0 -67
  662. package/examples/jsm/renderers/nodes/accessors/ReferenceNode.js +0 -91
  663. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +0 -107
  664. package/examples/jsm/renderers/nodes/accessors/UVNode.js +0 -25
  665. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +0 -23
  666. package/examples/jsm/renderers/nodes/core/AttributeNode.js +0 -54
  667. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +0 -32
  668. package/examples/jsm/renderers/nodes/core/FunctionCallNode.js +0 -67
  669. package/examples/jsm/renderers/nodes/core/FunctionNode.js +0 -87
  670. package/examples/jsm/renderers/nodes/core/InputNode.js +0 -66
  671. package/examples/jsm/renderers/nodes/core/Node.js +0 -104
  672. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +0 -634
  673. package/examples/jsm/renderers/nodes/core/NodeFrame.js +0 -59
  674. package/examples/jsm/renderers/nodes/core/NodeUniform.js +0 -28
  675. package/examples/jsm/renderers/nodes/core/TempNode.js +0 -43
  676. package/examples/jsm/renderers/nodes/core/VarNode.js +0 -51
  677. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +0 -87
  678. package/examples/jsm/renderers/nodes/functions/BSDFs.js +0 -122
  679. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +0 -27
  680. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +0 -25
  681. package/examples/jsm/renderers/nodes/inputs/ColorNode.js +0 -18
  682. package/examples/jsm/renderers/nodes/inputs/FloatNode.js +0 -17
  683. package/examples/jsm/renderers/nodes/inputs/IntNode.js +0 -17
  684. package/examples/jsm/renderers/nodes/inputs/Matrix3Node.js +0 -18
  685. package/examples/jsm/renderers/nodes/inputs/Matrix4Node.js +0 -18
  686. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +0 -74
  687. package/examples/jsm/renderers/nodes/inputs/Vector2Node.js +0 -18
  688. package/examples/jsm/renderers/nodes/inputs/Vector3Node.js +0 -18
  689. package/examples/jsm/renderers/nodes/inputs/Vector4Node.js +0 -18
  690. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +0 -59
  691. package/examples/jsm/renderers/nodes/lights/LightNode.js +0 -79
  692. package/examples/jsm/renderers/nodes/lights/LightsNode.js +0 -44
  693. package/examples/jsm/renderers/nodes/materials/Materials.js +0 -11
  694. package/examples/jsm/renderers/nodes/materials/MeshStandardNodeMaterial.js +0 -63
  695. package/examples/jsm/renderers/nodes/math/CondNode.js +0 -60
  696. package/examples/jsm/renderers/nodes/math/MathNode.js +0 -242
  697. package/examples/jsm/renderers/nodes/math/OperatorNode.js +0 -174
  698. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +0 -36
  699. package/examples/jsm/renderers/nodes/utils/JoinNode.js +0 -42
  700. package/examples/jsm/renderers/nodes/utils/TimerNode.js +0 -47
  701. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -20
  702. package/examples/jsm/shaders/SSRrShader.js +0 -307
  703. package/src/renderers/WebGLMultisampleRenderTarget.js +0 -33
@@ -15,8 +15,7 @@ import { BufferGeometry } from '../core/BufferGeometry.js';
15
15
  import { Mesh } from '../objects/Mesh.js';
16
16
  import { OrthographicCamera } from '../cameras/OrthographicCamera.js';
17
17
  import { PerspectiveCamera } from '../cameras/PerspectiveCamera.js';
18
- import { RawShaderMaterial } from '../materials/RawShaderMaterial.js';
19
- import { Vector2 } from '../math/Vector2.js';
18
+ import { ShaderMaterial } from '../materials/ShaderMaterial.js';
20
19
  import { Vector3 } from '../math/Vector3.js';
21
20
  import { Color } from '../math/Color.js';
22
21
  import { WebGLRenderTarget } from '../renderers/WebGLRenderTarget.js';
@@ -25,8 +24,6 @@ import { BoxGeometry } from '../geometries/BoxGeometry.js';
25
24
  import { BackSide } from '../constants.js';
26
25
 
27
26
  const LOD_MIN = 4;
28
- const LOD_MAX = 8;
29
- const SIZE_MAX = Math.pow( 2, LOD_MAX );
30
27
 
31
28
  // The standard deviations (radians) associated with the extra mips. These are
32
29
  // chosen to approximate a Trowbridge-Reitz distribution function times the
@@ -34,14 +31,11 @@ const SIZE_MAX = Math.pow( 2, LOD_MAX );
34
31
  // variance #defines in cube_uv_reflection_fragment.glsl.js.
35
32
  const EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];
36
33
 
37
- const TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;
38
-
39
34
  // The maximum length of the blur for loop. Smaller sigmas will use fewer
40
35
  // samples and exit early, but not recompile the shader.
41
36
  const MAX_SAMPLES = 20;
42
37
 
43
38
  const _flatCamera = /*@__PURE__*/ new OrthographicCamera();
44
- const { _lodPlanes, _sizeLods, _sigmas } = /*@__PURE__*/ _createPlanes();
45
39
  const _clearColor = /*@__PURE__*/ new Color();
46
40
  let _oldTarget = null;
47
41
 
@@ -85,9 +79,15 @@ class PMREMGenerator {
85
79
  this._renderer = renderer;
86
80
  this._pingPongRenderTarget = null;
87
81
 
88
- this._blurMaterial = _getBlurShader( MAX_SAMPLES );
89
- this._equirectShader = null;
90
- this._cubemapShader = null;
82
+ this._lodMax = 0;
83
+ this._cubeSize = 0;
84
+ this._lodPlanes = [];
85
+ this._sizeLods = [];
86
+ this._sigmas = [];
87
+
88
+ this._blurMaterial = null;
89
+ this._cubemapMaterial = null;
90
+ this._equirectMaterial = null;
91
91
 
92
92
  this._compileMaterial( this._blurMaterial );
93
93
 
@@ -103,9 +103,14 @@ class PMREMGenerator {
103
103
  fromScene( scene, sigma = 0, near = 0.1, far = 100 ) {
104
104
 
105
105
  _oldTarget = this._renderer.getRenderTarget();
106
+
107
+ this._setSize( 256 );
108
+
106
109
  const cubeUVRenderTarget = this._allocateTargets();
110
+ cubeUVRenderTarget.depthBuffer = true;
107
111
 
108
112
  this._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );
113
+
109
114
  if ( sigma > 0 ) {
110
115
 
111
116
  this._blur( cubeUVRenderTarget, 0, 0, sigma );
@@ -147,10 +152,10 @@ class PMREMGenerator {
147
152
  */
148
153
  compileCubemapShader() {
149
154
 
150
- if ( this._cubemapShader === null ) {
155
+ if ( this._cubemapMaterial === null ) {
151
156
 
152
- this._cubemapShader = _getCubemapShader();
153
- this._compileMaterial( this._cubemapShader );
157
+ this._cubemapMaterial = _getCubemapMaterial();
158
+ this._compileMaterial( this._cubemapMaterial );
154
159
 
155
160
  }
156
161
 
@@ -162,10 +167,10 @@ class PMREMGenerator {
162
167
  */
163
168
  compileEquirectangularShader() {
164
169
 
165
- if ( this._equirectShader === null ) {
170
+ if ( this._equirectMaterial === null ) {
166
171
 
167
- this._equirectShader = _getEquirectShader();
168
- this._compileMaterial( this._equirectShader );
172
+ this._equirectMaterial = _getEquirectMaterial();
173
+ this._compileMaterial( this._equirectMaterial );
169
174
 
170
175
  }
171
176
 
@@ -178,22 +183,35 @@ class PMREMGenerator {
178
183
  */
179
184
  dispose() {
180
185
 
181
- this._blurMaterial.dispose();
186
+ this._dispose();
182
187
 
183
- if ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();
188
+ if ( this._cubemapMaterial !== null ) this._cubemapMaterial.dispose();
189
+ if ( this._equirectMaterial !== null ) this._equirectMaterial.dispose();
184
190
 
185
- if ( this._cubemapShader !== null ) this._cubemapShader.dispose();
186
- if ( this._equirectShader !== null ) this._equirectShader.dispose();
191
+ }
187
192
 
188
- for ( let i = 0; i < _lodPlanes.length; i ++ ) {
193
+ // private interface
189
194
 
190
- _lodPlanes[ i ].dispose();
195
+ _setSize( cubeSize ) {
191
196
 
192
- }
197
+ this._lodMax = Math.floor( Math.log2( cubeSize ) );
198
+ this._cubeSize = Math.pow( 2, this._lodMax );
193
199
 
194
200
  }
195
201
 
196
- // private interface
202
+ _dispose() {
203
+
204
+ if ( this._blurMaterial !== null ) this._blurMaterial.dispose();
205
+
206
+ if ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();
207
+
208
+ for ( let i = 0; i < this._lodPlanes.length; i ++ ) {
209
+
210
+ this._lodPlanes[ i ].dispose();
211
+
212
+ }
213
+
214
+ }
197
215
 
198
216
  _cleanup( outputTarget ) {
199
217
 
@@ -205,8 +223,19 @@ class PMREMGenerator {
205
223
 
206
224
  _fromTexture( texture, renderTarget ) {
207
225
 
226
+ if ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping ) {
227
+
228
+ this._setSize( texture.image.length === 0 ? 16 : ( texture.image[ 0 ].width || texture.image[ 0 ].image.width ) );
229
+
230
+ } else { // Equirectangular
231
+
232
+ this._setSize( texture.image.width / 4 );
233
+
234
+ }
235
+
208
236
  _oldTarget = this._renderer.getRenderTarget();
209
- const cubeUVRenderTarget = renderTarget || this._allocateTargets( texture );
237
+
238
+ const cubeUVRenderTarget = renderTarget || this._allocateTargets();
210
239
  this._textureToCubeUV( texture, cubeUVRenderTarget );
211
240
  this._applyPMREM( cubeUVRenderTarget );
212
241
  this._cleanup( cubeUVRenderTarget );
@@ -215,7 +244,10 @@ class PMREMGenerator {
215
244
 
216
245
  }
217
246
 
218
- _allocateTargets( texture ) { // warning: null texture is valid
247
+ _allocateTargets() {
248
+
249
+ const width = 3 * Math.max( this._cubeSize, 16 * 7 );
250
+ const height = 4 * this._cubeSize;
219
251
 
220
252
  const params = {
221
253
  magFilter: LinearFilter,
@@ -227,12 +259,22 @@ class PMREMGenerator {
227
259
  depthBuffer: false
228
260
  };
229
261
 
230
- const cubeUVRenderTarget = _createRenderTarget( params );
231
- cubeUVRenderTarget.depthBuffer = texture ? false : true;
262
+ const cubeUVRenderTarget = _createRenderTarget( width, height, params );
263
+
264
+ if ( this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width ) {
265
+
266
+ if ( this._pingPongRenderTarget !== null ) {
267
+
268
+ this._dispose();
269
+
270
+ }
271
+
272
+ this._pingPongRenderTarget = _createRenderTarget( width, height, params );
232
273
 
233
- if ( this._pingPongRenderTarget === null ) {
274
+ const { _lodMax } = this;
275
+ ( { sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes( _lodMax ) );
234
276
 
235
- this._pingPongRenderTarget = _createRenderTarget( params );
277
+ this._blurMaterial = _getBlurShader( _lodMax, width, height );
236
278
 
237
279
  }
238
280
 
@@ -242,7 +284,7 @@ class PMREMGenerator {
242
284
 
243
285
  _compileMaterial( material ) {
244
286
 
245
- const tmpMesh = new Mesh( _lodPlanes[ 0 ], material );
287
+ const tmpMesh = new Mesh( this._lodPlanes[ 0 ], material );
246
288
  this._renderer.compile( tmpMesh, _flatCamera );
247
289
 
248
290
  }
@@ -295,6 +337,7 @@ class PMREMGenerator {
295
337
  for ( let i = 0; i < 6; i ++ ) {
296
338
 
297
339
  const col = i % 3;
340
+
298
341
  if ( col === 0 ) {
299
342
 
300
343
  cubeCamera.up.set( 0, upSign[ i ], 0 );
@@ -312,8 +355,10 @@ class PMREMGenerator {
312
355
 
313
356
  }
314
357
 
315
- _setViewport( cubeUVRenderTarget,
316
- col * SIZE_MAX, i > 2 ? SIZE_MAX : 0, SIZE_MAX, SIZE_MAX );
358
+ const size = this._cubeSize;
359
+
360
+ _setViewport( cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size );
361
+
317
362
  renderer.setRenderTarget( cubeUVRenderTarget );
318
363
 
319
364
  if ( useSolidColor ) {
@@ -343,38 +388,34 @@ class PMREMGenerator {
343
388
 
344
389
  if ( isCubeTexture ) {
345
390
 
346
- if ( this._cubemapShader === null ) {
391
+ if ( this._cubemapMaterial === null ) {
347
392
 
348
- this._cubemapShader = _getCubemapShader();
393
+ this._cubemapMaterial = _getCubemapMaterial();
349
394
 
350
395
  }
351
396
 
352
- this._cubemapShader.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;
397
+ this._cubemapMaterial.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;
353
398
 
354
399
  } else {
355
400
 
356
- if ( this._equirectShader === null ) {
401
+ if ( this._equirectMaterial === null ) {
357
402
 
358
- this._equirectShader = _getEquirectShader();
403
+ this._equirectMaterial = _getEquirectMaterial();
359
404
 
360
405
  }
361
406
 
362
407
  }
363
408
 
364
- const material = isCubeTexture ? this._cubemapShader : this._equirectShader;
365
- const mesh = new Mesh( _lodPlanes[ 0 ], material );
409
+ const material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;
410
+ const mesh = new Mesh( this._lodPlanes[ 0 ], material );
366
411
 
367
412
  const uniforms = material.uniforms;
368
413
 
369
414
  uniforms[ 'envMap' ].value = texture;
370
415
 
371
- if ( ! isCubeTexture ) {
372
-
373
- uniforms[ 'texelSize' ].value.set( 1.0 / texture.image.width, 1.0 / texture.image.height );
374
-
375
- }
416
+ const size = this._cubeSize;
376
417
 
377
- _setViewport( cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX );
418
+ _setViewport( cubeUVRenderTarget, 0, 0, 3 * size, 2 * size );
378
419
 
379
420
  renderer.setRenderTarget( cubeUVRenderTarget );
380
421
  renderer.render( mesh, _flatCamera );
@@ -387,9 +428,9 @@ class PMREMGenerator {
387
428
  const autoClear = renderer.autoClear;
388
429
  renderer.autoClear = false;
389
430
 
390
- for ( let i = 1; i < TOTAL_LODS; i ++ ) {
431
+ for ( let i = 1; i < this._lodPlanes.length; i ++ ) {
391
432
 
392
- const sigma = Math.sqrt( _sigmas[ i ] * _sigmas[ i ] - _sigmas[ i - 1 ] * _sigmas[ i - 1 ] );
433
+ const sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );
393
434
 
394
435
  const poleAxis = _axisDirections[ ( i - 1 ) % _axisDirections.length ];
395
436
 
@@ -447,10 +488,10 @@ class PMREMGenerator {
447
488
  // Number of standard deviations at which to cut off the discrete approximation.
448
489
  const STANDARD_DEVIATIONS = 3;
449
490
 
450
- const blurMesh = new Mesh( _lodPlanes[ lodOut ], blurMaterial );
491
+ const blurMesh = new Mesh( this._lodPlanes[ lodOut ], blurMaterial );
451
492
  const blurUniforms = blurMaterial.uniforms;
452
493
 
453
- const pixels = _sizeLods[ lodIn ] - 1;
494
+ const pixels = this._sizeLods[ lodIn ] - 1;
454
495
  const radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES - 1 );
455
496
  const sigmaPixels = sigmaRadians / radiansPerPixel;
456
497
  const samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES;
@@ -501,12 +542,13 @@ class PMREMGenerator {
501
542
 
502
543
  }
503
544
 
545
+ const { _lodMax } = this;
504
546
  blurUniforms[ 'dTheta' ].value = radiansPerPixel;
505
- blurUniforms[ 'mipInt' ].value = LOD_MAX - lodIn;
547
+ blurUniforms[ 'mipInt' ].value = _lodMax - lodIn;
506
548
 
507
- const outputSize = _sizeLods[ lodOut ];
508
- const x = 3 * Math.max( 0, SIZE_MAX - 2 * outputSize );
509
- const y = ( lodOut === 0 ? 0 : 2 * SIZE_MAX ) + 2 * outputSize * ( lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0 );
549
+ const outputSize = this._sizeLods[ lodOut ];
550
+ const x = 3 * outputSize * ( lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0 );
551
+ const y = 4 * ( this._cubeSize - outputSize );
510
552
 
511
553
  _setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );
512
554
  renderer.setRenderTarget( targetOut );
@@ -516,23 +558,27 @@ class PMREMGenerator {
516
558
 
517
559
  }
518
560
 
519
- function _createPlanes() {
520
561
 
521
- const _lodPlanes = [];
522
- const _sizeLods = [];
523
- const _sigmas = [];
524
562
 
525
- let lod = LOD_MAX;
563
+ function _createPlanes( lodMax ) {
526
564
 
527
- for ( let i = 0; i < TOTAL_LODS; i ++ ) {
565
+ const lodPlanes = [];
566
+ const sizeLods = [];
567
+ const sigmas = [];
568
+
569
+ let lod = lodMax;
570
+
571
+ const totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;
572
+
573
+ for ( let i = 0; i < totalLods; i ++ ) {
528
574
 
529
575
  const sizeLod = Math.pow( 2, lod );
530
- _sizeLods.push( sizeLod );
576
+ sizeLods.push( sizeLod );
531
577
  let sigma = 1.0 / sizeLod;
532
578
 
533
- if ( i > LOD_MAX - LOD_MIN ) {
579
+ if ( i > lodMax - LOD_MIN ) {
534
580
 
535
- sigma = EXTRA_LOD_SIGMA[ i - LOD_MAX + LOD_MIN - 1 ];
581
+ sigma = EXTRA_LOD_SIGMA[ i - lodMax + LOD_MIN - 1 ];
536
582
 
537
583
  } else if ( i === 0 ) {
538
584
 
@@ -540,11 +586,11 @@ function _createPlanes() {
540
586
 
541
587
  }
542
588
 
543
- _sigmas.push( sigma );
589
+ sigmas.push( sigma );
544
590
 
545
- const texelSize = 1.0 / ( sizeLod - 1 );
546
- const min = - texelSize / 2;
547
- const max = 1 + texelSize / 2;
591
+ const texelSize = 1.0 / ( sizeLod - 2 );
592
+ const min = - texelSize;
593
+ const max = 1 + texelSize;
548
594
  const uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];
549
595
 
550
596
  const cubeFaces = 6;
@@ -580,7 +626,7 @@ function _createPlanes() {
580
626
  planes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );
581
627
  planes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );
582
628
  planes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );
583
- _lodPlanes.push( planes );
629
+ lodPlanes.push( planes );
584
630
 
585
631
  if ( lod > LOD_MIN ) {
586
632
 
@@ -590,13 +636,13 @@ function _createPlanes() {
590
636
 
591
637
  }
592
638
 
593
- return { _lodPlanes, _sizeLods, _sigmas };
639
+ return { lodPlanes, sizeLods, sigmas };
594
640
 
595
641
  }
596
642
 
597
- function _createRenderTarget( params ) {
643
+ function _createRenderTarget( width, height, params ) {
598
644
 
599
- const cubeUVRenderTarget = new WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params );
645
+ const cubeUVRenderTarget = new WebGLRenderTarget( width, height, params );
600
646
  cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;
601
647
  cubeUVRenderTarget.texture.name = 'PMREM.cubeUv';
602
648
  cubeUVRenderTarget.scissorTest = true;
@@ -611,15 +657,20 @@ function _setViewport( target, x, y, width, height ) {
611
657
 
612
658
  }
613
659
 
614
- function _getBlurShader( maxSamples ) {
660
+ function _getBlurShader( lodMax, width, height ) {
615
661
 
616
- const weights = new Float32Array( maxSamples );
662
+ const weights = new Float32Array( MAX_SAMPLES );
617
663
  const poleAxis = new Vector3( 0, 1, 0 );
618
- const shaderMaterial = new RawShaderMaterial( {
664
+ const shaderMaterial = new ShaderMaterial( {
619
665
 
620
666
  name: 'SphericalGaussianBlur',
621
667
 
622
- defines: { 'n': maxSamples },
668
+ defines: {
669
+ 'n': MAX_SAMPLES,
670
+ 'CUBEUV_TEXEL_WIDTH': 1.0 / width,
671
+ 'CUBEUV_TEXEL_HEIGHT': 1.0 / height,
672
+ 'CUBEUV_MAX_MIP': `${lodMax}.0`,
673
+ },
623
674
 
624
675
  uniforms: {
625
676
  'envMap': { value: null },
@@ -705,16 +756,14 @@ function _getBlurShader( maxSamples ) {
705
756
 
706
757
  }
707
758
 
708
- function _getEquirectShader() {
759
+ function _getEquirectMaterial() {
709
760
 
710
- const texelSize = new Vector2( 1, 1 );
711
- const shaderMaterial = new RawShaderMaterial( {
761
+ return new ShaderMaterial( {
712
762
 
713
763
  name: 'EquirectangularToCubeUV',
714
764
 
715
765
  uniforms: {
716
- 'envMap': { value: null },
717
- 'texelSize': { value: texelSize }
766
+ 'envMap': { value: null }
718
767
  },
719
768
 
720
769
  vertexShader: _getCommonVertexShader(),
@@ -727,30 +776,15 @@ function _getEquirectShader() {
727
776
  varying vec3 vOutputDirection;
728
777
 
729
778
  uniform sampler2D envMap;
730
- uniform vec2 texelSize;
731
779
 
732
780
  #include <common>
733
781
 
734
782
  void main() {
735
783
 
736
- gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
737
-
738
784
  vec3 outputDirection = normalize( vOutputDirection );
739
785
  vec2 uv = equirectUv( outputDirection );
740
786
 
741
- vec2 f = fract( uv / texelSize - 0.5 );
742
- uv -= f * texelSize;
743
- vec3 tl = texture2D ( envMap, uv ).rgb;
744
- uv.x += texelSize.x;
745
- vec3 tr = texture2D ( envMap, uv ).rgb;
746
- uv.y += texelSize.y;
747
- vec3 br = texture2D ( envMap, uv ).rgb;
748
- uv.x -= texelSize.x;
749
- vec3 bl = texture2D ( envMap, uv ).rgb;
750
-
751
- vec3 tm = mix( tl, tr, f.x );
752
- vec3 bm = mix( bl, br, f.x );
753
- gl_FragColor.rgb = mix( tm, bm, f.y );
787
+ gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
754
788
 
755
789
  }
756
790
  `,
@@ -761,13 +795,11 @@ function _getEquirectShader() {
761
795
 
762
796
  } );
763
797
 
764
- return shaderMaterial;
765
-
766
798
  }
767
799
 
768
- function _getCubemapShader() {
800
+ function _getCubemapMaterial() {
769
801
 
770
- const shaderMaterial = new RawShaderMaterial( {
802
+ return new ShaderMaterial( {
771
803
 
772
804
  name: 'CubemapToCubeUV',
773
805
 
@@ -802,8 +834,6 @@ function _getCubemapShader() {
802
834
 
803
835
  } );
804
836
 
805
- return shaderMaterial;
806
-
807
837
  }
808
838
 
809
839
  function _getCommonVertexShader() {
@@ -813,8 +843,6 @@ function _getCommonVertexShader() {
813
843
  precision mediump float;
814
844
  precision mediump int;
815
845
 
816
- attribute vec3 position;
817
- attribute vec2 uv;
818
846
  attribute float faceIndex;
819
847
 
820
848
  varying vec3 vOutputDirection;
@@ -160,9 +160,9 @@ class CurvePath extends Curve {
160
160
  for ( let i = 0, curves = this.curves; i < curves.length; i ++ ) {
161
161
 
162
162
  const curve = curves[ i ];
163
- const resolution = ( curve && curve.isEllipseCurve ) ? divisions * 2
164
- : ( curve && ( curve.isLineCurve || curve.isLineCurve3 ) ) ? 1
165
- : ( curve && curve.isSplineCurve ) ? divisions * curve.points.length
163
+ const resolution = curve.isEllipseCurve ? divisions * 2
164
+ : ( curve.isLineCurve || curve.isLineCurve3 ) ? 1
165
+ : curve.isSplineCurve ? divisions * curve.points.length
166
166
  : divisions;
167
167
 
168
168
  const pts = curve.getPoints( resolution );
@@ -210,7 +210,7 @@ class ShapePath {
210
210
  if ( newShapes.length > 1 ) {
211
211
 
212
212
  let ambiguous = false;
213
- const toChange = [];
213
+ let toChange = 0;
214
214
 
215
215
  for ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {
216
216
 
@@ -231,7 +231,8 @@ class ShapePath {
231
231
 
232
232
  if ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) {
233
233
 
234
- if ( sIdx !== s2Idx ) toChange.push( { froms: sIdx, tos: s2Idx, hole: hIdx } );
234
+ if ( sIdx !== s2Idx ) toChange ++;
235
+
235
236
  if ( hole_unassigned ) {
236
237
 
237
238
  hole_unassigned = false;
@@ -256,12 +257,10 @@ class ShapePath {
256
257
  }
257
258
 
258
259
  }
259
- // console.log("ambiguous: ", ambiguous);
260
260
 
261
- if ( toChange.length > 0 ) {
261
+ if ( toChange > 0 && ambiguous === false ) {
262
262
 
263
- // console.log("to change: ", toChange);
264
- if ( ! ambiguous ) newShapeHoles = betterShapeHoles;
263
+ newShapeHoles = betterShapeHoles;
265
264
 
266
265
  }
267
266
 
@@ -6,12 +6,12 @@ class ArcCurve extends EllipseCurve {
6
6
 
7
7
  super( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );
8
8
 
9
+ this.isArcCurve = true;
10
+
9
11
  this.type = 'ArcCurve';
10
12
 
11
13
  }
12
14
 
13
15
  }
14
16
 
15
- ArcCurve.prototype.isArcCurve = true;
16
-
17
17
  export { ArcCurve };
@@ -87,6 +87,8 @@ class CatmullRomCurve3 extends Curve {
87
87
 
88
88
  super();
89
89
 
90
+ this.isCatmullRomCurve3 = true;
91
+
90
92
  this.type = 'CatmullRomCurve3';
91
93
 
92
94
  this.points = points;
@@ -248,6 +250,4 @@ class CatmullRomCurve3 extends Curve {
248
250
 
249
251
  }
250
252
 
251
- CatmullRomCurve3.prototype.isCatmullRomCurve3 = true;
252
-
253
253
  export { CatmullRomCurve3 };
@@ -8,6 +8,8 @@ class CubicBezierCurve extends Curve {
8
8
 
9
9
  super();
10
10
 
11
+ this.isCubicBezierCurve = true;
12
+
11
13
  this.type = 'CubicBezierCurve';
12
14
 
13
15
  this.v0 = v0;
@@ -73,6 +75,4 @@ class CubicBezierCurve extends Curve {
73
75
 
74
76
  }
75
77
 
76
- CubicBezierCurve.prototype.isCubicBezierCurve = true;
77
-
78
78
  export { CubicBezierCurve };
@@ -8,6 +8,8 @@ class CubicBezierCurve3 extends Curve {
8
8
 
9
9
  super();
10
10
 
11
+ this.isCubicBezierCurve3 = true;
12
+
11
13
  this.type = 'CubicBezierCurve3';
12
14
 
13
15
  this.v0 = v0;
@@ -74,6 +76,4 @@ class CubicBezierCurve3 extends Curve {
74
76
 
75
77
  }
76
78
 
77
- CubicBezierCurve3.prototype.isCubicBezierCurve3 = true;
78
-
79
79
  export { CubicBezierCurve3 };
@@ -7,6 +7,8 @@ class EllipseCurve extends Curve {
7
7
 
8
8
  super();
9
9
 
10
+ this.isEllipseCurve = true;
11
+
10
12
  this.type = 'EllipseCurve';
11
13
 
12
14
  this.aX = aX;
@@ -151,6 +153,4 @@ class EllipseCurve extends Curve {
151
153
 
152
154
  }
153
155
 
154
- EllipseCurve.prototype.isEllipseCurve = true;
155
-
156
156
  export { EllipseCurve };
@@ -7,6 +7,8 @@ class LineCurve extends Curve {
7
7
 
8
8
  super();
9
9
 
10
+ this.isLineCurve = true;
11
+
10
12
  this.type = 'LineCurve';
11
13
 
12
14
  this.v1 = v1;
@@ -85,6 +87,4 @@ class LineCurve extends Curve {
85
87
 
86
88
  }
87
89
 
88
- LineCurve.prototype.isLineCurve = true;
89
-
90
90
  export { LineCurve };
@@ -7,9 +7,10 @@ class LineCurve3 extends Curve {
7
7
 
8
8
  super();
9
9
 
10
- this.type = 'LineCurve3';
11
10
  this.isLineCurve3 = true;
12
11
 
12
+ this.type = 'LineCurve3';
13
+
13
14
  this.v1 = v1;
14
15
  this.v2 = v2;
15
16
 
@@ -8,6 +8,8 @@ class QuadraticBezierCurve extends Curve {
8
8
 
9
9
  super();
10
10
 
11
+ this.isQuadraticBezierCurve = true;
12
+
11
13
  this.type = 'QuadraticBezierCurve';
12
14
 
13
15
  this.v0 = v0;
@@ -69,6 +71,4 @@ class QuadraticBezierCurve extends Curve {
69
71
 
70
72
  }
71
73
 
72
- QuadraticBezierCurve.prototype.isQuadraticBezierCurve = true;
73
-
74
74
  export { QuadraticBezierCurve };
@@ -8,6 +8,8 @@ class QuadraticBezierCurve3 extends Curve {
8
8
 
9
9
  super();
10
10
 
11
+ this.isQuadraticBezierCurve3 = true;
12
+
11
13
  this.type = 'QuadraticBezierCurve3';
12
14
 
13
15
  this.v0 = v0;
@@ -70,6 +72,4 @@ class QuadraticBezierCurve3 extends Curve {
70
72
 
71
73
  }
72
74
 
73
- QuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true;
74
-
75
75
  export { QuadraticBezierCurve3 };