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
@@ -1,18 +1,15 @@
1
1
  import {
2
+ CubeReflectionMapping,
3
+ CubeRefractionMapping,
2
4
  CubeUVReflectionMapping,
3
- GammaEncoding,
4
5
  LinearEncoding,
6
+ LinearFilter,
5
7
  NoToneMapping,
6
- NearestFilter,
7
8
  NoBlending,
8
- RGBDEncoding,
9
- RGBEEncoding,
10
- RGBEFormat,
11
9
  RGBAFormat,
12
- RGBM16Encoding,
13
- RGBM7Encoding,
14
10
  UnsignedByteType,
15
- sRGBEncoding
11
+ sRGBEncoding,
12
+ HalfFloatType
16
13
  } from '../constants.js';
17
14
 
18
15
  import { BufferAttribute } from '../core/BufferAttribute.js';
@@ -47,12 +44,7 @@ const MAX_SAMPLES = 20;
47
44
 
48
45
  const ENCODINGS = {
49
46
  [ LinearEncoding ]: 0,
50
- [ sRGBEncoding ]: 1,
51
- [ RGBEEncoding ]: 2,
52
- [ RGBM7Encoding ]: 3,
53
- [ RGBM16Encoding ]: 4,
54
- [ RGBDEncoding ]: 5,
55
- [ GammaEncoding ]: 6
47
+ [ sRGBEncoding ]: 1
56
48
  };
57
49
 
58
50
  const _flatCamera = /*@__PURE__*/ new OrthographicCamera();
