super-three 0.133.3 → 0.136.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 (354) hide show
  1. package/build/three.js +1059 -783
  2. package/build/three.min.js +1 -1
  3. package/build/three.module.js +1424 -895
  4. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  5. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  6. package/examples/fonts/open-sans/open-sans.css +9 -0
  7. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  8. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +3966 -0
  9. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  10. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  11. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  12. package/examples/fonts/tabler-icons/tabler-icons.min.css +4 -0
  13. package/examples/js/animation/CCDIKSolver.js +0 -1
  14. package/examples/js/animation/MMDPhysics.js +1 -3
  15. package/examples/js/controls/ArcballControls.js +99 -72
  16. package/examples/js/controls/DragControls.js +7 -0
  17. package/examples/js/controls/OrbitControls.js +5 -36
  18. package/examples/js/controls/TrackballControls.js +3 -2
  19. package/examples/js/controls/TransformControls.js +24 -1
  20. package/examples/js/csm/CSM.js +2 -2
  21. package/examples/js/csm/CSMFrustum.js +133 -0
  22. package/examples/js/curves/CurveExtras.js +0 -2
  23. package/examples/js/effects/AsciiEffect.js +2 -9
  24. package/examples/js/exporters/GLTFExporter.js +148 -64
  25. package/examples/js/exporters/USDZExporter.js +45 -26
  26. package/examples/js/geometries/TeapotGeometry.js +0 -1
  27. package/examples/js/interactive/SelectionBox.js +2 -0
  28. package/examples/js/interactive/SelectionHelper.js +22 -7
  29. package/examples/js/lights/RectAreaLightUniformsLib.js +4 -0
  30. package/examples/js/lines/LineMaterial.js +58 -20
  31. package/examples/js/lines/LineSegments2.js +29 -24
  32. package/examples/js/loaders/3DMLoader.js +24 -11
  33. package/examples/js/loaders/3MFLoader.js +2 -2
  34. package/examples/js/loaders/AMFLoader.js +0 -2
  35. package/examples/js/loaders/ColladaLoader.js +61 -4
  36. package/examples/js/loaders/EXRLoader.js +185 -262
  37. package/examples/js/loaders/FBXLoader.js +4 -5
  38. package/examples/js/loaders/GLTFLoader.js +96 -33
  39. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -8
  40. package/examples/js/loaders/KTX2Loader.js +23 -2
  41. package/examples/js/loaders/KTXLoader.js +1 -1
  42. package/examples/js/loaders/LDrawLoader.js +26 -30
  43. package/examples/js/loaders/LUT3dlLoader.js +2 -0
  44. package/examples/js/loaders/LUTCubeLoader.js +2 -0
  45. package/examples/js/loaders/LWOLoader.js +8 -6
  46. package/examples/js/loaders/LogLuvLoader.js +766 -0
  47. package/examples/js/loaders/MMDLoader.js +0 -1
  48. package/examples/js/loaders/NRRDLoader.js +9 -2
  49. package/examples/js/loaders/OBJLoader.js +0 -2
  50. package/examples/js/loaders/PLYLoader.js +33 -8
  51. package/examples/js/loaders/RGBELoader.js +2 -16
  52. package/examples/js/loaders/RGBMLoader.js +55 -5
  53. package/examples/js/loaders/SVGLoader.js +9 -5
  54. package/examples/js/loaders/TDSLoader.js +237 -271
  55. package/examples/js/loaders/VOXLoader.js +1 -0
  56. package/examples/js/loaders/VRMLLoader.js +2 -1
  57. package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
  58. package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
  59. package/examples/js/math/ImprovedNoise.js +1 -1
  60. package/examples/js/misc/GPUComputationRenderer.js +3 -1
  61. package/examples/js/objects/Lensflare.js +2 -10
  62. package/examples/js/objects/MarchingCubes.js +42 -128
  63. package/examples/js/objects/Reflector.js +7 -0
  64. package/examples/js/objects/Refractor.js +7 -0
  65. package/examples/js/objects/Sky.js +1 -1
  66. package/examples/js/objects/Water.js +2 -2
  67. package/examples/js/objects/Water2.js +4 -7
  68. package/examples/js/postprocessing/GlitchPass.js +3 -1
  69. package/examples/js/postprocessing/SSAOPass.js +1 -0
  70. package/examples/js/renderers/CSS2DRenderer.js +4 -4
  71. package/examples/js/renderers/CSS3DRenderer.js +4 -4
  72. package/examples/js/shaders/ConvolutionShader.js +0 -1
  73. package/examples/js/shaders/FXAAShader.js +1 -1
  74. package/examples/js/shaders/FilmShader.js +1 -1
  75. package/examples/js/shaders/GammaCorrectionShader.js +1 -1
  76. package/examples/js/shaders/HorizontalBlurShader.js +1 -2
  77. package/examples/js/shaders/SSRShader.js +1 -1
  78. package/examples/js/shaders/SSRrShader.js +1 -1
  79. package/examples/js/shaders/VerticalBlurShader.js +1 -2
  80. package/examples/js/utils/GeometryUtils.js +1 -1
  81. package/examples/js/utils/RoughnessMipmapper.js +18 -28
  82. package/examples/jsm/animation/CCDIKSolver.js +0 -1
  83. package/examples/jsm/animation/MMDPhysics.js +0 -2
  84. package/examples/jsm/controls/ArcballControls.js +80 -77
  85. package/examples/jsm/controls/DragControls.js +7 -0
  86. package/examples/jsm/controls/OrbitControls.js +9 -51
  87. package/examples/jsm/controls/TrackballControls.js +1 -1
  88. package/examples/jsm/controls/TransformControls.js +24 -1
  89. package/examples/jsm/csm/CSM.js +3 -3
  90. package/examples/jsm/csm/{Frustum.js → CSMFrustum.js} +3 -3
  91. package/examples/jsm/curves/CurveExtras.js +0 -2
  92. package/examples/jsm/effects/AsciiEffect.js +2 -9
  93. package/examples/jsm/exporters/GLTFExporter.js +161 -75
  94. package/examples/jsm/exporters/USDZExporter.js +47 -26
  95. package/examples/jsm/geometries/TeapotGeometry.js +0 -1
  96. package/examples/jsm/interactive/SelectionBox.js +1 -0
  97. package/examples/jsm/interactive/SelectionHelper.js +19 -7
  98. package/examples/jsm/libs/flow.module.js +3338 -0
  99. package/examples/jsm/libs/lil-gui.module.min.js +8 -0
  100. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  101. package/examples/jsm/lights/RectAreaLightUniformsLib.js +7 -0
  102. package/examples/jsm/lines/LineMaterial.js +59 -23
  103. package/examples/jsm/lines/LineSegments2.js +22 -18
  104. package/examples/jsm/loaders/3DMLoader.js +18 -12
  105. package/examples/jsm/loaders/3MFLoader.js +2 -2
  106. package/examples/jsm/loaders/AMFLoader.js +0 -2
  107. package/examples/jsm/loaders/ColladaLoader.js +61 -4
  108. package/examples/jsm/loaders/EXRLoader.js +184 -293
  109. package/examples/jsm/loaders/FBXLoader.js +4 -5
  110. package/examples/jsm/loaders/GLTFLoader.js +101 -37
  111. package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -14
  112. package/examples/jsm/loaders/KTX2Loader.js +30 -2
  113. package/examples/jsm/loaders/KTXLoader.js +1 -1
  114. package/examples/jsm/loaders/LDrawLoader.js +23 -24
  115. package/examples/jsm/loaders/LUT3dlLoader.js +2 -0
  116. package/examples/jsm/loaders/LUTCubeLoader.js +2 -0
  117. package/examples/jsm/loaders/LWOLoader.js +8 -6
  118. package/examples/jsm/loaders/LogLuvLoader.js +606 -0
  119. package/examples/jsm/loaders/MMDLoader.js +0 -1
  120. package/examples/jsm/loaders/NRRDLoader.js +10 -2
  121. package/examples/jsm/loaders/OBJLoader.js +0 -2
  122. package/examples/jsm/loaders/PLYLoader.js +34 -8
  123. package/examples/jsm/loaders/RGBELoader.js +0 -20
  124. package/examples/jsm/loaders/RGBMLoader.js +61 -7
  125. package/examples/jsm/loaders/SVGLoader.js +9 -6
  126. package/examples/jsm/loaders/TDSLoader.js +236 -275
  127. package/examples/jsm/loaders/VOXLoader.js +1 -0
  128. package/examples/jsm/loaders/VRMLLoader.js +2 -1
  129. package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
  130. package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
  131. package/examples/jsm/math/ImprovedNoise.js +1 -1
  132. package/examples/jsm/misc/GPUComputationRenderer.js +3 -1
  133. package/examples/jsm/node-editor/NodeEditor.js +456 -0
  134. package/examples/jsm/node-editor/accessors/NormalEditor.js +30 -0
  135. package/examples/jsm/node-editor/accessors/PositionEditor.js +30 -0
  136. package/examples/jsm/node-editor/accessors/UVEditor.js +26 -0
  137. package/examples/jsm/node-editor/display/BlendEditor.js +43 -0
  138. package/examples/jsm/node-editor/examples/animate-uv.json +1 -0
  139. package/examples/jsm/node-editor/examples/fake-top-light.json +1 -0
  140. package/examples/jsm/node-editor/examples/oscillator-color.json +1 -0
  141. package/examples/jsm/node-editor/examples/rim.json +1 -0
  142. package/examples/jsm/node-editor/inputs/ColorEditor.js +91 -0
  143. package/examples/jsm/node-editor/inputs/FloatEditor.js +24 -0
  144. package/examples/jsm/node-editor/inputs/SliderEditor.js +68 -0
  145. package/examples/jsm/node-editor/inputs/Vector2Editor.js +28 -0
  146. package/examples/jsm/node-editor/inputs/Vector3Editor.js +30 -0
  147. package/examples/jsm/node-editor/inputs/Vector4Editor.js +37 -0
  148. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +108 -0
  149. package/examples/jsm/node-editor/math/DotEditor.js +36 -0
  150. package/examples/jsm/node-editor/math/InvertEditor.js +38 -0
  151. package/examples/jsm/node-editor/math/LimiterEditor.js +48 -0
  152. package/examples/jsm/node-editor/math/NormalizeEditor.js +26 -0
  153. package/examples/jsm/node-editor/math/OperatorEditor.js +50 -0
  154. package/examples/jsm/node-editor/math/PowerEditor.js +34 -0
  155. package/examples/jsm/node-editor/math/TrigonometryEditor.js +39 -0
  156. package/examples/jsm/node-editor/procedural/CheckerEditor.js +26 -0
  157. package/examples/jsm/node-editor/utils/OscillatorEditor.js +42 -0
  158. package/examples/jsm/node-editor/utils/TimerEditor.js +57 -0
  159. package/examples/jsm/nodes/core/NodeBuilder.js +2 -2
  160. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +1 -1
  161. package/examples/jsm/nodes/materials/nodes/StandardNode.js +7 -6
  162. package/examples/jsm/nodes/math/MathNode.js +12 -0
  163. package/examples/jsm/nodes/misc/BumpMapNode.js +1 -1
  164. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +1 -4
  165. package/examples/jsm/nodes/utils/ColorSpaceNode.js +1 -164
  166. package/examples/jsm/objects/Lensflare.js +3 -14
  167. package/examples/jsm/objects/MarchingCubes.js +46 -152
  168. package/examples/jsm/objects/Reflector.js +7 -0
  169. package/examples/jsm/objects/Refractor.js +7 -0
  170. package/examples/jsm/objects/Sky.js +1 -1
  171. package/examples/jsm/objects/Water.js +2 -2
  172. package/examples/jsm/objects/Water2.js +4 -8
  173. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +1 -1
  174. package/examples/jsm/postprocessing/AfterimagePass.js +1 -1
  175. package/examples/jsm/postprocessing/BloomPass.js +1 -1
  176. package/examples/jsm/postprocessing/BokehPass.js +1 -1
  177. package/examples/jsm/postprocessing/ClearPass.js +1 -1
  178. package/examples/jsm/postprocessing/CubeTexturePass.js +1 -1
  179. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  180. package/examples/jsm/postprocessing/EffectComposer.js +3 -3
  181. package/examples/jsm/postprocessing/FilmPass.js +1 -1
  182. package/examples/jsm/postprocessing/GlitchPass.js +4 -2
  183. package/examples/jsm/postprocessing/HalftonePass.js +1 -1
  184. package/examples/jsm/postprocessing/MaskPass.js +1 -1
  185. package/examples/jsm/postprocessing/OutlinePass.js +1 -1
  186. package/examples/jsm/postprocessing/RenderPass.js +1 -1
  187. package/examples/jsm/postprocessing/SAOPass.js +2 -2
  188. package/examples/jsm/postprocessing/SMAAPass.js +1 -1
  189. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
  190. package/examples/jsm/postprocessing/SSAOPass.js +2 -1
  191. package/examples/jsm/postprocessing/SSRPass.js +1 -1
  192. package/examples/jsm/postprocessing/SSRrPass.js +1 -1
  193. package/examples/jsm/postprocessing/SavePass.js +1 -1
  194. package/examples/jsm/postprocessing/ShaderPass.js +1 -1
  195. package/examples/jsm/postprocessing/TAARenderPass.js +1 -1
  196. package/examples/jsm/postprocessing/TexturePass.js +1 -1
  197. package/examples/jsm/postprocessing/UnrealBloomPass.js +1 -1
  198. package/examples/jsm/renderers/CSS2DRenderer.js +5 -4
  199. package/examples/jsm/renderers/CSS3DRenderer.js +5 -4
  200. package/examples/jsm/renderers/nodes/Nodes.js +15 -13
  201. package/examples/jsm/renderers/nodes/ShaderNode.js +194 -41
  202. package/examples/jsm/renderers/nodes/accessors/MaterialNode.js +6 -6
  203. package/examples/jsm/renderers/nodes/accessors/ModelViewProjectionNode.js +5 -5
  204. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +14 -3
  205. package/examples/jsm/renderers/nodes/accessors/PointUVNode.js +3 -3
  206. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +15 -5
  207. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +107 -0
  208. package/examples/jsm/renderers/nodes/accessors/UVNode.js +7 -5
  209. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +3 -3
  210. package/examples/jsm/renderers/nodes/core/AttributeNode.js +6 -0
  211. package/examples/jsm/renderers/nodes/core/BypassNode.js +38 -0
  212. package/examples/jsm/renderers/nodes/core/CodeNode.js +3 -3
  213. package/examples/jsm/renderers/nodes/core/ContextNode.js +4 -19
  214. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +13 -2
  215. package/examples/jsm/renderers/nodes/core/FunctionNode.js +19 -132
  216. package/examples/jsm/renderers/nodes/core/InputNode.js +13 -3
  217. package/examples/jsm/renderers/nodes/core/Node.js +32 -10
  218. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +146 -128
  219. package/examples/jsm/renderers/nodes/core/NodeFunction.js +22 -0
  220. package/examples/jsm/renderers/nodes/core/NodeFunctionInput.js +4 -4
  221. package/examples/jsm/renderers/nodes/core/NodeKeywords.js +18 -179
  222. package/examples/jsm/renderers/nodes/core/NodeParser.js +11 -0
  223. package/examples/jsm/renderers/nodes/core/NodeVar.js +2 -2
  224. package/examples/jsm/renderers/nodes/core/PropertyNode.js +14 -2
  225. package/examples/jsm/renderers/nodes/core/TempNode.js +10 -13
  226. package/examples/jsm/renderers/nodes/core/VarNode.js +12 -7
  227. package/examples/jsm/renderers/nodes/core/VaryNode.js +23 -8
  228. package/examples/jsm/renderers/nodes/core/constants.js +2 -0
  229. package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +60 -43
  230. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +21 -22
  231. package/examples/jsm/renderers/nodes/functions/BSDFs.js +64 -101
  232. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +27 -0
  233. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +25 -0
  234. package/examples/jsm/renderers/nodes/inputs/IntNode.js +17 -0
  235. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +10 -2
  236. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +20 -14
  237. package/examples/jsm/renderers/nodes/lights/LightNode.js +32 -36
  238. package/examples/jsm/renderers/nodes/math/CondNode.js +60 -0
  239. package/examples/jsm/renderers/nodes/math/MathNode.js +90 -37
  240. package/examples/jsm/renderers/nodes/math/OperatorNode.js +124 -31
  241. package/examples/jsm/renderers/nodes/parsers/GLSLNodeFunction.js +137 -0
  242. package/examples/jsm/renderers/nodes/parsers/GLSLNodeParser.js +14 -0
  243. package/examples/jsm/renderers/nodes/parsers/WGSLNodeFunction.js +89 -0
  244. package/examples/jsm/renderers/nodes/parsers/WGSLNodeParser.js +14 -0
  245. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +7 -9
  246. package/examples/jsm/renderers/nodes/utils/ArrayElementNode.js +31 -0
  247. package/examples/jsm/renderers/nodes/utils/ConvertNode.js +33 -0
  248. package/examples/jsm/renderers/nodes/utils/JoinNode.js +7 -7
  249. package/examples/jsm/renderers/nodes/utils/OscNode.js +58 -0
  250. package/examples/jsm/renderers/nodes/utils/SplitNode.js +18 -8
  251. package/examples/jsm/renderers/nodes/utils/SpriteSheetUVNode.js +7 -7
  252. package/examples/jsm/renderers/nodes/utils/TimerNode.js +1 -1
  253. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +22 -0
  254. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +192 -95
  255. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +2 -2
  256. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +2 -2
  257. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +1 -1
  258. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +10 -9
  259. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +2 -4
  260. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +2 -4
  261. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +15 -23
  262. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +44 -65
  263. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +12 -28
  264. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +61 -28
  265. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +34 -27
  266. package/examples/jsm/renderers/webgpu/constants.js +2 -2
  267. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +453 -95
  268. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  269. package/examples/jsm/shaders/ConvolutionShader.js +0 -1
  270. package/examples/jsm/shaders/FXAAShader.js +1 -1
  271. package/examples/jsm/shaders/FilmShader.js +1 -1
  272. package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
  273. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -2
  274. package/examples/jsm/shaders/SSRShader.js +1 -1
  275. package/examples/jsm/shaders/SSRrShader.js +1 -1
  276. package/examples/jsm/shaders/VerticalBlurShader.js +1 -2
  277. package/examples/jsm/utils/GeometryUtils.js +1 -1
  278. package/examples/jsm/utils/RoughnessMipmapper.js +19 -31
  279. package/examples/jsm/utils/WorkerPool.js +11 -11
  280. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
  281. package/package.json +24 -18
  282. package/src/Three.Legacy.js +18 -0
  283. package/src/Three.js +1 -3
  284. package/src/cameras/StereoCamera.js +8 -7
  285. package/src/constants.js +1 -8
  286. package/src/core/Layers.js +7 -1
  287. package/src/core/Object3D.js +3 -1
  288. package/src/extras/PMREMGenerator.js +23 -109
  289. package/src/extras/core/Interpolations.js +1 -1
  290. package/src/geometries/LatheGeometry.js +70 -47
  291. package/src/helpers/CameraHelper.js +1 -1
  292. package/src/loaders/FileLoader.js +98 -144
  293. package/src/loaders/ImageLoader.js +9 -4
  294. package/src/loaders/LoaderUtils.js +26 -0
  295. package/src/loaders/MaterialLoader.js +7 -4
  296. package/src/loaders/ObjectLoader.js +2 -0
  297. package/src/materials/Material.js +4 -4
  298. package/src/materials/MeshPhysicalMaterial.js +20 -14
  299. package/src/math/Color.js +0 -38
  300. package/src/math/MathUtils.js +5 -16
  301. package/src/math/Ray.js +2 -2
  302. package/src/math/Sphere.js +10 -1
  303. package/src/objects/Skeleton.js +1 -0
  304. package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
  305. package/src/renderers/WebGLRenderer.js +105 -132
  306. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +2 -2
  307. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +1 -1
  308. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +2 -24
  309. package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -74
  310. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
  311. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +1 -1
  312. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +19 -6
  313. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +28 -2
  314. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  315. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  316. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +1 -1
  317. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +23 -5
  318. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +2 -1
  319. package/src/renderers/shaders/ShaderLib.js +6 -4
  320. package/src/renderers/shaders/UniformsLib.js +1 -2
  321. package/src/renderers/webgl/WebGLCapabilities.js +0 -2
  322. package/src/renderers/webgl/WebGLExtensions.js +1 -0
  323. package/src/renderers/webgl/WebGLMaterials.js +27 -15
  324. package/src/renderers/webgl/WebGLMorphtargets.js +1 -0
  325. package/src/renderers/webgl/WebGLProgram.js +11 -24
  326. package/src/renderers/webgl/WebGLPrograms.js +194 -33
  327. package/src/renderers/webgl/WebGLRenderLists.js +4 -14
  328. package/src/renderers/webgl/WebGLShaderCache.js +120 -0
  329. package/src/renderers/webgl/WebGLShadowMap.js +14 -5
  330. package/src/renderers/webgl/WebGLState.js +76 -17
  331. package/src/renderers/webgl/WebGLTextures.js +367 -61
  332. package/src/renderers/webgl/WebGLUniforms.js +45 -1
  333. package/src/renderers/webxr/WebXRManager.js +77 -109
  334. package/src/scenes/Scene.js +1 -1
  335. package/src/textures/DataTexture.js +0 -2
  336. package/src/textures/DataTexture2DArray.js +0 -2
  337. package/src/textures/DataTexture3D.js +0 -2
  338. package/src/textures/FramebufferTexture.js +25 -0
  339. package/src/textures/Texture.js +6 -0
  340. package/examples/js/controls/DeviceOrientationControls.js +0 -147
  341. package/examples/js/libs/dat.gui.min.js +0 -14
  342. package/examples/jsm/controls/DeviceOrientationControls.js +0 -153
  343. package/examples/jsm/libs/dat.gui.module.js +0 -3575
  344. package/examples/jsm/libs/glslang.js +0 -78
  345. package/examples/jsm/libs/glslang.wasm +0 -0
  346. package/examples/jsm/renderers/nodes/consts/MathConsts.js +0 -7
  347. package/examples/jsm/renderers/nodes/core/ConstNode.js +0 -39
  348. package/examples/jsm/renderers/nodes/core/NodeSlot.js +0 -13
  349. package/examples/jsm/renderers/nodes/core/StructNode.js +0 -80
  350. package/examples/jsm/renderers/nodes/core/StructVarNode.js +0 -75
  351. package/examples/jsm/renderers/nodes/functions/EncodingFunctions.js +0 -99
  352. package/examples/jsm/renderers/nodes/functions/MathFunctions.js +0 -47
  353. package/examples/jsm/renderers/webgpu/nodes/ShaderLib.js +0 -152
  354. package/src/extras/objects/ImmediateRenderObject.js +0 -31
