@plastic-software/three 0.175.13 → 0.178.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 (529) hide show
  1. package/README.md +3 -3
  2. package/build/three.cjs +7747 -6792
  3. package/build/three.core.js +7371 -6576
  4. package/build/three.core.min.js +1 -1
  5. package/build/three.module.js +190 -30
  6. package/build/three.module.min.js +1 -1
  7. package/build/three.tsl.js +19 -11
  8. package/build/three.tsl.min.js +1 -1
  9. package/build/three.webgpu.js +4989 -2235
  10. package/build/three.webgpu.min.js +1 -1
  11. package/build/three.webgpu.nodes.js +5082 -2469
  12. package/build/three.webgpu.nodes.min.js +1 -1
  13. package/examples/jsm/Addons.js +0 -1
  14. package/examples/jsm/animation/AnimationClipCreator.js +1 -0
  15. package/examples/jsm/animation/CCDIKSolver.js +6 -3
  16. package/examples/jsm/capabilities/WebGL.js +1 -27
  17. package/examples/jsm/capabilities/WebGPU.js +1 -0
  18. package/examples/jsm/controls/ArcballControls.js +15 -4
  19. package/examples/jsm/controls/DragControls.js +1 -0
  20. package/examples/jsm/controls/FirstPersonControls.js +1 -0
  21. package/examples/jsm/controls/FlyControls.js +1 -0
  22. package/examples/jsm/controls/MapControls.js +1 -0
  23. package/examples/jsm/controls/OrbitControls.js +1 -0
  24. package/examples/jsm/controls/PointerLockControls.js +5 -3
  25. package/examples/jsm/controls/TrackballControls.js +1 -0
  26. package/examples/jsm/controls/TransformControls.js +62 -14
  27. package/examples/jsm/csm/CSM.js +2 -0
  28. package/examples/jsm/csm/CSMFrustum.js +2 -0
  29. package/examples/jsm/csm/CSMHelper.js +1 -0
  30. package/examples/jsm/csm/CSMShader.js +4 -1
  31. package/examples/jsm/csm/CSMShadowNode.js +18 -4
  32. package/examples/jsm/curves/CurveExtras.js +14 -0
  33. package/examples/jsm/curves/NURBSCurve.js +1 -0
  34. package/examples/jsm/curves/NURBSSurface.js +2 -0
  35. package/examples/jsm/curves/NURBSUtils.js +4 -1
  36. package/examples/jsm/curves/NURBSVolume.js +2 -0
  37. package/examples/jsm/effects/AnaglyphEffect.js +2 -0
  38. package/examples/jsm/effects/AsciiEffect.js +2 -0
  39. package/examples/jsm/effects/OutlineEffect.js +2 -0
  40. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -0
  41. package/examples/jsm/effects/StereoEffect.js +2 -0
  42. package/examples/jsm/environments/DebugEnvironment.js +1 -0
  43. package/examples/jsm/environments/RoomEnvironment.js +49 -35
  44. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  45. package/examples/jsm/exporters/EXRExporter.js +2 -0
  46. package/examples/jsm/exporters/GLTFExporter.js +7 -4
  47. package/examples/jsm/exporters/KTX2Exporter.js +2 -0
  48. package/examples/jsm/exporters/OBJExporter.js +3 -1
  49. package/examples/jsm/exporters/PLYExporter.js +4 -2
  50. package/examples/jsm/exporters/STLExporter.js +2 -0
  51. package/examples/jsm/exporters/USDZExporter.js +12 -10
  52. package/examples/jsm/geometries/BoxLineGeometry.js +1 -0
  53. package/examples/jsm/geometries/ConvexGeometry.js +1 -0
  54. package/examples/jsm/geometries/DecalGeometry.js +1 -0
  55. package/examples/jsm/geometries/ParametricFunctions.js +4 -1
  56. package/examples/jsm/geometries/ParametricGeometry.js +1 -0
  57. package/examples/jsm/geometries/RoundedBoxGeometry.js +2 -1
  58. package/examples/jsm/geometries/TeapotGeometry.js +1 -0
  59. package/examples/jsm/geometries/TextGeometry.js +1 -0
  60. package/examples/jsm/helpers/LightProbeHelper.js +1 -0
  61. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -0
  62. package/examples/jsm/helpers/OctreeHelper.js +1 -0
  63. package/examples/jsm/helpers/PositionalAudioHelper.js +1 -0
  64. package/examples/jsm/helpers/RapierHelper.js +59 -0
  65. package/examples/jsm/helpers/RectAreaLightHelper.js +1 -0
  66. package/examples/jsm/helpers/TextureHelper.js +1 -0
  67. package/examples/jsm/helpers/TextureHelperGPU.js +5 -4
  68. package/examples/jsm/helpers/VertexNormalsHelper.js +1 -0
  69. package/examples/jsm/helpers/VertexTangentsHelper.js +1 -0
  70. package/examples/jsm/helpers/ViewHelper.js +1 -0
  71. package/examples/jsm/interactive/HTMLMesh.js +7 -0
  72. package/examples/jsm/interactive/InteractiveGroup.js +1 -0
  73. package/examples/jsm/interactive/SelectionBox.js +2 -0
  74. package/examples/jsm/interactive/SelectionHelper.js +2 -0
  75. package/examples/jsm/lighting/TiledLighting.js +1 -0
  76. package/examples/jsm/lights/LightProbeGenerator.js +1 -0
  77. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -0
  78. package/examples/jsm/lights/RectAreaLightUniformsLib.js +1 -0
  79. package/examples/jsm/lines/Line2.js +1 -0
  80. package/examples/jsm/lines/LineGeometry.js +1 -0
  81. package/examples/jsm/lines/LineMaterial.js +4 -4
  82. package/examples/jsm/lines/LineSegments2.js +1 -0
  83. package/examples/jsm/lines/LineSegmentsGeometry.js +1 -0
  84. package/examples/jsm/lines/Wireframe.js +1 -0
  85. package/examples/jsm/lines/WireframeGeometry2.js +1 -0
  86. package/examples/jsm/lines/webgpu/Line2.js +1 -0
  87. package/examples/jsm/lines/webgpu/LineSegments2.js +3 -1
  88. package/examples/jsm/lines/webgpu/Wireframe.js +1 -0
  89. package/examples/jsm/loaders/3DMLoader.js +1 -0
  90. package/examples/jsm/loaders/3MFLoader.js +1 -0
  91. package/examples/jsm/loaders/AMFLoader.js +1 -0
  92. package/examples/jsm/loaders/BVHLoader.js +1 -0
  93. package/examples/jsm/loaders/ColladaLoader.js +6 -5
  94. package/examples/jsm/loaders/DDSLoader.js +1 -0
  95. package/examples/jsm/loaders/DRACOLoader.js +2 -1
  96. package/examples/jsm/loaders/EXRLoader.js +1 -0
  97. package/examples/jsm/loaders/FBXLoader.js +25 -23
  98. package/examples/jsm/loaders/FontLoader.js +1 -0
  99. package/examples/jsm/loaders/GCodeLoader.js +1 -0
  100. package/examples/jsm/loaders/GLTFLoader.js +10 -82
  101. package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -0
  102. package/examples/jsm/loaders/IESLoader.js +1 -0
  103. package/examples/jsm/loaders/KMZLoader.js +1 -0
  104. package/examples/jsm/loaders/KTX2Loader.js +67 -26
  105. package/examples/jsm/loaders/KTXLoader.js +1 -0
  106. package/examples/jsm/loaders/LDrawLoader.js +55 -3
  107. package/examples/jsm/loaders/LUT3dlLoader.js +1 -0
  108. package/examples/jsm/loaders/LUTCubeLoader.js +1 -0
  109. package/examples/jsm/loaders/LUTImageLoader.js +1 -0
  110. package/examples/jsm/loaders/LWOLoader.js +1 -13
  111. package/examples/jsm/loaders/LottieLoader.js +15 -0
  112. package/examples/jsm/loaders/MD2Loader.js +1 -0
  113. package/examples/jsm/loaders/MDDLoader.js +1 -0
  114. package/examples/jsm/loaders/MTLLoader.js +4 -3
  115. package/examples/jsm/loaders/MaterialXLoader.js +1 -0
  116. package/examples/jsm/loaders/NRRDLoader.js +1 -0
  117. package/examples/jsm/loaders/OBJLoader.js +1 -0
  118. package/examples/jsm/loaders/PCDLoader.js +122 -19
  119. package/examples/jsm/loaders/PDBLoader.js +1 -0
  120. package/examples/jsm/loaders/PLYLoader.js +1 -0
  121. package/examples/jsm/loaders/PVRLoader.js +1 -0
  122. package/examples/jsm/loaders/RGBELoader.js +1 -0
  123. package/examples/jsm/loaders/RGBMLoader.js +1 -0
  124. package/examples/jsm/loaders/STLLoader.js +1 -0
  125. package/examples/jsm/loaders/SVGLoader.js +1 -0
  126. package/examples/jsm/loaders/TDSLoader.js +1 -0
  127. package/examples/jsm/loaders/TGALoader.js +1 -0
  128. package/examples/jsm/loaders/TIFFLoader.js +1 -0
  129. package/examples/jsm/loaders/TTFLoader.js +1 -0
  130. package/examples/jsm/loaders/USDZLoader.js +1 -0
  131. package/examples/jsm/loaders/UltraHDRLoader.js +1 -0
  132. package/examples/jsm/loaders/VOXLoader.js +1 -0
  133. package/examples/jsm/loaders/VRMLLoader.js +3 -2
  134. package/examples/jsm/loaders/VTKLoader.js +1 -0
  135. package/examples/jsm/loaders/XYZLoader.js +1 -0
  136. package/examples/jsm/loaders/lwo/IFFParser.js +74 -74
  137. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +1 -0
  138. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -0
  139. package/examples/jsm/materials/MeshPostProcessingMaterial.js +1 -0
  140. package/examples/jsm/math/Capsule.js +2 -0
  141. package/examples/jsm/math/ColorConverter.js +1 -0
  142. package/examples/jsm/math/ConvexHull.js +2 -0
  143. package/examples/jsm/math/ImprovedNoise.js +19 -14
  144. package/examples/jsm/math/Lut.js +2 -0
  145. package/examples/jsm/math/MeshSurfaceSampler.js +2 -0
  146. package/examples/jsm/math/OBB.js +2 -0
  147. package/examples/jsm/math/Octree.js +20 -1
  148. package/examples/jsm/math/SimplexNoise.js +2 -0
  149. package/examples/jsm/misc/ConvexObjectBreaker.js +3 -1
  150. package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
  151. package/examples/jsm/misc/Gyroscope.js +1 -0
  152. package/examples/jsm/misc/MD2Character.js +2 -0
  153. package/examples/jsm/misc/MD2CharacterComplex.js +5 -3
  154. package/examples/jsm/misc/MorphAnimMesh.js +1 -0
  155. package/examples/jsm/misc/MorphBlendMesh.js +1 -0
  156. package/examples/jsm/misc/ProgressiveLightMap.js +2 -0
  157. package/examples/jsm/misc/ProgressiveLightMapGPU.js +2 -0
  158. package/examples/jsm/misc/RollerCoaster.js +5 -0
  159. package/examples/jsm/misc/Timer.js +2 -0
  160. package/examples/jsm/misc/TubePainter.js +1 -0
  161. package/examples/jsm/misc/Volume.js +2 -0
  162. package/examples/jsm/misc/VolumeSlice.js +1 -0
  163. package/examples/jsm/modifiers/CurveModifier.js +3 -0
  164. package/examples/jsm/modifiers/CurveModifierGPU.js +2 -0
  165. package/examples/jsm/modifiers/EdgeSplitModifier.js +2 -0
  166. package/examples/jsm/modifiers/SimplifyModifier.js +2 -0
  167. package/examples/jsm/modifiers/TessellateModifier.js +2 -0
  168. package/examples/jsm/objects/GroundedSkybox.js +1 -0
  169. package/examples/jsm/objects/Lensflare.js +3 -0
  170. package/examples/jsm/objects/LensflareMesh.js +1 -0
  171. package/examples/jsm/objects/MarchingCubes.js +2 -0
  172. package/examples/jsm/objects/Reflector.js +1 -0
  173. package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
  174. package/examples/jsm/objects/Refractor.js +1 -0
  175. package/examples/jsm/objects/ShadowMesh.js +1 -0
  176. package/examples/jsm/objects/Sky.js +2 -1
  177. package/examples/jsm/objects/SkyMesh.js +20 -17
  178. package/examples/jsm/objects/Water.js +1 -0
  179. package/examples/jsm/objects/Water2.js +1 -0
  180. package/examples/jsm/objects/Water2Mesh.js +3 -1
  181. package/examples/jsm/objects/WaterMesh.js +2 -1
  182. package/examples/jsm/physics/AmmoPhysics.js +1 -0
  183. package/examples/jsm/physics/JoltPhysics.js +1 -0
  184. package/examples/jsm/physics/RapierPhysics.js +139 -12
  185. package/examples/jsm/postprocessing/AfterimagePass.js +20 -2
  186. package/examples/jsm/postprocessing/BloomPass.js +2 -1
  187. package/examples/jsm/postprocessing/BokehPass.js +2 -1
  188. package/examples/jsm/postprocessing/ClearPass.js +1 -0
  189. package/examples/jsm/postprocessing/CubeTexturePass.js +1 -0
  190. package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
  191. package/examples/jsm/postprocessing/EffectComposer.js +4 -2
  192. package/examples/jsm/postprocessing/FXAAPass.js +40 -0
  193. package/examples/jsm/postprocessing/FilmPass.js +1 -0
  194. package/examples/jsm/postprocessing/GTAOPass.js +4 -3
  195. package/examples/jsm/postprocessing/GlitchPass.js +2 -1
  196. package/examples/jsm/postprocessing/HalftonePass.js +2 -1
  197. package/examples/jsm/postprocessing/LUTPass.js +1 -0
  198. package/examples/jsm/postprocessing/MaskPass.js +1 -0
  199. package/examples/jsm/postprocessing/OutlinePass.js +5 -2
  200. package/examples/jsm/postprocessing/OutputPass.js +1 -0
  201. package/examples/jsm/postprocessing/Pass.js +3 -1
  202. package/examples/jsm/postprocessing/RenderPass.js +1 -0
  203. package/examples/jsm/postprocessing/RenderPixelatedPass.js +2 -1
  204. package/examples/jsm/postprocessing/RenderTransitionPass.js +4 -3
  205. package/examples/jsm/postprocessing/SAOPass.js +3 -2
  206. package/examples/jsm/postprocessing/SMAAPass.js +3 -2
  207. package/examples/jsm/postprocessing/SSAARenderPass.js +2 -1
  208. package/examples/jsm/postprocessing/SSAOPass.js +2 -1
  209. package/examples/jsm/postprocessing/SSRPass.js +4 -3
  210. package/examples/jsm/postprocessing/SavePass.js +2 -1
  211. package/examples/jsm/postprocessing/ShaderPass.js +1 -0
  212. package/examples/jsm/postprocessing/TAARenderPass.js +1 -0
  213. package/examples/jsm/postprocessing/TexturePass.js +1 -0
  214. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -1
  215. package/examples/jsm/renderers/CSS2DRenderer.js +3 -0
  216. package/examples/jsm/renderers/CSS3DRenderer.js +4 -0
  217. package/examples/jsm/renderers/Projector.js +2 -0
  218. package/examples/jsm/renderers/SVGRenderer.js +3 -0
  219. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +4 -1
  220. package/examples/jsm/shaders/AfterimageShader.js +4 -1
  221. package/examples/jsm/shaders/BasicShader.js +4 -1
  222. package/examples/jsm/shaders/BleachBypassShader.js +4 -1
  223. package/examples/jsm/shaders/BlendShader.js +4 -1
  224. package/examples/jsm/shaders/BokehShader.js +4 -1
  225. package/examples/jsm/shaders/BokehShader2.js +4 -1
  226. package/examples/jsm/shaders/BrightnessContrastShader.js +4 -1
  227. package/examples/jsm/shaders/ColorCorrectionShader.js +4 -1
  228. package/examples/jsm/shaders/ColorifyShader.js +4 -1
  229. package/examples/jsm/shaders/ConvolutionShader.js +4 -1
  230. package/examples/jsm/shaders/CopyShader.js +4 -1
  231. package/examples/jsm/shaders/DOFMipMapShader.js +4 -1
  232. package/examples/jsm/shaders/DepthLimitedBlurShader.js +4 -1
  233. package/examples/jsm/shaders/DigitalGlitch.js +4 -1
  234. package/examples/jsm/shaders/DotScreenShader.js +4 -1
  235. package/examples/jsm/shaders/ExposureShader.js +4 -1
  236. package/examples/jsm/shaders/FXAAShader.js +4 -1
  237. package/examples/jsm/shaders/FilmShader.js +4 -1
  238. package/examples/jsm/shaders/FocusShader.js +4 -1
  239. package/examples/jsm/shaders/FreiChenShader.js +4 -1
  240. package/examples/jsm/shaders/GTAOShader.js +4 -1
  241. package/examples/jsm/shaders/GammaCorrectionShader.js +4 -1
  242. package/examples/jsm/shaders/GodRaysShader.js +4 -1
  243. package/examples/jsm/shaders/HalftoneShader.js +4 -1
  244. package/examples/jsm/shaders/HorizontalBlurShader.js +4 -1
  245. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +4 -1
  246. package/examples/jsm/shaders/HueSaturationShader.js +4 -1
  247. package/examples/jsm/shaders/KaleidoShader.js +4 -1
  248. package/examples/jsm/shaders/LuminosityHighPassShader.js +4 -1
  249. package/examples/jsm/shaders/LuminosityShader.js +4 -1
  250. package/examples/jsm/shaders/MirrorShader.js +4 -1
  251. package/examples/jsm/shaders/NormalMapShader.js +4 -1
  252. package/examples/jsm/shaders/OutputShader.js +4 -1
  253. package/examples/jsm/shaders/PoissonDenoiseShader.js +4 -1
  254. package/examples/jsm/shaders/RGBShiftShader.js +4 -1
  255. package/examples/jsm/shaders/SAOShader.js +4 -1
  256. package/examples/jsm/shaders/SMAAShader.js +1 -0
  257. package/examples/jsm/shaders/SSAOShader.js +4 -1
  258. package/examples/jsm/shaders/SSRShader.js +1 -0
  259. package/examples/jsm/shaders/SepiaShader.js +4 -1
  260. package/examples/jsm/shaders/SobelOperatorShader.js +4 -1
  261. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +4 -1
  262. package/examples/jsm/shaders/TechnicolorShader.js +4 -1
  263. package/examples/jsm/shaders/ToonShader.js +2 -1
  264. package/examples/jsm/shaders/TriangleBlurShader.js +4 -1
  265. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +4 -1
  266. package/examples/jsm/shaders/VelocityShader.js +4 -1
  267. package/examples/jsm/shaders/VerticalBlurShader.js +4 -1
  268. package/examples/jsm/shaders/VerticalTiltShiftShader.js +4 -1
  269. package/examples/jsm/shaders/VignetteShader.js +4 -1
  270. package/examples/jsm/shaders/VolumeShader.js +5 -2
  271. package/examples/jsm/shaders/WaterRefractionShader.js +4 -1
  272. package/examples/jsm/textures/FlakesTexture.js +2 -0
  273. package/examples/jsm/transpiler/AST.js +381 -30
  274. package/examples/jsm/transpiler/GLSLDecoder.js +226 -87
  275. package/examples/jsm/transpiler/Linker.js +327 -0
  276. package/examples/jsm/transpiler/TSLEncoder.js +234 -85
  277. package/examples/jsm/transpiler/Transpiler.js +19 -1
  278. package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
  279. package/examples/jsm/transpiler/WGSLEncoder.js +788 -0
  280. package/examples/jsm/tsl/display/AfterImageNode.js +2 -3
  281. package/examples/jsm/tsl/display/AnaglyphPassNode.js +1 -0
  282. package/examples/jsm/tsl/display/AnamorphicNode.js +5 -4
  283. package/examples/jsm/tsl/display/BloomNode.js +1 -0
  284. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +206 -0
  285. package/examples/jsm/tsl/display/DenoiseNode.js +33 -33
  286. package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -0
  287. package/examples/jsm/tsl/display/DotScreenNode.js +1 -0
  288. package/examples/jsm/tsl/display/FXAANode.js +3 -2
  289. package/examples/jsm/tsl/display/FilmNode.js +1 -0
  290. package/examples/jsm/tsl/display/GTAONode.js +1 -0
  291. package/examples/jsm/tsl/display/GaussianBlurNode.js +4 -29
  292. package/examples/jsm/tsl/display/LensflareNode.js +1 -0
  293. package/examples/jsm/tsl/display/Lut3DNode.js +1 -0
  294. package/examples/jsm/tsl/display/OutlineNode.js +1 -0
  295. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +1 -0
  296. package/examples/jsm/tsl/display/PixelationPassNode.js +1 -0
  297. package/examples/jsm/tsl/display/RGBShiftNode.js +1 -0
  298. package/examples/jsm/tsl/display/SMAANode.js +9 -8
  299. package/examples/jsm/tsl/display/SSAAPassNode.js +5 -4
  300. package/examples/jsm/tsl/display/SSRNode.js +1 -0
  301. package/examples/jsm/tsl/display/SobelOperatorNode.js +1 -0
  302. package/examples/jsm/tsl/display/StereoCompositePassNode.js +1 -0
  303. package/examples/jsm/tsl/display/StereoPassNode.js +1 -0
  304. package/examples/jsm/tsl/display/TRAAPassNode.js +5 -4
  305. package/examples/jsm/tsl/display/TransitionNode.js +1 -0
  306. package/examples/jsm/tsl/display/hashBlur.js +28 -6
  307. package/examples/jsm/tsl/lighting/TiledLightsNode.js +4 -3
  308. package/examples/jsm/tsl/math/Bayer.js +4 -1
  309. package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
  310. package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
  311. package/examples/jsm/tsl/utils/Raymarching.js +6 -3
  312. package/examples/jsm/utils/BufferGeometryUtils.js +4 -1
  313. package/examples/jsm/utils/CameraUtils.js +4 -1
  314. package/examples/jsm/utils/GeometryCompressionUtils.js +4 -1
  315. package/examples/jsm/utils/GeometryUtils.js +4 -1
  316. package/examples/jsm/utils/LDrawUtils.js +2 -0
  317. package/examples/jsm/utils/SceneOptimizer.js +2 -0
  318. package/examples/jsm/utils/SceneUtils.js +4 -1
  319. package/examples/jsm/utils/ShadowMapViewer.js +2 -0
  320. package/examples/jsm/utils/ShadowMapViewerGPU.js +2 -0
  321. package/examples/jsm/utils/SkeletonUtils.js +4 -1
  322. package/examples/jsm/utils/SortUtils.js +4 -1
  323. package/examples/jsm/utils/UVsDebug.js +4 -1
  324. package/examples/jsm/utils/WebGLTextureUtils.js +4 -1
  325. package/examples/jsm/utils/WebGPUTextureUtils.js +4 -1
  326. package/examples/jsm/utils/WorkerPool.js +2 -0
  327. package/examples/jsm/webxr/ARButton.js +1 -0
  328. package/examples/jsm/webxr/OculusHandModel.js +1 -0
  329. package/examples/jsm/webxr/OculusHandPointerModel.js +1 -0
  330. package/examples/jsm/webxr/Text2D.js +4 -1
  331. package/examples/jsm/webxr/VRButton.js +1 -0
  332. package/examples/jsm/webxr/XRButton.js +1 -0
  333. package/examples/jsm/webxr/XRControllerModelFactory.js +2 -0
  334. package/examples/jsm/webxr/XREstimatedLight.js +1 -0
  335. package/examples/jsm/webxr/XRHandMeshModel.js +2 -0
  336. package/examples/jsm/webxr/XRHandModelFactory.js +2 -0
  337. package/examples/jsm/webxr/XRHandPrimitiveModel.js +2 -0
  338. package/examples/jsm/webxr/XRPlanes.js +1 -0
  339. package/package.json +6 -4
  340. package/src/Three.Core.js +1 -1
  341. package/src/Three.TSL.js +18 -10
  342. package/src/Three.WebGPU.Nodes.js +1 -0
  343. package/src/Three.WebGPU.js +3 -0
  344. package/src/audio/AudioListener.js +13 -10
  345. package/src/cameras/ArrayCamera.js +9 -1
  346. package/src/constants.js +47 -20
  347. package/src/core/BufferAttribute.js +3 -3
  348. package/src/core/BufferGeometry.js +2 -5
  349. package/src/core/Clock.js +2 -8
  350. package/src/core/GLBufferAttribute.js +13 -1
  351. package/src/core/Object3D.js +23 -22
  352. package/src/core/RenderTarget.js +65 -21
  353. package/src/core/RenderTarget3D.js +1 -0
  354. package/src/extras/TextureUtils.js +1 -5
  355. package/src/extras/core/Curve.js +1 -1
  356. package/src/extras/core/Path.js +22 -22
  357. package/src/geometries/CapsuleGeometry.js +167 -17
  358. package/src/geometries/ExtrudeGeometry.js +39 -29
  359. package/src/helpers/ArrowHelper.js +2 -2
  360. package/src/helpers/SkeletonHelper.js +1 -1
  361. package/src/lights/LightShadow.js +14 -0
  362. package/src/lights/SpotLightShadow.js +9 -1
  363. package/src/lights/webgpu/ProjectorLight.js +46 -0
  364. package/src/loaders/BufferGeometryLoader.js +1 -10
  365. package/src/loaders/FileLoader.js +2 -2
  366. package/src/loaders/ImageBitmapLoader.js +25 -9
  367. package/src/loaders/ImageLoader.js +55 -8
  368. package/src/loaders/ObjectLoader.js +44 -16
  369. package/src/loaders/nodes/NodeObjectLoader.js +2 -2
  370. package/src/materials/Material.js +1 -7
  371. package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
  372. package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
  373. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  374. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
  375. package/src/materials/nodes/MeshSSSNodeMaterial.js +2 -2
  376. package/src/materials/nodes/NodeMaterial.js +105 -19
  377. package/src/materials/nodes/manager/NodeMaterialObserver.js +20 -2
  378. package/src/math/Box3.js +28 -0
  379. package/src/math/Color.js +7 -7
  380. package/src/math/ColorManagement.js +22 -3
  381. package/src/math/Frustum.js +6 -1
  382. package/src/math/FrustumArray.js +253 -0
  383. package/src/math/Quaternion.js +1 -1
  384. package/src/math/Ray.js +2 -0
  385. package/src/math/Sphere.js +28 -0
  386. package/src/nodes/Nodes.js +2 -3
  387. package/src/nodes/TSL.js +5 -3
  388. package/src/nodes/accessors/AccessorsUtils.js +7 -8
  389. package/src/nodes/accessors/Bitangent.js +54 -26
  390. package/src/nodes/accessors/Camera.js +31 -4
  391. package/src/nodes/accessors/CubeTextureNode.js +50 -2
  392. package/src/nodes/accessors/InstanceNode.js +5 -4
  393. package/src/nodes/accessors/Lights.js +2 -2
  394. package/src/nodes/accessors/MaterialNode.js +4 -0
  395. package/src/nodes/accessors/ModelNode.js +1 -1
  396. package/src/nodes/accessors/Normal.js +102 -16
  397. package/src/nodes/accessors/Object3DNode.js +7 -8
  398. package/src/nodes/accessors/Position.js +14 -4
  399. package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
  400. package/src/nodes/accessors/ReferenceNode.js +1 -1
  401. package/src/nodes/accessors/ReflectVector.js +3 -3
  402. package/src/nodes/accessors/SkinningNode.js +3 -2
  403. package/src/nodes/accessors/StorageBufferNode.js +25 -0
  404. package/src/nodes/accessors/StorageTextureNode.js +14 -3
  405. package/src/nodes/accessors/Tangent.js +25 -17
  406. package/src/nodes/accessors/TangentUtils.js +46 -0
  407. package/src/nodes/accessors/TextureBicubic.js +21 -3
  408. package/src/nodes/accessors/TextureNode.js +59 -8
  409. package/src/nodes/accessors/UniformArrayNode.js +0 -16
  410. package/src/nodes/accessors/VelocityNode.js +1 -0
  411. package/src/nodes/accessors/VertexColorNode.js +4 -4
  412. package/src/nodes/code/CodeNode.js +8 -11
  413. package/src/nodes/core/AssignNode.js +27 -5
  414. package/src/nodes/core/AttributeNode.js +2 -2
  415. package/src/nodes/core/ContextNode.js +7 -3
  416. package/src/nodes/core/Node.js +69 -20
  417. package/src/nodes/core/NodeBuilder.js +248 -29
  418. package/src/nodes/core/NodeUtils.js +42 -0
  419. package/src/nodes/core/NodeVarying.js +19 -1
  420. package/src/nodes/core/PropertyNode.js +8 -12
  421. package/src/nodes/core/StackNode.js +129 -26
  422. package/src/nodes/core/StructTypeNode.js +26 -4
  423. package/src/nodes/core/SubBuildNode.js +89 -0
  424. package/src/nodes/core/VarNode.js +11 -2
  425. package/src/nodes/core/VaryingNode.js +45 -24
  426. package/src/nodes/display/BlendModes.js +42 -1
  427. package/src/nodes/display/ColorSpaceNode.js +4 -27
  428. package/src/nodes/display/FrontFacingNode.js +34 -2
  429. package/src/nodes/display/NormalMapNode.js +19 -50
  430. package/src/nodes/display/PassNode.js +18 -19
  431. package/src/nodes/display/ScreenNode.js +0 -26
  432. package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
  433. package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
  434. package/src/nodes/functions/PhongLightingModel.js +3 -3
  435. package/src/nodes/functions/PhysicalLightingModel.js +14 -14
  436. package/src/nodes/functions/ShadowMaskModel.js +5 -1
  437. package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
  438. package/src/nodes/functions/material/getParallaxCorrectNormal.js +1 -1
  439. package/src/nodes/gpgpu/AtomicFunctionNode.js +28 -10
  440. package/src/nodes/gpgpu/BarrierNode.js +3 -3
  441. package/src/nodes/gpgpu/ComputeNode.js +1 -1
  442. package/src/nodes/lighting/AnalyticLightNode.js +7 -13
  443. package/src/nodes/lighting/EnvironmentNode.js +5 -5
  444. package/src/nodes/lighting/HemisphereLightNode.js +2 -2
  445. package/src/nodes/lighting/IESSpotLightNode.js +2 -1
  446. package/src/nodes/lighting/LightsNode.js +29 -11
  447. package/src/nodes/lighting/ProjectorLightNode.js +78 -0
  448. package/src/nodes/lighting/ShadowBaseNode.js +1 -12
  449. package/src/nodes/lighting/ShadowFilterNode.js +274 -0
  450. package/src/nodes/lighting/ShadowNode.js +174 -242
  451. package/src/nodes/lighting/SpotLightNode.js +44 -7
  452. package/src/nodes/materialx/lib/mx_noise.js +1 -1
  453. package/src/nodes/math/ConditionalNode.js +0 -19
  454. package/src/nodes/math/MathNode.js +68 -21
  455. package/src/nodes/math/OperatorNode.js +108 -98
  456. package/src/nodes/shapes/Shapes.js +5 -4
  457. package/src/nodes/tsl/TSLBase.js +1 -0
  458. package/src/nodes/tsl/TSLCore.js +160 -65
  459. package/src/nodes/utils/DebugNode.js +15 -3
  460. package/src/nodes/utils/Discard.js +2 -2
  461. package/src/nodes/utils/EquirectUV.js +27 -0
  462. package/src/nodes/utils/LoopNode.js +64 -34
  463. package/src/nodes/utils/MatcapUV.js +22 -0
  464. package/src/nodes/utils/RTTNode.js +13 -5
  465. package/src/nodes/utils/ReflectorNode.js +77 -7
  466. package/src/nodes/utils/SampleNode.js +81 -0
  467. package/src/nodes/utils/TriplanarTextures.js +65 -0
  468. package/src/objects/BatchedMesh.js +16 -4
  469. package/src/objects/Mesh.js +9 -0
  470. package/src/objects/Skeleton.js +1 -1
  471. package/src/objects/Sprite.js +9 -0
  472. package/src/renderers/WebGL3DRenderTarget.js +1 -0
  473. package/src/renderers/WebGLArrayRenderTarget.js +1 -0
  474. package/src/renderers/WebGLCubeRenderTarget.js +2 -4
  475. package/src/renderers/WebGLRenderer.js +25 -11
  476. package/src/renderers/common/Animation.js +2 -2
  477. package/src/renderers/common/Background.js +13 -2
  478. package/src/renderers/common/CubeRenderTarget.js +1 -1
  479. package/src/renderers/common/RenderList.js +0 -4
  480. package/src/renderers/common/RenderObject.js +80 -4
  481. package/src/renderers/common/Renderer.js +116 -8
  482. package/src/renderers/common/Storage3DTexture.js +79 -0
  483. package/src/renderers/common/StorageArrayTexture.js +63 -0
  484. package/src/renderers/common/Textures.js +15 -21
  485. package/src/renderers/common/TimestampQueryPool.js +1 -0
  486. package/src/renderers/common/Uniform.js +1 -1
  487. package/src/renderers/common/UniformsGroup.js +14 -18
  488. package/src/renderers/common/XRManager.js +157 -27
  489. package/src/renderers/common/XRRenderTarget.js +21 -4
  490. package/src/renderers/common/extras/PMREMGenerator.js +30 -23
  491. package/src/renderers/common/nodes/Nodes.js +13 -3
  492. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +1 -1
  493. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
  494. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
  495. package/src/renderers/webgl/WebGLAttributes.js +4 -0
  496. package/src/renderers/webgl/WebGLPrograms.js +4 -2
  497. package/src/renderers/webgl/WebGLShadowMap.js +3 -2
  498. package/src/renderers/webgl/WebGLState.js +4 -4
  499. package/src/renderers/webgl/WebGLTextures.js +144 -4
  500. package/src/renderers/webgl/WebGLUtils.js +1 -3
  501. package/src/renderers/webgl-fallback/WebGLBackend.js +244 -87
  502. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +73 -7
  503. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
  504. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
  505. package/src/renderers/webgl-fallback/utils/WebGLState.js +4 -4
  506. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +44 -29
  507. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
  508. package/src/renderers/webgpu/WebGPUBackend.js +451 -128
  509. package/src/renderers/webgpu/WebGPURenderer.js +7 -0
  510. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +4 -1
  511. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +4 -1
  512. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +86 -33
  513. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
  514. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +9 -1
  515. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +28 -5
  516. package/src/renderers/webgpu/utils/WebGPUConstants.js +8 -2
  517. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +38 -8
  518. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +45 -50
  519. package/src/renderers/webxr/WebXRController.js +1 -1
  520. package/src/renderers/webxr/WebXRManager.js +2 -1
  521. package/src/textures/DepthTexture.js +6 -10
  522. package/src/textures/Source.js +22 -0
  523. package/src/textures/Texture.js +118 -1
  524. package/src/textures/VideoTexture.js +1 -1
  525. package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
  526. package/src/core/RenderTargetArray.js +0 -40
  527. package/src/nodes/utils/EquirectUVNode.js +0 -65
  528. package/src/nodes/utils/MatcapUVNode.js +0 -49
  529. package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
