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
package/src/nodes/Nodes.js
CHANGED
|
@@ -6,143 +6,158 @@ export { default as ArrayNode } from './core/ArrayNode.js';
|
|
|
6
6
|
export { default as AssignNode } from './core/AssignNode.js';
|
|
7
7
|
export { default as AttributeNode } from './core/AttributeNode.js';
|
|
8
8
|
export { default as BypassNode } from './core/BypassNode.js';
|
|
9
|
-
export { default as IsolateNode } from './core/IsolateNode.js';
|
|
10
9
|
export { default as ConstNode } from './core/ConstNode.js';
|
|
11
10
|
export { default as ContextNode } from './core/ContextNode.js';
|
|
12
11
|
export { default as IndexNode } from './core/IndexNode.js';
|
|
12
|
+
export { default as InputNode } from './core/InputNode.js';
|
|
13
|
+
export { default as InspectorNode } from './core/InspectorNode.js';
|
|
14
|
+
export { default as IsolateNode } from './core/IsolateNode.js';
|
|
13
15
|
export { default as LightingModel } from './core/LightingModel.js';
|
|
16
|
+
export { default as MRTNode } from './core/MRTNode.js';
|
|
14
17
|
export { default as Node } from './core/Node.js';
|
|
15
|
-
export { default as VarNode } from './core/VarNode.js';
|
|
16
18
|
export { default as NodeAttribute } from './core/NodeAttribute.js';
|
|
17
19
|
export { default as NodeBuilder } from './core/NodeBuilder.js';
|
|
18
20
|
export { default as NodeCache } from './core/NodeCache.js';
|
|
19
21
|
export { default as NodeCode } from './core/NodeCode.js';
|
|
22
|
+
export { default as NodeError } from './core/NodeError.js';
|
|
20
23
|
export { default as NodeFrame } from './core/NodeFrame.js';
|
|
21
24
|
export { default as NodeFunctionInput } from './core/NodeFunctionInput.js';
|
|
22
25
|
export { default as NodeUniform } from './core/NodeUniform.js';
|
|
23
26
|
export { default as NodeVar } from './core/NodeVar.js';
|
|
24
27
|
export { default as NodeVarying } from './core/NodeVarying.js';
|
|
28
|
+
export { default as OutputStructNode } from './core/OutputStructNode.js';
|
|
29
|
+
export { default as OverrideContextNode } from './core/OverrideContextNode.js';
|
|
25
30
|
export { default as ParameterNode } from './core/ParameterNode.js';
|
|
26
31
|
export { default as PropertyNode } from './core/PropertyNode.js';
|
|
27
32
|
export { default as StackNode } from './core/StackNode.js';
|
|
33
|
+
export { default as StackTrace } from './core/StackTrace.js';
|
|
34
|
+
export { default as StructNode } from './core/StructNode.js';
|
|
35
|
+
export { default as StructTypeNode } from './core/StructTypeNode.js';
|
|
36
|
+
export { default as SubBuildNode } from './core/SubBuildNode.js';
|
|
28
37
|
export { default as TempNode } from './core/TempNode.js';
|
|
29
38
|
export { default as UniformGroupNode } from './core/UniformGroupNode.js';
|
|
30
39
|
export { default as UniformNode } from './core/UniformNode.js';
|
|
40
|
+
export { default as VarNode } from './core/VarNode.js';
|
|
31
41
|
export { default as VaryingNode } from './core/VaryingNode.js';
|
|
32
|
-
export { default as StructNode } from './core/StructNode.js';
|
|
33
|
-
export { default as StructTypeNode } from './core/StructTypeNode.js';
|
|
34
|
-
export { default as OutputStructNode } from './core/OutputStructNode.js';
|
|
35
|
-
export { default as MRTNode } from './core/MRTNode.js';
|
|
36
|
-
export { default as SubBuildNode } from './core/SubBuildNode.js';
|
|
37
42
|
|
|
38
43
|
import * as NodeUtils from './core/NodeUtils.js';
|
|
39
44
|
export { NodeUtils };
|
|
40
45
|
|
|
41
|
-
// utils
|
|
42
|
-
export { default as ArrayElementNode } from './utils/ArrayElementNode.js';
|
|
43
|
-
export { default as ConvertNode } from './utils/ConvertNode.js';
|
|
44
|
-
export { default as FunctionOverloadingNode } from './utils/FunctionOverloadingNode.js';
|
|
45
|
-
export { default as JoinNode } from './utils/JoinNode.js';
|
|
46
|
-
export { default as LoopNode } from './utils/LoopNode.js';
|
|
47
|
-
export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode.js';
|
|
48
|
-
export { default as RemapNode } from './utils/RemapNode.js';
|
|
49
|
-
export { default as RotateNode } from './utils/RotateNode.js';
|
|
50
|
-
export { default as SetNode } from './utils/SetNode.js';
|
|
51
|
-
export { default as SplitNode } from './utils/SplitNode.js';
|
|
52
|
-
export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode.js';
|
|
53
|
-
export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
|
|
54
|
-
export { default as ReflectorNode } from './utils/ReflectorNode.js';
|
|
55
|
-
export { default as RTTNode } from './utils/RTTNode.js';
|
|
56
|
-
export { default as MemberNode } from './utils/MemberNode.js';
|
|
57
|
-
export { default as DebugNode } from './utils/DebugNode.js';
|
|
58
|
-
export { default as EventNode } from './utils/EventNode.js';
|
|
59
|
-
|
|
60
|
-
// math
|
|
61
|
-
export { default as BitcastNode } from './math/BitcastNode.js';
|
|
62
|
-
|
|
63
46
|
// accessors
|
|
64
|
-
export { default as UniformArrayNode } from './accessors/UniformArrayNode.js';
|
|
65
47
|
export { default as BufferAttributeNode } from './accessors/BufferAttributeNode.js';
|
|
66
48
|
export { default as BufferNode } from './accessors/BufferNode.js';
|
|
67
|
-
export { default as
|
|
49
|
+
export { default as BuiltinNode } from './accessors/BuiltinNode.js';
|
|
50
|
+
export { default as ClippingNode } from './accessors/ClippingNode.js';
|
|
68
51
|
export { default as CubeTextureNode } from './accessors/CubeTextureNode.js';
|
|
69
|
-
export { default as InstanceNode } from './accessors/InstanceNode.js';
|
|
70
|
-
export { default as InstancedMeshNode } from './accessors/InstancedMeshNode.js';
|
|
71
|
-
export { default as BatchNode } from './accessors/BatchNode.js';
|
|
72
52
|
export { default as MaterialNode } from './accessors/MaterialNode.js';
|
|
73
53
|
export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode.js';
|
|
74
|
-
export { default as RendererReferenceNode } from './accessors/RendererReferenceNode.js';
|
|
75
|
-
export { default as MorphNode } from './accessors/MorphNode.js';
|
|
76
54
|
export { default as ModelNode } from './accessors/ModelNode.js';
|
|
77
55
|
export { default as Object3DNode } from './accessors/Object3DNode.js';
|
|
78
56
|
export { default as PointUVNode } from './accessors/PointUVNode.js';
|
|
57
|
+
export { default as ReferenceBaseNode } from './accessors/ReferenceBaseNode.js';
|
|
79
58
|
export { default as ReferenceNode } from './accessors/ReferenceNode.js';
|
|
80
|
-
export { default as
|
|
81
|
-
export { default as SceneNode } from './accessors/SceneNode.js';
|
|
59
|
+
export { default as RendererReferenceNode } from './accessors/RendererReferenceNode.js';
|
|
82
60
|
export { default as StorageBufferNode } from './accessors/StorageBufferNode.js';
|
|
83
|
-
export { default as
|
|
84
|
-
export { default as TextureSizeNode } from './accessors/TextureSizeNode.js';
|
|
61
|
+
export { default as StorageTexture3DNode } from './accessors/StorageTexture3DNode.js';
|
|
85
62
|
export { default as StorageTextureNode } from './accessors/StorageTextureNode.js';
|
|
86
63
|
export { default as Texture3DNode } from './accessors/Texture3DNode.js';
|
|
64
|
+
export { default as TextureNode } from './accessors/TextureNode.js';
|
|
65
|
+
export { default as TextureSizeNode } from './accessors/TextureSizeNode.js';
|
|
66
|
+
export { default as UniformArrayNode } from './accessors/UniformArrayNode.js';
|
|
87
67
|
export { default as UserDataNode } from './accessors/UserDataNode.js';
|
|
68
|
+
export { default as VelocityNode } from './accessors/VelocityNode.js';
|
|
69
|
+
export { default as VertexColorNode } from './accessors/VertexColorNode.js';
|
|
70
|
+
|
|
71
|
+
// code
|
|
72
|
+
export { default as CodeNode } from './code/CodeNode.js';
|
|
73
|
+
export { default as ExpressionNode } from './code/ExpressionNode.js';
|
|
74
|
+
export { default as FunctionCallNode } from './code/FunctionCallNode.js';
|
|
75
|
+
export { default as FunctionNode } from './code/FunctionNode.js';
|
|
88
76
|
|
|
89
77
|
// display
|
|
90
78
|
export { default as BumpMapNode } from './display/BumpMapNode.js';
|
|
91
79
|
export { default as ColorSpaceNode } from './display/ColorSpaceNode.js';
|
|
92
80
|
export { default as FrontFacingNode } from './display/FrontFacingNode.js';
|
|
93
81
|
export { default as NormalMapNode } from './display/NormalMapNode.js';
|
|
94
|
-
export { default as PosterizeNode } from './display/PosterizeNode.js';
|
|
95
|
-
export { default as ToneMappingNode } from './display/ToneMappingNode.js';
|
|
96
|
-
export { default as ScreenNode } from './display/ScreenNode.js';
|
|
97
|
-
export { default as ViewportTextureNode } from './display/ViewportTextureNode.js';
|
|
98
|
-
export { default as ViewportSharedTextureNode } from './display/ViewportSharedTextureNode.js';
|
|
99
|
-
export { default as ViewportDepthTextureNode } from './display/ViewportDepthTextureNode.js';
|
|
100
|
-
export { default as ViewportDepthNode } from './display/ViewportDepthNode.js';
|
|
101
|
-
export { default as RenderOutputNode } from './display/RenderOutputNode.js';
|
|
102
82
|
export { default as PassNode } from './display/PassNode.js';
|
|
83
|
+
export { default as RenderOutputNode } from './display/RenderOutputNode.js';
|
|
84
|
+
export { default as ScreenNode } from './display/ScreenNode.js';
|
|
85
|
+
export { default as ToneMappingNode } from './display/ToneMappingNode.js';
|
|
103
86
|
export { default as ToonOutlinePassNode } from './display/ToonOutlinePassNode.js';
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
export { default as
|
|
107
|
-
export { default as
|
|
108
|
-
export { default as FunctionCallNode } from './code/FunctionCallNode.js';
|
|
109
|
-
export { default as FunctionNode } from './code/FunctionNode.js';
|
|
110
|
-
export { default as ScriptableNode } from './code/ScriptableNode.js';
|
|
111
|
-
export { default as ScriptableValueNode } from './code/ScriptableValueNode.js';
|
|
87
|
+
export { default as ViewportDepthNode } from './display/ViewportDepthNode.js';
|
|
88
|
+
export { default as ViewportDepthTextureNode } from './display/ViewportDepthTextureNode.js';
|
|
89
|
+
export { default as ViewportSharedTextureNode } from './display/ViewportSharedTextureNode.js';
|
|
90
|
+
export { default as ViewportTextureNode } from './display/ViewportTextureNode.js';
|
|
112
91
|
|
|
113
92
|
// geometry
|
|
114
93
|
export { default as RangeNode } from './geometry/RangeNode.js';
|
|
115
94
|
|
|
116
95
|
// gpgpu
|
|
96
|
+
export { default as AtomicFunctionNode } from './gpgpu/AtomicFunctionNode.js';
|
|
97
|
+
export { default as BarrierNode } from './gpgpu/BarrierNode.js';
|
|
98
|
+
export { default as ComputeBuiltinNode } from './gpgpu/ComputeBuiltinNode.js';
|
|
117
99
|
export { default as ComputeNode } from './gpgpu/ComputeNode.js';
|
|
100
|
+
export { default as SubgroupFunctionNode } from './gpgpu/SubgroupFunctionNode.js';
|
|
101
|
+
export { default as WorkgroupInfoNode } from './gpgpu/WorkgroupInfoNode.js';
|
|
118
102
|
|
|
119
103
|
// lighting
|
|
120
|
-
export { default as
|
|
104
|
+
export { default as AmbientLightNode } from './lighting/AmbientLightNode.js';
|
|
105
|
+
export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
|
|
106
|
+
export { default as AONode } from './lighting/AONode.js';
|
|
107
|
+
export { default as BasicEnvironmentNode } from './lighting/BasicEnvironmentNode.js';
|
|
108
|
+
export { default as BasicLightMapNode } from './lighting/BasicLightMapNode.js';
|
|
121
109
|
export { default as DirectionalLightNode } from './lighting/DirectionalLightNode.js';
|
|
122
|
-
export { default as
|
|
123
|
-
export { default as
|
|
110
|
+
export { default as EnvironmentNode } from './lighting/EnvironmentNode.js';
|
|
111
|
+
export { default as HemisphereLightNode } from './lighting/HemisphereLightNode.js';
|
|
124
112
|
export { default as IESSpotLightNode } from './lighting/IESSpotLightNode.js';
|
|
125
|
-
export { default as
|
|
126
|
-
export { default as AmbientLightNode } from './lighting/AmbientLightNode.js';
|
|
127
|
-
export { default as LightsNode } from './lighting/LightsNode.js';
|
|
128
|
-
export { default as LightingNode } from './lighting/LightingNode.js';
|
|
113
|
+
export { default as IrradianceNode } from './lighting/IrradianceNode.js';
|
|
129
114
|
export { default as LightingContextNode } from './lighting/LightingContextNode.js';
|
|
130
|
-
export { default as
|
|
115
|
+
export { default as LightingNode } from './lighting/LightingNode.js';
|
|
131
116
|
export { default as LightProbeNode } from './lighting/LightProbeNode.js';
|
|
132
|
-
export { default as
|
|
133
|
-
export { default as
|
|
134
|
-
export { default as
|
|
135
|
-
export { default as
|
|
136
|
-
export { default as
|
|
117
|
+
export { default as LightsNode } from './lighting/LightsNode.js';
|
|
118
|
+
export { default as PointLightNode } from './lighting/PointLightNode.js';
|
|
119
|
+
export { default as PointShadowNode } from './lighting/PointShadowNode.js';
|
|
120
|
+
export { default as ProjectorLightNode } from './lighting/ProjectorLightNode.js';
|
|
121
|
+
export { default as RectAreaLightNode } from './lighting/RectAreaLightNode.js';
|
|
137
122
|
export { default as ShadowBaseNode } from './lighting/ShadowBaseNode.js';
|
|
138
123
|
export { default as ShadowNode } from './lighting/ShadowNode.js';
|
|
124
|
+
export { default as SpotLightNode } from './lighting/SpotLightNode.js';
|
|
139
125
|
|
|
140
|
-
//
|
|
141
|
-
export { default as
|
|
126
|
+
// math
|
|
127
|
+
export { default as BitcastNode } from './math/BitcastNode.js';
|
|
128
|
+
export { default as BitcountNode } from './math/BitcountNode.js';
|
|
129
|
+
export { default as ConditionalNode } from './math/ConditionalNode.js';
|
|
130
|
+
export { default as MathNode } from './math/MathNode.js';
|
|
131
|
+
export { default as OperatorNode } from './math/OperatorNode.js';
|
|
132
|
+
export { default as PackFloatNode } from './math/PackFloatNode.js';
|
|
133
|
+
export { default as UnpackFloatNode } from './math/UnpackFloatNode.js';
|
|
142
134
|
|
|
143
135
|
// parsers
|
|
144
136
|
export { default as GLSLNodeParser } from './parsers/GLSLNodeParser.js'; // @TODO: Move to jsm/renderers/webgl.
|
|
145
137
|
|
|
138
|
+
// pmrem
|
|
139
|
+
export { default as PMREMNode } from './pmrem/PMREMNode.js';
|
|
140
|
+
|
|
141
|
+
// utils
|
|
142
|
+
export { default as ArrayElementNode } from './utils/ArrayElementNode.js';
|
|
143
|
+
export { default as ConvertNode } from './utils/ConvertNode.js';
|
|
144
|
+
export { default as CubeMapNode } from './utils/CubeMapNode.js';
|
|
145
|
+
export { default as DebugNode } from './utils/DebugNode.js';
|
|
146
|
+
export { default as EventNode } from './utils/EventNode.js';
|
|
147
|
+
export { default as FlipNode } from './utils/FlipNode.js';
|
|
148
|
+
export { default as FunctionOverloadingNode } from './utils/FunctionOverloadingNode.js';
|
|
149
|
+
export { default as JoinNode } from './utils/JoinNode.js';
|
|
150
|
+
export { default as LoopNode } from './utils/LoopNode.js';
|
|
151
|
+
export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode.js';
|
|
152
|
+
export { default as MemberNode } from './utils/MemberNode.js';
|
|
153
|
+
export { default as ReflectorNode } from './utils/ReflectorNode.js';
|
|
154
|
+
export { default as RotateNode } from './utils/RotateNode.js';
|
|
155
|
+
export { default as RTTNode } from './utils/RTTNode.js';
|
|
156
|
+
export { default as SampleNode } from './utils/SampleNode.js';
|
|
157
|
+
export { default as SetNode } from './utils/SetNode.js';
|
|
158
|
+
export { default as SplitNode } from './utils/SplitNode.js';
|
|
159
|
+
export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
|
|
160
|
+
|
|
146
161
|
// lighting models
|
|
147
162
|
export { default as PhongLightingModel } from './functions/PhongLightingModel.js';
|
|
148
163
|
export { default as PhysicalLightingModel } from './functions/PhysicalLightingModel.js';
|
package/src/nodes/TSL.js
CHANGED
|
@@ -7,6 +7,7 @@ export * from './core/AttributeNode.js';
|
|
|
7
7
|
export * from './core/BypassNode.js';
|
|
8
8
|
export * from './core/IsolateNode.js';
|
|
9
9
|
export * from './core/ContextNode.js';
|
|
10
|
+
export * from './core/OverrideContextNode.js';
|
|
10
11
|
export * from './core/IndexNode.js';
|
|
11
12
|
export * from './core/ParameterNode.js';
|
|
12
13
|
export * from './core/PropertyNode.js';
|
|
@@ -20,8 +21,11 @@ export * from './core/MRTNode.js';
|
|
|
20
21
|
|
|
21
22
|
// math
|
|
22
23
|
export * from './math/BitcastNode.js';
|
|
24
|
+
export * from './math/BitcountNode.js';
|
|
23
25
|
export * from './math/Hash.js';
|
|
24
26
|
export * from './math/MathUtils.js';
|
|
27
|
+
export * from './math/PackFloatNode.js';
|
|
28
|
+
export * from './math/UnpackFloatNode.js';
|
|
25
29
|
export * from './math/TriNoise3D.js';
|
|
26
30
|
|
|
27
31
|
// utils
|
|
@@ -32,12 +36,12 @@ export * from './utils/MatcapUV.js';
|
|
|
32
36
|
export * from './utils/MaxMipLevelNode.js';
|
|
33
37
|
export * from './utils/Oscillators.js';
|
|
34
38
|
export * from './utils/Packing.js';
|
|
35
|
-
export * from './utils/
|
|
39
|
+
export * from './utils/Remap.js';
|
|
36
40
|
export * from './utils/UVUtils.js';
|
|
37
41
|
export * from './utils/SpriteUtils.js';
|
|
38
42
|
export * from './utils/ViewportUtils.js';
|
|
39
43
|
export * from './utils/RotateNode.js';
|
|
40
|
-
export * from './utils/
|
|
44
|
+
export * from './utils/SpriteSheetUV.js';
|
|
41
45
|
export * from './utils/Timer.js';
|
|
42
46
|
export * from './utils/TriplanarTextures.js';
|
|
43
47
|
export * from './utils/ReflectorNode.js';
|
|
@@ -60,14 +64,13 @@ export * from './accessors/BuiltinNode.js';
|
|
|
60
64
|
export * from './accessors/Camera.js';
|
|
61
65
|
export * from './accessors/VertexColorNode.js';
|
|
62
66
|
export * from './accessors/CubeTextureNode.js';
|
|
63
|
-
export * from './accessors/
|
|
64
|
-
export * from './accessors/
|
|
65
|
-
export * from './accessors/BatchNode.js';
|
|
67
|
+
export * from './accessors/Instance.js';
|
|
68
|
+
export * from './accessors/Batch.js';
|
|
66
69
|
export * from './accessors/MaterialNode.js';
|
|
67
70
|
export * from './accessors/MaterialProperties.js';
|
|
68
71
|
export * from './accessors/MaterialReferenceNode.js';
|
|
69
72
|
export * from './accessors/RendererReferenceNode.js';
|
|
70
|
-
export * from './accessors/
|
|
73
|
+
export * from './accessors/Morph.js';
|
|
71
74
|
export * from './accessors/TextureBicubic.js';
|
|
72
75
|
export * from './accessors/ModelNode.js';
|
|
73
76
|
export * from './accessors/ModelViewProjectionNode.js';
|
|
@@ -77,13 +80,14 @@ export * from './accessors/PointUVNode.js';
|
|
|
77
80
|
export * from './accessors/Position.js';
|
|
78
81
|
export * from './accessors/ReferenceNode.js';
|
|
79
82
|
export * from './accessors/ReflectVector.js';
|
|
80
|
-
export * from './accessors/
|
|
81
|
-
export * from './accessors/
|
|
83
|
+
export * from './accessors/Skinning.js';
|
|
84
|
+
export * from './accessors/SceneProperties.js';
|
|
82
85
|
export * from './accessors/StorageBufferNode.js';
|
|
86
|
+
export * from './accessors/StorageTexture3DNode.js';
|
|
87
|
+
export * from './accessors/StorageTextureNode.js';
|
|
83
88
|
export * from './accessors/Tangent.js';
|
|
84
89
|
export * from './accessors/TextureNode.js';
|
|
85
90
|
export * from './accessors/TextureSizeNode.js';
|
|
86
|
-
export * from './accessors/StorageTextureNode.js';
|
|
87
91
|
export * from './accessors/Texture3DNode.js';
|
|
88
92
|
export * from './accessors/UV.js';
|
|
89
93
|
export * from './accessors/UserDataNode.js';
|
|
@@ -96,7 +100,7 @@ export * from './display/ColorAdjustment.js';
|
|
|
96
100
|
export * from './display/ColorSpaceNode.js';
|
|
97
101
|
export * from './display/FrontFacingNode.js';
|
|
98
102
|
export * from './display/NormalMapNode.js';
|
|
99
|
-
export * from './display/
|
|
103
|
+
export * from './display/PremultiplyAlphaFunctions.js';
|
|
100
104
|
export * from './display/ToneMappingNode.js';
|
|
101
105
|
export * from './display/ScreenNode.js';
|
|
102
106
|
export * from './display/ViewportTextureNode.js';
|
|
@@ -116,8 +120,6 @@ export * from './code/ExpressionNode.js';
|
|
|
116
120
|
export * from './code/CodeNode.js';
|
|
117
121
|
export * from './code/FunctionCallNode.js';
|
|
118
122
|
export * from './code/FunctionNode.js';
|
|
119
|
-
export * from './code/ScriptableNode.js';
|
|
120
|
-
export * from './code/ScriptableValueNode.js';
|
|
121
123
|
|
|
122
124
|
// fog
|
|
123
125
|
export * from './fog/Fog.js';
|
|
@@ -160,7 +162,7 @@ export * from './materialx/MaterialXNodes.js';
|
|
|
160
162
|
export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
|
|
161
163
|
export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
|
|
162
164
|
export { default as D_GGX } from './functions/BSDF/D_GGX.js';
|
|
163
|
-
export { default as
|
|
165
|
+
export { default as DFGLUT } from './functions/BSDF/DFGLUT.js';
|
|
164
166
|
export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
|
|
165
167
|
export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
|
|
166
168
|
export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
|
|
@@ -16,9 +16,9 @@ export const attributeArray = ( count, type = 'float' ) => {
|
|
|
16
16
|
|
|
17
17
|
let itemSize, typedArray;
|
|
18
18
|
|
|
19
|
-
if ( type.
|
|
19
|
+
if ( type.isStructTypeNode === true ) {
|
|
20
20
|
|
|
21
|
-
itemSize = type.
|
|
21
|
+
itemSize = type.getLength();
|
|
22
22
|
typedArray = getTypedArrayFromType( 'float' );
|
|
23
23
|
|
|
24
24
|
} else {
|
|
@@ -48,9 +48,9 @@ export const instancedArray = ( count, type = 'float' ) => {
|
|
|
48
48
|
|
|
49
49
|
let itemSize, typedArray;
|
|
50
50
|
|
|
51
|
-
if ( type.
|
|
51
|
+
if ( type.isStructTypeNode === true ) {
|
|
52
52
|
|
|
53
|
-
itemSize = type.
|
|
53
|
+
itemSize = type.getLength();
|
|
54
54
|
typedArray = getTypedArrayFromType( 'float' );
|
|
55
55
|
|
|
56
56
|
} else {
|
|
@@ -61,7 +61,7 @@ export const instancedArray = ( count, type = 'float' ) => {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
const buffer = new StorageInstancedBufferAttribute( count, itemSize, typedArray );
|
|
64
|
-
const node = storage( buffer, type, count );
|
|
64
|
+
const node = storage( buffer, type, buffer.count );
|
|
65
65
|
|
|
66
66
|
return node;
|
|
67
67
|
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
|
|
2
|
+
import { normalLocal } from './Normal.js';
|
|
3
|
+
import { positionLocal } from './Position.js';
|
|
4
|
+
import { vec3, mat3, mat4, int, ivec2, float, Fn } from '../tsl/TSLBase.js';
|
|
5
|
+
import { textureLoad } from './TextureNode.js';
|
|
6
|
+
import { textureSize } from './TextureSizeNode.js';
|
|
7
|
+
import { tangentLocal } from './Tangent.js';
|
|
8
|
+
import { instanceIndex, drawIndex } from '../core/IndexNode.js';
|
|
9
|
+
import { varyingProperty } from '../core/PropertyNode.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* TSL function that retrieves the batching color for a given instance ID from a colors texture.
|
|
13
|
+
*
|
|
14
|
+
* @param {Node<texture>} colorsTexture - The colors texture.
|
|
15
|
+
* @param {Node<int>} id - The instance or batch ID.
|
|
16
|
+
* @returns {Node<vec4>} The retrieved color.
|
|
17
|
+
*/
|
|
18
|
+
const getBatchingColor = /*@__PURE__*/ Fn( ( [ colorsTexture, id ] ) => {
|
|
19
|
+
|
|
20
|
+
const size = int( textureSize( textureLoad( colorsTexture ), 0 ).x ).toConst();
|
|
21
|
+
const j = int( id );
|
|
22
|
+
const x = j.mod( size ).toConst();
|
|
23
|
+
const y = j.div( size ).toConst();
|
|
24
|
+
return textureLoad( colorsTexture, ivec2( x, y ) );
|
|
25
|
+
|
|
26
|
+
} );
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* TSL function that retrieves the indirect index for a given batch ID.
|
|
30
|
+
*
|
|
31
|
+
* @param {BatchedMesh} batchMesh - The batched mesh.
|
|
32
|
+
* @param {Node<int>} id - The draw or instance ID.
|
|
33
|
+
* @returns {Node<uint>} The indirect index.
|
|
34
|
+
*/
|
|
35
|
+
const getIndirectIndex = /*@__PURE__*/ Fn( ( [ indirectTexture, id ] ) => {
|
|
36
|
+
|
|
37
|
+
const size = int( textureSize( textureLoad( indirectTexture ), 0 ).x ).toConst();
|
|
38
|
+
const x = int( id ).mod( size ).toConst();
|
|
39
|
+
const y = int( id ).div( size ).toConst();
|
|
40
|
+
return textureLoad( indirectTexture, ivec2( x, y ) ).x;
|
|
41
|
+
|
|
42
|
+
} );
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* TSL object representing a varying property for the batching color vector.
|
|
46
|
+
*
|
|
47
|
+
* @type {VaryingNode<vec4>}
|
|
48
|
+
*/
|
|
49
|
+
export const batchColor = /*@__PURE__*/ varyingProperty( 'vec4', 'vBatchColor' );
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* TSL function representing the vertex shader batching setup.
|
|
53
|
+
* Applies the batch transformation matrix to positionLocal, normalLocal, and tangentLocal.
|
|
54
|
+
* Also assigns the batch color if a color texture is present.
|
|
55
|
+
*
|
|
56
|
+
* @tsl
|
|
57
|
+
* @function
|
|
58
|
+
* @param {BatchedMesh} batchMesh - The batched mesh.
|
|
59
|
+
*/
|
|
60
|
+
export const batch = /*@__PURE__*/ Fn( ( [ batchMesh ], builder ) => {
|
|
61
|
+
|
|
62
|
+
const batchingIdNode = builder.getDrawIndex() === null ? instanceIndex : drawIndex;
|
|
63
|
+
|
|
64
|
+
const indirectId = getIndirectIndex( batchMesh._indirectTexture, int( batchingIdNode ) );
|
|
65
|
+
|
|
66
|
+
const matricesTexture = batchMesh._matricesTexture;
|
|
67
|
+
|
|
68
|
+
const size = int( textureSize( textureLoad( matricesTexture ), 0 ).x ).toConst();
|
|
69
|
+
const j = float( indirectId ).mul( 4 ).toInt().toConst();
|
|
70
|
+
|
|
71
|
+
const x = j.mod( size ).toConst();
|
|
72
|
+
const y = j.div( size ).toConst();
|
|
73
|
+
const batchingMatrix = mat4(
|
|
74
|
+
textureLoad( matricesTexture, ivec2( x, y ) ),
|
|
75
|
+
textureLoad( matricesTexture, ivec2( x.add( 1 ), y ) ),
|
|
76
|
+
textureLoad( matricesTexture, ivec2( x.add( 2 ), y ) ),
|
|
77
|
+
textureLoad( matricesTexture, ivec2( x.add( 3 ), y ) )
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const colorsTexture = batchMesh._colorsTexture;
|
|
81
|
+
|
|
82
|
+
if ( colorsTexture !== null ) {
|
|
83
|
+
|
|
84
|
+
const color = getBatchingColor( colorsTexture, indirectId );
|
|
85
|
+
|
|
86
|
+
batchColor.assign( color );
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const bm = mat3( batchingMatrix );
|
|
91
|
+
|
|
92
|
+
positionLocal.assign( batchingMatrix.mul( positionLocal ) );
|
|
93
|
+
|
|
94
|
+
const transformedNormal = normalLocal.div( vec3( bm[ 0 ].dot( bm[ 0 ] ), bm[ 1 ].dot( bm[ 1 ] ), bm[ 2 ].dot( bm[ 2 ] ) ) );
|
|
95
|
+
|
|
96
|
+
const batchingNormal = bm.mul( transformedNormal ).xyz;
|
|
97
|
+
|
|
98
|
+
normalLocal.assign( batchingNormal );
|
|
99
|
+
|
|
100
|
+
if ( builder.hasGeometryAttribute( 'tangent' ) ) {
|
|
101
|
+
|
|
102
|
+
tangentLocal.mulAssign( bm );
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
}, 'void' );
|
|
107
|
+
|
|
108
|
+
|
|
@@ -2,7 +2,7 @@ import { Fn } from '../tsl/TSLCore.js';
|
|
|
2
2
|
import { normalGeometry, normalLocal, normalView, normalWorld } from './Normal.js';
|
|
3
3
|
import { tangentGeometry, tangentLocal, tangentView, tangentWorld } from './Tangent.js';
|
|
4
4
|
import { bitangentViewFrame } from './TangentUtils.js';
|
|
5
|
-
import {
|
|
5
|
+
import { negateOnBackSide } from '../display/FrontFacingNode.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Returns the bitangent node and assigns it to a varying if the material is not flat shaded.
|
|
@@ -13,11 +13,11 @@ import { directionToFaceDirection } from '../display/FrontFacingNode.js';
|
|
|
13
13
|
* @param {string} varyingName - The name of the varying to assign the bitangent to.
|
|
14
14
|
* @returns {Node<vec3>} The bitangent node.
|
|
15
15
|
*/
|
|
16
|
-
const getBitangent = /*@__PURE__*/ Fn( ( [ crossNormalTangent, varyingName ],
|
|
16
|
+
const getBitangent = /*@__PURE__*/ Fn( ( [ crossNormalTangent, varyingName ], builder ) => {
|
|
17
17
|
|
|
18
18
|
let bitangent = crossNormalTangent.mul( tangentGeometry.w ).xyz;
|
|
19
19
|
|
|
20
|
-
if ( subBuildFn === 'NORMAL' &&
|
|
20
|
+
if ( builder.subBuildFn === 'NORMAL' && builder.isFlatShading() !== true ) {
|
|
21
21
|
|
|
22
22
|
bitangent = bitangent.toVarying( varyingName );
|
|
23
23
|
|
|
@@ -49,11 +49,11 @@ export const bitangentLocal = /*@__PURE__*/ getBitangent( normalLocal.cross( tan
|
|
|
49
49
|
* @tsl
|
|
50
50
|
* @type {Node<vec3>}
|
|
51
51
|
*/
|
|
52
|
-
export const bitangentView = /*@__PURE__*/ ( Fn( (
|
|
52
|
+
export const bitangentView = /*@__PURE__*/ ( Fn( ( builder ) => {
|
|
53
53
|
|
|
54
54
|
let node;
|
|
55
55
|
|
|
56
|
-
if ( subBuildFn === 'VERTEX' || geometry.hasAttribute( 'tangent' ) ) {
|
|
56
|
+
if ( builder.subBuildFn === 'VERTEX' || builder.geometry.hasAttribute( 'tangent' ) ) {
|
|
57
57
|
|
|
58
58
|
node = getBitangent( normalView.cross( tangentView ), 'v_bitangentView' ).normalize();
|
|
59
59
|
|
|
@@ -63,9 +63,9 @@ export const bitangentView = /*@__PURE__*/ ( Fn( ( { subBuildFn, geometry, mater
|
|
|
63
63
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
if (
|
|
66
|
+
if ( builder.isFlatShading() !== true ) {
|
|
67
67
|
|
|
68
|
-
node =
|
|
68
|
+
node = negateOnBackSide( node );
|
|
69
69
|
|
|
70
70
|
}
|
|
71
71
|
|