super-three 0.152.0 → 0.154.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 (339) hide show
  1. package/build/three.cjs +778 -557
  2. package/build/three.js +778 -557
  3. package/build/three.min.js +1 -1
  4. package/build/three.module.js +769 -539
  5. package/build/three.module.min.js +1 -1
  6. package/examples/jsm/cameras/CinematicCamera.js +1 -2
  7. package/examples/jsm/capabilities/WebGPU.js +15 -1
  8. package/examples/jsm/controls/ArcballControls.js +2 -1
  9. package/examples/jsm/controls/FlyControls.js +25 -9
  10. package/examples/jsm/controls/OrbitControls.js +5 -1
  11. package/examples/jsm/csm/CSM.js +1 -3
  12. package/examples/jsm/effects/AnaglyphEffect.js +6 -20
  13. package/examples/jsm/effects/OutlineEffect.js +1 -1
  14. package/examples/jsm/effects/ParallaxBarrierEffect.js +3 -0
  15. package/examples/jsm/environments/RoomEnvironment.js +6 -2
  16. package/examples/jsm/exporters/GLTFExporter.js +74 -2
  17. package/examples/jsm/exporters/USDZExporter.js +170 -129
  18. package/examples/jsm/helpers/ViewHelper.js +1 -1
  19. package/examples/jsm/lines/LineMaterial.js +1 -1
  20. package/examples/jsm/loaders/3DMLoader.js +1 -1
  21. package/examples/jsm/loaders/3MFLoader.js +5 -1
  22. package/examples/jsm/loaders/AMFLoader.js +5 -1
  23. package/examples/jsm/loaders/ColladaLoader.js +4 -1
  24. package/examples/jsm/loaders/DRACOLoader.js +2 -0
  25. package/examples/jsm/loaders/FBXLoader.js +9 -2
  26. package/examples/jsm/loaders/GLTFLoader.js +230 -94
  27. package/examples/jsm/loaders/KTX2Loader.js +106 -47
  28. package/examples/jsm/loaders/LDrawLoader.js +4 -7
  29. package/examples/jsm/loaders/MMDLoader.js +40 -13
  30. package/examples/jsm/loaders/PCDLoader.js +25 -10
  31. package/examples/jsm/loaders/PDBLoader.js +7 -2
  32. package/examples/jsm/loaders/PLYLoader.js +30 -8
  33. package/examples/jsm/loaders/STLLoader.js +8 -3
  34. package/examples/jsm/loaders/VRMLLoader.js +55 -7
  35. package/examples/jsm/loaders/VTKLoader.js +12 -4
  36. package/examples/jsm/loaders/XYZLoader.js +9 -3
  37. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -2
  38. package/examples/jsm/math/Lut.js +5 -4
  39. package/examples/jsm/math/MeshSurfaceSampler.js +82 -37
  40. package/examples/jsm/misc/GPUComputationRenderer.js +1 -0
  41. package/examples/jsm/misc/VolumeSlice.js +3 -1
  42. package/examples/jsm/nodes/Nodes.js +22 -16
  43. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +99 -0
  44. package/examples/jsm/nodes/accessors/BufferNode.js +2 -2
  45. package/examples/jsm/nodes/accessors/CameraNode.js +25 -4
  46. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +7 -1
  47. package/examples/jsm/nodes/accessors/InstanceNode.js +29 -12
  48. package/examples/jsm/nodes/accessors/MaterialNode.js +55 -47
  49. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +2 -2
  50. package/examples/jsm/nodes/accessors/ModelNode.js +3 -1
  51. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +4 -9
  52. package/examples/jsm/nodes/accessors/MorphNode.js +70 -0
  53. package/examples/jsm/nodes/accessors/NormalNode.js +3 -2
  54. package/examples/jsm/nodes/accessors/Object3DNode.js +10 -2
  55. package/examples/jsm/nodes/accessors/ReferenceNode.js +2 -2
  56. package/examples/jsm/nodes/accessors/SceneNode.js +46 -0
  57. package/examples/jsm/nodes/accessors/SkinningNode.js +43 -62
  58. package/examples/jsm/nodes/accessors/StorageBufferNode.js +2 -2
  59. package/examples/jsm/nodes/accessors/TangentNode.js +2 -2
  60. package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -0
  61. package/examples/jsm/nodes/accessors/TextureNode.js +68 -6
  62. package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -0
  63. package/examples/jsm/nodes/accessors/UVNode.js +1 -1
  64. package/examples/jsm/nodes/code/CodeNode.js +3 -0
  65. package/examples/jsm/nodes/code/FunctionNode.js +25 -4
  66. package/examples/jsm/nodes/core/AttributeNode.js +1 -1
  67. package/examples/jsm/nodes/core/BypassNode.js +2 -2
  68. package/examples/jsm/nodes/core/ContextNode.js +2 -0
  69. package/examples/jsm/nodes/core/IndexNode.js +66 -0
  70. package/examples/jsm/nodes/core/LightingModel.js +2 -1
  71. package/examples/jsm/nodes/core/Node.js +13 -16
  72. package/examples/jsm/nodes/core/NodeAttribute.js +2 -1
  73. package/examples/jsm/nodes/core/NodeBuilder.js +86 -8
  74. package/examples/jsm/nodes/core/NodeUtils.js +10 -0
  75. package/examples/jsm/nodes/core/PropertyNode.js +6 -2
  76. package/examples/jsm/nodes/core/StackNode.js +8 -1
  77. package/examples/jsm/nodes/core/UniformNode.js +1 -1
  78. package/examples/jsm/nodes/core/VarNode.js +1 -3
  79. package/examples/jsm/nodes/display/BlendModeNode.js +9 -9
  80. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +7 -7
  81. package/examples/jsm/nodes/display/ColorSpaceNode.js +50 -49
  82. package/examples/jsm/nodes/display/NormalMapNode.js +3 -3
  83. package/examples/jsm/nodes/display/ToneMappingNode.js +24 -15
  84. package/examples/jsm/nodes/display/ViewportDepthNode.js +69 -0
  85. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +34 -0
  86. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +7 -6
  87. package/examples/jsm/nodes/display/ViewportTextureNode.js +33 -19
  88. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +5 -5
  89. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -8
  90. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  91. package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +43 -0
  92. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +4 -4
  93. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +2 -2
  94. package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -0
  95. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +2 -4
  96. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  97. package/examples/jsm/nodes/functions/PhongLightingModel.js +7 -7
  98. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +132 -19
  99. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +2 -2
  100. package/examples/jsm/nodes/functions/material/getRoughness.js +3 -3
  101. package/examples/jsm/nodes/geometry/RangeNode.js +33 -51
  102. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +6 -3
  103. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -2
  104. package/examples/jsm/nodes/lighting/EnvironmentNode.js +107 -62
  105. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +2 -2
  106. package/examples/jsm/nodes/lighting/LightUtils.js +2 -2
  107. package/examples/jsm/nodes/lighting/LightingContextNode.js +17 -15
  108. package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
  109. package/examples/jsm/nodes/lighting/SpotLightNode.js +3 -3
  110. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -15
  111. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -15
  112. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -10
  113. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -9
  114. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +41 -0
  115. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +1 -14
  116. package/examples/jsm/nodes/materials/NodeMaterial.js +119 -29
  117. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +0 -9
  118. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -7
  119. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +3 -3
  120. package/examples/jsm/nodes/materialx/lib/mx_noise.js +14 -14
  121. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +4 -4
  122. package/examples/jsm/nodes/math/MathNode.js +6 -0
  123. package/examples/jsm/nodes/math/OperatorNode.js +1 -1
  124. package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
  125. package/examples/jsm/nodes/shadernode/ShaderNode.js +60 -33
  126. package/examples/jsm/nodes/utils/EquirectUVNode.js +2 -3
  127. package/examples/jsm/nodes/utils/LoopNode.js +186 -0
  128. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +1 -1
  129. package/examples/jsm/objects/GroundProjectedSkybox.js +1 -1
  130. package/examples/jsm/objects/Lensflare.js +3 -4
  131. package/examples/jsm/objects/MarchingCubes.js +5 -1
  132. package/examples/jsm/objects/Reflector.js +4 -1
  133. package/examples/jsm/objects/Refractor.js +1 -1
  134. package/examples/jsm/objects/Sky.js +1 -1
  135. package/examples/jsm/objects/Water.js +2 -1
  136. package/examples/jsm/objects/Water2.js +1 -1
  137. package/examples/jsm/offscreen/scene.js +1 -0
  138. package/examples/jsm/physics/RapierPhysics.js +93 -133
  139. package/examples/jsm/postprocessing/AfterimagePass.js +3 -0
  140. package/examples/jsm/postprocessing/BloomPass.js +7 -2
  141. package/examples/jsm/postprocessing/BokehPass.js +3 -2
  142. package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
  143. package/examples/jsm/postprocessing/EffectComposer.js +4 -1
  144. package/examples/jsm/postprocessing/FilmPass.js +1 -0
  145. package/examples/jsm/postprocessing/OutlinePass.js +8 -9
  146. package/examples/jsm/postprocessing/OutputPass.js +72 -0
  147. package/examples/jsm/postprocessing/RenderPixelatedPass.js +4 -3
  148. package/examples/jsm/postprocessing/SAOPass.js +4 -2
  149. package/examples/jsm/postprocessing/SMAAPass.js +5 -2
  150. package/examples/jsm/postprocessing/SSAARenderPass.js +5 -13
  151. package/examples/jsm/postprocessing/SSAOPass.js +4 -2
  152. package/examples/jsm/postprocessing/SSRPass.js +3 -1
  153. package/examples/jsm/postprocessing/SavePass.js +5 -2
  154. package/examples/jsm/postprocessing/ShaderPass.js +1 -0
  155. package/examples/jsm/postprocessing/TAARenderPass.js +17 -4
  156. package/examples/jsm/postprocessing/TexturePass.js +2 -1
  157. package/examples/jsm/postprocessing/UnrealBloomPass.js +13 -13
  158. package/examples/jsm/renderers/{webgpu/WebGPUAnimation.js → common/Animation.js} +2 -2
  159. package/examples/jsm/renderers/common/Attributes.js +75 -0
  160. package/examples/jsm/renderers/common/Backend.js +162 -0
  161. package/examples/jsm/renderers/common/Background.js +134 -0
  162. package/examples/jsm/renderers/common/Binding.js +11 -0
  163. package/examples/jsm/renderers/common/Bindings.js +169 -0
  164. package/examples/jsm/renderers/common/Buffer.js +38 -0
  165. package/examples/jsm/renderers/{webgpu/WebGPUBufferUtils.js → common/BufferUtils.js} +2 -2
  166. package/examples/jsm/renderers/{webgpu/WebGPUWeakMap.js → common/ChainMap.js} +11 -5
  167. package/examples/jsm/renderers/common/ComputePipeline.js +17 -0
  168. package/examples/jsm/renderers/common/Constants.js +14 -0
  169. package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -0
  170. package/examples/jsm/renderers/common/DataMap.js +54 -0
  171. package/examples/jsm/renderers/{webgpu/WebGPUGeometries.js → common/Geometries.js} +38 -37
  172. package/examples/jsm/renderers/{webgpu/WebGPUInfo.js → common/Info.js} +2 -3
  173. package/examples/jsm/renderers/common/Pipeline.js +13 -0
  174. package/examples/jsm/renderers/common/Pipelines.js +321 -0
  175. package/examples/jsm/renderers/common/ProgrammableStage.js +18 -0
  176. package/examples/jsm/renderers/common/RenderContext.js +37 -0
  177. package/examples/jsm/renderers/common/RenderContexts.js +38 -0
  178. package/examples/jsm/renderers/{webgpu/WebGPURenderLists.js → common/RenderList.js} +2 -39
  179. package/examples/jsm/renderers/common/RenderLists.js +38 -0
  180. package/examples/jsm/renderers/common/RenderObject.js +113 -0
  181. package/examples/jsm/renderers/common/RenderObjects.js +92 -0
  182. package/examples/jsm/renderers/common/RenderPipeline.js +16 -0
  183. package/examples/jsm/renderers/{webgpu/WebGPURenderTarget.js → common/RenderTarget.js} +2 -2
  184. package/examples/jsm/renderers/common/Renderer.js +864 -0
  185. package/examples/jsm/renderers/common/SampledTexture.js +80 -0
  186. package/examples/jsm/renderers/common/Sampler.js +18 -0
  187. package/examples/jsm/renderers/common/StorageBuffer.js +17 -0
  188. package/examples/jsm/renderers/common/Textures.js +206 -0
  189. package/examples/jsm/renderers/{webgpu/WebGPUUniform.js → common/Uniform.js} +13 -9
  190. package/examples/jsm/renderers/common/UniformBuffer.js +15 -0
  191. package/examples/jsm/renderers/{webgpu/WebGPUUniformsGroup.js → common/UniformsGroup.js} +13 -13
  192. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodes.js → common/nodes/NodeRender.js} +3 -3
  193. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampledTexture.js → common/nodes/NodeSampledTexture.js} +4 -4
  194. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampler.js → common/nodes/NodeSampler.js} +3 -3
  195. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeUniform.js → common/nodes/NodeUniform.js} +1 -1
  196. package/examples/jsm/renderers/common/nodes/Nodes.js +319 -0
  197. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +340 -0
  198. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +23 -19
  199. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +847 -0
  200. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +15 -1131
  201. package/examples/jsm/renderers/webgpu/nodes/{WebGPUNodeBuilder.js → WGSLNodeBuilder.js} +75 -45
  202. package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeFunction.js +2 -2
  203. package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeParser.js +1 -1
  204. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +255 -0
  205. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +145 -0
  206. package/examples/jsm/renderers/webgpu/{constants.js → utils/WebGPUConstants.js} +6 -7
  207. package/examples/jsm/renderers/webgpu/{WebGPURenderPipeline.js → utils/WebGPUPipelineUtils.js} +154 -247
  208. package/examples/jsm/renderers/webgpu/{WebGPUTextureUtils.js → utils/WebGPUTextureMipmapUtils.js} +3 -25
  209. package/examples/jsm/renderers/webgpu/{WebGPUTextures.js → utils/WebGPUTextureUtils.js} +392 -505
  210. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +92 -0
  211. package/examples/jsm/shaders/BleachBypassShader.js +2 -0
  212. package/examples/jsm/shaders/BlendShader.js +1 -2
  213. package/examples/jsm/shaders/BokehShader2.js +3 -0
  214. package/examples/jsm/shaders/ColorifyShader.js +2 -0
  215. package/examples/jsm/shaders/ConvolutionShader.js +2 -0
  216. package/examples/jsm/shaders/CopyShader.js +4 -2
  217. package/examples/jsm/shaders/DotScreenShader.js +2 -0
  218. package/examples/jsm/shaders/ExposureShader.js +44 -0
  219. package/examples/jsm/shaders/FilmShader.js +2 -0
  220. package/examples/jsm/shaders/GammaCorrectionShader.js +2 -0
  221. package/examples/jsm/shaders/HorizontalBlurShader.js +2 -0
  222. package/examples/jsm/shaders/OutputShader.js +61 -0
  223. package/examples/jsm/shaders/RGBShiftShader.js +2 -0
  224. package/examples/jsm/shaders/SepiaShader.js +2 -0
  225. package/examples/jsm/shaders/ToonShader.js +13 -5
  226. package/examples/jsm/shaders/VerticalBlurShader.js +2 -0
  227. package/examples/jsm/shaders/VignetteShader.js +2 -0
  228. package/examples/jsm/shaders/WaterRefractionShader.js +5 -2
  229. package/examples/jsm/utils/BufferGeometryUtils.js +17 -1
  230. package/examples/jsm/utils/TextureUtils.js +86 -0
  231. package/examples/jsm/webxr/OculusHandPointerModel.js +34 -13
  232. package/examples/jsm/webxr/XRHandPrimitiveModel.js +1 -0
  233. package/examples/jsm/webxr/XRPlanes.js +100 -0
  234. package/package.json +3 -1
  235. package/src/Three.Legacy.js +0 -228
  236. package/src/audio/PositionalAudio.js +8 -0
  237. package/src/cameras/Camera.js +5 -0
  238. package/src/cameras/CubeCamera.js +76 -13
  239. package/src/cameras/OrthographicCamera.js +1 -1
  240. package/src/cameras/PerspectiveCamera.js +1 -1
  241. package/src/constants.js +13 -1
  242. package/src/core/BufferAttribute.js +3 -25
  243. package/src/core/BufferGeometry.js +1 -8
  244. package/src/core/Object3D.js +1 -1
  245. package/src/extras/core/Curve.js +1 -1
  246. package/src/loaders/CubeTextureLoader.js +2 -0
  247. package/src/loaders/Loader.js +2 -0
  248. package/src/loaders/MaterialLoader.js +5 -0
  249. package/src/loaders/ObjectLoader.js +1 -0
  250. package/src/materials/Material.js +13 -1
  251. package/src/materials/MeshPhysicalMaterial.js +32 -6
  252. package/src/math/Color.js +16 -11
  253. package/src/math/Frustum.js +16 -2
  254. package/src/math/MathUtils.js +16 -0
  255. package/src/math/Matrix3.js +26 -6
  256. package/src/math/Matrix4.js +74 -19
  257. package/src/objects/InstancedMesh.js +3 -0
  258. package/src/objects/Mesh.js +14 -10
  259. package/src/objects/Skeleton.js +1 -3
  260. package/src/objects/SkinnedMesh.js +36 -8
  261. package/src/renderers/WebGLRenderer.js +126 -21
  262. package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -0
  263. package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -0
  264. package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +6 -0
  265. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -0
  266. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +26 -3
  267. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +9 -1
  268. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +26 -0
  269. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -2
  270. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +10 -2
  271. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +1 -1
  272. package/src/renderers/shaders/ShaderChunk/{output_fragment.glsl.js → opaque_fragment.glsl.js} +1 -2
  273. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  274. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +3 -3
  275. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +10 -5
  276. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +6 -1
  277. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +7 -1
  278. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +6 -1
  279. package/src/renderers/shaders/ShaderChunk.js +10 -6
  280. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
  281. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -1
  282. package/src/renderers/shaders/ShaderLib/cube.glsl.js +1 -1
  283. package/src/renderers/shaders/ShaderLib/depth.glsl.js +2 -0
  284. package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +2 -0
  285. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -1
  286. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -2
  287. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +4 -2
  288. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +4 -2
  289. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +4 -2
  290. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +4 -2
  291. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +12 -2
  292. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +4 -2
  293. package/src/renderers/shaders/ShaderLib/points.glsl.js +4 -2
  294. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  295. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +4 -2
  296. package/src/renderers/shaders/ShaderLib.js +4 -1
  297. package/src/renderers/shaders/UniformsLib.js +2 -0
  298. package/src/renderers/webgl/WebGLBindingStates.js +13 -5
  299. package/src/renderers/webgl/WebGLGeometries.js +12 -0
  300. package/src/renderers/webgl/WebGLInfo.js +0 -1
  301. package/src/renderers/webgl/WebGLMaterials.js +18 -0
  302. package/src/renderers/webgl/WebGLObjects.js +23 -3
  303. package/src/renderers/webgl/WebGLProgram.js +43 -5
  304. package/src/renderers/webgl/WebGLPrograms.js +19 -7
  305. package/src/renderers/webgl/WebGLTextures.js +19 -1
  306. package/src/renderers/webvr/WebVRManager.js +12 -0
  307. package/src/renderers/webxr/WebXRManager.js +39 -99
  308. package/src/scenes/Scene.js +0 -14
  309. package/src/textures/DepthTexture.js +22 -0
  310. package/src/textures/FramebufferTexture.js +1 -3
  311. package/src/textures/Source.js +4 -0
  312. package/src/textures/Texture.js +1 -1
  313. package/examples/jsm/exporters/ColladaExporter.js +0 -725
  314. package/examples/jsm/geometries/LightningStrike.js +0 -1017
  315. package/examples/jsm/loaders/PRWMLoader.js +0 -299
  316. package/examples/jsm/nodes/core/InstanceIndexNode.js +0 -26
  317. package/examples/jsm/objects/LightningStorm.js +0 -245
  318. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -361
  319. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +0 -197
  320. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +0 -190
  321. package/examples/jsm/renderers/webgpu/WebGPUBinding.js +0 -22
  322. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +0 -270
  323. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +0 -43
  324. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +0 -78
  325. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +0 -22
  326. package/examples/jsm/renderers/webgpu/WebGPUProperties.js +0 -44
  327. package/examples/jsm/renderers/webgpu/WebGPURenderObject.js +0 -40
  328. package/examples/jsm/renderers/webgpu/WebGPURenderObjects.js +0 -50
  329. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +0 -274
  330. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +0 -54
  331. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +0 -75
  332. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +0 -29
  333. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +0 -20
  334. package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +0 -38
  335. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +0 -18
  336. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +0 -88
  337. package/examples/jsm/shaders/ToneMapShader.js +0 -73
  338. /package/src/renderers/shaders/ShaderChunk/{encodings_fragment.glsl.js → colorspace_fragment.glsl.js} +0 -0
  339. /package/src/renderers/shaders/ShaderChunk/{encodings_pars_fragment.glsl.js → colorspace_pars_fragment.glsl.js} +0 -0