package/src/Three.TSL.js CHANGED
@@ -13,6 +13,7 @@ export const F_Schlick = TSL.F_Schlick;
13
13
  export const Fn = TSL.Fn;
14
14
  export const INFINITY = TSL.INFINITY;
15
15
  export const If = TSL.If;
16
+ export const Switch = TSL.Switch;
16
17
  export const Loop = TSL.Loop;
17
18
  export const NodeShaderStage = TSL.NodeShaderStage;
18
19
  export const NodeType = TSL.NodeType;
@@ -67,6 +68,7 @@ export const backgroundBlurriness = TSL.backgroundBlurriness;
67
68
  export const backgroundIntensity = TSL.backgroundIntensity;
68
69
  export const backgroundRotation = TSL.backgroundRotation;
69
70
  export const batch = TSL.batch;
71
+ export const bentNormalView = TSL.bentNormalView;
70
72
  export const billboarding = TSL.billboarding;
71
73
  export const bitAnd = TSL.bitAnd;
72
74
  export const bitNot = TSL.bitNot;
@@ -130,6 +132,8 @@ export const dFdx = TSL.dFdx;
130
132
  export const dFdy = TSL.dFdy;
131
133
  export const dashSize = TSL.dashSize;
132
134
  export const debug = TSL.debug;
