super-three 0.133.4 → 0.136.1

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 (409) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.js +2285 -1983
  3. package/build/three.min.js +1 -1
  4. package/build/three.module.js +5983 -5358
  5. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  6. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  7. package/examples/fonts/open-sans/open-sans.css +9 -0
  8. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  9. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +3966 -0
  10. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  11. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  12. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  13. package/examples/fonts/tabler-icons/tabler-icons.min.css +4 -0
  14. package/examples/js/animation/CCDIKSolver.js +0 -1
  15. package/examples/js/animation/MMDPhysics.js +2 -4
  16. package/examples/js/cameras/CinematicCamera.js +2 -7
  17. package/examples/js/controls/ArcballControls.js +99 -72
  18. package/examples/js/controls/DragControls.js +7 -0
  19. package/examples/js/controls/OrbitControls.js +5 -36
  20. package/examples/js/controls/TrackballControls.js +3 -2
  21. package/examples/js/controls/TransformControls.js +24 -1
  22. package/examples/js/csm/CSM.js +2 -2
  23. package/examples/js/csm/CSMFrustum.js +133 -0
  24. package/examples/js/curves/CurveExtras.js +0 -2
  25. package/examples/js/effects/AsciiEffect.js +2 -9
  26. package/examples/js/exporters/GLTFExporter.js +148 -64
  27. package/examples/js/exporters/MMDExporter.js +1 -1
  28. package/examples/js/exporters/USDZExporter.js +45 -26
  29. package/examples/js/geometries/ConvexGeometry.js +1 -1
  30. package/examples/js/geometries/TeapotGeometry.js +0 -1
  31. package/examples/js/interactive/SelectionBox.js +2 -0
  32. package/examples/js/interactive/SelectionHelper.js +22 -7
  33. package/examples/js/lights/RectAreaLightUniformsLib.js +4 -0
  34. package/examples/js/lines/LineMaterial.js +58 -20
  35. package/examples/js/lines/LineSegments2.js +29 -24
  36. package/examples/js/loaders/3DMLoader.js +24 -11
  37. package/examples/js/loaders/3MFLoader.js +2 -2
  38. package/examples/js/loaders/AMFLoader.js +0 -2
  39. package/examples/js/loaders/BasisTextureLoader.js +1 -0
  40. package/examples/js/loaders/ColladaLoader.js +61 -4
  41. package/examples/js/loaders/EXRLoader.js +201 -272
  42. package/examples/js/loaders/FBXLoader.js +4 -5
  43. package/examples/js/loaders/GLTFLoader.js +98 -35
  44. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -10
  45. package/examples/js/loaders/KTX2Loader.js +23 -2
  46. package/examples/js/loaders/KTXLoader.js +1 -1
  47. package/examples/js/loaders/LDrawLoader.js +1169 -901
  48. package/examples/js/loaders/LUT3dlLoader.js +19 -10
  49. package/examples/js/loaders/LUTCubeLoader.js +5 -4
  50. package/examples/js/loaders/LWOLoader.js +8 -6
  51. package/examples/js/loaders/LogLuvLoader.js +766 -0
  52. package/examples/js/loaders/MMDLoader.js +0 -1
  53. package/examples/js/loaders/NRRDLoader.js +9 -2
  54. package/examples/js/loaders/OBJLoader.js +0 -2
  55. package/examples/js/loaders/PLYLoader.js +33 -8
  56. package/examples/js/loaders/RGBELoader.js +8 -22
  57. package/examples/js/loaders/RGBMLoader.js +56 -6
  58. package/examples/js/loaders/SVGLoader.js +12 -6
  59. package/examples/js/loaders/TDSLoader.js +237 -271
  60. package/examples/js/loaders/VOXLoader.js +1 -0
  61. package/examples/js/loaders/VRMLLoader.js +11 -22
  62. package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
  63. package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
  64. package/examples/js/math/ConvexHull.js +7 -13
  65. package/examples/js/math/ImprovedNoise.js +1 -1
  66. package/examples/js/misc/GPUComputationRenderer.js +3 -1
  67. package/examples/js/misc/Volume.js +2 -2
  68. package/examples/js/modifiers/CurveModifier.js +8 -7
  69. package/examples/js/modifiers/EdgeSplitModifier.js +1 -1
  70. package/examples/js/modifiers/SimplifyModifier.js +1 -1
  71. package/examples/js/objects/Lensflare.js +2 -10
  72. package/examples/js/objects/MarchingCubes.js +42 -128
  73. package/examples/js/objects/Reflector.js +8 -13
  74. package/examples/js/objects/ReflectorForSSRPass.js +0 -10
  75. package/examples/js/objects/Refractor.js +8 -13
  76. package/examples/js/objects/Sky.js +1 -1
  77. package/examples/js/objects/Water.js +3 -15
  78. package/examples/js/objects/Water2.js +4 -7
  79. package/examples/js/postprocessing/GlitchPass.js +6 -5
  80. package/examples/js/postprocessing/SMAAPass.js +2 -9
  81. package/examples/js/postprocessing/SSAOPass.js +10 -21
  82. package/examples/js/postprocessing/SavePass.js +1 -5
  83. package/examples/js/renderers/CSS2DRenderer.js +4 -4
  84. package/examples/js/renderers/CSS3DRenderer.js +4 -4
  85. package/examples/js/shaders/ConvolutionShader.js +0 -1
  86. package/examples/js/shaders/DigitalGlitch.js +3 -3
  87. package/examples/js/shaders/FXAAShader.js +1 -1
  88. package/examples/js/shaders/FilmShader.js +1 -1
  89. package/examples/js/shaders/GammaCorrectionShader.js +1 -1
  90. package/examples/js/shaders/HorizontalBlurShader.js +1 -2
  91. package/examples/js/shaders/MMDToonShader.js +0 -1
  92. package/examples/js/shaders/SSAOShader.js +1 -1
  93. package/examples/js/shaders/SSRShader.js +1 -1
  94. package/examples/js/shaders/SSRrShader.js +1 -1
  95. package/examples/js/shaders/VerticalBlurShader.js +1 -2
  96. package/examples/js/utils/GeometryUtils.js +1 -1
  97. package/examples/jsm/animation/CCDIKSolver.js +0 -1
  98. package/examples/jsm/animation/MMDPhysics.js +1 -3
  99. package/examples/jsm/cameras/CinematicCamera.js +2 -5
  100. package/examples/jsm/{WebGL.js → capabilities/WebGL.js} +2 -2
  101. package/examples/jsm/{renderers/webgpu → capabilities}/WebGPU.js +1 -1
  102. package/examples/jsm/controls/ArcballControls.js +80 -77
  103. package/examples/jsm/controls/DragControls.js +7 -0
  104. package/examples/jsm/controls/OrbitControls.js +9 -51
  105. package/examples/jsm/controls/TrackballControls.js +1 -1
  106. package/examples/jsm/controls/TransformControls.js +24 -1
  107. package/examples/jsm/csm/CSM.js +3 -3
  108. package/examples/jsm/csm/{Frustum.js → CSMFrustum.js} +3 -3
  109. package/examples/jsm/curves/CurveExtras.js +0 -2
  110. package/examples/jsm/effects/AsciiEffect.js +2 -9
  111. package/examples/jsm/exporters/GLTFExporter.js +169 -99
  112. package/examples/jsm/exporters/MMDExporter.js +1 -1
  113. package/examples/jsm/exporters/USDZExporter.js +47 -26
  114. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  115. package/examples/jsm/geometries/TeapotGeometry.js +0 -1
  116. package/examples/jsm/interactive/SelectionBox.js +1 -0
  117. package/examples/jsm/interactive/SelectionHelper.js +19 -7
  118. package/examples/jsm/libs/flow.module.js +3338 -0
  119. package/examples/jsm/libs/lil-gui.module.min.js +8 -0
  120. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  121. package/examples/jsm/lights/RectAreaLightUniformsLib.js +7 -0
  122. package/examples/jsm/lines/LineMaterial.js +59 -23
  123. package/examples/jsm/lines/LineSegments2.js +22 -18
  124. package/examples/jsm/loaders/3DMLoader.js +18 -12
  125. package/examples/jsm/loaders/3MFLoader.js +2 -2
  126. package/examples/jsm/loaders/AMFLoader.js +0 -2
  127. package/examples/jsm/loaders/BasisTextureLoader.js +7 -0
  128. package/examples/jsm/loaders/ColladaLoader.js +61 -4
  129. package/examples/jsm/loaders/EXRLoader.js +200 -306
  130. package/examples/jsm/loaders/FBXLoader.js +4 -5
  131. package/examples/jsm/loaders/GLTFLoader.js +102 -40
  132. package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -17
  133. package/examples/jsm/loaders/KTX2Loader.js +30 -2
  134. package/examples/jsm/loaders/KTXLoader.js +1 -1
  135. package/examples/jsm/loaders/LDrawLoader.js +1159 -898
  136. package/examples/jsm/loaders/LUT3dlLoader.js +19 -12
  137. package/examples/jsm/loaders/LUTCubeLoader.js +5 -5
  138. package/examples/jsm/loaders/LWOLoader.js +8 -6
  139. package/examples/jsm/loaders/LogLuvLoader.js +606 -0
  140. package/examples/jsm/loaders/MMDLoader.js +0 -1
  141. package/examples/jsm/loaders/NRRDLoader.js +10 -2
  142. package/examples/jsm/loaders/OBJLoader.js +0 -2
  143. package/examples/jsm/loaders/PLYLoader.js +34 -8
  144. package/examples/jsm/loaders/RGBELoader.js +7 -28
  145. package/examples/jsm/loaders/RGBMLoader.js +62 -8
  146. package/examples/jsm/loaders/SVGLoader.js +15 -7
  147. package/examples/jsm/loaders/TDSLoader.js +236 -275
  148. package/examples/jsm/loaders/VOXLoader.js +1 -0
  149. package/examples/jsm/loaders/VRMLLoader.js +11 -23
  150. package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
  151. package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
  152. package/examples/jsm/math/ConvexHull.js +7 -13
  153. package/examples/jsm/math/ImprovedNoise.js +1 -1
  154. package/examples/jsm/misc/GPUComputationRenderer.js +3 -1
  155. package/examples/jsm/misc/Volume.js +2 -2
  156. package/examples/jsm/modifiers/CurveModifier.js +9 -8
  157. package/examples/jsm/modifiers/EdgeSplitModifier.js +1 -1
  158. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  159. package/examples/jsm/node-editor/NodeEditor.js +455 -0
  160. package/examples/jsm/node-editor/accessors/NormalEditor.js +30 -0
  161. package/examples/jsm/node-editor/accessors/PositionEditor.js +30 -0
  162. package/examples/jsm/node-editor/accessors/UVEditor.js +26 -0
  163. package/examples/jsm/node-editor/display/BlendEditor.js +43 -0
  164. package/examples/jsm/node-editor/examples/animate-uv.json +1 -0
  165. package/examples/jsm/node-editor/examples/fake-top-light.json +1 -0
  166. package/examples/jsm/node-editor/examples/oscillator-color.json +1 -0
  167. package/examples/jsm/node-editor/examples/rim.json +1 -0
  168. package/examples/jsm/node-editor/inputs/ColorEditor.js +91 -0
  169. package/examples/jsm/node-editor/inputs/FloatEditor.js +24 -0
  170. package/examples/jsm/node-editor/inputs/SliderEditor.js +68 -0
  171. package/examples/jsm/node-editor/inputs/Vector2Editor.js +28 -0
  172. package/examples/jsm/node-editor/inputs/Vector3Editor.js +30 -0
  173. package/examples/jsm/node-editor/inputs/Vector4Editor.js +37 -0
  174. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +108 -0
  175. package/examples/jsm/node-editor/math/DotEditor.js +36 -0
  176. package/examples/jsm/node-editor/math/InvertEditor.js +38 -0
  177. package/examples/jsm/node-editor/math/LimiterEditor.js +48 -0
  178. package/examples/jsm/node-editor/math/NormalizeEditor.js +26 -0
  179. package/examples/jsm/node-editor/math/OperatorEditor.js +50 -0
  180. package/examples/jsm/node-editor/math/PowerEditor.js +34 -0
  181. package/examples/jsm/node-editor/math/TrigonometryEditor.js +39 -0
  182. package/examples/jsm/node-editor/procedural/CheckerEditor.js +26 -0
  183. package/examples/jsm/node-editor/utils/OscillatorEditor.js +42 -0
  184. package/examples/jsm/node-editor/utils/TimerEditor.js +57 -0
  185. package/examples/jsm/nodes/core/NodeBuilder.js +2 -2
  186. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +1 -1
  187. package/examples/jsm/nodes/materials/nodes/StandardNode.js +7 -6
  188. package/examples/jsm/nodes/math/MathNode.js +12 -0
  189. package/examples/jsm/nodes/misc/BumpMapNode.js +1 -1
  190. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +1 -4
  191. package/examples/jsm/nodes/utils/ColorSpaceNode.js +5 -177
  192. package/examples/jsm/objects/Lensflare.js +5 -16
  193. package/examples/jsm/objects/MarchingCubes.js +46 -152
  194. package/examples/jsm/objects/Reflector.js +8 -16
  195. package/examples/jsm/objects/ReflectorForSSRPass.js +0 -12
  196. package/examples/jsm/objects/Refractor.js +8 -16
  197. package/examples/jsm/objects/Sky.js +1 -1
  198. package/examples/jsm/objects/Water.js +3 -18
  199. package/examples/jsm/objects/Water2.js +4 -8
  200. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +1 -1
  201. package/examples/jsm/postprocessing/AfterimagePass.js +1 -1
  202. package/examples/jsm/postprocessing/BloomPass.js +1 -1
  203. package/examples/jsm/postprocessing/BokehPass.js +1 -1
  204. package/examples/jsm/postprocessing/ClearPass.js +1 -1
  205. package/examples/jsm/postprocessing/CubeTexturePass.js +1 -1
  206. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  207. package/examples/jsm/postprocessing/EffectComposer.js +3 -3
  208. package/examples/jsm/postprocessing/FilmPass.js +1 -1
  209. package/examples/jsm/postprocessing/GlitchPass.js +10 -7
  210. package/examples/jsm/postprocessing/HalftonePass.js +1 -1
  211. package/examples/jsm/postprocessing/MaskPass.js +1 -1
  212. package/examples/jsm/postprocessing/OutlinePass.js +1 -1
  213. package/examples/jsm/postprocessing/RenderPass.js +1 -1
  214. package/examples/jsm/postprocessing/SAOPass.js +2 -2
  215. package/examples/jsm/postprocessing/SMAAPass.js +3 -12
  216. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
  217. package/examples/jsm/postprocessing/SSAOPass.js +15 -26
  218. package/examples/jsm/postprocessing/SSRPass.js +1 -1
  219. package/examples/jsm/postprocessing/SSRrPass.js +1 -1
  220. package/examples/jsm/postprocessing/SavePass.js +2 -4
  221. package/examples/jsm/postprocessing/ShaderPass.js +1 -1
  222. package/examples/jsm/postprocessing/TAARenderPass.js +1 -1
  223. package/examples/jsm/postprocessing/TexturePass.js +1 -1
  224. package/examples/jsm/postprocessing/UnrealBloomPass.js +1 -1
  225. package/examples/jsm/renderers/CSS2DRenderer.js +5 -4
  226. package/examples/jsm/renderers/CSS3DRenderer.js +5 -4
  227. package/examples/jsm/renderers/nodes/Nodes.js +17 -13
  228. package/examples/jsm/renderers/nodes/ShaderNode.js +229 -49
  229. package/examples/jsm/renderers/nodes/accessors/MaterialNode.js +6 -6
  230. package/examples/jsm/renderers/nodes/accessors/ModelViewProjectionNode.js +5 -5
  231. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +14 -3
  232. package/examples/jsm/renderers/nodes/accessors/PointUVNode.js +3 -3
  233. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +15 -5
  234. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +107 -0
  235. package/examples/jsm/renderers/nodes/accessors/UVNode.js +7 -5
  236. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +3 -3
  237. package/examples/jsm/renderers/nodes/core/AttributeNode.js +6 -0
  238. package/examples/jsm/renderers/nodes/core/BypassNode.js +38 -0
  239. package/examples/jsm/renderers/nodes/core/CodeNode.js +3 -3
  240. package/examples/jsm/renderers/nodes/core/ContextNode.js +4 -19
  241. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +13 -2
  242. package/examples/jsm/renderers/nodes/core/FunctionNode.js +19 -132
  243. package/examples/jsm/renderers/nodes/core/InputNode.js +13 -3
  244. package/examples/jsm/renderers/nodes/core/Node.js +32 -10
  245. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +146 -128
  246. package/examples/jsm/renderers/nodes/core/NodeFunction.js +22 -0
  247. package/examples/jsm/renderers/nodes/core/NodeFunctionInput.js +4 -4
  248. package/examples/jsm/renderers/nodes/core/NodeKeywords.js +18 -179
  249. package/examples/jsm/renderers/nodes/core/NodeParser.js +11 -0
  250. package/examples/jsm/renderers/nodes/core/NodeVar.js +2 -2
  251. package/examples/jsm/renderers/nodes/core/PropertyNode.js +14 -2
  252. package/examples/jsm/renderers/nodes/core/TempNode.js +10 -13
  253. package/examples/jsm/renderers/nodes/core/VarNode.js +12 -7
  254. package/examples/jsm/renderers/nodes/core/VaryNode.js +23 -8
  255. package/examples/jsm/renderers/nodes/core/constants.js +2 -0
  256. package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +43 -63
  257. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +21 -22
  258. package/examples/jsm/renderers/nodes/functions/BSDFs.js +64 -101
  259. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +27 -0
  260. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +25 -0
  261. package/examples/jsm/renderers/nodes/inputs/IntNode.js +17 -0
  262. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +13 -10
  263. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +20 -14
  264. package/examples/jsm/renderers/nodes/lights/LightNode.js +32 -36
  265. package/examples/jsm/renderers/nodes/math/CondNode.js +60 -0
  266. package/examples/jsm/renderers/nodes/math/MathNode.js +91 -37
  267. package/examples/jsm/renderers/nodes/math/OperatorNode.js +124 -31
  268. package/examples/jsm/renderers/nodes/parsers/GLSLNodeFunction.js +137 -0
  269. package/examples/jsm/renderers/nodes/parsers/GLSLNodeParser.js +14 -0
  270. package/examples/jsm/renderers/nodes/parsers/WGSLNodeFunction.js +89 -0
  271. package/examples/jsm/renderers/nodes/parsers/WGSLNodeParser.js +14 -0
  272. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +7 -9
  273. package/examples/jsm/renderers/nodes/utils/ArrayElementNode.js +31 -0
  274. package/examples/jsm/renderers/nodes/utils/ConvertNode.js +33 -0
  275. package/examples/jsm/renderers/nodes/utils/JoinNode.js +7 -7
  276. package/examples/jsm/renderers/nodes/utils/OscNode.js +58 -0
  277. package/examples/jsm/renderers/nodes/utils/SplitNode.js +18 -8
  278. package/examples/jsm/renderers/nodes/utils/SpriteSheetUVNode.js +7 -7
  279. package/examples/jsm/renderers/nodes/utils/TimerNode.js +1 -1
  280. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +22 -0
  281. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +192 -95
  282. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +2 -2
  283. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +2 -2
  284. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +1 -1
  285. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +10 -9
  286. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +2 -4
  287. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  288. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +2 -4
  289. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +15 -23
  290. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +44 -65
  291. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +13 -31
  292. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +61 -28
  293. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +35 -29
  294. package/examples/jsm/renderers/webgpu/constants.js +2 -2
  295. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +459 -95
  296. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  297. package/examples/jsm/shaders/ConvolutionShader.js +0 -1
  298. package/examples/jsm/shaders/DigitalGlitch.js +3 -3
  299. package/examples/jsm/shaders/FXAAShader.js +1 -1
  300. package/examples/jsm/shaders/FilmShader.js +1 -1
  301. package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
  302. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -2
  303. package/examples/jsm/shaders/MMDToonShader.js +0 -1
  304. package/examples/jsm/shaders/SSAOShader.js +1 -1
  305. package/examples/jsm/shaders/SSRShader.js +1 -1
  306. package/examples/jsm/shaders/SSRrShader.js +1 -1
  307. package/examples/jsm/shaders/VerticalBlurShader.js +1 -2
  308. package/examples/jsm/utils/GeometryUtils.js +1 -1
  309. package/examples/jsm/utils/LDrawUtils.js +195 -0
  310. package/examples/jsm/utils/WorkerPool.js +11 -11
  311. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
  312. package/examples/jsm/webxr/VRButton.js +24 -0
  313. package/examples/jsm/webxr/XREstimatedLight.js +2 -0
  314. package/package.json +27 -18
  315. package/src/Three.Legacy.js +18 -0
  316. package/src/Three.js +1 -3
  317. package/src/animation/AnimationMixer.js +1 -0
  318. package/src/cameras/CubeCamera.js +2 -0
  319. package/src/cameras/StereoCamera.js +8 -7
  320. package/src/constants.js +3 -23
  321. package/src/core/Layers.js +7 -1
  322. package/src/core/Object3D.js +3 -1
  323. package/src/extras/ImageUtils.js +63 -0
  324. package/src/extras/PMREMGenerator.js +49 -185
  325. package/src/extras/core/Interpolations.js +1 -1
  326. package/src/geometries/LatheGeometry.js +70 -47
  327. package/src/helpers/CameraHelper.js +1 -1
  328. package/src/loaders/FileLoader.js +98 -144
  329. package/src/loaders/ImageLoader.js +9 -4
  330. package/src/loaders/LoaderUtils.js +26 -0
  331. package/src/loaders/MaterialLoader.js +8 -5
  332. package/src/loaders/ObjectLoader.js +2 -0
  333. package/src/materials/Material.js +8 -8
  334. package/src/materials/MeshPhysicalMaterial.js +20 -14
  335. package/src/math/Color.js +1 -39
  336. package/src/math/MathUtils.js +5 -16
  337. package/src/math/Quaternion.js +1 -1
  338. package/src/math/Ray.js +2 -2
  339. package/src/math/Sphere.js +10 -1
  340. package/src/objects/Skeleton.js +1 -0
  341. package/src/renderers/WebGLCubeRenderTarget.js +0 -2
  342. package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
  343. package/src/renderers/WebGLRenderer.js +106 -199
  344. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +2 -2
  345. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +1 -1
  346. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +2 -24
  347. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +0 -2
  348. package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -78
  349. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
  350. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -2
  351. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +1 -1
  352. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
  353. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
  354. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +19 -6
  355. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +28 -2
  356. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +10 -3
  357. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +1 -2
  358. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  359. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  360. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +9 -8
  361. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -3
  362. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -3
  363. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -1
  364. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -2
  365. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +23 -5
  366. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +2 -1
  367. package/src/renderers/shaders/ShaderLib.js +8 -6
  368. package/src/renderers/shaders/UniformsLib.js +1 -2
  369. package/src/renderers/webgl/WebGLCapabilities.js +0 -2
  370. package/src/renderers/webgl/WebGLCubeMaps.js +0 -4
  371. package/src/renderers/webgl/WebGLCubeUVMaps.js +29 -16
  372. package/src/renderers/webgl/WebGLExtensions.js +1 -0
  373. package/src/renderers/webgl/WebGLMaterials.js +27 -15
  374. package/src/renderers/webgl/WebGLMorphtargets.js +13 -0
  375. package/src/renderers/webgl/WebGLProgram.js +12 -37
  376. package/src/renderers/webgl/WebGLPrograms.js +192 -70
  377. package/src/renderers/webgl/WebGLRenderLists.js +4 -14
  378. package/src/renderers/webgl/WebGLShaderCache.js +120 -0
  379. package/src/renderers/webgl/WebGLShadowMap.js +14 -5
  380. package/src/renderers/webgl/WebGLState.js +157 -17
  381. package/src/renderers/webgl/WebGLTextures.js +442 -83
  382. package/src/renderers/webgl/WebGLUniforms.js +45 -1
  383. package/src/renderers/webgl/WebGLUtils.js +86 -28
  384. package/src/renderers/webxr/WebXRManager.js +77 -109
  385. package/src/scenes/Scene.js +1 -1
  386. package/src/textures/DataTexture.js +0 -2
  387. package/src/textures/DataTexture2DArray.js +0 -2
  388. package/src/textures/DataTexture3D.js +0 -2
  389. package/src/textures/FramebufferTexture.js +25 -0
  390. package/src/textures/Texture.js +8 -1
  391. package/src/textures/VideoTexture.js +1 -3
  392. package/examples/js/WebGL.js +0 -90
  393. package/examples/js/controls/DeviceOrientationControls.js +0 -147
  394. package/examples/js/libs/dat.gui.min.js +0 -14
  395. package/examples/js/utils/RoughnessMipmapper.js +0 -278
  396. package/examples/jsm/controls/DeviceOrientationControls.js +0 -153
  397. package/examples/jsm/libs/dat.gui.module.js +0 -3575
  398. package/examples/jsm/libs/glslang.js +0 -78
  399. package/examples/jsm/libs/glslang.wasm +0 -0
  400. package/examples/jsm/renderers/nodes/consts/MathConsts.js +0 -7
  401. package/examples/jsm/renderers/nodes/core/ConstNode.js +0 -39
  402. package/examples/jsm/renderers/nodes/core/NodeSlot.js +0 -13
  403. package/examples/jsm/renderers/nodes/core/StructNode.js +0 -80
  404. package/examples/jsm/renderers/nodes/core/StructVarNode.js +0 -75
  405. package/examples/jsm/renderers/nodes/functions/EncodingFunctions.js +0 -99
  406. package/examples/jsm/renderers/nodes/functions/MathFunctions.js +0 -47
  407. package/examples/jsm/renderers/webgpu/nodes/ShaderLib.js +0 -152
  408. package/examples/jsm/utils/RoughnessMipmapper.js +0 -300
  409. package/src/extras/objects/ImmediateRenderObject.js +0 -31
