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
|
@@ -75,6 +75,10 @@ class MeshPhongMaterial extends Material {
|
|
|
75
75
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
76
76
|
* color is modulated by the diffuse `color`.
|
|
77
77
|
*
|
|
78
|
+
* `map` represents color data, and the texture must be assigned a
|
|
79
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
80
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
81
|
+
*
|
|
78
82
|
* @type {?Texture}
|
|
79
83
|
* @default null
|
|
80
84
|
*/
|
|
@@ -83,6 +87,11 @@ class MeshPhongMaterial extends Material {
|
|
|
83
87
|
/**
|
|
84
88
|
* The light map. Requires a second set of UVs.
|
|
85
89
|
*
|
|
90
|
+
* `lightMap` represents pre-baked illuminance data, and the texture must be assigned
|
|
91
|
+
* a {@link Texture#colorSpace}. Most `lightMap` textures set
|
|
92
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
93
|
+
* such as `.exr` or `.hdr`.
|
|
94
|
+
*
|
|
86
95
|
* @type {?Texture}
|
|
87
96
|
* @default null
|
|
88
97
|
*/
|
|
@@ -100,6 +109,9 @@ class MeshPhongMaterial extends Material {
|
|
|
100
109
|
* The red channel of this texture is used as the ambient occlusion map.
|
|
101
110
|
* Requires a second set of UVs.
|
|
102
111
|
*
|
|
112
|
+
* `aoMap` represents non-color data. Any texture assigned must have
|
|
113
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
114
|
+
*
|
|
103
115
|
* @type {?Texture}
|
|
104
116
|
* @default null
|
|
105
117
|
*/
|
|
@@ -137,6 +149,10 @@ class MeshPhongMaterial extends Material {
|
|
|
137
149
|
* emissive color and the emissive intensity. If you have an emissive map,
|
|
138
150
|
* be sure to set the emissive color to something other than black.
|
|
139
151
|
*
|
|
152
|
+
* `emissiveMap` represents color data, and the texture must be assigned a
|
|
153
|
+
* {@link Texture#colorSpace}. Most `emissiveMap` textures set
|
|
154
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
155
|
+
*
|
|
140
156
|
* @type {?Texture}
|
|
141
157
|
* @default null
|
|
142
158
|
*/
|
|
@@ -148,6 +164,9 @@ class MeshPhongMaterial extends Material {
|
|
|
148
164
|
* the geometry of the object, only the lighting. If a normal map is defined
|
|
149
165
|
* this will be ignored.
|
|
150
166
|
*
|
|
167
|
+
* `bumpMap` represents non-color data. Any texture assigned must have
|
|
168
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
169
|
+
*
|
|
151
170
|
* @type {?Texture}
|
|
152
171
|
* @default null
|
|
153
172
|
*/
|
|
@@ -169,6 +188,9 @@ class MeshPhongMaterial extends Material {
|
|
|
169
188
|
* convention, the `y` component of `normalScale` should be negated to compensate
|
|
170
189
|
* for the different handedness.
|
|
171
190
|
*
|
|
191
|
+
* `normalMap` represents non-color data. Any texture assigned must have
|
|
192
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
193
|
+
*
|
|
172
194
|
* @type {?Texture}
|
|
173
195
|
* @default null
|
|
174
196
|
*/
|
|
@@ -196,7 +218,12 @@ class MeshPhongMaterial extends Material {
|
|
|
196
218
|
* displaced vertices can cast shadows, block other objects, and otherwise
|
|
197
219
|
* act as real geometry. The displacement texture is an image where the value
|
|
198
220
|
* of each pixel (white being the highest) is mapped against, and
|
|
199
|
-
* repositions, the vertices of the mesh.
|
|
221
|
+
* repositions, the vertices of the mesh. For best results, pair a
|
|
222
|
+
* displacement map with a matching normal map, since the renderer can
|
|
223
|
+
* not recompute surface normals from the displaced vertices.
|
|
224
|
+
*
|
|
225
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
226
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
200
227
|
*
|
|
201
228
|
* @type {?Texture}
|
|
202
229
|
* @default null
|
|
@@ -228,6 +255,10 @@ class MeshPhongMaterial extends Material {
|
|
|
228
255
|
* highlight contributes and how much of the environment map affects the
|
|
229
256
|
* surface.
|
|
230
257
|
*
|
|
258
|
+
* `specularMap` represents color data, and the texture must be assigned a
|
|
259
|
+
* {@link Texture#colorSpace}. Most `specularMap` textures set
|
|
260
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
261
|
+
*
|
|
231
262
|
* @type {?Texture}
|
|
232
263
|
* @default null
|
|
233
264
|
*/
|
|
@@ -243,6 +274,9 @@ class MeshPhongMaterial extends Material {
|
|
|
243
274
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
244
275
|
* luminance/alpha textures will also still work as expected.
|
|
245
276
|
*
|
|
277
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
278
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
279
|
+
*
|
|
246
280
|
* @type {?Texture}
|
|
247
281
|
* @default null
|
|
248
282
|
*/
|
|
@@ -251,6 +285,11 @@ class MeshPhongMaterial extends Material {
|
|
|
251
285
|
/**
|
|
252
286
|
* The environment map.
|
|
253
287
|
*
|
|
288
|
+
* `envMap` represents luminance data, and the texture must be assigned
|
|
289
|
+
* a {@link Texture#colorSpace}. Most `envMap` textures set
|
|
290
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
291
|
+
* such as `.exr` or `.hdr`.
|
|
292
|
+
*
|
|
254
293
|
* @type {?Texture}
|
|
255
294
|
* @default null
|
|
256
295
|
*/
|
|
@@ -284,6 +323,14 @@ class MeshPhongMaterial extends Material {
|
|
|
284
323
|
*/
|
|
285
324
|
this.reflectivity = 1;
|
|
286
325
|
|
|
326
|
+
/**
|
|
327
|
+
* Scales the effect of the environment map by multiplying its color.
|
|
328
|
+
*
|
|
329
|
+
* @type {number}
|
|
330
|
+
* @default 1
|
|
331
|
+
*/
|
|
332
|
+
this.envMapIntensity = 1.0;
|
|
333
|
+
|
|
287
334
|
/**
|
|
288
335
|
* The index of refraction (IOR) of air (approximately 1) divided by the
|
|
289
336
|
* index of refraction of the material. It is used with environment mapping
|
|
@@ -392,6 +439,7 @@ class MeshPhongMaterial extends Material {
|
|
|
392
439
|
this.envMapRotation.copy( source.envMapRotation );
|
|
393
440
|
this.combine = source.combine;
|
|
394
441
|
this.reflectivity = source.reflectivity;
|
|
442
|
+
this.envMapIntensity = source.envMapIntensity;
|
|
395
443
|
this.refractionRatio = source.refractionRatio;
|
|
396
444
|
|
|
397
445
|
this.wireframe = source.wireframe;
|
|
@@ -77,6 +77,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
77
77
|
* bitangent space, to be rotated by `anisotropyRotation`. The blue channel
|
|
78
78
|
* contains strength as `[0, 1]` to be multiplied by `anisotropy`.
|
|
79
79
|
*
|
|
80
|
+
* `anisotropyMap` represents non-color data. Any texture assigned must have
|
|
81
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
82
|
+
*
|
|
80
83
|
* @type {?Texture}
|
|
81
84
|
* @default null
|
|
82
85
|
*/
|
|
@@ -86,6 +89,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
86
89
|
* The red channel of this texture is multiplied against `clearcoat`,
|
|
87
90
|
* for per-pixel control over a coating's intensity.
|
|
88
91
|
*
|
|
92
|
+
* `clearcoatMap` represents non-color data. Any texture assigned must have
|
|
93
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
94
|
+
*
|
|
89
95
|
* @type {?Texture}
|
|
90
96
|
* @default null
|
|
91
97
|
*/
|
|
@@ -103,6 +109,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
103
109
|
* The green channel of this texture is multiplied against
|
|
104
110
|
* `clearcoatRoughness`, for per-pixel control over a coating's roughness.
|
|
105
111
|
*
|
|
112
|
+
* `clearcoatRoughnessMap` represents non-color data. Any texture assigned must have
|
|
113
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
114
|
+
*
|
|
106
115
|
* @type {?Texture}
|
|
107
116
|
* @default null
|
|
108
117
|
*/
|
|
@@ -120,6 +129,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
120
129
|
/**
|
|
121
130
|
* Can be used to enable independent normals for the clear coat layer.
|
|
122
131
|
*
|
|
132
|
+
* `clearcoatNormalMap` represents non-color data. Any texture assigned must have
|
|
133
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
134
|
+
*
|
|
123
135
|
* @type {?Texture}
|
|
124
136
|
* @default null
|
|
125
137
|
*/
|
|
@@ -161,6 +173,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
161
173
|
* The red channel of this texture is multiplied against `iridescence`, for per-pixel
|
|
162
174
|
* control over iridescence.
|
|
163
175
|
*
|
|
176
|
+
* `iridescenceMap` represents non-color data. Any texture assigned must have
|
|
177
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
178
|
+
*
|
|
164
179
|
* @type {?Texture}
|
|
165
180
|
* @default null
|
|
166
181
|
*/
|
|
@@ -191,6 +206,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
191
206
|
* - `1.0` in the green channel will result in thickness equal to second element of the array.
|
|
192
207
|
* - Values in-between will linearly interpolate between the elements of the array.
|
|
193
208
|
*
|
|
209
|
+
* `iridescenceThicknessMap` represents non-color data. Any texture assigned must have
|
|
210
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
211
|
+
*
|
|
194
212
|
* @type {?Texture}
|
|
195
213
|
* @default null
|
|
196
214
|
*/
|
|
@@ -208,6 +226,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
208
226
|
* The RGB channels of this texture are multiplied against `sheenColor`, for per-pixel control
|
|
209
227
|
* over sheen tint.
|
|
210
228
|
*
|
|
229
|
+
* `sheenColorMap` represents color data, and the texture must be assigned a
|
|
230
|
+
* {@link Texture#colorSpace}. Most `sheenColorMap` textures set
|
|
231
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
232
|
+
*
|
|
211
233
|
* @type {?Texture}
|
|
212
234
|
* @default null
|
|
213
235
|
*/
|
|
@@ -225,6 +247,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
225
247
|
* The alpha channel of this texture is multiplied against `sheenRoughness`, for per-pixel control
|
|
226
248
|
* over sheen roughness.
|
|
227
249
|
*
|
|
250
|
+
* `sheenRoughnessMap` represents non-color data. Any texture assigned must have
|
|
251
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
252
|
+
*
|
|
228
253
|
* @type {?Texture}
|
|
229
254
|
* @default null
|
|
230
255
|
*/
|
|
@@ -234,6 +259,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
234
259
|
* The red channel of this texture is multiplied against `transmission`, for per-pixel control over
|
|
235
260
|
* optical transparency.
|
|
236
261
|
*
|
|
262
|
+
* `transmissionMap` represents non-color data. Any texture assigned must have
|
|
263
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
264
|
+
*
|
|
237
265
|
* @type {?Texture}
|
|
238
266
|
* @default null
|
|
239
267
|
*/
|
|
@@ -253,6 +281,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
253
281
|
* A texture that defines the thickness, stored in the green channel. This will
|
|
254
282
|
* be multiplied by `thickness`.
|
|
255
283
|
*
|
|
284
|
+
* `thicknessMap` represents non-color data. Any texture assigned must have
|
|
285
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
286
|
+
*
|
|
256
287
|
* @type {?Texture}
|
|
257
288
|
* @default null
|
|
258
289
|
*/
|
|
@@ -290,6 +321,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
290
321
|
* The alpha channel of this texture is multiplied against `specularIntensity`,
|
|
291
322
|
* for per-pixel control over specular intensity.
|
|
292
323
|
*
|
|
324
|
+
* `specularIntensityMap` represents non-color data. Any texture assigned must have
|
|
325
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
326
|
+
*
|
|
293
327
|
* @type {?Texture}
|
|
294
328
|
* @default null
|
|
295
329
|
*/
|
|
@@ -307,6 +341,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
|
|
|
307
341
|
* The RGB channels of this texture are multiplied against `specularColor`,
|
|
308
342
|
* for per-pixel control over specular color.
|
|
309
343
|
*
|
|
344
|
+
* `specularColorMap` represents color data, and the texture must be assigned a
|
|
345
|
+
* {@link Texture#colorSpace}. Most `specularColorMap` textures set
|
|
346
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
347
|
+
*
|
|
310
348
|
* @type {?Texture}
|
|
311
349
|
* @default null
|
|
312
350
|
*/
|
|
@@ -100,6 +100,10 @@ class MeshStandardMaterial extends Material {
|
|
|
100
100
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
101
101
|
* color is modulated by the diffuse `color`.
|
|
102
102
|
*
|
|
103
|
+
* `map` represents color data, and the texture must be assigned a
|
|
104
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
105
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
106
|
+
*
|
|
103
107
|
* @type {?Texture}
|
|
104
108
|
* @default null
|
|
105
109
|
*/
|
|
@@ -108,6 +112,11 @@ class MeshStandardMaterial extends Material {
|
|
|
108
112
|
/**
|
|
109
113
|
* The light map. Requires a second set of UVs.
|
|
110
114
|
*
|
|
115
|
+
* `lightMap` represents pre-baked illuminance data, and the texture must be assigned
|
|
116
|
+
* a {@link Texture#colorSpace}. Most `lightMap` textures set
|
|
117
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
118
|
+
* such as `.exr` or `.hdr`.
|
|
119
|
+
*
|
|
111
120
|
* @type {?Texture}
|
|
112
121
|
* @default null
|
|
113
122
|
*/
|
|
@@ -125,6 +134,9 @@ class MeshStandardMaterial extends Material {
|
|
|
125
134
|
* The red channel of this texture is used as the ambient occlusion map.
|
|
126
135
|
* Requires a second set of UVs.
|
|
127
136
|
*
|
|
137
|
+
* `aoMap` represents non-color data. Any texture assigned must have
|
|
138
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
139
|
+
*
|
|
128
140
|
* @type {?Texture}
|
|
129
141
|
* @default null
|
|
130
142
|
*/
|
|
@@ -162,6 +174,10 @@ class MeshStandardMaterial extends Material {
|
|
|
162
174
|
* emissive color and the emissive intensity. If you have an emissive map,
|
|
163
175
|
* be sure to set the emissive color to something other than black.
|
|
164
176
|
*
|
|
177
|
+
* `emissiveMap` represents color data, and the texture must be assigned a
|
|
178
|
+
* {@link Texture#colorSpace}. Most `emissiveMap` textures set
|
|
179
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
180
|
+
*
|
|
165
181
|
* @type {?Texture}
|
|
166
182
|
* @default null
|
|
167
183
|
*/
|
|
@@ -173,6 +189,9 @@ class MeshStandardMaterial extends Material {
|
|
|
173
189
|
* the geometry of the object, only the lighting. If a normal map is defined
|
|
174
190
|
* this will be ignored.
|
|
175
191
|
*
|
|
192
|
+
* `bumpMap` represents non-color data. Any texture assigned must have
|
|
193
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
194
|
+
*
|
|
176
195
|
* @type {?Texture}
|
|
177
196
|
* @default null
|
|
178
197
|
*/
|
|
@@ -194,6 +213,9 @@ class MeshStandardMaterial extends Material {
|
|
|
194
213
|
* convention, the `y` component of `normalScale` should be negated to compensate
|
|
195
214
|
* for the different handedness.
|
|
196
215
|
*
|
|
216
|
+
* `normalMap` represents non-color data. Any texture assigned must have
|
|
217
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
218
|
+
*
|
|
197
219
|
* @type {?Texture}
|
|
198
220
|
* @default null
|
|
199
221
|
*/
|
|
@@ -221,7 +243,12 @@ class MeshStandardMaterial extends Material {
|
|
|
221
243
|
* displaced vertices can cast shadows, block other objects, and otherwise
|
|
222
244
|
* act as real geometry. The displacement texture is an image where the value
|
|
223
245
|
* of each pixel (white being the highest) is mapped against, and
|
|
224
|
-
* repositions, the vertices of the mesh.
|
|
246
|
+
* repositions, the vertices of the mesh. For best results, pair a
|
|
247
|
+
* displacement map with a matching normal map, since the renderer can
|
|
248
|
+
* not recompute surface normals from the displaced vertices.
|
|
249
|
+
*
|
|
250
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
251
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
225
252
|
*
|
|
226
253
|
* @type {?Texture}
|
|
227
254
|
* @default null
|
|
@@ -252,6 +279,9 @@ class MeshStandardMaterial extends Material {
|
|
|
252
279
|
* The green channel of this texture is used to alter the roughness of the
|
|
253
280
|
* material.
|
|
254
281
|
*
|
|
282
|
+
* `roughnessMap` represents non-color data. Any texture assigned must have
|
|
283
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
284
|
+
*
|
|
255
285
|
* @type {?Texture}
|
|
256
286
|
* @default null
|
|
257
287
|
*/
|
|
@@ -261,6 +291,9 @@ class MeshStandardMaterial extends Material {
|
|
|
261
291
|
* The blue channel of this texture is used to alter the metalness of the
|
|
262
292
|
* material.
|
|
263
293
|
*
|
|
294
|
+
* `metalnessMap` represents non-color data. Any texture assigned must have
|
|
295
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
296
|
+
*
|
|
264
297
|
* @type {?Texture}
|
|
265
298
|
* @default null
|
|
266
299
|
*/
|
|
@@ -276,6 +309,9 @@ class MeshStandardMaterial extends Material {
|
|
|
276
309
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
277
310
|
* luminance/alpha textures will also still work as expected.
|
|
278
311
|
*
|
|
312
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
313
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
314
|
+
*
|
|
279
315
|
* @type {?Texture}
|
|
280
316
|
* @default null
|
|
281
317
|
*/
|
|
@@ -285,6 +321,11 @@ class MeshStandardMaterial extends Material {
|
|
|
285
321
|
* The environment map. To ensure a physically correct rendering, environment maps
|
|
286
322
|
* are internally pre-processed with {@link PMREMGenerator}.
|
|
287
323
|
*
|
|
324
|
+
* `envMap` represents luminance data, and the texture must be assigned
|
|
325
|
+
* a {@link Texture#colorSpace}. Most `envMap` textures set
|
|
326
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
327
|
+
* such as `.exr` or `.hdr`.
|
|
328
|
+
*
|
|
288
329
|
* @type {?Texture}
|
|
289
330
|
* @default null
|
|
290
331
|
*/
|
|
@@ -50,6 +50,10 @@ class MeshToonMaterial 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
|
*/
|
|
@@ -57,9 +61,12 @@ class MeshToonMaterial extends Material {
|
|
|
57
61
|
|
|
58
62
|
/**
|
|
59
63
|
* Gradient map for toon shading. It's required to set
|
|
60
|
-
* {@link Texture#minFilter} and {@link Texture#magFilter} to {@
|
|
64
|
+
* {@link Texture#minFilter} and {@link Texture#magFilter} to {@link NearestFilter}
|
|
61
65
|
* when using this type of texture.
|
|
62
66
|
*
|
|
67
|
+
* `gradientMap` represents non-color data. Any texture assigned must have
|
|
68
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
69
|
+
*
|
|
63
70
|
* @type {?Texture}
|
|
64
71
|
* @default null
|
|
65
72
|
*/
|
|
@@ -68,6 +75,11 @@ class MeshToonMaterial extends Material {
|
|
|
68
75
|
/**
|
|
69
76
|
* The light map. Requires a second set of UVs.
|
|
70
77
|
*
|
|
78
|
+
* `lightMap` represents pre-baked illuminance data, and the texture must be assigned
|
|
79
|
+
* a {@link Texture#colorSpace}. Most `lightMap` textures set
|
|
80
|
+
* `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
|
|
81
|
+
* such as `.exr` or `.hdr`.
|
|
82
|
+
*
|
|
71
83
|
* @type {?Texture}
|
|
72
84
|
* @default null
|
|
73
85
|
*/
|
|
@@ -85,6 +97,9 @@ class MeshToonMaterial extends Material {
|
|
|
85
97
|
* The red channel of this texture is used as the ambient occlusion map.
|
|
86
98
|
* Requires a second set of UVs.
|
|
87
99
|
*
|
|
100
|
+
* `aoMap` represents non-color data. Any texture assigned must have
|
|
101
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
102
|
+
*
|
|
88
103
|
* @type {?Texture}
|
|
89
104
|
* @default null
|
|
90
105
|
*/
|
|
@@ -122,6 +137,10 @@ class MeshToonMaterial extends Material {
|
|
|
122
137
|
* emissive color and the emissive intensity. If you have an emissive map,
|
|
123
138
|
* be sure to set the emissive color to something other than black.
|
|
124
139
|
*
|
|
140
|
+
* `emissiveMap` represents color data, and the texture must be assigned a
|
|
141
|
+
* {@link Texture#colorSpace}. Most `emissiveMap` textures set
|
|
142
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
143
|
+
*
|
|
125
144
|
* @type {?Texture}
|
|
126
145
|
* @default null
|
|
127
146
|
*/
|
|
@@ -133,6 +152,9 @@ class MeshToonMaterial extends Material {
|
|
|
133
152
|
* the geometry of the object, only the lighting. If a normal map is defined
|
|
134
153
|
* this will be ignored.
|
|
135
154
|
*
|
|
155
|
+
* `bumpMap` represents non-color data. Any texture assigned must have
|
|
156
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
157
|
+
*
|
|
136
158
|
* @type {?Texture}
|
|
137
159
|
* @default null
|
|
138
160
|
*/
|
|
@@ -154,6 +176,9 @@ class MeshToonMaterial extends Material {
|
|
|
154
176
|
* convention, the `y` component of `normalScale` should be negated to compensate
|
|
155
177
|
* for the different handedness.
|
|
156
178
|
*
|
|
179
|
+
* `normalMap` represents non-color data. Any texture assigned must have
|
|
180
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
181
|
+
*
|
|
157
182
|
* @type {?Texture}
|
|
158
183
|
* @default null
|
|
159
184
|
*/
|
|
@@ -181,7 +206,12 @@ class MeshToonMaterial extends Material {
|
|
|
181
206
|
* displaced vertices can cast shadows, block other objects, and otherwise
|
|
182
207
|
* act as real geometry. The displacement texture is an image where the value
|
|
183
208
|
* of each pixel (white being the highest) is mapped against, and
|
|
184
|
-
* repositions, the vertices of the mesh.
|
|
209
|
+
* repositions, the vertices of the mesh. For best results, pair a
|
|
210
|
+
* displacement map with a matching normal map, since the renderer can
|
|
211
|
+
* not recompute surface normals from the displaced vertices.
|
|
212
|
+
*
|
|
213
|
+
* `displacementMap` represents non-color data. Any texture assigned must have
|
|
214
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
185
215
|
*
|
|
186
216
|
* @type {?Texture}
|
|
187
217
|
* @default null
|
|
@@ -218,6 +248,9 @@ class MeshToonMaterial extends Material {
|
|
|
218
248
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
219
249
|
* luminance/alpha textures will also still work as expected.
|
|
220
250
|
*
|
|
251
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
252
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
253
|
+
*
|
|
221
254
|
* @type {?Texture}
|
|
222
255
|
* @default null
|
|
223
256
|
*/
|
|
@@ -65,6 +65,10 @@ class PointsMaterial extends Material {
|
|
|
65
65
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
66
66
|
* color is modulated by the diffuse `color`.
|
|
67
67
|
*
|
|
68
|
+
* `map` represents color data, and the texture must be assigned a
|
|
69
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
70
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
71
|
+
*
|
|
68
72
|
* @type {?Texture}
|
|
69
73
|
* @default null
|
|
70
74
|
*/
|
|
@@ -80,6 +84,9 @@ class PointsMaterial extends Material {
|
|
|
80
84
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
81
85
|
* luminance/alpha textures will also still work as expected.
|
|
82
86
|
*
|
|
87
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
88
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
89
|
+
*
|
|
83
90
|
* @type {?Texture}
|
|
84
91
|
* @default null
|
|
85
92
|
*/
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { Material } from './Material.js';
|
|
2
2
|
import { cloneUniforms, cloneUniformsGroups } from '../renderers/shaders/UniformsUtils.js';
|
|
3
|
+
import { Color } from '../math/Color.js';
|
|
4
|
+
import { Vector2 } from '../math/Vector2.js';
|
|
5
|
+
import { Vector3 } from '../math/Vector3.js';
|
|
6
|
+
import { Vector4 } from '../math/Vector4.js';
|
|
7
|
+
import { Matrix3 } from '../math/Matrix3.js';
|
|
8
|
+
import { Matrix4 } from '../math/Matrix4.js';
|
|
3
9
|
|
|
4
10
|
import default_vertex from '../renderers/shaders/ShaderChunk/default_vertex.glsl.js';
|
|
5
11
|
import default_fragment from '../renderers/shaders/ShaderChunk/default_fragment.glsl.js';
|
|
@@ -158,9 +164,22 @@ class ShaderMaterial extends Material {
|
|
|
158
164
|
this.wireframeLinewidth = 1;
|
|
159
165
|
|
|
160
166
|
/**
|
|
161
|
-
*
|
|
167
|
+
* Defines whether the material color is affected by global fog settings; `true`
|
|
162
168
|
* to pass fog uniforms to the shader.
|
|
163
169
|
*
|
|
170
|
+
* Setting this property to `true` requires the definition of fog uniforms. It is
|
|
171
|
+
* recommended to use `UniformsUtils.merge()` to combine the custom shader uniforms
|
|
172
|
+
* with predefined fog uniforms.
|
|
173
|
+
*
|
|
174
|
+
* ```js
|
|
175
|
+
* const material = new ShaderMaterial( {
|
|
176
|
+
* uniforms: UniformsUtils.merge( [ UniformsLib[ 'fog' ], shaderUniforms ] );
|
|
177
|
+
* vertexShader: vertexShader,
|
|
178
|
+
* fragmentShader: fragmentShader,
|
|
179
|
+
* fog: true
|
|
180
|
+
* } );
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
164
183
|
* @type {boolean}
|
|
165
184
|
* @default false
|
|
166
185
|
*/
|
|
@@ -279,6 +298,12 @@ class ShaderMaterial extends Material {
|
|
|
279
298
|
|
|
280
299
|
this.glslVersion = source.glslVersion;
|
|
281
300
|
|
|
301
|
+
this.defaultAttributeValues = Object.assign( {}, source.defaultAttributeValues );
|
|
302
|
+
|
|
303
|
+
this.index0AttributeName = source.index0AttributeName;
|
|
304
|
+
|
|
305
|
+
this.uniformsNeedUpdate = source.uniformsNeedUpdate;
|
|
306
|
+
|
|
282
307
|
return this;
|
|
283
308
|
|
|
284
309
|
}
|
|
@@ -378,6 +403,86 @@ class ShaderMaterial extends Material {
|
|
|
378
403
|
|
|
379
404
|
}
|
|
380
405
|
|
|
406
|
+
/**
|
|
407
|
+
* Deserializes the material from the given JSON.
|
|
408
|
+
*
|
|
409
|
+
* @param {Object} json - The JSON holding the serialized material.
|
|
410
|
+
* @param {Object<string,Texture>} textures - A dictionary holding textures referenced by the material.
|
|
411
|
+
* @return {ShaderMaterial} A reference to this material.
|
|
412
|
+
*/
|
|
413
|
+
fromJSON( json, textures ) {
|
|
414
|
+
|
|
415
|
+
super.fromJSON( json, textures );
|
|
416
|
+
|
|
417
|
+
if ( json.uniforms !== undefined ) {
|
|
418
|
+
|
|
419
|
+
for ( const name in json.uniforms ) {
|
|
420
|
+
|
|
421
|
+
const uniform = json.uniforms[ name ];
|
|
422
|
+
|
|
423
|
+
this.uniforms[ name ] = {};
|
|
424
|
+
|
|
425
|
+
switch ( uniform.type ) {
|
|
426
|
+
|
|
427
|
+
case 't':
|
|
428
|
+
this.uniforms[ name ].value = textures[ uniform.value ] || null;
|
|
429
|
+
break;
|
|
430
|
+
|
|
431
|
+
case 'c':
|
|
432
|
+
this.uniforms[ name ].value = new Color().setHex( uniform.value );
|
|
433
|
+
break;
|
|
434
|
+
|
|
435
|
+
case 'v2':
|
|
436
|
+
this.uniforms[ name ].value = new Vector2().fromArray( uniform.value );
|
|
437
|
+
break;
|
|
438
|
+
|
|
439
|
+
case 'v3':
|
|
440
|
+
this.uniforms[ name ].value = new Vector3().fromArray( uniform.value );
|
|
441
|
+
break;
|
|
442
|
+
|
|
443
|
+
case 'v4':
|
|
444
|
+
this.uniforms[ name ].value = new Vector4().fromArray( uniform.value );
|
|
445
|
+
break;
|
|
446
|
+
|
|
447
|
+
case 'm3':
|
|
448
|
+
this.uniforms[ name ].value = new Matrix3().fromArray( uniform.value );
|
|
449
|
+
break;
|
|
450
|
+
|
|
451
|
+
case 'm4':
|
|
452
|
+
this.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );
|
|
453
|
+
break;
|
|
454
|
+
|
|
455
|
+
default:
|
|
456
|
+
this.uniforms[ name ].value = uniform.value;
|
|
457
|
+
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
if ( json.defines !== undefined ) this.defines = json.defines;
|
|
465
|
+
if ( json.vertexShader !== undefined ) this.vertexShader = json.vertexShader;
|
|
466
|
+
if ( json.fragmentShader !== undefined ) this.fragmentShader = json.fragmentShader;
|
|
467
|
+
if ( json.glslVersion !== undefined ) this.glslVersion = json.glslVersion;
|
|
468
|
+
|
|
469
|
+
if ( json.extensions !== undefined ) {
|
|
470
|
+
|
|
471
|
+
for ( const key in json.extensions ) {
|
|
472
|
+
|
|
473
|
+
this.extensions[ key ] = json.extensions[ key ];
|
|
474
|
+
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
if ( json.lights !== undefined ) this.lights = json.lights;
|
|
480
|
+
if ( json.clipping !== undefined ) this.clipping = json.clipping;
|
|
481
|
+
|
|
482
|
+
return this;
|
|
483
|
+
|
|
484
|
+
}
|
|
485
|
+
|
|
381
486
|
}
|
|
382
487
|
|
|
383
488
|
/**
|
|
@@ -54,6 +54,10 @@ class SpriteMaterial extends Material {
|
|
|
54
54
|
* with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
|
|
55
55
|
* color is modulated by the diffuse `color`.
|
|
56
56
|
*
|
|
57
|
+
* `map` represents color data, and the texture must be assigned a
|
|
58
|
+
* {@link Texture#colorSpace}. Most `map` textures set
|
|
59
|
+
* `texture.colorSpace = SRGBColorSpace`.
|
|
60
|
+
*
|
|
57
61
|
* @type {?Texture}
|
|
58
62
|
* @default null
|
|
59
63
|
*/
|
|
@@ -69,6 +73,9 @@ class SpriteMaterial extends Material {
|
|
|
69
73
|
* green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
|
|
70
74
|
* luminance/alpha textures will also still work as expected.
|
|
71
75
|
*
|
|
76
|
+
* `alphaMap` represents non-color data. Any texture assigned must have
|
|
77
|
+
* `texture.colorSpace = NoColorSpace` (default).
|
|
78
|
+
*
|
|
72
79
|
* @type {?Texture}
|
|
73
80
|
* @default null
|
|
74
81
|
*/
|