@@ -0,0 +1,100 @@
1
+ import {
2
+ BoxGeometry,
3
+ Matrix4,
4
+ Mesh,
5
+ MeshBasicMaterial,
6
+ Object3D
7
+ } from 'three';
8
+
9
+ class XRPlanes extends Object3D {
10
+
11
+ constructor( renderer ) {
12
+
13
+ super();
14
+
15
+ const matrix = new Matrix4();
16
+
17
+ const currentPlanes = new Map();
18
+
19
+ const xr = renderer.xr;
20
+
21
+ xr.addEventListener( 'planesdetected', event => {
22
+
23
+ const frame = event.data;
24
+ const planes = frame.detectedPlanes;
25
+
26
+ const referenceSpace = xr.getReferenceSpace();
27
+
28
+ let planeschanged = false;
29
+
30
+ for ( const [ plane, mesh ] of currentPlanes ) {
31
+
32
+ if ( planes.has( plane ) === false ) {
33
+
34
+ mesh.geometry.dispose();
35
+ mesh.material.dispose();
36
+ this.remove( mesh );
37
+
38
+ currentPlanes.delete( plane );
39
+
40
+ planeschanged = true;
41
+
42
+ }
43
+
44
+ }
45
+
46
+ for ( const plane of planes ) {
47
+
48
+ if ( currentPlanes.has( plane ) === false ) {
49
+
50
+ const pose = frame.getPose( plane.planeSpace, referenceSpace );
51
+ matrix.fromArray( pose.transform.matrix );
52
+
53
+ const polygon = plane.polygon;
54
+
55
+ let minX = Number.MAX_SAFE_INTEGER;
56
+ let maxX = Number.MIN_SAFE_INTEGER;
57
+ let minZ = Number.MAX_SAFE_INTEGER;
58
+ let maxZ = Number.MIN_SAFE_INTEGER;
59
+
60
+ for ( const point of polygon ) {
61
+
62
+ minX = Math.min( minX, point.x );
63
+ maxX = Math.max( maxX, point.x );
64
+ minZ = Math.min( minZ, point.z );
65
+ maxZ = Math.max( maxZ, point.z );
66
+
67
+ }
68
+
69
+ const width = maxX - minX;
70
+ const height = maxZ - minZ;
71
+
72
+ const geometry = new BoxGeometry( width, 0.01, height );
73
+ const material = new MeshBasicMaterial( { color: 0xffffff * Math.random() } );
74
+
75
+ const mesh = new Mesh( geometry, material );
76
+ mesh.position.setFromMatrixPosition( matrix );
77
+ mesh.quaternion.setFromRotationMatrix( matrix );
78
+ this.add( mesh );
79
+
80
+ currentPlanes.set( plane, mesh );
81
+
82
+ planeschanged = true;
83
+
84
+ }
85
+
86
+ }
87
+
88
+ if ( planeschanged ) {
89
+
90
+ this.dispatchEvent( { type: 'planeschanged' } );
91
+
92
+ }
93
+
94
+ } );
95
+
96
+ }
97
+
98
+ }
99
+
100
+ export { XRPlanes };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-three",
3
- "version": "0.152.0",
3
+ "version": "0.154.1",
4
4
  "description": "JavaScript 3D library",
