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
@@ -0,0 +1,42 @@
1
+ import { ObjectNode, SelectInput, LabelElement } from '../../libs/flow.module.js';
2
+ import { OscNode, FloatNode } from '../../renderers/nodes/Nodes.js';
3
+
4
+ const NULL_VALUE = new FloatNode();
5
+
6
+ export class OscillatorEditor extends ObjectNode {
7
+
8
+ constructor() {
9
+
10
+ const node = new OscNode( OscNode.SINE, NULL_VALUE );
11
+
12
+ super( 'Oscillator', 1, node, 250 );
13
+
14
+ const methodInput = new SelectInput( [
15
+ { name: 'Sine', value: OscNode.SINE },
16
+ { name: 'Square', value: OscNode.SQUARE },
17
+ { name: 'Triangle', value: OscNode.TRIANGLE },
18
+ { name: 'Sawtooth', value: OscNode.SAWTOOTH }
19
+ ] );
20
+
21
+ methodInput.onChange( () => {
22
+
23
+ node.method = methodInput.getValue();
24
+
25
+ this.invalidate();
26
+
27
+ } );
28
+
29
+ const timeElement = new LabelElement( 'Time' ).setInput( 1 );
30
+
31
+ timeElement.onConnect( () => {
32
+
33
+ node.timeNode = timeElement.linkedExtra || NULL_VALUE;
34
+
35
+ } );
36
+
37
+ this.add( new LabelElement( 'Method' ).add( methodInput ) )
38
+ .add( timeElement );
39
+
40
+ }
41
+
42
+ }
@@ -0,0 +1,57 @@
1
+ import { ObjectNode, NumberInput, LabelElement, Element, ButtonInput } from '../../libs/flow.module.js';
2
+ import { TimerNode } from '../../renderers/nodes/Nodes.js';
3
+
4
+ export class TimerEditor extends ObjectNode {
5
+
6
+ constructor() {
7
+
8
+ const node = new TimerNode();
9
+
10
+ super( 'Timer', 1, node, 250 );
11
+
12
+ this.title.setIcon( 'ti ti-clock' );
13
+
14
+ const updateField = () => {
15
+
16
+ field.setValue( node.value.toFixed( 3 ) );
17
+
18
+ };
19
+
20
+ const field = new NumberInput().onChange( () => {
21
+
22
+ node.value = field.getValue();
23
+
24
+ } );
25
+
26
+ const scaleField = new NumberInput( 1 ).onChange( () => {
27
+
28
+ node.scale = scaleField.getValue();
29
+
30
+ } );
31
+
32
+ const moreElement = new Element().add( new ButtonInput( 'Reset' ).onClick( () => {
33
+
34
+ node.value = 0;
35
+
36
+ updateField();
37
+
38
+ } ) ).setSerializable( false );
39
+
40
+ this.add( new LabelElement( 'Value' ).add( field ).setSerializable( false ) )
41
+ .add( new LabelElement( 'Scale' ).add( scaleField ) )
42
+ .add( moreElement );
43
+
44
+ // extends node
45
+
46
+ node._update = node.update;
47
+ node.update = function ( ...params ) {
48
+
49
+ this._update( ...params );
50
+
51
+ updateField();
52
+
53
+ };
54
+
55
+ }
56
+
57
+ }
@@ -4,7 +4,7 @@ import {
4
4
  CubeUVReflectionMapping,
5
5
  CubeUVRefractionMapping,
6
6
  LinearEncoding,
7
- GammaEncoding
7
+ sRGBEncoding
8
8
  } from 'three';
9
9
 
10
10
  import { NodeUniform } from './NodeUniform.js';
