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
@@ -1,5 +1,5 @@
1
1
  import Node from '../core/Node.js';
2
- import FloatNode from '../inputs/FloatNode.js';
2
+ import ConstNode from '../core/ConstNode.js';
3
3
  import UVNode from '../accessors/UVNode.js';
4
4
  import MathNode from '../math/MathNode.js';
5
5
  import OperatorNode from '../math/OperatorNode.js';
@@ -8,7 +8,7 @@ import JoinNode from '../utils/JoinNode.js';
8
8
 
9
9
  class SpriteSheetUVNode extends Node {
10
10
 
11
- constructor( countNode, uvNode = new UVNode(), frameNode = new FloatNode( 0 ).setConst( true ) ) {
11
+ constructor( countNode, uvNode = new UVNode(), frameNode = new ConstNode( 0 ) ) {
12
12
 
13
13
  super( 'vec2' );
14
14
 
@@ -24,7 +24,7 @@ class SpriteSheetUVNode extends Node {
24
24
  const uv = this.uvNode;
25
25
  const frame = this.frameNode;
26
26
 
27
- const one = new FloatNode( 1 ).setConst( true );
27
+ const one = new ConstNode( 1 );
28
28
 
29
29
  const width = new SplitNode( count, 'x' );
30
30
  const height = new SplitNode( count, 'y' );
@@ -1,99 +1,64 @@
1
- import { FloatNode } from '../inputs/FloatNode.js';
2
- import { NodeLib } from '../core/NodeLib.js';
1
+ import UniformNode from '../core/UniformNode.js';
2
+ import { NodeUpdateType } from '../core/constants.js';
3
3
 
4
- class TimerNode extends FloatNode {
4
+ class TimerNode extends UniformNode {
5
5
 
6
- constructor( scale, scope, timeScale ) {
6
+ static LOCAL = 'local';
7
+ static GLOBAL = 'global';
8
+ static DELTA = 'delta';
7
9
 
8
- super();
10
+ constructor( scope = TimerNode.LOCAL, scale = 1 ) {
9
11
 
10
- this.scale = scale !== undefined ? scale : 1;
11
- this.scope = scope || TimerNode.GLOBAL;
12
+ super( 0 );
12
13
 
13
- this.timeScale = timeScale !== undefined ? timeScale : scale !== undefined;
14
+ this.scope = scope;
15
+ this.scale = scale;
14
16
 
15
- }
16
-
17
- getReadonly() {
18
-
19
- // never use TimerNode as readonly but aways as "uniform"
20
-
21
- return false;
22
-
23
- }
24
-
25
- getUnique() {
26
-
27
- // share TimerNode "uniform" input if is used on more time with others TimerNode
28
-
29
- return this.timeScale && ( this.scope === TimerNode.GLOBAL || this.scope === TimerNode.DELTA );
17
+ this.updateType = NodeUpdateType.Frame;
30
18
 
31
19
  }
32
20
 
33
- updateFrame( frame ) {
21
+ update( frame ) {
34
22
 
35
- const scale = this.timeScale ? this.scale : 1;
23
+ const scope = this.scope;
24
+ const scale = this.scale;
36
25
 
37
- switch ( this.scope ) {
26
+ if ( scope === TimerNode.LOCAL ) {
38
27
 
39
- case TimerNode.LOCAL:
28
+ this.value += frame.deltaTime * scale;
40
29
 
41
- this.value += frame.delta * scale;
30
+ } else if ( scope === TimerNode.DELTA ) {
42
31
 
43
- break;
32
+ this.value = frame.deltaTime * scale;
44
33
 
45
- case TimerNode.DELTA:
34
+ } else {
46
35
 
47
- this.value = frame.delta * scale;
36
+ // global
48
37
 
49
- break;
50
-
51
- default:
52
-
53
- this.value = frame.time * scale;
38
+ this.value = frame.time * scale;
54
39
 
55
40
  }
56
41
 
57
42
  }
58
43
 
59
- copy( source ) {
60
-
61
- super.copy( source );
62
-
63
- this.scope = source.scope;
64
- this.scale = source.scale;
65
-
66
- this.timeScale = source.timeScale;
67
-
68
- return this;
69
-
70
- }
71
-
72
- toJSON( meta ) {
44
+ serialize( data ) {
73
45
 
74
- const data = super.toJSON( meta );
46
+ super.serialize( data );
75
47
 
76
48
  data.scope = this.scope;
77
49
  data.scale = this.scale;
78
50
 
79
- data.timeScale = this.timeScale;
80
-
81
- return data;
82
-
83
51
  }
84
52
 
85
- }
86
-
87
- TimerNode.GLOBAL = 'global';
88
- TimerNode.LOCAL = 'local';
89
- TimerNode.DELTA = 'delta';
53
+ deserialize( data ) {
90
54
 
91
- TimerNode.prototype.nodeType = 'Timer';
55
+ super.deserialize( data );
92
56
 
93
- NodeLib.addKeyword( 'time', function () {
57
+ this.scope = data.scope;
58
+ this.scale = data.scale;
94
59
 
95
- return new TimerNode();
60
+ }
96
61
 
97
- } );
62
+ }
98
63
 
99
- export { TimerNode };
64
+ export default TimerNode;
@@ -21,6 +21,8 @@ class Lensflare extends Mesh {
21
21
 
22
22
  super( Lensflare.Geometry, new MeshBasicMaterial( { opacity: 0, transparent: true } ) );
23
23
 
24
+ this.isLensflare = true;
25
+
24
26
  this.type = 'Lensflare';
25
27
  this.frustumCulled = false;
26
28
  this.renderOrder = Infinity;
@@ -265,8 +267,6 @@ class Lensflare extends Mesh {
265
267
 
266
268
  }
267
269
 
268
- Lensflare.prototype.isLensflare = true;
269
-
270
270
  //
271
271
 
272
272
  class LensflareElement {
@@ -58,6 +58,8 @@ class LightningStorm extends Object3D {
58
58
 
59
59
  super();
60
60
 
61
+ this.isLightningStorm = true;
62
+
61
63
  // Parameters
62
64
 
63
65
  this.stormParams = stormParams;
@@ -205,9 +207,9 @@ class LightningStorm extends Object3D {
205
207
 
206
208
  }
207
209
 
208
- copy( source ) {
210
+ copy( source, recursive ) {
209
211
 
210
- super.copy( source );
212
+ super.copy( source, recursive );
211
213
 
212
214
  this.stormParams.size = source.stormParams.size;
213
215
  this.stormParams.minHeight = source.stormParams.minHeight;
@@ -240,6 +242,4 @@ class LightningStorm extends Object3D {
240
242
 
241
243
  }
242
244
 
243
- LightningStorm.prototype.isLightningStorm = true;
244
-
245
245
  export { LightningStorm };
@@ -18,6 +18,8 @@ class MarchingCubes extends Mesh {
18
18
 
19
19
  super( geometry, material );
20
20
 
21
+ this.isMarchingCubes = true;
22
+
21
23
  const scope = this;
22
24
 
23
25
  // temp buffers used in polygonize
@@ -812,7 +814,7 @@ class MarchingCubes extends Mesh {
812
814
 
813
815
  };
814
816
 
815
- this.onBeforeRender = function () {
817
+ this.update = function () {
816
818
 
817
819
  this.count = 0;
818
820
 
@@ -843,13 +845,9 @@ class MarchingCubes extends Mesh {
843
845
 
844
846
  }
845
847
 
846
- // reset unneeded data
847
-
848
- for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
848
+ // set the draw range to only the processed triangles
849
849
 
850
- this.positionArray[ i ] = 0.0;
851
-
852
- }
850
+ this.geometry.setDrawRange( 0, this.count );
853
851
 
854
852
  // update geometry data
855
853
 
@@ -871,8 +869,6 @@ class MarchingCubes extends Mesh {
871
869
 
872
870
  }
873
871
 
874
- MarchingCubes.prototype.isMarchingCubes = true;
875
-
876
872
  /////////////////////////////////////
877
873
  // Marching cubes lookup tables
878
874
  /////////////////////////////////////
@@ -17,7 +17,10 @@ class Reflector extends Mesh {
17
17
 
18
18
  super( geometry );
19
19
 
20
+ this.isReflector = true;
21
+
20
22
  this.type = 'Reflector';
23
+ this.camera = new PerspectiveCamera();
21
24
 
22
25
  const scope = this;
23
26
 
@@ -26,6 +29,7 @@ class Reflector extends Mesh {
26
29
  const textureHeight = options.textureHeight || 512;
27
30
  const clipBias = options.clipBias || 0;
28
31
  const shader = options.shader || Reflector.ReflectorShader;
32
+ const multisample = ( options.multisample !== undefined ) ? options.multisample : 4;
29
33
 
30
34
  //
31
35
 
@@ -42,9 +46,9 @@ class Reflector extends Mesh {
42
46
  const q = new Vector4();
43
47
 
44
48
  const textureMatrix = new Matrix4();
45
- const virtualCamera = new PerspectiveCamera();
49
+ const virtualCamera = this.camera;
46
50
 
47
- const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight );
51
+ const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight, { samples: multisample } );
48
52
 
49
53
  const material = new ShaderMaterial( {
50
54
  uniforms: UniformsUtils.clone( shader.uniforms ),
@@ -189,8 +193,6 @@ class Reflector extends Mesh {
189
193
 
190
194
  }
191
195
 
192
- Reflector.prototype.isReflector = true;
193
-
194
196
  Reflector.ReflectorShader = {
195
197
 
196
198
  uniforms: {
@@ -252,6 +254,8 @@ Reflector.ReflectorShader = {
252
254
  vec4 base = texture2DProj( tDiffuse, vUv );
253
255
  gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
254
256
 
257
+ #include <encodings_fragment>
258
+
255
259
  }`
256
260
  };
257
261
 
@@ -20,6 +20,8 @@ class ReflectorForSSRPass extends Mesh {
20
20
 
21
21
  super( geometry );
22
22
 
23
+ this.isReflectorForSSRPass = true;
24
+
23
25
  this.type = 'ReflectorForSSRPass';
24
26
 
25
27
  const scope = this;
@@ -249,8 +251,6 @@ class ReflectorForSSRPass extends Mesh {
249
251
 
250
252
  }
251
253
 
252
- ReflectorForSSRPass.prototype.isReflectorForSSRPass = true;
253
-
254
254
  ReflectorForSSRPass.ReflectorShader = {
255
255
 
256
256
  defines: {
@@ -18,7 +18,10 @@ class Refractor extends Mesh {
18
18
 
19
19
  super( geometry );
20
20
 
21
+ this.isRefractor = true;
22
+
21
23
  this.type = 'Refractor';
24
+ this.camera = new PerspectiveCamera();
22
25
 
23
26
  const scope = this;
24
27
 
@@ -27,10 +30,11 @@ class Refractor extends Mesh {
27
30
  const textureHeight = options.textureHeight || 512;
28
31
  const clipBias = options.clipBias || 0;
29
32
  const shader = options.shader || Refractor.RefractorShader;
33
+ const multisample = ( options.multisample !== undefined ) ? options.multisample : 4;
30
34
 
31
35
  //
32
36
 
33
- const virtualCamera = new PerspectiveCamera();
37
+ const virtualCamera = this.camera;
34
38
  virtualCamera.matrixAutoUpdate = false;
35
39
  virtualCamera.userData.refractor = true;
36
40
 
@@ -41,7 +45,7 @@ class Refractor extends Mesh {
41
45
 
42
46
  // render target
43
47
 
44
- const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight );
48
+ const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight, { samples: multisample } );
45
49
 
46
50
  // material
47
51
 
@@ -258,8 +262,6 @@ class Refractor extends Mesh {
258
262
 
259
263
  }
260
264
 
261
- Refractor.prototype.isRefractor = true;
262
-
263
265
  Refractor.RefractorShader = {
264
266
 
265
267
  uniforms: {
@@ -315,6 +317,8 @@ Refractor.RefractorShader = {
315
317
  vec4 base = texture2DProj( tDiffuse, vUv );
316
318
  gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
317
319
 
320
+ #include <encodings_fragment>
321
+
318
322
  }`
319
323
 
320
324
  };
@@ -25,6 +25,8 @@ class ShadowMesh extends Mesh {
25
25
 
26
26
  super( mesh.geometry, shadowMaterial );
27
27
 
28
+ this.isShadowMesh = true;
29
+
28
30
  this.meshMatrix = mesh.matrixWorld;
29
31
 
30
32
  this.frustumCulled = false;
@@ -69,6 +71,4 @@ class ShadowMesh extends Mesh {
69
71
 
70
72
  }
71
73
 
72
- ShadowMesh.prototype.isShadowMesh = true;
73
-
74
74
  export { ShadowMesh };
@@ -38,12 +38,12 @@ class Sky extends Mesh {
38
38
 
39
39
  super( new BoxGeometry( 1, 1, 1 ), material );
40
40
 
41
+ this.isSky = true;
42
+
41
43
  }
42
44
 
43
45
  }
44
46
 
45
- Sky.prototype.isSky = true;
46
-
47
47
  Sky.SkyShader = {
48
48
 
49
49
  uniforms: {
@@ -26,6 +26,8 @@ class Water extends Mesh {
26
26
 
27
27
  super( geometry );
28
28
 
29
+ this.isWater = true;
30
+
29
31
  const scope = this;
30
32
 
31
33
  const textureWidth = options.textureWidth !== undefined ? options.textureWidth : 512;
@@ -324,6 +326,4 @@ class Water extends Mesh {
324
326
 
325
327
  }
326
328
 
327
- Water.prototype.isWater = true;
328
-
329
329
  export { Water };
@@ -27,6 +27,8 @@ class Water extends Mesh {
27
27
 
28
28
  super( geometry );
29
29
 
30
+ this.isWater = true;
31
+
30
32
  this.type = 'Water';
31
33
 
32
34
  const scope = this;
@@ -201,8 +203,6 @@ class Water extends Mesh {
201
203
 
202
204
  }
203
205
 
204
- Water.prototype.isWater = true;
205
-
206
206
  Water.WaterShader = {
207
207
 
208
208
  uniforms: {
@@ -1,9 +1,9 @@
1
- var interval = null;
2
- var result = null;
1
+ let interval = null;
2
+ let result = null;
3
3
 
4
4
  function initJank() {
5
5
 
6
- var button = document.getElementById( 'button' );
6
+ const button = document.getElementById( 'button' );
7
7
  button.addEventListener( 'click', function () {
8
8
 
9
9
  if ( interval === null ) {
@@ -30,9 +30,9 @@ function initJank() {
30
30
 
31
31
  function jank() {
32
32
 
33
- var number = 0;
33
+ let number = 0;
34
34
 
35
- for ( var i = 0; i < 10000000; i ++ ) {
35
+ for ( let i = 0; i < 10000000; i ++ ) {
36
36
 
37
37
  number += Math.random();
38
38
 
@@ -2,7 +2,7 @@ import init from './scene.js';
2
2
 
3
3
  self.onmessage = function ( message ) {
4
4
 
5
- var data = message.data;
5
+ const data = message.data;
6
6
  init( data.drawingSurface, data.width, data.height, data.pixelRatio, data.path );
7
7
 
8
8
  };
@@ -1,6 +1,6 @@
1
- import * as THREE from 'three';
1
+ import * as THREE from '../../../build/three.module.js';
2
2
 
3
- var camera, scene, renderer, group;
3
+ let camera, scene, renderer, group;
4
4
 
5
5
  function init( canvas, width, height, pixelRatio, path ) {
6
6
 
@@ -16,24 +16,24 @@ function init( canvas, width, height, pixelRatio, path ) {
16
16
 
17
17
  // we don't use ImageLoader since it has a DOM dependency (HTML5 image element)
18
18
 
19
- var loader = new THREE.ImageBitmapLoader().setPath( path );
19
+ const loader = new THREE.ImageBitmapLoader().setPath( path );
20
20
  loader.setOptions( { imageOrientation: 'flipY' } );
21
21
  loader.load( 'textures/matcaps/matcap-porcelain-white.jpg', function ( imageBitmap ) {
22
22
 
23
- var texture = new THREE.CanvasTexture( imageBitmap );
23
+ const texture = new THREE.CanvasTexture( imageBitmap );
24
24
 
25
- var geometry = new THREE.IcosahedronGeometry( 5, 8 );
26
- var materials = [
25
+ const geometry = new THREE.IcosahedronGeometry( 5, 8 );
26
+ const materials = [
27
27
  new THREE.MeshMatcapMaterial( { color: 0xaa24df, matcap: texture } ),
28
28
  new THREE.MeshMatcapMaterial( { color: 0x605d90, matcap: texture } ),
29
29
  new THREE.MeshMatcapMaterial( { color: 0xe04a3f, matcap: texture } ),
30
30
  new THREE.MeshMatcapMaterial( { color: 0xe30456, matcap: texture } )
31
31
  ];
32
32
 
33
- for ( var i = 0; i < 100; i ++ ) {
33
+ for ( let i = 0; i < 100; i ++ ) {
34
34
 
35
- var material = materials[ i % materials.length ];
36
- var mesh = new THREE.Mesh( geometry, material );
35
+ const material = materials[ i % materials.length ];
36
+ const mesh = new THREE.Mesh( geometry, material );
37
37
  mesh.position.x = random() * 200 - 100;
38
38
  mesh.position.y = random() * 200 - 100;
39
39
  mesh.position.z = random() * 200 - 100;
@@ -73,11 +73,11 @@ function animate() {
73
73
 
74
74
  // PRNG
75
75
 
76
- var seed = 1;
76
+ let seed = 1;
77
77
 
78
78
  function random() {
79
79
 
80
- var x = Math.sin( seed ++ ) * 10000;
80
+ const x = Math.sin( seed ++ ) * 10000;
81
81
 
82
82
  return x - Math.floor( x );
83
83
 
@@ -1,9 +1,7 @@
1
1
  import {
2
- LinearFilter,
3
2
  LinearMipmapLinearFilter,
4
3
  MeshBasicMaterial,
5
4
  NoBlending,
6
- RGBAFormat,
7
5
  ShaderMaterial,
8
6
  UniformsUtils,
9
7
  WebGLRenderTarget
@@ -215,19 +213,19 @@ class AdaptiveToneMappingPass extends Pass {
215
213
 
216
214
  }
217
215
 
218
- const pars = { minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat }; // was RGB format. changed to RGBA format. see discussion in #8415 / #8450
219
216
 
220
- this.luminanceRT = new WebGLRenderTarget( this.resolution, this.resolution, pars );
217
+ this.luminanceRT = new WebGLRenderTarget( this.resolution, this.resolution );
221
218
  this.luminanceRT.texture.name = 'AdaptiveToneMappingPass.l';
222
219
  this.luminanceRT.texture.generateMipmaps = false;
223
220
 
224
- this.previousLuminanceRT = new WebGLRenderTarget( this.resolution, this.resolution, pars );
221
+ this.previousLuminanceRT = new WebGLRenderTarget( this.resolution, this.resolution );
225
222
  this.previousLuminanceRT.texture.name = 'AdaptiveToneMappingPass.pl';
226
223
  this.previousLuminanceRT.texture.generateMipmaps = false;
227
224
 
228
225
  // We only need mipmapping for the current luminosity because we want a down-sampled version to sample in our adaptive shader
229
- pars.minFilter = LinearMipmapLinearFilter;
230
- pars.generateMipmaps = true;
226
+
227
+ const pars = { minFilter: LinearMipmapLinearFilter, generateMipmaps: true };
228
+
231
229
  this.currentLuminanceRT = new WebGLRenderTarget( this.resolution, this.resolution, pars );
232
230
  this.currentLuminanceRT.texture.name = 'AdaptiveToneMappingPass.cl';
233
231
 
@@ -1,8 +1,6 @@
1
1
  import {
2
- LinearFilter,
3
2
  MeshBasicMaterial,
4
3
  NearestFilter,
5
- RGBAFormat,
6
4
  ShaderMaterial,
7
5
  UniformsUtils,
8
6
  WebGLRenderTarget
@@ -25,19 +23,11 @@ class AfterimagePass extends Pass {
25
23
  this.uniforms[ 'damp' ].value = damp;
26
24
 
27
25
  this.textureComp = new WebGLRenderTarget( window.innerWidth, window.innerHeight, {
28
-
29
- minFilter: LinearFilter,
30
26
  magFilter: NearestFilter,
31
- format: RGBAFormat
32
-
33
27
  } );
34
28
 
35
29
  this.textureOld = new WebGLRenderTarget( window.innerWidth, window.innerHeight, {
36
-
37
- minFilter: LinearFilter,
38
30
  magFilter: NearestFilter,
39
- format: RGBAFormat
40
-
41
31
  } );
42
32
 
43
33
  this.shaderMaterial = new ShaderMaterial( {
@@ -1,14 +1,11 @@
1
1
  import {
2
2
  AdditiveBlending,
3
- LinearFilter,
4
- RGBAFormat,
5
3
  ShaderMaterial,
6
4
  UniformsUtils,
7
5
  Vector2,
8
6
  WebGLRenderTarget
9
7
  } from 'three';
10
8
  import { Pass, FullScreenQuad } from './Pass.js';
11
- import { CopyShader } from '../shaders/CopyShader.js';
12
9
  import { ConvolutionShader } from '../shaders/ConvolutionShader.js';
13
10
 
14
11
  class BloomPass extends Pass {
@@ -19,28 +16,22 @@ class BloomPass extends Pass {
19
16
 
20
17
  // render targets
21
18
 
22
- const pars = { minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat };
23
-
24
- this.renderTargetX = new WebGLRenderTarget( resolution, resolution, pars );
19
+ this.renderTargetX = new WebGLRenderTarget( resolution, resolution );
25
20
  this.renderTargetX.texture.name = 'BloomPass.x';
26
- this.renderTargetY = new WebGLRenderTarget( resolution, resolution, pars );
21
+ this.renderTargetY = new WebGLRenderTarget( resolution, resolution );
27
22
  this.renderTargetY.texture.name = 'BloomPass.y';
28
23
 
29
- // copy material
30
-
31
- if ( CopyShader === undefined ) console.error( 'THREE.BloomPass relies on CopyShader' );
32
-
33
- const copyShader = CopyShader;
24
+ // combine material
34
25
 
35
- this.copyUniforms = UniformsUtils.clone( copyShader.uniforms );
26
+ this.combineUniforms = UniformsUtils.clone( CombineShader.uniforms );
36
27
 
37
- this.copyUniforms[ 'opacity' ].value = strength;
28
+ this.combineUniforms[ 'strength' ].value = strength;
38
29
 
39
- this.materialCopy = new ShaderMaterial( {
30
+ this.materialCombine = new ShaderMaterial( {
40
31
 
41
- uniforms: this.copyUniforms,
42
- vertexShader: copyShader.vertexShader,
43
- fragmentShader: copyShader.fragmentShader,
32
+ uniforms: this.combineUniforms,
33
+ vertexShader: CombineShader.vertexShader,
34
+ fragmentShader: CombineShader.fragmentShader,
44
35
  blending: AdditiveBlending,
45
36
  transparent: true
46
37
 
@@ -102,9 +93,9 @@ class BloomPass extends Pass {
102
93
 
103
94
  // Render original scene with superimposed blur to texture
104
95
 
105
- this.fsQuad.material = this.materialCopy;
96
+ this.fsQuad.material = this.materialCombine;
106
97
 
107
- this.copyUniforms[ 'tDiffuse' ].value = this.renderTargetY.texture;
98
+ this.combineUniforms[ 'tDiffuse' ].value = this.renderTargetY.texture;
108
99
 
109
100
  if ( maskActive ) renderer.state.buffers.stencil.setTest( true );
110
101
 
@@ -116,6 +107,43 @@ class BloomPass extends Pass {
116
107
 
117
108
  }
118
109
 
110
+ const CombineShader = {
111
+
112
+ uniforms: {
113
+
114
+ 'tDiffuse': { value: null },
115
+ 'strength': { value: 1.0 }
116
+
117
+ },
118
+
119
+ vertexShader: /* glsl */`
120
+
121
+ varying vec2 vUv;
122
+
123
+ void main() {
124
+
125
+ vUv = uv;
126
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
127
+
128
+ }`,
129
+
130
+ fragmentShader: /* glsl */`
131
+
132
+ uniform float strength;
133
+
134
+ uniform sampler2D tDiffuse;
135
+
136
+ varying vec2 vUv;
137
+
138
+ void main() {
139
+
140
+ vec4 texel = texture2D( tDiffuse, vUv );
141
+ gl_FragColor = strength * texel;
142
+
143
+ }`
144
+
145
+ };
146
+
119
147
  BloomPass.blurX = new Vector2( 0.001953125, 0.0 );
120
148
  BloomPass.blurY = new Vector2( 0.0, 0.001953125 );
121
149