135
+ export const decrement = TSL.decrement;
136
+ export const decrementBefore = TSL.decrementBefore;
133
137
  export const defaultBuildStages = TSL.defaultBuildStages;
134
138
  export const defaultShaderStages = TSL.defaultShaderStages;
135
139
  export const defined = TSL.defined;
@@ -183,6 +187,8 @@ export const getScreenPosition = TSL.getScreenPosition;
183
187
  export const getShIrradianceAt = TSL.getShIrradianceAt;
184
188
  export const getTextureIndex = TSL.getTextureIndex;
185
189
  export const getViewPosition = TSL.getViewPosition;
190
+ export const getShadowMaterial = TSL.getShadowMaterial;
191
+ export const getShadowRenderObjectFunction = TSL.getShadowRenderObjectFunction;
186
192
  export const glsl = TSL.glsl;
187
193
  export const glslFn = TSL.glslFn;
188
194
  export const grayscale = TSL.grayscale;
@@ -192,6 +198,8 @@ export const hash = TSL.hash;
192
198
  export const highpModelNormalViewMatrix = TSL.highpModelNormalViewMatrix;
193
199
  export const highpModelViewMatrix = TSL.highpModelViewMatrix;
194
200
  export const hue = TSL.hue;
201
+ export const increment = TSL.increment;
202
+ export const incrementBefore = TSL.incrementBefore;
195
203
  export const instance = TSL.instance;
