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
@@ -19,7 +19,7 @@ class WebGPUNodes {
19
19
 
20
20
  if ( nodeBuilder === undefined ) {
21
21
 
22
- nodeBuilder = new WebGPUNodeBuilder( object.material, this.renderer, lightNode ).build();
22
+ nodeBuilder = new WebGPUNodeBuilder( object, this.renderer, lightNode ).build();
23
23
 
24
24
  this.builders.set( object, nodeBuilder );
25
25
 
@@ -5,7 +5,6 @@ import {
5
5
  /**
6
6
  * Convolution shader
7
7
  * ported from o3d sample to WebGL / GLSL
8
- * http://o3d.googlecode.com/svn/trunk/samples/convolution.html
9
8
  */
10
9
 
11
10
  const ConvolutionShader = {
@@ -62,7 +62,7 @@ const DigitalGlitch = {
62
62
  float xs = floor(gl_FragCoord.x / 0.5);
63
63
  float ys = floor(gl_FragCoord.y / 0.5);
64
64
  //based on staffantans glitch shader for unity https://github.com/staffantan/unityglitch
65
- vec4 normal = texture2D (tDisp, p*seed*seed);
65
+ float disp = texture2D(tDisp, p*seed*seed).r;
66
66
  if(p.y<distortion_x+col_s && p.y>distortion_x-col_s*seed) {
67
67
  if(seed_x>0.){
68
68
  p.y = 1. - (p.y + distortion_y);
@@ -79,8 +79,8 @@ const DigitalGlitch = {
79
79
  p.x = 1. - (p.x + distortion_x);
80
80
  }
81
81
  }
82
- p.x+=normal.x*seed_x*(seed/5.);
83
- p.y+=normal.y*seed_y*(seed/5.);
82
+ p.x+=disp*seed_x*(seed/5.);
83
+ p.y+=disp*seed_y*(seed/5.);
84
84
  //base from RGB shift shader
85
85
  vec2 offset = amount * vec2( cos(angle), sin(angle));
86
86
  vec4 cr = texture2D(tDiffuse, p + offset);
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  /**
6
6
  * NVIDIA FXAA by Timothy Lottes
7
- * http://timothylottes.blogspot.com/2011/06/fxaa3-source-released.html
7
+ * https://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
8
8
  * - WebGL port by @supereggbert
9
9
  * http://www.glge.org/demos/fxaa/
10
10
  */
@@ -2,7 +2,7 @@
2
2
  * Film grain & scanlines shader
3
3
  *
4
4
  * - ported from HLSL to WebGL / GLSL
5
- * http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
5
+ * https://web.archive.org/web/20210226214859/http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
6
6
  *
7
7
  * Screen Space Static Postprocessor
8
8
  *
@@ -32,7 +32,7 @@ const GammaCorrectionShader = {
32
32
 
33
33
  vec4 tex = texture2D( tDiffuse, vUv );
34
34
 
35
- gl_FragColor = LinearTosRGB( tex ); // optional: LinearToGamma( tex, float( GAMMA_FACTOR ) );
35
+ gl_FragColor = LinearTosRGB( tex );
36
36
 
37
37
  }`
38
38
 
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Two pass Gaussian blur filter (horizontal and vertical blur shaders)
3
- * - described in http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
4
- * and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
3
+ * - see http://www.cake23.de/traveling-wavefronts-lit-up.html
5
4
  *
6
5
  * - 9 samples per pass
7
6
  * - standard deviation 2.7
@@ -57,7 +57,6 @@ const mmd_toon_matcap_fragment = `
57
57
  vec3 y = cross( viewDir, x );
58
58
  vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; // 0.495 to remove artifacts caused by undersized matcap disks
59
59
  vec4 matcapColor = texture2D( matcap, uv );
60
- matcapColor = matcapTexelToLinear( matcapColor );
61
60
 
62
61
  #ifdef MATCAP_BLENDING_MULTIPLY
63
62
 
@@ -134,7 +134,7 @@ const SSAOShader = {
134
134
  vec3 viewNormal = getViewNormal( vUv );
135
135
 
136
136
  vec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );
137
- vec3 random = texture2D( tNoise, vUv * noiseScale ).xyz;
137
+ vec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );
138
138
 
139
139
  // compute matrix used to reorient a kernel vector
140
140
 
@@ -175,7 +175,7 @@ var SSRShader = {
175
175
  vec3 vP=getViewPosition( uv, d, cW );
176
176
 
177
177
  #ifdef PERSPECTIVE_CAMERA
178
- // https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
178
+ // https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
179
179
  float recipVPZ=1./viewPosition.z;
180
180
  float viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
181
181
  #else
@@ -190,7 +190,7 @@ const SSRrShader = {
190
190
  vec3 vP=getViewPosition( uv, d, cW );
191
191
 
192
192
  #ifdef PERSPECTIVE_CAMERA
193
- // https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
193
+ // https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
194
194
  float recipVPZ=1./viewPosition.z;
195
195
  float viewRefractRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
196
196
  float sD=surfDist*cW;
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Two pass Gaussian blur filter (horizontal and vertical blur shaders)
3
- * - described in http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
4
- * and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
3
+ * - see http://www.cake23.de/traveling-wavefronts-lit-up.html
5
4
  *
6
5
  * - 9 samples per pass
7
6
  * - standard deviation 2.7
@@ -59,7 +59,7 @@ function hilbert2D( center = new Vector3( 0, 0, 0 ), size = 10, iterations = 1,
59
59
  * Generates 3D-Coordinates in a very fast way.
60
60
  *
61
61
  * Based on work by:
62
- * @link http://www.openprocessing.org/visuals/?visualID=15599
62
+ * @link https://openprocessing.org/user/5654
63
63
  *
64
64
  * @param center Center of Hilbert curve.
65
65
  * @param size Total width of Hilbert curve.
@@ -0,0 +1,195 @@
1
+ import {
2
+ BufferAttribute,
3
+ BufferGeometry,
4
+ Group,
5
+ LineSegments,
6
+ Matrix3,
7
+ Mesh
8
+ } from 'three';
9
+
10
+ import { mergeBufferGeometries } from './BufferGeometryUtils.js';
11
+
12
+ class LDrawUtils {
13
+
14
+ static mergeObject( object ) {
15
+
16
+ // Merges geometries in object by materials and returns new object. Use on not indexed geometries.
17
+ // The object buffers reference the old object ones.
18
+ // Special treatment is done to the conditional lines generated by LDrawLoader.
19
+
20
+ function extractGroup( geometry, group, elementSize, isConditionalLine ) {
21
+
22
+ // Extracts a group from a geometry as a new geometry (with attribute buffers referencing original buffers)
23
+
24
+ const newGeometry = new BufferGeometry();
25
+
26
+ const originalPositions = geometry.getAttribute( 'position' ).array;
27
+ const originalNormals = elementSize === 3 ? geometry.getAttribute( 'normal' ).array : null;
28
+
29
+ const numVertsGroup = Math.min( group.count, Math.floor( originalPositions.length / 3 ) - group.start );
30
+ const vertStart = group.start * 3;
31
+ const vertEnd = ( group.start + numVertsGroup ) * 3;
32
+
33
+ const positions = originalPositions.subarray( vertStart, vertEnd );
34
+ const normals = originalNormals !== null ? originalNormals.subarray( vertStart, vertEnd ) : null;
35
+
36
+ newGeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );
37
+ if ( normals !== null ) newGeometry.setAttribute( 'normal', new BufferAttribute( normals, 3 ) );
38
+
39
+ if ( isConditionalLine ) {
40
+
41
+ const controlArray0 = geometry.getAttribute( 'control0' ).array.subarray( vertStart, vertEnd );
42
+ const controlArray1 = geometry.getAttribute( 'control1' ).array.subarray( vertStart, vertEnd );
43
+ const directionArray = geometry.getAttribute( 'direction' ).array.subarray( vertStart, vertEnd );
44
+
45
+ newGeometry.setAttribute( 'control0', new BufferAttribute( controlArray0, 3, false ) );
46
+ newGeometry.setAttribute( 'control1', new BufferAttribute( controlArray1, 3, false ) );
47
+ newGeometry.setAttribute( 'direction', new BufferAttribute( directionArray, 3, false ) );
48
+
49
+ }
50
+
51
+ return newGeometry;
52
+
53
+ }
54
+
55
+ function addGeometry( mat, geometry, geometries ) {
56
+
57
+ const geoms = geometries[ mat.uuid ];
58
+ if ( ! geoms ) {
59
+
60
+ geometries[ mat.uuid ] = {
61
+ mat: mat,
62
+ arr: [ geometry ]
63
+ };
64
+
65
+ }
66
+ else geoms.arr.push( geometry );
67
+
68
+ }
69
+
70
+ function permuteAttribute( attribute, elemSize ) {
71
+
72
+ // Permutes first two vertices of each attribute element
73
+
74
+ if ( ! attribute ) return;
75
+
76
+ const verts = attribute.array;
77
+ const numVerts = Math.floor( verts.length / 3 );
78
+ let offset = 0;
79
+ for ( let i = 0; i < numVerts; i ++ ) {
80
+
81
+ const x = verts[ offset ];
82
+ const y = verts[ offset + 1 ];
83
+ const z = verts[ offset + 2 ];
84
+
85
+ verts[ offset ] = verts[ offset + 3 ];
86
+ verts[ offset + 1 ] = verts[ offset + 4 ];
87
+ verts[ offset + 2 ] = verts[ offset + 5 ];
88
+
89
+ verts[ offset + 3 ] = x;
90
+ verts[ offset + 4 ] = y;
91
+ verts[ offset + 5 ] = z;
92
+
93
+ offset += elemSize * 3;
94
+
95
+ }
96
+
97
+ }
98
+
99
+ // Traverse the object hierarchy collecting geometries and transforming them to world space
100
+
101
+ const meshGeometries = {};
102
+ const linesGeometries = {};
103
+ const condLinesGeometries = {};
104
+
105
+ object.updateMatrixWorld( true );
106
+ const normalMatrix = new Matrix3();
107
+
108
+ object.traverse( c => {
109
+
110
+ if ( c.isMesh | c.isLineSegments ) {
111
+
112
+ const elemSize = c.isMesh ? 3 : 2;
113
+
114
+ const matrixIsInverted = c.matrixWorld.determinant() < 0;
115
+ if ( matrixIsInverted ) {
116
+
117
+ permuteAttribute( c.geometry.attributes.position, elemSize );
118
+ permuteAttribute( c.geometry.attributes.normal, elemSize );
119
+
120
+ }
121
+
122
+ c.geometry.applyMatrix4( c.matrixWorld );
123
+
124
+ if ( c.isConditionalLine ) {
125
+
126
+ c.geometry.attributes.control0.applyMatrix4( c.matrixWorld );
127
+ c.geometry.attributes.control1.applyMatrix4( c.matrixWorld );
128
+ normalMatrix.getNormalMatrix( c.matrixWorld );
129
+ c.geometry.attributes.direction.applyNormalMatrix( normalMatrix );
130
+
131
+ }
132
+
133
+ const geometries = c.isMesh ? meshGeometries : ( c.isConditionalLine ? condLinesGeometries : linesGeometries );
134
+
135
+ if ( Array.isArray( c.material ) ) {
136
+
137
+ for ( const groupIndex in c.geometry.groups ) {
138
+
139
+ const group = c.geometry.groups[ groupIndex ];
140
+ const mat = c.material[ group.materialIndex ];
141
+ const newGeometry = extractGroup( c.geometry, group, elemSize, c.isConditionalLine );
142
+ addGeometry( mat, newGeometry, geometries );
143
+
144
+ }
145
+
146
+ }
147
+ else addGeometry( c.material, c.geometry, geometries );
148
+
149
+ }
150
+
151
+ } );
152
+
153
+ // Create object with merged geometries
154
+
155
+ const mergedObject = new Group();
156
+
157
+ const meshMaterialsIds = Object.keys( meshGeometries );
158
+ for ( const i in meshMaterialsIds ) {
159
+
160
+ const meshGeometry = meshGeometries[ meshMaterialsIds[ i ] ];
161
+ const mergedGeometry = mergeBufferGeometries( meshGeometry.arr );
162
+ mergedObject.add( new Mesh( mergedGeometry, meshGeometry.mat ) );
163
+
164
+ }
165
+
166
+ const linesMaterialsIds = Object.keys( linesGeometries );
167
+ for ( const i in linesMaterialsIds ) {
168
+
169
+ const lineGeometry = linesGeometries[ linesMaterialsIds[ i ] ];
170
+ const mergedGeometry = mergeBufferGeometries( lineGeometry.arr );
171
+ mergedObject.add( new LineSegments( mergedGeometry, lineGeometry.mat ) );
172
+
173
+ }
174
+
175
+ const condLinesMaterialsIds = Object.keys( condLinesGeometries );
176
+ for ( const i in condLinesMaterialsIds ) {
177
+
178
+ const condLineGeometry = condLinesGeometries[ condLinesMaterialsIds[ i ] ];
179
+ const mergedGeometry = mergeBufferGeometries( condLineGeometry.arr );
180
+ const condLines = new LineSegments( mergedGeometry, condLineGeometry.mat );
181
+ condLines.isConditionalLine = true;
182
+ mergedObject.add( condLines );
183
+
184
+ }
185
+
186
+ mergedObject.userData.constructionStep = 0;
187
+ mergedObject.userData.numConstructionSteps = 1;
188
+
189
+ return mergedObject;
190
+
191
+ }
192
+
193
+ }
194
+
195
+ export { LDrawUtils };
@@ -4,7 +4,7 @@
4
4
 
5
5
  export class WorkerPool {
6
6
 
7
- constructor ( pool = 4 ) {
7
+ constructor( pool = 4 ) {
8
8
 
9
9
  this.pool = pool;
10
10
  this.queue = [];
@@ -14,9 +14,9 @@ export class WorkerPool {
14
14
 
15
15
  }
16
16
 
17
- _initWorker ( workerId ) {
17
+ _initWorker( workerId ) {
18
18
 
19
- if ( !this.workers[ workerId ] ) {
19
+ if ( ! this.workers[ workerId ] ) {
20
20
 
21
21
  const worker = this.workerCreator();
22
22
  worker.addEventListener( 'message', this._onMessage.bind( this, workerId ) );
@@ -26,12 +26,12 @@ export class WorkerPool {
26
26
 
27
27
  }
28
28
 
29
- _getIdleWorker () {
29
+ _getIdleWorker() {
30
30
 
31
- for ( let i = 0 ; i < this.pool ; i ++ )
31
+ for ( let i = 0; i < this.pool; i ++ )
32
32
  if ( ! ( this.workerStatus & ( 1 << i ) ) ) return i;
33
33
 
34
- return -1;
34
+ return - 1;
35
35
 
36
36
  }
37
37
 
@@ -54,25 +54,25 @@ export class WorkerPool {
54
54
 
55
55
  }
56
56
 
57
- setWorkerCreator ( workerCreator ) {
57
+ setWorkerCreator( workerCreator ) {
58
58
 
59
59
  this.workerCreator = workerCreator;
60
60
 
61
61
  }
62
62
 
63
- setWorkerLimit ( pool ) {
63
+ setWorkerLimit( pool ) {
64
64
 
65
65
  this.pool = pool;
66
66
 
67
67
  }
68
68
 
69
- postMessage ( msg, transfer ) {
69
+ postMessage( msg, transfer ) {
70
70
 
71
71
  return new Promise( ( resolve ) => {
72
72
 
73
73
  const workerId = this._getIdleWorker();
74
74
 
75
- if ( workerId !== -1 ) {
75
+ if ( workerId !== - 1 ) {
76
76
 
77
77
  this._initWorker( workerId );
78
78
  this.workerStatus |= 1 << workerId;
@@ -89,7 +89,7 @@ export class WorkerPool {
89
89
 
90
90
  }
91
91
 
92
- dispose () {
92
+ dispose() {
93
93
 
94
94
  this.workers.forEach( ( worker ) => worker.terminate() );
95
95
  this.workersResolve.length = 0;
@@ -329,31 +329,31 @@ class OculusHandPointerModel extends THREE.Object3D {
329
329
 
330
330
  }
331
331
 
332
- intersectObject( object ) {
332
+ intersectObject( object, recursive = true ) {
333
333
 
334
334
  if ( this.raycaster ) {
335
335
 
336
- return this.raycaster.intersectObject( object );
336
+ return this.raycaster.intersectObject( object, recursive );
337
337
 
338
338
  }
339
339
 
340
340
  }
341
341
 
342
- intersectObjects( objects ) {
342
+ intersectObjects( objects, recursive = true ) {
343
343
 
344
344
  if ( this.raycaster ) {
345
345
 
346
- return this.raycaster.intersectObjects( objects, false );
346
+ return this.raycaster.intersectObjects( objects, recursive );
347
347
 
348
348
  }
349
349
 
350
350
  }
351
351
 
352
- checkIntersections( objects ) {
352
+ checkIntersections( objects, recursive = false ) {
353
353
 
354
354
  if ( this.raycaster && ! this.attached ) {
355
355
 
356
- const intersections = this.raycaster.intersectObjects( objects, false );
356
+ const intersections = this.raycaster.intersectObjects( objects, recursive );
357
357
  const direction = new THREE.Vector3( 0, 0, - 1 );
358
358
  if ( intersections.length > 0 ) {
359
359
 
@@ -132,6 +132,12 @@ class VRButton {
132
132
 
133
133
  supported ? showEnterVR() : showWebXRNotFound();
134
134
 
135
+ if ( supported && VRButton.xrSessionIsGranted ) {
136
+
137
+ button.click();
138
+
139
+ }
140
+
135
141
  } );
136
142
 
137
143
  return button;
@@ -164,6 +170,24 @@ class VRButton {
164
170
 
165
171
  }
166
172
 
173
+ static xrSessionIsGranted = false;
174
+
175
+ static registerSessionGrantedListener() {
176
+
177
+ if ( 'xr' in navigator ) {
178
+
179
+ navigator.xr.addEventListener( 'sessiongranted', () => {
180
+
181
+ VRButton.xrSessionIsGranted = true;
182
+
183
+ } );
184
+
185
+ }
186
+
187
+ }
188
+
167
189
  }
168
190
 
191
+ VRButton.registerSessionGrantedListener();
192
+
169
193
  export { VRButton };
@@ -69,6 +69,8 @@ class SessionLightProbe {
69
69
 
70
70
  textureProperties.__webglTexture = cubeMap;
71
71
 
72
+ this.xrLight.environment.needsPMREMUpdate = true;
73
+
72
74
  }
73
75
 
74
76
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-three",
3
- "version": "0.133.4",
3
+ "version": "0.136.1",
4
4
  "description": "JavaScript 3D library",
5
5
  "main": "build/three.js",
6
6
  "module": "build/three.module.js",
@@ -39,16 +39,25 @@
39
39
  "html"
40
40
  ],
41
41
  "globals": {
42
- "potpack": true,
43
- "fflate": true,
44
- "ZSTDDecoder": true,
45
- "bodymovin": true,
46
- "OIMO": true,
47
- "Stats": true,
48
- "XRWebGLBinding": true,
49
- "XRWebGLLayer": true
42
+ "__THREE_DEVTOOLS__": "readonly",
43
+ "WebGL2ComputeRenderingContext": "readonly",
44
+
45
+ "potpack": "readonly",
46
+ "fflate": "readonly",
47
+ "bodymovin": "readonly",
48
+ "OIMO": "readonly",
49
+ "Stats": "readonly",
50
+ "XRWebGLBinding": "readonly",
51
+ "XRWebGLLayer": "readonly",
52
+
53
+ "GPUShaderStage": "readonly",
54
+ "GPUBufferUsage": "readonly",
55
+ "GPUTextureUsage": "readonly"
50
56
  },
51
57
  "rules": {
58
+ "no-throw-literal": [
59
+ "error"
60
+ ],
52
61
  "quotes": [
53
62
  "error",
54
63
  "single"
@@ -104,23 +113,23 @@
104
113
  },
105
114
  "homepage": "https://threejs.org/",
106
115
  "devDependencies": {
107
- "@babel/core": "^7.15.0",
108
- "@babel/eslint-parser": "^7.15.0",
116
+ "@babel/core": "^7.15.5",
117
+ "@babel/eslint-parser": "^7.15.7",
109
118
  "@babel/plugin-proposal-class-properties": "^7.14.5",
110
- "@babel/preset-env": "^7.15.0",
119
+ "@babel/preset-env": "^7.15.6",
111
120
  "@rollup/plugin-babel": "^5.3.0",
112
- "@rollup/plugin-node-resolve": "^13.0.4",
121
+ "@rollup/plugin-node-resolve": "^13.0.5",
113
122
  "chalk": "^4.1.2",
114
- "concurrently": "^6.2.1",
123
+ "concurrently": "^6.2.2",
115
124
  "eslint": "^7.32.0",
116
125
  "eslint-config-mdcs": "^5.0.0",
117
- "eslint-plugin-html": "^6.1.2",
118
- "glob": "^7.1.7",
119
- "rollup": "^2.56.3",
126
+ "eslint-plugin-html": "^6.2.0",
127
+ "glob": "^7.2.0",
128
+ "rollup": "^2.57.0",
120
129
  "rollup-plugin-filesize": "^9.1.1",
121
130
  "rollup-plugin-terser": "^7.0.2",
122
131
  "rollup-plugin-visualizer": "^5.5.2",
123
- "servez": "^1.11.1"
132
+ "servez": "^1.12.0"
124
133
  },
125
134
  "jspm": {
126
135
  "files": [
@@ -1585,7 +1585,19 @@ Object.defineProperties( WebGLRenderer.prototype, {
1585
1585
 
1586
1586
  }
1587
1587
  },
1588
+ gammaFactor: {
1589
+ get: function () {
1590
+
1591
+ console.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );
1592
+ return 2;
1593
+
1594
+ },
1595
+ set: function () {
1596
+
1597
+ console.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );
1588
1598
 
1599
+ }
1600
+ }
1589
1601
  } );
1590
1602
 
1591
1603
  Object.defineProperties( WebGLShadowMap.prototype, {
@@ -1945,3 +1957,9 @@ export function Font() {
1945
1957
  console.error( 'THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js' );
1946
1958
 
1947
1959
  }
1960
+
1961
+ export function ImmediateRenderObject() {
1962
+
1963
+ console.error( 'THREE.ImmediateRenderObject has been removed.' );
1964
+
1965
+ }
package/src/Three.js CHANGED
@@ -26,6 +26,7 @@ export { Line } from './objects/Line.js';
26
26
  export { Points } from './objects/Points.js';
27
27
  export { Group } from './objects/Group.js';
28
28
  export { VideoTexture } from './textures/VideoTexture.js';
29
+ export { FramebufferTexture } from './textures/FramebufferTexture.js';
29
30
  export { DataTexture } from './textures/DataTexture.js';
30
31
  export { DataTexture2DArray } from './textures/DataTexture2DArray.js';
31
32
  export { DataTexture3D } from './textures/DataTexture3D.js';
@@ -125,7 +126,6 @@ export { Vector2 } from './math/Vector2.js';
125
126
  export { Quaternion } from './math/Quaternion.js';
126
127
  export { Color } from './math/Color.js';
127
128
  export { SphericalHarmonics3 } from './math/SphericalHarmonics3.js';
128
- export { ImmediateRenderObject } from './extras/objects/ImmediateRenderObject.js';
129
129
  export { SpotLightHelper } from './helpers/SpotLightHelper.js';
130
130
  export { SkeletonHelper } from './helpers/SkeletonHelper.js';
131
131
  export { PointLightHelper } from './helpers/PointLightHelper.js';
@@ -155,11 +155,9 @@ export * from './Three.Legacy.js';
155
155
 
156
156
  if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
157
157
 
158
- /* eslint-disable no-undef */
159
158
  __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {
160
159
  revision: REVISION,
161
160
  } } ) );
162
- /* eslint-enable no-undef */
163
161
 
164
162
  }
165
163
 
@@ -48,6 +48,7 @@ class AnimationMixer extends EventDispatcher {
48
48
 
49
49
  if ( binding !== undefined ) {
50
50
 
51
+ ++ binding.referenceCount;
51
52
  bindings[ i ] = binding;
52
53
 
53
54
  } else {
@@ -100,6 +100,8 @@ class CubeCamera extends Object3D {
100
100
 
101
101
  renderer.xr.enabled = currentXrEnabled;
102
102
 
103
+ renderTarget.texture.needsPMREMUpdate = true;
104
+
103
105
  }
104
106
 
105
107
  }