@@ -136,7 +128,7 @@ class PMREMGenerator {
136
128
 
137
129
  /**
138
130
  * Generates a PMREM from an equirectangular texture, which can be either LDR
139
- * (RGBFormat) or HDR (RGBEFormat). The ideal input image size is 1k (1024 x 512),
131
+ * or HDR. The ideal input image size is 1k (1024 x 512),
140
132
  * as this matches best with the 256 x 256 cubemap output.
141
133
  */
142
134
  fromEquirectangular( equirectangular ) {
@@ -147,7 +139,7 @@ class PMREMGenerator {
147
139
 
148
140
  /**
149
141
  * Generates a PMREM from an cubemap texture, which can be either LDR
150
- * (RGBFormat) or HDR (RGBEFormat). The ideal input cube size is 256 x 256,
142
+ * or HDR. The ideal input cube size is 256 x 256,
151
143
  * as this matches best with the 256 x 256 cubemap output.
152
144
  */
153
145
  fromCubemap( cubemap ) {
@@ -232,12 +224,12 @@ class PMREMGenerator {
232
224
  _allocateTargets( texture ) { // warning: null texture is valid
233
225
 
234
226
  const params = {
235
- magFilter: NearestFilter,
236
- minFilter: NearestFilter,
227
+ magFilter: LinearFilter,
228
+ minFilter: LinearFilter,
237
229
  generateMipmaps: false,
238
- type: UnsignedByteType,
239
- format: RGBEFormat,
240
- encoding: _isLDR( texture ) ? texture.encoding : RGBEEncoding,
230
+ type: HalfFloatType,
231
+ format: RGBAFormat,
232
+ encoding: LinearEncoding,
241
233
  depthBuffer: false
242
234
  };
243
235
 
@@ -265,12 +257,10 @@ class PMREMGenerator {
265
257
  const renderer = this._renderer;
266
258
 
267
259
  const originalAutoClear = renderer.autoClear;
268
- const outputEncoding = renderer.outputEncoding;
269
260
  const toneMapping = renderer.toneMapping;
270
261
  renderer.getClearColor( _clearColor );
271
262
 
272
263
  renderer.toneMapping = NoToneMapping;
273
- renderer.outputEncoding = LinearEncoding;
274
264
  renderer.autoClear = false;
275
265
 
276
266
  const backgroundMaterial = new MeshBasicMaterial( {
@@ -340,7 +330,6 @@ class PMREMGenerator {
340
330
  backgroundBox.material.dispose();
341
331
 
342
332
  renderer.toneMapping = toneMapping;
343
- renderer.outputEncoding = outputEncoding;
344
333
  renderer.autoClear = originalAutoClear;
345
334
  scene.background = background;
346
335
 
@@ -364,7 +353,9 @@ class PMREMGenerator {
364
353
 
365
354
  const renderer = this._renderer;
366
355
 
367
- if ( texture.isCubeTexture ) {
356
+ const isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );
357
+
358
+ if ( isCubeTexture ) {
368
359
 
369
360
  if ( this._cubemapShader == null ) {
370
361
 
@@ -382,21 +373,20 @@ class PMREMGenerator {
382
373
 
383
374
  }
384
375
 
385
- const material = texture.isCubeTexture ? this._cubemapShader : this._equirectShader;
376
+ const material = isCubeTexture ? this._cubemapShader : this._equirectShader;
386
377
  const mesh = new Mesh( _lodPlanes[ 0 ], material );
387
378
 
388
379
  const uniforms = material.uniforms;
389
380
 
390
381
  uniforms[ 'envMap' ].value = texture;
391
382
 
392
- if ( ! texture.isCubeTexture ) {
383
+ if ( ! isCubeTexture ) {
393
384
 
394
385
  uniforms[ 'texelSize' ].value.set( 1.0 / texture.image.width, 1.0 / texture.image.height );
395
386
 
396
387
  }
397
388
 
398
389
  this._setEncoding( uniforms[ 'inputEncoding' ], texture );
399
- this._setEncoding( uniforms[ 'outputEncoding' ], cubeUVRenderTarget.texture );
400
390
 
401
391
  _setViewport( cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX );
402
392
 
@@ -528,9 +518,6 @@ class PMREMGenerator {
528
518
  blurUniforms[ 'dTheta' ].value = radiansPerPixel;
529
519
  blurUniforms[ 'mipInt' ].value = LOD_MAX - lodIn;
530
520
 
531
- this._setEncoding( blurUniforms[ 'inputEncoding' ], targetIn.texture );
532
- this._setEncoding( blurUniforms[ 'outputEncoding' ], targetIn.texture );
533
-
534
521
  const outputSize = _sizeLods[ lodOut ];
535
522
  const x = 3 * Math.max( 0, SIZE_MAX - 2 * outputSize );
536
523
  const y = ( lodOut === 0 ? 0 : 2 * SIZE_MAX ) + 2 * outputSize * ( lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0 );
@@ -543,14 +530,6 @@ class PMREMGenerator {
543
530
 
544
531
  }
545
532
 
546
- function _isLDR( texture ) {
547
-
548
- if ( texture === undefined || texture.type !== UnsignedByteType ) return false;
549
-
550
- return texture.encoding === LinearEncoding || texture.encoding === sRGBEncoding || texture.encoding === GammaEncoding;
551
-
552
- }
553
-
554
533
  function _createPlanes() {
555
534
 
556
535
  const _lodPlanes = [];
@@ -663,9 +642,7 @@ function _getBlurShader( maxSamples ) {
663
642
  'latitudinal': { value: false },
664
643
  'dTheta': { value: 0 },
665
644
  'mipInt': { value: 0 },
666
- 'poleAxis': { value: poleAxis },
667
- 'inputEncoding': { value: ENCODINGS[ LinearEncoding ] },
668
- 'outputEncoding': { value: ENCODINGS[ LinearEncoding ] }
645
+ 'poleAxis': { value: poleAxis }
669
646
  },
670
647
 
671
648
  vertexShader: _getCommonVertexShader(),
@@ -731,8 +708,6 @@ function _getBlurShader( maxSamples ) {
731
708
 
732
709
  }
733
710
 
734
- gl_FragColor = linearToOutputTexel( gl_FragColor );
735
-
736
711
  }
737
712
  `,
738
713
 
@@ -756,8 +731,7 @@ function _getEquirectShader() {
756
731
  uniforms: {
757
732
  'envMap': { value: null },
758
733
  'texelSize': { value: texelSize },
759
- 'inputEncoding': { value: ENCODINGS[ LinearEncoding ] },
760
- 'outputEncoding': { value: ENCODINGS[ LinearEncoding ] }
734
+ 'inputEncoding': { value: ENCODINGS[ LinearEncoding ] }
761
735
  },
762
736
 
763
737
  vertexShader: _getCommonVertexShader(),
@@ -797,8 +771,6 @@ function _getEquirectShader() {
797
771
  vec3 bm = mix( bl, br, f.x );
798
772
  gl_FragColor.rgb = mix( tm, bm, f.y );
799
773
 
800
- gl_FragColor = linearToOutputTexel( gl_FragColor );
801
-
802
774
  }
803
775
  `,
804
776
 
@@ -820,8 +792,7 @@ function _getCubemapShader() {
820
792
 
821
793
  uniforms: {
822
794
  'envMap': { value: null },
823
- 'inputEncoding': { value: ENCODINGS[ LinearEncoding ] },
824
- 'outputEncoding': { value: ENCODINGS[ LinearEncoding ] }
795
+ 'inputEncoding': { value: ENCODINGS[ LinearEncoding ] }
825
796
  },
826
797
 
827
798
  vertexShader: _getCommonVertexShader(),
@@ -839,9 +810,7 @@ function _getCubemapShader() {
839
810
 
840
811
  void main() {
841
812
 
842
- gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
843
- gl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;
844
- gl_FragColor = linearToOutputTexel( gl_FragColor );
813
+ gl_FragColor = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) );
845
814
 
846
815
  }
847
816
  `,
@@ -924,7 +893,6 @@ function _getEncodings() {
924
893
  return /* glsl */`
925
894
 
926
895
  uniform int inputEncoding;
927
- uniform int outputEncoding;
928
896
 
929
897
  #include <encodings_pars_fragment>
930
898
 
@@ -934,63 +902,9 @@ function _getEncodings() {
934
902
 
935
903
  return value;
936
904
 
937
- } else if ( inputEncoding == 1 ) {
938
-
939
- return sRGBToLinear( value );
940
-
941
- } else if ( inputEncoding == 2 ) {
942
-
943
- return RGBEToLinear( value );
944
-
945
- } else if ( inputEncoding == 3 ) {
946
-
947
- return RGBMToLinear( value, 7.0 );
948
-
949
- } else if ( inputEncoding == 4 ) {
950
-
951
- return RGBMToLinear( value, 16.0 );
952
-
953
- } else if ( inputEncoding == 5 ) {
954
-
955
- return RGBDToLinear( value, 256.0 );
956
-
957
905
  } else {
958
906
 
959
- return GammaToLinear( value, 2.2 );
960
-
961
- }
962
-
963
- }
964
-
965
- vec4 linearToOutputTexel( vec4 value ) {
966
-
967
- if ( outputEncoding == 0 ) {
968
-
969
- return value;
970
-
971
- } else if ( outputEncoding == 1 ) {
972
-
973
- return LinearTosRGB( value );
974
-
975
- } else if ( outputEncoding == 2 ) {
976
-
977
- return LinearToRGBE( value );
978
-
979
- } else if ( outputEncoding == 3 ) {
980
-
981
- return LinearToRGBM( value, 7.0 );
982
-
983
- } else if ( outputEncoding == 4 ) {
984
-
985
- return LinearToRGBM( value, 16.0 );
986
-
987
- } else if ( outputEncoding == 5 ) {
988
-
989
- return LinearToRGBD( value, 256.0 );
990
-
991
- } else {
992
-
993
- return LinearToGamma( value, 2.2 );
907
+ return sRGBToLinear( value );
994
908
 
995
909
  }
996
910
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Bezier Curves formulas obtained from
3
- * http://en.wikipedia.org/wiki/Bézier_curve
3
+ * https://en.wikipedia.org/wiki/B%C3%A9zier_curve
4
4
  */
5
5
 
6
6
  function CatmullRom( t, p0, p1, p2, p3 ) {
@@ -30,14 +30,75 @@ class LatheGeometry extends BufferGeometry {
30
30
  const indices = [];
31
31
  const vertices = [];
32
32
  const uvs = [];
33
+ const initNormals = [];
34
+ const normals = [];
33
35
 
34
36
  // helper variables
35
37
 
36
38
  const inverseSegments = 1.0 / segments;
37
39
  const vertex = new Vector3();
38
40
  const uv = new Vector2();
41
+ const normal = new Vector3();
42
+ const curNormal = new Vector3();
43
+ const prevNormal = new Vector3();
44
+ let dx = 0;
45
+ let dy = 0;
39
46
 
40
- // generate vertices and uvs
47
+ // pre-compute normals for initial "meridian"
48
+
49
+ for ( let j = 0; j <= ( points.length - 1 ); j ++ ) {
50
+
51
+ switch ( j ) {
52
+
53
+ case 0: // special handling for 1st vertex on path
54
+
55
+ dx = points[ j + 1 ].x - points[ j ].x;
56
+ dy = points[ j + 1 ].y - points[ j ].y;
57
+
58
+ normal.x = dy * 1.0;
59
+ normal.y = - dx;
60
+ normal.z = dy * 0.0;
61
+
62
+ prevNormal.copy( normal );
63
+
64
+ normal.normalize();
65
+
66
+ initNormals.push( normal.x, normal.y, normal.z );
67
+
68
+ break;
69
+
70
+ case ( points.length - 1 ): // special handling for last Vertex on path
71
+
72
+ initNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );
73
+
74
+ break;
75
+
76
+ default: // default handling for all vertices in between
77
+
78
+ dx = points[ j + 1 ].x - points[ j ].x;
79
+ dy = points[ j + 1 ].y - points[ j ].y;
80
+
81
+ normal.x = dy * 1.0;
82
+ normal.y = - dx;
83
+ normal.z = dy * 0.0;
84
+
85
+ curNormal.copy( normal );
86
+
87
+ normal.x += prevNormal.x;
88
+ normal.y += prevNormal.y;
89
+ normal.z += prevNormal.z;
90
+
91
+ normal.normalize();
92
+
93
+ initNormals.push( normal.x, normal.y, normal.z );
94
+
95
+ prevNormal.copy( curNormal );
96
+
97
+ }
98
+
99
+ }
100
+
101
+ // generate vertices, uvs and normals
41
102
 
42
103
  for ( let i = 0; i <= segments; i ++ ) {
43
104
 
@@ -63,6 +124,13 @@ class LatheGeometry extends BufferGeometry {
63
124
 
64
125
  uvs.push( uv.x, uv.y );
65
126
 
127
+ // normal
128
+
129
+ const x = initNormals[ 3 * j + 0 ] * sin;
130
+ const y = initNormals[ 3 * j + 1 ];
131
+ const z = initNormals[ 3 * j + 0 ] * cos;
132
+
133
+ normals.push( x, y, z );
66
134
 
67
135
  }
68
136
 
@@ -95,52 +163,7 @@ class LatheGeometry extends BufferGeometry {
95
163
  this.setIndex( indices );
96
164
  this.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );
97
165
  this.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );
98
-
99
- // generate normals
100
-
101
- this.computeVertexNormals();
102
-
103
- // if the geometry is closed, we need to average the normals along the seam.
104
- // because the corresponding vertices are identical (but still have different UVs).
105
-
106
- if ( phiLength === Math.PI * 2 ) {
107
-
108
- const normals = this.attributes.normal.array;
109
- const n1 = new Vector3();
110
- const n2 = new Vector3();
111
- const n = new Vector3();
112
-
113
- // this is the buffer offset for the last line of vertices
114
-
115
- const base = segments * points.length * 3;
116
-
117
- for ( let i = 0, j = 0; i < points.length; i ++, j += 3 ) {
118
-
119
- // select the normal of the vertex in the first line
120
-
121
- n1.x = normals[ j + 0 ];
122
- n1.y = normals[ j + 1 ];
123
- n1.z = normals[ j + 2 ];
124
-
125
- // select the normal of the vertex in the last line
126
-
127
- n2.x = normals[ base + j + 0 ];
128
- n2.y = normals[ base + j + 1 ];
129
- n2.z = normals[ base + j + 2 ];
130
-
131
- // average normals
132
-
133
- n.addVectors( n1, n2 ).normalize();
134
-
135
- // assign the new values to both normals
136
-
137
- normals[ j + 0 ] = normals[ base + j + 0 ] = n.x;
138
- normals[ j + 1 ] = normals[ base + j + 1 ] = n.y;
139
- normals[ j + 2 ] = normals[ base + j + 2 ] = n.z;
140
-
141
- }
142
-
143
- }
166
+ this.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );
144
167
 
145
168
  }
146
169
 
@@ -13,7 +13,7 @@ const _camera = /*@__PURE__*/ new Camera();
13
13
  * - shows frustum, line of sight and up of the camera
14
14
  * - suitable for fast updates
15
15
  * - based on frustum visualization in lightgl.js shadowmap example
16
- * http://evanw.github.com/lightgl.js/tests/shadowmap.html
16
+ * https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html
17
17
  */
18
18
 
19
19
  class CameraHelper extends LineSegments {