super-three 0.173.5 → 0.176.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/build/three.cjs +21993 -1359
- package/build/three.core.js +21129 -1188
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +835 -142
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +19493 -17617
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +19477 -17617
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +144 -42
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +194 -71
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +74 -30
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +51 -5
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +36 -1
- package/examples/jsm/loaders/DDSLoader.js +25 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +71 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +222 -9
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +87 -19
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +56 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +90 -70
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +105 -13
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +109 -73
- package/examples/jsm/misc/VolumeSlice.js +91 -48
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +75 -2
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +134 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +268 -134
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/AST.js +10 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
- package/examples/jsm/transpiler/TSLEncoder.js +83 -15
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
- package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
- package/examples/jsm/tsl/display/BleachBypass.js +1 -2
- package/examples/jsm/tsl/display/BloomNode.js +15 -16
- package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
- package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
- package/examples/jsm/tsl/display/FXAANode.js +2 -3
- package/examples/jsm/tsl/display/FilmNode.js +9 -8
- package/examples/jsm/tsl/display/GTAONode.js +11 -12
- package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
- package/examples/jsm/tsl/display/LensflareNode.js +15 -16
- package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
- package/examples/jsm/tsl/display/MotionBlur.js +1 -2
- package/examples/jsm/tsl/display/OutlineNode.js +7 -8
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
- package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
- package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
- package/examples/jsm/tsl/display/SMAANode.js +13 -7
- package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
- package/examples/jsm/tsl/display/SSRNode.js +6 -7
- package/examples/jsm/tsl/display/Sepia.js +1 -2
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
- package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
- package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
- package/examples/jsm/tsl/display/TransitionNode.js +4 -5
- package/examples/jsm/tsl/display/hashBlur.js +1 -2
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
- package/examples/jsm/tsl/math/Bayer.js +31 -0
- package/examples/jsm/tsl/utils/Raymarching.js +67 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +3 -4
- package/src/Three.TSL.js +7 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +169 -19
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/Audio.js +339 -0
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +76 -0
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +28 -0
- package/src/cameras/Camera.js +47 -0
- package/src/cameras/CubeCamera.js +66 -0
- package/src/cameras/OrthographicCamera.js +109 -0
- package/src/cameras/PerspectiveCamera.js +163 -40
- package/src/cameras/StereoCamera.js +46 -0
- package/src/constants.js +1429 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/EventDispatcher.js +44 -2
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +593 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +170 -11
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +88 -1
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +13 -780
- package/src/extras/ImageUtils.js +20 -2
- package/src/extras/PMREMGenerator.js +41 -25
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +95 -15
- package/src/extras/core/Curve.js +150 -50
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +29 -3
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +63 -0
- package/src/extras/core/ShapePath.js +76 -0
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/BoxGeometry.js +38 -0
- package/src/geometries/CapsuleGeometry.js +34 -0
- package/src/geometries/CircleGeometry.js +40 -0
- package/src/geometries/ConeGeometry.js +38 -0
- package/src/geometries/CylinderGeometry.js +39 -0
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +28 -0
- package/src/geometries/ExtrudeGeometry.js +112 -28
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +40 -0
- package/src/geometries/OctahedronGeometry.js +32 -0
- package/src/geometries/PlaneGeometry.js +34 -0
- package/src/geometries/PolyhedronGeometry.js +29 -0
- package/src/geometries/RingGeometry.js +36 -0
- package/src/geometries/ShapeGeometry.js +37 -0
- package/src/geometries/SphereGeometry.js +37 -0
- package/src/geometries/TetrahedronGeometry.js +32 -0
- package/src/geometries/TorusGeometry.js +35 -0
- package/src/geometries/TorusKnotGeometry.js +38 -0
- package/src/geometries/TubeGeometry.js +49 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +60 -3
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +45 -5
- package/src/helpers/DirectionalLightHelper.js +52 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +39 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -0
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +39 -2
- package/src/helpers/SpotLightHelper.js +40 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +57 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +32 -0
- package/src/lights/Light.js +36 -0
- package/src/lights/LightProbe.js +43 -0
- package/src/lights/LightShadow.js +159 -0
- package/src/lights/PointLight.js +59 -0
- package/src/lights/PointLightShadow.js +21 -0
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +102 -0
- package/src/lights/SpotLightShadow.js +22 -0
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +130 -0
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +53 -0
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +13 -9
- package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
- package/src/loaders/nodes/NodeObjectLoader.js +12 -12
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +481 -4
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +14 -14
- package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
- package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
- package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
- package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
- package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
- package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
- package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
- package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
- package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
- package/src/materials/nodes/NodeMaterial.js +66 -47
- package/src/materials/nodes/PointsNodeMaterial.js +6 -6
- package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
- package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
- package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
- package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +137 -4
- package/src/math/Frustum.js +83 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +94 -0
- package/src/math/MathUtils.js +405 -19
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +368 -3
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +262 -6
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +70 -8
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +206 -2
- package/src/math/Vector2.js +388 -2
- package/src/math/Vector3.js +541 -4
- package/src/math/Vector4.js +393 -0
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +1 -0
- package/src/nodes/accessors/AccessorsUtils.js +4 -2
- package/src/nodes/accessors/Arrays.js +6 -6
- package/src/nodes/accessors/BatchNode.js +10 -11
- package/src/nodes/accessors/Bitangent.js +6 -2
- package/src/nodes/accessors/BufferAttributeNode.js +33 -31
- package/src/nodes/accessors/BufferNode.js +12 -13
- package/src/nodes/accessors/BuiltinNode.js +7 -8
- package/src/nodes/accessors/Camera.js +9 -2
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +17 -19
- package/src/nodes/accessors/InstanceNode.js +10 -11
- package/src/nodes/accessors/InstancedMeshNode.js +3 -4
- package/src/nodes/accessors/Lights.js +12 -15
- package/src/nodes/accessors/MaterialNode.js +45 -9
- package/src/nodes/accessors/MaterialProperties.js +51 -2
- package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
- package/src/nodes/accessors/ModelNode.js +20 -3
- package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
- package/src/nodes/accessors/MorphNode.js +29 -26
- package/src/nodes/accessors/Normal.js +11 -3
- package/src/nodes/accessors/Object3DNode.js +51 -16
- package/src/nodes/accessors/PointUVNode.js +2 -3
- package/src/nodes/accessors/Position.js +8 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
- package/src/nodes/accessors/ReferenceNode.js +31 -31
- package/src/nodes/accessors/ReflectVector.js +4 -2
- package/src/nodes/accessors/RendererReferenceNode.js +9 -10
- package/src/nodes/accessors/SceneNode.js +5 -4
- package/src/nodes/accessors/SkinningNode.js +53 -44
- package/src/nodes/accessors/StorageBufferNode.js +24 -24
- package/src/nodes/accessors/StorageTextureNode.js +17 -17
- package/src/nodes/accessors/Tangent.js +6 -2
- package/src/nodes/accessors/Texture3DNode.js +11 -12
- package/src/nodes/accessors/TextureBicubic.js +2 -3
- package/src/nodes/accessors/TextureNode.js +68 -47
- package/src/nodes/accessors/TextureSizeNode.js +5 -6
- package/src/nodes/accessors/UV.js +2 -3
- package/src/nodes/accessors/UniformArrayNode.js +24 -24
- package/src/nodes/accessors/UserDataNode.js +11 -12
- package/src/nodes/accessors/VelocityNode.js +4 -5
- package/src/nodes/accessors/VertexColorNode.js +7 -8
- package/src/nodes/code/CodeNode.js +15 -13
- package/src/nodes/code/ExpressionNode.js +8 -9
- package/src/nodes/code/FunctionCallNode.js +29 -9
- package/src/nodes/code/FunctionNode.js +1 -1
- package/src/nodes/code/ScriptableNode.js +27 -28
- package/src/nodes/code/ScriptableValueNode.js +11 -12
- package/src/nodes/core/ArrayNode.js +29 -12
- package/src/nodes/core/AssignNode.js +4 -5
- package/src/nodes/core/AttributeNode.js +8 -9
- package/src/nodes/core/BypassNode.js +3 -4
- package/src/nodes/core/CacheNode.js +5 -6
- package/src/nodes/core/ConstNode.js +4 -4
- package/src/nodes/core/ContextNode.js +9 -9
- package/src/nodes/core/IndexNode.js +8 -4
- package/src/nodes/core/InputNode.js +7 -7
- package/src/nodes/core/LightingModel.js +17 -17
- package/src/nodes/core/MRTNode.js +9 -10
- package/src/nodes/core/Node.js +49 -37
- package/src/nodes/core/NodeAttribute.js +7 -7
- package/src/nodes/core/NodeBuilder.js +248 -175
- package/src/nodes/core/NodeCache.js +4 -4
- package/src/nodes/core/NodeCode.js +6 -6
- package/src/nodes/core/NodeFrame.js +10 -10
- package/src/nodes/core/NodeFunction.js +8 -8
- package/src/nodes/core/NodeFunctionInput.js +8 -8
- package/src/nodes/core/NodeParser.js +1 -1
- package/src/nodes/core/NodeUniform.js +7 -7
- package/src/nodes/core/NodeUtils.js +22 -24
- package/src/nodes/core/NodeVar.js +9 -9
- package/src/nodes/core/NodeVarying.js +4 -4
- package/src/nodes/core/OutputStructNode.js +2 -3
- package/src/nodes/core/ParameterNode.js +6 -7
- package/src/nodes/core/PropertyNode.js +41 -13
- package/src/nodes/core/StackNode.js +11 -12
- package/src/nodes/core/StructNode.js +2 -3
- package/src/nodes/core/StructTypeNode.js +10 -6
- package/src/nodes/core/TempNode.js +3 -3
- package/src/nodes/core/UniformGroupNode.js +15 -12
- package/src/nodes/core/UniformNode.js +9 -10
- package/src/nodes/core/VarNode.js +14 -18
- package/src/nodes/core/VaryingNode.js +10 -10
- package/src/nodes/core/constants.js +0 -2
- package/src/nodes/display/BlendModes.js +21 -14
- package/src/nodes/display/BumpMapNode.js +5 -6
- package/src/nodes/display/ColorAdjustment.js +13 -9
- package/src/nodes/display/ColorSpaceFunctions.js +4 -4
- package/src/nodes/display/ColorSpaceNode.js +15 -12
- package/src/nodes/display/FrontFacingNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +5 -6
- package/src/nodes/display/PassNode.js +122 -35
- package/src/nodes/display/PosterizeNode.js +2 -3
- package/src/nodes/display/RenderOutputNode.js +8 -9
- package/src/nodes/display/ScreenNode.js +16 -7
- package/src/nodes/display/ToneMappingFunctions.js +12 -8
- package/src/nodes/display/ToneMappingNode.js +8 -8
- package/src/nodes/display/ToonOutlinePassNode.js +3 -4
- package/src/nodes/display/ViewportDepthNode.js +15 -7
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
- package/src/nodes/display/ViewportTextureNode.js +16 -16
- package/src/nodes/fog/Fog.js +5 -2
- package/src/nodes/functions/BSDF/LTC.js +45 -1
- package/src/nodes/functions/BasicLightingModel.js +5 -8
- package/src/nodes/functions/PhongLightingModel.js +6 -8
- package/src/nodes/functions/PhysicalLightingModel.js +40 -42
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/ToonLightingModel.js +5 -6
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
- package/src/nodes/geometry/RangeNode.js +4 -5
- package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
- package/src/nodes/gpgpu/BarrierNode.js +6 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
- package/src/nodes/gpgpu/ComputeNode.js +43 -16
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +50 -9
- package/src/nodes/lighting/BasicLightMapNode.js +2 -2
- package/src/nodes/lighting/DirectionalLightNode.js +3 -12
- package/src/nodes/lighting/EnvironmentNode.js +5 -8
- package/src/nodes/lighting/HemisphereLightNode.js +1 -1
- package/src/nodes/lighting/LightProbeNode.js +1 -1
- package/src/nodes/lighting/LightUtils.js +1 -5
- package/src/nodes/lighting/LightingContextNode.js +10 -10
- package/src/nodes/lighting/LightingNode.js +1 -1
- package/src/nodes/lighting/LightsNode.js +68 -25
- package/src/nodes/lighting/PointLightNode.js +12 -27
- package/src/nodes/lighting/PointShadowNode.js +5 -6
- package/src/nodes/lighting/RectAreaLightNode.js +5 -10
- package/src/nodes/lighting/ShadowBaseNode.js +8 -9
- package/src/nodes/lighting/ShadowNode.js +28 -15
- package/src/nodes/lighting/SpotLightNode.js +8 -19
- package/src/nodes/math/ConditionalNode.js +26 -9
- package/src/nodes/math/Hash.js +2 -3
- package/src/nodes/math/MathNode.js +217 -150
- package/src/nodes/math/MathUtils.js +8 -6
- package/src/nodes/math/OperatorNode.js +198 -89
- package/src/nodes/math/TriNoise3D.js +2 -3
- package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
- package/src/nodes/parsers/GLSLNodeParser.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +61 -37
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/procedural/Checker.js +2 -3
- package/src/nodes/shapes/Shapes.js +2 -3
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +117 -19
- package/src/nodes/utils/ArrayElementNode.js +5 -3
- package/src/nodes/utils/ConvertNode.js +3 -3
- package/src/nodes/utils/CubeMapNode.js +7 -8
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/Discard.js +5 -5
- package/src/nodes/utils/EquirectUVNode.js +3 -4
- package/src/nodes/utils/FlipNode.js +3 -3
- package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
- package/src/nodes/utils/JoinNode.js +29 -4
- package/src/nodes/utils/LoopNode.js +67 -35
- package/src/nodes/utils/MatcapUVNode.js +1 -2
- package/src/nodes/utils/MaxMipLevelNode.js +4 -5
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Oscillators.js +8 -6
- package/src/nodes/utils/Packing.js +4 -4
- package/src/nodes/utils/PostProcessingUtils.js +6 -5
- package/src/nodes/utils/RTTNode.js +19 -19
- package/src/nodes/utils/ReflectorNode.js +35 -25
- package/src/nodes/utils/RemapNode.js +9 -9
- package/src/nodes/utils/RotateNode.js +3 -4
- package/src/nodes/utils/SetNode.js +3 -3
- package/src/nodes/utils/SplitNode.js +5 -5
- package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
- package/src/nodes/utils/SpriteUtils.js +5 -6
- package/src/nodes/utils/StorageArrayElementNode.js +3 -4
- package/src/nodes/utils/Timer.js +9 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
- package/src/nodes/utils/UVUtils.js +4 -4
- package/src/nodes/utils/ViewportUtils.js +3 -4
- package/src/objects/BatchedMesh.js +319 -32
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +4 -4
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +99 -5
- package/src/objects/Line.js +82 -0
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +75 -0
- package/src/objects/Points.js +60 -0
- package/src/objects/Skeleton.js +105 -0
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +622 -83
- package/src/renderers/common/Animation.js +6 -6
- package/src/renderers/common/Attributes.js +3 -3
- package/src/renderers/common/Backend.js +40 -31
- package/src/renderers/common/Background.js +4 -3
- package/src/renderers/common/BindGroup.js +5 -5
- package/src/renderers/common/Binding.js +4 -4
- package/src/renderers/common/Bindings.js +10 -0
- package/src/renderers/common/Buffer.js +5 -5
- package/src/renderers/common/BufferUtils.js +7 -9
- package/src/renderers/common/BundleGroup.js +6 -6
- package/src/renderers/common/ChainMap.js +3 -3
- package/src/renderers/common/ClippingContext.js +8 -8
- package/src/renderers/common/Color4.js +8 -8
- package/src/renderers/common/ComputePipeline.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/DataMap.js +2 -2
- package/src/renderers/common/Geometries.js +6 -6
- package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
- package/src/renderers/common/Info.js +17 -17
- package/src/renderers/common/Pipeline.js +3 -3
- package/src/renderers/common/Pipelines.js +12 -12
- package/src/renderers/common/PostProcessing.js +13 -1
- package/src/renderers/common/ProgrammableStage.js +11 -11
- package/src/renderers/common/QuadMesh.js +5 -3
- package/src/renderers/common/RenderContext.js +24 -24
- package/src/renderers/common/RenderContexts.js +4 -4
- package/src/renderers/common/RenderList.js +16 -16
- package/src/renderers/common/RenderObject.js +27 -27
- package/src/renderers/common/RenderObjects.js +4 -4
- package/src/renderers/common/RenderPipeline.js +1 -1
- package/src/renderers/common/Renderer.js +272 -200
- package/src/renderers/common/RendererUtils.js +0 -2
- package/src/renderers/common/SampledTexture.js +20 -20
- package/src/renderers/common/Sampler.js +5 -5
- package/src/renderers/common/StorageBuffer.js +2 -2
- package/src/renderers/common/StorageBufferAttribute.js +4 -4
- package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
- package/src/renderers/common/StorageTexture.js +6 -6
- package/src/renderers/common/Textures.js +6 -6
- package/src/renderers/common/TimestampQueryPool.js +66 -7
- package/src/renderers/common/Uniform.js +26 -26
- package/src/renderers/common/UniformBuffer.js +2 -2
- package/src/renderers/common/UniformsGroup.js +18 -18
- package/src/renderers/common/XRManager.js +369 -54
- package/src/renderers/common/XRRenderTarget.js +5 -5
- package/src/renderers/common/extras/PMREMGenerator.js +62 -37
- package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
- package/src/renderers/common/nodes/NodeLibrary.js +13 -13
- package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
- package/src/renderers/common/nodes/NodeSampler.js +1 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
- package/src/renderers/common/nodes/NodeUniform.js +9 -9
- package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
- package/src/renderers/common/nodes/Nodes.js +13 -13
- package/src/renderers/shaders/UniformsLib.js +1 -4
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLState.js +19 -19
- package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
- package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
- package/src/renderers/webgpu/WebGPUBackend.js +200 -119
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
- package/src/renderers/webgpu/WebGPURenderer.js +19 -13
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
- package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +185 -9
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +88 -0
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +61 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +362 -3
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -183,29 +183,29 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
183
183
|
* A dictionary that holds for each shader stage ('vertex', 'fragment', 'compute')
|
|
184
184
|
* another dictionary which manages UBOs per group ('render','frame','object').
|
|
185
185
|
*
|
|
186
|
-
* @type {Object<
|
|
186
|
+
* @type {Object<string,Object<string,NodeUniformsGroup>>}
|
|
187
187
|
*/
|
|
188
188
|
this.uniformGroups = {};
|
|
189
189
|
|
|
190
190
|
/**
|
|
191
191
|
* A dictionary that holds for each shader stage a Map of builtins.
|
|
192
192
|
*
|
|
193
|
-
* @type {Object<
|
|
193
|
+
* @type {Object<string,Map<string,Object>>}
|
|
194
194
|
*/
|
|
195
195
|
this.builtins = {};
|
|
196
196
|
|
|
197
197
|
/**
|
|
198
198
|
* A dictionary that holds for each shader stage a Set of directives.
|
|
199
199
|
*
|
|
200
|
-
* @type {Object<
|
|
200
|
+
* @type {Object<string,Set<string>>}
|
|
201
201
|
*/
|
|
202
202
|
this.directives = {};
|
|
203
203
|
|
|
204
204
|
/**
|
|
205
205
|
* A map for managing scope arrays. Only relevant for when using
|
|
206
|
-
* {@link
|
|
206
|
+
* {@link WorkgroupInfoNode} in context of compute shaders.
|
|
207
207
|
*
|
|
208
|
-
* @type {Map<
|
|
208
|
+
* @type {Map<string,Object>}
|
|
209
209
|
*/
|
|
210
210
|
this.scopedArrays = new Map();
|
|
211
211
|
|
|
@@ -215,7 +215,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
215
215
|
* Checks if the given texture requires a manual conversion to the working color space.
|
|
216
216
|
*
|
|
217
217
|
* @param {Texture} texture - The texture to check.
|
|
218
|
-
* @return {
|
|
218
|
+
* @return {boolean} Whether the given texture requires a conversion to working color space or not.
|
|
219
219
|
*/
|
|
220
220
|
needsToWorkingColorSpace( texture ) {
|
|
221
221
|
|
|
@@ -228,11 +228,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
228
228
|
*
|
|
229
229
|
* @private
|
|
230
230
|
* @param {Texture} texture - The texture.
|
|
231
|
-
* @param {
|
|
232
|
-
* @param {
|
|
233
|
-
* @param {
|
|
234
|
-
* @param {
|
|
235
|
-
* @return {
|
|
231
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
232
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
233
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
234
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
235
|
+
* @return {string} The WGSL snippet.
|
|
236
236
|
*/
|
|
237
237
|
_generateTextureSample( texture, textureProperty, uvSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
238
238
|
|
|
@@ -264,10 +264,10 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
264
264
|
* Generates the WGSL snippet when sampling video textures.
|
|
265
265
|
*
|
|
266
266
|
* @private
|
|
267
|
-
* @param {
|
|
268
|
-
* @param {
|
|
269
|
-
* @param {
|
|
270
|
-
* @return {
|
|
267
|
+
* @param {string} textureProperty - The name of the video texture uniform in the shader.
|
|
268
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
269
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
270
|
+
* @return {string} The WGSL snippet.
|
|
271
271
|
*/
|
|
272
272
|
_generateVideoSample( textureProperty, uvSnippet, shaderStage = this.shaderStage ) {
|
|
273
273
|
|
|
@@ -288,12 +288,12 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
288
288
|
*
|
|
289
289
|
* @private
|
|
290
290
|
* @param {Texture} texture - The texture.
|
|
291
|
-
* @param {
|
|
292
|
-
* @param {
|
|
293
|
-
* @param {
|
|
294
|
-
* @param {
|
|
295
|
-
* @param {
|
|
296
|
-
* @return {
|
|
291
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
292
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
293
|
+
* @param {string} levelSnippet - A WGSL snippet that represents the mip level, with level 0 containing a full size version of the texture.
|
|
294
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
295
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
296
|
+
* @return {string} The WGSL snippet.
|
|
297
297
|
*/
|
|
298
298
|
_generateTextureSampleLevel( texture, textureProperty, uvSnippet, levelSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
299
299
|
|
|
@@ -317,11 +317,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
317
317
|
* Generates a wrap function used in context of textures.
|
|
318
318
|
*
|
|
319
319
|
* @param {Texture} texture - The texture to generate the function for.
|
|
320
|
-
* @return {
|
|
320
|
+
* @return {string} The name of the generated function.
|
|
321
321
|
*/
|
|
322
322
|
generateWrapFunction( texture ) {
|
|
323
323
|
|
|
324
|
-
const functionName = `tsl_coord_${ wrapNames[ texture.wrapS ] }S_${ wrapNames[ texture.wrapT ] }_${texture.isData3DTexture ? '3d' : '2d'}T`;
|
|
324
|
+
const functionName = `tsl_coord_${ wrapNames[ texture.wrapS ] }S_${ wrapNames[ texture.wrapT ] }_${ texture.isData3DTexture ? '3d' : '2d' }T`;
|
|
325
325
|
|
|
326
326
|
let nodeCode = wgslCodeCache[ functionName ];
|
|
327
327
|
|
|
@@ -331,7 +331,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
331
331
|
|
|
332
332
|
// For 3D textures, use vec3f; for texture arrays, keep vec2f since array index is separate
|
|
333
333
|
const coordType = texture.isData3DTexture ? 'vec3f' : 'vec2f';
|
|
334
|
-
let code = `fn ${functionName}( coord : ${coordType} ) -> ${coordType} {\n\n\treturn ${coordType}(\n`;
|
|
334
|
+
let code = `fn ${ functionName }( coord : ${ coordType } ) -> ${ coordType } {\n\n\treturn ${ coordType }(\n`;
|
|
335
335
|
|
|
336
336
|
const addWrapSnippet = ( wrap, axis ) => {
|
|
337
337
|
|
|
@@ -391,9 +391,9 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
391
391
|
/**
|
|
392
392
|
* Generates the array declaration string.
|
|
393
393
|
*
|
|
394
|
-
* @param {
|
|
395
|
-
* @param {
|
|
396
|
-
* @return {
|
|
394
|
+
* @param {string} type - The type.
|
|
395
|
+
* @param {?number} [count] - The count.
|
|
396
|
+
* @return {string} The generated value as a shader string.
|
|
397
397
|
*/
|
|
398
398
|
generateArrayDeclaration( type, count ) {
|
|
399
399
|
|
|
@@ -403,13 +403,13 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
403
403
|
|
|
404
404
|
/**
|
|
405
405
|
* Generates a WGSL variable that holds the texture dimension of the given texture.
|
|
406
|
-
* It also returns information about the
|
|
406
|
+
* It also returns information about the number of layers (elements) of an arrayed
|
|
407
407
|
* texture as well as the cube face count of cube textures.
|
|
408
408
|
*
|
|
409
409
|
* @param {Texture} texture - The texture to generate the function for.
|
|
410
|
-
* @param {
|
|
411
|
-
* @param {
|
|
412
|
-
* @return {
|
|
410
|
+
* @param {string} textureProperty - The name of the video texture uniform in the shader.
|
|
411
|
+
* @param {string} levelSnippet - A WGSL snippet that represents the mip level, with level 0 containing a full size version of the texture.
|
|
412
|
+
* @return {string} The name of the dimension variable.
|
|
413
413
|
*/
|
|
414
414
|
generateTextureDimension( texture, textureProperty, levelSnippet ) {
|
|
415
415
|
|
|
@@ -483,10 +483,10 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
483
483
|
* Generates the WGSL snippet for a manual filtered texture.
|
|
484
484
|
*
|
|
485
485
|
* @param {Texture} texture - The texture.
|
|
486
|
-
* @param {
|
|
487
|
-
* @param {
|
|
488
|
-
* @param {
|
|
489
|
-
* @return {
|
|
486
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
487
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
488
|
+
* @param {string} levelSnippet - A WGSL snippet that represents the mip level, with level 0 containing a full size version of the texture.
|
|
489
|
+
* @return {string} The WGSL snippet.
|
|
490
490
|
*/
|
|
491
491
|
generateFilteredTexture( texture, textureProperty, uvSnippet, levelSnippet = '0u' ) {
|
|
492
492
|
|
|
@@ -504,11 +504,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
504
504
|
* Since it's a lookup, no sampling or filtering is applied.
|
|
505
505
|
*
|
|
506
506
|
* @param {Texture} texture - The texture.
|
|
507
|
-
* @param {
|
|
508
|
-
* @param {
|
|
509
|
-
* @param {
|
|
510
|
-
* @param {
|
|
511
|
-
* @return {
|
|
507
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
508
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
509
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
510
|
+
* @param {string} [levelSnippet='0u'] - A WGSL snippet that represents the mip level, with level 0 containing a full size version of the texture.
|
|
511
|
+
* @return {string} The WGSL snippet.
|
|
512
512
|
*/
|
|
513
513
|
generateTextureLod( texture, textureProperty, uvSnippet, depthSnippet, levelSnippet = '0u' ) {
|
|
514
514
|
|
|
@@ -516,7 +516,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
516
516
|
const textureDimension = this.generateTextureDimension( texture, textureProperty, levelSnippet );
|
|
517
517
|
|
|
518
518
|
const vecType = texture.isData3DTexture ? 'vec3' : 'vec2';
|
|
519
|
-
const coordSnippet = `${vecType}<u32>(${wrapFunction}(${uvSnippet}) * ${vecType}<f32>(${textureDimension}))`;
|
|
519
|
+
const coordSnippet = `${ vecType }<u32>(${ wrapFunction }(${ uvSnippet }) * ${ vecType }<f32>(${ textureDimension }))`;
|
|
520
520
|
|
|
521
521
|
return this.generateTextureLoad( texture, textureProperty, coordSnippet, depthSnippet, levelSnippet );
|
|
522
522
|
|
|
@@ -526,11 +526,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
526
526
|
* Generates the WGSL snippet that reads a single texel from a texture without sampling or filtering.
|
|
527
527
|
*
|
|
528
528
|
* @param {Texture} texture - The texture.
|
|
529
|
-
* @param {
|
|
530
|
-
* @param {
|
|
531
|
-
* @param {
|
|
532
|
-
* @param {
|
|
533
|
-
* @return {
|
|
529
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
530
|
+
* @param {string} uvIndexSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
531
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
532
|
+
* @param {string} [levelSnippet='0u'] - A WGSL snippet that represents the mip level, with level 0 containing a full size version of the texture.
|
|
533
|
+
* @return {string} The WGSL snippet.
|
|
534
534
|
*/
|
|
535
535
|
generateTextureLoad( texture, textureProperty, uvIndexSnippet, depthSnippet, levelSnippet = '0u' ) {
|
|
536
536
|
|
|
@@ -554,10 +554,10 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
554
554
|
* Generates the WGSL snippet that writes a single texel to a texture.
|
|
555
555
|
*
|
|
556
556
|
* @param {Texture} texture - The texture.
|
|
557
|
-
* @param {
|
|
558
|
-
* @param {
|
|
559
|
-
* @param {
|
|
560
|
-
* @return {
|
|
557
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
558
|
+
* @param {string} uvIndexSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
559
|
+
* @param {string} valueSnippet - A WGSL snippet that represent the new texel value.
|
|
560
|
+
* @return {string} The WGSL snippet.
|
|
561
561
|
*/
|
|
562
562
|
generateTextureStore( texture, textureProperty, uvIndexSnippet, valueSnippet ) {
|
|
563
563
|
|
|
@@ -569,7 +569,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
569
569
|
* Returns `true` if the sampled values of the given texture should be compared against a reference value.
|
|
570
570
|
*
|
|
571
571
|
* @param {Texture} texture - The texture.
|
|
572
|
-
* @return {
|
|
572
|
+
* @return {boolean} Whether the sampled values of the given texture should be compared against a reference value or not.
|
|
573
573
|
*/
|
|
574
574
|
isSampleCompare( texture ) {
|
|
575
575
|
|
|
@@ -581,7 +581,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
581
581
|
* Returns `true` if the given texture is unfilterable.
|
|
582
582
|
*
|
|
583
583
|
* @param {Texture} texture - The texture.
|
|
584
|
-
* @return {
|
|
584
|
+
* @return {boolean} Whether the given texture is unfilterable or not.
|
|
585
585
|
*/
|
|
586
586
|
isUnfilterable( texture ) {
|
|
587
587
|
|
|
@@ -596,11 +596,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
596
596
|
* Generates the WGSL snippet for sampling/loading the given texture.
|
|
597
597
|
*
|
|
598
598
|
* @param {Texture} texture - The texture.
|
|
599
|
-
* @param {
|
|
600
|
-
* @param {
|
|
601
|
-
* @param {
|
|
602
|
-
* @param {
|
|
603
|
-
* @return {
|
|
599
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
600
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
601
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
602
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
603
|
+
* @return {string} The WGSL snippet.
|
|
604
604
|
*/
|
|
605
605
|
generateTexture( texture, textureProperty, uvSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
606
606
|
|
|
@@ -628,12 +628,12 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
628
628
|
* Generates the WGSL snippet for sampling/loading the given texture using explicit gradients.
|
|
629
629
|
*
|
|
630
630
|
* @param {Texture} texture - The texture.
|
|
631
|
-
* @param {
|
|
632
|
-
* @param {
|
|
633
|
-
* @param {Array<
|
|
634
|
-
* @param {
|
|
635
|
-
* @param {
|
|
636
|
-
* @return {
|
|
631
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
632
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
633
|
+
* @param {Array<string>} gradSnippet - An array holding both gradient WGSL snippets.
|
|
634
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
635
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
636
|
+
* @return {string} The WGSL snippet.
|
|
637
637
|
*/
|
|
638
638
|
generateTextureGrad( texture, textureProperty, uvSnippet, gradSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
639
639
|
|
|
@@ -655,12 +655,12 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
655
655
|
* against a reference value.
|
|
656
656
|
*
|
|
657
657
|
* @param {Texture} texture - The texture.
|
|
658
|
-
* @param {
|
|
659
|
-
* @param {
|
|
660
|
-
* @param {
|
|
661
|
-
* @param {
|
|
662
|
-
* @param {
|
|
663
|
-
* @return {
|
|
658
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
659
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
660
|
+
* @param {string} compareSnippet - A WGSL snippet that represents the reference value.
|
|
661
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
662
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
663
|
+
* @return {string} The WGSL snippet.
|
|
664
664
|
*/
|
|
665
665
|
generateTextureCompare( texture, textureProperty, uvSnippet, compareSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
666
666
|
|
|
@@ -680,12 +680,12 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
680
680
|
* Generates the WGSL snippet when sampling textures with explicit mip level.
|
|
681
681
|
*
|
|
682
682
|
* @param {Texture} texture - The texture.
|
|
683
|
-
* @param {
|
|
684
|
-
* @param {
|
|
685
|
-
* @param {
|
|
686
|
-
* @param {
|
|
687
|
-
* @param {
|
|
688
|
-
* @return {
|
|
683
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
684
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
685
|
+
* @param {string} levelSnippet - A WGSL snippet that represents the mip level, with level 0 containing a full size version of the texture.
|
|
686
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
687
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
688
|
+
* @return {string} The WGSL snippet.
|
|
689
689
|
*/
|
|
690
690
|
generateTextureLevel( texture, textureProperty, uvSnippet, levelSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
691
691
|
|
|
@@ -709,12 +709,12 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
709
709
|
* Generates the WGSL snippet when sampling textures with a bias to the mip level.
|
|
710
710
|
*
|
|
711
711
|
* @param {Texture} texture - The texture.
|
|
712
|
-
* @param {
|
|
713
|
-
* @param {
|
|
714
|
-
* @param {
|
|
715
|
-
* @param {
|
|
716
|
-
* @param {
|
|
717
|
-
* @return {
|
|
712
|
+
* @param {string} textureProperty - The name of the texture uniform in the shader.
|
|
713
|
+
* @param {string} uvSnippet - A WGSL snippet that represents texture coordinates used for sampling.
|
|
714
|
+
* @param {string} biasSnippet - A WGSL snippet that represents the bias to apply to the mip level before sampling.
|
|
715
|
+
* @param {?string} depthSnippet - A WGSL snippet that represents 0-based texture array index to sample.
|
|
716
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
717
|
+
* @return {string} The WGSL snippet.
|
|
718
718
|
*/
|
|
719
719
|
generateTextureBias( texture, textureProperty, uvSnippet, biasSnippet, depthSnippet, shaderStage = this.shaderStage ) {
|
|
720
720
|
|
|
@@ -734,8 +734,8 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
734
734
|
* Returns a WGSL snippet that represents the property name of the given node.
|
|
735
735
|
*
|
|
736
736
|
* @param {Node} node - The node.
|
|
737
|
-
* @param {
|
|
738
|
-
* @return {
|
|
737
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
738
|
+
* @return {string} The property name.
|
|
739
739
|
*/
|
|
740
740
|
getPropertyName( node, shaderStage = this.shaderStage ) {
|
|
741
741
|
|
|
@@ -781,7 +781,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
781
781
|
/**
|
|
782
782
|
* Returns the output struct name.
|
|
783
783
|
*
|
|
784
|
-
* @return {
|
|
784
|
+
* @return {string} The name of the output struct.
|
|
785
785
|
*/
|
|
786
786
|
getOutputStructName() {
|
|
787
787
|
|
|
@@ -789,24 +789,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
789
789
|
|
|
790
790
|
}
|
|
791
791
|
|
|
792
|
-
/**
|
|
793
|
-
* Returns uniforms group count for the given shader stage.
|
|
794
|
-
*
|
|
795
|
-
* @private
|
|
796
|
-
* @param {String} shaderStage - The shader stage.
|
|
797
|
-
* @return {Number} The uniforms group count for the given shader stage.
|
|
798
|
-
*/
|
|
799
|
-
_getUniformGroupCount( shaderStage ) {
|
|
800
|
-
|
|
801
|
-
return Object.keys( this.uniforms[ shaderStage ] ).length;
|
|
802
|
-
|
|
803
|
-
}
|
|
804
|
-
|
|
805
792
|
/**
|
|
806
793
|
* Returns the native shader operator name for a given generic name.
|
|
807
794
|
*
|
|
808
|
-
* @param {
|
|
809
|
-
* @return {
|
|
795
|
+
* @param {string} op - The operator name to resolve.
|
|
796
|
+
* @return {?string} The resolved operator name.
|
|
810
797
|
*/
|
|
811
798
|
getFunctionOperator( op ) {
|
|
812
799
|
|
|
@@ -828,8 +815,8 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
828
815
|
* Returns the node access for the given node and shader stage.
|
|
829
816
|
*
|
|
830
817
|
* @param {StorageTextureNode|StorageBufferNode} node - The storage node.
|
|
831
|
-
* @param {
|
|
832
|
-
* @return {
|
|
818
|
+
* @param {string} shaderStage - The shader stage.
|
|
819
|
+
* @return {string} The node access.
|
|
833
820
|
*/
|
|
834
821
|
getNodeAccess( node, shaderStage ) {
|
|
835
822
|
|
|
@@ -844,8 +831,8 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
844
831
|
* Returns A WGSL snippet representing the storage access.
|
|
845
832
|
*
|
|
846
833
|
* @param {StorageTextureNode|StorageBufferNode} node - The storage node.
|
|
847
|
-
* @param {
|
|
848
|
-
* @return {
|
|
834
|
+
* @param {string} shaderStage - The shader stage.
|
|
835
|
+
* @return {string} The WGSL snippet representing the storage access.
|
|
849
836
|
*/
|
|
850
837
|
getStorageAccess( node, shaderStage ) {
|
|
851
838
|
|
|
@@ -861,9 +848,9 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
861
848
|
* and layouts.
|
|
862
849
|
*
|
|
863
850
|
* @param {UniformNode} node - The uniform node.
|
|
864
|
-
* @param {
|
|
865
|
-
* @param {
|
|
866
|
-
* @param {
|
|
851
|
+
* @param {string} type - The node data type.
|
|
852
|
+
* @param {string} shaderStage - The shader stage.
|
|
853
|
+
* @param {?string} [name=null] - An optional uniform name.
|
|
867
854
|
* @return {NodeUniform} The node uniform object.
|
|
868
855
|
*/
|
|
869
856
|
getUniformFromNode( node, type, shaderStage, name = null ) {
|
|
@@ -969,11 +956,11 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
969
956
|
* The internal builtins data structure will make sure builtins are
|
|
970
957
|
* defined in the WGSL source.
|
|
971
958
|
*
|
|
972
|
-
* @param {
|
|
973
|
-
* @param {
|
|
974
|
-
* @param {
|
|
975
|
-
* @param {
|
|
976
|
-
* @return {
|
|
959
|
+
* @param {string} name - The builtin name.
|
|
960
|
+
* @param {string} property - The property name.
|
|
961
|
+
* @param {string} type - The node data type.
|
|
962
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
963
|
+
* @return {string} The property name.
|
|
977
964
|
*/
|
|
978
965
|
getBuiltin( name, property, type, shaderStage = this.shaderStage ) {
|
|
979
966
|
|
|
@@ -996,9 +983,9 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
996
983
|
/**
|
|
997
984
|
* Returns `true` if the given builtin is defined in the given shader stage.
|
|
998
985
|
*
|
|
999
|
-
* @param {
|
|
1000
|
-
* @param {
|
|
1001
|
-
* @return {
|
|
986
|
+
* @param {string} name - The builtin name.
|
|
987
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage this code snippet is generated for.
|
|
988
|
+
* @return {boolean} Whether the given builtin is defined in the given shader stage or not.
|
|
1002
989
|
*/
|
|
1003
990
|
hasBuiltin( name, shaderStage = this.shaderStage ) {
|
|
1004
991
|
|
|
@@ -1009,7 +996,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
1009
996
|
/**
|
|
1010
997
|
* Returns the vertex index builtin.
|
|
1011
998
|
*
|
|
1012
|
-
* @return {
|
|
999
|
+
* @return {string} The vertex index.
|
|
1013
1000
|
*/
|
|
1014
1001
|
getVertexIndex() {
|
|
1015
1002
|
|
|
@@ -1027,7 +1014,7 @@ class WGSLNodeBuilder extends NodeBuilder {
|
|
|
1027
1014
|
* Builds the given shader node.
|
|
1028
1015
|
*
|
|
1029
1016
|
* @param {ShaderNodeInternal} shaderNode - The shader node.
|
|
1030
|
-
* @return {
|
|
1017
|
+
* @return {string} The WGSL function code.
|
|
1031
1018
|
*/
|
|
1032
1019
|
buildFunctionCode( shaderNode ) {
|
|
1033
1020
|
|
|
@@ -1066,7 +1053,7 @@ ${ flowData.code }
|
|
|
1066
1053
|
/**
|
|
1067
1054
|
* Returns the instance index builtin.
|
|
1068
1055
|
*
|
|
1069
|
-
* @return {
|
|
1056
|
+
* @return {string} The instance index.
|
|
1070
1057
|
*/
|
|
1071
1058
|
getInstanceIndex() {
|
|
1072
1059
|
|
|
@@ -1083,7 +1070,7 @@ ${ flowData.code }
|
|
|
1083
1070
|
/**
|
|
1084
1071
|
* Returns the invocation local index builtin.
|
|
1085
1072
|
*
|
|
1086
|
-
* @return {
|
|
1073
|
+
* @return {string} The invocation local index.
|
|
1087
1074
|
*/
|
|
1088
1075
|
getInvocationLocalIndex() {
|
|
1089
1076
|
|
|
@@ -1094,7 +1081,7 @@ ${ flowData.code }
|
|
|
1094
1081
|
/**
|
|
1095
1082
|
* Returns the subgroup size builtin.
|
|
1096
1083
|
*
|
|
1097
|
-
* @return {
|
|
1084
|
+
* @return {string} The subgroup size.
|
|
1098
1085
|
*/
|
|
1099
1086
|
getSubgroupSize() {
|
|
1100
1087
|
|
|
@@ -1107,7 +1094,7 @@ ${ flowData.code }
|
|
|
1107
1094
|
/**
|
|
1108
1095
|
* Returns the invocation subgroup index builtin.
|
|
1109
1096
|
*
|
|
1110
|
-
* @return {
|
|
1097
|
+
* @return {string} The invocation subgroup index.
|
|
1111
1098
|
*/
|
|
1112
1099
|
getInvocationSubgroupIndex() {
|
|
1113
1100
|
|
|
@@ -1120,7 +1107,7 @@ ${ flowData.code }
|
|
|
1120
1107
|
/**
|
|
1121
1108
|
* Returns the subgroup index builtin.
|
|
1122
1109
|
*
|
|
1123
|
-
* @return {
|
|
1110
|
+
* @return {string} The subgroup index.
|
|
1124
1111
|
*/
|
|
1125
1112
|
getSubgroupIndex() {
|
|
1126
1113
|
|
|
@@ -1144,7 +1131,7 @@ ${ flowData.code }
|
|
|
1144
1131
|
/**
|
|
1145
1132
|
* Returns the front facing builtin.
|
|
1146
1133
|
*
|
|
1147
|
-
* @return {
|
|
1134
|
+
* @return {string} The front facing builtin.
|
|
1148
1135
|
*/
|
|
1149
1136
|
getFrontFacing() {
|
|
1150
1137
|
|
|
@@ -1155,7 +1142,7 @@ ${ flowData.code }
|
|
|
1155
1142
|
/**
|
|
1156
1143
|
* Returns the frag coord builtin.
|
|
1157
1144
|
*
|
|
1158
|
-
* @return {
|
|
1145
|
+
* @return {string} The frag coord builtin.
|
|
1159
1146
|
*/
|
|
1160
1147
|
getFragCoord() {
|
|
1161
1148
|
|
|
@@ -1166,7 +1153,7 @@ ${ flowData.code }
|
|
|
1166
1153
|
/**
|
|
1167
1154
|
* Returns the frag depth builtin.
|
|
1168
1155
|
*
|
|
1169
|
-
* @return {
|
|
1156
|
+
* @return {string} The frag depth builtin.
|
|
1170
1157
|
*/
|
|
1171
1158
|
getFragDepth() {
|
|
1172
1159
|
|
|
@@ -1177,7 +1164,7 @@ ${ flowData.code }
|
|
|
1177
1164
|
/**
|
|
1178
1165
|
* Returns the clip distances builtin.
|
|
1179
1166
|
*
|
|
1180
|
-
* @return {
|
|
1167
|
+
* @return {string} The clip distances builtin.
|
|
1181
1168
|
*/
|
|
1182
1169
|
getClipDistance() {
|
|
1183
1170
|
|
|
@@ -1188,7 +1175,7 @@ ${ flowData.code }
|
|
|
1188
1175
|
/**
|
|
1189
1176
|
* Whether to flip texture data along its vertical axis or not.
|
|
1190
1177
|
*
|
|
1191
|
-
* @return {
|
|
1178
|
+
* @return {boolean} Returns always `false` in context of WGSL.
|
|
1192
1179
|
*/
|
|
1193
1180
|
isFlipY() {
|
|
1194
1181
|
|
|
@@ -1199,8 +1186,8 @@ ${ flowData.code }
|
|
|
1199
1186
|
/**
|
|
1200
1187
|
* Enables the given directive for the given shader stage.
|
|
1201
1188
|
*
|
|
1202
|
-
* @param {
|
|
1203
|
-
* @param {
|
|
1189
|
+
* @param {string} name - The directive name.
|
|
1190
|
+
* @param {string} [shaderStage=this.shaderStage] - The shader stage to enable the directive for.
|
|
1204
1191
|
*/
|
|
1205
1192
|
enableDirective( name, shaderStage = this.shaderStage ) {
|
|
1206
1193
|
|
|
@@ -1212,8 +1199,8 @@ ${ flowData.code }
|
|
|
1212
1199
|
/**
|
|
1213
1200
|
* Returns the directives of the given shader stage as a WGSL string.
|
|
1214
1201
|
*
|
|
1215
|
-
* @param {
|
|
1216
|
-
* @return {
|
|
1202
|
+
* @param {string} shaderStage - The shader stage.
|
|
1203
|
+
* @return {string} A WGSL snippet that enables the directives of the given stage.
|
|
1217
1204
|
*/
|
|
1218
1205
|
getDirectives( shaderStage ) {
|
|
1219
1206
|
|
|
@@ -1282,7 +1269,7 @@ ${ flowData.code }
|
|
|
1282
1269
|
/**
|
|
1283
1270
|
* Enables hardware clipping.
|
|
1284
1271
|
*
|
|
1285
|
-
* @param {
|
|
1272
|
+
* @param {string} planeCount - The clipping plane count.
|
|
1286
1273
|
*/
|
|
1287
1274
|
enableHardwareClipping( planeCount ) {
|
|
1288
1275
|
|
|
@@ -1294,8 +1281,8 @@ ${ flowData.code }
|
|
|
1294
1281
|
/**
|
|
1295
1282
|
* Returns the builtins of the given shader stage as a WGSL string.
|
|
1296
1283
|
*
|
|
1297
|
-
* @param {
|
|
1298
|
-
* @return {
|
|
1284
|
+
* @param {string} shaderStage - The shader stage.
|
|
1285
|
+
* @return {string} A WGSL snippet that represents the builtins of the given stage.
|
|
1299
1286
|
*/
|
|
1300
1287
|
getBuiltins( shaderStage ) {
|
|
1301
1288
|
|
|
@@ -1321,11 +1308,11 @@ ${ flowData.code }
|
|
|
1321
1308
|
* compute shaders. It adds the array to the internal data structure which is
|
|
1322
1309
|
* later used to generate the respective WGSL.
|
|
1323
1310
|
*
|
|
1324
|
-
* @param {
|
|
1325
|
-
* @param {
|
|
1326
|
-
* @param {
|
|
1327
|
-
* @param {
|
|
1328
|
-
* @return {
|
|
1311
|
+
* @param {string} name - The array name.
|
|
1312
|
+
* @param {string} scope - The scope.
|
|
1313
|
+
* @param {string} bufferType - The buffer type.
|
|
1314
|
+
* @param {string} bufferCount - The buffer count.
|
|
1315
|
+
* @return {string} The array name.
|
|
1329
1316
|
*/
|
|
1330
1317
|
getScopedArray( name, scope, bufferType, bufferCount ) {
|
|
1331
1318
|
|
|
@@ -1347,8 +1334,8 @@ ${ flowData.code }
|
|
|
1347
1334
|
/**
|
|
1348
1335
|
* Returns the scoped arrays of the given shader stage as a WGSL string.
|
|
1349
1336
|
*
|
|
1350
|
-
* @param {
|
|
1351
|
-
* @return {
|
|
1337
|
+
* @param {string} shaderStage - The shader stage.
|
|
1338
|
+
* @return {string|undefined} The WGSL snippet that defines the scoped arrays.
|
|
1352
1339
|
* Returns `undefined` when used in the vertex or fragment stage.
|
|
1353
1340
|
*/
|
|
1354
1341
|
getScopedArrays( shaderStage ) {
|
|
@@ -1376,8 +1363,8 @@ ${ flowData.code }
|
|
|
1376
1363
|
/**
|
|
1377
1364
|
* Returns the shader attributes of the given shader stage as a WGSL string.
|
|
1378
1365
|
*
|
|
1379
|
-
* @param {
|
|
1380
|
-
* @return {
|
|
1366
|
+
* @param {string} shaderStage - The shader stage.
|
|
1367
|
+
* @return {string} The WGSL snippet that defines the shader attributes.
|
|
1381
1368
|
*/
|
|
1382
1369
|
getAttributes( shaderStage ) {
|
|
1383
1370
|
|
|
@@ -1427,7 +1414,7 @@ ${ flowData.code }
|
|
|
1427
1414
|
* Returns the members of the given struct type node as a WGSL string.
|
|
1428
1415
|
*
|
|
1429
1416
|
* @param {StructTypeNode} struct - The struct type node.
|
|
1430
|
-
* @return {
|
|
1417
|
+
* @return {string} The WGSL snippet that defines the struct members.
|
|
1431
1418
|
*/
|
|
1432
1419
|
getStructMembers( struct ) {
|
|
1433
1420
|
|
|
@@ -1449,6 +1436,12 @@ ${ flowData.code }
|
|
|
1449
1436
|
|
|
1450
1437
|
}
|
|
1451
1438
|
|
|
1439
|
+
if ( struct.output ) {
|
|
1440
|
+
|
|
1441
|
+
snippets.push( `\t${ this.getBuiltins( 'output' ) }` );
|
|
1442
|
+
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1452
1445
|
return snippets.join( ',\n' );
|
|
1453
1446
|
|
|
1454
1447
|
}
|
|
@@ -1456,8 +1449,8 @@ ${ flowData.code }
|
|
|
1456
1449
|
/**
|
|
1457
1450
|
* Returns the structs of the given shader stage as a WGSL string.
|
|
1458
1451
|
*
|
|
1459
|
-
* @param {
|
|
1460
|
-
* @return {
|
|
1452
|
+
* @param {string} shaderStage - The shader stage.
|
|
1453
|
+
* @return {string} The WGSL snippet that defines the structs.
|
|
1461
1454
|
*/
|
|
1462
1455
|
getStructs( shaderStage ) {
|
|
1463
1456
|
|
|
@@ -1490,10 +1483,10 @@ ${ flowData.code }
|
|
|
1490
1483
|
/**
|
|
1491
1484
|
* Returns a WGSL string representing a variable.
|
|
1492
1485
|
*
|
|
1493
|
-
* @param {
|
|
1494
|
-
* @param {
|
|
1495
|
-
* @param {
|
|
1496
|
-
* @return {
|
|
1486
|
+
* @param {string} type - The variable's type.
|
|
1487
|
+
* @param {string} name - The variable's name.
|
|
1488
|
+
* @param {?number} [count=null] - The array length.
|
|
1489
|
+
* @return {string} The WGSL snippet that defines a variable.
|
|
1497
1490
|
*/
|
|
1498
1491
|
getVar( type, name, count = null ) {
|
|
1499
1492
|
|
|
@@ -1516,8 +1509,8 @@ ${ flowData.code }
|
|
|
1516
1509
|
/**
|
|
1517
1510
|
* Returns the variables of the given shader stage as a WGSL string.
|
|
1518
1511
|
*
|
|
1519
|
-
* @param {
|
|
1520
|
-
* @return {
|
|
1512
|
+
* @param {string} shaderStage - The shader stage.
|
|
1513
|
+
* @return {string} The WGSL snippet that defines the variables.
|
|
1521
1514
|
*/
|
|
1522
1515
|
getVars( shaderStage ) {
|
|
1523
1516
|
|
|
@@ -1541,8 +1534,8 @@ ${ flowData.code }
|
|
|
1541
1534
|
/**
|
|
1542
1535
|
* Returns the varyings of the given shader stage as a WGSL string.
|
|
1543
1536
|
*
|
|
1544
|
-
* @param {
|
|
1545
|
-
* @return {
|
|
1537
|
+
* @param {string} shaderStage - The shader stage.
|
|
1538
|
+
* @return {string} The WGSL snippet that defines the varyings.
|
|
1546
1539
|
*/
|
|
1547
1540
|
getVaryings( shaderStage ) {
|
|
1548
1541
|
|
|
@@ -1605,8 +1598,8 @@ ${ flowData.code }
|
|
|
1605
1598
|
/**
|
|
1606
1599
|
* Returns the uniforms of the given shader stage as a WGSL string.
|
|
1607
1600
|
*
|
|
1608
|
-
* @param {
|
|
1609
|
-
* @return {
|
|
1601
|
+
* @param {string} shaderStage - The shader stage.
|
|
1602
|
+
* @return {string} The WGSL snippet that defines the uniforms.
|
|
1610
1603
|
*/
|
|
1611
1604
|
getUniforms( shaderStage ) {
|
|
1612
1605
|
|
|
@@ -1853,9 +1846,9 @@ ${ flowData.code }
|
|
|
1853
1846
|
/**
|
|
1854
1847
|
* Returns the native shader method name for a given generic name.
|
|
1855
1848
|
*
|
|
1856
|
-
* @param {
|
|
1857
|
-
* @param {
|
|
1858
|
-
* @return {
|
|
1849
|
+
* @param {string} method - The method name to resolve.
|
|
1850
|
+
* @param {?string} [output=null] - An optional output.
|
|
1851
|
+
* @return {string} The resolved WGSL method name.
|
|
1859
1852
|
*/
|
|
1860
1853
|
getMethod( method, output = null ) {
|
|
1861
1854
|
|
|
@@ -1880,8 +1873,8 @@ ${ flowData.code }
|
|
|
1880
1873
|
/**
|
|
1881
1874
|
* Returns the WGSL type of the given node data type.
|
|
1882
1875
|
*
|
|
1883
|
-
* @param {
|
|
1884
|
-
* @return {
|
|
1876
|
+
* @param {string} type - The node data type.
|
|
1877
|
+
* @return {string} The WGSL type.
|
|
1885
1878
|
*/
|
|
1886
1879
|
getType( type ) {
|
|
1887
1880
|
|
|
@@ -1892,8 +1885,8 @@ ${ flowData.code }
|
|
|
1892
1885
|
/**
|
|
1893
1886
|
* Whether the requested feature is available or not.
|
|
1894
1887
|
*
|
|
1895
|
-
* @param {
|
|
1896
|
-
* @return {
|
|
1888
|
+
* @param {string} name - The requested feature.
|
|
1889
|
+
* @return {boolean} Whether the requested feature is supported or not.
|
|
1897
1890
|
*/
|
|
1898
1891
|
isAvailable( name ) {
|
|
1899
1892
|
|
|
@@ -1923,8 +1916,8 @@ ${ flowData.code }
|
|
|
1923
1916
|
* Returns the native shader method name for a given generic name.
|
|
1924
1917
|
*
|
|
1925
1918
|
* @private
|
|
1926
|
-
* @param {
|
|
1927
|
-
* @return {
|
|
1919
|
+
* @param {string} method - The method name to resolve.
|
|
1920
|
+
* @return {string} The resolved WGSL method name.
|
|
1928
1921
|
*/
|
|
1929
1922
|
_getWGSLMethod( method ) {
|
|
1930
1923
|
|
|
@@ -1943,7 +1936,7 @@ ${ flowData.code }
|
|
|
1943
1936
|
* function node.
|
|
1944
1937
|
*
|
|
1945
1938
|
* @private
|
|
1946
|
-
* @param {
|
|
1939
|
+
* @param {string} name - The method name to include.
|
|
1947
1940
|
* @return {CodeNode} The respective code node.
|
|
1948
1941
|
*/
|
|
1949
1942
|
_include( name ) {
|
|
@@ -1966,7 +1959,7 @@ ${ flowData.code }
|
|
|
1966
1959
|
*
|
|
1967
1960
|
* @private
|
|
1968
1961
|
* @param {Object} shaderData - The shader data.
|
|
1969
|
-
* @return {
|
|
1962
|
+
* @return {string} The vertex shader.
|
|
1970
1963
|
*/
|
|
1971
1964
|
_getWGSLVertexCode( shaderData ) {
|
|
1972
1965
|
|
|
@@ -2008,7 +2001,7 @@ fn main( ${shaderData.attributes} ) -> VaryingsStruct {
|
|
|
2008
2001
|
*
|
|
2009
2002
|
* @private
|
|
2010
2003
|
* @param {Object} shaderData - The shader data.
|
|
2011
|
-
* @return {
|
|
2004
|
+
* @return {string} The vertex shader.
|
|
2012
2005
|
*/
|
|
2013
2006
|
_getWGSLFragmentCode( shaderData ) {
|
|
2014
2007
|
|
|
@@ -2044,8 +2037,8 @@ fn main( ${shaderData.varyings} ) -> ${shaderData.returnType} {
|
|
|
2044
2037
|
*
|
|
2045
2038
|
* @private
|
|
2046
2039
|
* @param {Object} shaderData - The shader data.
|
|
2047
|
-
* @param {
|
|
2048
|
-
* @return {
|
|
2040
|
+
* @param {string} workgroupSize - The workgroup size.
|
|
2041
|
+
* @return {string} The vertex shader.
|
|
2049
2042
|
*/
|
|
2050
2043
|
_getWGSLComputeCode( shaderData, workgroupSize ) {
|
|
2051
2044
|
|
|
@@ -2089,9 +2082,9 @@ fn main( ${shaderData.attributes} ) {
|
|
|
2089
2082
|
* Returns a WGSL struct based on the given name and variables.
|
|
2090
2083
|
*
|
|
2091
2084
|
* @private
|
|
2092
|
-
* @param {
|
|
2093
|
-
* @param {
|
|
2094
|
-
* @return {
|
|
2085
|
+
* @param {string} name - The struct name.
|
|
2086
|
+
* @param {string} vars - The struct variables.
|
|
2087
|
+
* @return {string} The WGSL snippet representing a struct.
|
|
2095
2088
|
*/
|
|
2096
2089
|
_getWGSLStruct( name, vars ) {
|
|
2097
2090
|
|
|
@@ -2106,12 +2099,12 @@ ${vars}
|
|
|
2106
2099
|
* Returns a WGSL struct binding.
|
|
2107
2100
|
*
|
|
2108
2101
|
* @private
|
|
2109
|
-
* @param {
|
|
2110
|
-
* @param {
|
|
2111
|
-
* @param {
|
|
2112
|
-
* @param {
|
|
2113
|
-
* @param {
|
|
2114
|
-
* @return {
|
|
2102
|
+
* @param {string} name - The struct name.
|
|
2103
|
+
* @param {string} vars - The struct variables.
|
|
2104
|
+
* @param {string} access - The access.
|
|
2105
|
+
* @param {number} [binding=0] - The binding index.
|
|
2106
|
+
* @param {number} [group=0] - The group index.
|
|
2107
|
+
* @return {string} The WGSL snippet representing a struct binding.
|
|
2115
2108
|
*/
|
|
2116
2109
|
_getWGSLStructBinding( name, vars, access, binding = 0, group = 0 ) {
|
|
2117
2110
|
|