@@ -236,6 +236,7 @@
236
236
  this.minFilter = THREE.NearestFilter;
237
237
  this.magFilter = THREE.LinearFilter;
238
238
  this.unpackAlignment = 1;
239
+ this.needsUpdate = true;
239
240
 
240
241
  }
241
242
 
@@ -139,7 +139,7 @@
139
139
 
140
140
  const StringLiteral = createToken( {
141
141
  name: 'StringLiteral',
142
- pattern: /"(:?[^\\"\n\r]+|\\(:?[bfnrtv"\\/]|u[0-9a-fA-F]{4}))*"/
142
+ pattern: /"(?:[^\\"\n\r]|\\[bfnrtv"\\/]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])*"/
143
143
  } );
144
144
  const HexLiteral = createToken( {
145
145
  name: 'HexLiteral',
@@ -1282,6 +1282,7 @@
1282
1282
  }
1283
1283
 
1284
1284
  texture = new THREE.DataTexture( data, width, height, useAlpha === true ? THREE.RGBAFormat : THREE.RGBFormat );
1285
+ texture.needsUpdate = true;
1285
1286
  texture.__type = textureType; // needed for material modifications
1286
1287
 
1287
1288
  break;
@@ -105,6 +105,7 @@
105
105
  case 'WRPH': // image wrap h
106
106
 
107
107
  case 'NMOD':
108
+ case 'NSEL':
108
109
  case 'NPRW':
109
110
  case 'NPLA':
110
111
  case 'NODS':
@@ -38,8 +38,10 @@
38
38
 
39
39
  case 'NORM': // ENVL FORM skipped
40
40
 
41
- case 'PRE ':
42
- case 'POST':
41
+ case 'PRE ': // Pre-loop behavior for the keyframe
42
+
43
+ case 'POST': // Post-loop behavior for the keyframe
44
+
43
45
  case 'KEY ':
44
46
  case 'SPAN': // CLIP FORM skipped
45
47
 
@@ -1,6 +1,6 @@
1
1
  ( function () {
2
2
 
3
- // http://mrl.nyu.edu/~perlin/noise/
3
+ // https://cs.nyu.edu/~perlin/noise/
4
4
  const _p = [ 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180 ];
5
5
 
6
6
  for ( let i = 0; i < 256; i ++ ) {
@@ -310,7 +310,9 @@
310
310
  this.createTexture = function () {
311
311
 
312
312
  const data = new Float32Array( sizeX * sizeY * 4 );
313
- return new THREE.DataTexture( data, sizeX, sizeY, THREE.RGBAFormat, THREE.FloatType );
313
+ const texture = new THREE.DataTexture( data, sizeX, sizeY, THREE.RGBAFormat, THREE.FloatType );
314
+ texture.needsUpdate = true;
315
+ return texture;
314
316
 
315
317
  };
316
318
 
@@ -15,16 +15,8 @@
15
15
  const positionScreen = new THREE.Vector3();
16
16
  const positionView = new THREE.Vector3(); // textures
17
17
 
18
- const tempMap = new THREE.DataTexture( new Uint8Array( 16 * 16 * 3 ), 16, 16, THREE.RGBFormat );
19
- tempMap.minFilter = THREE.NearestFilter;
20
- tempMap.magFilter = THREE.NearestFilter;
21
- tempMap.wrapS = THREE.ClampToEdgeWrapping;
22
- tempMap.wrapT = THREE.ClampToEdgeWrapping;
23
- const occlusionMap = new THREE.DataTexture( new Uint8Array( 16 * 16 * 3 ), 16, 16, THREE.RGBFormat );
24
- occlusionMap.minFilter = THREE.NearestFilter;
25
- occlusionMap.magFilter = THREE.NearestFilter;
26
- occlusionMap.wrapS = THREE.ClampToEdgeWrapping;
27
- occlusionMap.wrapT = THREE.ClampToEdgeWrapping; // material
18
+ const tempMap = new THREE.FramebufferTexture( 16, 16, THREE.RGBFormat );
19
+ const occlusionMap = new THREE.FramebufferTexture( 16, 16, THREE.RGBFormat ); // material
28
20
 
29
21
  const geometry = Lensflare.Geometry;
30
22
  const material1a = new THREE.RawShaderMaterial( {
@@ -4,18 +4,19 @@
4
4
  * Port of http://webglsamples.org/blob/blob.html
5
5
  */
6
6
 
7
- class MarchingCubes extends THREE.ImmediateRenderObject {
7
+ class MarchingCubes extends THREE.Mesh {
8
8
 
9
- constructor( resolution, material, enableUvs, enableColors ) {
9
+ constructor( resolution, material, enableUvs = false, enableColors = false, maxPolyCount = 10000 ) {
10
10
 
11
- super( material );
11
+ const geometry = new THREE.BufferGeometry();
12
+ super( geometry, material );
12
13
  const scope = this; // temp buffers used in polygonize
13
14
 
14
15
  const vlist = new Float32Array( 12 * 3 );
15
16
  const nlist = new Float32Array( 12 * 3 );
16
17
  const clist = new Float32Array( 12 * 3 );
17
- this.enableUvs = enableUvs !== undefined ? enableUvs : false;
18
- this.enableColors = enableColors !== undefined ? enableColors : false; // functions have to be object properties
18
+ this.enableUvs = enableUvs;
19
+ this.enableColors = enableColors; // functions have to be object properties
19
20
  // prototype functions kill performance
20
21
  // (tested and it was 4x slower !!!)
21
22
 
@@ -35,27 +36,34 @@
35
36
  this.zd = this.size2;
36
37
  this.field = new Float32Array( this.size3 );
37
38
  this.normal_cache = new Float32Array( this.size3 * 3 );
38
- this.palette = new Float32Array( this.size3 * 3 ); // immediate render mode simulator
39
-
40
- this.maxCount = 4096; // TODO: find the fastest size for this buffer
39
+ this.palette = new Float32Array( this.size3 * 3 ); //
41
40
 
42
41
  this.count = 0;
43
- this.hasPositions = false;
44
- this.hasNormals = false;
45
- this.hasColors = false;
46
- this.hasUvs = false;
47
- this.positionArray = new Float32Array( this.maxCount * 3 );
48
- this.normalArray = new Float32Array( this.maxCount * 3 );
42
+ const maxVertexCount = maxPolyCount * 3;
43
+ this.positionArray = new Float32Array( maxVertexCount * 3 );
44
+ const positionAttribute = new THREE.BufferAttribute( this.positionArray, 3 );
45
+ positionAttribute.setUsage( THREE.DynamicDrawUsage );
46
+ geometry.setAttribute( 'position', positionAttribute );
47
+ this.normalArray = new Float32Array( maxVertexCount * 3 );
48
+ const normalAttribute = new THREE.BufferAttribute( this.normalArray, 3 );
49
+ normalAttribute.setUsage( THREE.DynamicDrawUsage );
50
+ geometry.setAttribute( 'normal', normalAttribute );
49
51
 
50
52
  if ( this.enableUvs ) {
51
53
 
52
- this.uvArray = new Float32Array( this.maxCount * 2 );
54
+ this.uvArray = new Float32Array( maxVertexCount * 2 );
55
+ const uvAttribute = new THREE.BufferAttribute( this.uvArray, 2 );
56
+ uvAttribute.setUsage( THREE.DynamicDrawUsage );
57
+ geometry.setAttribute( 'uv', uvAttribute );
53
58
 
54
59
  }
55
60
 
56
61
  if ( this.enableColors ) {
57
62
 
58
- this.colorArray = new Float32Array( this.maxCount * 3 );
63
+ this.colorArray = new Float32Array( maxVertexCount * 3 );
64
+ const colorAttribute = new THREE.BufferAttribute( this.colorArray, 3 );
65
+ colorAttribute.setUsage( THREE.DynamicDrawUsage );
66
+ geometry.setAttribute( 'color', colorAttribute );
59
67
 
60
68
  }
61
69
 
@@ -136,7 +144,7 @@
136
144
  // (this is where most of time is spent - it's inner work of O(n3) loop )
137
145
 
138
146
 
139
- function polygonize( fx, fy, fz, q, isol, renderCallback ) {
147
+ function polygonize( fx, fy, fz, q, isol ) {
140
148
 
141
149
  // cache indices
142
150
  const q1 = q + 1,
@@ -282,7 +290,7 @@
282
290
  o1 = cubeindex + i;
283
291
  o2 = o1 + 1;
284
292
  o3 = o1 + 2;
285
- posnormtriv( vlist, nlist, clist, 3 * triTable[ o1 ], 3 * triTable[ o2 ], 3 * triTable[ o3 ], renderCallback );
293
+ posnormtriv( vlist, nlist, clist, 3 * triTable[ o1 ], 3 * triTable[ o2 ], 3 * triTable[ o3 ] );
286
294
  i += 3;
287
295
  numtris ++;
288
296
 
@@ -290,12 +298,9 @@
290
298
 
291
299
  return numtris;
292
300
 
293
- } /////////////////////////////////////
294
- // Immediate render mode simulator
295
- /////////////////////////////////////
296
-
301
+ }
297
302
 
298
- function posnormtriv( pos, norm, colors, o1, o2, o3, renderCallback ) {
303
+ function posnormtriv( pos, norm, colors, o1, o2, o3 ) {
299
304
 
300
305
  const c = scope.count * 3; // positions
301
306
 
@@ -368,67 +373,7 @@
368
373
 
369
374
  scope.count += 3;
370
375
 
371
- if ( scope.count >= scope.maxCount - 3 ) {
372
-
373
- scope.hasPositions = true;
374
- scope.hasNormals = true;
375
-
376
- if ( scope.enableUvs ) {
377
-
378
- scope.hasUvs = true;
379
-
380
- }
381
-
382
- if ( scope.enableColors ) {
383
-
384
- scope.hasColors = true;
385
-
386
- }
387
-
388
- renderCallback( scope );
389
-
390
- }
391
-
392
- }
393
-
394
- this.begin = function () {
395
-
396
- this.count = 0;
397
- this.hasPositions = false;
398
- this.hasNormals = false;
399
- this.hasUvs = false;
400
- this.hasColors = false;
401
-
402
- };
403
-
404
- this.end = function ( renderCallback ) {
405
-
406
- if ( this.count === 0 ) return;
407
-
408
- for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
409
-
410
- this.positionArray[ i ] = 0.0;
411
-
412
- }
413
-
414
- this.hasPositions = true;
415
- this.hasNormals = true;
416
-
417
- if ( this.enableUvs && this.material.map ) {
418
-
419
- this.hasUvs = true;
420
-
421
- }
422
-
423
- if ( this.enableColors && this.material.vertexColors !== THREE.NoColors ) {
424
-
425
- this.hasColors = true;
426
-
427
- }
428
-
429
- renderCallback( this );
430
-
431
- }; /////////////////////////////////////
376
+ } /////////////////////////////////////
432
377
  // Metaballs
433
378
  /////////////////////////////////////
434
379
  // Adds a reciprocal ball (nice and blobby) that, to be fast, fades to zero after
@@ -729,9 +674,9 @@
729
674
 
730
675
  };
731
676
 
732
- this.render = function ( renderCallback ) {
677
+ this.onBeforeRender = function () {
733
678
 
734
- this.begin(); // Triangulate. Yeah, this is slow.
679
+ this.count = 0; // Triangulate. Yeah, this is slow.
735
680
 
736
681
  const smin2 = this.size - 2;
737
682
 
@@ -750,59 +695,28 @@
750
695
  const fx = ( x - this.halfsize ) / this.halfsize; //+ 1
751
696
 
752
697
  const q = y_offset + x;
753
- polygonize( fx, fy, fz, q, this.isolation, renderCallback );
698
+ polygonize( fx, fy, fz, q, this.isolation );
754
699
 
755
700
  }
756
701
 
757
702
  }
758
703
 
759
- }
760
-
761
- this.end( renderCallback );
762
-
763
- };
764
-
765
- this.generateGeometry = function () {
766
-
767
- console.warn( 'THREE.MarchingCubes: generateGeometry() now returns THREE.BufferGeometry' );
768
- return this.generateBufferGeometry();
704
+ } // reset unneeded data
769
705
 
770
- };
771
-
772
- function concatenate( a, b, length ) {
773
706
 
774
- const result = new Float32Array( a.length + length );
775
- result.set( a, 0 );
776
- result.set( b.slice( 0, length ), a.length );
777
- return result;
778
-
779
- }
780
-
781
- this.generateBufferGeometry = function () {
707
+ for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
782
708
 
783
- const geo = new THREE.BufferGeometry();
784
- let posArray = new Float32Array();
785
- let normArray = new Float32Array();
786
- let colorArray = new Float32Array();
787
- let uvArray = new Float32Array();
788
- const scope = this;
709
+ this.positionArray[ i ] = 0.0;
789
710
 
790
- const geo_callback = function ( object ) {
711
+ } // update geometry data
791
712
 
792
- if ( scope.hasPositions ) posArray = concatenate( posArray, object.positionArray, object.count * 3 );
793
- if ( scope.hasNormals ) normArray = concatenate( normArray, object.normalArray, object.count * 3 );
794
- if ( scope.hasColors ) colorArray = concatenate( colorArray, object.colorArray, object.count * 3 );
795
- if ( scope.hasUvs ) uvArray = concatenate( uvArray, object.uvArray, object.count * 2 );
796
- object.count = 0;
797
713
 
798
- };
714
+ geometry.getAttribute( 'position' ).needsUpdate = true;
715
+ geometry.getAttribute( 'normal' ).needsUpdate = true;
716
+ if ( this.enableUvs ) geometry.getAttribute( 'uv' ).needsUpdate = true;
717
+ if ( this.enableColors ) geometry.getAttribute( 'color' ).needsUpdate = true; // safety check
799
718
 
800
- this.render( geo_callback );
801
- if ( this.hasPositions ) geo.setAttribute( 'position', new THREE.BufferAttribute( posArray, 3 ) );
802
- if ( this.hasNormals ) geo.setAttribute( 'normal', new THREE.BufferAttribute( normArray, 3 ) );
803
- if ( this.hasColors ) geo.setAttribute( 'color', new THREE.BufferAttribute( colorArray, 3 ) );
804
- if ( this.hasUvs ) geo.setAttribute( 'uv', new THREE.BufferAttribute( uvArray, 2 ) );
805
- return geo;
719
+ if ( this.count / 3 > maxPolyCount ) console.warn( 'THREE.MarchingCubes: Geometry buffers too small for rendering. Please create an instance with a higher poly count.' );
806
720
 
807
721
  };
808
722
 
@@ -816,7 +730,7 @@
816
730
  // Marching cubes lookup tables
817
731
  /////////////////////////////////////
818
732
  // These tables are straight from Paul Bourke's page:
819
- // http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/
733
+ // http://paulbourke.net/geometry/polygonise/
820
734
  // who in turn got them from Cory Gene Bloyd.
821
735
 
822
736
  const edgeTable = new Int32Array( [ 0x0, 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c, 0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00, 0x190, 0x99, 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c, 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90, 0x230, 0x339, 0x33, 0x13a, 0x636, 0x73f, 0x435, 0x53c, 0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30, 0x3a0, 0x2a9, 0x1a3, 0xaa, 0x7a6, 0x6af, 0x5a5, 0x4ac, 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0, 0x460, 0x569, 0x663, 0x76a, 0x66, 0x16f, 0x265, 0x36c, 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60, 0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff, 0x3f5, 0x2fc, 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0, 0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55, 0x15c, 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950, 0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc, 0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0, 0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc, 0xcc, 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0, 0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c, 0x15c, 0x55, 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650, 0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc, 0x2fc, 0x3f5, 0xff, 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0, 0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c, 0x36c, 0x265, 0x16f, 0x66, 0x76a, 0x663, 0x569, 0x460, 0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac, 0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa, 0x1a3, 0x2a9, 0x3a0, 0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c, 0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33, 0x339, 0x230, 0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c, 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99, 0x190, 0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c, 0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0 ] );
@@ -135,6 +135,13 @@
135
135
 
136
136
  };
137
137
 
138
+ this.dispose = function () {
139
+
140
+ renderTarget.dispose();
141
+ scope.material.dispose();
142
+
143
+ };
144
+
138
145
  }
139
146
 
140
147
  }
@@ -189,6 +189,13 @@
189
189
 
190
190
  };
191
191
 
192
+ this.dispose = function () {
193
+
194
+ renderTarget.dispose();
195
+ scope.material.dispose();
196
+
197
+ };
198
+
192
199
  }