5
5
  "type": "module",
6
6
  "main": "./build/three.js",
@@ -84,6 +84,7 @@
84
84
  },
85
85
  "homepage": "https://threejs.org/",
86
86
  "devDependencies": {
87
+ "@puppeteer/browsers": "^1.4.1",
87
88
  "@rollup/plugin-node-resolve": "^15.0.1",
88
89
  "@rollup/plugin-terser": "^0.4.0",
89
90
  "chalk": "^5.2.0",
@@ -95,6 +96,7 @@
95
96
  "eslint-plugin-import": "^2.27.5",
96
97
  "failonlyreporter": "^1.0.0",
97
98
  "jimp": "^0.22.7",
99
+ "magic-string": "^0.30.0",
98
100
  "pixelmatch": "^5.3.0",
99
101
  "puppeteer-core": "^19.8.1",
100
102
  "qunit": "^2.19.4",
@@ -1,229 +1 @@
1
- import { BoxGeometry } from './geometries/BoxGeometry.js';
2
- import { CapsuleGeometry } from './geometries/CapsuleGeometry.js';
3
- import { CircleGeometry } from './geometries/CircleGeometry.js';
4
- import { ConeGeometry } from './geometries/ConeGeometry.js';
5
- import { CylinderGeometry } from './geometries/CylinderGeometry.js';
6
- import { DodecahedronGeometry } from './geometries/DodecahedronGeometry.js';
7
- import { ExtrudeGeometry } from './geometries/ExtrudeGeometry.js';
8
- import { IcosahedronGeometry } from './geometries/IcosahedronGeometry.js';
9
- import { LatheGeometry } from './geometries/LatheGeometry.js';
10
- import { OctahedronGeometry } from './geometries/OctahedronGeometry.js';
11
- import { PlaneGeometry } from './geometries/PlaneGeometry.js';
12
- import { PolyhedronGeometry } from './geometries/PolyhedronGeometry.js';
13
- import { RingGeometry } from './geometries/RingGeometry.js';
14
- import { ShapeGeometry } from './geometries/ShapeGeometry.js';
15
- import { SphereGeometry } from './geometries/SphereGeometry.js';
16
- import { TetrahedronGeometry } from './geometries/TetrahedronGeometry.js';
17
- import { TorusGeometry } from './geometries/TorusGeometry.js';
18
- import { TorusKnotGeometry } from './geometries/TorusKnotGeometry.js';
19
- import { TubeGeometry } from './geometries/TubeGeometry.js';
20
1
 
21
- export class BoxBufferGeometry extends BoxGeometry { // @deprecated, r144
22
-
23
- constructor( width, height, depth, widthSegments, heightSegments, depthSegments ) {
24
-
25
- console.warn( 'THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry.' );
26
- super( width, height, depth, widthSegments, heightSegments, depthSegments );
27
-
28
-
29
- }
30
-
31
- }
32
-
33
- export class CapsuleBufferGeometry extends CapsuleGeometry { // @deprecated, r144
34
-
35
- constructor( radius, length, capSegments, radialSegments ) {
36
-
37
- console.warn( 'THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry.' );
38
- super( radius, length, capSegments, radialSegments );
39
-
40
- }
41
-
42
- }
43
-
44
- export class CircleBufferGeometry extends CircleGeometry { // @deprecated, r144
45
-
46
- constructor( radius, segments, thetaStart, thetaLength ) {
47
-
48
- console.warn( 'THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry.' );
49
- super( radius, segments, thetaStart, thetaLength );
50
-
51
- }
52
-
53
- }
54
-
55
- export class ConeBufferGeometry extends ConeGeometry { // @deprecated, r144
56
-
57
- constructor( radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) {
58
-
59
- console.warn( 'THREE.ConeBufferGeometry has been renamed to THREE.ConeGeometry.' );
60
- super( radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );
61
-
62
- }
63
-
64
- }
65
-
66
- export class CylinderBufferGeometry extends CylinderGeometry { // @deprecated, r144
67
-
68
- constructor( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) {
69
-
70
- console.warn( 'THREE.CylinderBufferGeometry has been renamed to THREE.CylinderGeometry.' );
71
- super( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );
72
-
73
- }
74
-
75
- }
76
-
77
- export class DodecahedronBufferGeometry extends DodecahedronGeometry { // @deprecated, r144
78
-
79
- constructor( radius, detail ) {
80
-
81
- console.warn( 'THREE.DodecahedronBufferGeometry has been renamed to THREE.DodecahedronGeometry.' );
82
- super( radius, detail );
83
-
84
- }
85
-
86
- }
87
-
88
- export class ExtrudeBufferGeometry extends ExtrudeGeometry { // @deprecated, r144
89
-
90
- constructor( shapes, options ) {
91
-
92
- console.warn( 'THREE.ExtrudeBufferGeometry has been renamed to THREE.ExtrudeGeometry.' );
93
- super( shapes, options );
94
-
95
- }
96
-
97
- }
98
-
99
- export class IcosahedronBufferGeometry extends IcosahedronGeometry { // @deprecated, r144
100
-
101
- constructor( radius, detail ) {
102
-
103
- console.warn( 'THREE.IcosahedronBufferGeometry has been renamed to THREE.IcosahedronGeometry.' );
104
- super( radius, detail );
105
-
106
- }
107
-
108
- }
109
-
110
- export class LatheBufferGeometry extends LatheGeometry { // @deprecated, r144
111
-
112
- constructor( points, segments, phiStart, phiLength ) {
113
-
114
- console.warn( 'THREE.LatheBufferGeometry has been renamed to THREE.LatheGeometry.' );
115
- super( points, segments, phiStart, phiLength );
116
-
117
- }
118
-
119
- }
120
-
121
- export class OctahedronBufferGeometry extends OctahedronGeometry { // @deprecated, r144
122
-
123
- constructor( radius, detail ) {
124
-
125
- console.warn( 'THREE.OctahedronBufferGeometry has been renamed to THREE.OctahedronGeometry.' );
126
- super( radius, detail );
127
-
128
- }
129
-
130
- }
131
-
132
- export class PlaneBufferGeometry extends PlaneGeometry { // @deprecated, r144
133
-
134
- constructor( width, height, widthSegments, heightSegments ) {
135
-
136
- console.warn( 'THREE.PlaneBufferGeometry has been renamed to THREE.PlaneGeometry.' );
137
- super( width, height, widthSegments, heightSegments );
138
-
139
- }
140
-
141
- }
142
-
143
- export class PolyhedronBufferGeometry extends PolyhedronGeometry { // @deprecated, r144
144
-
145
- constructor( vertices, indices, radius, detail ) {
146
-
147
- console.warn( 'THREE.PolyhedronBufferGeometry has been renamed to THREE.PolyhedronGeometry.' );
148
- super( vertices, indices, radius, detail );
149
-
150
- }
151
-
152
- }
153
-
154
- export class RingBufferGeometry extends RingGeometry { // @deprecated, r144
155
-
156
- constructor( innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength ) {
157
-
158
- console.warn( 'THREE.RingBufferGeometry has been renamed to THREE.RingGeometry.' );
159
- super( innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength );
160
-
161
- }
162
-
163
- }
164
-
165
- export class ShapeBufferGeometry extends ShapeGeometry { // @deprecated, r144
166
-
167
- constructor( shapes, curveSegments ) {
168
-
169
- console.warn( 'THREE.ShapeBufferGeometry has been renamed to THREE.ShapeGeometry.' );
170
- super( shapes, curveSegments );
171
-
172
- }
173
-
174
- }
175
-
176
- export class SphereBufferGeometry extends SphereGeometry { // @deprecated, r144
177
-
178
- constructor( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength ) {
179
-
180
- console.warn( 'THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry.' );
181
- super( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength );
182
-
183
- }
184
-
185
- }
186
-
187
- export class TetrahedronBufferGeometry extends TetrahedronGeometry { // @deprecated, r144
188
-
189
- constructor( radius, detail ) {
190
-
191
- console.warn( 'THREE.TetrahedronBufferGeometry has been renamed to THREE.TetrahedronGeometry.' );
192
- super( radius, detail );
193
-
194
- }
195
-
196
- }
197
-
198
- export class TorusBufferGeometry extends TorusGeometry { // @deprecated, r144
199
-
200
- constructor( radius, tube, radialSegments, tubularSegments, arc ) {
201
-
202
- console.warn( 'THREE.TorusBufferGeometry has been renamed to THREE.TorusGeometry.' );
203
- super( radius, tube, radialSegments, tubularSegments, arc );
204
-
205
- }
206
-
207
- }
208
-
209
- export class TorusKnotBufferGeometry extends TorusKnotGeometry { // @deprecated, r144
210
-
211
- constructor( radius, tube, tubularSegments, radialSegments, p, q ) {
212
-
213
- console.warn( 'THREE.TorusKnotBufferGeometry has been renamed to THREE.TorusKnotGeometry.' );
214
- super( radius, tube, tubularSegments, radialSegments, p, q );
215
-
216
- }
217
-
218
- }
219
-
220
- export class TubeBufferGeometry extends TubeGeometry { // @deprecated, r144
221
-
222
- constructor( path, tubularSegments, radius, radialSegments, closed ) {
223
-
224
- console.warn( 'THREE.TubeBufferGeometry has been renamed to THREE.TubeGeometry.' );
225
- super( path, tubularSegments, radius, radialSegments, closed );
226
-
227
- }
228
-
229
- }
@@ -19,6 +19,14 @@ class PositionalAudio extends Audio {
19
19
 
20
20
  }
21
21
 
22
+ connect() {
23
+
24
+ super.connect();
25
+
26
+ this.panner.connect( this.gain );
27
+
28
+ }
29
+
22
30
  disconnect() {
23
31
 
24
32
  super.disconnect();
@@ -1,3 +1,4 @@
1
+ import { WebGLCoordinateSystem } from '../constants.js';
1
2
  import { Matrix4 } from '../math/Matrix4.js';
2
3
  import { Object3D } from '../core/Object3D.js';
3
4
 
@@ -16,6 +17,8 @@ class Camera extends Object3D {
16
17
  this.projectionMatrix = new Matrix4();
17
18
  this.projectionMatrixInverse = new Matrix4();
18
19
 
20
+ this.coordinateSystem = WebGLCoordinateSystem;
21
+
19
22
  }
20
23
 
21
24
  copy( source, recursive ) {
@@ -27,6 +30,8 @@ class Camera extends Object3D {
27
30
  this.projectionMatrix.copy( source.projectionMatrix );
28
31
  this.projectionMatrixInverse.copy( source.projectionMatrixInverse );
29
32
 
33
+ this.coordinateSystem = source.coordinateSystem;
34
+
30
35
  return this;
31
36
 
32
37
  }
@@ -1,4 +1,4 @@
1
- import { NoToneMapping } from '../constants.js';
1
+ import { NoToneMapping, WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../constants.js';
2
2
  import { Object3D } from '../core/Object3D.js';
3
3
  import { PerspectiveCamera } from './PerspectiveCamera.js';
4
4
 
@@ -14,51 +14,114 @@ class CubeCamera extends Object3D {
14
14
  this.type = 'CubeCamera';
15
15
 
16
16
  this.renderTarget = renderTarget;
17
+ this.coordinateSystem = null;
17
18
 
18
19
  const cameraPX = new PerspectiveCamera( fov, aspect, near, far );
19
20
  cameraPX.layers = this.layers;
20
- cameraPX.up.set( 0, 1, 0 );
21
- cameraPX.lookAt( 1, 0, 0 );
22
21
  this.add( cameraPX );
23
22
 
24
23
  const cameraNX = new PerspectiveCamera( fov, aspect, near, far );
25
24
  cameraNX.layers = this.layers;
26
- cameraNX.up.set( 0, 1, 0 );
27
- cameraNX.lookAt( - 1, 0, 0 );
28
25
  this.add( cameraNX );
29
26
 
30
27
  const cameraPY = new PerspectiveCamera( fov, aspect, near, far );
31
28
  cameraPY.layers = this.layers;
32
- cameraPY.up.set( 0, 0, - 1 );
33
- cameraPY.lookAt( 0, 1, 0 );
34
29
  this.add( cameraPY );
35
30
 
36
31
  const cameraNY = new PerspectiveCamera( fov, aspect, near, far );
37
32
  cameraNY.layers = this.layers;
38
- cameraNY.up.set( 0, 0, 1 );
39
- cameraNY.lookAt( 0, - 1, 0 );
40
33
  this.add( cameraNY );
41
34
 
42
35
  const cameraPZ = new PerspectiveCamera( fov, aspect, near, far );
43
36
  cameraPZ.layers = this.layers;
44
- cameraPZ.up.set( 0, 1, 0 );
45
- cameraPZ.lookAt( 0, 0, 1 );
46
37
  this.add( cameraPZ );
47
38
 
48
39
  const cameraNZ = new PerspectiveCamera( fov, aspect, near, far );
49
40
  cameraNZ.layers = this.layers;
50
- cameraNZ.up.set( 0, 1, 0 );
51
- cameraNZ.lookAt( 0, 0, - 1 );
52
41
  this.add( cameraNZ );
53
42
 
54
43
  }
55
44
 
45
+ updateCoordinateSystem() {
46
+
47
+ const coordinateSystem = this.coordinateSystem;
48
+
49
+ const cameras = this.children.concat();
50
+
51
+ const [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;
52
+
53
+ for ( const camera of cameras ) this.remove( camera );
54
+
55
+ if ( coordinateSystem === WebGLCoordinateSystem ) {
56
+
57
+ cameraPX.up.set( 0, 1, 0 );
58
+ cameraPX.lookAt( 1, 0, 0 );
59
+
60
+ cameraNX.up.set( 0, 1, 0 );
61
+ cameraNX.lookAt( - 1, 0, 0 );
62
+
63
+ cameraPY.up.set( 0, 0, - 1 );
64
+ cameraPY.lookAt( 0, 1, 0 );
65
+
66
+ cameraNY.up.set( 0, 0, 1 );
67
+ cameraNY.lookAt( 0, - 1, 0 );
68
+
69
+ cameraPZ.up.set( 0, 1, 0 );
70
+ cameraPZ.lookAt( 0, 0, 1 );
71
+
72
+ cameraNZ.up.set( 0, 1, 0 );
73
+ cameraNZ.lookAt( 0, 0, - 1 );
74
+
75
+ } else if ( coordinateSystem === WebGPUCoordinateSystem ) {
76
+
77
+ cameraPX.up.set( 0, - 1, 0 );
78
+ cameraPX.lookAt( - 1, 0, 0 );
79
+
80
+ cameraNX.up.set( 0, - 1, 0 );
81
+ cameraNX.lookAt( 1, 0, 0 );
82
+
83
+ cameraPY.up.set( 0, 0, 1 );
84
+ cameraPY.lookAt( 0, 1, 0 );
85
+
86
+ cameraNY.up.set( 0, 0, - 1 );
87
+ cameraNY.lookAt( 0, - 1, 0 );
88
+
89
+ cameraPZ.up.set( 0, - 1, 0 );
90
+ cameraPZ.lookAt( 0, 0, 1 );
91
+
92
+ cameraNZ.up.set( 0, - 1, 0 );
93
+ cameraNZ.lookAt( 0, 0, - 1 );
94
+
95
+ } else {
96
+
97
+ throw new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );
98
+
99
+ }
100
+
101
+ for ( const camera of cameras ) {
102
+
103
+ this.add( camera );
104
+
105
+ camera.updateMatrixWorld();
106
+
107
+ }
108
+
109
+ }
110
+
56
111
  update( renderer, scene ) {
57
112
 
58
113
  if ( this.parent === null ) this.updateMatrixWorld();
59
114
 
60
115
  const renderTarget = this.renderTarget;
61
116
 
117
+ if ( this.coordinateSystem !== renderer.coordinateSystem ) {
118
+
119
+ this.coordinateSystem = renderer.coordinateSystem;
120
+
121
+ this.updateCoordinateSystem();
122
+
123
+ }
124
+
62
125
  const [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;
63
126
 
64
127
  const currentRenderTarget = renderer.getRenderTarget();
@@ -107,7 +107,7 @@ class OrthographicCamera extends Camera {
107
107
 
108
108
  }
109
109
 
110
- this.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far );
110
+ this.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far, this.coordinateSystem );
111
111
 
112
112
  this.projectionMatrixInverse.copy( this.projectionMatrix ).invert();
113
113
 
@@ -200,7 +200,7 @@ class PerspectiveCamera extends Camera {
200
200
  const skew = this.filmOffset;
201
201
  if ( skew !== 0 ) left += near * skew / this.getFilmWidth();
202
202
 
203
- this.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far );
203
+ this.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );
204
204
 
205
205
  this.projectionMatrixInverse.copy( this.projectionMatrix ).invert();
206
206
 
package/src/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- export const REVISION = '152';
1
+ export const REVISION = '154';
2
2
 
3
3
  export const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
4
4
  export const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
@@ -173,6 +173,15 @@ export const NotEqualStencilFunc = 517;
173
173
  export const GreaterEqualStencilFunc = 518;
174
174
  export const AlwaysStencilFunc = 519;
175
175
 
176
+ export const NeverCompare = 512;
177
+ export const LessCompare = 513;
178
+ export const EqualCompare = 514;
179
+ export const LessEqualCompare = 515;
180
+ export const GreaterCompare = 516;
181
+ export const NotEqualCompare = 517;
182
+ export const GreaterEqualCompare = 518;
183
+ export const AlwaysCompare = 519;
184
+
176
185
  export const StaticDrawUsage = 35044;
177
186
  export const DynamicDrawUsage = 35048;
178
187
  export const StreamDrawUsage = 35040;
@@ -187,3 +196,6 @@ export const GLSL1 = '100';
187
196
  export const GLSL3 = '300 es';
188
197
 
189
198
  export const _SRGBAFormat = 1035; // fallback for WebGL 1
199
+
200
+ export const WebGLCoordinateSystem = 2000;
201
+ export const WebGPUCoordinateSystem = 2001;
@@ -1,7 +1,7 @@
1
1
  import { Vector3 } from '../math/Vector3.js';
2
2
  import { Vector2 } from '../math/Vector2.js';
3
3
  import { denormalize, normalize } from '../math/MathUtils.js';
4
- import { StaticDrawUsage } from '../constants.js';
4
+ import { StaticDrawUsage, FloatType } from '../constants.js';
5
5
  import { fromHalfFloat, toHalfFloat } from '../extras/DataUtils.js';
6
6
 
7
7
  const _vector = /*@__PURE__*/ new Vector3();
@@ -28,6 +28,7 @@ class BufferAttribute {
28
28
 
29
29
  this.usage = StaticDrawUsage;
30
30
  this.updateRange = { offset: 0, count: - 1 };
31
+ this.gpuType = FloatType;
31
32
 
32
33
  this.version = 0;
33
34
 
@@ -58,6 +59,7 @@ class BufferAttribute {
58
59
  this.normalized = source.normalized;
59
60
 
60
61
  this.usage = source.usage;
62
+ this.gpuType = source.gpuType;
61
63
 
62
64
  return this;
63
65
 
@@ -344,30 +346,6 @@ class BufferAttribute {
344
346
 
345
347
  }
346
348
 
347
- copyColorsArray() { // @deprecated, r144
348
-
349
- console.error( 'THREE.BufferAttribute: copyColorsArray() was removed in r144.' );
350
-
351
- }
352
-
353
- copyVector2sArray() { // @deprecated, r144
354
-
355
- console.error( 'THREE.BufferAttribute: copyVector2sArray() was removed in r144.' );
356
-
357
- }
358
-
359
- copyVector3sArray() { // @deprecated, r144
360
-
361
- console.error( 'THREE.BufferAttribute: copyVector3sArray() was removed in r144.' );
362
-
363
- }
364
-
365
- copyVector4sArray() { // @deprecated, r144
366
-
367
- console.error( 'THREE.BufferAttribute: copyVector4sArray() was removed in r144.' );
368
-
369
- }
370
-
371
349
  }
372
350
 
373
351
  //
@@ -726,13 +726,6 @@ class BufferGeometry extends EventDispatcher {
726
726
 
727
727
  }
728
728
 
729
- merge() { // @deprecated, r144
730
-
731
- console.error( 'THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeGeometries() instead.' );
732
- return this;
733
-
734
- }
735
-
736
729
  normalizeNormals() {
737
730
 
738
731
  const normals = this.attributes.normal;
@@ -855,7 +848,7 @@ class BufferGeometry extends EventDispatcher {
855
848
 
856
849
  const data = {
857
850
  metadata: {
858
- version: 4.5,
851
+ version: 4.6,
859
852
  type: 'BufferGeometry',
860
853
  generator: 'BufferGeometry.toJSON'
861
854
  }
@@ -693,7 +693,7 @@ class Object3D extends EventDispatcher {
693
693
  };
694
694
 
695
695
  output.metadata = {
696
- version: 4.5,
696
+ version: 4.6,
697
697
  type: 'Object',
698
698
  generator: 'Object3D.toJSON'
699
699
  };
@@ -389,7 +389,7 @@ class Curve {
389
389
 
390
390
  const data = {
391
391
  metadata: {
392
- version: 4.5,
392
+ version: 4.6,
393
393
  type: 'Curve',
394
394
  generator: 'Curve.toJSON'
395
395
  }
@@ -1,6 +1,7 @@
1
1
  import { ImageLoader } from './ImageLoader.js';
2
2
  import { CubeTexture } from '../textures/CubeTexture.js';
3
3
  import { Loader } from './Loader.js';
4
+ import { SRGBColorSpace } from '../constants.js';
4
5
 
5
6
  class CubeTextureLoader extends Loader {
6
7
 
@@ -13,6 +14,7 @@ class CubeTextureLoader extends Loader {
13
14
  load( urls, onLoad, onProgress, onError ) {
14
15
 
15
16
  const texture = new CubeTexture();
17
+ texture.colorSpace = SRGBColorSpace;
16
18
 
17
19
  const loader = new ImageLoader( this.manager );
18
20
  loader.setCrossOrigin( this.crossOrigin );
@@ -67,4 +67,6 @@ class Loader {
67
67
 
68
68
  }
69
69
 
70
+ Loader.DEFAULT_MATERIAL_NAME = '__DEFAULT';
71
+
70
72
  export { Loader };