super-three 0.173.5 → 0.176.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/build/three.cjs +21993 -1359
- package/build/three.core.js +21129 -1188
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +835 -142
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +19493 -17617
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +19477 -17617
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +144 -42
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +194 -71
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +74 -30
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +51 -5
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +36 -1
- package/examples/jsm/loaders/DDSLoader.js +25 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +71 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +222 -9
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +87 -19
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +56 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +90 -70
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +105 -13
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +109 -73
- package/examples/jsm/misc/VolumeSlice.js +91 -48
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +75 -2
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +134 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +268 -134
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/AST.js +10 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
- package/examples/jsm/transpiler/TSLEncoder.js +83 -15
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
- package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
- package/examples/jsm/tsl/display/BleachBypass.js +1 -2
- package/examples/jsm/tsl/display/BloomNode.js +15 -16
- package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
- package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
- package/examples/jsm/tsl/display/FXAANode.js +2 -3
- package/examples/jsm/tsl/display/FilmNode.js +9 -8
- package/examples/jsm/tsl/display/GTAONode.js +11 -12
- package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
- package/examples/jsm/tsl/display/LensflareNode.js +15 -16
- package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
- package/examples/jsm/tsl/display/MotionBlur.js +1 -2
- package/examples/jsm/tsl/display/OutlineNode.js +7 -8
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
- package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
- package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
- package/examples/jsm/tsl/display/SMAANode.js +13 -7
- package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
- package/examples/jsm/tsl/display/SSRNode.js +6 -7
- package/examples/jsm/tsl/display/Sepia.js +1 -2
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
- package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
- package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
- package/examples/jsm/tsl/display/TransitionNode.js +4 -5
- package/examples/jsm/tsl/display/hashBlur.js +1 -2
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
- package/examples/jsm/tsl/math/Bayer.js +31 -0
- package/examples/jsm/tsl/utils/Raymarching.js +67 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +3 -4
- package/src/Three.TSL.js +7 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +169 -19
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/Audio.js +339 -0
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +76 -0
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +28 -0
- package/src/cameras/Camera.js +47 -0
- package/src/cameras/CubeCamera.js +66 -0
- package/src/cameras/OrthographicCamera.js +109 -0
- package/src/cameras/PerspectiveCamera.js +163 -40
- package/src/cameras/StereoCamera.js +46 -0
- package/src/constants.js +1429 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/EventDispatcher.js +44 -2
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +593 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +170 -11
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +88 -1
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +13 -780
- package/src/extras/ImageUtils.js +20 -2
- package/src/extras/PMREMGenerator.js +41 -25
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +95 -15
- package/src/extras/core/Curve.js +150 -50
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +29 -3
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +63 -0
- package/src/extras/core/ShapePath.js +76 -0
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/BoxGeometry.js +38 -0
- package/src/geometries/CapsuleGeometry.js +34 -0
- package/src/geometries/CircleGeometry.js +40 -0
- package/src/geometries/ConeGeometry.js +38 -0
- package/src/geometries/CylinderGeometry.js +39 -0
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +28 -0
- package/src/geometries/ExtrudeGeometry.js +112 -28
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +40 -0
- package/src/geometries/OctahedronGeometry.js +32 -0
- package/src/geometries/PlaneGeometry.js +34 -0
- package/src/geometries/PolyhedronGeometry.js +29 -0
- package/src/geometries/RingGeometry.js +36 -0
- package/src/geometries/ShapeGeometry.js +37 -0
- package/src/geometries/SphereGeometry.js +37 -0
- package/src/geometries/TetrahedronGeometry.js +32 -0
- package/src/geometries/TorusGeometry.js +35 -0
- package/src/geometries/TorusKnotGeometry.js +38 -0
- package/src/geometries/TubeGeometry.js +49 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +60 -3
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +45 -5
- package/src/helpers/DirectionalLightHelper.js +52 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +39 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -0
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +39 -2
- package/src/helpers/SpotLightHelper.js +40 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +57 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +32 -0
- package/src/lights/Light.js +36 -0
- package/src/lights/LightProbe.js +43 -0
- package/src/lights/LightShadow.js +159 -0
- package/src/lights/PointLight.js +59 -0
- package/src/lights/PointLightShadow.js +21 -0
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +102 -0
- package/src/lights/SpotLightShadow.js +22 -0
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +130 -0
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +53 -0
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +13 -9
- package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
- package/src/loaders/nodes/NodeObjectLoader.js +12 -12
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +481 -4
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +14 -14
- package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
- package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
- package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
- package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
- package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
- package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
- package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
- package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
- package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
- package/src/materials/nodes/NodeMaterial.js +66 -47
- package/src/materials/nodes/PointsNodeMaterial.js +6 -6
- package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
- package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
- package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
- package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +137 -4
- package/src/math/Frustum.js +83 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +94 -0
- package/src/math/MathUtils.js +405 -19
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +368 -3
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +262 -6
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +70 -8
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +206 -2
- package/src/math/Vector2.js +388 -2
- package/src/math/Vector3.js +541 -4
- package/src/math/Vector4.js +393 -0
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +1 -0
- package/src/nodes/accessors/AccessorsUtils.js +4 -2
- package/src/nodes/accessors/Arrays.js +6 -6
- package/src/nodes/accessors/BatchNode.js +10 -11
- package/src/nodes/accessors/Bitangent.js +6 -2
- package/src/nodes/accessors/BufferAttributeNode.js +33 -31
- package/src/nodes/accessors/BufferNode.js +12 -13
- package/src/nodes/accessors/BuiltinNode.js +7 -8
- package/src/nodes/accessors/Camera.js +9 -2
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +17 -19
- package/src/nodes/accessors/InstanceNode.js +10 -11
- package/src/nodes/accessors/InstancedMeshNode.js +3 -4
- package/src/nodes/accessors/Lights.js +12 -15
- package/src/nodes/accessors/MaterialNode.js +45 -9
- package/src/nodes/accessors/MaterialProperties.js +51 -2
- package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
- package/src/nodes/accessors/ModelNode.js +20 -3
- package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
- package/src/nodes/accessors/MorphNode.js +29 -26
- package/src/nodes/accessors/Normal.js +11 -3
- package/src/nodes/accessors/Object3DNode.js +51 -16
- package/src/nodes/accessors/PointUVNode.js +2 -3
- package/src/nodes/accessors/Position.js +8 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
- package/src/nodes/accessors/ReferenceNode.js +31 -31
- package/src/nodes/accessors/ReflectVector.js +4 -2
- package/src/nodes/accessors/RendererReferenceNode.js +9 -10
- package/src/nodes/accessors/SceneNode.js +5 -4
- package/src/nodes/accessors/SkinningNode.js +53 -44
- package/src/nodes/accessors/StorageBufferNode.js +24 -24
- package/src/nodes/accessors/StorageTextureNode.js +17 -17
- package/src/nodes/accessors/Tangent.js +6 -2
- package/src/nodes/accessors/Texture3DNode.js +11 -12
- package/src/nodes/accessors/TextureBicubic.js +2 -3
- package/src/nodes/accessors/TextureNode.js +68 -47
- package/src/nodes/accessors/TextureSizeNode.js +5 -6
- package/src/nodes/accessors/UV.js +2 -3
- package/src/nodes/accessors/UniformArrayNode.js +24 -24
- package/src/nodes/accessors/UserDataNode.js +11 -12
- package/src/nodes/accessors/VelocityNode.js +4 -5
- package/src/nodes/accessors/VertexColorNode.js +7 -8
- package/src/nodes/code/CodeNode.js +15 -13
- package/src/nodes/code/ExpressionNode.js +8 -9
- package/src/nodes/code/FunctionCallNode.js +29 -9
- package/src/nodes/code/FunctionNode.js +1 -1
- package/src/nodes/code/ScriptableNode.js +27 -28
- package/src/nodes/code/ScriptableValueNode.js +11 -12
- package/src/nodes/core/ArrayNode.js +29 -12
- package/src/nodes/core/AssignNode.js +4 -5
- package/src/nodes/core/AttributeNode.js +8 -9
- package/src/nodes/core/BypassNode.js +3 -4
- package/src/nodes/core/CacheNode.js +5 -6
- package/src/nodes/core/ConstNode.js +4 -4
- package/src/nodes/core/ContextNode.js +9 -9
- package/src/nodes/core/IndexNode.js +8 -4
- package/src/nodes/core/InputNode.js +7 -7
- package/src/nodes/core/LightingModel.js +17 -17
- package/src/nodes/core/MRTNode.js +9 -10
- package/src/nodes/core/Node.js +49 -37
- package/src/nodes/core/NodeAttribute.js +7 -7
- package/src/nodes/core/NodeBuilder.js +248 -175
- package/src/nodes/core/NodeCache.js +4 -4
- package/src/nodes/core/NodeCode.js +6 -6
- package/src/nodes/core/NodeFrame.js +10 -10
- package/src/nodes/core/NodeFunction.js +8 -8
- package/src/nodes/core/NodeFunctionInput.js +8 -8
- package/src/nodes/core/NodeParser.js +1 -1
- package/src/nodes/core/NodeUniform.js +7 -7
- package/src/nodes/core/NodeUtils.js +22 -24
- package/src/nodes/core/NodeVar.js +9 -9
- package/src/nodes/core/NodeVarying.js +4 -4
- package/src/nodes/core/OutputStructNode.js +2 -3
- package/src/nodes/core/ParameterNode.js +6 -7
- package/src/nodes/core/PropertyNode.js +41 -13
- package/src/nodes/core/StackNode.js +11 -12
- package/src/nodes/core/StructNode.js +2 -3
- package/src/nodes/core/StructTypeNode.js +10 -6
- package/src/nodes/core/TempNode.js +3 -3
- package/src/nodes/core/UniformGroupNode.js +15 -12
- package/src/nodes/core/UniformNode.js +9 -10
- package/src/nodes/core/VarNode.js +14 -18
- package/src/nodes/core/VaryingNode.js +10 -10
- package/src/nodes/core/constants.js +0 -2
- package/src/nodes/display/BlendModes.js +21 -14
- package/src/nodes/display/BumpMapNode.js +5 -6
- package/src/nodes/display/ColorAdjustment.js +13 -9
- package/src/nodes/display/ColorSpaceFunctions.js +4 -4
- package/src/nodes/display/ColorSpaceNode.js +15 -12
- package/src/nodes/display/FrontFacingNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +5 -6
- package/src/nodes/display/PassNode.js +122 -35
- package/src/nodes/display/PosterizeNode.js +2 -3
- package/src/nodes/display/RenderOutputNode.js +8 -9
- package/src/nodes/display/ScreenNode.js +16 -7
- package/src/nodes/display/ToneMappingFunctions.js +12 -8
- package/src/nodes/display/ToneMappingNode.js +8 -8
- package/src/nodes/display/ToonOutlinePassNode.js +3 -4
- package/src/nodes/display/ViewportDepthNode.js +15 -7
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
- package/src/nodes/display/ViewportTextureNode.js +16 -16
- package/src/nodes/fog/Fog.js +5 -2
- package/src/nodes/functions/BSDF/LTC.js +45 -1
- package/src/nodes/functions/BasicLightingModel.js +5 -8
- package/src/nodes/functions/PhongLightingModel.js +6 -8
- package/src/nodes/functions/PhysicalLightingModel.js +40 -42
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/ToonLightingModel.js +5 -6
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
- package/src/nodes/geometry/RangeNode.js +4 -5
- package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
- package/src/nodes/gpgpu/BarrierNode.js +6 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
- package/src/nodes/gpgpu/ComputeNode.js +43 -16
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +50 -9
- package/src/nodes/lighting/BasicLightMapNode.js +2 -2
- package/src/nodes/lighting/DirectionalLightNode.js +3 -12
- package/src/nodes/lighting/EnvironmentNode.js +5 -8
- package/src/nodes/lighting/HemisphereLightNode.js +1 -1
- package/src/nodes/lighting/LightProbeNode.js +1 -1
- package/src/nodes/lighting/LightUtils.js +1 -5
- package/src/nodes/lighting/LightingContextNode.js +10 -10
- package/src/nodes/lighting/LightingNode.js +1 -1
- package/src/nodes/lighting/LightsNode.js +68 -25
- package/src/nodes/lighting/PointLightNode.js +12 -27
- package/src/nodes/lighting/PointShadowNode.js +5 -6
- package/src/nodes/lighting/RectAreaLightNode.js +5 -10
- package/src/nodes/lighting/ShadowBaseNode.js +8 -9
- package/src/nodes/lighting/ShadowNode.js +28 -15
- package/src/nodes/lighting/SpotLightNode.js +8 -19
- package/src/nodes/math/ConditionalNode.js +26 -9
- package/src/nodes/math/Hash.js +2 -3
- package/src/nodes/math/MathNode.js +217 -150
- package/src/nodes/math/MathUtils.js +8 -6
- package/src/nodes/math/OperatorNode.js +198 -89
- package/src/nodes/math/TriNoise3D.js +2 -3
- package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
- package/src/nodes/parsers/GLSLNodeParser.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +61 -37
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/procedural/Checker.js +2 -3
- package/src/nodes/shapes/Shapes.js +2 -3
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +117 -19
- package/src/nodes/utils/ArrayElementNode.js +5 -3
- package/src/nodes/utils/ConvertNode.js +3 -3
- package/src/nodes/utils/CubeMapNode.js +7 -8
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/Discard.js +5 -5
- package/src/nodes/utils/EquirectUVNode.js +3 -4
- package/src/nodes/utils/FlipNode.js +3 -3
- package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
- package/src/nodes/utils/JoinNode.js +29 -4
- package/src/nodes/utils/LoopNode.js +67 -35
- package/src/nodes/utils/MatcapUVNode.js +1 -2
- package/src/nodes/utils/MaxMipLevelNode.js +4 -5
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Oscillators.js +8 -6
- package/src/nodes/utils/Packing.js +4 -4
- package/src/nodes/utils/PostProcessingUtils.js +6 -5
- package/src/nodes/utils/RTTNode.js +19 -19
- package/src/nodes/utils/ReflectorNode.js +35 -25
- package/src/nodes/utils/RemapNode.js +9 -9
- package/src/nodes/utils/RotateNode.js +3 -4
- package/src/nodes/utils/SetNode.js +3 -3
- package/src/nodes/utils/SplitNode.js +5 -5
- package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
- package/src/nodes/utils/SpriteUtils.js +5 -6
- package/src/nodes/utils/StorageArrayElementNode.js +3 -4
- package/src/nodes/utils/Timer.js +9 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
- package/src/nodes/utils/UVUtils.js +4 -4
- package/src/nodes/utils/ViewportUtils.js +3 -4
- package/src/objects/BatchedMesh.js +319 -32
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +4 -4
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +99 -5
- package/src/objects/Line.js +82 -0
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +75 -0
- package/src/objects/Points.js +60 -0
- package/src/objects/Skeleton.js +105 -0
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +622 -83
- package/src/renderers/common/Animation.js +6 -6
- package/src/renderers/common/Attributes.js +3 -3
- package/src/renderers/common/Backend.js +40 -31
- package/src/renderers/common/Background.js +4 -3
- package/src/renderers/common/BindGroup.js +5 -5
- package/src/renderers/common/Binding.js +4 -4
- package/src/renderers/common/Bindings.js +10 -0
- package/src/renderers/common/Buffer.js +5 -5
- package/src/renderers/common/BufferUtils.js +7 -9
- package/src/renderers/common/BundleGroup.js +6 -6
- package/src/renderers/common/ChainMap.js +3 -3
- package/src/renderers/common/ClippingContext.js +8 -8
- package/src/renderers/common/Color4.js +8 -8
- package/src/renderers/common/ComputePipeline.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/DataMap.js +2 -2
- package/src/renderers/common/Geometries.js +6 -6
- package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
- package/src/renderers/common/Info.js +17 -17
- package/src/renderers/common/Pipeline.js +3 -3
- package/src/renderers/common/Pipelines.js +12 -12
- package/src/renderers/common/PostProcessing.js +13 -1
- package/src/renderers/common/ProgrammableStage.js +11 -11
- package/src/renderers/common/QuadMesh.js +5 -3
- package/src/renderers/common/RenderContext.js +24 -24
- package/src/renderers/common/RenderContexts.js +4 -4
- package/src/renderers/common/RenderList.js +16 -16
- package/src/renderers/common/RenderObject.js +27 -27
- package/src/renderers/common/RenderObjects.js +4 -4
- package/src/renderers/common/RenderPipeline.js +1 -1
- package/src/renderers/common/Renderer.js +272 -200
- package/src/renderers/common/RendererUtils.js +0 -2
- package/src/renderers/common/SampledTexture.js +20 -20
- package/src/renderers/common/Sampler.js +5 -5
- package/src/renderers/common/StorageBuffer.js +2 -2
- package/src/renderers/common/StorageBufferAttribute.js +4 -4
- package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
- package/src/renderers/common/StorageTexture.js +6 -6
- package/src/renderers/common/Textures.js +6 -6
- package/src/renderers/common/TimestampQueryPool.js +66 -7
- package/src/renderers/common/Uniform.js +26 -26
- package/src/renderers/common/UniformBuffer.js +2 -2
- package/src/renderers/common/UniformsGroup.js +18 -18
- package/src/renderers/common/XRManager.js +369 -54
- package/src/renderers/common/XRRenderTarget.js +5 -5
- package/src/renderers/common/extras/PMREMGenerator.js +62 -37
- package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
- package/src/renderers/common/nodes/NodeLibrary.js +13 -13
- package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
- package/src/renderers/common/nodes/NodeSampler.js +1 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
- package/src/renderers/common/nodes/NodeUniform.js +9 -9
- package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
- package/src/renderers/common/nodes/Nodes.js +13 -13
- package/src/renderers/shaders/UniformsLib.js +1 -4
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLState.js +19 -19
- package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
- package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
- package/src/renderers/webgpu/WebGPUBackend.js +200 -119
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
- package/src/renderers/webgpu/WebGPURenderer.js +19 -13
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
- package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +185 -9
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +88 -0
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +61 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +362 -3
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -33,7 +33,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
33
33
|
/**
|
|
34
34
|
* Constructs a new node material for wide line rendering.
|
|
35
35
|
*
|
|
36
|
-
* @param {Object
|
|
36
|
+
* @param {Object} [parameters={}] - The configuration parameter.
|
|
37
37
|
*/
|
|
38
38
|
constructor( parameters = {} ) {
|
|
39
39
|
|
|
@@ -42,7 +42,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
42
42
|
/**
|
|
43
43
|
* This flag can be used for type testing.
|
|
44
44
|
*
|
|
45
|
-
* @type {
|
|
45
|
+
* @type {boolean}
|
|
46
46
|
* @readonly
|
|
47
47
|
* @default true
|
|
48
48
|
*/
|
|
@@ -53,7 +53,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
53
53
|
/**
|
|
54
54
|
* Whether vertex colors should be used or not.
|
|
55
55
|
*
|
|
56
|
-
* @type {
|
|
56
|
+
* @type {boolean}
|
|
57
57
|
* @default false
|
|
58
58
|
*/
|
|
59
59
|
this.useColor = parameters.vertexColors;
|
|
@@ -61,7 +61,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
61
61
|
/**
|
|
62
62
|
* The dash offset.
|
|
63
63
|
*
|
|
64
|
-
* @type {
|
|
64
|
+
* @type {number}
|
|
65
65
|
* @default 0
|
|
66
66
|
*/
|
|
67
67
|
this.dashOffset = 0;
|
|
@@ -69,7 +69,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
69
69
|
/**
|
|
70
70
|
* The line width.
|
|
71
71
|
*
|
|
72
|
-
* @type {
|
|
72
|
+
* @type {number}
|
|
73
73
|
* @default 0
|
|
74
74
|
*/
|
|
75
75
|
this.lineWidth = 1;
|
|
@@ -77,7 +77,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
77
77
|
/**
|
|
78
78
|
* Defines the lines color.
|
|
79
79
|
*
|
|
80
|
-
* @type {Node<vec3
|
|
80
|
+
* @type {?Node<vec3>}
|
|
81
81
|
* @default null
|
|
82
82
|
*/
|
|
83
83
|
this.lineColorNode = null;
|
|
@@ -85,7 +85,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
85
85
|
/**
|
|
86
86
|
* Defines the offset.
|
|
87
87
|
*
|
|
88
|
-
* @type {Node<float
|
|
88
|
+
* @type {?Node<float>}
|
|
89
89
|
* @default null
|
|
90
90
|
*/
|
|
91
91
|
this.offsetNode = null;
|
|
@@ -93,7 +93,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
93
93
|
/**
|
|
94
94
|
* Defines the dash scale.
|
|
95
95
|
*
|
|
96
|
-
* @type {Node<float
|
|
96
|
+
* @type {?Node<float>}
|
|
97
97
|
* @default null
|
|
98
98
|
*/
|
|
99
99
|
this.dashScaleNode = null;
|
|
@@ -101,7 +101,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
101
101
|
/**
|
|
102
102
|
* Defines the dash size.
|
|
103
103
|
*
|
|
104
|
-
* @type {Node<float
|
|
104
|
+
* @type {?Node<float>}
|
|
105
105
|
* @default null
|
|
106
106
|
*/
|
|
107
107
|
this.dashSizeNode = null;
|
|
@@ -109,7 +109,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
109
109
|
/**
|
|
110
110
|
* Defines the gap size.
|
|
111
111
|
*
|
|
112
|
-
* @type {Node<float
|
|
112
|
+
* @type {?Node<float>}
|
|
113
113
|
* @default null
|
|
114
114
|
*/
|
|
115
115
|
this.gapSizeNode = null;
|
|
@@ -118,7 +118,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
118
118
|
* Blending is set to `NoBlending` since transparency
|
|
119
119
|
* is not supported, yet.
|
|
120
120
|
*
|
|
121
|
-
* @type {
|
|
121
|
+
* @type {number}
|
|
122
122
|
* @default 0
|
|
123
123
|
*/
|
|
124
124
|
this.blending = NoBlending;
|
|
@@ -479,7 +479,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
479
479
|
* Whether the lines should sized in world units or not.
|
|
480
480
|
* When set to `false` the unit is pixel.
|
|
481
481
|
*
|
|
482
|
-
* @type {
|
|
482
|
+
* @type {boolean}
|
|
483
483
|
* @default false
|
|
484
484
|
*/
|
|
485
485
|
get worldUnits() {
|
|
@@ -502,7 +502,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
502
502
|
/**
|
|
503
503
|
* Whether the lines should be dashed or not.
|
|
504
504
|
*
|
|
505
|
-
* @type {
|
|
505
|
+
* @type {boolean}
|
|
506
506
|
* @default false
|
|
507
507
|
*/
|
|
508
508
|
get dashed() {
|
|
@@ -525,7 +525,7 @@ class Line2NodeMaterial extends NodeMaterial {
|
|
|
525
525
|
/**
|
|
526
526
|
* Whether alpha to coverage should be used or not.
|
|
527
527
|
*
|
|
528
|
-
* @type {
|
|
528
|
+
* @type {boolean}
|
|
529
529
|
* @default true
|
|
530
530
|
*/
|
|
531
531
|
get alphaToCoverage() {
|
|
@@ -5,7 +5,7 @@ import { LineBasicMaterial } from '../LineBasicMaterial.js';
|
|
|
5
5
|
const _defaultValues = /*@__PURE__*/ new LineBasicMaterial();
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Node material version of
|
|
8
|
+
* Node material version of {@link LineBasicMaterial}.
|
|
9
9
|
*
|
|
10
10
|
* @augments NodeMaterial
|
|
11
11
|
*/
|
|
@@ -20,7 +20,7 @@ class LineBasicNodeMaterial extends NodeMaterial {
|
|
|
20
20
|
/**
|
|
21
21
|
* Constructs a new line basic node material.
|
|
22
22
|
*
|
|
23
|
-
* @param {Object
|
|
23
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
24
24
|
*/
|
|
25
25
|
constructor( parameters ) {
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@ class LineBasicNodeMaterial extends NodeMaterial {
|
|
|
29
29
|
/**
|
|
30
30
|
* This flag can be used for type testing.
|
|
31
31
|
*
|
|
32
|
-
* @type {
|
|
32
|
+
* @type {boolean}
|
|
33
33
|
* @readonly
|
|
34
34
|
* @default true
|
|
35
35
|
*/
|
|
@@ -9,7 +9,7 @@ import { LineDashedMaterial } from '../LineDashedMaterial.js';
|
|
|
9
9
|
const _defaultValues = /*@__PURE__*/ new LineDashedMaterial();
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Node material version of
|
|
12
|
+
* Node material version of {@link LineDashedMaterial}.
|
|
13
13
|
*
|
|
14
14
|
* @augments NodeMaterial
|
|
15
15
|
*/
|
|
@@ -24,7 +24,7 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
24
24
|
/**
|
|
25
25
|
* Constructs a new line dashed node material.
|
|
26
26
|
*
|
|
27
|
-
* @param {Object
|
|
27
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
28
28
|
*/
|
|
29
29
|
constructor( parameters ) {
|
|
30
30
|
|
|
@@ -33,7 +33,7 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
33
33
|
/**
|
|
34
34
|
* This flag can be used for type testing.
|
|
35
35
|
*
|
|
36
|
-
* @type {
|
|
36
|
+
* @type {boolean}
|
|
37
37
|
* @readonly
|
|
38
38
|
* @default true
|
|
39
39
|
*/
|
|
@@ -44,7 +44,7 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
44
44
|
/**
|
|
45
45
|
* The dash offset.
|
|
46
46
|
*
|
|
47
|
-
* @type {
|
|
47
|
+
* @type {number}
|
|
48
48
|
* @default 0
|
|
49
49
|
*/
|
|
50
50
|
this.dashOffset = 0;
|
|
@@ -55,9 +55,9 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
55
55
|
* and define the offset with a node instead.
|
|
56
56
|
*
|
|
57
57
|
* If you don't want to overwrite the offset but modify the existing
|
|
58
|
-
* value instead, use {@link
|
|
58
|
+
* value instead, use {@link materialLineDashOffset}.
|
|
59
59
|
*
|
|
60
|
-
* @type {Node<float
|
|
60
|
+
* @type {?Node<float>}
|
|
61
61
|
* @default null
|
|
62
62
|
*/
|
|
63
63
|
this.offsetNode = null;
|
|
@@ -68,9 +68,9 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
68
68
|
* and define the scale with a node instead.
|
|
69
69
|
*
|
|
70
70
|
* If you don't want to overwrite the scale but modify the existing
|
|
71
|
-
* value instead, use {@link
|
|
71
|
+
* value instead, use {@link materialLineScale}.
|
|
72
72
|
*
|
|
73
|
-
* @type {Node<float
|
|
73
|
+
* @type {?Node<float>}
|
|
74
74
|
* @default null
|
|
75
75
|
*/
|
|
76
76
|
this.dashScaleNode = null;
|
|
@@ -81,9 +81,9 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
81
81
|
* and define the dash size with a node instead.
|
|
82
82
|
*
|
|
83
83
|
* If you don't want to overwrite the dash size but modify the existing
|
|
84
|
-
* value instead, use {@link
|
|
84
|
+
* value instead, use {@link materialLineDashSize}.
|
|
85
85
|
*
|
|
86
|
-
* @type {Node<float
|
|
86
|
+
* @type {?Node<float>}
|
|
87
87
|
* @default null
|
|
88
88
|
*/
|
|
89
89
|
this.dashSizeNode = null;
|
|
@@ -94,9 +94,9 @@ class LineDashedNodeMaterial extends NodeMaterial {
|
|
|
94
94
|
* and define the gap size with a node instead.
|
|
95
95
|
*
|
|
96
96
|
* If you don't want to overwrite the gap size but modify the existing
|
|
97
|
-
* value instead, use {@link
|
|
97
|
+
* value instead, use {@link materialLineGapSize}.
|
|
98
98
|
*
|
|
99
|
-
* @type {Node<float
|
|
99
|
+
* @type {?Node<float>}
|
|
100
100
|
* @default null
|
|
101
101
|
*/
|
|
102
102
|
this.gapSizeNode = null;
|
|
@@ -11,7 +11,7 @@ import { MeshBasicMaterial } from '../MeshBasicMaterial.js';
|
|
|
11
11
|
const _defaultValues = /*@__PURE__*/ new MeshBasicMaterial();
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Node material version of
|
|
14
|
+
* Node material version of {@link MeshBasicMaterial}.
|
|
15
15
|
*
|
|
16
16
|
* @augments NodeMaterial
|
|
17
17
|
*/
|
|
@@ -26,7 +26,7 @@ class MeshBasicNodeMaterial extends NodeMaterial {
|
|
|
26
26
|
/**
|
|
27
27
|
* Constructs a new mesh basic node material.
|
|
28
28
|
*
|
|
29
|
-
* @param {Object
|
|
29
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
30
30
|
*/
|
|
31
31
|
constructor( parameters ) {
|
|
32
32
|
|
|
@@ -35,7 +35,7 @@ class MeshBasicNodeMaterial extends NodeMaterial {
|
|
|
35
35
|
/**
|
|
36
36
|
* This flag can be used for type testing.
|
|
37
37
|
*
|
|
38
|
-
* @type {
|
|
38
|
+
* @type {boolean}
|
|
39
39
|
* @readonly
|
|
40
40
|
* @default true
|
|
41
41
|
*/
|
|
@@ -46,7 +46,7 @@ class MeshBasicNodeMaterial extends NodeMaterial {
|
|
|
46
46
|
* this property to `true` since we use a lighting model to compute
|
|
47
47
|
* the outgoing light of the fragment shader.
|
|
48
48
|
*
|
|
49
|
-
* @type {
|
|
49
|
+
* @type {boolean}
|
|
50
50
|
* @default true
|
|
51
51
|
*/
|
|
52
52
|
this.lights = true;
|
|
@@ -59,7 +59,7 @@ class MeshBasicNodeMaterial extends NodeMaterial {
|
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Basic materials are not affected by normal and bump maps so we
|
|
62
|
-
* return by default {@link
|
|
62
|
+
* return by default {@link normalView}.
|
|
63
63
|
*
|
|
64
64
|
* @return {Node<vec3>} The normal node.
|
|
65
65
|
*/
|
|
@@ -74,7 +74,7 @@ class MeshBasicNodeMaterial extends NodeMaterial {
|
|
|
74
74
|
* to implement the default environment mapping.
|
|
75
75
|
*
|
|
76
76
|
* @param {NodeBuilder} builder - The current node builder.
|
|
77
|
-
* @return {BasicEnvironmentNode<vec3
|
|
77
|
+
* @return {?BasicEnvironmentNode<vec3>} The environment node.
|
|
78
78
|
*/
|
|
79
79
|
setupEnvironment( builder ) {
|
|
80
80
|
|
|
@@ -89,7 +89,7 @@ class MeshBasicNodeMaterial extends NodeMaterial {
|
|
|
89
89
|
* with a special scaling factor for basic materials.
|
|
90
90
|
*
|
|
91
91
|
* @param {NodeBuilder} builder - The current node builder.
|
|
92
|
-
* @return {BasicLightMapNode<vec3
|
|
92
|
+
* @return {?BasicLightMapNode<vec3>} The light map node.
|
|
93
93
|
*/
|
|
94
94
|
setupLightMap( builder ) {
|
|
95
95
|
|
|
@@ -7,7 +7,7 @@ import { MeshLambertMaterial } from '../MeshLambertMaterial.js';
|
|
|
7
7
|
const _defaultValues = /*@__PURE__*/ new MeshLambertMaterial();
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Node material version of
|
|
10
|
+
* Node material version of {@link MeshLambertMaterial}.
|
|
11
11
|
*
|
|
12
12
|
* @augments NodeMaterial
|
|
13
13
|
*/
|
|
@@ -22,7 +22,7 @@ class MeshLambertNodeMaterial extends NodeMaterial {
|
|
|
22
22
|
/**
|
|
23
23
|
* Constructs a new mesh lambert node material.
|
|
24
24
|
*
|
|
25
|
-
* @param {Object
|
|
25
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
26
26
|
*/
|
|
27
27
|
constructor( parameters ) {
|
|
28
28
|
|
|
@@ -31,7 +31,7 @@ class MeshLambertNodeMaterial extends NodeMaterial {
|
|
|
31
31
|
/**
|
|
32
32
|
* This flag can be used for type testing.
|
|
33
33
|
*
|
|
34
|
-
* @type {
|
|
34
|
+
* @type {boolean}
|
|
35
35
|
* @readonly
|
|
36
36
|
* @default true
|
|
37
37
|
*/
|
|
@@ -40,7 +40,7 @@ class MeshLambertNodeMaterial extends NodeMaterial {
|
|
|
40
40
|
/**
|
|
41
41
|
* Set to `true` because lambert materials react on lights.
|
|
42
42
|
*
|
|
43
|
-
* @type {
|
|
43
|
+
* @type {boolean}
|
|
44
44
|
* @default true
|
|
45
45
|
*/
|
|
46
46
|
this.lights = true;
|
|
@@ -56,7 +56,7 @@ class MeshLambertNodeMaterial extends NodeMaterial {
|
|
|
56
56
|
* to implement the default environment mapping.
|
|
57
57
|
*
|
|
58
58
|
* @param {NodeBuilder} builder - The current node builder.
|
|
59
|
-
* @return {BasicEnvironmentNode<vec3
|
|
59
|
+
* @return {?BasicEnvironmentNode<vec3>} The environment node.
|
|
60
60
|
*/
|
|
61
61
|
setupEnvironment( builder ) {
|
|
62
62
|
|
|
@@ -10,7 +10,7 @@ import { MeshMatcapMaterial } from '../MeshMatcapMaterial.js';
|
|
|
10
10
|
const _defaultValues = /*@__PURE__*/ new MeshMatcapMaterial();
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Node material version of
|
|
13
|
+
* Node material version of {@link MeshMatcapMaterial}.
|
|
14
14
|
*
|
|
15
15
|
* @augments NodeMaterial
|
|
16
16
|
*/
|
|
@@ -25,7 +25,7 @@ class MeshMatcapNodeMaterial extends NodeMaterial {
|
|
|
25
25
|
/**
|
|
26
26
|
* Constructs a new mesh normal node material.
|
|
27
27
|
*
|
|
28
|
-
* @param {Object
|
|
28
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
29
29
|
*/
|
|
30
30
|
constructor( parameters ) {
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ class MeshMatcapNodeMaterial extends NodeMaterial {
|
|
|
34
34
|
/**
|
|
35
35
|
* This flag can be used for type testing.
|
|
36
36
|
*
|
|
37
|
-
* @type {
|
|
37
|
+
* @type {boolean}
|
|
38
38
|
* @readonly
|
|
39
39
|
* @default true
|
|
40
40
|
*/
|
|
@@ -3,14 +3,16 @@ import { diffuseColor } from '../../nodes/core/PropertyNode.js';
|
|
|
3
3
|
import { directionToColor } from '../../nodes/utils/Packing.js';
|
|
4
4
|
import { materialOpacity } from '../../nodes/accessors/MaterialNode.js';
|
|
5
5
|
import { transformedNormalView } from '../../nodes/accessors/Normal.js';
|
|
6
|
+
import { colorSpaceToWorking } from '../../nodes/display/ColorSpaceNode.js';
|
|
6
7
|
import { float, vec4 } from '../../nodes/tsl/TSLBase.js';
|
|
8
|
+
import { SRGBColorSpace } from '../../constants.js';
|
|
7
9
|
|
|
8
10
|
import { MeshNormalMaterial } from '../MeshNormalMaterial.js';
|
|
9
11
|
|
|
10
12
|
const _defaultValues = /*@__PURE__*/ new MeshNormalMaterial();
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
|
-
* Node material version of
|
|
15
|
+
* Node material version of {@link MeshNormalMaterial}.
|
|
14
16
|
*
|
|
15
17
|
* @augments NodeMaterial
|
|
16
18
|
*/
|
|
@@ -25,7 +27,7 @@ class MeshNormalNodeMaterial extends NodeMaterial {
|
|
|
25
27
|
/**
|
|
26
28
|
* Constructs a new mesh normal node material.
|
|
27
29
|
*
|
|
28
|
-
* @param {Object
|
|
30
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
29
31
|
*/
|
|
30
32
|
constructor( parameters ) {
|
|
31
33
|
|
|
@@ -34,7 +36,7 @@ class MeshNormalNodeMaterial extends NodeMaterial {
|
|
|
34
36
|
/**
|
|
35
37
|
* This flag can be used for type testing.
|
|
36
38
|
*
|
|
37
|
-
* @type {
|
|
39
|
+
* @type {boolean}
|
|
38
40
|
* @readonly
|
|
39
41
|
* @default true
|
|
40
42
|
*/
|
|
@@ -54,7 +56,9 @@ class MeshNormalNodeMaterial extends NodeMaterial {
|
|
|
54
56
|
|
|
55
57
|
const opacityNode = this.opacityNode ? float( this.opacityNode ) : materialOpacity;
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
// By convention, a normal packed to RGB is in sRGB color space. Convert it to working color space.
|
|
60
|
+
|
|
61
|
+
diffuseColor.assign( colorSpaceToWorking( vec4( directionToColor( transformedNormalView ), opacityNode ), SRGBColorSpace ) );
|
|
58
62
|
|
|
59
63
|
}
|
|
60
64
|
|
|
@@ -10,7 +10,7 @@ import { MeshPhongMaterial } from '../MeshPhongMaterial.js';
|
|
|
10
10
|
const _defaultValues = /*@__PURE__*/ new MeshPhongMaterial();
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Node material version of
|
|
13
|
+
* Node material version of {@link MeshPhongMaterial}.
|
|
14
14
|
*
|
|
15
15
|
* @augments NodeMaterial
|
|
16
16
|
*/
|
|
@@ -25,7 +25,7 @@ class MeshPhongNodeMaterial extends NodeMaterial {
|
|
|
25
25
|
/**
|
|
26
26
|
* Constructs a new mesh lambert node material.
|
|
27
27
|
*
|
|
28
|
-
* @param {Object
|
|
28
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
29
29
|
*/
|
|
30
30
|
constructor( parameters ) {
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ class MeshPhongNodeMaterial extends NodeMaterial {
|
|
|
34
34
|
/**
|
|
35
35
|
* This flag can be used for type testing.
|
|
36
36
|
*
|
|
37
|
-
* @type {
|
|
37
|
+
* @type {boolean}
|
|
38
38
|
* @readonly
|
|
39
39
|
* @default true
|
|
40
40
|
*/
|
|
@@ -43,7 +43,7 @@ class MeshPhongNodeMaterial extends NodeMaterial {
|
|
|
43
43
|
/**
|
|
44
44
|
* Set to `true` because phong materials react on lights.
|
|
45
45
|
*
|
|
46
|
-
* @type {
|
|
46
|
+
* @type {boolean}
|
|
47
47
|
* @default true
|
|
48
48
|
*/
|
|
49
49
|
this.lights = true;
|
|
@@ -54,9 +54,9 @@ class MeshPhongNodeMaterial extends NodeMaterial {
|
|
|
54
54
|
* and define the shininess with a node instead.
|
|
55
55
|
*
|
|
56
56
|
* If you don't want to overwrite the shininess but modify the existing
|
|
57
|
-
* value instead, use {@link
|
|
57
|
+
* value instead, use {@link materialShininess}.
|
|
58
58
|
*
|
|
59
|
-
* @type {Node<float
|
|
59
|
+
* @type {?Node<float>}
|
|
60
60
|
* @default null
|
|
61
61
|
*/
|
|
62
62
|
this.shininessNode = null;
|
|
@@ -67,9 +67,9 @@ class MeshPhongNodeMaterial extends NodeMaterial {
|
|
|
67
67
|
* and define the specular color with a node instead.
|
|
68
68
|
*
|
|
69
69
|
* If you don't want to overwrite the specular color but modify the existing
|
|
70
|
-
* value instead, use {@link
|
|
70
|
+
* value instead, use {@link materialSpecular}.
|
|
71
71
|
*
|
|
72
|
-
* @type {Node<vec3
|
|
72
|
+
* @type {?Node<vec3>}
|
|
73
73
|
* @default null
|
|
74
74
|
*/
|
|
75
75
|
this.specularNode = null;
|
|
@@ -85,7 +85,7 @@ class MeshPhongNodeMaterial extends NodeMaterial {
|
|
|
85
85
|
* to implement the default environment mapping.
|
|
86
86
|
*
|
|
87
87
|
* @param {NodeBuilder} builder - The current node builder.
|
|
88
|
-
* @return {BasicEnvironmentNode<vec3
|
|
88
|
+
* @return {?BasicEnvironmentNode<vec3>} The environment node.
|
|
89
89
|
*/
|
|
90
90
|
setupEnvironment( builder ) {
|
|
91
91
|
|