193
200
 
194
201
  }
@@ -6,7 +6,7 @@
6
6
  * https://www.researchgate.net/publication/220720443_A_Practical_Analytic_Model_for_Daylight
7
7
  *
8
8
  * First implemented by Simon Wallner
9
- * http://www.simonwallner.at/projects/atmospheric-scattering
9
+ * http://simonwallner.at/project/atmospheric-scattering/
10
10
  *
11
11
  * Improved by Martin Upitis
12
12
  * http://blenderartists.org/forum/showthread.php?245954-preethams-sky-impementation-HDR
@@ -2,8 +2,8 @@
2
2
 
3
3
  /**
4
4
  * Work based on :
5
- * http://slayvin.net : Flat mirror for three.js
6
- * http://www.adelphi.edu/~stemkoski : An implementation of water shader based on the flat mirror
5
+ * https://github.com/Slayvin: Flat mirror for three.js
6
+ * https://home.adelphi.edu/~stemkoski/ : An implementation of water shader based on the flat mirror
7
7
  * http://29a.ch/ && http://29a.ch/slides/2012/webglwater/ : Water shader explanations in WebGL
8
8
  */
9
9
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  /**
4
4
  * References:
5
- * http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf
6
- * http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html
5
+ * https://alex.vlachos.com/graphics/Vlachos-SIGGRAPH10-WaterFlow.pdf
6
+ * http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html
7
7
  *
8
8
  */