196
204
  export const instanceIndex = TSL.instanceIndex;
197
205
  export const instancedArray = TSL.instancedArray;
@@ -217,6 +225,7 @@ export const lengthSq = TSL.lengthSq;
217
225
  export const lessThan = TSL.lessThan;
218
226
  export const lessThanEqual = TSL.lessThanEqual;
219
227
  export const lightPosition = TSL.lightPosition;
228
+ export const lightShadowMatrix = TSL.lightShadowMatrix;
220
229
  export const lightTargetDirection = TSL.lightTargetDirection;
221
230
  export const lightTargetPosition = TSL.lightTargetPosition;
222
231
  export const lightViewPosition = TSL.lightViewPosition;
@@ -331,7 +340,9 @@ export const normalGeometry = TSL.normalGeometry;
331
340
  export const normalLocal = TSL.normalLocal;
332
341
  export const normalMap = TSL.normalMap;
333
342
  export const normalView = TSL.normalView;
343
+ export const normalViewGeometry = TSL.normalViewGeometry;
334
344
  export const normalWorld = TSL.normalWorld;
345
+ export const normalWorldGeometry = TSL.normalWorldGeometry;
335
346
  export const normalize = TSL.normalize;
336
347
  export const not = TSL.not;
337
348
  export const notEqual = TSL.notEqual;
