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.
- package/build/three.cjs +778 -557
- package/build/three.js +778 -557
- package/build/three.min.js +1 -1
- package/build/three.module.js +769 -539
- package/build/three.module.min.js +1 -1
- package/examples/jsm/cameras/CinematicCamera.js +1 -2
- package/examples/jsm/capabilities/WebGPU.js +15 -1
- package/examples/jsm/controls/ArcballControls.js +2 -1
- package/examples/jsm/controls/FlyControls.js +25 -9
- package/examples/jsm/controls/OrbitControls.js +5 -1
- package/examples/jsm/csm/CSM.js +1 -3
- package/examples/jsm/effects/AnaglyphEffect.js +6 -20
- package/examples/jsm/effects/OutlineEffect.js +1 -1
- package/examples/jsm/effects/ParallaxBarrierEffect.js +3 -0
- package/examples/jsm/environments/RoomEnvironment.js +6 -2
- package/examples/jsm/exporters/GLTFExporter.js +74 -2
- package/examples/jsm/exporters/USDZExporter.js +170 -129
- package/examples/jsm/helpers/ViewHelper.js +1 -1
- package/examples/jsm/lines/LineMaterial.js +1 -1
- package/examples/jsm/loaders/3DMLoader.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +5 -1
- package/examples/jsm/loaders/AMFLoader.js +5 -1
- package/examples/jsm/loaders/ColladaLoader.js +4 -1
- package/examples/jsm/loaders/DRACOLoader.js +2 -0
- package/examples/jsm/loaders/FBXLoader.js +9 -2
- package/examples/jsm/loaders/GLTFLoader.js +230 -94
- package/examples/jsm/loaders/KTX2Loader.js +106 -47
- package/examples/jsm/loaders/LDrawLoader.js +4 -7
- package/examples/jsm/loaders/MMDLoader.js +40 -13
- package/examples/jsm/loaders/PCDLoader.js +25 -10
- package/examples/jsm/loaders/PDBLoader.js +7 -2
- package/examples/jsm/loaders/PLYLoader.js +30 -8
- package/examples/jsm/loaders/STLLoader.js +8 -3
- package/examples/jsm/loaders/VRMLLoader.js +55 -7
- package/examples/jsm/loaders/VTKLoader.js +12 -4
- package/examples/jsm/loaders/XYZLoader.js +9 -3
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -2
- package/examples/jsm/math/Lut.js +5 -4
- package/examples/jsm/math/MeshSurfaceSampler.js +82 -37
- package/examples/jsm/misc/GPUComputationRenderer.js +1 -0
- package/examples/jsm/misc/VolumeSlice.js +3 -1
- package/examples/jsm/nodes/Nodes.js +22 -16
- package/examples/jsm/nodes/accessors/BufferAttributeNode.js +99 -0
- package/examples/jsm/nodes/accessors/BufferNode.js +2 -2
- package/examples/jsm/nodes/accessors/CameraNode.js +25 -4
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +7 -1
- package/examples/jsm/nodes/accessors/InstanceNode.js +29 -12
- package/examples/jsm/nodes/accessors/MaterialNode.js +55 -47
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +2 -2
- package/examples/jsm/nodes/accessors/ModelNode.js +3 -1
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +4 -9
- package/examples/jsm/nodes/accessors/MorphNode.js +70 -0
- package/examples/jsm/nodes/accessors/NormalNode.js +3 -2
- package/examples/jsm/nodes/accessors/Object3DNode.js +10 -2
- package/examples/jsm/nodes/accessors/ReferenceNode.js +2 -2
- package/examples/jsm/nodes/accessors/SceneNode.js +46 -0
- package/examples/jsm/nodes/accessors/SkinningNode.js +43 -62
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +2 -2
- package/examples/jsm/nodes/accessors/TangentNode.js +2 -2
- package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +68 -6
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -0
- package/examples/jsm/nodes/accessors/UVNode.js +1 -1
- package/examples/jsm/nodes/code/CodeNode.js +3 -0
- package/examples/jsm/nodes/code/FunctionNode.js +25 -4
- package/examples/jsm/nodes/core/AttributeNode.js +1 -1
- package/examples/jsm/nodes/core/BypassNode.js +2 -2
- package/examples/jsm/nodes/core/ContextNode.js +2 -0
- package/examples/jsm/nodes/core/IndexNode.js +66 -0
- package/examples/jsm/nodes/core/LightingModel.js +2 -1
- package/examples/jsm/nodes/core/Node.js +13 -16
- package/examples/jsm/nodes/core/NodeAttribute.js +2 -1
- package/examples/jsm/nodes/core/NodeBuilder.js +86 -8
- package/examples/jsm/nodes/core/NodeUtils.js +10 -0
- package/examples/jsm/nodes/core/PropertyNode.js +6 -2
- package/examples/jsm/nodes/core/StackNode.js +8 -1
- package/examples/jsm/nodes/core/UniformNode.js +1 -1
- package/examples/jsm/nodes/core/VarNode.js +1 -3
- package/examples/jsm/nodes/display/BlendModeNode.js +9 -9
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +7 -7
- package/examples/jsm/nodes/display/ColorSpaceNode.js +50 -49
- package/examples/jsm/nodes/display/NormalMapNode.js +3 -3
- package/examples/jsm/nodes/display/ToneMappingNode.js +24 -15
- package/examples/jsm/nodes/display/ViewportDepthNode.js +69 -0
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +34 -0
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +7 -6
- package/examples/jsm/nodes/display/ViewportTextureNode.js +33 -19
- package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +5 -5
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -8
- package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +43 -0
- package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +4 -4
- package/examples/jsm/nodes/functions/BSDF/D_GGX.js +2 -2
- package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -0
- package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +2 -4
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/examples/jsm/nodes/functions/PhongLightingModel.js +7 -7
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +132 -19
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +2 -2
- package/examples/jsm/nodes/functions/material/getRoughness.js +3 -3
- package/examples/jsm/nodes/geometry/RangeNode.js +33 -51
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +6 -3
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -2
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +107 -62
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +2 -2
- package/examples/jsm/nodes/lighting/LightUtils.js +2 -2
- package/examples/jsm/nodes/lighting/LightingContextNode.js +17 -15
- package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/SpotLightNode.js +3 -3
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -15
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -15
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -10
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -9
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +41 -0
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +1 -14
- package/examples/jsm/nodes/materials/NodeMaterial.js +119 -29
- package/examples/jsm/nodes/materials/PointsNodeMaterial.js +0 -9
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -7
- package/examples/jsm/nodes/materialx/lib/mx_hsv.js +3 -3
- package/examples/jsm/nodes/materialx/lib/mx_noise.js +14 -14
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +4 -4
- package/examples/jsm/nodes/math/MathNode.js +6 -0
- package/examples/jsm/nodes/math/OperatorNode.js +1 -1
- package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
- package/examples/jsm/nodes/shadernode/ShaderNode.js +60 -33
- package/examples/jsm/nodes/utils/EquirectUVNode.js +2 -3
- package/examples/jsm/nodes/utils/LoopNode.js +186 -0
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +1 -1
- package/examples/jsm/objects/GroundProjectedSkybox.js +1 -1
- package/examples/jsm/objects/Lensflare.js +3 -4
- package/examples/jsm/objects/MarchingCubes.js +5 -1
- package/examples/jsm/objects/Reflector.js +4 -1
- package/examples/jsm/objects/Refractor.js +1 -1
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/Water.js +2 -1
- package/examples/jsm/objects/Water2.js +1 -1
- package/examples/jsm/offscreen/scene.js +1 -0
- package/examples/jsm/physics/RapierPhysics.js +93 -133
- package/examples/jsm/postprocessing/AfterimagePass.js +3 -0
- package/examples/jsm/postprocessing/BloomPass.js +7 -2
- package/examples/jsm/postprocessing/BokehPass.js +3 -2
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
- package/examples/jsm/postprocessing/EffectComposer.js +4 -1
- package/examples/jsm/postprocessing/FilmPass.js +1 -0
- package/examples/jsm/postprocessing/OutlinePass.js +8 -9
- package/examples/jsm/postprocessing/OutputPass.js +72 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +4 -3
- package/examples/jsm/postprocessing/SAOPass.js +4 -2
- package/examples/jsm/postprocessing/SMAAPass.js +5 -2
- package/examples/jsm/postprocessing/SSAARenderPass.js +5 -13
- package/examples/jsm/postprocessing/SSAOPass.js +4 -2
- package/examples/jsm/postprocessing/SSRPass.js +3 -1
- package/examples/jsm/postprocessing/SavePass.js +5 -2
- package/examples/jsm/postprocessing/ShaderPass.js +1 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +17 -4
- package/examples/jsm/postprocessing/TexturePass.js +2 -1
- package/examples/jsm/postprocessing/UnrealBloomPass.js +13 -13
- package/examples/jsm/renderers/{webgpu/WebGPUAnimation.js → common/Animation.js} +2 -2
- package/examples/jsm/renderers/common/Attributes.js +75 -0
- package/examples/jsm/renderers/common/Backend.js +162 -0
- package/examples/jsm/renderers/common/Background.js +134 -0
- package/examples/jsm/renderers/common/Binding.js +11 -0
- package/examples/jsm/renderers/common/Bindings.js +169 -0
- package/examples/jsm/renderers/common/Buffer.js +38 -0
- package/examples/jsm/renderers/{webgpu/WebGPUBufferUtils.js → common/BufferUtils.js} +2 -2
- package/examples/jsm/renderers/{webgpu/WebGPUWeakMap.js → common/ChainMap.js} +11 -5
- package/examples/jsm/renderers/common/ComputePipeline.js +17 -0
- package/examples/jsm/renderers/common/Constants.js +14 -0
- package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -0
- package/examples/jsm/renderers/common/DataMap.js +54 -0
- package/examples/jsm/renderers/{webgpu/WebGPUGeometries.js → common/Geometries.js} +38 -37
- package/examples/jsm/renderers/{webgpu/WebGPUInfo.js → common/Info.js} +2 -3
- package/examples/jsm/renderers/common/Pipeline.js +13 -0
- package/examples/jsm/renderers/common/Pipelines.js +321 -0
- package/examples/jsm/renderers/common/ProgrammableStage.js +18 -0
- package/examples/jsm/renderers/common/RenderContext.js +37 -0
- package/examples/jsm/renderers/common/RenderContexts.js +38 -0
- package/examples/jsm/renderers/{webgpu/WebGPURenderLists.js → common/RenderList.js} +2 -39
- package/examples/jsm/renderers/common/RenderLists.js +38 -0
- package/examples/jsm/renderers/common/RenderObject.js +113 -0
- package/examples/jsm/renderers/common/RenderObjects.js +92 -0
- package/examples/jsm/renderers/common/RenderPipeline.js +16 -0
- package/examples/jsm/renderers/{webgpu/WebGPURenderTarget.js → common/RenderTarget.js} +2 -2
- package/examples/jsm/renderers/common/Renderer.js +864 -0
- package/examples/jsm/renderers/common/SampledTexture.js +80 -0
- package/examples/jsm/renderers/common/Sampler.js +18 -0
- package/examples/jsm/renderers/common/StorageBuffer.js +17 -0
- package/examples/jsm/renderers/common/Textures.js +206 -0
- package/examples/jsm/renderers/{webgpu/WebGPUUniform.js → common/Uniform.js} +13 -9
- package/examples/jsm/renderers/common/UniformBuffer.js +15 -0
- package/examples/jsm/renderers/{webgpu/WebGPUUniformsGroup.js → common/UniformsGroup.js} +13 -13
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodes.js → common/nodes/NodeRender.js} +3 -3
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampledTexture.js → common/nodes/NodeSampledTexture.js} +4 -4
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampler.js → common/nodes/NodeSampler.js} +3 -3
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeUniform.js → common/nodes/NodeUniform.js} +1 -1
- package/examples/jsm/renderers/common/nodes/Nodes.js +319 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +340 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +23 -19
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +847 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +15 -1131
- package/examples/jsm/renderers/webgpu/nodes/{WebGPUNodeBuilder.js → WGSLNodeBuilder.js} +75 -45
- package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeFunction.js +2 -2
- package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeParser.js +1 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +255 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +145 -0
- package/examples/jsm/renderers/webgpu/{constants.js → utils/WebGPUConstants.js} +6 -7
- package/examples/jsm/renderers/webgpu/{WebGPURenderPipeline.js → utils/WebGPUPipelineUtils.js} +154 -247
- package/examples/jsm/renderers/webgpu/{WebGPUTextureUtils.js → utils/WebGPUTextureMipmapUtils.js} +3 -25
- package/examples/jsm/renderers/webgpu/{WebGPUTextures.js → utils/WebGPUTextureUtils.js} +392 -505
- package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +92 -0
- package/examples/jsm/shaders/BleachBypassShader.js +2 -0
- package/examples/jsm/shaders/BlendShader.js +1 -2
- package/examples/jsm/shaders/BokehShader2.js +3 -0
- package/examples/jsm/shaders/ColorifyShader.js +2 -0
- package/examples/jsm/shaders/ConvolutionShader.js +2 -0
- package/examples/jsm/shaders/CopyShader.js +4 -2
- package/examples/jsm/shaders/DotScreenShader.js +2 -0
- package/examples/jsm/shaders/ExposureShader.js +44 -0
- package/examples/jsm/shaders/FilmShader.js +2 -0
- package/examples/jsm/shaders/GammaCorrectionShader.js +2 -0
- package/examples/jsm/shaders/HorizontalBlurShader.js +2 -0
- package/examples/jsm/shaders/OutputShader.js +61 -0
- package/examples/jsm/shaders/RGBShiftShader.js +2 -0
- package/examples/jsm/shaders/SepiaShader.js +2 -0
- package/examples/jsm/shaders/ToonShader.js +13 -5
- package/examples/jsm/shaders/VerticalBlurShader.js +2 -0
- package/examples/jsm/shaders/VignetteShader.js +2 -0
- package/examples/jsm/shaders/WaterRefractionShader.js +5 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +17 -1
- package/examples/jsm/utils/TextureUtils.js +86 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +34 -13
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +1 -0
- package/examples/jsm/webxr/XRPlanes.js +100 -0
- package/package.json +3 -1
- package/src/Three.Legacy.js +0 -228
- package/src/audio/PositionalAudio.js +8 -0
- package/src/cameras/Camera.js +5 -0
- package/src/cameras/CubeCamera.js +76 -13
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/constants.js +13 -1
- package/src/core/BufferAttribute.js +3 -25
- package/src/core/BufferGeometry.js +1 -8
- package/src/core/Object3D.js +1 -1
- package/src/extras/core/Curve.js +1 -1
- package/src/loaders/CubeTextureLoader.js +2 -0
- package/src/loaders/Loader.js +2 -0
- package/src/loaders/MaterialLoader.js +5 -0
- package/src/loaders/ObjectLoader.js +1 -0
- package/src/materials/Material.js +13 -1
- package/src/materials/MeshPhysicalMaterial.js +32 -6
- package/src/math/Color.js +16 -11
- package/src/math/Frustum.js +16 -2
- package/src/math/MathUtils.js +16 -0
- package/src/math/Matrix3.js +26 -6
- package/src/math/Matrix4.js +74 -19
- package/src/objects/InstancedMesh.js +3 -0
- package/src/objects/Mesh.js +14 -10
- package/src/objects/Skeleton.js +1 -3
- package/src/objects/SkinnedMesh.js +36 -8
- package/src/renderers/WebGLRenderer.js +126 -21
- package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -0
- package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +26 -3
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +9 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +26 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +10 -2
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/{output_fragment.glsl.js → opaque_fragment.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +10 -5
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +6 -1
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +7 -1
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +6 -1
- package/src/renderers/shaders/ShaderChunk.js +10 -6
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/cube.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -2
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +12 -2
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/points.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/sprite.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib.js +4 -1
- package/src/renderers/shaders/UniformsLib.js +2 -0
- package/src/renderers/webgl/WebGLBindingStates.js +13 -5
- package/src/renderers/webgl/WebGLGeometries.js +12 -0
- package/src/renderers/webgl/WebGLInfo.js +0 -1
- package/src/renderers/webgl/WebGLMaterials.js +18 -0
- package/src/renderers/webgl/WebGLObjects.js +23 -3
- package/src/renderers/webgl/WebGLProgram.js +43 -5
- package/src/renderers/webgl/WebGLPrograms.js +19 -7
- package/src/renderers/webgl/WebGLTextures.js +19 -1
- package/src/renderers/webvr/WebVRManager.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +39 -99
- package/src/scenes/Scene.js +0 -14
- package/src/textures/DepthTexture.js +22 -0
- package/src/textures/FramebufferTexture.js +1 -3
- package/src/textures/Source.js +4 -0
- package/src/textures/Texture.js +1 -1
- package/examples/jsm/exporters/ColladaExporter.js +0 -725
- package/examples/jsm/geometries/LightningStrike.js +0 -1017
- package/examples/jsm/loaders/PRWMLoader.js +0 -299
- package/examples/jsm/nodes/core/InstanceIndexNode.js +0 -26
- package/examples/jsm/objects/LightningStorm.js +0 -245
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -361
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +0 -197
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +0 -190
- package/examples/jsm/renderers/webgpu/WebGPUBinding.js +0 -22
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +0 -270
- package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +0 -43
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +0 -78
- package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +0 -22
- package/examples/jsm/renderers/webgpu/WebGPUProperties.js +0 -44
- package/examples/jsm/renderers/webgpu/WebGPURenderObject.js +0 -40
- package/examples/jsm/renderers/webgpu/WebGPURenderObjects.js +0 -50
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +0 -274
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +0 -54
- package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +0 -75
- package/examples/jsm/renderers/webgpu/WebGPUSampler.js +0 -29
- package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +0 -20
- package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +0 -38
- package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +0 -18
- package/examples/jsm/renderers/webgpu/WebGPUUtils.js +0 -88
- package/examples/jsm/shaders/ToneMapShader.js +0 -73
- /package/src/renderers/shaders/ShaderChunk/{encodings_fragment.glsl.js → colorspace_fragment.glsl.js} +0 -0
- /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.
|
|
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",
|
package/src/Three.Legacy.js
CHANGED
|
@@ -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
|
-
}
|
package/src/cameras/Camera.js
CHANGED
|
@@ -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 = '
|
|
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.
|
|
851
|
+
version: 4.6,
|
|
859
852
|
type: 'BufferGeometry',
|
|
860
853
|
generator: 'BufferGeometry.toJSON'
|
|
861
854
|
}
|
package/src/core/Object3D.js
CHANGED
package/src/extras/core/Curve.js
CHANGED
|
@@ -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 );
|