@plastic-software/three 0.175.14 → 0.179.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.
- package/README.md +4 -4
- package/build/three.cjs +8402 -6787
- package/build/three.core.js +8007 -6688
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +397 -102
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +84 -27
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +6831 -2838
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6648 -2838
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -3
- package/examples/jsm/animation/AnimationClipCreator.js +1 -0
- package/examples/jsm/animation/CCDIKSolver.js +6 -3
- package/examples/jsm/capabilities/WebGL.js +1 -27
- package/examples/jsm/capabilities/WebGPU.js +2 -1
- package/examples/jsm/controls/ArcballControls.js +15 -4
- package/examples/jsm/controls/DragControls.js +1 -0
- package/examples/jsm/controls/FirstPersonControls.js +1 -0
- package/examples/jsm/controls/FlyControls.js +1 -0
- package/examples/jsm/controls/MapControls.js +1 -0
- package/examples/jsm/controls/OrbitControls.js +1 -0
- package/examples/jsm/controls/PointerLockControls.js +5 -3
- package/examples/jsm/controls/TrackballControls.js +1 -0
- package/examples/jsm/controls/TransformControls.js +62 -14
- package/examples/jsm/csm/CSM.js +2 -0
- package/examples/jsm/csm/CSMFrustum.js +2 -0
- package/examples/jsm/csm/CSMHelper.js +1 -0
- package/examples/jsm/csm/CSMShader.js +4 -1
- package/examples/jsm/csm/CSMShadowNode.js +22 -8
- package/examples/jsm/curves/CurveExtras.js +14 -0
- package/examples/jsm/curves/NURBSCurve.js +1 -0
- package/examples/jsm/curves/NURBSSurface.js +2 -0
- package/examples/jsm/curves/NURBSUtils.js +4 -1
- package/examples/jsm/curves/NURBSVolume.js +2 -0
- package/examples/jsm/effects/AnaglyphEffect.js +2 -0
- package/examples/jsm/effects/AsciiEffect.js +2 -0
- package/examples/jsm/effects/OutlineEffect.js +2 -0
- package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -0
- package/examples/jsm/effects/StereoEffect.js +2 -0
- package/examples/jsm/environments/DebugEnvironment.js +1 -0
- package/examples/jsm/environments/RoomEnvironment.js +57 -38
- package/examples/jsm/exporters/DRACOExporter.js +4 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -0
- package/examples/jsm/exporters/GLTFExporter.js +7 -4
- package/examples/jsm/exporters/KTX2Exporter.js +2 -0
- package/examples/jsm/exporters/OBJExporter.js +3 -1
- package/examples/jsm/exporters/PLYExporter.js +4 -2
- package/examples/jsm/exporters/STLExporter.js +2 -0
- package/examples/jsm/exporters/USDZExporter.js +679 -300
- package/examples/jsm/geometries/BoxLineGeometry.js +1 -0
- package/examples/jsm/geometries/ConvexGeometry.js +1 -0
- package/examples/jsm/geometries/DecalGeometry.js +1 -0
- package/examples/jsm/geometries/ParametricFunctions.js +4 -1
- package/examples/jsm/geometries/ParametricGeometry.js +1 -0
- package/examples/jsm/geometries/RoundedBoxGeometry.js +48 -8
- package/examples/jsm/geometries/TeapotGeometry.js +1 -0
- package/examples/jsm/geometries/TextGeometry.js +1 -0
- package/examples/jsm/helpers/LightProbeHelper.js +1 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -0
- package/examples/jsm/helpers/OctreeHelper.js +1 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +1 -0
- package/examples/jsm/helpers/RapierHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +1 -0
- package/examples/jsm/helpers/TextureHelper.js +1 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +5 -4
- package/examples/jsm/helpers/VertexNormalsHelper.js +1 -0
- package/examples/jsm/helpers/VertexTangentsHelper.js +1 -0
- package/examples/jsm/helpers/ViewHelper.js +1 -0
- package/examples/jsm/interactive/HTMLMesh.js +11 -2
- package/examples/jsm/interactive/InteractiveGroup.js +1 -0
- package/examples/jsm/interactive/SelectionBox.js +2 -0
- package/examples/jsm/interactive/SelectionHelper.js +2 -0
- package/examples/jsm/libs/meshopt_decoder.module.js +75 -58
- package/examples/jsm/lighting/TiledLighting.js +1 -0
- package/examples/jsm/lights/LightProbeGenerator.js +15 -3
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +1 -0
- package/examples/jsm/lines/Line2.js +1 -0
- package/examples/jsm/lines/LineGeometry.js +1 -0
- package/examples/jsm/lines/LineMaterial.js +4 -4
- package/examples/jsm/lines/LineSegments2.js +1 -0
- package/examples/jsm/lines/LineSegmentsGeometry.js +1 -0
- package/examples/jsm/lines/Wireframe.js +1 -0
- package/examples/jsm/lines/WireframeGeometry2.js +1 -0
- package/examples/jsm/lines/webgpu/Line2.js +1 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +3 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -0
- package/examples/jsm/loaders/3MFLoader.js +1 -0
- package/examples/jsm/loaders/AMFLoader.js +1 -0
- package/examples/jsm/loaders/BVHLoader.js +1 -0
- package/examples/jsm/loaders/ColladaLoader.js +6 -5
- package/examples/jsm/loaders/DDSLoader.js +1 -0
- package/examples/jsm/loaders/DRACOLoader.js +2 -1
- package/examples/jsm/loaders/EXRLoader.js +211 -22
- package/examples/jsm/loaders/FBXLoader.js +25 -23
- package/examples/jsm/loaders/FontLoader.js +1 -0
- package/examples/jsm/loaders/GCodeLoader.js +1 -0
- package/examples/jsm/loaders/GLTFLoader.js +10 -82
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -0
- package/examples/jsm/loaders/IESLoader.js +1 -0
- package/examples/jsm/loaders/KMZLoader.js +1 -0
- package/examples/jsm/loaders/KTX2Loader.js +67 -26
- package/examples/jsm/loaders/KTXLoader.js +1 -0
- package/examples/jsm/loaders/LDrawLoader.js +55 -3
- package/examples/jsm/loaders/LUT3dlLoader.js +1 -0
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -0
- package/examples/jsm/loaders/LUTImageLoader.js +1 -0
- package/examples/jsm/loaders/LWOLoader.js +1 -13
- package/examples/jsm/loaders/LottieLoader.js +15 -0
- package/examples/jsm/loaders/MD2Loader.js +1 -0
- package/examples/jsm/loaders/MDDLoader.js +1 -0
- package/examples/jsm/loaders/MTLLoader.js +4 -3
- package/examples/jsm/loaders/MaterialXLoader.js +213 -30
- package/examples/jsm/loaders/NRRDLoader.js +1 -0
- package/examples/jsm/loaders/OBJLoader.js +1 -0
- package/examples/jsm/loaders/PCDLoader.js +122 -19
- package/examples/jsm/loaders/PDBLoader.js +1 -0
- package/examples/jsm/loaders/PLYLoader.js +1 -0
- package/examples/jsm/loaders/PVRLoader.js +1 -0
- package/examples/jsm/loaders/RGBELoader.js +1 -0
- package/examples/jsm/loaders/RGBMLoader.js +1 -0
- package/examples/jsm/loaders/STLLoader.js +1 -0
- package/examples/jsm/loaders/SVGLoader.js +1 -0
- package/examples/jsm/loaders/TDSLoader.js +1 -0
- package/examples/jsm/loaders/TGALoader.js +1 -0
- package/examples/jsm/loaders/TIFFLoader.js +1 -0
- package/examples/jsm/loaders/TTFLoader.js +14 -1
- package/examples/jsm/loaders/USDLoader.js +219 -0
- package/examples/jsm/loaders/USDZLoader.js +4 -891
- package/examples/jsm/loaders/UltraHDRLoader.js +1 -0
- package/examples/jsm/loaders/VOXLoader.js +1 -0
- package/examples/jsm/loaders/VRMLLoader.js +3 -2
- package/examples/jsm/loaders/VTKLoader.js +1 -0
- package/examples/jsm/loaders/XYZLoader.js +1 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +74 -74
- package/examples/jsm/loaders/usd/USDAParser.js +741 -0
- package/examples/jsm/loaders/usd/USDCParser.js +17 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +1 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +1 -0
- package/examples/jsm/math/Capsule.js +2 -0
- package/examples/jsm/math/ColorConverter.js +1 -0
- package/examples/jsm/math/ConvexHull.js +2 -0
- package/examples/jsm/math/ImprovedNoise.js +19 -14
- package/examples/jsm/math/Lut.js +2 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +2 -0
- package/examples/jsm/math/OBB.js +2 -0
- package/examples/jsm/math/Octree.js +20 -1
- package/examples/jsm/math/SimplexNoise.js +2 -0
- package/examples/jsm/misc/ConvexObjectBreaker.js +3 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/Gyroscope.js +1 -0
- package/examples/jsm/misc/MD2Character.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +5 -3
- package/examples/jsm/misc/MorphAnimMesh.js +1 -0
- package/examples/jsm/misc/MorphBlendMesh.js +1 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +2 -0
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +2 -0
- package/examples/jsm/misc/RollerCoaster.js +5 -0
- package/examples/jsm/misc/TubePainter.js +1 -0
- package/examples/jsm/misc/Volume.js +2 -0
- package/examples/jsm/misc/VolumeSlice.js +1 -0
- package/examples/jsm/modifiers/CurveModifier.js +3 -0
- package/examples/jsm/modifiers/CurveModifierGPU.js +2 -0
- package/examples/jsm/modifiers/EdgeSplitModifier.js +2 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -0
- package/examples/jsm/modifiers/TessellateModifier.js +2 -0
- package/examples/jsm/objects/GroundedSkybox.js +1 -0
- package/examples/jsm/objects/Lensflare.js +3 -0
- package/examples/jsm/objects/LensflareMesh.js +4 -3
- package/examples/jsm/objects/MarchingCubes.js +2 -0
- package/examples/jsm/objects/Reflector.js +1 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Refractor.js +1 -0
- package/examples/jsm/objects/ShadowMesh.js +1 -0
- package/examples/jsm/objects/Sky.js +2 -1
- package/examples/jsm/objects/SkyMesh.js +22 -19
- package/examples/jsm/objects/Water.js +1 -0
- package/examples/jsm/objects/Water2.js +1 -0
- package/examples/jsm/objects/Water2Mesh.js +3 -1
- package/examples/jsm/objects/WaterMesh.js +2 -1
- package/examples/jsm/physics/AmmoPhysics.js +1 -0
- package/examples/jsm/physics/JoltPhysics.js +1 -0
- package/examples/jsm/physics/RapierPhysics.js +149 -13
- package/examples/jsm/postprocessing/AfterimagePass.js +20 -2
- package/examples/jsm/postprocessing/BloomPass.js +2 -1
- package/examples/jsm/postprocessing/BokehPass.js +2 -1
- package/examples/jsm/postprocessing/ClearPass.js +1 -0
- package/examples/jsm/postprocessing/CubeTexturePass.js +1 -0
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
- package/examples/jsm/postprocessing/EffectComposer.js +4 -2
- package/examples/jsm/postprocessing/FXAAPass.js +40 -0
- package/examples/jsm/postprocessing/FilmPass.js +1 -0
- package/examples/jsm/postprocessing/GTAOPass.js +14 -12
- package/examples/jsm/postprocessing/GlitchPass.js +2 -1
- package/examples/jsm/postprocessing/HalftonePass.js +2 -1
- package/examples/jsm/postprocessing/LUTPass.js +1 -0
- package/examples/jsm/postprocessing/MaskPass.js +1 -0
- package/examples/jsm/postprocessing/OutlinePass.js +22 -19
- package/examples/jsm/postprocessing/OutputPass.js +1 -0
- package/examples/jsm/postprocessing/Pass.js +3 -1
- package/examples/jsm/postprocessing/RenderPass.js +1 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +2 -1
- package/examples/jsm/postprocessing/RenderTransitionPass.js +4 -3
- package/examples/jsm/postprocessing/SAOPass.js +3 -2
- package/examples/jsm/postprocessing/SMAAPass.js +3 -2
- package/examples/jsm/postprocessing/SSAARenderPass.js +2 -1
- package/examples/jsm/postprocessing/SSAOPass.js +12 -10
- package/examples/jsm/postprocessing/SSRPass.js +4 -3
- package/examples/jsm/postprocessing/SavePass.js +2 -1
- package/examples/jsm/postprocessing/ShaderPass.js +1 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +1 -0
- package/examples/jsm/postprocessing/TexturePass.js +1 -0
- package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -1
- package/examples/jsm/renderers/CSS2DRenderer.js +3 -0
- package/examples/jsm/renderers/CSS3DRenderer.js +4 -0
- package/examples/jsm/renderers/Projector.js +2 -0
- package/examples/jsm/renderers/SVGRenderer.js +3 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +4 -1
- package/examples/jsm/shaders/AfterimageShader.js +4 -1
- package/examples/jsm/shaders/BasicShader.js +4 -1
- package/examples/jsm/shaders/BleachBypassShader.js +4 -1
- package/examples/jsm/shaders/BlendShader.js +4 -1
- package/examples/jsm/shaders/BokehShader.js +4 -1
- package/examples/jsm/shaders/BokehShader2.js +4 -1
- package/examples/jsm/shaders/BrightnessContrastShader.js +4 -1
- package/examples/jsm/shaders/ColorCorrectionShader.js +4 -1
- package/examples/jsm/shaders/ColorifyShader.js +4 -1
- package/examples/jsm/shaders/ConvolutionShader.js +4 -1
- package/examples/jsm/shaders/CopyShader.js +4 -1
- package/examples/jsm/shaders/DOFMipMapShader.js +4 -1
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +4 -1
- package/examples/jsm/shaders/DigitalGlitch.js +4 -1
- package/examples/jsm/shaders/DotScreenShader.js +4 -1
- package/examples/jsm/shaders/ExposureShader.js +4 -1
- package/examples/jsm/shaders/FXAAShader.js +4 -1
- package/examples/jsm/shaders/FilmShader.js +4 -1
- package/examples/jsm/shaders/FocusShader.js +4 -1
- package/examples/jsm/shaders/FreiChenShader.js +4 -1
- package/examples/jsm/shaders/GTAOShader.js +4 -1
- package/examples/jsm/shaders/GammaCorrectionShader.js +4 -1
- package/examples/jsm/shaders/GodRaysShader.js +4 -1
- package/examples/jsm/shaders/HalftoneShader.js +4 -1
- package/examples/jsm/shaders/HorizontalBlurShader.js +4 -1
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +4 -1
- package/examples/jsm/shaders/HueSaturationShader.js +4 -1
- package/examples/jsm/shaders/KaleidoShader.js +4 -1
- package/examples/jsm/shaders/LuminosityHighPassShader.js +4 -1
- package/examples/jsm/shaders/LuminosityShader.js +4 -1
- package/examples/jsm/shaders/MirrorShader.js +4 -1
- package/examples/jsm/shaders/NormalMapShader.js +4 -1
- package/examples/jsm/shaders/OutputShader.js +4 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +4 -1
- package/examples/jsm/shaders/RGBShiftShader.js +4 -1
- package/examples/jsm/shaders/SAOShader.js +4 -1
- package/examples/jsm/shaders/SMAAShader.js +1 -0
- package/examples/jsm/shaders/SSAOShader.js +4 -1
- package/examples/jsm/shaders/SSRShader.js +1 -0
- package/examples/jsm/shaders/SepiaShader.js +4 -1
- package/examples/jsm/shaders/SobelOperatorShader.js +4 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +4 -1
- package/examples/jsm/shaders/TechnicolorShader.js +4 -1
- package/examples/jsm/shaders/ToonShader.js +2 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +4 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +15 -3
- package/examples/jsm/shaders/VelocityShader.js +4 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +4 -1
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +4 -1
- package/examples/jsm/shaders/VignetteShader.js +4 -1
- package/examples/jsm/shaders/VolumeShader.js +5 -2
- package/examples/jsm/shaders/WaterRefractionShader.js +4 -1
- package/examples/jsm/textures/FlakesTexture.js +2 -0
- package/examples/jsm/transpiler/AST.js +381 -30
- package/examples/jsm/transpiler/GLSLDecoder.js +227 -88
- package/examples/jsm/transpiler/Linker.js +327 -0
- package/examples/jsm/transpiler/TSLEncoder.js +234 -85
- package/examples/jsm/transpiler/Transpiler.js +19 -1
- package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
- package/examples/jsm/transpiler/WGSLEncoder.js +788 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +2 -3
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +1 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +5 -4
- package/examples/jsm/tsl/display/BloomNode.js +9 -7
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +206 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +33 -33
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -0
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -0
- package/examples/jsm/tsl/display/FXAANode.js +3 -2
- package/examples/jsm/tsl/display/FilmNode.js +1 -0
- package/examples/jsm/tsl/display/GTAONode.js +1 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +9 -36
- package/examples/jsm/tsl/display/LensflareNode.js +1 -0
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -0
- package/examples/jsm/tsl/display/OutlineNode.js +1 -0
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +1 -0
- package/examples/jsm/tsl/display/PixelationPassNode.js +1 -0
- package/examples/jsm/tsl/display/RGBShiftNode.js +1 -0
- package/examples/jsm/tsl/display/SMAANode.js +9 -8
- package/examples/jsm/tsl/display/SSAAPassNode.js +5 -4
- package/examples/jsm/tsl/display/SSRNode.js +1 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +1 -0
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +1 -0
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -0
- package/examples/jsm/tsl/display/{TRAAPassNode.js → TRAANode.js} +184 -174
- package/examples/jsm/tsl/display/TransitionNode.js +1 -0
- package/examples/jsm/tsl/display/hashBlur.js +28 -6
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +5 -4
- package/examples/jsm/tsl/math/Bayer.js +4 -1
- package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
- package/examples/jsm/tsl/utils/Raymarching.js +6 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +4 -1
- package/examples/jsm/utils/CameraUtils.js +4 -1
- package/examples/jsm/utils/GeometryCompressionUtils.js +4 -1
- package/examples/jsm/utils/GeometryUtils.js +4 -1
- package/examples/jsm/utils/LDrawUtils.js +2 -0
- package/examples/jsm/utils/SceneOptimizer.js +2 -0
- package/examples/jsm/utils/SceneUtils.js +4 -1
- package/examples/jsm/utils/ShadowMapViewer.js +2 -0
- package/examples/jsm/utils/ShadowMapViewerGPU.js +2 -0
- package/examples/jsm/utils/SkeletonUtils.js +4 -1
- package/examples/jsm/utils/SortUtils.js +4 -1
- package/examples/jsm/utils/UVsDebug.js +4 -1
- package/examples/jsm/utils/WebGLTextureUtils.js +4 -1
- package/examples/jsm/utils/WebGPUTextureUtils.js +4 -1
- package/examples/jsm/utils/WorkerPool.js +2 -0
- package/examples/jsm/webxr/ARButton.js +1 -0
- package/examples/jsm/webxr/OculusHandModel.js +1 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +1 -0
- package/examples/jsm/webxr/Text2D.js +4 -1
- package/examples/jsm/webxr/VRButton.js +1 -0
- package/examples/jsm/webxr/XRButton.js +1 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +2 -0
- package/examples/jsm/webxr/XREstimatedLight.js +1 -0
- package/examples/jsm/webxr/XRHandMeshModel.js +2 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +2 -0
- package/examples/jsm/webxr/XRPlanes.js +1 -0
- package/package.json +6 -4
- package/src/Three.Core.js +2 -1
- package/src/Three.TSL.js +83 -26
- package/src/Three.WebGPU.Nodes.js +1 -0
- package/src/Three.WebGPU.js +3 -0
- package/src/animation/KeyframeTrack.js +1 -1
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/audio/AudioListener.js +13 -10
- package/src/cameras/ArrayCamera.js +9 -1
- package/src/cameras/Camera.js +14 -0
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/constants.js +47 -20
- package/src/core/BufferAttribute.js +3 -3
- package/src/core/BufferGeometry.js +2 -5
- package/src/core/Clock.js +2 -8
- package/src/core/GLBufferAttribute.js +13 -1
- package/src/core/Object3D.js +23 -22
- package/src/core/RenderTarget.js +65 -21
- package/src/core/RenderTarget3D.js +1 -0
- package/{examples/jsm/misc → src/core}/Timer.js +4 -40
- package/src/extras/PMREMGenerator.js +11 -0
- package/src/extras/TextureUtils.js +1 -5
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +22 -22
- package/src/geometries/CapsuleGeometry.js +167 -17
- package/src/geometries/ExtrudeGeometry.js +39 -29
- package/src/helpers/ArrowHelper.js +2 -2
- package/src/helpers/CameraHelper.js +41 -11
- package/src/helpers/SkeletonHelper.js +36 -7
- package/src/lights/LightShadow.js +34 -7
- package/src/lights/PointLightShadow.js +1 -1
- package/src/lights/SpotLightShadow.js +9 -1
- package/src/lights/webgpu/ProjectorLight.js +46 -0
- package/src/loaders/BufferGeometryLoader.js +1 -10
- package/src/loaders/FileLoader.js +27 -4
- package/src/loaders/ImageBitmapLoader.js +48 -9
- package/src/loaders/ImageLoader.js +55 -8
- package/src/loaders/Loader.js +14 -0
- package/src/loaders/LoadingManager.js +23 -0
- package/src/loaders/ObjectLoader.js +44 -16
- package/src/loaders/nodes/NodeObjectLoader.js +2 -2
- package/src/materials/Material.js +1 -7
- package/src/materials/MeshBasicMaterial.js +1 -1
- package/src/materials/nodes/Line2NodeMaterial.js +0 -8
- package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
- package/src/materials/nodes/MeshSSSNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +106 -20
- package/src/materials/nodes/PointsNodeMaterial.js +5 -0
- package/src/materials/nodes/manager/NodeMaterialObserver.js +107 -4
- package/src/math/Box3.js +28 -0
- package/src/math/Color.js +7 -7
- package/src/math/ColorManagement.js +22 -3
- package/src/math/Frustum.js +25 -9
- package/src/math/FrustumArray.js +258 -0
- package/src/math/Line3.js +129 -2
- package/src/math/Matrix4.js +48 -27
- package/src/math/Quaternion.js +1 -1
- package/src/math/Ray.js +2 -0
- package/src/math/Sphere.js +28 -0
- package/src/math/Spherical.js +2 -2
- package/src/nodes/Nodes.js +3 -3
- package/src/nodes/TSL.js +6 -3
- package/src/nodes/accessors/AccessorsUtils.js +7 -8
- package/src/nodes/accessors/Bitangent.js +54 -26
- package/src/nodes/accessors/Camera.js +40 -13
- package/src/nodes/accessors/CubeTextureNode.js +50 -2
- package/src/nodes/accessors/InstanceNode.js +5 -4
- package/src/nodes/accessors/Lights.js +2 -2
- package/src/nodes/accessors/MaterialNode.js +4 -0
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +110 -24
- package/src/nodes/accessors/Object3DNode.js +7 -8
- package/src/nodes/accessors/Position.js +14 -4
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +19 -4
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/SceneNode.js +1 -1
- package/src/nodes/accessors/SkinningNode.js +3 -2
- package/src/nodes/accessors/StorageBufferNode.js +25 -0
- package/src/nodes/accessors/StorageTextureNode.js +15 -4
- package/src/nodes/accessors/Tangent.js +25 -17
- package/src/nodes/accessors/TangentUtils.js +46 -0
- package/src/nodes/accessors/TextureBicubic.js +21 -3
- package/src/nodes/accessors/TextureNode.js +71 -8
- package/src/nodes/accessors/UniformArrayNode.js +0 -16
- package/src/nodes/accessors/VelocityNode.js +1 -0
- package/src/nodes/accessors/VertexColorNode.js +4 -4
- package/src/nodes/code/CodeNode.js +8 -11
- package/src/nodes/core/ArrayNode.js +12 -0
- package/src/nodes/core/AssignNode.js +30 -5
- package/src/nodes/core/AttributeNode.js +2 -2
- package/src/nodes/core/ContextNode.js +27 -4
- package/src/nodes/core/Node.js +83 -22
- package/src/nodes/core/NodeBuilder.js +273 -49
- package/src/nodes/core/NodeUtils.js +46 -1
- package/src/nodes/core/NodeVarying.js +19 -1
- package/src/nodes/core/PropertyNode.js +8 -12
- package/src/nodes/core/StackNode.js +171 -26
- package/src/nodes/core/StructTypeNode.js +26 -4
- package/src/nodes/core/SubBuildNode.js +89 -0
- package/src/nodes/core/UniformNode.js +63 -5
- package/src/nodes/core/VarNode.js +102 -4
- package/src/nodes/core/VaryingNode.js +45 -24
- package/src/nodes/display/BlendModes.js +42 -1
- package/src/nodes/display/ColorSpaceNode.js +4 -27
- package/src/nodes/display/FrontFacingNode.js +34 -2
- package/src/nodes/display/NormalMapNode.js +19 -50
- package/src/nodes/display/PassNode.js +165 -20
- package/src/nodes/display/ScreenNode.js +0 -26
- package/src/nodes/display/ViewportTextureNode.js +67 -7
- package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
- package/src/nodes/functions/PhongLightingModel.js +3 -3
- package/src/nodes/functions/PhysicalLightingModel.js +16 -16
- package/src/nodes/functions/ShadowMaskModel.js +5 -1
- package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +28 -10
- package/src/nodes/gpgpu/BarrierNode.js +3 -3
- package/src/nodes/gpgpu/ComputeNode.js +68 -24
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +28 -3
- package/src/nodes/lighting/AnalyticLightNode.js +7 -13
- package/src/nodes/lighting/EnvironmentNode.js +5 -5
- package/src/nodes/lighting/HemisphereLightNode.js +2 -2
- package/src/nodes/lighting/IESSpotLightNode.js +2 -1
- package/src/nodes/lighting/LightsNode.js +29 -11
- package/src/nodes/lighting/ProjectorLightNode.js +91 -0
- package/src/nodes/lighting/ShadowBaseNode.js +1 -12
- package/src/nodes/lighting/ShadowFilterNode.js +274 -0
- package/src/nodes/lighting/ShadowNode.js +174 -242
- package/src/nodes/lighting/SpotLightNode.js +44 -7
- package/src/nodes/materialx/MaterialXNodes.js +131 -2
- package/src/nodes/materialx/lib/mx_noise.js +166 -2
- package/src/nodes/math/ConditionalNode.js +1 -20
- package/src/nodes/math/MathNode.js +146 -75
- package/src/nodes/math/OperatorNode.js +129 -119
- package/src/nodes/shapes/Shapes.js +5 -4
- package/src/nodes/tsl/TSLBase.js +1 -0
- package/src/nodes/tsl/TSLCore.js +222 -72
- package/src/nodes/utils/DebugNode.js +16 -4
- package/src/nodes/utils/Discard.js +2 -2
- package/src/nodes/utils/EquirectUV.js +27 -0
- package/src/nodes/utils/EventNode.js +83 -0
- package/src/nodes/utils/LoopNode.js +64 -34
- package/src/nodes/utils/MatcapUV.js +22 -0
- package/src/nodes/utils/RTTNode.js +22 -5
- package/src/nodes/utils/ReflectorNode.js +77 -7
- package/src/nodes/utils/SampleNode.js +81 -0
- package/src/nodes/utils/TriplanarTextures.js +65 -0
- package/src/objects/BatchedMesh.js +20 -6
- package/src/objects/Mesh.js +9 -0
- package/src/objects/Skeleton.js +1 -1
- package/src/objects/Sprite.js +9 -0
- package/src/renderers/WebGL3DRenderTarget.js +1 -0
- package/src/renderers/WebGLArrayRenderTarget.js +1 -0
- package/src/renderers/WebGLCubeRenderTarget.js +2 -4
- package/src/renderers/WebGLRenderer.js +45 -32
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Background.js +13 -2
- package/src/renderers/common/Bindings.js +19 -18
- package/src/renderers/common/Color4.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +1 -1
- package/src/renderers/common/PostProcessing.js +60 -5
- package/src/renderers/common/RenderList.js +0 -4
- package/src/renderers/common/RenderObject.js +80 -4
- package/src/renderers/common/Renderer.js +133 -22
- package/src/renderers/common/SampledTexture.js +3 -71
- package/src/renderers/common/Sampler.js +79 -0
- package/src/renderers/common/Storage3DTexture.js +100 -0
- package/src/renderers/common/StorageArrayTexture.js +84 -0
- package/src/renderers/common/StorageTexture.js +19 -0
- package/src/renderers/common/Textures.js +34 -24
- package/src/renderers/common/TimestampQueryPool.js +1 -0
- package/src/renderers/common/Uniform.js +1 -1
- package/src/renderers/common/UniformsGroup.js +14 -18
- package/src/renderers/common/XRManager.js +183 -35
- package/src/renderers/common/XRRenderTarget.js +21 -4
- package/src/renderers/common/extras/PMREMGenerator.js +30 -23
- package/src/renderers/common/nodes/NodeSampledTexture.js +0 -12
- package/src/renderers/common/nodes/Nodes.js +13 -3
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +20 -2
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +11 -2
- package/src/renderers/webgl/WebGLAttributes.js +4 -0
- package/src/renderers/webgl/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl/WebGLMaterials.js +6 -6
- package/src/renderers/webgl/WebGLProgram.js +22 -16
- package/src/renderers/webgl/WebGLPrograms.js +8 -6
- package/src/renderers/webgl/WebGLShadowMap.js +14 -3
- package/src/renderers/webgl/WebGLState.js +4 -4
- package/src/renderers/webgl/WebGLTextures.js +163 -11
- package/src/renderers/webgl/WebGLUtils.js +1 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +261 -94
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +75 -9
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +4 -4
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +44 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
- package/src/renderers/webgpu/WebGPUBackend.js +505 -143
- package/src/renderers/webgpu/WebGPURenderer.js +7 -0
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +4 -1
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +4 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +129 -96
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +9 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +58 -31
- package/src/renderers/webgpu/utils/WebGPUConstants.js +8 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +39 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +50 -108
- package/src/renderers/webgpu/utils/WebGPUUtils.js +2 -17
- package/src/renderers/webxr/WebXRController.js +1 -1
- package/src/renderers/webxr/WebXRDepthSensing.js +6 -10
- package/src/renderers/webxr/WebXRManager.js +70 -9
- package/src/textures/DepthTexture.js +6 -10
- package/src/textures/ExternalTexture.js +45 -0
- package/src/textures/FramebufferTexture.js +2 -2
- package/src/textures/Source.js +32 -0
- package/src/textures/Texture.js +118 -1
- package/src/textures/VideoTexture.js +31 -3
- package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
- package/src/core/RenderTargetArray.js +0 -40
- package/src/nodes/utils/EquirectUVNode.js +0 -65
- package/src/nodes/utils/MatcapUVNode.js +0 -49
- package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
* A Granny Knot curve.
|
|
18
18
|
*
|
|
19
19
|
* @augments Curve
|
|
20
|
+
* @three_import import { GrannyKnot } from 'three/addons/curves/CurveExtras.js';
|
|
20
21
|
*/
|
|
21
22
|
class GrannyKnot extends Curve {
|
|
22
23
|
|
|
@@ -47,6 +48,7 @@ class GrannyKnot extends Curve {
|
|
|
47
48
|
* A heart curve.
|
|
48
49
|
*
|
|
49
50
|
* @augments Curve
|
|
51
|
+
* @three_import import { HeartCurve } from 'three/addons/curves/CurveExtras.js';
|
|
50
52
|
*/
|
|
51
53
|
class HeartCurve extends Curve {
|
|
52
54
|
|
|
@@ -96,6 +98,7 @@ class HeartCurve extends Curve {
|
|
|
96
98
|
* A Viviani curve.
|
|
97
99
|
*
|
|
98
100
|
* @augments Curve
|
|
101
|
+
* @three_import import { VivianiCurve } from 'three/addons/curves/CurveExtras.js';
|
|
99
102
|
*/
|
|
100
103
|
class VivianiCurve extends Curve {
|
|
101
104
|
|
|
@@ -146,6 +149,7 @@ class VivianiCurve extends Curve {
|
|
|
146
149
|
* A knot curve.
|
|
147
150
|
*
|
|
148
151
|
* @augments Curve
|
|
152
|
+
* @three_import import { KnotCurve } from 'three/addons/curves/CurveExtras.js';
|
|
149
153
|
*/
|
|
150
154
|
class KnotCurve extends Curve {
|
|
151
155
|
|
|
@@ -179,6 +183,7 @@ class KnotCurve extends Curve {
|
|
|
179
183
|
* A helix curve.
|
|
180
184
|
*
|
|
181
185
|
* @augments Curve
|
|
186
|
+
* @three_import import { HelixCurve } from 'three/addons/curves/CurveExtras.js';
|
|
182
187
|
*/
|
|
183
188
|
class HelixCurve extends Curve {
|
|
184
189
|
|
|
@@ -212,6 +217,7 @@ class HelixCurve extends Curve {
|
|
|
212
217
|
* A Trefoil Knot.
|
|
213
218
|
*
|
|
214
219
|
* @augments Curve
|
|
220
|
+
* @three_import import { TrefoilKnot } from 'three/addons/curves/CurveExtras.js';
|
|
215
221
|
*/
|
|
216
222
|
class TrefoilKnot extends Curve {
|
|
217
223
|
|
|
@@ -261,6 +267,7 @@ class TrefoilKnot extends Curve {
|
|
|
261
267
|
* A torus knot.
|
|
262
268
|
*
|
|
263
269
|
* @augments Curve
|
|
270
|
+
* @three_import import { TorusKnot } from 'three/addons/curves/CurveExtras.js';
|
|
264
271
|
*/
|
|
265
272
|
class TorusKnot extends Curve {
|
|
266
273
|
|
|
@@ -313,6 +320,7 @@ class TorusKnot extends Curve {
|
|
|
313
320
|
* A Cinquefoil Knot.
|
|
314
321
|
*
|
|
315
322
|
* @augments Curve
|
|
323
|
+
* @three_import import { CinquefoilKnot } from 'three/addons/curves/CurveExtras.js';
|
|
316
324
|
*/
|
|
317
325
|
class CinquefoilKnot extends Curve {
|
|
318
326
|
|
|
@@ -365,6 +373,7 @@ class CinquefoilKnot extends Curve {
|
|
|
365
373
|
* A Trefoil Polynomial Knot.
|
|
366
374
|
*
|
|
367
375
|
* @augments Curve
|
|
376
|
+
* @three_import import { TrefoilPolynomialKnot } from 'three/addons/curves/CurveExtras.js';
|
|
368
377
|
*/
|
|
369
378
|
class TrefoilPolynomialKnot extends Curve {
|
|
370
379
|
|
|
@@ -421,6 +430,7 @@ function scaleTo( x, y, t ) {
|
|
|
421
430
|
* A Figure Eight Polynomial Knot.
|
|
422
431
|
*
|
|
423
432
|
* @augments Curve
|
|
433
|
+
* @three_import import { FigureEightPolynomialKnot } from 'three/addons/curves/CurveExtras.js';
|
|
424
434
|
*/
|
|
425
435
|
class FigureEightPolynomialKnot extends Curve {
|
|
426
436
|
|
|
@@ -470,6 +480,7 @@ class FigureEightPolynomialKnot extends Curve {
|
|
|
470
480
|
* A Decorated Torus Knot 4a.
|
|
471
481
|
*
|
|
472
482
|
* @augments Curve
|
|
483
|
+
* @three_import import { DecoratedTorusKnot4a } from 'three/addons/curves/CurveExtras.js';
|
|
473
484
|
*/
|
|
474
485
|
class DecoratedTorusKnot4a extends Curve {
|
|
475
486
|
|
|
@@ -519,6 +530,7 @@ class DecoratedTorusKnot4a extends Curve {
|
|
|
519
530
|
* A Decorated Torus Knot 4b.
|
|
520
531
|
*
|
|
521
532
|
* @augments Curve
|
|
533
|
+
* @three_import import { DecoratedTorusKnot4b } from 'three/addons/curves/CurveExtras.js';
|
|
522
534
|
*/
|
|
523
535
|
class DecoratedTorusKnot4b extends Curve {
|
|
524
536
|
|
|
@@ -568,6 +580,7 @@ class DecoratedTorusKnot4b extends Curve {
|
|
|
568
580
|
* A Decorated Torus Knot 5a.
|
|
569
581
|
*
|
|
570
582
|
* @augments Curve
|
|
583
|
+
* @three_import import { DecoratedTorusKnot5a } from 'three/addons/curves/CurveExtras.js';
|
|
571
584
|
*/
|
|
572
585
|
class DecoratedTorusKnot5a extends Curve {
|
|
573
586
|
|
|
@@ -617,6 +630,7 @@ class DecoratedTorusKnot5a extends Curve {
|
|
|
617
630
|
* A Decorated Torus Knot 5c.
|
|
618
631
|
*
|
|
619
632
|
* @augments Curve
|
|
633
|
+
* @three_import import { DecoratedTorusKnot5c } from 'three/addons/curves/CurveExtras.js';
|
|
620
634
|
*/
|
|
621
635
|
class DecoratedTorusKnot5c extends Curve {
|
|
622
636
|
|
|
@@ -11,6 +11,7 @@ import * as NURBSUtils from '../curves/NURBSUtils.js';
|
|
|
11
11
|
* Implementation is based on `(x, y [, z=0 [, w=1]])` control points with `w=weight`.
|
|
12
12
|
*
|
|
13
13
|
* @augments Curve
|
|
14
|
+
* @three_import import { NURBSCurve } from 'three/addons/curves/NURBSCurve.js';
|
|
14
15
|
*/
|
|
15
16
|
class NURBSCurve extends Curve {
|
|
16
17
|
|
|
@@ -7,6 +7,8 @@ import * as NURBSUtils from '../curves/NURBSUtils.js';
|
|
|
7
7
|
* This class represents a NURBS surface.
|
|
8
8
|
*
|
|
9
9
|
* Implementation is based on `(x, y [, z=0 [, w=1]])` control points with `w=weight`.
|
|
10
|
+
*
|
|
11
|
+
* @three_import import { NURBSSurface } from 'three/addons/curves/NURBSSurface.js';
|
|
10
12
|
*/
|
|
11
13
|
class NURBSSurface {
|
|
12
14
|
|
|
@@ -7,6 +7,8 @@ import * as NURBSUtils from '../curves/NURBSUtils.js';
|
|
|
7
7
|
* This class represents a NURBS volume.
|
|
8
8
|
*
|
|
9
9
|
* Implementation is based on `(x, y [, z=0 [, w=1]])` control points with `w=weight`.
|
|
10
|
+
*
|
|
11
|
+
* @three_import import { NURBSVolume } from 'three/addons/curves/NURBSVolume.js';
|
|
10
12
|
*/
|
|
11
13
|
class NURBSVolume {
|
|
12
14
|
|
|
@@ -14,6 +14,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
|
|
|
14
14
|
*
|
|
15
15
|
* Note that this class can only be used with {@link WebGLRenderer}.
|
|
16
16
|
* When using {@link WebGPURenderer}, use {@link AnaglyphPassNode}.
|
|
17
|
+
*
|
|
18
|
+
* @three_import import { AnaglyphEffect } from 'three/addons/effects/AnaglyphEffect.js';
|
|
17
19
|
*/
|
|
18
20
|
class AnaglyphEffect {
|
|
19
21
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* A class that creates an ASCII effect.
|
|
3
3
|
*
|
|
4
4
|
* The ASCII generation is based on [jsascii]{@link https://github.com/hassadee/jsascii/blob/master/jsascii.js}.
|
|
5
|
+
*
|
|
6
|
+
* @three_import import { AsciiEffect } from 'three/addons/effects/AsciiEffect.js';
|
|
5
7
|
*/
|
|
6
8
|
class AsciiEffect {
|
|
7
9
|
|
|
@@ -13,6 +13,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
|
|
|
13
13
|
*
|
|
14
14
|
* Note that this class can only be used with {@link WebGLRenderer}.
|
|
15
15
|
* When using {@link WebGPURenderer}, use {@link ParallaxBarrierPassNode}.
|
|
16
|
+
*
|
|
17
|
+
* @three_import import { ParallaxBarrierEffect } from 'three/addons/effects/ParallaxBarrierEffect.js';
|
|
16
18
|
*/
|
|
17
19
|
class ParallaxBarrierEffect {
|
|
18
20
|
|
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
*
|
|
9
9
|
* Note that this class can only be used with {@link WebGLRenderer}.
|
|
10
10
|
* When using {@link WebGPURenderer}, use {@link StereoPassNode}.
|
|
11
|
+
*
|
|
12
|
+
* @three_import import { StereoEffect } from 'three/addons/effects/StereoEffect.js';
|
|
11
13
|
*/
|
|
12
14
|
class StereoEffect {
|
|
13
15
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BackSide,
|
|
3
3
|
BoxGeometry,
|
|
4
|
+
InstancedMesh,
|
|
4
5
|
Mesh,
|
|
5
|
-
|
|
6
|
+
MeshLambertMaterial,
|
|
6
7
|
MeshStandardMaterial,
|
|
7
8
|
PointLight,
|
|
8
9
|
Scene,
|
|
10
|
+
Object3D,
|
|
9
11
|
} from 'three';
|
|
10
12
|
|
|
11
13
|
/**
|
|
@@ -26,6 +28,7 @@ import {
|
|
|
26
28
|
* ```
|
|
27
29
|
*
|
|
28
30
|
* @augments Scene
|
|
31
|
+
* @three_import import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js';
|
|
29
32
|
*/
|
|
30
33
|
class RoomEnvironment extends Scene {
|
|
31
34
|
|
|
@@ -48,41 +51,52 @@ class RoomEnvironment extends Scene {
|
|
|
48
51
|
room.scale.set( 31.713, 28.305, 28.591 );
|
|
49
52
|
this.add( room );
|
|
50
53
|
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
box1
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
54
|
+
const boxes = new InstancedMesh( geometry, boxMaterial, 6 );
|
|
55
|
+
const transform = new Object3D();
|
|
56
|
+
|
|
57
|
+
// box1
|
|
58
|
+
transform.position.set( - 10.906, 2.009, 1.846 );
|
|
59
|
+
transform.rotation.set( 0, - 0.195, 0 );
|
|
60
|
+
transform.scale.set( 2.328, 7.905, 4.651 );
|
|
61
|
+
transform.updateMatrix();
|
|
62
|
+
boxes.setMatrixAt( 0, transform.matrix );
|
|
63
|
+
|
|
64
|
+
// box2
|
|
65
|
+
transform.position.set( - 5.607, - 0.754, - 0.758 );
|
|
66
|
+
transform.rotation.set( 0, 0.994, 0 );
|
|
67
|
+
transform.scale.set( 1.970, 1.534, 3.955 );
|
|
68
|
+
transform.updateMatrix();
|
|
69
|
+
boxes.setMatrixAt( 1, transform.matrix );
|
|
70
|
+
|
|
71
|
+
// box3
|
|
72
|
+
transform.position.set( 6.167, 0.857, 7.803 );
|
|
73
|
+
transform.rotation.set( 0, 0.561, 0 );
|
|
74
|
+
transform.scale.set( 3.927, 6.285, 3.687 );
|
|
75
|
+
transform.updateMatrix();
|
|
76
|
+
boxes.setMatrixAt( 2, transform.matrix );
|
|
77
|
+
|
|
78
|
+
// box4
|
|
79
|
+
transform.position.set( - 2.017, 0.018, 6.124 );
|
|
80
|
+
transform.rotation.set( 0, 0.333, 0 );
|
|
81
|
+
transform.scale.set( 2.002, 4.566, 2.064 );
|
|
82
|
+
transform.updateMatrix();
|
|
83
|
+
boxes.setMatrixAt( 3, transform.matrix );
|
|
84
|
+
|
|
85
|
+
// box5
|
|
86
|
+
transform.position.set( 2.291, - 0.756, - 2.621 );
|
|
87
|
+
transform.rotation.set( 0, - 0.286, 0 );
|
|
88
|
+
transform.scale.set( 1.546, 1.552, 1.496 );
|
|
89
|
+
transform.updateMatrix();
|
|
90
|
+
boxes.setMatrixAt( 4, transform.matrix );
|
|
91
|
+
|
|
92
|
+
// box6
|
|
93
|
+
transform.position.set( - 2.193, - 0.369, - 5.547 );
|
|
94
|
+
transform.rotation.set( 0, 0.516, 0 );
|
|
95
|
+
transform.scale.set( 3.875, 3.487, 2.986 );
|
|
96
|
+
transform.updateMatrix();
|
|
97
|
+
boxes.setMatrixAt( 5, transform.matrix );
|
|
98
|
+
|
|
99
|
+
this.add( boxes );
|
|
86
100
|
|
|
87
101
|
|
|
88
102
|
// -x right
|
|
@@ -154,8 +168,13 @@ class RoomEnvironment extends Scene {
|
|
|
154
168
|
|
|
155
169
|
function createAreaLightMaterial( intensity ) {
|
|
156
170
|
|
|
157
|
-
|
|
158
|
-
material
|
|
171
|
+
// create an emissive-only material. see #31348
|
|
172
|
+
const material = new MeshLambertMaterial( {
|
|
173
|
+
color: 0x000000,
|
|
174
|
+
emissive: 0xffffff,
|
|
175
|
+
emissiveIntensity: intensity
|
|
176
|
+
} );
|
|
177
|
+
|
|
159
178
|
return material;
|
|
160
179
|
|
|
161
180
|
}
|
|
@@ -19,6 +19,8 @@ import { Color, ColorManagement, SRGBColorSpace } from 'three';
|
|
|
19
19
|
* const exporter = new DRACOExporter();
|
|
20
20
|
* const data = exporter.parse( mesh, options );
|
|
21
21
|
* ```
|
|
22
|
+
*
|
|
23
|
+
* @three_import import { DRACOExporter } from 'three/addons/exporters/DRACOExporter.js';
|
|
22
24
|
*/
|
|
23
25
|
class DRACOExporter {
|
|
24
26
|
|
|
@@ -27,7 +29,7 @@ class DRACOExporter {
|
|
|
27
29
|
*
|
|
28
30
|
* @param {(Mesh|Points)} object - The mesh or point cloud to export.
|
|
29
31
|
* @param {DRACOExporter~Options} options - The export options.
|
|
30
|
-
* @return {
|
|
32
|
+
* @return {Int8Array} The exported Draco.
|
|
31
33
|
*/
|
|
32
34
|
parse( object, options = {} ) {
|
|
33
35
|
|
|
@@ -239,7 +241,7 @@ function createVertexColorSRGBArray( attribute ) {
|
|
|
239
241
|
|
|
240
242
|
_color.fromBufferAttribute( attribute, i );
|
|
241
243
|
|
|
242
|
-
ColorManagement.
|
|
244
|
+
ColorManagement.workingToColorSpace( _color, SRGBColorSpace );
|
|
243
245
|
|
|
244
246
|
array[ i * itemSize ] = _color.r;
|
|
245
247
|
array[ i * itemSize + 1 ] = _color.g;
|
|
@@ -26,6 +26,8 @@ const ZIP_COMPRESSION = 3;
|
|
|
26
26
|
* const exporter = new EXRExporter();
|
|
27
27
|
* const result = await exporter.parse( renderer, options );
|
|
28
28
|
* ```
|
|
29
|
+
*
|
|
30
|
+
* @three_import import { EXRExporter } from 'three/addons/exporters/EXRExporter.js';
|
|
29
31
|
*/
|
|
30
32
|
class EXRExporter {
|
|
31
33
|
|
|
@@ -97,6 +97,8 @@ const KHR_mesh_quantization_ExtraAttrTypes = {
|
|
|
97
97
|
* const exporter = new GLTFExporter();
|
|
98
98
|
* const data = await exporter.parseAsync( scene, options );
|
|
99
99
|
* ```
|
|
100
|
+
*
|
|
101
|
+
* @three_import import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
|
|
100
102
|
*/
|
|
101
103
|
class GLTFExporter {
|
|
102
104
|
|
|
@@ -2406,6 +2408,9 @@ class GLTFWriter {
|
|
|
2406
2408
|
|
|
2407
2409
|
if ( object.isSkinnedMesh ) this.skins.push( object );
|
|
2408
2410
|
|
|
2411
|
+
const nodeIndex = json.nodes.push( nodeDef ) - 1;
|
|
2412
|
+
nodeMap.set( object, nodeIndex );
|
|
2413
|
+
|
|
2409
2414
|
if ( object.children.length > 0 ) {
|
|
2410
2415
|
|
|
2411
2416
|
const children = [];
|
|
@@ -2416,9 +2421,9 @@ class GLTFWriter {
|
|
|
2416
2421
|
|
|
2417
2422
|
if ( child.visible || options.onlyVisible === false ) {
|
|
2418
2423
|
|
|
2419
|
-
const
|
|
2424
|
+
const childNodeIndex = await this.processNodeAsync( child );
|
|
2420
2425
|
|
|
2421
|
-
if (
|
|
2426
|
+
if ( childNodeIndex !== null ) children.push( childNodeIndex );
|
|
2422
2427
|
|
|
2423
2428
|
}
|
|
2424
2429
|
|
|
@@ -2434,8 +2439,6 @@ class GLTFWriter {
|
|
|
2434
2439
|
|
|
2435
2440
|
} );
|
|
2436
2441
|
|
|
2437
|
-
const nodeIndex = json.nodes.push( nodeDef ) - 1;
|
|
2438
|
-
nodeMap.set( object, nodeIndex );
|
|
2439
2442
|
return nodeIndex;
|
|
2440
2443
|
|
|
2441
2444
|
}
|
|
@@ -134,6 +134,8 @@ const ERROR_COLOR_SPACE = 'THREE.KTX2Exporter: Supported color spaces are SRGBCo
|
|
|
134
134
|
* const exporter = new KTX2Exporter();
|
|
135
135
|
* const result = await exporter.parse( dataTexture );
|
|
136
136
|
* ```
|
|
137
|
+
*
|
|
138
|
+
* @three_import import { KTX2Exporter } from 'three/addons/exporters/KTX2Exporter.js';
|
|
137
139
|
*/
|
|
138
140
|
export class KTX2Exporter {
|
|
139
141
|
|
|
@@ -16,6 +16,8 @@ import {
|
|
|
16
16
|
* const exporter = new OBJExporter();
|
|
17
17
|
* const data = exporter.parse( scene );
|
|
18
18
|
* ```
|
|
19
|
+
*
|
|
20
|
+
* @three_import import { OBJExporter } from 'three/addons/exporters/OBJExporter.js';
|
|
19
21
|
*/
|
|
20
22
|
class OBJExporter {
|
|
21
23
|
|
|
@@ -248,7 +250,7 @@ class OBJExporter {
|
|
|
248
250
|
|
|
249
251
|
color.fromBufferAttribute( colors, i );
|
|
250
252
|
|
|
251
|
-
ColorManagement.
|
|
253
|
+
ColorManagement.workingToColorSpace( color, SRGBColorSpace );
|
|
252
254
|
|
|
253
255
|
output += ' ' + color.r + ' ' + color.g + ' ' + color.b;
|
|
254
256
|
|
|
@@ -18,6 +18,8 @@ import {
|
|
|
18
18
|
* const exporter = new PLYExporter();
|
|
19
19
|
* const data = exporter.parse( scene, options );
|
|
20
20
|
* ```
|
|
21
|
+
*
|
|
22
|
+
* @three_import import { PLYExporter } from 'three/addons/exporters/PLYExporter.js';
|
|
21
23
|
*/
|
|
22
24
|
class PLYExporter {
|
|
23
25
|
|
|
@@ -318,7 +320,7 @@ class PLYExporter {
|
|
|
318
320
|
|
|
319
321
|
tempColor.fromBufferAttribute( colors, i );
|
|
320
322
|
|
|
321
|
-
ColorManagement.
|
|
323
|
+
ColorManagement.workingToColorSpace( tempColor, SRGBColorSpace );
|
|
322
324
|
|
|
323
325
|
output.setUint8( vOffset, Math.floor( tempColor.r * 255 ) );
|
|
324
326
|
vOffset += 1;
|
|
@@ -477,7 +479,7 @@ class PLYExporter {
|
|
|
477
479
|
|
|
478
480
|
tempColor.fromBufferAttribute( colors, i );
|
|
479
481
|
|
|
480
|
-
ColorManagement.
|
|
482
|
+
ColorManagement.workingToColorSpace( tempColor, SRGBColorSpace );
|
|
481
483
|
|
|
482
484
|
line += ' ' +
|
|
483
485
|
Math.floor( tempColor.r * 255 ) + ' ' +
|
|
@@ -12,6 +12,8 @@ import { Vector3 } from 'three';
|
|
|
12
12
|
* const exporter = new STLExporter();
|
|
13
13
|
* const data = exporter.parse( mesh, { binary: true } );
|
|
14
14
|
* ```
|
|
15
|
+
*
|
|
16
|
+
* @three_import import { STLExporter } from 'three/addons/exporters/STLExporter.js';
|
|
15
17
|
*/
|
|
16
18
|
class STLExporter {
|
|
17
19
|
|