@@ -377,6 +388,7 @@ export const pow = TSL.pow;
377
388
  export const pow2 = TSL.pow2;
378
389
  export const pow3 = TSL.pow3;
379
390
  export const pow4 = TSL.pow4;
391
+ export const premultiplyAlpha = TSL.premultiplyAlpha;
380
392
  export const property = TSL.property;
381
393
  export const radians = TSL.radians;
382
394
  export const rand = TSL.rand;
@@ -408,6 +420,7 @@ export const round = TSL.round;
408
420
  export const rtt = TSL.rtt;
409
421
  export const sRGBTransferEOTF = TSL.sRGBTransferEOTF;
410
422
  export const sRGBTransferOETF = TSL.sRGBTransferOETF;
423
+ export const sample = TSL.sample;
411
424
  export const sampler = TSL.sampler;
412
425
  export const samplerComparison = TSL.samplerComparison;
413
426
  export const saturate = TSL.saturate;
@@ -452,6 +465,7 @@ export const storageTexture = TSL.storageTexture;
452
465
  export const string = TSL.string;
453
466
  export const struct = TSL.struct;
454
467
  export const sub = TSL.sub;
468
+ export const subBuild = TSL.subBuild;
455
469
  export const subgroupIndex = TSL.subgroupIndex;
456
470
  export const subgroupSize = TSL.subgroupSize;
457
471
  export const tan = TSL.tan;
@@ -464,36 +478,27 @@ export const texture = TSL.texture;
464
478
  export const texture3D = TSL.texture3D;
465
479
  export const textureBarrier = TSL.textureBarrier;
466
480
  export const textureBicubic = TSL.textureBicubic;
481
+ export const textureBicubicLevel = TSL.textureBicubicLevel;
467
482
  export const textureCubeUV = TSL.textureCubeUV;
468
483
  export const textureLoad = TSL.textureLoad;
469
484
  export const textureSize = TSL.textureSize;
470
485
  export const textureStore = TSL.textureStore;
471
486
  export const thickness = TSL.thickness;
472
- export const threshold = TSL.threshold;
473
487
  export const time = TSL.time;
474
488
  export const timerDelta = TSL.timerDelta;
475
489
  export const timerGlobal = TSL.timerGlobal;
476
490
  export const timerLocal = TSL.timerLocal;
477
- export const toOutputColorSpace = TSL.toOutputColorSpace;
478
- export const toWorkingColorSpace = TSL.toWorkingColorSpace;
479
491
  export const toneMapping = TSL.toneMapping;
480
492
  export const toneMappingExposure = TSL.toneMappingExposure;
481
493
  export const toonOutlinePass = TSL.toonOutlinePass;
482
494
  export const transformDirection = TSL.transformDirection;
483
495
  export const transformNormal = TSL.transformNormal;
484
496
  export const transformNormalToView = TSL.transformNormalToView;
