super-three 0.179.0 → 0.184.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 +14522 -12207
- package/build/three.core.js +12005 -10954
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +2270 -1005
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +63 -18
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +16573 -7890
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +16533 -7888
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +12 -4
- package/examples/jsm/animation/CCDIKSolver.js +8 -4
- package/examples/jsm/controls/ArcballControls.js +15 -12
- package/examples/jsm/controls/DragControls.js +9 -59
- package/examples/jsm/controls/FirstPersonControls.js +61 -57
- package/examples/jsm/controls/FlyControls.js +5 -1
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +113 -10
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +9 -9
- package/examples/jsm/controls/TransformControls.js +35 -3
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMShadowNode.js +6 -2
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -2
- package/examples/jsm/exporters/GLTFExporter.js +185 -34
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +31 -5
- package/examples/jsm/geometries/DecalGeometry.js +3 -3
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +21 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +110 -13
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +542 -0
- package/examples/jsm/inspector/RendererInspector.js +425 -0
- package/examples/jsm/inspector/extensions/extensions.json +6 -0
- 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 +238 -0
- package/examples/jsm/inspector/tabs/Memory.js +128 -0
- package/examples/jsm/inspector/tabs/Parameters.js +380 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Settings.js +264 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
- package/examples/jsm/inspector/tabs/Viewer.js +268 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +2072 -0
- package/examples/jsm/inspector/ui/Style.js +1667 -0
- package/examples/jsm/inspector/ui/Tab.js +265 -0
- package/examples/jsm/inspector/ui/Values.js +476 -0
- package/examples/jsm/inspector/ui/utils.js +69 -0
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +651 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineMaterial.js +7 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3DMLoader.js +5 -4
- package/examples/jsm/loaders/3MFLoader.js +3 -3
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +27 -4029
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +692 -53
- package/examples/jsm/loaders/FBXLoader.js +237 -39
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +159 -185
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +485 -0
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +162 -53
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +41 -50
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +9 -41
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +4 -4
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +287 -162
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +79 -2
- 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/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +450 -363
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -2
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +73 -25
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +91 -7
- package/examples/jsm/objects/SkyMesh.js +151 -17
- package/examples/jsm/objects/Water.js +7 -6
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +11 -13
- package/examples/jsm/physics/AmmoPhysics.js +12 -7
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +9 -5
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- 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/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +56 -24
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +8 -7
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +175 -61
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +21 -8
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +8 -4
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +7 -6
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +3 -5
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +85 -25
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +52 -10
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +51 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +36 -24
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +40 -5
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +23 -9
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +5 -37
- package/examples/jsm/tsl/display/DenoiseNode.js +3 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- 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 +2 -2
- package/examples/jsm/tsl/display/GTAONode.js +59 -9
- package/examples/jsm/tsl/display/GaussianBlurNode.js +68 -35
- package/examples/jsm/tsl/display/GodraysNode.js +615 -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 +81 -20
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- 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 +2 -2
- package/examples/jsm/tsl/display/SSGINode.js +638 -0
- package/examples/jsm/tsl/display/SSRNode.js +186 -69
- package/examples/jsm/tsl/display/SSSNode.js +490 -0
- 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 +381 -75
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- 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/utils/BufferGeometryUtils.js +3 -4
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +13 -6
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -7
- package/package.json +27 -38
- package/src/Three.Core.js +7 -3
- package/src/Three.TSL.js +61 -16
- package/src/Three.WebGPU.Nodes.js +7 -0
- package/src/Three.WebGPU.js +11 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +12 -2
- package/src/animation/AnimationClip.js +21 -5
- package/src/animation/AnimationMixer.js +9 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +54 -14
- package/src/animation/PropertyBinding.js +12 -11
- 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 +11 -10
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +100 -7
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +24 -12
- package/src/core/Clock.js +7 -0
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +55 -6
- package/src/core/Raycaster.js +4 -3
- package/src/core/RenderTarget.js +14 -5
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +259 -57
- package/src/extras/TextureUtils.js +6 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +10 -8
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +9 -3
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +4 -1
- package/src/helpers/DirectionalLightHelper.js +4 -1
- package/src/helpers/HemisphereLightHelper.js +3 -0
- package/src/helpers/PointLightHelper.js +1 -25
- package/src/helpers/SpotLightHelper.js +3 -0
- 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/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +13 -2
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +30 -2
- package/src/loaders/DataTextureLoader.js +6 -4
- package/src/loaders/FileLoader.js +4 -4
- package/src/loaders/ImageBitmapLoader.js +17 -13
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +9 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +6 -4
- package/src/loaders/ObjectLoader.js +57 -17
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +5 -4
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +11 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +11 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +2 -1
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +22 -3
- package/src/materials/nodes/Line2NodeMaterial.js +36 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +95 -35
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +194 -88
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +23 -21
- package/src/math/Matrix2.js +14 -10
- package/src/math/Matrix3.js +15 -11
- package/src/math/Matrix4.js +94 -81
- package/src/math/Plane.js +5 -4
- package/src/math/Quaternion.js +60 -84
- package/src/math/Sphere.js +1 -1
- package/src/math/Spherical.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +11 -7
- package/src/math/Vector3.js +15 -13
- package/src/math/Vector4.js +13 -9
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/nodes/Nodes.js +86 -65
- package/src/nodes/TSL.js +11 -8
- package/src/nodes/accessors/Arrays.js +1 -1
- package/src/nodes/accessors/BatchNode.js +10 -10
- package/src/nodes/accessors/Bitangent.js +5 -5
- package/src/nodes/accessors/BufferAttributeNode.js +107 -15
- package/src/nodes/accessors/BufferNode.js +30 -3
- package/src/nodes/accessors/Camera.js +260 -13
- package/src/nodes/accessors/ClippingNode.js +10 -9
- package/src/nodes/accessors/CubeTextureNode.js +32 -6
- package/src/nodes/accessors/InstanceNode.js +164 -39
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/MaterialNode.js +9 -1
- package/src/nodes/accessors/MaterialProperties.js +2 -5
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +16 -15
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +51 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +7 -7
- package/src/nodes/accessors/ReferenceNode.js +11 -10
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/SkinningNode.js +27 -26
- package/src/nodes/accessors/StorageBufferNode.js +14 -24
- package/src/nodes/accessors/StorageTextureNode.js +62 -9
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +41 -31
- package/src/nodes/accessors/TextureNode.js +193 -63
- 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 +25 -5
- package/src/nodes/code/FunctionNode.js +25 -3
- package/src/nodes/core/ArrayNode.js +22 -2
- package/src/nodes/core/AssignNode.js +6 -5
- package/src/nodes/core/AttributeNode.js +5 -4
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +133 -15
- package/src/nodes/core/IndexNode.js +4 -3
- package/src/nodes/core/InputNode.js +3 -2
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +41 -8
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +264 -46
- package/src/nodes/core/NodeBuilder.js +453 -87
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +31 -23
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +25 -97
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +34 -3
- package/src/nodes/core/PropertyNode.js +26 -3
- package/src/nodes/core/StackNode.js +99 -23
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +22 -8
- package/src/nodes/core/StructTypeNode.js +13 -18
- package/src/nodes/core/SubBuildNode.js +4 -4
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +37 -13
- package/src/nodes/core/VarNode.js +96 -34
- package/src/nodes/core/VaryingNode.js +2 -18
- package/src/nodes/display/BlendModes.js +0 -63
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +18 -1
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +41 -5
- package/src/nodes/display/PassNode.js +175 -25
- package/src/nodes/display/RenderOutputNode.js +35 -9
- package/src/nodes/display/ScreenNode.js +47 -15
- package/src/nodes/display/ToneMappingNode.js +32 -5
- package/src/nodes/display/ToonOutlinePassNode.js +10 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +14 -6
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +72 -14
- package/src/nodes/fog/Fog.js +18 -34
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- 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/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +128 -46
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +44 -6
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +76 -38
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +34 -9
- package/src/nodes/lighting/LightsNode.js +10 -32
- package/src/nodes/lighting/PointShadowNode.js +167 -148
- package/src/nodes/lighting/ShadowFilterNode.js +55 -65
- package/src/nodes/lighting/ShadowNode.js +189 -44
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +25 -8
- package/src/nodes/math/MathNode.js +98 -57
- package/src/nodes/math/OperatorNode.js +8 -5
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/pmrem/PMREMNode.js +1 -1
- package/src/nodes/pmrem/PMREMUtils.js +111 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -3
- package/src/nodes/tsl/TSLCore.js +488 -166
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +14 -13
- package/src/nodes/utils/EventNode.js +67 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +7 -4
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +60 -8
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +60 -1
- package/src/nodes/utils/RTTNode.js +14 -4
- package/src/nodes/utils/ReflectorNode.js +61 -11
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +12 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +46 -18
- package/src/objects/InstancedMesh.js +30 -3
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +3 -2
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +12 -2
- package/src/objects/SkinnedMesh.js +29 -10
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +372 -179
- package/src/renderers/common/Animation.js +16 -4
- package/src/renderers/common/Attributes.js +16 -2
- package/src/renderers/common/Backend.js +137 -35
- package/src/renderers/common/Background.js +28 -14
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +83 -12
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +40 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +55 -3
- package/src/renderers/common/Info.js +337 -6
- package/src/renderers/common/InspectorBase.js +151 -0
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +41 -8
- package/src/renderers/common/PostProcessing.js +9 -226
- package/src/renderers/common/QuadMesh.js +7 -1
- 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 +18 -2
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +32 -6
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +22 -6
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +927 -335
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +52 -14
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +208 -47
- package/src/renderers/common/TimestampQueryPool.js +70 -6
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +64 -2
- package/src/renderers/common/XRManager.js +79 -51
- package/src/renderers/common/extras/PMREMGenerator.js +176 -79
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +260 -95
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
- package/src/renderers/shaders/DFGLUTData.js +49 -0
- 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 +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.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 +2 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +152 -59
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -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 +221 -190
- 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 +1 -1
- 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 +4 -1
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
- 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 +8 -5
- package/src/renderers/shaders/UniformsUtils.js +52 -9
- 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 +11 -5
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- 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 +270 -0
- package/src/renderers/webgl/WebGLProgram.js +63 -122
- package/src/renderers/webgl/WebGLPrograms.js +65 -52
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShadowMap.js +191 -26
- package/src/renderers/webgl/WebGLState.js +79 -40
- package/src/renderers/webgl/WebGLTextures.js +234 -68
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +24 -3
- package/src/renderers/webgl/WebGLUtils.js +8 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +438 -235
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +339 -84
- 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/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +229 -11
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +237 -72
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +56 -27
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +8 -3
- package/src/renderers/webgpu/WebGPUBackend.js +403 -253
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +5 -3
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +491 -123
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +108 -34
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +360 -201
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +111 -54
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +155 -205
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +407 -149
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +36 -13
- package/src/renderers/webgpu/utils/WebGPUUtils.js +55 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +45 -29
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +5 -4
- package/src/textures/Texture.js +19 -7
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +344 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- 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/src/nodes/accessors/SceneNode.js +0 -144
- 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 -30
- 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;
|
|
@@ -115,7 +115,7 @@ class NodeFrame {
|
|
|
115
115
|
* @private
|
|
116
116
|
* @param {WeakMap<Node, Object>} referenceMap - The reference weak map.
|
|
117
117
|
* @param {Node} nodeRef - The reference to the current node.
|
|
118
|
-
* @return {Object<string,WeakMap
|
|
118
|
+
* @return {Object<string,WeakMap<Object, number>>} The dictionary.
|
|
119
119
|
*/
|
|
120
120
|
_getMaps( referenceMap, nodeRef ) {
|
|
121
121
|
|
|
@@ -124,8 +124,8 @@ class NodeFrame {
|
|
|
124
124
|
if ( maps === undefined ) {
|
|
125
125
|
|
|
126
126
|
maps = {
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
renderId: 0,
|
|
128
|
+
frameId: 0,
|
|
129
129
|
};
|
|
130
130
|
|
|
131
131
|
referenceMap.set( nodeRef, maps );
|
|
@@ -151,13 +151,17 @@ class NodeFrame {
|
|
|
151
151
|
|
|
152
152
|
if ( updateType === NodeUpdateType.FRAME ) {
|
|
153
153
|
|
|
154
|
-
const
|
|
154
|
+
const nodeUpdateBeforeMap = this._getMaps( this.updateBeforeMap, reference );
|
|
155
155
|
|
|
156
|
-
if (
|
|
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
|
|
|
@@ -165,13 +169,17 @@ class NodeFrame {
|
|
|
165
169
|
|
|
166
170
|
} else if ( updateType === NodeUpdateType.RENDER ) {
|
|
167
171
|
|
|
168
|
-
const
|
|
172
|
+
const nodeUpdateBeforeMap = this._getMaps( this.updateBeforeMap, reference );
|
|
173
|
+
|
|
174
|
+
if ( nodeUpdateBeforeMap.renderId !== this.renderId ) {
|
|
175
|
+
|
|
176
|
+
const previousRenderId = nodeUpdateBeforeMap.renderId;
|
|
169
177
|
|
|
170
|
-
|
|
178
|
+
nodeUpdateBeforeMap.renderId = this.renderId;
|
|
171
179
|
|
|
172
|
-
if ( node.updateBefore( this )
|
|
180
|
+
if ( node.updateBefore( this ) === false ) {
|
|
173
181
|
|
|
174
|
-
|
|
182
|
+
nodeUpdateBeforeMap.renderId = previousRenderId;
|
|
175
183
|
|
|
176
184
|
}
|
|
177
185
|
|
|
@@ -200,13 +208,13 @@ class NodeFrame {
|
|
|
200
208
|
|
|
201
209
|
if ( updateType === NodeUpdateType.FRAME ) {
|
|
202
210
|
|
|
203
|
-
const
|
|
211
|
+
const nodeUpdateAfterMap = this._getMaps( this.updateAfterMap, reference );
|
|
204
212
|
|
|
205
|
-
if (
|
|
213
|
+
if ( nodeUpdateAfterMap.frameId !== this.frameId ) {
|
|
206
214
|
|
|
207
215
|
if ( node.updateAfter( this ) !== false ) {
|
|
208
216
|
|
|
209
|
-
|
|
217
|
+
nodeUpdateAfterMap.frameId = this.frameId;
|
|
210
218
|
|
|
211
219
|
}
|
|
212
220
|
|
|
@@ -214,13 +222,13 @@ class NodeFrame {
|
|
|
214
222
|
|
|
215
223
|
} else if ( updateType === NodeUpdateType.RENDER ) {
|
|
216
224
|
|
|
217
|
-
const
|
|
225
|
+
const nodeUpdateAfterMap = this._getMaps( this.updateAfterMap, reference );
|
|
218
226
|
|
|
219
|
-
if (
|
|
227
|
+
if ( nodeUpdateAfterMap.renderId !== this.renderId ) {
|
|
220
228
|
|
|
221
229
|
if ( node.updateAfter( this ) !== false ) {
|
|
222
230
|
|
|
223
|
-
|
|
231
|
+
nodeUpdateAfterMap.renderId = this.renderId;
|
|
224
232
|
|
|
225
233
|
}
|
|
226
234
|
|
|
@@ -249,13 +257,13 @@ class NodeFrame {
|
|
|
249
257
|
|
|
250
258
|
if ( updateType === NodeUpdateType.FRAME ) {
|
|
251
259
|
|
|
252
|
-
const
|
|
260
|
+
const nodeUpdateMap = this._getMaps( this.updateMap, reference );
|
|
253
261
|
|
|
254
|
-
if (
|
|
262
|
+
if ( nodeUpdateMap.frameId !== this.frameId ) {
|
|
255
263
|
|
|
256
264
|
if ( node.update( this ) !== false ) {
|
|
257
265
|
|
|
258
|
-
|
|
266
|
+
nodeUpdateMap.frameId = this.frameId;
|
|
259
267
|
|
|
260
268
|
}
|
|
261
269
|
|
|
@@ -263,13 +271,13 @@ class NodeFrame {
|
|
|
263
271
|
|
|
264
272
|
} else if ( updateType === NodeUpdateType.RENDER ) {
|
|
265
273
|
|
|
266
|
-
const
|
|
274
|
+
const nodeUpdateMap = this._getMaps( this.updateMap, reference );
|
|
267
275
|
|
|
268
|
-
if (
|
|
276
|
+
if ( nodeUpdateMap.renderId !== this.renderId ) {
|
|
269
277
|
|
|
270
278
|
if ( node.update( this ) !== false ) {
|
|
271
279
|
|
|
272
|
-
|
|
280
|
+
nodeUpdateMap.renderId = this.renderId;
|
|
273
281
|
|
|
274
282
|
}
|
|
275
283
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { warn } from '../../utils.js';
|
|
1
2
|
/**
|
|
2
3
|
* Base class for node functions. A derived module must be implemented
|
|
3
4
|
* for each supported native shader language. Similar to other `Node*` modules,
|
|
@@ -57,7 +58,7 @@ class NodeFunction {
|
|
|
57
58
|
*/
|
|
58
59
|
getCode( /*name = this.name*/ ) {
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
warn( 'Abstract function.' );
|
|
61
62
|
|
|
62
63
|
}
|
|
63
64
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { warn } from '../../utils.js';
|
|
1
2
|
/**
|
|
2
3
|
* Base class for node parsers. A derived parser must be implemented
|
|
3
4
|
* for each supported native shader language.
|
|
@@ -13,7 +14,7 @@ class NodeParser {
|
|
|
13
14
|
*/
|
|
14
15
|
parseFunction( /*source*/ ) {
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
warn( 'Abstract function.' );
|
|
17
18
|
|
|
18
19
|
}
|
|
19
20
|
|
|
@@ -6,6 +6,9 @@ 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';
|
|
11
|
+
|
|
9
12
|
// cyrb53 (c) 2018 bryc (github.com/bryc). License: Public domain. Attribution appreciated.
|
|
10
13
|
// A fast and simple 64-bit (or 53-bit) string hash function with decent collision resistance.
|
|
11
14
|
// Largely inspired by MurmurHash2/3, but with a focus on speed/simplicity.
|
|
@@ -15,7 +18,7 @@ function cyrb53( value, seed = 0 ) {
|
|
|
15
18
|
|
|
16
19
|
let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
|
|
17
20
|
|
|
18
|
-
if ( value
|
|
21
|
+
if ( Array.isArray( value ) ) {
|
|
19
22
|
|
|
20
23
|
for ( let i = 0, val; i < value.length; i ++ ) {
|
|
21
24
|
|
|
@@ -49,6 +52,7 @@ function cyrb53( value, seed = 0 ) {
|
|
|
49
52
|
/**
|
|
50
53
|
* Computes a hash for the given string.
|
|
51
54
|
*
|
|
55
|
+
* @private
|
|
52
56
|
* @method
|
|
53
57
|
* @param {string} str - The string to be hashed.
|
|
54
58
|
* @return {number} The hash.
|
|
@@ -58,6 +62,7 @@ export const hashString = ( str ) => cyrb53( str );
|
|
|
58
62
|
/**
|
|
59
63
|
* Computes a hash for the given array.
|
|
60
64
|
*
|
|
65
|
+
* @private
|
|
61
66
|
* @method
|
|
62
67
|
* @param {Array<number>} array - The array to be hashed.
|
|
63
68
|
* @return {number} The hash.
|
|
@@ -67,100 +72,13 @@ export const hashArray = ( array ) => cyrb53( array );
|
|
|
67
72
|
/**
|
|
68
73
|
* Computes a hash for the given list of parameters.
|
|
69
74
|
*
|
|
75
|
+
* @private
|
|
70
76
|
* @method
|
|
71
77
|
* @param {...number} params - A list of parameters.
|
|
72
78
|
* @return {number} The hash.
|
|
73
79
|
*/
|
|
74
80
|
export const hash = ( ...params ) => cyrb53( params );
|
|
75
81
|
|
|
76
|
-
/**
|
|
77
|
-
* Computes a cache key for the given node.
|
|
78
|
-
*
|
|
79
|
-
* @method
|
|
80
|
-
* @param {Object|Node} object - The object to be hashed.
|
|
81
|
-
* @param {boolean} [force=false] - Whether to force a cache key computation or not.
|
|
82
|
-
* @return {number} The hash.
|
|
83
|
-
*/
|
|
84
|
-
export function getCacheKey( object, force = false ) {
|
|
85
|
-
|
|
86
|
-
const values = [];
|
|
87
|
-
|
|
88
|
-
if ( object.isNode === true ) {
|
|
89
|
-
|
|
90
|
-
values.push( object.id );
|
|
91
|
-
object = object.getSelf();
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
for ( const { property, childNode } of getNodeChildren( object ) ) {
|
|
96
|
-
|
|
97
|
-
values.push( cyrb53( property.slice( 0, - 4 ) ), childNode.getCacheKey( force ) );
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return cyrb53( values );
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* This generator function can be used to iterate over the node children
|
|
107
|
-
* of the given object.
|
|
108
|
-
*
|
|
109
|
-
* @generator
|
|
110
|
-
* @param {Object} node - The object to be hashed.
|
|
111
|
-
* @param {boolean} [toJSON=false] - Whether to return JSON or not.
|
|
112
|
-
* @yields {Object} A result node holding the property, index (if available) and the child node.
|
|
113
|
-
*/
|
|
114
|
-
export function* getNodeChildren( node, toJSON = false ) {
|
|
115
|
-
|
|
116
|
-
for ( const property in node ) {
|
|
117
|
-
|
|
118
|
-
// Ignore private properties.
|
|
119
|
-
if ( property.startsWith( '_' ) === true ) continue;
|
|
120
|
-
|
|
121
|
-
const object = node[ property ];
|
|
122
|
-
|
|
123
|
-
if ( Array.isArray( object ) === true ) {
|
|
124
|
-
|
|
125
|
-
for ( let i = 0; i < object.length; i ++ ) {
|
|
126
|
-
|
|
127
|
-
const child = object[ i ];
|
|
128
|
-
|
|
129
|
-
if ( child && ( child.isNode === true || toJSON && typeof child.toJSON === 'function' ) ) {
|
|
130
|
-
|
|
131
|
-
yield { property, index: i, childNode: child };
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
} else if ( object && object.isNode === true ) {
|
|
138
|
-
|
|
139
|
-
yield { property, childNode: object };
|
|
140
|
-
|
|
141
|
-
} else if ( object && Object.getPrototypeOf( object ) === Object.prototype ) {
|
|
142
|
-
|
|
143
|
-
for ( const subProperty in object ) {
|
|
144
|
-
|
|
145
|
-
// Ignore private properties.
|
|
146
|
-
if ( subProperty.startsWith( '_' ) === true ) continue;
|
|
147
|
-
|
|
148
|
-
const child = object[ subProperty ];
|
|
149
|
-
|
|
150
|
-
if ( child && ( child.isNode === true || toJSON && typeof child.toJSON === 'function' ) ) {
|
|
151
|
-
|
|
152
|
-
yield { property, index: subProperty, childNode: child };
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
|
|
164
82
|
const typeFromLength = /*@__PURE__*/ new Map( [
|
|
165
83
|
[ 1, 'float' ],
|
|
166
84
|
[ 2, 'vec2' ],
|
|
@@ -175,6 +93,7 @@ const dataFromObject = /*@__PURE__*/ new WeakMap();
|
|
|
175
93
|
/**
|
|
176
94
|
* Returns the data type for the given the length.
|
|
177
95
|
*
|
|
96
|
+
* @private
|
|
178
97
|
* @method
|
|
179
98
|
* @param {number} length - The length.
|
|
180
99
|
* @return {string} The data type.
|
|
@@ -188,6 +107,7 @@ export function getTypeFromLength( length ) {
|
|
|
188
107
|
/**
|
|
189
108
|
* Returns the typed array for the given data type.
|
|
190
109
|
*
|
|
110
|
+
* @private
|
|
191
111
|
* @method
|
|
192
112
|
* @param {string} type - The data type.
|
|
193
113
|
* @return {TypedArray} The typed array.
|
|
@@ -221,6 +141,7 @@ export function getTypedArrayFromType( type ) {
|
|
|
221
141
|
/**
|
|
222
142
|
* Returns the length for the given data type.
|
|
223
143
|
*
|
|
144
|
+
* @private
|
|
224
145
|
* @method
|
|
225
146
|
* @param {string} type - The data type.
|
|
226
147
|
* @return {number} The length.
|
|
@@ -235,13 +156,14 @@ export function getLengthFromType( type ) {
|
|
|
235
156
|
if ( /mat3/.test( type ) ) return 9;
|
|
236
157
|
if ( /mat4/.test( type ) ) return 16;
|
|
237
158
|
|
|
238
|
-
|
|
159
|
+
error( `TSL: Unsupported type: ${ type }`, new StackTrace() );
|
|
239
160
|
|
|
240
161
|
}
|
|
241
162
|
|
|
242
163
|
/**
|
|
243
164
|
* Returns the gpu memory length for the given data type.
|
|
244
165
|
*
|
|
166
|
+
* @private
|
|
245
167
|
* @method
|
|
246
168
|
* @param {string} type - The data type.
|
|
247
169
|
* @return {number} The length.
|
|
@@ -256,34 +178,36 @@ export function getMemoryLengthFromType( type ) {
|
|
|
256
178
|
if ( /mat3/.test( type ) ) return 12;
|
|
257
179
|
if ( /mat4/.test( type ) ) return 16;
|
|
258
180
|
|
|
259
|
-
|
|
181
|
+
error( `TSL: Unsupported type: ${ type }`, new StackTrace() );
|
|
260
182
|
|
|
261
183
|
}
|
|
262
184
|
|
|
263
185
|
/**
|
|
264
|
-
* Returns the
|
|
186
|
+
* Returns the alignment requirement for the given data type.
|
|
265
187
|
*
|
|
188
|
+
* @private
|
|
266
189
|
* @method
|
|
267
190
|
* @param {string} type - The data type.
|
|
268
|
-
* @return {number} The
|
|
191
|
+
* @return {number} The alignment requirement in bytes.
|
|
269
192
|
*/
|
|
270
|
-
export function
|
|
193
|
+
export function getAlignmentFromType( type ) {
|
|
271
194
|
|
|
272
195
|
if ( /float|int|uint/.test( type ) ) return 4;
|
|
273
196
|
if ( /vec2/.test( type ) ) return 8;
|
|
274
197
|
if ( /vec3/.test( type ) ) return 16;
|
|
275
198
|
if ( /vec4/.test( type ) ) return 16;
|
|
276
199
|
if ( /mat2/.test( type ) ) return 8;
|
|
277
|
-
if ( /mat3/.test( type ) ) return
|
|
278
|
-
if ( /mat4/.test( type ) ) return
|
|
200
|
+
if ( /mat3/.test( type ) ) return 16;
|
|
201
|
+
if ( /mat4/.test( type ) ) return 16;
|
|
279
202
|
|
|
280
|
-
|
|
203
|
+
error( `TSL: Unsupported type: ${ type }`, new StackTrace() );
|
|
281
204
|
|
|
282
205
|
}
|
|
283
206
|
|
|
284
207
|
/**
|
|
285
208
|
* Returns the data type for the given value.
|
|
286
209
|
*
|
|
210
|
+
* @private
|
|
287
211
|
* @method
|
|
288
212
|
* @param {any} value - The value.
|
|
289
213
|
* @return {?string} The data type.
|
|
@@ -355,6 +279,7 @@ export function getValueType( value ) {
|
|
|
355
279
|
/**
|
|
356
280
|
* Returns the value/object for the given data type and parameters.
|
|
357
281
|
*
|
|
282
|
+
* @private
|
|
358
283
|
* @method
|
|
359
284
|
* @param {string} type - The given type.
|
|
360
285
|
* @param {...any} params - A parameter list.
|
|
@@ -425,6 +350,7 @@ export function getValueFromType( type, ...params ) {
|
|
|
425
350
|
/**
|
|
426
351
|
* Gets the object data that can be shared between different rendering steps.
|
|
427
352
|
*
|
|
353
|
+
* @private
|
|
428
354
|
* @param {Object} object - The object to get the data for.
|
|
429
355
|
* @return {Object} The object data.
|
|
430
356
|
*/
|
|
@@ -446,6 +372,7 @@ export function getDataFromObject( object ) {
|
|
|
446
372
|
/**
|
|
447
373
|
* Converts the given array buffer to a Base64 string.
|
|
448
374
|
*
|
|
375
|
+
* @private
|
|
449
376
|
* @method
|
|
450
377
|
* @param {ArrayBuffer} arrayBuffer - The array buffer.
|
|
451
378
|
* @return {string} The Base64 string.
|
|
@@ -469,6 +396,7 @@ export function arrayBufferToBase64( arrayBuffer ) {
|
|
|
469
396
|
/**
|
|
470
397
|
* Converts the given Base64 string to an array buffer.
|
|
471
398
|
*
|
|
399
|
+
* @private
|
|
472
400
|
* @method
|
|
473
401
|
* @param {string} base64 - The Base64 string.
|
|
474
402
|
* @return {ArrayBuffer} The array buffer.
|
|
@@ -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;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { error } from '../../utils.js';
|
|
2
|
+
import StackTrace from '../core/StackTrace.js';
|
|
2
3
|
import PropertyNode from './PropertyNode.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -35,9 +36,39 @@ class ParameterNode extends PropertyNode {
|
|
|
35
36
|
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Gets the type of a member variable in the parameter node.
|
|
41
|
+
*
|
|
42
|
+
* @param {NodeBuilder} builder - The node builder.
|
|
43
|
+
* @param {string} name - The name of the member variable.
|
|
44
|
+
* @returns {string}
|
|
45
|
+
*/
|
|
46
|
+
getMemberType( builder, name ) {
|
|
47
|
+
|
|
48
|
+
const type = this.getNodeType( builder );
|
|
49
|
+
const struct = builder.getStructTypeNode( type );
|
|
50
|
+
|
|
51
|
+
let memberType;
|
|
52
|
+
|
|
53
|
+
if ( struct !== null ) {
|
|
54
|
+
|
|
55
|
+
memberType = struct.getMemberType( builder, name );
|
|
56
|
+
|
|
57
|
+
} else {
|
|
58
|
+
|
|
59
|
+
error( `TSL: Member "${ name }" not found in struct "${ type }".`, new StackTrace() );
|
|
60
|
+
|
|
61
|
+
memberType = 'float';
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return memberType;
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
|
|
38
69
|
getHash() {
|
|
39
70
|
|
|
40
|
-
return this.
|
|
71
|
+
return String( this.id );
|
|
41
72
|
|
|
42
73
|
}
|
|
43
74
|
|
|
@@ -60,4 +91,4 @@ export default ParameterNode;
|
|
|
60
91
|
* @param {?string} name - The name of the parameter in the shader.
|
|
61
92
|
* @returns {ParameterNode}
|
|
62
93
|
*/
|
|
63
|
-
export const parameter = ( type, name ) =>
|
|
94
|
+
export const parameter = ( type, name ) => new ParameterNode( type, name );
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Node from './Node.js';
|
|
2
|
-
import { nodeImmutable
|
|
2
|
+
import { nodeImmutable } from '../tsl/TSLCore.js';
|
|
3
|
+
import { hashString } from './NodeUtils.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* This class represents a shader property. It can be used
|
|
@@ -68,6 +69,12 @@ class PropertyNode extends Node {
|
|
|
68
69
|
|
|
69
70
|
}
|
|
70
71
|
|
|
72
|
+
customCacheKey() {
|
|
73
|
+
|
|
74
|
+
return hashString( this.type + ':' + ( this.name || '' ) + ':' + ( this.varying ? '1' : '0' ) );
|
|
75
|
+
|
|
76
|
+
}
|
|
77
|
+
|
|
71
78
|
getHash( builder ) {
|
|
72
79
|
|
|
73
80
|
return this.name || super.getHash( builder );
|
|
@@ -106,7 +113,7 @@ export default PropertyNode;
|
|
|
106
113
|
* @param {?string} [name=null] - The name of the property in the shader.
|
|
107
114
|
* @returns {PropertyNode}
|
|
108
115
|
*/
|
|
109
|
-
export const property = ( type, name ) =>
|
|
116
|
+
export const property = ( type, name ) => new PropertyNode( type, name );
|
|
110
117
|
|
|
111
118
|
/**
|
|
112
119
|
* TSL function for creating a varying property node.
|
|
@@ -117,7 +124,7 @@ export const property = ( type, name ) => nodeObject( new PropertyNode( type, na
|
|
|
117
124
|
* @param {?string} [name=null] - The name of the varying in the shader.
|
|
118
125
|
* @returns {PropertyNode}
|
|
119
126
|
*/
|
|
120
|
-
export const varyingProperty = ( type, name ) =>
|
|
127
|
+
export const varyingProperty = ( type, name ) => new PropertyNode( type, name, true );
|
|
121
128
|
|
|
122
129
|
/**
|
|
123
130
|
* TSL object that represents the shader variable `DiffuseColor`.
|
|
@@ -127,6 +134,14 @@ export const varyingProperty = ( type, name ) => nodeObject( new PropertyNode( t
|
|
|
127
134
|
*/
|
|
128
135
|
export const diffuseColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'DiffuseColor' );
|
|
129
136
|
|
|
137
|
+
/**
|
|
138
|
+
* TSL object that represents the shader variable `DiffuseContribution`.
|
|
139
|
+
*
|
|
140
|
+
* @tsl
|
|
141
|
+
* @type {PropertyNode<vec3>}
|
|
142
|
+
*/
|
|
143
|
+
export const diffuseContribution = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'DiffuseContribution' );
|
|
144
|
+
|
|
130
145
|
/**
|
|
131
146
|
* TSL object that represents the shader variable `EmissiveColor`.
|
|
132
147
|
*
|
|
@@ -247,6 +262,14 @@ export const anisotropyB = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'A
|
|
|
247
262
|
*/
|
|
248
263
|
export const specularColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'SpecularColor' );
|
|
249
264
|
|
|
265
|
+
/**
|
|
266
|
+
* TSL object that represents the shader variable `SpecularColorBlended`.
|
|
267
|
+
*
|
|
268
|
+
* @tsl
|
|
269
|
+
* @type {PropertyNode<color>}
|
|
270
|
+
*/
|
|
271
|
+
export const specularColorBlended = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'SpecularColorBlended' );
|
|
272
|
+
|
|
250
273
|
/**
|
|
251
274
|
* TSL object that represents the shader variable `SpecularF90`.
|
|
252
275
|
*
|