9
9
 
@@ -23,7 +23,6 @@
23
23
  const reflectivity = options.reflectivity || 0.02;
24
24
  const scale = options.scale || 1;
25
25
  const shader = options.shader || Water.WaterShader;
26
- const encoding = options.encoding !== undefined ? options.encoding : THREE.LinearEncoding;
27
26
  const textureLoader = new THREE.TextureLoader();
28
27
  const flowMap = options.flowMap || undefined;
29
28
  const normalMap0 = options.normalMap0 || textureLoader.load( 'textures/water/Water_1_M_Normal.jpg' );
@@ -51,14 +50,12 @@
51
50
  const reflector = new THREE.Reflector( geometry, {
52
51
  textureWidth: textureWidth,
53
52
  textureHeight: textureHeight,
54
- clipBias: clipBias,
55
- encoding: encoding
53
+ clipBias: clipBias
56
54
  } );
57
55
  const refractor = new THREE.Refractor( geometry, {
58
56
  textureWidth: textureWidth,
59
57
  textureHeight: textureHeight,
60
- clipBias: clipBias,
61
- encoding: encoding
58
+ clipBias: clipBias
62
59
  } );
63
60
  reflector.matrixAutoUpdate = false;
64
61
  refractor.matrixAutoUpdate = false; // material
@@ -93,7 +93,9 @@
93
93
 
94
94
  }
95
95
 
96
- return new THREE.DataTexture( data_arr, dt_size, dt_size, THREE.RGBFormat, THREE.FloatType );
96
+ const texture = new THREE.DataTexture( data_arr, dt_size, dt_size, THREE.RGBFormat, THREE.FloatType );
97
+ texture.needsUpdate = true;
98
+ return texture;
97
99
 
98
100
  }
99
101
 
@@ -316,6 +316,7 @@
316
316
  this.noiseTexture = new THREE.DataTexture( data, width, height, THREE.RGBAFormat, THREE.FloatType );
317
317
  this.noiseTexture.wrapS = THREE.RepeatWrapping;
318
318
  this.noiseTexture.wrapT = THREE.RepeatWrapping;
319
+ this.noiseTexture.needsUpdate = true;
319
320
 
320
321
  }
321
322
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  class CSS2DObject extends THREE.Object3D {
4
4
 
5
- constructor( element ) {
5
+ constructor( element = document.createElement( 'div' ) ) {
6
6
 
7
7
  super();
8
- this.element = element || document.createElement( 'div' );
8
+ this.element = element;
9
9
  this.element.style.position = 'absolute';
10
10
  this.element.style.userSelect = 'none';
11
11
  this.element.setAttribute( 'draggable', false );
@@ -49,7 +49,7 @@
49
49
 
50
50
  class CSS2DRenderer {
51
51
 
52
- constructor() {
52
+ constructor( parameters = {} ) {
53
53
 
54
54
  const _this = this;
55
55
 
@@ -60,7 +60,7 @@
60
60
  const cache = {
61
61
  objects: new WeakMap()
62
62
  };
63
- const domElement = document.createElement( 'div' );
63
+ const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );
64
64
  domElement.style.overflow = 'hidden';
65
65
  this.domElement = domElement;
66
66
 
@@ -12,10 +12,10 @@
12
12
 
13
13
  class CSS3DObject extends THREE.Object3D {
14
14
 
15
- constructor( element ) {
15
+ constructor( element = document.createElement( 'div' ) ) {
16
16
 
17
17
  super();
18
- this.element = element || document.createElement( 'div' );
18
+ this.element = element;
19
19
  this.element.style.position = 'absolute';
20
20
  this.element.style.pointerEvents = 'auto';
21
21
  this.element.style.userSelect = 'none';
@@ -75,7 +75,7 @@
75
75
 
76
76
  class CSS3DRenderer {
77
77
 
78
- constructor() {
78
+ constructor( parameters = {} ) {
79
79
 
80
80
  const _this = this;
81
81
 
@@ -90,7 +90,7 @@
90
90
  },
91
91
  objects: new WeakMap()
92
92
  };
93
- const domElement = document.createElement( 'div' );
93
+ const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );
94
94
  domElement.style.overflow = 'hidden';
95
95
  this.domElement = domElement;
96
96
  const cameraElement = document.createElement( 'div' );
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Convolution shader
5
5
  * ported from o3d sample to WebGL / GLSL
6
- * http://o3d.googlecode.com/svn/trunk/samples/convolution.html
7
6
  */
8
7
 
9
8
  const ConvolutionShader = {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * NVIDIA FXAA by Timothy Lottes
5
- * http://timothylottes.blogspot.com/2011/06/fxaa3-source-released.html
5
+ * https://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
6
6
  * - WebGL port by @supereggbert
7
7
  * http://www.glge.org/demos/fxaa/
8
8
  */
@@ -4,7 +4,7 @@
4
4
  * Film grain & scanlines shader
5
5
  *
6
6
  * - ported from HLSL to WebGL / GLSL
7
- * http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
7
+ * https://web.archive.org/web/20210226214859/http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
8
8
  *
9
9
  * Screen Space Static Postprocessor
10
10
  *
@@ -34,7 +34,7 @@
34
34
 
35
35
  vec4 tex = texture2D( tDiffuse, vUv );
36
36
 
37
- gl_FragColor = LinearTosRGB( tex ); // optional: LinearToGamma( tex, float( GAMMA_FACTOR ) );
37
+ gl_FragColor = LinearTosRGB( tex );
38
38
 
39
39
  }`
40
40
  };
@@ -2,8 +2,7 @@
2
2
 
3
3
  /**
4
4
  * Two pass Gaussian blur filter (horizontal and vertical blur shaders)
5
- * - described in http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
6
- * and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
5
+ * - see http://www.cake23.de/traveling-wavefronts-lit-up.html
7
6
  *
8
7
  * - 9 samples per pass
9
8
  * - standard deviation 2.7
@@ -197,7 +197,7 @@
197
197
  vec3 vP=getViewPosition( uv, d, cW );
198
198
 
199
199
  #ifdef PERSPECTIVE_CAMERA
200
- // https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
200
+ // https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
201
201
  float recipVPZ=1./viewPosition.z;
202
202
  float viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
203
203
  #else
@@ -215,7 +215,7 @@
215
215
  vec3 vP=getViewPosition( uv, d, cW );
216
216
 
217
217
  #ifdef PERSPECTIVE_CAMERA
218
- // https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
218
+ // https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
219
219
  float recipVPZ=1./viewPosition.z;
220
220
  float viewRefractRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
221
221
  float sD=surfDist*cW;
@@ -2,8 +2,7 @@
2
2
 
3
3
  /**
4
4
  * Two pass Gaussian blur filter (horizontal and vertical blur shaders)
5
- * - described in http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
6
- * and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
5
+ * - see http://www.cake23.de/traveling-wavefronts-lit-up.html
7
6
  *
8
7
  * - 9 samples per pass
9
8
  * - standard deviation 2.7
@@ -41,7 +41,7 @@
41
41
  * Generates 3D-Coordinates in a very fast way.
42
42
  *
43
43
  * Based on work by:
44
- * @link http://www.openprocessing.org/visuals/?visualID=15599
44
+ * @link https://openprocessing.org/user/5654
45
45
  *
46
46
  * @param center Center of Hilbert curve.
47
47
  * @param size Total width of Hilbert curve.