485
- export const transformedBentNormalView = TSL.transformedBentNormalView;
486
- export const transformedBitangentView = TSL.transformedBitangentView;
487
- export const transformedBitangentWorld = TSL.transformedBitangentWorld;
488
497
  export const transformedClearcoatNormalView = TSL.transformedClearcoatNormalView;
489
498
  export const transformedNormalView = TSL.transformedNormalView;
490
499
  export const transformedNormalWorld = TSL.transformedNormalWorld;
491
- export const transformedTangentView = TSL.transformedTangentView;
492
- export const transformedTangentWorld = TSL.transformedTangentWorld;
493
500
  export const transmission = TSL.transmission;
494
501
  export const transpose = TSL.transpose;
495
- export const tri = TSL.tri;
496
- export const tri3 = TSL.tri3;
497
502
  export const triNoise3D = TSL.triNoise3D;
498
503
  export const triplanarTexture = TSL.triplanarTexture;
499
504
  export const triplanarTextures = TSL.triplanarTextures;
@@ -501,9 +506,12 @@ export const trunc = TSL.trunc;
501
506
  export const tslFn = TSL.tslFn;
502
507
  export const uint = TSL.uint;
503
508
  export const uniform = TSL.uniform;
509
+ export const uniformCubeTexture = TSL.uniformCubeTexture;
504
510
  export const uniformArray = TSL.uniformArray;
505
511
  export const uniformGroup = TSL.uniformGroup;
512
+ export const uniformTexture = TSL.uniformTexture;
506
513
  export const uniforms = TSL.uniforms;
514
+ export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
507
515
  export const userData = TSL.userData;
508
516
  export const uv = TSL.uv;
509
517
  export const uvec2 = TSL.uvec2;
@@ -14,6 +14,7 @@ export { default as StorageBufferAttribute } from './renderers/common/StorageBuf
14
14
  export { default as StorageInstancedBufferAttribute } from './renderers/common/StorageInstancedBufferAttribute.js';
15
15
  export { default as IndirectStorageBufferAttribute } from './renderers/common/IndirectStorageBufferAttribute.js';
16
16
  export { default as IESSpotLight } from './lights/webgpu/IESSpotLight.js';
17
+ export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
17
18
  export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
18
19
  export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
19
20
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
@@ -10,10 +10,13 @@ export { default as PostProcessing } from './renderers/common/PostProcessing.js'
10
10
  import * as RendererUtils from './renderers/common/RendererUtils.js';
11
11
  export { RendererUtils };
12
12
  export { default as StorageTexture } from './renderers/common/StorageTexture.js';
13
+ export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
14
+ export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
13
15
  export { default as StorageBufferAttribute } from './renderers/common/StorageBufferAttribute.js';
14
16
  export { default as StorageInstancedBufferAttribute } from './renderers/common/StorageInstancedBufferAttribute.js';
15
17
  export { default as IndirectStorageBufferAttribute } from './renderers/common/IndirectStorageBufferAttribute.js';
16
18
  export { default as IESSpotLight } from './lights/webgpu/IESSpotLight.js';
19
+ export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
17
20
  export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
18
21
  export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
19
22
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
@@ -7,7 +7,9 @@ import { AudioContext } from './AudioContext.js';
7
7
  const _position = /*@__PURE__*/ new Vector3();
8
8
  const _quaternion = /*@__PURE__*/ new Quaternion();
9
9
  const _scale = /*@__PURE__*/ new Vector3();
10
- const _orientation = /*@__PURE__*/ new Vector3();
10
+
11
+ const _forward = /*@__PURE__*/ new Vector3();
12
+ const _up = /*@__PURE__*/ new Vector3();
11
13
 
12
14
  /**
13
15
  * The class represents a virtual listener of the all positional and non-positional audio effects
@@ -175,13 +177,14 @@ class AudioListener extends Object3D {
175
177
  super.updateMatrixWorld( force );
176
178
 
177
179
  const listener = this.context.listener;
178
- const up = this.up;
179
180
 
180
181
  this.timeDelta = this._clock.getDelta();
181
182
 
182
183
  this.matrixWorld.decompose( _position, _quaternion, _scale );
183
184
 
184
- _orientation.set( 0, 0, - 1 ).applyQuaternion( _quaternion );
185
+ // the initial forward and up directions must be orthogonal
186
+ _forward.set( 0, 0, - 1 ).applyQuaternion( _quaternion );
187
+ _up.set( 0, 1, 0 ).applyQuaternion( _quaternion );
185
188
 
186
189
  if ( listener.positionX ) {
187
190
 
@@ -192,17 +195,17 @@ class AudioListener extends Object3D {
192
195
  listener.positionX.linearRampToValueAtTime( _position.x, endTime );
193
196
  listener.positionY.linearRampToValueAtTime( _position.y, endTime );
194
197
  listener.positionZ.linearRampToValueAtTime( _position.z, endTime );
195
- listener.forwardX.linearRampToValueAtTime( _orientation.x, endTime );
196
- listener.forwardY.linearRampToValueAtTime( _orientation.y, endTime );
197
- listener.forwardZ.linearRampToValueAtTime( _orientation.z, endTime );
198
- listener.upX.linearRampToValueAtTime( up.x, endTime );
199
- listener.upY.linearRampToValueAtTime( up.y, endTime );
200
- listener.upZ.linearRampToValueAtTime( up.z, endTime );
198
+ listener.forwardX.linearRampToValueAtTime( _forward.x, endTime );
199
+ listener.forwardY.linearRampToValueAtTime( _forward.y, endTime );
200
+ listener.forwardZ.linearRampToValueAtTime( _forward.z, endTime );
201
+ listener.upX.linearRampToValueAtTime( _up.x, endTime );
202
+ listener.upY.linearRampToValueAtTime( _up.y, endTime );
203
+ listener.upZ.linearRampToValueAtTime( _up.z, endTime );
201
204
 
202
205
  } else {
203
206
 
204
207
  listener.setPosition( _position.x, _position.y, _position.z );
205
- listener.setOrientation( _orientation.x, _orientation.y, _orientation.z, up.x, up.y, up.z );
208
+ listener.setOrientation( _forward.x, _forward.y, _forward.z, _up.x, _up.y, _up.z );
206
209
 
207
210
  }
208
211
 
@@ -31,13 +31,21 @@ class ArrayCamera extends PerspectiveCamera {
31
31
  */
32
32
  this.isArrayCamera = true;
33
33
 
34
+ /**
35
+ * Whether this camera is used with multiview rendering or not.
36
+ *
37
+ * @type {boolean}
38
+ * @readonly
39
+ * @default false
40
+ */
41
+ this.isMultiViewCamera = false;
42
+
34
43
  /**
35
44
  * An array of perspective sub cameras.
36
45
  *
37
46
  * @type {Array<PerspectiveCamera>}
38
47
  */
39
48
  this.cameras = array;
40
- this.index = 0;
41
49
 
42
50
  }
43
51
 
package/src/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- export const REVISION = '175';
1
+ export const REVISION = '178';
2
2
 
3
3
  /**
4
4
  * Represents mouse buttons and interaction types in context of controls.
@@ -748,25 +748,6 @@ export const RGBFormat = 1022;
748
748
  */
749
749
  export const RGBAFormat = 1023;
750
750
 
751
- /**
752
- * reads each element as a single luminance component. This is then converted to a floating point,
753
- * clamped to the range `[0,1]`, and then assembled into an RGBA element by placing the luminance value
754
- * in the red, green and blue channels, and attaching 1.0 to the alpha channel.
755
- *
756
- * @type {number}
757
- * @constant
758
- */
759
- export const LuminanceFormat = 1024;
760
-
761
- /**
762
- * Reads each element as a luminance/alpha double. The same process occurs as for the `LuminanceFormat`,
763
- * except that the alpha channel may have values other than `1.0`.
764
- *
765
- * @type {number}
766
- * @constant
767
- */
768
- export const LuminanceAlphaFormat = 1025;
769
-
770
751
  /**
771
752
  * Reads each element as a single depth value, converts it to floating point, and clamps to the range `[0,1]`.
772
753
  *
@@ -1612,6 +1593,32 @@ export const TimestampQuery = {
1612
1593
  RENDER: 'render'
1613
1594
  };
1614
1595
 
1596
+ /**
1597
+ * Represents mouse buttons and interaction types in context of controls.
1598
+ *
1599
+ * @type {ConstantsInterpolationSamplingType}
1600
+ * @constant
1601
+ */
1602
+ export const InterpolationSamplingType = {
1603
+ PERSPECTIVE: 'perspective',
1604
+ LINEAR: 'linear',
1605
+ FLAT: 'flat'
1606
+ };
1607
+
1608
+ /**
1609
+ * Represents the different interpolation sampling modes.
1610
+ *
1611
+ * @type {ConstantsInterpolationSamplingMode}
1612
+ * @constant
1613
+ */
1614
+ export const InterpolationSamplingMode = {
1615
+ NORMAL: 'normal',
1616
+ CENTROID: 'centroid',
1617
+ SAMPLE: 'sample',
1618
+ FIRST: 'first',
1619
+ EITHER: 'either'
1620
+ };
1621
+
1615
1622
  /**
1616
1623
  * This type represents mouse buttons and interaction types in context of controls.
1617
1624
  *
@@ -1641,3 +1648,23 @@ export const TimestampQuery = {
1641
1648
  * @property {string} COMPUTE - A `compute` timestamp query.
1642
1649
  * @property {string} RENDER - A `render` timestamp query.
1643
1650
  **/