@@ -2,19 +2,21 @@ import {
2
2
  BufferAttribute,
3
3
  BufferGeometry,
4
4
  Color,
5
- ImmediateRenderObject,
6
- NoColors
5
+ DynamicDrawUsage,
6
+ Mesh
7
7
  } from 'three';
8
8
 
9
9
  /**
10
10
  * Port of http://webglsamples.org/blob/blob.html
11
11
  */
12
12
 
13
- class MarchingCubes extends ImmediateRenderObject {
13
+ class MarchingCubes extends Mesh {
14
14
 
15
- constructor( resolution, material, enableUvs, enableColors ) {
15
+ constructor( resolution, material, enableUvs = false, enableColors = false, maxPolyCount = 10000 ) {
16
16
 
17
- super( material );
17
+ const geometry = new BufferGeometry();
18
+
19
+ super( geometry, material );
18
20
 
19
21
  const scope = this;
20
22
 
@@ -24,8 +26,8 @@ class MarchingCubes extends ImmediateRenderObject {
24
26
  const nlist = new Float32Array( 12 * 3 );
25
27
  const clist = new Float32Array( 12 * 3 );
26
28
 
27
- this.enableUvs = enableUvs !== undefined ? enableUvs : false;
28
- this.enableColors = enableColors !== undefined ? enableColors : false;
29
+ this.enableUvs = enableUvs;
30
+ this.enableColors = enableColors;
29
31
 
30
32
  // functions have to be object properties
31
33
  // prototype functions kill performance
@@ -56,28 +58,37 @@ class MarchingCubes extends ImmediateRenderObject {
56
58
  this.normal_cache = new Float32Array( this.size3 * 3 );
57
59
  this.palette = new Float32Array( this.size3 * 3 );
58
60
 
59
- // immediate render mode simulator
61
+ //
60
62
 
61
- this.maxCount = 4096; // TODO: find the fastest size for this buffer
62
63
  this.count = 0;
63
64
 
64
- this.hasPositions = false;
65
- this.hasNormals = false;
66
- this.hasColors = false;
67
- this.hasUvs = false;
65
+ const maxVertexCount = maxPolyCount * 3;
66
+
67
+ this.positionArray = new Float32Array( maxVertexCount * 3 );
68
+ const positionAttribute = new BufferAttribute( this.positionArray, 3 );
69
+ positionAttribute.setUsage( DynamicDrawUsage );
70
+ geometry.setAttribute( 'position', positionAttribute );
68
71
 
69
- this.positionArray = new Float32Array( this.maxCount * 3 );
70
- this.normalArray = new Float32Array( this.maxCount * 3 );
72
+ this.normalArray = new Float32Array( maxVertexCount * 3 );
73
+ const normalAttribute = new BufferAttribute( this.normalArray, 3 );
74
+ normalAttribute.setUsage( DynamicDrawUsage );
75
+ geometry.setAttribute( 'normal', normalAttribute );
71
76
 
72
77
  if ( this.enableUvs ) {
73
78
 
74
- this.uvArray = new Float32Array( this.maxCount * 2 );
79
+ this.uvArray = new Float32Array( maxVertexCount * 2 );
80
+ const uvAttribute = new BufferAttribute( this.uvArray, 2 );
81
+ uvAttribute.setUsage( DynamicDrawUsage );
82
+ geometry.setAttribute( 'uv', uvAttribute );
75
83
 
76
84
  }
77
85
 
78
86
  if ( this.enableColors ) {
79
87
 
80
- this.colorArray = new Float32Array( this.maxCount * 3 );
88
+ this.colorArray = new Float32Array( maxVertexCount * 3 );
89
+ const colorAttribute = new BufferAttribute( this.colorArray, 3 );
90
+ colorAttribute.setUsage( DynamicDrawUsage );
91
+ geometry.setAttribute( 'color', colorAttribute );
81
92
 
82
93
  }
83
94
 
@@ -173,7 +184,7 @@ class MarchingCubes extends ImmediateRenderObject {
173
184
  // Returns total number of triangles. Fills triangles.
174
185
  // (this is where most of time is spent - it's inner work of O(n3) loop )
175
186
 
176
- function polygonize( fx, fy, fz, q, isol, renderCallback ) {
187
+ function polygonize( fx, fy, fz, q, isol ) {
177
188
 
178
189
  // cache indices
179
190
  const q1 = q + 1,
@@ -369,8 +380,7 @@ class MarchingCubes extends ImmediateRenderObject {
369
380
  clist,
370
381
  3 * triTable[ o1 ],
371
382
  3 * triTable[ o2 ],
372
- 3 * triTable[ o3 ],
373
- renderCallback
383
+ 3 * triTable[ o3 ]
374
384
  );
375
385
 
376
386
  i += 3;
@@ -382,11 +392,7 @@ class MarchingCubes extends ImmediateRenderObject {
382
392
 
383
393
  }
384
394
 
385
- /////////////////////////////////////
386
- // Immediate render mode simulator
387
- /////////////////////////////////////
388
-
389
- function posnormtriv( pos, norm, colors, o1, o2, o3, renderCallback ) {
395
+ function posnormtriv( pos, norm, colors, o1, o2, o3 ) {
390
396
 
391
397
  const c = scope.count * 3;
392
398
 
@@ -477,69 +483,8 @@ class MarchingCubes extends ImmediateRenderObject {
477
483
 
478
484
  scope.count += 3;
479
485
 
480
- if ( scope.count >= scope.maxCount - 3 ) {
481
-
482
- scope.hasPositions = true;
483
- scope.hasNormals = true;
484
-
485
- if ( scope.enableUvs ) {
486
-
487
- scope.hasUvs = true;
488
-
489
- }
490
-
491
- if ( scope.enableColors ) {
492
-
493
- scope.hasColors = true;
494
-
495
- }
496
-
497
- renderCallback( scope );
498
-
499
- }
500
-
501
486
  }
502
487
 
503
- this.begin = function () {
504
-
505
- this.count = 0;
506
-
507
- this.hasPositions = false;
508
- this.hasNormals = false;
509
- this.hasUvs = false;
510
- this.hasColors = false;
511
-
512
- };
513
-
514
- this.end = function ( renderCallback ) {
515
-
516
- if ( this.count === 0 ) return;
517
-
518
- for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
519
-
520
- this.positionArray[ i ] = 0.0;
521
-
522
- }
523
-
524
- this.hasPositions = true;
525
- this.hasNormals = true;
526
-
527
- if ( this.enableUvs && this.material.map ) {
528
-
529
- this.hasUvs = true;
530
-
531
- }
532
-
533
- if ( this.enableColors && this.material.vertexColors !== NoColors ) {
534
-
535
- this.hasColors = true;
536
-
537
- }
538
-
539
- renderCallback( this );
540
-
541
- };
542
-
543
488
  /////////////////////////////////////
544
489
  // Metaballs
545
490
  /////////////////////////////////////
@@ -867,9 +812,9 @@ class MarchingCubes extends ImmediateRenderObject {
867
812
 
868
813
  };
869
814
 
870
- this.render = function ( renderCallback ) {
815
+ this.onBeforeRender = function () {
871
816
 
872
- this.begin();
817
+ this.count = 0;
873
818
 
874
819
  // Triangulate. Yeah, this is slow.
875
820
 
@@ -890,7 +835,7 @@ class MarchingCubes extends ImmediateRenderObject {
890
835
  const fx = ( x - this.halfsize ) / this.halfsize; //+ 1
891
836
  const q = y_offset + x;
892
837
 
893
- polygonize( fx, fy, fz, q, this.isolation, renderCallback );
838
+ polygonize( fx, fy, fz, q, this.isolation );
894
839
 
895
840
  }
896
841
 
@@ -898,76 +843,25 @@ class MarchingCubes extends ImmediateRenderObject {
898
843
 
899
844
  }
900
845
 
901
- this.end( renderCallback );
846
+ // reset unneeded data
902
847
 
903
- };
848
+ for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
904
849
 
905
- this.generateGeometry = function () {
850
+ this.positionArray[ i ] = 0.0;
906
851
 
907
- console.warn(
908
- 'THREE.MarchingCubes: generateGeometry() now returns BufferGeometry'
909
- );
910
- return this.generateBufferGeometry();
852
+ }
911
853
 
912
- };
854
+ // update geometry data
913
855
 
914
- function concatenate( a, b, length ) {
856
+ geometry.getAttribute( 'position' ).needsUpdate = true;
857
+ geometry.getAttribute( 'normal' ).needsUpdate = true;
915
858
 
916
- const result = new Float32Array( a.length + length );
917
- result.set( a, 0 );
918
- result.set( b.slice( 0, length ), a.length );
919
- return result;
859
+ if ( this.enableUvs ) geometry.getAttribute( 'uv' ).needsUpdate = true;
860
+ if ( this.enableColors ) geometry.getAttribute( 'color' ).needsUpdate = true;
920
861
 
921
- }
862
+ // safety check
922
863
 
923
- this.generateBufferGeometry = function () {
924
-
925
- const geo = new BufferGeometry();
926
- let posArray = new Float32Array();
927
- let normArray = new Float32Array();
928
- let colorArray = new Float32Array();
929
- let uvArray = new Float32Array();
930
- const scope = this;
931
-
932
- const geo_callback = function ( object ) {
933
-
934
- if ( scope.hasPositions )
935
- posArray = concatenate(
936
- posArray,
937
- object.positionArray,
938
- object.count * 3
939
- );
940
- if ( scope.hasNormals )
941
- normArray = concatenate(
942
- normArray,
943
- object.normalArray,
944
- object.count * 3
945
- );
946
- if ( scope.hasColors )
947
- colorArray = concatenate(
948
- colorArray,
949
- object.colorArray,
950
- object.count * 3
951
- );
952
- if ( scope.hasUvs )
953
- uvArray = concatenate( uvArray, object.uvArray, object.count * 2 );
954
-
955
- object.count = 0;
956
-
957
- };
958
-
959
- this.render( geo_callback );
960
-
961
- if ( this.hasPositions )
962
- geo.setAttribute( 'position', new BufferAttribute( posArray, 3 ) );
963
- if ( this.hasNormals )
964
- geo.setAttribute( 'normal', new BufferAttribute( normArray, 3 ) );
965
- if ( this.hasColors )
966
- geo.setAttribute( 'color', new BufferAttribute( colorArray, 3 ) );
967
- if ( this.hasUvs )
968
- geo.setAttribute( 'uv', new BufferAttribute( uvArray, 2 ) );
969
-
970
- return geo;
864
+ if ( this.count / 3 > maxPolyCount ) console.warn( 'THREE.MarchingCubes: Geometry buffers too small for rendering. Please create an instance with a higher poly count.' );
971
865
 
972
866
  };
973
867
 
@@ -984,7 +878,7 @@ MarchingCubes.prototype.isMarchingCubes = true;
984
878
  /////////////////////////////////////
985
879
 
986
880
  // These tables are straight from Paul Bourke's page:
987
- // http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/
881
+ // http://paulbourke.net/geometry/polygonise/
988
882
  // who in turn got them from Cory Gene Bloyd.
989
883
 
990
884
  const edgeTable = new Int32Array( [
@@ -1,12 +1,9 @@
1
1
  import {
2
2
  Color,
3
- LinearFilter,
4
- MathUtils,
5
3
  Matrix4,
6
4
  Mesh,
7
5
  PerspectiveCamera,
8
6
  Plane,
9
- RGBFormat,
10
7
  ShaderMaterial,
11
8
  UniformsUtils,
12
9
  Vector3,
@@ -47,19 +44,7 @@ class Reflector extends Mesh {
47
44
  const textureMatrix = new Matrix4();
48
45
  const virtualCamera = new PerspectiveCamera();
49
46
 
50
- const parameters = {
51
- minFilter: LinearFilter,
52
- magFilter: LinearFilter,
53
- format: RGBFormat
54
- };
55
-
56
- const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight, parameters );
57
-
58
- if ( ! MathUtils.isPowerOfTwo( textureWidth ) || ! MathUtils.isPowerOfTwo( textureHeight ) ) {
59
-
60
- renderTarget.texture.generateMipmaps = false;
61
-
62
- }
47
+ const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight );
63
48
 
64
49
  const material = new ShaderMaterial( {
65
50
  uniforms: UniformsUtils.clone( shader.uniforms ),
@@ -193,6 +178,13 @@ class Reflector extends Mesh {
193
178
 
194
179
  };
195
180
 
181
+ this.dispose = function () {
182
+
183
+ renderTarget.dispose();
184
+ scope.material.dispose();
185
+
186
+ };
187
+
196
188
  }
197
189
 
198
190
  }
@@ -1,11 +1,8 @@
1
1
  import {
2
2
  Color,
3
- LinearFilter,
4
- MathUtils,
5
3
  Matrix4,
6
4
  Mesh,
7
5
  PerspectiveCamera,
8
- RGBFormat,
9
6
  ShaderMaterial,
10
7
  UniformsUtils,
11
8
  Vector2,
@@ -104,20 +101,11 @@ class ReflectorForSSRPass extends Mesh {
104
101
  }
105
102
 
106
103
  const parameters = {
107
- minFilter: LinearFilter,
108
- magFilter: LinearFilter,
109
- format: RGBFormat,
110
104
  depthTexture: useDepthTexture ? depthTexture : null,
111
105
  };
112
106
 
113
107
  const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight, parameters );
114
108
 
115
- if ( ! MathUtils.isPowerOfTwo( textureWidth ) || ! MathUtils.isPowerOfTwo( textureHeight ) ) {
116
-
117
- renderTarget.texture.generateMipmaps = false;
118
-
119
- }
120
-
121
109
  const material = new ShaderMaterial( {
122
110
  transparent: useDepthTexture,
123
111
  defines: Object.assign( {}, ReflectorForSSRPass.ReflectorShader.defines, {
@@ -1,13 +1,10 @@
1
1
  import {
2
2
  Color,
3
- LinearFilter,
4
- MathUtils,
5
3
  Matrix4,
6
4
  Mesh,
7
5
  PerspectiveCamera,
8
6
  Plane,
9
7
  Quaternion,
10
- RGBFormat,
11
8
  ShaderMaterial,
12
9
  UniformsUtils,
13
10
  Vector3,
@@ -44,19 +41,7 @@ class Refractor extends Mesh {
44
41
 
45
42
  // render target
46
43
 
47
- const parameters = {
48
- minFilter: LinearFilter,
49
- magFilter: LinearFilter,
50
- format: RGBFormat
51
- };
52
-
53
- const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight, parameters );
54
-
55
- if ( ! MathUtils.isPowerOfTwo( textureWidth ) || ! MathUtils.isPowerOfTwo( textureHeight ) ) {
56
-
57
- renderTarget.texture.generateMipmaps = false;
58
-
59
- }
44
+ const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight );
60
45
 
61
46
  // material
62
47
 
@@ -262,6 +247,13 @@ class Refractor extends Mesh {
262
247
 
263
248
  };
264
249
 
250
+ this.dispose = function () {
251
+
252
+ renderTarget.dispose();
253
+ scope.material.dispose();
254
+
255
+ };
256
+
265
257
  }
266
258
 
267
259
  }
@@ -13,7 +13,7 @@ import {
13
13
  * https://www.researchgate.net/publication/220720443_A_Practical_Analytic_Model_for_Daylight
14
14
  *
15
15
  * First implemented by Simon Wallner
16
- * http://www.simonwallner.at/projects/atmospheric-scattering
16
+ * http://simonwallner.at/project/atmospheric-scattering/
17
17
  *
18
18
  * Improved by Martin Upitis
19
19
  * http://blenderartists.org/forum/showthread.php?245954-preethams-sky-impementation-HDR
@@ -1,13 +1,10 @@
1
1
  import {
2
2
  Color,
3
3
  FrontSide,
4
- LinearFilter,
5
- MathUtils,
6
4
  Matrix4,
7
5
  Mesh,
8
6
  PerspectiveCamera,
9
7
  Plane,
10
- RGBFormat,
11
8
  ShaderMaterial,
12
9
  UniformsLib,
13
10
  UniformsUtils,
@@ -18,8 +15,8 @@ import {
18
15
 
19
16
  /**
20
17
  * Work based on :
21
- * http://slayvin.net : Flat mirror for three.js
22
- * http://www.adelphi.edu/~stemkoski : An implementation of water shader based on the flat mirror
18
+ * https://github.com/Slayvin: Flat mirror for three.js
19
+ * https://home.adelphi.edu/~stemkoski/ : An implementation of water shader based on the flat mirror
23
20
  * http://29a.ch/ && http://29a.ch/slides/2012/webglwater/ : Water shader explanations in WebGL
24
21
  */
25
22
 
@@ -64,19 +61,7 @@ class Water extends Mesh {
64
61
 
65
62
  const mirrorCamera = new PerspectiveCamera();
66
63
 
67
- const parameters = {
68
- minFilter: LinearFilter,
69
- magFilter: LinearFilter,
70
- format: RGBFormat
71
- };
72
-
73
- const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight, parameters );
74
-
75
- if ( ! MathUtils.isPowerOfTwo( textureWidth ) || ! MathUtils.isPowerOfTwo( textureHeight ) ) {
76
-
77
- renderTarget.texture.generateMipmaps = false;
78
-
79
- }
64
+ const renderTarget = new WebGLRenderTarget( textureWidth, textureHeight );
80
65
 
81
66
  const mirrorShader = {
82
67
 
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  Clock,
3
3
  Color,
4
- LinearEncoding,
5
4
  Matrix4,
6
5
  Mesh,
7
6
  RepeatWrapping,
@@ -17,8 +16,8 @@ import { Refractor } from '../objects/Refractor.js';
17
16
 
18
17
  /**
19
18
  * References:
20
- * http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf
21
- * http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html
19
+ * https://alex.vlachos.com/graphics/Vlachos-SIGGRAPH10-WaterFlow.pdf
20
+ * http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html
22
21
  *
23
22
  */
24
23
 
@@ -41,7 +40,6 @@ class Water extends Mesh {
41
40
  const reflectivity = options.reflectivity || 0.02;
42
41
  const scale = options.scale || 1;
43
42
  const shader = options.shader || Water.WaterShader;
44
- const encoding = options.encoding !== undefined ? options.encoding : LinearEncoding;
45
43
 
46
44
  const textureLoader = new TextureLoader();
47
45
 
@@ -73,15 +71,13 @@ class Water extends Mesh {
73
71
  const reflector = new Reflector( geometry, {
74
72
  textureWidth: textureWidth,
75
73
  textureHeight: textureHeight,
76
- clipBias: clipBias,
77
- encoding: encoding
74
+ clipBias: clipBias
78
75
  } );
79
76
 
80
77
  const refractor = new Refractor( geometry, {
81
78
  textureWidth: textureWidth,
82
79
  textureHeight: textureHeight,
83
- clipBias: clipBias,
84
- encoding: encoding
80
+ clipBias: clipBias
85
81
  } );
86
82
 
87
83
  reflector.matrixAutoUpdate = false;
@@ -8,7 +8,7 @@ import {
8
8
  UniformsUtils,
9
9
  WebGLRenderTarget
10
10
  } from 'three';
11
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
11
+ import { Pass, FullScreenQuad } from './Pass.js';
12
12
  import { CopyShader } from '../shaders/CopyShader.js';
13
13
  import { LuminosityShader } from '../shaders/LuminosityShader.js';
14
14
  import { ToneMapShader } from '../shaders/ToneMapShader.js';
@@ -7,7 +7,7 @@ import {
7
7
  UniformsUtils,
8
8
  WebGLRenderTarget
9
9
  } from 'three';
10
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
10
+ import { Pass, FullScreenQuad } from './Pass.js';
11
11
  import { AfterimageShader } from '../shaders/AfterimageShader.js';
12
12
 
13
13
  class AfterimagePass extends Pass {
@@ -7,7 +7,7 @@ import {
7
7
  Vector2,
8
8
  WebGLRenderTarget
9
9
  } from 'three';
10
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
10
+ import { Pass, FullScreenQuad } from './Pass.js';
11
11
  import { CopyShader } from '../shaders/CopyShader.js';
12
12
  import { ConvolutionShader } from '../shaders/ConvolutionShader.js';
13
13
 
@@ -8,7 +8,7 @@ import {
8
8
  UniformsUtils,
9
9
  WebGLRenderTarget
10
10
  } from 'three';
11
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
11
+ import { Pass, FullScreenQuad } from './Pass.js';
12
12
  import { BokehShader } from '../shaders/BokehShader.js';
13
13
 
14
14
  /**
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Color
3
3
  } from 'three';
4
- import { Pass } from '../postprocessing/Pass.js';
4
+ import { Pass } from './Pass.js';
5
5
 
6
6
  class ClearPass extends Pass {
7
7
 
@@ -8,7 +8,7 @@ import {
8
8
  ShaderMaterial,
9
9
  UniformsUtils
10
10
  } from 'three';
11
- import { Pass } from '../postprocessing/Pass.js';
11
+ import { Pass } from './Pass.js';
12
12
 
13
13
  class CubeTexturePass extends Pass {
14
14
 
@@ -2,7 +2,7 @@ import {
2
2
  ShaderMaterial,
3
3
  UniformsUtils
4
4
  } from 'three';
5
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
5
+ import { Pass, FullScreenQuad } from './Pass.js';
6
6
  import { DotScreenShader } from '../shaders/DotScreenShader.js';
7
7
 
8
8
  class DotScreenPass extends Pass {
@@ -10,9 +10,9 @@ import {
10
10
  WebGLRenderTarget
11
11
  } from 'three';
12
12
  import { CopyShader } from '../shaders/CopyShader.js';
13
- import { ShaderPass } from '../postprocessing/ShaderPass.js';
14
- import { MaskPass } from '../postprocessing/MaskPass.js';
15
- import { ClearMaskPass } from '../postprocessing/MaskPass.js';
13
+ import { ShaderPass } from './ShaderPass.js';
14
+ import { MaskPass } from './MaskPass.js';
15
+ import { ClearMaskPass } from './MaskPass.js';
16
16
 
17
17
  class EffectComposer {
18
18
 
@@ -2,7 +2,7 @@ import {
2
2
  ShaderMaterial,
3
3
  UniformsUtils
4
4
  } from 'three';
5
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
5
+ import { Pass, FullScreenQuad } from './Pass.js';
6
6
  import { FilmShader } from '../shaders/FilmShader.js';
7
7
 
8
8
  class FilmPass extends Pass {
@@ -2,11 +2,12 @@ import {
2
2
  DataTexture,
3
3
  FloatType,
4
4
  MathUtils,
5
- RGBFormat,
5
+ RedFormat,
6
+ LuminanceFormat,
6
7
  ShaderMaterial,
7
8
  UniformsUtils
8
9
  } from 'three';
9
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
10
+ import { Pass, FullScreenQuad } from './Pass.js';
10
11
  import { DigitalGlitch } from '../shaders/DigitalGlitch.js';
11
12
 
12
13
  class GlitchPass extends Pass {
@@ -39,6 +40,8 @@ class GlitchPass extends Pass {
39
40
 
40
41
  render( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) {
41
42
 
43
+ if ( renderer.capabilities.isWebGL2 === false ) this.uniforms[ 'tDisp' ].value.format = LuminanceFormat;
44
+
42
45
  this.uniforms[ 'tDiffuse' ].value = readBuffer.texture;
43
46
  this.uniforms[ 'seed' ].value = Math.random();//default seeding
44
47
  this.uniforms[ 'byp' ].value = 0;
@@ -94,19 +97,19 @@ class GlitchPass extends Pass {
94
97
 
95
98
  generateHeightmap( dt_size ) {
96
99
 
97
- const data_arr = new Float32Array( dt_size * dt_size * 3 );
100
+ const data_arr = new Float32Array( dt_size * dt_size );
98
101
  const length = dt_size * dt_size;
99
102
 
100
103
  for ( let i = 0; i < length; i ++ ) {
101
104
 
102
105
  const val = MathUtils.randFloat( 0, 1 );
103
- data_arr[ i * 3 + 0 ] = val;
104
- data_arr[ i * 3 + 1 ] = val;
105
- data_arr[ i * 3 + 2 ] = val;
106
+ data_arr[ i ] = val;
106
107
 
107
108
  }
108
109
 
109
- return new DataTexture( data_arr, dt_size, dt_size, RGBFormat, FloatType );
110
+ const texture = new DataTexture( data_arr, dt_size, dt_size, RedFormat, FloatType );
111
+ texture.needsUpdate = true;
112
+ return texture;
110
113
 
111
114
  }
112
115
 
@@ -2,7 +2,7 @@ import {
2
2
  ShaderMaterial,
3
3
  UniformsUtils
4
4
  } from 'three';
5
- import { Pass, FullScreenQuad } from '../postprocessing/Pass.js';
5
+ import { Pass, FullScreenQuad } from './Pass.js';
6
6
  import { HalftoneShader } from '../shaders/HalftoneShader.js';
7
7
 
8
8
  /**