super-three 0.181.0 → 0.185.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/LICENSE +1 -1
- package/README.md +3 -4
- package/build/three.cjs +21332 -19201
- package/build/three.core.js +20908 -19853
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +1947 -862
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +37 -16
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +33628 -25197
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +33394 -25000
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/jsm/Addons.js +14 -3
- package/examples/jsm/animation/CCDIKSolver.js +7 -3
- package/examples/jsm/controls/ArcballControls.js +13 -6
- package/examples/jsm/controls/DragControls.js +2 -2
- package/examples/jsm/controls/FirstPersonControls.js +127 -86
- package/examples/jsm/controls/FlyControls.js +4 -0
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +111 -8
- package/examples/jsm/controls/TrackballControls.js +8 -8
- package/examples/jsm/controls/TransformControls.js +102 -17
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMFrustum.js +31 -6
- package/examples/jsm/csm/CSMShadowNode.js +10 -3
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +14 -1
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +27 -6
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +266 -21
- package/examples/jsm/exporters/PLYExporter.js +286 -73
- package/examples/jsm/exporters/USDZExporter.js +353 -99
- package/examples/jsm/generators/CityGenerator.js +346 -0
- package/examples/jsm/generators/ForestGenerator.js +347 -0
- package/examples/jsm/generators/TerrainGenerator.js +504 -0
- package/examples/jsm/generators/TreeGenerator.js +377 -0
- package/examples/jsm/generators/city/SidewalkGenerator.js +253 -0
- package/examples/jsm/generators/city/SkyscraperGenerator.js +1357 -0
- package/examples/jsm/geometries/DecalGeometry.js +1 -1
- package/examples/jsm/geometries/LoftGeometry.js +355 -0
- package/examples/jsm/geometries/TextGeometry.js +18 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelper.js +5 -4
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +83 -14
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +244 -91
- package/examples/jsm/inspector/RendererInspector.js +165 -39
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
- package/examples/jsm/inspector/tabs/Console.js +241 -25
- package/examples/jsm/inspector/tabs/Memory.js +136 -0
- package/examples/jsm/inspector/tabs/Parameters.js +115 -7
- package/examples/jsm/inspector/tabs/Performance.js +24 -9
- package/examples/jsm/inspector/tabs/Settings.js +306 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1696 -0
- package/examples/jsm/inspector/tabs/Viewer.js +723 -9
- package/examples/jsm/inspector/ui/Graph.js +162 -25
- package/examples/jsm/inspector/ui/Item.js +92 -13
- package/examples/jsm/inspector/ui/List.js +2 -2
- package/examples/jsm/inspector/ui/Profiler.js +1991 -44
- package/examples/jsm/inspector/ui/Style.js +1943 -543
- package/examples/jsm/inspector/ui/Tab.js +226 -5
- package/examples/jsm/inspector/ui/Values.js +126 -8
- package/examples/jsm/inspector/ui/utils.js +143 -10
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- package/examples/jsm/libs/basis/README.md +0 -1
- package/examples/jsm/libs/demuxer_mp4.js +3 -3
- package/examples/jsm/libs/draco/README.md +0 -1
- package/examples/jsm/libs/meshopt_clusterizer.module.js +421 -0
- package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/libs/meshopt_simplifier.module.js +627 -0
- package/examples/jsm/libs/mikktspace.module.js +34 -9
- package/examples/jsm/lighting/ClusteredLighting.js +55 -0
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +681 -0
- package/examples/jsm/lines/LineMaterial.js +45 -16
- package/examples/jsm/lines/LineSegments2.js +8 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +8 -0
- package/examples/jsm/loaders/3DMLoader.js +6 -5
- package/examples/jsm/loaders/3MFLoader.js +2 -2
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +24 -4026
- package/examples/jsm/loaders/DRACOLoader.js +51 -18
- package/examples/jsm/loaders/EXRLoader.js +701 -90
- package/examples/jsm/loaders/FBXLoader.js +235 -37
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +146 -178
- package/examples/jsm/loaders/HDRLoader.js +7 -30
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +58 -17
- package/examples/jsm/loaders/LDrawLoader.js +49 -58
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
- package/examples/jsm/loaders/LWOLoader.js +11 -39
- package/examples/jsm/loaders/LottieLoader.js +1 -1
- package/examples/jsm/loaders/MaterialXLoader.js +31 -9
- package/examples/jsm/loaders/NRRDLoader.js +5 -5
- package/examples/jsm/loaders/PCDLoader.js +11 -9
- package/examples/jsm/loaders/PLYLoader.js +218 -55
- package/examples/jsm/loaders/SVGLoader.js +549 -497
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +1 -1
- package/examples/jsm/loaders/USDLoader.js +127 -43
- package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +80 -3
- package/examples/jsm/loaders/VTKLoader.js +42 -25
- package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
- package/examples/jsm/loaders/usd/USDAParser.js +504 -344
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4627 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TileCreasedNormalsPlugin.js +270 -0
- package/examples/jsm/misc/Volume.js +2 -3
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/GroundedSkybox.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +72 -25
- package/examples/jsm/objects/Sky.js +90 -6
- package/examples/jsm/objects/SkyMesh.js +150 -16
- package/examples/jsm/objects/Water.js +4 -3
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/Water2Mesh.js +1 -1
- package/examples/jsm/objects/WaterMesh.js +5 -7
- package/examples/jsm/physics/AmmoPhysics.js +27 -15
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +36 -7
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- package/examples/jsm/postprocessing/OutputPass.js +9 -0
- package/examples/jsm/postprocessing/RenderPass.js +10 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
- package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
- package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +174 -60
- package/examples/jsm/shaders/GTAOShader.js +19 -6
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +6 -5
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/shaders/VolumeShader.js +31 -44
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +65 -8
- package/examples/jsm/transpiler/Linker.js +1 -1
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +46 -3
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +11 -1
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +75 -25
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +3 -36
- package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +3 -3
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
- package/examples/jsm/tsl/display/FSR1Node.js +477 -0
- package/examples/jsm/tsl/display/FXAANode.js +13 -14
- package/examples/jsm/tsl/display/GTAONode.js +40 -17
- package/examples/jsm/tsl/display/GaussianBlurNode.js +21 -2
- package/examples/jsm/tsl/display/GodraysNode.js +615 -0
- package/examples/jsm/tsl/display/ImportanceSampledEnvironment.js +560 -0
- package/examples/jsm/tsl/display/LensflareNode.js +1 -1
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
- package/examples/jsm/tsl/display/OutlineNode.js +69 -19
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +9 -8
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- package/examples/jsm/tsl/display/RecurrentDenoiseNode.js +912 -0
- package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
- package/examples/jsm/tsl/display/SMAANode.js +2 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +15 -27
- package/examples/jsm/tsl/display/SSGINode.js +96 -62
- package/examples/jsm/tsl/display/SSRNode.js +831 -134
- package/examples/jsm/tsl/display/SSSNode.js +8 -6
- package/examples/jsm/tsl/display/Shape.js +29 -0
- package/examples/jsm/tsl/display/SharpenNode.js +283 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
- package/examples/jsm/tsl/display/TAAUNode.js +835 -0
- package/examples/jsm/tsl/display/TRAANode.js +315 -126
- package/examples/jsm/tsl/display/TemporalReprojectNode.js +1023 -0
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/ClusteredLightsNode.js +622 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
- package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
- package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
- package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
- package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
- package/examples/jsm/tsl/math/Bayer.js +53 -3
- package/examples/jsm/tsl/math/curlNoise.js +107 -0
- package/examples/jsm/tsl/shadows/TileShadowNode.js +1 -1
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +3 -3
- package/examples/jsm/tsl/utils/GroundedSkybox.js +62 -0
- package/examples/jsm/tsl/utils/RNoise.js +51 -0
- package/examples/jsm/tsl/utils/SpecularHelpers.js +325 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +128 -62
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/GeometryCompressionUtils.js +1 -1
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/SceneOptimizer.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/ARButton.js +1 -1
- package/examples/jsm/webxr/WebGLXRFallback.js +89 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +2 -2
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -1
- package/package.json +28 -34
- package/src/Three.Core.js +3 -1
- package/src/Three.TSL.js +35 -14
- package/src/Three.WebGPU.Nodes.js +5 -0
- package/src/Three.WebGPU.js +13 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +18 -4
- package/src/animation/AnimationClip.js +0 -139
- package/src/animation/AnimationMixer.js +6 -0
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +47 -8
- package/src/animation/PropertyBinding.js +2 -2
- package/src/animation/PropertyMixer.js +4 -4
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
- package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
- package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +1 -1
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/cameras/Camera.js +34 -4
- package/src/cameras/CubeCamera.js +20 -0
- package/src/cameras/StereoCamera.js +5 -2
- package/src/constants.js +90 -5
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +43 -9
- package/src/core/Clock.js +7 -0
- package/src/core/Object3D.js +69 -11
- package/src/core/Raycaster.js +3 -3
- package/src/core/RenderTarget.js +19 -6
- package/src/extras/PMREMGenerator.js +13 -22
- package/src/extras/TextureUtils.js +6 -2
- package/src/extras/core/ShapePath.js +149 -160
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/geometries/ExtrudeGeometry.js +2 -2
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/SphereGeometry.js +8 -3
- package/src/geometries/TorusGeometry.js +8 -3
- package/src/helpers/CameraHelper.js +3 -0
- package/src/helpers/DirectionalLightHelper.js +6 -1
- package/src/helpers/HemisphereLightHelper.js +5 -0
- package/src/helpers/PointLightHelper.js +3 -25
- package/src/helpers/SpotLightHelper.js +4 -1
- package/src/lights/DirectionalLight.js +13 -0
- package/src/lights/HemisphereLight.js +10 -0
- package/src/lights/Light.js +1 -11
- package/src/lights/LightProbe.js +0 -15
- package/src/lights/LightShadow.js +15 -6
- package/src/lights/PointLight.js +15 -0
- package/src/lights/PointLightShadow.js +0 -86
- package/src/lights/SpotLight.js +22 -1
- package/src/lights/webgpu/IESSpotLight.js +2 -1
- package/src/loaders/AudioLoader.js +11 -1
- package/src/loaders/Cache.js +28 -0
- package/src/loaders/DataTextureLoader.js +75 -42
- package/src/loaders/FileLoader.js +2 -3
- package/src/loaders/ImageBitmapLoader.js +12 -9
- package/src/loaders/Loader.js +6 -0
- package/src/loaders/LoadingManager.js +5 -0
- package/src/loaders/MaterialLoader.js +37 -266
- package/src/loaders/ObjectLoader.js +48 -6
- package/src/loaders/nodes/NodeLoader.js +2 -2
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/LineBasicMaterial.js +4 -0
- package/src/materials/Material.js +198 -1
- package/src/materials/MeshBasicMaterial.js +24 -0
- package/src/materials/MeshDepthMaterial.js +10 -0
- package/src/materials/MeshDistanceMaterial.js +10 -0
- package/src/materials/MeshLambertMaterial.js +49 -1
- package/src/materials/MeshMatcapMaterial.js +25 -1
- package/src/materials/MeshNormalMaterial.js +9 -1
- package/src/materials/MeshPhongMaterial.js +49 -1
- package/src/materials/MeshPhysicalMaterial.js +38 -0
- package/src/materials/MeshStandardMaterial.js +42 -1
- package/src/materials/MeshToonMaterial.js +35 -2
- package/src/materials/PointsMaterial.js +7 -0
- package/src/materials/ShaderMaterial.js +106 -1
- package/src/materials/SpriteMaterial.js +7 -0
- package/src/materials/nodes/Line2NodeMaterial.js +380 -297
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +0 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +3 -30
- package/src/materials/nodes/MeshSSSNodeMaterial.js +0 -13
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -15
- package/src/materials/nodes/NodeMaterial.js +153 -89
- package/src/materials/nodes/SpriteNodeMaterial.js +0 -10
- package/src/materials/nodes/manager/NodeMaterialObserver.js +234 -100
- package/src/math/Box3.js +5 -0
- package/src/math/FrustumArray.js +103 -133
- package/src/math/Interpolant.js +1 -1
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +12 -12
- package/src/math/Matrix2.js +13 -9
- package/src/math/Matrix3.js +24 -9
- package/src/math/Matrix4.js +112 -74
- package/src/math/Plane.js +4 -3
- package/src/math/Quaternion.js +3 -29
- package/src/math/Sphere.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +13 -9
- package/src/math/Vector3.js +17 -15
- package/src/math/Vector4.js +15 -11
- package/src/math/interpolants/BezierInterpolant.js +106 -0
- package/src/nodes/Nodes.js +86 -71
- package/src/nodes/TSL.js +15 -13
- package/src/nodes/accessors/Arrays.js +5 -5
- package/src/nodes/accessors/Batch.js +108 -0
- package/src/nodes/accessors/Bitangent.js +7 -7
- package/src/nodes/accessors/BufferAttributeNode.js +120 -17
- package/src/nodes/accessors/BufferNode.js +29 -2
- package/src/nodes/accessors/Camera.js +149 -28
- package/src/nodes/accessors/ClippingNode.js +5 -5
- package/src/nodes/accessors/CubeTextureNode.js +27 -2
- package/src/nodes/accessors/Instance.js +264 -0
- package/src/nodes/accessors/MaterialNode.js +27 -3
- package/src/nodes/accessors/MaterialProperties.js +6 -8
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/{MorphNode.js → Morph.js} +99 -112
- package/src/nodes/accessors/Normal.js +24 -24
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +39 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +6 -6
- package/src/nodes/accessors/ReferenceNode.js +9 -8
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/Skinning.js +263 -0
- package/src/nodes/accessors/StorageBufferNode.js +16 -27
- package/src/nodes/accessors/StorageTexture3DNode.js +100 -0
- package/src/nodes/accessors/StorageTextureNode.js +74 -11
- package/src/nodes/accessors/Tangent.js +8 -18
- package/src/nodes/accessors/Texture3DNode.js +32 -35
- package/src/nodes/accessors/TextureNode.js +124 -25
- package/src/nodes/accessors/UniformArrayNode.js +6 -4
- package/src/nodes/accessors/UserDataNode.js +1 -2
- package/src/nodes/accessors/VertexColorNode.js +1 -2
- package/src/nodes/code/FunctionCallNode.js +1 -1
- package/src/nodes/code/FunctionNode.js +4 -19
- package/src/nodes/core/ArrayNode.js +21 -2
- package/src/nodes/core/AssignNode.js +3 -3
- package/src/nodes/core/AttributeNode.js +3 -3
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +104 -5
- package/src/nodes/core/IndexNode.js +2 -1
- package/src/nodes/core/InputNode.js +1 -1
- package/src/nodes/core/InspectorNode.js +1 -1
- package/src/nodes/core/IsolateNode.js +1 -1
- package/src/nodes/core/MRTNode.js +55 -4
- package/src/nodes/core/Node.js +151 -17
- package/src/nodes/core/NodeBuilder.js +479 -101
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +12 -4
- package/src/nodes/core/NodeUtils.js +20 -18
- package/src/nodes/core/OutputStructNode.js +13 -11
- package/src/nodes/core/OverrideContextNode.js +153 -0
- package/src/nodes/core/ParameterNode.js +4 -4
- package/src/nodes/core/PropertyNode.js +66 -4
- package/src/nodes/core/StackNode.js +91 -20
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +20 -8
- package/src/nodes/core/StructTypeNode.js +17 -23
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +21 -5
- package/src/nodes/core/VarNode.js +56 -23
- package/src/nodes/core/VaryingNode.js +14 -21
- package/src/nodes/display/BlendModes.js +1 -105
- package/src/nodes/display/BumpMapNode.js +6 -1
- package/src/nodes/display/ColorAdjustment.js +27 -9
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +38 -9
- package/src/nodes/display/NormalMapNode.js +41 -6
- package/src/nodes/display/PassNode.js +157 -56
- package/src/nodes/display/PremultiplyAlphaFunctions.js +39 -0
- package/src/nodes/display/RenderOutputNode.js +19 -10
- package/src/nodes/display/ScreenNode.js +4 -2
- package/src/nodes/display/ToneMappingNode.js +1 -1
- package/src/nodes/display/ToonOutlinePassNode.js +2 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +11 -15
- package/src/nodes/display/ViewportTextureNode.js +39 -11
- package/src/nodes/fog/Fog.js +18 -35
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
- package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/PhysicalLightingModel.js +126 -45
- package/src/nodes/functions/VolumetricLightingModel.js +40 -7
- package/src/nodes/geometry/RangeNode.js +5 -3
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -3
- package/src/nodes/gpgpu/ComputeNode.js +74 -48
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +2 -2
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -5
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +30 -5
- package/src/nodes/lighting/IESSpotLightNode.js +40 -2
- package/src/nodes/lighting/LightingContextNode.js +10 -2
- package/src/nodes/lighting/LightsNode.js +97 -65
- package/src/nodes/lighting/PointShadowNode.js +166 -148
- package/src/nodes/lighting/ShadowFilterNode.js +74 -117
- package/src/nodes/lighting/ShadowNode.js +149 -51
- package/src/nodes/materialx/lib/mx_noise.js +2 -2
- package/src/nodes/math/BitcastNode.js +1 -1
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +6 -6
- package/src/nodes/math/MathNode.js +115 -52
- package/src/nodes/math/OperatorNode.js +24 -23
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/parsers/GLSLNodeFunction.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +34 -3
- package/src/nodes/pmrem/PMREMUtils.js +9 -15
- package/src/nodes/tsl/TSLBase.js +1 -1
- package/src/nodes/tsl/TSLCore.js +99 -33
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +12 -12
- package/src/nodes/utils/EquirectUV.js +30 -5
- package/src/nodes/utils/EventNode.js +31 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +2 -2
- package/src/nodes/utils/JoinNode.js +3 -3
- package/src/nodes/utils/LoopNode.js +1 -1
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Packing.js +48 -5
- package/src/nodes/utils/PostProcessingUtils.js +33 -1
- package/src/nodes/utils/RTTNode.js +41 -25
- package/src/nodes/utils/ReflectorNode.js +4 -4
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +1 -1
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +66 -30
- package/src/objects/InstancedMesh.js +19 -3
- package/src/objects/Line.js +1 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/SkinnedMesh.js +26 -9
- package/src/renderers/WebGLRenderer.js +344 -156
- package/src/renderers/common/Animation.js +3 -3
- package/src/renderers/common/Attributes.js +15 -1
- package/src/renderers/common/Backend.js +78 -13
- package/src/renderers/common/Background.js +26 -13
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +141 -57
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +49 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ClippingContext.js +10 -2
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/Geometries.js +29 -3
- package/src/renderers/common/Info.js +374 -4
- package/src/renderers/common/InspectorBase.js +6 -1
- package/src/renderers/common/Lighting.js +51 -19
- package/src/renderers/common/Pipelines.js +40 -7
- package/src/renderers/common/PostProcessing.js +8 -206
- package/src/renderers/common/ReadbackBuffer.js +78 -0
- package/src/renderers/common/RenderBundle.js +3 -1
- package/src/renderers/common/RenderBundles.js +7 -3
- package/src/renderers/common/RenderContext.js +16 -0
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +41 -4
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +88 -16
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +21 -5
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +700 -163
- package/src/renderers/common/Sampler.js +16 -48
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/Textures.js +121 -9
- package/src/renderers/common/TimestampQueryPool.js +6 -4
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +84 -1
- package/src/renderers/common/XRManager.js +377 -51
- package/src/renderers/common/extras/PMREMGenerator.js +40 -61
- package/src/renderers/common/nodes/NodeBuilderState.js +10 -2
- package/src/renderers/common/nodes/NodeLibrary.js +4 -4
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +298 -106
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +65 -0
- package/src/renderers/shaders/DFGLUTData.js +19 -34
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +13 -4
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +0 -6
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +9 -13
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +3 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -53
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +225 -186
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk.js +5 -3
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +2 -3
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +7 -6
- package/src/renderers/shaders/UniformsLib.js +7 -5
- package/src/renderers/shaders/UniformsUtils.js +27 -5
- package/src/renderers/webgl/WebGLAnimation.js +2 -1
- package/src/renderers/webgl/WebGLBackground.js +15 -15
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLCapabilities.js +9 -4
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +24 -13
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +271 -0
- package/src/renderers/webgl/WebGLProgram.js +54 -113
- package/src/renderers/webgl/WebGLPrograms.js +74 -55
- package/src/renderers/webgl/WebGLRenderLists.js +24 -1
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShaderCache.js +5 -11
- package/src/renderers/webgl/WebGLShadowMap.js +188 -24
- package/src/renderers/webgl/WebGLState.js +75 -37
- package/src/renderers/webgl/WebGLTextures.js +230 -56
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +82 -35
- package/src/renderers/webgl/WebGLUtils.js +6 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +322 -92
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +295 -66
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +223 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +118 -73
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +10 -10
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +9 -3
- package/src/renderers/webgpu/WebGPUBackend.js +733 -302
- package/src/renderers/webgpu/WebGPURenderer.js +2 -1
- package/src/renderers/webgpu/descriptors/GPUBindGroupDescriptor.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUBufferDescriptor.js +57 -0
- package/src/renderers/webgpu/descriptors/GPUCommandEncoderDescriptor.js +30 -0
- package/src/renderers/webgpu/descriptors/GPUComputePassDescriptor.js +38 -0
- package/src/renderers/webgpu/descriptors/GPUComputePipelineDescriptor.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUCopyExternalImageDestInfo.js +47 -0
- package/src/renderers/webgpu/descriptors/GPUCopyExternalImageSourceInfo.js +50 -0
- package/src/renderers/webgpu/descriptors/GPUExtent3D.js +51 -0
- package/src/renderers/webgpu/descriptors/GPUPipelineLayoutDescriptor.js +39 -0
- package/src/renderers/webgpu/descriptors/GPUQuerySetDescriptor.js +47 -0
- package/src/renderers/webgpu/descriptors/GPURenderBundleEncoderDescriptor.js +74 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassColorAttachment.js +72 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassDepthStencilAttachment.js +99 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassDescriptor.js +72 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassTimestampWrites.js +49 -0
- package/src/renderers/webgpu/descriptors/GPURenderPipelineDescriptor.js +130 -0
- package/src/renderers/webgpu/descriptors/GPUSamplerDescriptor.js +119 -0
- package/src/renderers/webgpu/descriptors/GPUShaderModuleDescriptor.js +46 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferInfo.js +57 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferLayout.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyTextureInfo.js +61 -0
- package/src/renderers/webgpu/descriptors/GPUTextureDescriptor.js +99 -0
- package/src/renderers/webgpu/descriptors/GPUTextureViewDescriptor.js +108 -0
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +0 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +526 -93
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +194 -61
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +395 -234
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +10 -0
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +224 -91
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +228 -213
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +428 -175
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +40 -25
- package/src/renderers/webgpu/utils/WebGPUUtils.js +70 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +4 -2
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/DepthTexture.js +1 -1
- package/src/textures/ExternalTexture.js +0 -3
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +16 -5
- package/src/utils.js +280 -3
- package/examples/fonts/LICENSE +0 -13
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +0 -91
- package/examples/fonts/README.md +0 -11
- package/examples/fonts/droid/NOTICE +0 -190
- package/examples/fonts/droid/README.txt +0 -18
- package/examples/fonts/droid/droid_sans_bold.typeface.json +0 -1
- package/examples/fonts/droid/droid_sans_mono_regular.typeface.json +0 -1
- package/examples/fonts/droid/droid_sans_regular.typeface.json +0 -1
- package/examples/fonts/droid/droid_serif_bold.typeface.json +0 -1
- package/examples/fonts/droid/droid_serif_regular.typeface.json +0 -1
- package/examples/fonts/gentilis_bold.typeface.json +0 -1
- package/examples/fonts/gentilis_regular.typeface.json +0 -1
- package/examples/fonts/helvetiker_bold.typeface.json +0 -1
- package/examples/fonts/helvetiker_regular.typeface.json +0 -1
- package/examples/fonts/optimer_bold.typeface.json +0 -1
- package/examples/fonts/optimer_regular.typeface.json +0 -1
- package/examples/fonts/ttf/README.md +0 -9
- package/examples/fonts/ttf/kenpixel.ttf +0 -0
- package/examples/jsm/libs/ammo.wasm.js +0 -822
- package/examples/jsm/libs/ammo.wasm.wasm +0 -0
- package/examples/jsm/libs/draco/draco_encoder.js +0 -33
- package/examples/jsm/libs/draco/gltf/draco_encoder.js +0 -33
- package/examples/jsm/libs/lottie_canvas.module.js +0 -14849
- package/examples/jsm/libs/opentype.module.js +0 -14506
- package/examples/jsm/libs/rhino3dm/rhino3dm.js +0 -21
- package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +0 -16
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/lighting/TiledLighting.js +0 -42
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
- package/examples/jsm/shaders/GodRaysShader.js +0 -333
- package/examples/jsm/tsl/display/AnamorphicNode.js +0 -282
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +0 -442
- package/src/nodes/accessors/BatchNode.js +0 -163
- package/src/nodes/accessors/InstanceNode.js +0 -244
- package/src/nodes/accessors/InstancedMeshNode.js +0 -50
- package/src/nodes/accessors/SceneNode.js +0 -145
- package/src/nodes/accessors/SkinningNode.js +0 -327
- package/src/nodes/code/ScriptableNode.js +0 -726
- package/src/nodes/code/ScriptableValueNode.js +0 -253
- package/src/nodes/display/PosterizeNode.js +0 -65
- package/src/nodes/functions/BSDF/DFGApprox.js +0 -71
- package/src/nodes/utils/RemapNode.js +0 -125
- package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
|
@@ -3,6 +3,7 @@ import { EventDispatcher } from '../core/EventDispatcher.js';
|
|
|
3
3
|
import { FrontSide, NormalBlending, LessEqualDepth, AddEquation, OneMinusSrcAlphaFactor, SrcAlphaFactor, AlwaysStencilFunc, KeepStencilOp } from '../constants.js';
|
|
4
4
|
import { generateUUID } from '../math/MathUtils.js';
|
|
5
5
|
import { warn } from '../utils.js';
|
|
6
|
+
import { Vector2 } from '../math/Vector2.js';
|
|
6
7
|
|
|
7
8
|
let _materialId = 0;
|
|
8
9
|
|
|
@@ -580,7 +581,11 @@ class Material extends EventDispatcher {
|
|
|
580
581
|
|
|
581
582
|
currentValue.set( newValue );
|
|
582
583
|
|
|
583
|
-
} else if (
|
|
584
|
+
} else if (
|
|
585
|
+
( ( currentValue && currentValue.isVector2 ) && ( newValue && newValue.isVector2 ) ) ||
|
|
586
|
+
( ( currentValue && currentValue.isEuler ) && ( newValue && newValue.isEuler ) ) ||
|
|
587
|
+
( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) )
|
|
588
|
+
) {
|
|
584
589
|
|
|
585
590
|
currentValue.copy( newValue );
|
|
586
591
|
|
|
@@ -832,6 +837,7 @@ class Material extends EventDispatcher {
|
|
|
832
837
|
if ( this.alphaToCoverage === true ) data.alphaToCoverage = true;
|
|
833
838
|
if ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;
|
|
834
839
|
if ( this.forceSinglePass === true ) data.forceSinglePass = true;
|
|
840
|
+
if ( this.allowOverride === false ) data.allowOverride = false;
|
|
835
841
|
|
|
836
842
|
if ( this.wireframe === true ) data.wireframe = true;
|
|
837
843
|
if ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;
|
|
@@ -880,6 +886,196 @@ class Material extends EventDispatcher {
|
|
|
880
886
|
|
|
881
887
|
}
|
|
882
888
|
|
|
889
|
+
/**
|
|
890
|
+
* Deserializes the material from the given JSON.
|
|
891
|
+
*
|
|
892
|
+
* @param {Object} json - The JSON holding the serialized material.
|
|
893
|
+
* @param {Object<string,Texture>} textures - A dictionary holding textures referenced by the material.
|
|
894
|
+
* @return {Material} A reference to this material.
|
|
895
|
+
*/
|
|
896
|
+
fromJSON( json, textures ) {
|
|
897
|
+
|
|
898
|
+
if ( json.uuid !== undefined ) this.uuid = json.uuid;
|
|
899
|
+
if ( json.name !== undefined ) this.name = json.name;
|
|
900
|
+
if ( json.color !== undefined && this.color !== undefined ) this.color.setHex( json.color );
|
|
901
|
+
if ( json.roughness !== undefined ) this.roughness = json.roughness;
|
|
902
|
+
if ( json.metalness !== undefined ) this.metalness = json.metalness;
|
|
903
|
+
if ( json.sheen !== undefined ) this.sheen = json.sheen;
|
|
904
|
+
if ( json.sheenColor !== undefined ) this.sheenColor = new Color().setHex( json.sheenColor );
|
|
905
|
+
if ( json.sheenRoughness !== undefined ) this.sheenRoughness = json.sheenRoughness;
|
|
906
|
+
if ( json.emissive !== undefined && this.emissive !== undefined ) this.emissive.setHex( json.emissive );
|
|
907
|
+
if ( json.specular !== undefined && this.specular !== undefined ) this.specular.setHex( json.specular );
|
|
908
|
+
if ( json.specularIntensity !== undefined ) this.specularIntensity = json.specularIntensity;
|
|
909
|
+
if ( json.specularColor !== undefined && this.specularColor !== undefined ) this.specularColor.setHex( json.specularColor );
|
|
910
|
+
if ( json.shininess !== undefined ) this.shininess = json.shininess;
|
|
911
|
+
if ( json.clearcoat !== undefined ) this.clearcoat = json.clearcoat;
|
|
912
|
+
if ( json.clearcoatRoughness !== undefined ) this.clearcoatRoughness = json.clearcoatRoughness;
|
|
913
|
+
if ( json.dispersion !== undefined ) this.dispersion = json.dispersion;
|
|
914
|
+
if ( json.iridescence !== undefined ) this.iridescence = json.iridescence;
|
|
915
|
+
if ( json.iridescenceIOR !== undefined ) this.iridescenceIOR = json.iridescenceIOR;
|
|
916
|
+
if ( json.iridescenceThicknessRange !== undefined ) this.iridescenceThicknessRange = json.iridescenceThicknessRange;
|
|
917
|
+
if ( json.transmission !== undefined ) this.transmission = json.transmission;
|
|
918
|
+
if ( json.thickness !== undefined ) this.thickness = json.thickness;
|
|
919
|
+
if ( json.attenuationDistance !== undefined ) this.attenuationDistance = json.attenuationDistance;
|
|
920
|
+
if ( json.attenuationColor !== undefined && this.attenuationColor !== undefined ) this.attenuationColor.setHex( json.attenuationColor );
|
|
921
|
+
if ( json.anisotropy !== undefined ) this.anisotropy = json.anisotropy;
|
|
922
|
+
if ( json.anisotropyRotation !== undefined ) this.anisotropyRotation = json.anisotropyRotation;
|
|
923
|
+
if ( json.fog !== undefined ) this.fog = json.fog;
|
|
924
|
+
if ( json.flatShading !== undefined ) this.flatShading = json.flatShading;
|
|
925
|
+
if ( json.blending !== undefined ) this.blending = json.blending;
|
|
926
|
+
if ( json.combine !== undefined ) this.combine = json.combine;
|
|
927
|
+
if ( json.side !== undefined ) this.side = json.side;
|
|
928
|
+
if ( json.shadowSide !== undefined ) this.shadowSide = json.shadowSide;
|
|
929
|
+
if ( json.opacity !== undefined ) this.opacity = json.opacity;
|
|
930
|
+
if ( json.transparent !== undefined ) this.transparent = json.transparent;
|
|
931
|
+
if ( json.alphaTest !== undefined ) this.alphaTest = json.alphaTest;
|
|
932
|
+
if ( json.alphaHash !== undefined ) this.alphaHash = json.alphaHash;
|
|
933
|
+
if ( json.depthFunc !== undefined ) this.depthFunc = json.depthFunc;
|
|
934
|
+
if ( json.depthTest !== undefined ) this.depthTest = json.depthTest;
|
|
935
|
+
if ( json.depthWrite !== undefined ) this.depthWrite = json.depthWrite;
|
|
936
|
+
if ( json.colorWrite !== undefined ) this.colorWrite = json.colorWrite;
|
|
937
|
+
if ( json.blendSrc !== undefined ) this.blendSrc = json.blendSrc;
|
|
938
|
+
if ( json.blendDst !== undefined ) this.blendDst = json.blendDst;
|
|
939
|
+
if ( json.blendEquation !== undefined ) this.blendEquation = json.blendEquation;
|
|
940
|
+
if ( json.blendSrcAlpha !== undefined ) this.blendSrcAlpha = json.blendSrcAlpha;
|
|
941
|
+
if ( json.blendDstAlpha !== undefined ) this.blendDstAlpha = json.blendDstAlpha;
|
|
942
|
+
if ( json.blendEquationAlpha !== undefined ) this.blendEquationAlpha = json.blendEquationAlpha;
|
|
943
|
+
if ( json.blendColor !== undefined && this.blendColor !== undefined ) this.blendColor.setHex( json.blendColor );
|
|
944
|
+
if ( json.blendAlpha !== undefined ) this.blendAlpha = json.blendAlpha;
|
|
945
|
+
if ( json.stencilWriteMask !== undefined ) this.stencilWriteMask = json.stencilWriteMask;
|
|
946
|
+
if ( json.stencilFunc !== undefined ) this.stencilFunc = json.stencilFunc;
|
|
947
|
+
if ( json.stencilRef !== undefined ) this.stencilRef = json.stencilRef;
|
|
948
|
+
if ( json.stencilFuncMask !== undefined ) this.stencilFuncMask = json.stencilFuncMask;
|
|
949
|
+
if ( json.stencilFail !== undefined ) this.stencilFail = json.stencilFail;
|
|
950
|
+
if ( json.stencilZFail !== undefined ) this.stencilZFail = json.stencilZFail;
|
|
951
|
+
if ( json.stencilZPass !== undefined ) this.stencilZPass = json.stencilZPass;
|
|
952
|
+
if ( json.stencilWrite !== undefined ) this.stencilWrite = json.stencilWrite;
|
|
953
|
+
|
|
954
|
+
if ( json.wireframe !== undefined ) this.wireframe = json.wireframe;
|
|
955
|
+
if ( json.wireframeLinewidth !== undefined ) this.wireframeLinewidth = json.wireframeLinewidth;
|
|
956
|
+
if ( json.wireframeLinecap !== undefined ) this.wireframeLinecap = json.wireframeLinecap;
|
|
957
|
+
if ( json.wireframeLinejoin !== undefined ) this.wireframeLinejoin = json.wireframeLinejoin;
|
|
958
|
+
|
|
959
|
+
if ( json.rotation !== undefined ) this.rotation = json.rotation;
|
|
960
|
+
|
|
961
|
+
if ( json.linewidth !== undefined ) this.linewidth = json.linewidth;
|
|
962
|
+
if ( json.dashSize !== undefined ) this.dashSize = json.dashSize;
|
|
963
|
+
if ( json.gapSize !== undefined ) this.gapSize = json.gapSize;
|
|
964
|
+
if ( json.scale !== undefined ) this.scale = json.scale;
|
|
965
|
+
|
|
966
|
+
if ( json.polygonOffset !== undefined ) this.polygonOffset = json.polygonOffset;
|
|
967
|
+
if ( json.polygonOffsetFactor !== undefined ) this.polygonOffsetFactor = json.polygonOffsetFactor;
|
|
968
|
+
if ( json.polygonOffsetUnits !== undefined ) this.polygonOffsetUnits = json.polygonOffsetUnits;
|
|
969
|
+
|
|
970
|
+
if ( json.dithering !== undefined ) this.dithering = json.dithering;
|
|
971
|
+
|
|
972
|
+
if ( json.alphaToCoverage !== undefined ) this.alphaToCoverage = json.alphaToCoverage;
|
|
973
|
+
if ( json.premultipliedAlpha !== undefined ) this.premultipliedAlpha = json.premultipliedAlpha;
|
|
974
|
+
if ( json.forceSinglePass !== undefined ) this.forceSinglePass = json.forceSinglePass;
|
|
975
|
+
if ( json.allowOverride !== undefined ) this.allowOverride = json.allowOverride;
|
|
976
|
+
|
|
977
|
+
if ( json.visible !== undefined ) this.visible = json.visible;
|
|
978
|
+
|
|
979
|
+
if ( json.toneMapped !== undefined ) this.toneMapped = json.toneMapped;
|
|
980
|
+
|
|
981
|
+
if ( json.userData !== undefined ) this.userData = json.userData;
|
|
982
|
+
|
|
983
|
+
if ( json.vertexColors !== undefined ) {
|
|
984
|
+
|
|
985
|
+
if ( typeof json.vertexColors === 'number' ) {
|
|
986
|
+
|
|
987
|
+
this.vertexColors = json.vertexColors > 0;
|
|
988
|
+
|
|
989
|
+
} else {
|
|
990
|
+
|
|
991
|
+
this.vertexColors = json.vertexColors;
|
|
992
|
+
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
// for PointsMaterial
|
|
998
|
+
|
|
999
|
+
if ( json.size !== undefined ) this.size = json.size;
|
|
1000
|
+
if ( json.sizeAttenuation !== undefined ) this.sizeAttenuation = json.sizeAttenuation;
|
|
1001
|
+
|
|
1002
|
+
// maps
|
|
1003
|
+
|
|
1004
|
+
if ( json.map !== undefined ) this.map = textures[ json.map ] || null;
|
|
1005
|
+
if ( json.matcap !== undefined ) this.matcap = textures[ json.matcap ] || null;
|
|
1006
|
+
|
|
1007
|
+
if ( json.alphaMap !== undefined ) this.alphaMap = textures[ json.alphaMap ] || null;
|
|
1008
|
+
|
|
1009
|
+
if ( json.bumpMap !== undefined ) this.bumpMap = textures[ json.bumpMap ] || null;
|
|
1010
|
+
if ( json.bumpScale !== undefined ) this.bumpScale = json.bumpScale;
|
|
1011
|
+
|
|
1012
|
+
if ( json.normalMap !== undefined ) this.normalMap = textures[ json.normalMap ] || null;
|
|
1013
|
+
if ( json.normalMapType !== undefined ) this.normalMapType = json.normalMapType;
|
|
1014
|
+
if ( json.normalScale !== undefined ) {
|
|
1015
|
+
|
|
1016
|
+
let normalScale = json.normalScale;
|
|
1017
|
+
|
|
1018
|
+
if ( Array.isArray( normalScale ) === false ) {
|
|
1019
|
+
|
|
1020
|
+
// Blender exporter used to export a scalar. See #7459
|
|
1021
|
+
|
|
1022
|
+
normalScale = [ normalScale, normalScale ];
|
|
1023
|
+
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
this.normalScale = new Vector2().fromArray( normalScale );
|
|
1027
|
+
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
if ( json.displacementMap !== undefined ) this.displacementMap = textures[ json.displacementMap ] || null;
|
|
1031
|
+
if ( json.displacementScale !== undefined ) this.displacementScale = json.displacementScale;
|
|
1032
|
+
if ( json.displacementBias !== undefined ) this.displacementBias = json.displacementBias;
|
|
1033
|
+
|
|
1034
|
+
if ( json.roughnessMap !== undefined ) this.roughnessMap = textures[ json.roughnessMap ] || null;
|
|
1035
|
+
if ( json.metalnessMap !== undefined ) this.metalnessMap = textures[ json.metalnessMap ] || null;
|
|
1036
|
+
|
|
1037
|
+
if ( json.emissiveMap !== undefined ) this.emissiveMap = textures[ json.emissiveMap ] || null;
|
|
1038
|
+
if ( json.emissiveIntensity !== undefined ) this.emissiveIntensity = json.emissiveIntensity;
|
|
1039
|
+
|
|
1040
|
+
if ( json.specularMap !== undefined ) this.specularMap = textures[ json.specularMap ] || null;
|
|
1041
|
+
if ( json.specularIntensityMap !== undefined ) this.specularIntensityMap = textures[ json.specularIntensityMap ] || null;
|
|
1042
|
+
if ( json.specularColorMap !== undefined ) this.specularColorMap = textures[ json.specularColorMap ] || null;
|
|
1043
|
+
|
|
1044
|
+
if ( json.envMap !== undefined ) this.envMap = textures[ json.envMap ] || null;
|
|
1045
|
+
if ( json.envMapRotation !== undefined ) this.envMapRotation.fromArray( json.envMapRotation );
|
|
1046
|
+
if ( json.envMapIntensity !== undefined ) this.envMapIntensity = json.envMapIntensity;
|
|
1047
|
+
|
|
1048
|
+
if ( json.reflectivity !== undefined ) this.reflectivity = json.reflectivity;
|
|
1049
|
+
if ( json.refractionRatio !== undefined ) this.refractionRatio = json.refractionRatio;
|
|
1050
|
+
|
|
1051
|
+
if ( json.lightMap !== undefined ) this.lightMap = textures[ json.lightMap ] || null;
|
|
1052
|
+
if ( json.lightMapIntensity !== undefined ) this.lightMapIntensity = json.lightMapIntensity;
|
|
1053
|
+
|
|
1054
|
+
if ( json.aoMap !== undefined ) this.aoMap = textures[ json.aoMap ] || null;
|
|
1055
|
+
if ( json.aoMapIntensity !== undefined ) this.aoMapIntensity = json.aoMapIntensity;
|
|
1056
|
+
|
|
1057
|
+
if ( json.gradientMap !== undefined ) this.gradientMap = textures[ json.gradientMap ] || null;
|
|
1058
|
+
|
|
1059
|
+
if ( json.clearcoatMap !== undefined ) this.clearcoatMap = textures[ json.clearcoatMap ] || null;
|
|
1060
|
+
if ( json.clearcoatRoughnessMap !== undefined ) this.clearcoatRoughnessMap = textures[ json.clearcoatRoughnessMap ] || null;
|
|
1061
|
+
if ( json.clearcoatNormalMap !== undefined ) this.clearcoatNormalMap = textures[ json.clearcoatNormalMap ] || null;
|
|
1062
|
+
if ( json.clearcoatNormalScale !== undefined ) this.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );
|
|
1063
|
+
|
|
1064
|
+
if ( json.iridescenceMap !== undefined ) this.iridescenceMap = textures[ json.iridescenceMap ] || null;
|
|
1065
|
+
if ( json.iridescenceThicknessMap !== undefined ) this.iridescenceThicknessMap = textures[ json.iridescenceThicknessMap ] || null;
|
|
1066
|
+
|
|
1067
|
+
if ( json.transmissionMap !== undefined ) this.transmissionMap = textures[ json.transmissionMap ] || null;
|
|
1068
|
+
if ( json.thicknessMap !== undefined ) this.thicknessMap = textures[ json.thicknessMap ] || null;
|
|
1069
|
+
|
|
1070
|
+
if ( json.anisotropyMap !== undefined ) this.anisotropyMap = textures[ json.anisotropyMap ] || null;
|
|
1071
|
+
|
|
1072
|
+
if ( json.sheenColorMap !== undefined ) this.sheenColorMap = textures[ json.sheenColorMap ] || null;
|
|
1073
|
+
if ( json.sheenRoughnessMap !== undefined ) this.sheenRoughnessMap = textures[ json.sheenRoughnessMap ] || null;
|
|
1074
|
+
|
|
1075
|
+
return this;
|
|
1076
|
+
|
|
1077
|
+
}
|
|
1078
|
+
|
|
883
1079
|
/**
|
|
884
1080
|
* Returns a new material with copied values from this instance.
|
|
885
1081
|
*
|
|
@@ -967,6 +1163,7 @@ class Material extends EventDispatcher {
|
|
|
967
1163
|
this.alphaToCoverage = source.alphaToCoverage;
|
|
968
1164
|
this.premultipliedAlpha = source.premultipliedAlpha;
|
|
969
1165
|
this.forceSinglePass = source.forceSinglePass;
|
|
1166
|
+
this.allowOverride = source.allowOverride;
|
|
970
1167
|
|
|
971
1168
|
this.visible = source.visible;
|
|
972
1169
|
|
|
@@ -50,6 +50,10 @@ class MeshBasicMaterial extends Material {
|
|
|
50
50
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
51
51
|
* color is modulated by the diffuse `color`.
|
|
52
52
|
*
|
|
53
|
+
* `map` represents color data, and the texture must be assigned a
|
|
54
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
55
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
56
|
+
*
|
|
53
57
|
* @type {?Texture}
|
|
54
58
|
* @default null
|
|
55
59
|
*/
|
|
@@ -58,6 +62,11 @@ class MeshBasicMaterial extends Material {
|
|
|
58
62
|
/**
|
|
59
63
|
* The light map. Requires a second set of UVs.
|
|
60
64
|
*
|
|
65
|
+
* `lightMap` represents pre-baked illuminance data, and the texture must be assigned
|
|
66
|
+
* a {@link Texture#colorSpace}. Most `lightMap` textures set
|
|
67
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
68
|
+
* such as `.exr` or `.hdr`.
|
|
69
|
+
*
|
|
61
70
|
* @type {?Texture}
|
|
62
71
|
* @default null
|
|
63
72
|
*/
|
|
@@ -75,6 +84,9 @@ class MeshBasicMaterial extends Material {
|
|
|
75
84
|
* The red channel of this texture is used as the ambient occlusion map.
|
|
76
85
|
* Requires a second set of UVs.
|
|
77
86
|
*
|
|
87
|
+
* `aoMap` represents non-color data. Any texture assigned must have
|
|
88
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
89
|
+
*
|
|
78
90
|
* @type {?Texture}
|
|
79
91
|
* @default null
|
|
80
92
|
*/
|
|
@@ -93,6 +105,10 @@ class MeshBasicMaterial extends Material {
|
|
|
93
105
|
/**
|
|
94
106
|
* Specular map used by the material.
|
|
95
107
|
*
|
|
108
|
+
* `specularMap` represents color data, and the texture must be assigned a
|
|
109
|
+
* {@link Texture#colorSpace}. Most `specularMap` textures set
|
|
110
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
111
|
+
*
|
|
96
112
|
* @type {?Texture}
|
|
97
113
|
* @default null
|
|
98
114
|
*/
|
|
@@ -108,6 +124,9 @@ class MeshBasicMaterial extends Material {
|
|
|
108
124
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
109
125
|
* luminance/alpha textures will also still work as expected.
|
|
110
126
|
*
|
|
127
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
128
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
129
|
+
*
|
|
111
130
|
* @type {?Texture}
|
|
112
131
|
* @default null
|
|
113
132
|
*/
|
|
@@ -116,6 +135,11 @@ class MeshBasicMaterial extends Material {
|
|
|
116
135
|
/**
|
|
117
136
|
* The environment map.
|
|
118
137
|
*
|
|
138
|
+
* `envMap` represents luminance data, and the texture must be assigned
|
|
139
|
+
* a {@link Texture#colorSpace}. Most `envMap` textures set
|
|
140
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
141
|
+
* such as `.exr` or `.hdr`.
|
|
142
|
+
*
|
|
119
143
|
* @type {?Texture}
|
|
120
144
|
* @default null
|
|
121
145
|
*/
|
|
@@ -46,6 +46,10 @@ class MeshDepthMaterial extends Material {
|
|
|
46
46
|
* The color map. May optionally include an alpha channel, typically combined
|
|
47
47
|
* with {@link Material#transparent} or {@link Material#alphaTest}.
|
|
48
48
|
*
|
|
49
|
+
* `map` represents color data, and the texture must be assigned a
|
|
50
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
51
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
52
|
+
*
|
|
49
53
|
* @type {?Texture}
|
|
50
54
|
* @default null
|
|
51
55
|
*/
|
|
@@ -61,6 +65,9 @@ class MeshDepthMaterial extends Material {
|
|
|
61
65
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
62
66
|
* luminance/alpha textures will also still work as expected.
|
|
63
67
|
*
|
|
68
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
69
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
70
|
+
*
|
|
64
71
|
* @type {?Texture}
|
|
65
72
|
* @default null
|
|
66
73
|
*/
|
|
@@ -74,6 +81,9 @@ class MeshDepthMaterial extends Material {
|
|
|
74
81
|
* of each pixel (white being the highest) is mapped against, and
|
|
75
82
|
* repositions, the vertices of the mesh.
|
|
76
83
|
*
|
|
84
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
85
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
86
|
+
*
|
|
77
87
|
* @type {?Texture}
|
|
78
88
|
* @default null
|
|
79
89
|
*/
|
|
@@ -41,6 +41,10 @@ class MeshDistanceMaterial extends Material {
|
|
|
41
41
|
* The color map. May optionally include an alpha channel, typically combined
|
|
42
42
|
* with {@link Material#transparent} or {@link Material#alphaTest}.
|
|
43
43
|
*
|
|
44
|
+
* `map` represents color data, and the texture must be assigned a
|
|
45
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
46
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
47
|
+
*
|
|
44
48
|
* @type {?Texture}
|
|
45
49
|
* @default null
|
|
46
50
|
*/
|
|
@@ -56,6 +60,9 @@ class MeshDistanceMaterial extends Material {
|
|
|
56
60
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
57
61
|
* luminance/alpha textures will also still work as expected.
|
|
58
62
|
*
|
|
63
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
64
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
65
|
+
*
|
|
59
66
|
* @type {?Texture}
|
|
60
67
|
* @default null
|
|
61
68
|
*/
|
|
@@ -69,6 +76,9 @@ class MeshDistanceMaterial extends Material {
|
|
|
69
76
|
* of each pixel (white being the highest) is mapped against, and
|
|
70
77
|
* repositions, the vertices of the mesh.
|
|
71
78
|
*
|
|
79
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
80
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
81
|
+
*
|
|
72
82
|
* @type {?Texture}
|
|
73
83
|
* @default null
|
|
74
84
|
*/
|
|
@@ -60,6 +60,10 @@ class MeshLambertMaterial extends Material {
|
|
|
60
60
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
61
61
|
* color is modulated by the diffuse `color`.
|
|
62
62
|
*
|
|
63
|
+
* `map` represents color data, and the texture must be assigned a
|
|
64
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
65
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
66
|
+
*
|
|
63
67
|
* @type {?Texture}
|
|
64
68
|
* @default null
|
|
65
69
|
*/
|
|
@@ -68,6 +72,11 @@ class MeshLambertMaterial extends Material {
|
|
|
68
72
|
/**
|
|
69
73
|
* The light map. Requires a second set of UVs.
|
|
70
74
|
*
|
|
75
|
+
* `lightMap` represents pre-baked illuminance data, and the texture must be assigned
|
|
76
|
+
* a {@link Texture#colorSpace}. Most `lightMap` textures set
|
|
77
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
78
|
+
* such as `.exr` or `.hdr`.
|
|
79
|
+
*
|
|
71
80
|
* @type {?Texture}
|
|
72
81
|
* @default null
|
|
73
82
|
*/
|
|
@@ -85,6 +94,9 @@ class MeshLambertMaterial extends Material {
|
|
|
85
94
|
* The red channel of this texture is used as the ambient occlusion map.
|
|
86
95
|
* Requires a second set of UVs.
|
|
87
96
|
*
|
|
97
|
+
* `aoMap` represents non-color data. Any texture assigned must have
|
|
98
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
99
|
+
*
|
|
88
100
|
* @type {?Texture}
|
|
89
101
|
* @default null
|
|
90
102
|
*/
|
|
@@ -122,6 +134,10 @@ class MeshLambertMaterial extends Material {
|
|
|
122
134
|
* emissive color and the emissive intensity. If you have an emissive map,
|
|
123
135
|
* be sure to set the emissive color to something other than black.
|
|
124
136
|
*
|
|
137
|
+
* `emissiveMap` represents color data, and the texture must be assigned a
|
|
138
|
+
* {@link Texture#colorSpace}. Most `emissiveMap` textures set
|
|
139
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
140
|
+
*
|
|
125
141
|
* @type {?Texture}
|
|
126
142
|
* @default null
|
|
127
143
|
*/
|
|
@@ -133,6 +149,9 @@ class MeshLambertMaterial extends Material {
|
|
|
133
149
|
* the geometry of the object, only the lighting. If a normal map is defined
|
|
134
150
|
* this will be ignored.
|
|
135
151
|
*
|
|
152
|
+
* `bumpMap` represents non-color data. Any texture assigned must have
|
|
153
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
154
|
+
*
|
|
136
155
|
* @type {?Texture}
|
|
137
156
|
* @default null
|
|
138
157
|
*/
|
|
@@ -154,6 +173,9 @@ class MeshLambertMaterial extends Material {
|
|
|
154
173
|
* convention, the `y` component of `normalScale` should be negated to compensate
|
|
155
174
|
* for the different handedness.
|
|
156
175
|
*
|
|
176
|
+
* `normalMap` represents non-color data. Any texture assigned must have
|
|
177
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
178
|
+
*
|
|
157
179
|
* @type {?Texture}
|
|
158
180
|
* @default null
|
|
159
181
|
*/
|
|
@@ -181,7 +203,12 @@ class MeshLambertMaterial extends Material {
|
|
|
181
203
|
* displaced vertices can cast shadows, block other objects, and otherwise
|
|
182
204
|
* act as real geometry. The displacement texture is an image where the value
|
|
183
205
|
* of each pixel (white being the highest) is mapped against, and
|
|
184
|
-
* repositions, the vertices of the mesh.
|
|
206
|
+
* repositions, the vertices of the mesh. For best results, pair a
|
|
207
|
+
* displacement map with a matching normal map, since the renderer can
|
|
208
|
+
* not recompute surface normals from the displaced vertices.
|
|
209
|
+
*
|
|
210
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
211
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
185
212
|
*
|
|
186
213
|
* @type {?Texture}
|
|
187
214
|
* @default null
|
|
@@ -211,6 +238,10 @@ class MeshLambertMaterial extends Material {
|
|
|
211
238
|
/**
|
|
212
239
|
* Specular map used by the material.
|
|
213
240
|
*
|
|
241
|
+
* `specularMap` represents color data, and the texture must be assigned a
|
|
242
|
+
* {@link Texture#colorSpace}. Most `specularMap` textures set
|
|
243
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
244
|
+
*
|
|
214
245
|
* @type {?Texture}
|
|
215
246
|
* @default null
|
|
216
247
|
*/
|
|
@@ -226,6 +257,9 @@ class MeshLambertMaterial extends Material {
|
|
|
226
257
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
227
258
|
* luminance/alpha textures will also still work as expected.
|
|
228
259
|
*
|
|
260
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
261
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
262
|
+
*
|
|
229
263
|
* @type {?Texture}
|
|
230
264
|
* @default null
|
|
231
265
|
*/
|
|
@@ -234,6 +268,11 @@ class MeshLambertMaterial extends Material {
|
|
|
234
268
|
/**
|
|
235
269
|
* The environment map.
|
|
236
270
|
*
|
|
271
|
+
* `envMap` represents luminance data, and the texture must be assigned
|
|
272
|
+
* a {@link Texture#colorSpace}. Most `envMap` textures set
|
|
273
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
274
|
+
* such as `.exr` or `.hdr`.
|
|
275
|
+
*
|
|
237
276
|
* @type {?Texture}
|
|
238
277
|
* @default null
|
|
239
278
|
*/
|
|
@@ -267,6 +306,14 @@ class MeshLambertMaterial extends Material {
|
|
|
267
306
|
*/
|
|
268
307
|
this.reflectivity = 1;
|
|
269
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Scales the effect of the environment map by multiplying its color.
|
|
311
|
+
*
|
|
312
|
+
* @type {number}
|
|
313
|
+
* @default 1
|
|
314
|
+
*/
|
|
315
|
+
this.envMapIntensity = 1.0;
|
|
316
|
+
|
|
270
317
|
/**
|
|
271
318
|
* The index of refraction (IOR) of air (approximately 1) divided by the
|
|
272
319
|
* index of refraction of the material. It is used with environment mapping
|
|
@@ -373,6 +420,7 @@ class MeshLambertMaterial extends Material {
|
|
|
373
420
|
this.envMapRotation.copy( source.envMapRotation );
|
|
374
421
|
this.combine = source.combine;
|
|
375
422
|
this.reflectivity = source.reflectivity;
|
|
423
|
+
this.envMapIntensity = source.envMapIntensity;
|
|
376
424
|
this.refractionRatio = source.refractionRatio;
|
|
377
425
|
|
|
378
426
|
this.wireframe = source.wireframe;
|
|
@@ -54,6 +54,12 @@ class MeshMatcapMaterial extends Material {
|
|
|
54
54
|
/**
|
|
55
55
|
* The matcap map.
|
|
56
56
|
*
|
|
57
|
+
* `matcap` represents luminance data, and the texture must be assigned
|
|
58
|
+
* a {@link Texture#colorSpace}. HDR `matcap` textures (e.g. `.exr`)
|
|
59
|
+
* typically set `texture.colorSpace = LinearSRGBColorSpace`, while LDR
|
|
60
|
+
* `matcap` textures (e.g. `.png`, `.jpg`, `.webp`) typically set
|
|
61
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
62
|
+
*
|
|
57
63
|
* @type {?Texture}
|
|
58
64
|
* @default null
|
|
59
65
|
*/
|
|
@@ -64,6 +70,10 @@ class MeshMatcapMaterial extends Material {
|
|
|
64
70
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
65
71
|
* color is modulated by the diffuse `color`.
|
|
66
72
|
*
|
|
73
|
+
* `map` represents color data, and the texture must be assigned a
|
|
74
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
75
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
76
|
+
*
|
|
67
77
|
* @type {?Texture}
|
|
68
78
|
* @default null
|
|
69
79
|
*/
|
|
@@ -75,6 +85,9 @@ class MeshMatcapMaterial extends Material {
|
|
|
75
85
|
* the geometry of the object, only the lighting. If a normal map is defined
|
|
76
86
|
* this will be ignored.
|
|
77
87
|
*
|
|
88
|
+
* `bumpMap` represents non-color data. Any texture assigned must have
|
|
89
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
90
|
+
*
|
|
78
91
|
* @type {?Texture}
|
|
79
92
|
* @default null
|
|
80
93
|
*/
|
|
@@ -96,6 +109,9 @@ class MeshMatcapMaterial extends Material {
|
|
|
96
109
|
* convention, the `y` component of `normalScale` should be negated to compensate
|
|
97
110
|
* for the different handedness.
|
|
98
111
|
*
|
|
112
|
+
* `normalMap` represents non-color data. Any texture assigned must have
|
|
113
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
114
|
+
*
|
|
99
115
|
* @type {?Texture}
|
|
100
116
|
* @default null
|
|
101
117
|
*/
|
|
@@ -123,7 +139,12 @@ class MeshMatcapMaterial extends Material {
|
|
|
123
139
|
* displaced vertices can cast shadows, block other objects, and otherwise
|
|
124
140
|
* act as real geometry. The displacement texture is an image where the value
|
|
125
141
|
* of each pixel (white being the highest) is mapped against, and
|
|
126
|
-
* repositions, the vertices of the mesh.
|
|
142
|
+
* repositions, the vertices of the mesh. For best results, pair a
|
|
143
|
+
* displacement map with a matching normal map, since the renderer can
|
|
144
|
+
* not recompute surface normals from the displaced vertices.
|
|
145
|
+
*
|
|
146
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
147
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
127
148
|
*
|
|
128
149
|
* @type {?Texture}
|
|
129
150
|
* @default null
|
|
@@ -160,6 +181,9 @@ class MeshMatcapMaterial extends Material {
|
|
|
160
181
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
161
182
|
* luminance/alpha textures will also still work as expected.
|
|
162
183
|
*
|
|
184
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
185
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
186
|
+
*
|
|
163
187
|
* @type {?Texture}
|
|
164
188
|
* @default null
|
|
165
189
|
*/
|
|
@@ -40,6 +40,9 @@ class MeshNormalMaterial extends Material {
|
|
|
40
40
|
* the geometry of the object, only the lighting. If a normal map is defined
|
|
41
41
|
* this will be ignored.
|
|
42
42
|
*
|
|
43
|
+
* `bumpMap` represents non-color data. Any texture assigned must have
|
|
44
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
45
|
+
*
|
|
43
46
|
* @type {?Texture}
|
|
44
47
|
* @default null
|
|
45
48
|
*/
|
|
@@ -61,6 +64,9 @@ class MeshNormalMaterial extends Material {
|
|
|
61
64
|
* convention, the `y` component of `normalScale` should be negated to compensate
|
|
62
65
|
* for the different handedness.
|
|
63
66
|
*
|
|
67
|
+
* `normalMap` represents non-color data. Any texture assigned must have
|
|
68
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
69
|
+
*
|
|
64
70
|
* @type {?Texture}
|
|
65
71
|
* @default null
|
|
66
72
|
*/
|
|
@@ -88,7 +94,9 @@ class MeshNormalMaterial extends Material {
|
|
|
88
94
|
* displaced vertices can cast shadows, block other objects, and otherwise
|
|
89
95
|
* act as real geometry. The displacement texture is an image where the value
|
|
90
96
|
* of each pixel (white being the highest) is mapped against, and
|
|
91
|
-
* repositions, the vertices of the mesh.
|
|
97
|
+
* repositions, the vertices of the mesh. For best results, pair a
|
|
98
|
+
* displacement map with a matching normal map, since the renderer can
|
|
99
|
+
* not recompute surface normals from the displaced vertices.
|
|
92
100
|
*
|
|
93
101
|
* @type {?Texture}
|
|
94
102
|
* @default null
|