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
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error class for node-related errors, including stack trace information.
|
|
3
|
+
*/
|
|
4
|
+
class NodeError extends Error {
|
|
5
|
+
|
|
6
|
+
constructor( message, stackTrace = null ) {
|
|
7
|
+
|
|
8
|
+
super( message );
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The name of the error.
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
this.name = 'NodeError';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The stack trace associated with the error.
|
|
19
|
+
*
|
|
20
|
+
* @type {?StackTrace}
|
|
21
|
+
*/
|
|
22
|
+
this.stackTrace = stackTrace;
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default NodeError;
|
|
@@ -155,9 +155,13 @@ class NodeFrame {
|
|
|
155
155
|
|
|
156
156
|
if ( nodeUpdateBeforeMap.frameId !== this.frameId ) {
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
const previousFrameId = nodeUpdateBeforeMap.frameId;
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
nodeUpdateBeforeMap.frameId = this.frameId;
|
|
161
|
+
|
|
162
|
+
if ( node.updateBefore( this ) === false ) {
|
|
163
|
+
|
|
164
|
+
nodeUpdateBeforeMap.frameId = previousFrameId;
|
|
161
165
|
|
|
162
166
|
}
|
|
163
167
|
|
|
@@ -169,9 +173,13 @@ class NodeFrame {
|
|
|
169
173
|
|
|
170
174
|
if ( nodeUpdateBeforeMap.renderId !== this.renderId ) {
|
|
171
175
|
|
|
172
|
-
|
|
176
|
+
const previousRenderId = nodeUpdateBeforeMap.renderId;
|
|
177
|
+
|
|
178
|
+
nodeUpdateBeforeMap.renderId = this.renderId;
|
|
179
|
+
|
|
180
|
+
if ( node.updateBefore( this ) === false ) {
|
|
173
181
|
|
|
174
|
-
nodeUpdateBeforeMap.renderId =
|
|
182
|
+
nodeUpdateBeforeMap.renderId = previousRenderId;
|
|
175
183
|
|
|
176
184
|
}
|
|
177
185
|
|
|
@@ -5,7 +5,9 @@ import { Matrix4 } from '../../math/Matrix4.js';
|
|
|
5
5
|
import { Vector2 } from '../../math/Vector2.js';
|
|
6
6
|
import { Vector3 } from '../../math/Vector3.js';
|
|
7
7
|
import { Vector4 } from '../../math/Vector4.js';
|
|
8
|
+
|
|
8
9
|
import { error } from '../../utils.js';
|
|
10
|
+
import StackTrace from '../core/StackTrace.js';
|
|
9
11
|
|
|
10
12
|
// cyrb53 (c) 2018 bryc (github.com/bryc). License: Public domain. Attribution appreciated.
|
|
11
13
|
// A fast and simple 64-bit (or 53-bit) string hash function with decent collision resistance.
|
|
@@ -16,7 +18,7 @@ function cyrb53( value, seed = 0 ) {
|
|
|
16
18
|
|
|
17
19
|
let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
|
|
18
20
|
|
|
19
|
-
if ( value
|
|
21
|
+
if ( Array.isArray( value ) ) {
|
|
20
22
|
|
|
21
23
|
for ( let i = 0, val; i < value.length; i ++ ) {
|
|
22
24
|
|
|
@@ -146,7 +148,7 @@ export function getTypedArrayFromType( type ) {
|
|
|
146
148
|
*/
|
|
147
149
|
export function getLengthFromType( type ) {
|
|
148
150
|
|
|
149
|
-
if ( /float|int|uint/.test( type ) ) return 1;
|
|
151
|
+
if ( /float|int|uint|bool/.test( type ) ) return 1;
|
|
150
152
|
if ( /vec2/.test( type ) ) return 2;
|
|
151
153
|
if ( /vec3/.test( type ) ) return 3;
|
|
152
154
|
if ( /vec4/.test( type ) ) return 4;
|
|
@@ -154,21 +156,21 @@ export function getLengthFromType( type ) {
|
|
|
154
156
|
if ( /mat3/.test( type ) ) return 9;
|
|
155
157
|
if ( /mat4/.test( type ) ) return 16;
|
|
156
158
|
|
|
157
|
-
error(
|
|
159
|
+
error( `TSL: Unsupported type: ${ type }`, new StackTrace() );
|
|
158
160
|
|
|
159
161
|
}
|
|
160
162
|
|
|
161
163
|
/**
|
|
162
|
-
* Returns the gpu memory length for the given data type.
|
|
164
|
+
* Returns the gpu memory length for the given data type in 4-byte elements.
|
|
163
165
|
*
|
|
164
166
|
* @private
|
|
165
167
|
* @method
|
|
166
168
|
* @param {string} type - The data type.
|
|
167
|
-
* @return {number} The length.
|
|
169
|
+
* @return {number} The memory length in 4-byte elements.
|
|
168
170
|
*/
|
|
169
171
|
export function getMemoryLengthFromType( type ) {
|
|
170
172
|
|
|
171
|
-
if ( /float|int|uint/.test( type ) ) return 1;
|
|
173
|
+
if ( /float|int|uint|bool/.test( type ) ) return 1;
|
|
172
174
|
if ( /vec2/.test( type ) ) return 2;
|
|
173
175
|
if ( /vec3/.test( type ) ) return 3;
|
|
174
176
|
if ( /vec4/.test( type ) ) return 4;
|
|
@@ -176,29 +178,29 @@ export function getMemoryLengthFromType( type ) {
|
|
|
176
178
|
if ( /mat3/.test( type ) ) return 12;
|
|
177
179
|
if ( /mat4/.test( type ) ) return 16;
|
|
178
180
|
|
|
179
|
-
error(
|
|
181
|
+
error( `TSL: Unsupported type: ${ type }`, new StackTrace() );
|
|
180
182
|
|
|
181
183
|
}
|
|
182
184
|
|
|
183
185
|
/**
|
|
184
|
-
* Returns the
|
|
186
|
+
* Returns the alignment requirement for the given data type in 4-byte elements.
|
|
185
187
|
*
|
|
186
188
|
* @private
|
|
187
189
|
* @method
|
|
188
190
|
* @param {string} type - The data type.
|
|
189
|
-
* @return {number} The byte
|
|
191
|
+
* @return {number} The alignment requirement in 4-byte elements.
|
|
190
192
|
*/
|
|
191
|
-
export function
|
|
193
|
+
export function getAlignmentFromType( type ) {
|
|
192
194
|
|
|
193
|
-
if ( /float|int|uint/.test( type ) ) return
|
|
194
|
-
if ( /vec2/.test( type ) ) return
|
|
195
|
-
if ( /vec3/.test( type ) ) return
|
|
196
|
-
if ( /vec4/.test( type ) ) return
|
|
197
|
-
if ( /mat2/.test( type ) ) return
|
|
198
|
-
if ( /mat3/.test( type ) ) return
|
|
199
|
-
if ( /mat4/.test( type ) ) return
|
|
195
|
+
if ( /float|int|uint|bool/.test( type ) ) return 1;
|
|
196
|
+
if ( /vec2/.test( type ) ) return 2;
|
|
197
|
+
if ( /vec3/.test( type ) ) return 4;
|
|
198
|
+
if ( /vec4/.test( type ) ) return 4;
|
|
199
|
+
if ( /mat2/.test( type ) ) return 2;
|
|
200
|
+
if ( /mat3/.test( type ) ) return 4;
|
|
201
|
+
if ( /mat4/.test( type ) ) return 4;
|
|
200
202
|
|
|
201
|
-
error(
|
|
203
|
+
error( `TSL: Unsupported type: ${ type }`, new StackTrace() );
|
|
202
204
|
|
|
203
205
|
}
|
|
204
206
|
|
|
@@ -42,11 +42,17 @@ class OutputStructNode extends Node {
|
|
|
42
42
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
generateNodeType( /*builder*/ ) {
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
return 'OutputType';
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
generate( builder ) {
|
|
52
|
+
|
|
53
|
+
const nodeData = builder.getDataFromNode( this );
|
|
54
|
+
|
|
55
|
+
if ( nodeData.membersLayout === undefined ) {
|
|
50
56
|
|
|
51
57
|
const members = this.members;
|
|
52
58
|
const membersLayout = [];
|
|
@@ -60,16 +66,12 @@ class OutputStructNode extends Node {
|
|
|
60
66
|
|
|
61
67
|
}
|
|
62
68
|
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
nodeData.membersLayout = membersLayout;
|
|
70
|
+
nodeData.structType = builder.getOutputStructTypeFromNode( this, nodeData.membersLayout );
|
|
65
71
|
|
|
66
72
|
}
|
|
67
73
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
generate( builder ) {
|
|
74
|
+
//
|
|
73
75
|
|
|
74
76
|
const propertyName = builder.getOutputStructName();
|
|
75
77
|
const members = this.members;
|
|
@@ -78,7 +80,7 @@ class OutputStructNode extends Node {
|
|
|
78
80
|
|
|
79
81
|
for ( let i = 0; i < members.length; i ++ ) {
|
|
80
82
|
|
|
81
|
-
const snippet = members[ i ].build( builder );
|
|
83
|
+
const snippet = members[ i ].build( builder, nodeData.membersLayout[ i ].type );
|
|
82
84
|
|
|
83
85
|
builder.addLineFlowCode( `${ structPrefix }m${ i } = ${ snippet }`, this );
|
|
84
86
|
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import ContextNode from './ContextNode.js';
|
|
2
|
+
import { addMethodChaining } from '../tsl/TSLCore.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A specialized context node designed to override specific target nodes within a
|
|
6
|
+
* node sub-graph or flow. This allows replacing specific inputs (e.g., normal
|
|
7
|
+
* and position vectors) dynamically during compilation for a specific flow node,
|
|
8
|
+
* without having to reconstruct or duplicate the source nodes.
|
|
9
|
+
*
|
|
10
|
+
* ```js
|
|
11
|
+
* // Method chaining example:
|
|
12
|
+
* node.overrideNode( positionLocal, () => positionLocal.add( vec3( 1, 0, 0 ) ) );
|
|
13
|
+
*
|
|
14
|
+
* // Context assignment example:
|
|
15
|
+
* material.contextNode = overrideNode( positionLocal, () => positionLocal.add( vec3( 1, 0, 0 ) ) );
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @augments ContextNode
|
|
19
|
+
*/
|
|
20
|
+
class OverrideContextNode extends ContextNode {
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Returns the type of the node.
|
|
24
|
+
*
|
|
25
|
+
* @type {string}
|
|
26
|
+
* @readonly
|
|
27
|
+
* @static
|
|
28
|
+
*/
|
|
29
|
+
static get type() {
|
|
30
|
+
|
|
31
|
+
return 'OverrideContextNode';
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Constructs a new override context node.
|
|
37
|
+
*
|
|
38
|
+
* @param {Map<Node, Function>} overrideNodes - A map mapping target nodes to their respective override callback functions.
|
|
39
|
+
* @param {Node|null} [flowNode=null] - The node whose context should be modified.
|
|
40
|
+
*/
|
|
41
|
+
constructor( overrideNodes, flowNode = null ) {
|
|
42
|
+
|
|
43
|
+
super( flowNode, {
|
|
44
|
+
overrideNodes
|
|
45
|
+
} );
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* This flag can be used for type testing.
|
|
49
|
+
*
|
|
50
|
+
* @type {boolean}
|
|
51
|
+
* @readonly
|
|
52
|
+
* @default true
|
|
53
|
+
*/
|
|
54
|
+
this.isOverrideContextNode = true;
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Gathers the context data from all parent context nodes by traversing the hierarchy,
|
|
60
|
+
* merging the `overrideNodes` maps from all encountered `OverrideContextNode` instances.
|
|
61
|
+
*
|
|
62
|
+
* @return {Object} The gathered context data, containing the merged `overrideNodes` map.
|
|
63
|
+
*/
|
|
64
|
+
getFlowContextData() {
|
|
65
|
+
|
|
66
|
+
const children = [];
|
|
67
|
+
|
|
68
|
+
this.traverse( ( node ) => {
|
|
69
|
+
|
|
70
|
+
if ( node.isOverrideContextNode === true ) {
|
|
71
|
+
|
|
72
|
+
children.push( node.value.overrideNodes );
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
} );
|
|
77
|
+
|
|
78
|
+
const overrideNodes = new Map( children.flatMap( ( map ) => Array.from( map.entries() ) ) );
|
|
79
|
+
|
|
80
|
+
const data = super.getFlowContextData();
|
|
81
|
+
data.overrideNodes = overrideNodes;
|
|
82
|
+
|
|
83
|
+
return data;
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export default OverrideContextNode;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* TSL function for creating an `OverrideContextNode` to override a single target node.
|
|
93
|
+
*
|
|
94
|
+
* ```js
|
|
95
|
+
* material.contextNode = overrideNode( positionLocal, ( builder ) => positionLocal.add( vec3( 1, 0, 0 ) ) );
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @tsl
|
|
99
|
+
* @function
|
|
100
|
+
* @param {Node} targetNode - The target node that should be overridden.
|
|
101
|
+
* @param {Function|Node|null} [callback=null] - A callback function returning the overriding node (which receives the builder as its argument), or the overriding node itself.
|
|
102
|
+
* @param {Node|null} [flowNode=null] - The node whose context should be modified.
|
|
103
|
+
* @return {OverrideContextNode} The created override context node.
|
|
104
|
+
*/
|
|
105
|
+
export function overrideNode( targetNode, callback = null, flowNode = null ) {
|
|
106
|
+
|
|
107
|
+
if ( callback && callback.isNode ) {
|
|
108
|
+
|
|
109
|
+
const node = callback;
|
|
110
|
+
|
|
111
|
+
callback = () => node;
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return new OverrideContextNode( new Map( [[ targetNode, callback ]] ), flowNode );
|
|
116
|
+
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
addMethodChaining( 'overrideNode', ( flowNode, node, callback ) => overrideNode( node, callback, flowNode ) );
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* TSL function for creating an `OverrideContextNode` to override multiple target nodes.
|
|
123
|
+
*
|
|
124
|
+
* ```js
|
|
125
|
+
* material.contextNode = overrideNodes( [
|
|
126
|
+
* [ positionView, customPositionView ],
|
|
127
|
+
* [ positionViewDirection, ( builder ) => customPositionViewDirection ]
|
|
128
|
+
* ] );
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @tsl
|
|
132
|
+
* @function
|
|
133
|
+
* @param {Map<Node, (Function|Node)>|Array<Array<Node|Function|Node>>} overrides - The overrides mapping target nodes to callback functions or overriding nodes.
|
|
134
|
+
* @param {Node|null} [flowNode=null] - The node whose context should be modified.
|
|
135
|
+
* @return {OverrideContextNode} The created override context node.
|
|
136
|
+
*/
|
|
137
|
+
export function overrideNodes( overrides, flowNode = null ) {
|
|
138
|
+
|
|
139
|
+
const overrideNodesMap = new Map();
|
|
140
|
+
|
|
141
|
+
for ( const [ node, value ] of overrides ) {
|
|
142
|
+
|
|
143
|
+
const callback = value !== null ? typeof value === 'function' ? value : () => value : null;
|
|
144
|
+
|
|
145
|
+
overrideNodesMap.set( node, callback );
|
|
146
|
+
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return new OverrideContextNode( overrideNodesMap, flowNode );
|
|
150
|
+
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
addMethodChaining( 'overrideNodes', ( flowNode, overrides ) => overrideNodes( overrides, flowNode ) );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { nodeObject } from '../tsl/TSLBase.js';
|
|
2
1
|
import { error } from '../../utils.js';
|
|
2
|
+
import StackTrace from '../core/StackTrace.js';
|
|
3
3
|
import PropertyNode from './PropertyNode.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -56,7 +56,7 @@ class ParameterNode extends PropertyNode {
|
|
|
56
56
|
|
|
57
57
|
} else {
|
|
58
58
|
|
|
59
|
-
error( `TSL: Member "${ name }" not found in struct "${ type }"
|
|
59
|
+
error( `TSL: Member "${ name }" not found in struct "${ type }".`, new StackTrace() );
|
|
60
60
|
|
|
61
61
|
memberType = 'float';
|
|
62
62
|
|
|
@@ -68,7 +68,7 @@ class ParameterNode extends PropertyNode {
|
|
|
68
68
|
|
|
69
69
|
getHash() {
|
|
70
70
|
|
|
71
|
-
return this.
|
|
71
|
+
return String( this.id );
|
|
72
72
|
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -91,4 +91,4 @@ export default ParameterNode;
|
|
|
91
91
|
* @param {?string} name - The name of the parameter in the shader.
|
|
92
92
|
* @returns {ParameterNode}
|
|
93
93
|
*/
|
|
94
|
-
export const parameter = ( type, name ) =>
|
|
94
|
+
export const parameter = ( type, name ) => new ParameterNode( type, name );
|
|
@@ -28,8 +28,9 @@ class PropertyNode extends Node {
|
|
|
28
28
|
* @param {string} nodeType - The type of the node.
|
|
29
29
|
* @param {?string} [name=null] - The name of the property in the shader.
|
|
30
30
|
* @param {boolean} [varying=false] - Whether this property is a varying or not.
|
|
31
|
+
* @param {?Node} [placeholderNode=null] - The placeholder node if not assigned.
|
|
31
32
|
*/
|
|
32
|
-
constructor( nodeType, name = null, varying = false ) {
|
|
33
|
+
constructor( nodeType, name = null, varying = false, placeholderNode = null ) {
|
|
33
34
|
|
|
34
35
|
super( nodeType );
|
|
35
36
|
|
|
@@ -50,6 +51,14 @@ class PropertyNode extends Node {
|
|
|
50
51
|
*/
|
|
51
52
|
this.varying = varying;
|
|
52
53
|
|
|
54
|
+
/**
|
|
55
|
+
* The placeholder node of the property if it is not assigned.
|
|
56
|
+
*
|
|
57
|
+
* @type {?Node}
|
|
58
|
+
* @default null
|
|
59
|
+
*/
|
|
60
|
+
this.placeholderNode = nodeObject( placeholderNode );
|
|
61
|
+
|
|
53
62
|
/**
|
|
54
63
|
* This flag can be used for type testing.
|
|
55
64
|
*
|
|
@@ -69,6 +78,20 @@ class PropertyNode extends Node {
|
|
|
69
78
|
|
|
70
79
|
}
|
|
71
80
|
|
|
81
|
+
getNodeType( builder ) {
|
|
82
|
+
|
|
83
|
+
const nodeType = super.getNodeType( builder );
|
|
84
|
+
|
|
85
|
+
if ( nodeType === 'output' ) {
|
|
86
|
+
|
|
87
|
+
return builder.getOutputType();
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return nodeType;
|
|
92
|
+
|
|
93
|
+
}
|
|
94
|
+
|
|
72
95
|
customCacheKey() {
|
|
73
96
|
|
|
74
97
|
return hashString( this.type + ':' + ( this.name || '' ) + ':' + ( this.varying ? '1' : '0' ) );
|
|
@@ -94,6 +117,18 @@ class PropertyNode extends Node {
|
|
|
94
117
|
|
|
95
118
|
nodeVar = builder.getVarFromNode( this, this.name );
|
|
96
119
|
|
|
120
|
+
if ( this.placeholderNode !== null ) {
|
|
121
|
+
|
|
122
|
+
if ( builder.hasWriteUsage( this ) === false ) {
|
|
123
|
+
|
|
124
|
+
const snippet = this.placeholderNode.build( builder, this.getNodeType( builder ) );
|
|
125
|
+
|
|
126
|
+
builder.addLineFlowCode( `${ builder.getPropertyName( nodeVar ) } = ${ snippet }`, this );
|
|
127
|
+
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
}
|
|
131
|
+
|
|
97
132
|
}
|
|
98
133
|
|
|
99
134
|
return builder.getPropertyName( nodeVar );
|
|
@@ -111,9 +146,10 @@ export default PropertyNode;
|
|
|
111
146
|
* @function
|
|
112
147
|
* @param {string} type - The type of the node.
|
|
113
148
|
* @param {?string} [name=null] - The name of the property in the shader.
|
|
149
|
+
* @param {?Node} [placeholderNode=null] - The placeholder node if not assigned.
|
|
114
150
|
* @returns {PropertyNode}
|
|
115
151
|
*/
|
|
116
|
-
export const property = ( type, name ) =>
|
|
152
|
+
export const property = ( type, name, placeholderNode = null ) => new PropertyNode( type, name, false, placeholderNode );
|
|
117
153
|
|
|
118
154
|
/**
|
|
119
155
|
* TSL function for creating a varying property node.
|
|
@@ -122,9 +158,10 @@ export const property = ( type, name ) => nodeObject( new PropertyNode( type, na
|
|
|
122
158
|
* @function
|
|
123
159
|
* @param {string} type - The type of the node.
|
|
124
160
|
* @param {?string} [name=null] - The name of the varying in the shader.
|
|
161
|
+
* @param {?Node} [placeholderNode=null] - The placeholder node if not assigned.
|
|
125
162
|
* @returns {PropertyNode}
|
|
126
163
|
*/
|
|
127
|
-
export const varyingProperty = ( type, name ) =>
|
|
164
|
+
export const varyingProperty = ( type, name, placeholderNode = null ) => new PropertyNode( type, name, true, placeholderNode );
|
|
128
165
|
|
|
129
166
|
/**
|
|
130
167
|
* TSL object that represents the shader variable `DiffuseColor`.
|
|
@@ -134,6 +171,14 @@ export const varyingProperty = ( type, name ) => nodeObject( new PropertyNode( t
|
|
|
134
171
|
*/
|
|
135
172
|
export const diffuseColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'DiffuseColor' );
|
|
136
173
|
|
|
174
|
+
/**
|
|
175
|
+
* TSL object that represents the shader variable `DiffuseContribution`.
|
|
176
|
+
*
|
|
177
|
+
* @tsl
|
|
178
|
+
* @type {PropertyNode<vec3>}
|
|
179
|
+
*/
|
|
180
|
+
export const diffuseContribution = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'DiffuseContribution' );
|
|
181
|
+
|
|
137
182
|
/**
|
|
138
183
|
* TSL object that represents the shader variable `EmissiveColor`.
|
|
139
184
|
*
|
|
@@ -254,6 +299,14 @@ export const anisotropyB = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'A
|
|
|
254
299
|
*/
|
|
255
300
|
export const specularColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'SpecularColor' );
|
|
256
301
|
|
|
302
|
+
/**
|
|
303
|
+
* TSL object that represents the shader variable `SpecularColorBlended`.
|
|
304
|
+
*
|
|
305
|
+
* @tsl
|
|
306
|
+
* @type {PropertyNode<color>}
|
|
307
|
+
*/
|
|
308
|
+
export const specularColorBlended = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'SpecularColorBlended' );
|
|
309
|
+
|
|
257
310
|
/**
|
|
258
311
|
* TSL object that represents the shader variable `SpecularF90`.
|
|
259
312
|
*
|
|
@@ -276,7 +329,7 @@ export const shininess = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Sh
|
|
|
276
329
|
* @tsl
|
|
277
330
|
* @type {PropertyNode<vec4>}
|
|
278
331
|
*/
|
|
279
|
-
export const output = /*@__PURE__*/ nodeImmutable( PropertyNode, '
|
|
332
|
+
export const output = /*@__PURE__*/ nodeImmutable( PropertyNode, 'output', 'Output' );
|
|
280
333
|
|
|
281
334
|
/**
|
|
282
335
|
* TSL object that represents the shader variable `dashSize`.
|
|
@@ -349,3 +402,12 @@ export const attenuationColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'colo
|
|
|
349
402
|
* @type {PropertyNode<float>}
|
|
350
403
|
*/
|
|
351
404
|
export const dispersion = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Dispersion' );
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* TSL object that represents the shader variable `AmbientOcclusion`.
|
|
408
|
+
* If no value is assigned to this property, it defaults to a placeholder value of `1.0`.
|
|
409
|
+
*
|
|
410
|
+
* @tsl
|
|
411
|
+
* @type {PropertyNode<float>}
|
|
412
|
+
*/
|
|
413
|
+
export const ambientOcclusion = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'AmbientOcclusion', false, 1 );
|