@@ -951,7 +951,7 @@ class NodeBuilder {
951
951
 
952
952
  if ( encoding === LinearEncoding && this.context.gamma ) {
953
953
 
954
- encoding = GammaEncoding;
954
+ encoding = sRGBEncoding;
955
955
 
956
956
  }
957
957
 
@@ -34,7 +34,7 @@ NodeUtils.addShortcuts( StandardNodeMaterial.prototype, 'fragment', [
34
34
  'environment',
35
35
  'mask',
36
36
  'position',
37
- 'sheenTint'
37
+ 'sheenColor'
38
38
  ] );
39
39
 
40
40
  export { StandardNodeMaterial };
@@ -32,6 +32,7 @@ class StandardNode extends Node {
32
32
  if ( useClearcoat ) {
33
33
 
34
34
  builder.define( 'CLEARCOAT' );
35
+ builder.define( 'USE_CLEARCOAT' );
35
36
 
36
37
  }
37
38
 
@@ -185,7 +186,7 @@ class StandardNode extends Node {
185
186
 
186
187
  }
187
188
 
188
- if ( this.sheenTint ) this.sheenTint.analyze( builder );
189
+ if ( this.sheenColor ) this.sheenColor.analyze( builder );
189
190
 
190
191
  // build code
191
192
 
@@ -230,7 +231,7 @@ class StandardNode extends Node {
230
231
 
231
232
  const clearcoatEnv = useClearcoat && environment ? this.environment.flow( builder, 'c', { cache: 'clearcoat', context: contextClearcoatEnvironment, slot: 'environment' } ) : undefined;
232
233
 
233
- const sheenTint = this.sheenTint ? this.sheenTint.flow( builder, 'c' ) : undefined;
234
+ const sheenColor = this.sheenColor ? this.sheenColor.flow( builder, 'c' ) : undefined;
234
235
 
235
236
  builder.requires.transparent = alpha !== undefined;
236
237
 
@@ -368,9 +369,9 @@ class StandardNode extends Node {
368
369
 
369
370
  }
370
371
 
371
- if ( sheenTint ) {
372
+ if ( sheenColor ) {
372
373
 
373
- output.push( 'material.sheenTint = ' + sheenTint.result + ';' );
374
+ output.push( 'material.sheenColor = ' + sheenColor.result + ';' );
374
375
 
375
376
  }
376
377
 
@@ -547,7 +548,7 @@ class StandardNode extends Node {
547
548
 
548
549
  if ( source.environment ) this.environment = source.environment;
549
550
 
550
- if ( source.sheenTint ) this.sheenTint = source.sheenTint;
551
+ if ( source.sheenColor ) this.sheenColor = source.sheenColor;
551
552
 
552
553
  return this;
553
554
 
@@ -593,7 +594,7 @@ class StandardNode extends Node {
593
594
 
594
595
  if ( this.environment ) data.environment = this.environment.toJSON( meta ).uuid;
595
596
 
596
- if ( this.sheenTint ) data.sheenTint = this.sheenTint.toJSON( meta ).uuid;
597
+ if ( this.sheenColor ) data.sheenColor = this.sheenColor.toJSON( meta ).uuid;
597
598
 
598
599
  }
599
600
 
@@ -18,6 +18,14 @@ class MathNode extends TempNode {
18
18
 
19
19
  switch ( this.method ) {
20
20
 
21
+ // variable
22
+
23
+ case MathNode.ARCTAN:
24
+
25
+ return this.b ? 2 : 1;
26
+
27
+ // 3
28
+
21
29
  case MathNode.MIX:
22
30
  case MathNode.CLAMP:
23
31
  case MathNode.REFRACT:
@@ -26,6 +34,8 @@ class MathNode extends TempNode {
26
34
 
27
35
  return 3;
28
36
 
37
+ // 2
38
+
29
39
  case MathNode.MIN:
30
40
  case MathNode.MAX:
31
41
  case MathNode.MOD:
@@ -38,6 +48,8 @@ class MathNode extends TempNode {
38
48
 
39
49
  return 2;
40
50
 
51
+ // 1
52
+
41
53
  default:
42
54
 
43
55
  return 1;
@@ -90,7 +90,7 @@ class BumpMapNode extends TempNode {
90
90
  BumpMapNode.Nodes = ( function () {
91
91
 
92
92
  // Bump Mapping Unparametrized Surfaces on the GPU by Morten S. Mikkelsen
93
- // http://api.unrealengine.com/attachments/Engine/Rendering/LightingAndShadows/BumpMappingWithoutTangentSpace/mm_sfgrad_bump.pdf
93
+ // https://mmikk.github.io/papers3d/mm_sfgrad_bump.pdf
94
94
 
95
95
  // Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)
96
96
 
@@ -26,19 +26,15 @@ class TextureCubeUVNode extends TempNode {
26
26
  const bilinearCubeUV = new FunctionCallNode( TextureCubeUVNode.Nodes.bilinearCubeUV, [ texture, uv, mipInt ] );
27
27
 
28
28
  this.colorSpaceTL = this.colorSpaceTL || new ColorSpaceNode( new ExpressionNode( '', 'v4' ) );
29
- this.colorSpaceTL.fromDecoding( builder.getTextureEncodingFromMap( this.value.value ) );
30
29
  this.colorSpaceTL.input.parse( bilinearCubeUV.build( builder ) + '.tl' );
31
30
 
32
31
  this.colorSpaceTR = this.colorSpaceTR || new ColorSpaceNode( new ExpressionNode( '', 'v4' ) );
33
- this.colorSpaceTR.fromDecoding( builder.getTextureEncodingFromMap( this.value.value ) );
34
32
  this.colorSpaceTR.input.parse( bilinearCubeUV.build( builder ) + '.tr' );
35
33
 
36
34
  this.colorSpaceBL = this.colorSpaceBL || new ColorSpaceNode( new ExpressionNode( '', 'v4' ) );
37
- this.colorSpaceBL.fromDecoding( builder.getTextureEncodingFromMap( this.value.value ) );
38
35
  this.colorSpaceBL.input.parse( bilinearCubeUV.build( builder ) + '.bl' );
39
36
 
40
37
  this.colorSpaceBR = this.colorSpaceBR || new ColorSpaceNode( new ExpressionNode( '', 'v4' ) );
41
- this.colorSpaceBR.fromDecoding( builder.getTextureEncodingFromMap( this.value.value ) );
42
38
  this.colorSpaceBR.input.parse( bilinearCubeUV.build( builder ) + '.br' );
43
39
 
44
40
  // add a custom context for fix incompatibility with the core
@@ -230,6 +226,7 @@ TextureCubeUVNode.Nodes = ( function () {
230
226
 
231
227
  return TextureCubeUVData( tl, tr, br, bl, f );
232
228
  }`, [ TextureCubeUVData, getFace, getUV, cubeUV_maxMipLevel, cubeUV_minMipLevel, cubeUV_maxTileSize, cubeUV_minTileSize ] );
229
+
233
230
  bilinearCubeUV.useKeywords = false;
234
231
 
235
232
  // These defines must match with PMREMGenerator
@@ -1,18 +1,10 @@
1
1
  import {
2
- GammaEncoding,
3
2
  LinearEncoding,
4
- RGBEEncoding,
5
- RGBM7Encoding,
6
- RGBM16Encoding,
7
- RGBDEncoding,
8
3
  sRGBEncoding
9
4
  } from 'three';
10
5
 
11
6
  import { TempNode } from '../core/TempNode.js';
12
- import { ConstNode } from '../core/ConstNode.js';
13
- import { FloatNode } from '../inputs/FloatNode.js';
14
7
  import { FunctionNode } from '../core/FunctionNode.js';
15
- import { ExpressionNode } from '../core/ExpressionNode.js';
16
8
 
17
9
  class ColorSpaceNode extends TempNode {
18
10
 
@@ -65,9 +57,11 @@ class ColorSpaceNode extends TempNode {
65
57
 
66
58
  }
67
59
 
68
- fromDecoding( encoding ) {
60
+ fromDecoding() {
69
61
 
70
- const components = ColorSpaceNode.getEncodingComponents( encoding );
62
+ // TODO: Remove fromDecoding()
63
+
64
+ const components = ColorSpaceNode.getEncodingComponents( LinearEncoding );
71
65
 
72
66
  this.method = components[ 0 ] + 'ToLinear';
73
67
  this.factor = components[ 1 ];
@@ -106,8 +100,6 @@ class ColorSpaceNode extends TempNode {
106
100
 
107
101
  ColorSpaceNode.Nodes = ( function () {
108
102
 
109
- // For a discussion of what this is, please read this: http://lousodrome.net/blog/light/2013/05/26/gamma-correct-and-hdr-rendering-in-a-32-bits-buffer/
110
-
111
103
  const LinearToLinear = new FunctionNode( /* glsl */`
112
104
  vec4 LinearToLinear( in vec4 value ) {
113
105
 
@@ -116,30 +108,6 @@ ColorSpaceNode.Nodes = ( function () {
116
108
  }`
117
109
  );
118
110
 
119
- const GammaToLinear = new FunctionNode( /* glsl */`
120
- vec4 GammaToLinear( in vec4 value, in float gammaFactor ) {
121
-
122
- return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );
123
-
124
- }`
125
- );
126
-
127
- const LinearToGamma = new FunctionNode( /* glsl */`
128
- vec4 LinearToGamma( in vec4 value, in float gammaFactor ) {
129
-
130
- return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );
131
-
132
- }`
133
- );
134
-
135
- const sRGBToLinear = new FunctionNode( /* glsl */`
136
- vec4 sRGBToLinear( in vec4 value ) {
137
-
138
- return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );
139
-
140
- }`
141
- );
142
-
143
111
  const LinearTosRGB = new FunctionNode( /* glsl */`
144
112
  vec4 LinearTosRGB( in vec4 value ) {
145
113
 
@@ -148,146 +116,16 @@ ColorSpaceNode.Nodes = ( function () {
148
116
  }`
149
117
  );
150
118
 
151
- const RGBEToLinear = new FunctionNode( /* glsl */`
152
- vec4 RGBEToLinear( in vec4 value ) {
153
-
154
- return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );
155
-
156
- }`
157
- );
158
-
159
- const LinearToRGBE = new FunctionNode( /* glsl */`
160
- vec4 LinearToRGBE( in vec4 value ) {
161
-
162
- float maxComponent = max( max( value.r, value.g ), value.b );
163
- float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );
164
- return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );
165
-
166
- }`
167
- );
168
-
169
- // reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
170
-
171
- const RGBMToLinear = new FunctionNode( /* glsl */`
172
- vec3 RGBMToLinear( in vec4 value, in float maxRange ) {
173
-
174
- return vec4( value.xyz * value.w * maxRange, 1.0 );
175
-
176
- }`
177
- );
178
-
179
- const LinearToRGBM = new FunctionNode( /* glsl */`
180
- vec3 LinearToRGBM( in vec4 value, in float maxRange ) {
181
-
182
- float maxRGB = max( value.x, max( value.g, value.b ) );
183
- float M = clamp( maxRGB / maxRange, 0.0, 1.0 );
184
- M = ceil( M * 255.0 ) / 255.0;
185
- return vec4( value.rgb / ( M * maxRange ), M );
186
-
187
- }`
188
- );
189
-
190
- // reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
191
-
192
- const RGBDToLinear = new FunctionNode( /* glsl */`
193
- vec3 RGBDToLinear( in vec4 value, in float maxRange ) {
194
-
195
- return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );
196
-
197
- }`
198
- );
199
-
200
-
201
- const LinearToRGBD = new FunctionNode( /* glsl */`
202
- vec3 LinearToRGBD( in vec4 value, in float maxRange ) {
203
-
204
- float maxRGB = max( value.x, max( value.g, value.b ) );
205
- float D = max( maxRange / maxRGB, 1.0 );
206
- D = clamp( floor( D ) / 255.0, 0.0, 1.0 );
207
- return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );
208
-
209
- }`
210
- );
211
-
212
- // LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
213
-
214
- // M matrix, for encoding
215
-
216
- const cLogLuvM = new ConstNode( 'const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );' );
217
-
218
- const LinearToLogLuv = new FunctionNode( /* glsl */`
219
- vec4 LinearToLogLuv( in vec4 value ) {
220
-
221
- vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;
222
- Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));
223
- vec4 vResult;
224
- vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;
225
- float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;
226
- vResult.w = fract(Le);
227
- vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;
228
- return vResult;
229
-
230
- }`
231
- , [ cLogLuvM ] );
232
-
233
- // Inverse M matrix, for decoding
234
-
235
- const cLogLuvInverseM = new ConstNode( 'const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );' );
236
-
237
- const LogLuvToLinear = new FunctionNode( /* glsl */`
238
- vec4 LogLuvToLinear( in vec4 value ) {
239
-
240
- float Le = value.z * 255.0 + value.w;
241
- vec3 Xp_Y_XYZp;
242
- Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);
243
- Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;
244
- Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;
245
- vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;
246
- return vec4( max(vRGB, 0.0), 1.0 );
247
-
248
- }`
249
- , [ cLogLuvInverseM ] );
250
-
251
119
  return {
252
120
  LinearToLinear: LinearToLinear,
253
- GammaToLinear: GammaToLinear,
254
- LinearToGamma: LinearToGamma,
255
- sRGBToLinear: sRGBToLinear,
256
- LinearTosRGB: LinearTosRGB,
257
- RGBEToLinear: RGBEToLinear,
258
- LinearToRGBE: LinearToRGBE,
259
- RGBMToLinear: RGBMToLinear,
260
- LinearToRGBM: LinearToRGBM,
261
- RGBDToLinear: RGBDToLinear,
262
- LinearToRGBD: LinearToRGBD,
263
- cLogLuvM: cLogLuvM,
264
- LinearToLogLuv: LinearToLogLuv,
265
- cLogLuvInverseM: cLogLuvInverseM,
266
- LogLuvToLinear: LogLuvToLinear
121
+ LinearTosRGB: LinearTosRGB
267
122
  };
268
123
 
269
124
  } )();
270
125
 
271
126
  ColorSpaceNode.LINEAR_TO_LINEAR = 'LinearToLinear';
272
-
273
- ColorSpaceNode.GAMMA_TO_LINEAR = 'GammaToLinear';
274
- ColorSpaceNode.LINEAR_TO_GAMMA = 'LinearToGamma';
275
-
276
- ColorSpaceNode.SRGB_TO_LINEAR = 'sRGBToLinear';
277
127
  ColorSpaceNode.LINEAR_TO_SRGB = 'LinearTosRGB';
278
128
 
279
- ColorSpaceNode.RGBE_TO_LINEAR = 'RGBEToLinear';
280
- ColorSpaceNode.LINEAR_TO_RGBE = 'LinearToRGBE';
281
-
282
- ColorSpaceNode.RGBM_TO_LINEAR = 'RGBMToLinear';
283
- ColorSpaceNode.LINEAR_TO_RGBM = 'LinearToRGBM';
284
-
285
- ColorSpaceNode.RGBD_TO_LINEAR = 'RGBDToLinear';
286
- ColorSpaceNode.LINEAR_TO_RGBD = 'LinearToRGBD';
287
-
288
- ColorSpaceNode.LINEAR_TO_LOG_LUV = 'LinearToLogLuv';
289
- ColorSpaceNode.LOG_LUV_TO_LINEAR = 'LogLuvToLinear';
290
-
291
129
  ColorSpaceNode.getEncodingComponents = function ( encoding ) {
292
130
 
293
131
  switch ( encoding ) {
@@ -296,16 +134,6 @@ ColorSpaceNode.getEncodingComponents = function ( encoding ) {
296
134
  return [ 'Linear' ];
297
135
  case sRGBEncoding:
298
136
  return [ 'sRGB' ];
299
- case RGBEEncoding:
300
- return [ 'RGBE' ];
301
- case RGBM7Encoding:
302
- return [ 'RGBM', new FloatNode( 7.0 ).setReadonly( true ) ];
303
- case RGBM16Encoding:
304
- return [ 'RGBM', new FloatNode( 16.0 ).setReadonly( true ) ];
305
- case RGBDEncoding:
306
- return [ 'RGBD', new FloatNode( 256.0 ).setReadonly( true ) ];
307
- case GammaEncoding:
308
- return [ 'Gamma', new ExpressionNode( 'float( GAMMA_FACTOR )', 'f' ) ];
309
137
 
310
138
  }
311
139
 
@@ -2,19 +2,17 @@ import {
2
2
  AdditiveBlending,
3
3
  Box2,
4
4
  BufferGeometry,
5
- ClampToEdgeWrapping,
6
5
  Color,
7
- DataTexture,
6
+ FramebufferTexture,
8
7
  InterleavedBuffer,
9
8
  InterleavedBufferAttribute,
10
9
  Mesh,
11
10
  MeshBasicMaterial,
12
- NearestFilter,
13
- RGBFormat,
14
11
  RawShaderMaterial,
15
12
  Vector2,
16
13
  Vector3,
17
- Vector4
14
+ Vector4,
15
+ RGBAFormat
18
16
  } from 'three';
19
17
 
20
18
  class Lensflare extends Mesh {
@@ -34,17 +32,8 @@ class Lensflare extends Mesh {
34
32
 
35
33
  // textures
36
34
 
37
- const tempMap = new DataTexture( new Uint8Array( 16 * 16 * 3 ), 16, 16, RGBFormat );
38
- tempMap.minFilter = NearestFilter;
39
- tempMap.magFilter = NearestFilter;
40
- tempMap.wrapS = ClampToEdgeWrapping;
41
- tempMap.wrapT = ClampToEdgeWrapping;
42
-
43
- const occlusionMap = new DataTexture( new Uint8Array( 16 * 16 * 3 ), 16, 16, RGBFormat );
44
- occlusionMap.minFilter = NearestFilter;
45
- occlusionMap.magFilter = NearestFilter;
46
- occlusionMap.wrapS = ClampToEdgeWrapping;
47
- occlusionMap.wrapT = ClampToEdgeWrapping;
35
+ const tempMap = new FramebufferTexture( 16, 16, RGBAFormat );
36
+ const occlusionMap = new FramebufferTexture( 16, 16, RGBAFormat );
48
37
 
49
38
  // material
50
39