1651
+
1652
+ /**
1653
+ * Represents the different interpolation sampling types.
1654
+ *
1655
+ * @typedef {Object} ConstantsInterpolationSamplingType
1656
+ * @property {string} PERSPECTIVE - Perspective-correct interpolation.
1657
+ * @property {string} LINEAR - Linear interpolation.
1658
+ * @property {string} FLAT - Flat interpolation.
1659
+ */
1660
+
1661
+ /**
1662
+ * Represents the different interpolation sampling modes.
1663
+ *
1664
+ * @typedef {Object} ConstantsInterpolationSamplingMode
1665
+ * @property {string} NORMAL - Normal sampling mode.
1666
+ * @property {string} CENTROID - Centroid sampling mode.
1667
+ * @property {string} SAMPLE - Sample-specific sampling mode.
1668
+ * @property {string} FLAT_FIRST - Flat interpolation using the first vertex.
1669
+ * @property {string} FLAT_EITHER - Flat interpolation using either vertex.
1670
+ */
@@ -88,7 +88,7 @@ class BufferAttribute {
88
88
  /**
89
89
  * Applies to integer data only. Indicates how the underlying data in the buffer maps to
90
90
  * the values in the GLSL code. For instance, if `array` is an instance of `UInt16Array`,
91
- * and `normalized` is `true`, the values `0 -+65535` in the array data will be mapped to
91
+ * and `normalized` is `true`, the values `0 - +65535` in the array data will be mapped to
92
92
  * `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted
93
93
  * to floats unmodified, i.e. `65535` becomes `65535.0f`.
94
94
  *
@@ -841,8 +841,8 @@ class Uint32BufferAttribute extends BufferAttribute {
841
841
  * Convenient class that can be used when creating a `Float16` buffer attribute with
842
842
  * a plain `Array` instance.
843
843
  *
844
- * This class automatically converts to to and from FP16 since `Float16Array` is not
845
- * natively supported in JavaScript.
844
+ * This class automatically converts to and from FP16 via `Uint16Array` since `Float16Array`
845
+ * browser support is still problematic.
846
846
  *
847
847
  * @augments BufferAttribute
848
848
  */
@@ -1201,7 +1201,7 @@ class BufferGeometry extends EventDispatcher {
1201
1201
 
1202
1202
  const data = {
1203
1203
  metadata: {
1204
- version: 4.6,
1204
+ version: 4.7,
1205
1205
  type: 'BufferGeometry',
1206
1206
  generator: 'BufferGeometry.toJSON'
1207
1207
  }
@@ -1299,10 +1299,7 @@ class BufferGeometry extends EventDispatcher {
1299
1299
 
1300
1300
  if ( boundingSphere !== null ) {
1301
1301
 
1302
- data.data.boundingSphere = {
1303
- center: boundingSphere.center.toArray(),
1304
- radius: boundingSphere.radius
1305
- };
1302
+ data.data.boundingSphere = boundingSphere.toJSON();
1306
1303
 
1307
1304
  }
1308
1305
 
package/src/core/Clock.js CHANGED
@@ -61,7 +61,7 @@ class Clock {
61
61
  */
62
62
  start() {
63
63
 
64
- this.startTime = now();
64
+ this.startTime = performance.now();
65
65
 
66
66
  this.oldTime = this.startTime;
67
67
  this.elapsedTime = 0;
@@ -110,7 +110,7 @@ class Clock {
110
110
 
111
111
  if ( this.running ) {
112
112
 
113
- const newTime = now();
113
+ const newTime = performance.now();
114
114
 
115
115
  diff = ( newTime - this.oldTime ) / 1000;
116
116
  this.oldTime = newTime;
@@ -125,10 +125,4 @@ class Clock {
125
125
 
126
126
  }
127
127
 
128
- function now() {
129
-
130
- return performance.now();
131
-
132
- }
133
-
134
128
  export { Clock };
@@ -19,8 +19,9 @@ class GLBufferAttribute {
19
19
  * @param {number} itemSize - The item size.
20
20
  * @param {number} elementSize - The corresponding size (in bytes) for the given `type` parameter.
21
21
  * @param {number} count - The expected number of vertices in VBO.
22
+ * @param {boolean} [normalized=false] - Whether the data are normalized or not.
22
23
  */
23
- constructor( buffer, type, itemSize, elementSize, count ) {
24
+ constructor( buffer, type, itemSize, elementSize, count, normalized = false ) {
24
25
 
25
26
  /**
26
27
  * This flag can be used for type testing.
@@ -73,6 +74,17 @@ class GLBufferAttribute {
73
74
  */
74
75
  this.count = count;
75
76
 
77
+ /**
78
+ * Applies to integer data only. Indicates how the underlying data in the buffer maps to
79
+ * the values in the GLSL code. For instance, if `buffer` contains data of `gl.UNSIGNED_SHORT`,
80
+ * and `normalized` is `true`, the values `0 - +65535` in the buffer data will be mapped to
81
+ * `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted
82
+ * to floats unmodified, i.e. `65535` becomes `65535.0f`.
83
+ *
84
+ * @type {boolean}
85
+ */
86
+ this.normalized = normalized;
87
+
76
88
  /**
77
89
  * A version number, incremented every time the `needsUpdate` is set to `true`.
78
90
  *
@@ -47,7 +47,7 @@ const _removedEvent = { type: 'removed' };
47
47
  const _childaddedEvent = { type: 'childadded', child: null };
48
48
 
49
49
  /**
50
- * Fires when a new child object has been added.
50
+ * Fires when a child object has been removed.
51
51
  *
52
52
  * @event Object3D#childremoved
53
53
  * @type {Object}
@@ -1246,7 +1246,7 @@ class Object3D extends EventDispatcher {
1246
1246
  };
1247
1247
 
1248
1248
  output.metadata = {
1249
- version: 4.6,
1249
+ version: 4.7,
1250
1250
  type: 'Object',
1251
1251
  generator: 'Object3D.toJSON'
1252
1252
  };
@@ -1294,44 +1294,45 @@ class Object3D extends EventDispatcher {
1294
1294
  object.drawRanges = this._drawRanges;
1295
1295
  object.reservedRanges = this._reservedRanges;
1296
1296
 
1297
- object.visibility = this._visibility;
1298
- object.active = this._active;
1299
- object.bounds = this._bounds.map( bound => ( {
1300
- boxInitialized: bound.boxInitialized,
1301
- boxMin: bound.box.min.toArray(),
1302
- boxMax: bound.box.max.toArray(),
1303
-
1304
- sphereInitialized: bound.sphereInitialized,
1305
- sphereRadius: bound.sphere.radius,
1306
- sphereCenter: bound.sphere.center.toArray()
1297
+ object.geometryInfo = this._geometryInfo.map( info => ( {
1298
+ ...info,
1299
+ boundingBox: info.boundingBox ? info.boundingBox.toJSON() : undefined,
1300
+ boundingSphere: info.boundingSphere ? info.boundingSphere.toJSON() : undefined
1307
1301
  } ) );
1302
+ object.instanceInfo = this._instanceInfo.map( info => ( { ...info } ) );
1303
+
1304
+ object.availableInstanceIds = this._availableInstanceIds.slice();
1305
+ object.availableGeometryIds = this._availableGeometryIds.slice();
1306
+
1307
+ object.nextIndexStart = this._nextIndexStart;
1308
+ object.nextVertexStart = this._nextVertexStart;
1309
+ object.geometryCount = this._geometryCount;
1308
1310
 
1309
1311
  object.maxInstanceCount = this._maxInstanceCount;
1310
1312
  object.maxVertexCount = this._maxVertexCount;
1311
1313
  object.maxIndexCount = this._maxIndexCount;
1312
1314
 
1313
1315
  object.geometryInitialized = this._geometryInitialized;
1314
- object.geometryCount = this._geometryCount;
1315
1316
 
1316
1317
  object.matricesTexture = this._matricesTexture.toJSON( meta );
1317
1318
 
1318
- if ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );
1319
+ object.indirectTexture = this._indirectTexture.toJSON( meta );
1320
+
1321
+ if ( this._colorsTexture !== null ) {
1322
+
1323
+ object.colorsTexture = this._colorsTexture.toJSON( meta );
1324
+
1325
+ }
1319
1326
 
1320
1327
  if ( this.boundingSphere !== null ) {
1321
1328
 
1322
- object.boundingSphere = {
1323
- center: object.boundingSphere.center.toArray(),
1324
- radius: object.boundingSphere.radius
1325
- };
1329
+ object.boundingSphere = this.boundingSphere.toJSON();
1326
1330
 
1327
1331
  }
1328
1332
 
1329
1333
  if ( this.boundingBox !== null ) {
1330
1334
 
1331
- object.boundingBox = {
1332
- min: object.boundingBox.min.toArray(),
1333
- max: object.boundingBox.max.toArray()
1334
- };
1335
+ object.boundingBox = this.boundingBox.toJSON();
1335
1336
 
1336
1337
  }
1337
1338
 
@@ -35,6 +35,8 @@ class RenderTarget extends EventDispatcher {
35
35
  * @property {?Texture} [depthTexture=null] - Reference to a depth texture.
36
36
  * @property {number} [samples=0] - The MSAA samples count.
37
37
  * @property {number} [count=1] - Defines the number of color attachments . Must be at least `1`.
38
+ * @property {number} [depth=1] - The texture depth.
39
+ * @property {boolean} [multiview=false] - Whether this target is used for multiview rendering.
38
40
  */
39
41
 
40
42
  /**
@@ -48,6 +50,21 @@ class RenderTarget extends EventDispatcher {
48
50
 
49
51
  super();
50
52
 
53
+ options = Object.assign( {
54
+ generateMipmaps: false,
55
+ internalFormat: null,
56
+ minFilter: LinearFilter,
57
+ depthBuffer: true,
58
+ stencilBuffer: false,
59
+ resolveDepthBuffer: true,
60
+ resolveStencilBuffer: true,
61
+ depthTexture: null,
62
+ samples: 0,
63
+ count: 1,
64
+ depth: 1,
65
+ multiview: false
66
+ }, options );
67
+
51
68
  /**
52
69
  * This flag can be used for type testing.
53
70
  *
@@ -79,7 +96,7 @@ class RenderTarget extends EventDispatcher {
79
96
  * @type {number}
80
97
  * @default 1
81
98
  */
82
- this.depth = 1;
99
+ this.depth = options.depth;
83
100
 
84
101
  /**
85
102
  * A rectangular area inside the render target's viewport. Fragments that are
@@ -107,26 +124,9 @@ class RenderTarget extends EventDispatcher {
107
124
  */
108
125
  this.viewport = new Vector4( 0, 0, width, height );
109
126
 
110
- const image = { width: width, height: height, depth: 1 };
111
-
112
- options = Object.assign( {
113
- generateMipmaps: false,
114
- internalFormat: null,
115
- minFilter: LinearFilter,
116
- depthBuffer: true,
117
- stencilBuffer: false,
118
- resolveDepthBuffer: true,
119
- resolveStencilBuffer: true,
120
- depthTexture: null,
121
- samples: 0,
122
- count: 1
123
- }, options );
124
-
125
- const texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );
127
+ const image = { width: width, height: height, depth: options.depth };
126
128
 
127
- texture.flipY = false;
128
- texture.generateMipmaps = options.generateMipmaps;
129
- texture.internalFormat = options.internalFormat;
129
+ const texture = new Texture( image );
130
130
 
131
131
  /**
132
132
  * An array of textures. Each color attachment is represented as a separate texture.
@@ -145,6 +145,8 @@ class RenderTarget extends EventDispatcher {
145
145
 
146
146
  }
147
147
 
148
+ this._setTextureOptions( options );
149
+
148
150
  /**
149
151
  * Whether to allocate a depth buffer or not.
150
152
  *
@@ -177,7 +179,8 @@ class RenderTarget extends EventDispatcher {
177
179
  */
178
180
  this.resolveStencilBuffer = options.resolveStencilBuffer;
179
181
 
180
- this._depthTexture = options.depthTexture;
182
+ this._depthTexture = null;
183
+ this.depthTexture = options.depthTexture;
181
184
 
182
185
  /**
183
186
  * The number of MSAA samples.
@@ -189,6 +192,46 @@ class RenderTarget extends EventDispatcher {
189
192
  */
190
193
  this.samples = options.samples;
191
194
 
195
+ /**
196
+ * Whether to this target is used in multiview rendering.
197
+ *
198
+ * @type {boolean}
199
+ * @default false
200
+ */
201
+ this.multiview = options.multiview;
202
+
203
+ }
204
+
205
+ _setTextureOptions( options = {} ) {
206
+
207
+ const values = {
208
+ minFilter: LinearFilter,
209
+ generateMipmaps: false,
210
+ flipY: false,
211
+ internalFormat: null
212
+ };
213
+
214
+ if ( options.mapping !== undefined ) values.mapping = options.mapping;
215
+ if ( options.wrapS !== undefined ) values.wrapS = options.wrapS;
216
+ if ( options.wrapT !== undefined ) values.wrapT = options.wrapT;
217
+ if ( options.wrapR !== undefined ) values.wrapR = options.wrapR;
218
+ if ( options.magFilter !== undefined ) values.magFilter = options.magFilter;
219
+ if ( options.minFilter !== undefined ) values.minFilter = options.minFilter;
220
+ if ( options.format !== undefined ) values.format = options.format;
221
+ if ( options.type !== undefined ) values.type = options.type;
222
+ if ( options.anisotropy !== undefined ) values.anisotropy = options.anisotropy;
223
+ if ( options.colorSpace !== undefined ) values.colorSpace = options.colorSpace;
224
+ if ( options.flipY !== undefined ) values.flipY = options.flipY;
225
+ if ( options.generateMipmaps !== undefined ) values.generateMipmaps = options.generateMipmaps;
226
+ if ( options.internalFormat !== undefined ) values.internalFormat = options.internalFormat;
227
+
228
+ for ( let i = 0; i < this.textures.length; i ++ ) {
229
+
230
+ const texture = this.textures[ i ];
231
+ texture.setValues( values );
232
+
233
+ }
234
+
192
235
  }
193
236
 
194
237
  /**
@@ -251,6 +294,7 @@ class RenderTarget extends EventDispatcher {
251
294
  this.textures[ i ].image.width = width;
252
295
  this.textures[ i ].image.height = height;
253
296
  this.textures[ i ].image.depth = depth;
297
+ this.textures[ i ].isArrayTexture = this.textures[ i ].image.depth > 1;
254
298
 
255
299
  }
256
300
 
@@ -37,6 +37,7 @@ class RenderTarget3D extends RenderTarget {
37
37
  * @type {Data3DTexture}
38
38
  */
39
39
  this.texture = new Data3DTexture( null, width, height, depth );
40
+ this._setTextureOptions( options );
40
41
 
41
42
  this.texture.isRenderTargetTexture = true;
42
43
 
@@ -1,4 +1,4 @@
1
- import { AlphaFormat, LuminanceFormat, LuminanceAlphaFormat, RedFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBFormat, RGBAFormat, RGBAIntegerFormat, RGB_S3TC_DXT1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_PVRTC_2BPPV1_Format, RGBA_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, UnsignedByteType, ByteType, UnsignedShortType, ShortType, HalfFloatType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedIntType, IntType, FloatType, UnsignedInt5999Type } from '../constants.js';
1
+ import { AlphaFormat, RedFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBFormat, RGBAFormat, RGBAIntegerFormat, RGB_S3TC_DXT1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_PVRTC_2BPPV1_Format, RGBA_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, UnsignedByteType, ByteType, UnsignedShortType, ShortType, HalfFloatType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedIntType, IntType, FloatType, UnsignedInt5999Type } from '../constants.js';
2
2
 
3
3
  /**
4
4
  * Scales the texture as large as possible within its surface without cropping
@@ -106,10 +106,6 @@ function getByteLength( width, height, format, type ) {
106
106
  // https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml
107
107
  case AlphaFormat:
108
108
  return width * height;
109
- case LuminanceFormat:
110
- return width * height;
111
- case LuminanceAlphaFormat:
112
- return width * height * 2;
113
109
  case RedFormat:
114
110
  return ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;
115
111
  case RedIntegerFormat: