@triforge/shader-core 0.1.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/README.md +90 -0
- package/dist/bundle.js +5578 -0
- package/dist/core/CompileContext.d.ts +60 -0
- package/dist/core/CompileContext.d.ts.map +1 -0
- package/dist/core/CompileContext.js +276 -0
- package/dist/core/InputNode.d.ts +11 -0
- package/dist/core/InputNode.d.ts.map +1 -0
- package/dist/core/InputNode.js +13 -0
- package/dist/core/InputSocket.d.ts +21 -0
- package/dist/core/InputSocket.d.ts.map +1 -0
- package/dist/core/InputSocket.js +23 -0
- package/dist/core/OutputNode.d.ts +30 -0
- package/dist/core/OutputNode.d.ts.map +1 -0
- package/dist/core/OutputNode.js +60 -0
- package/dist/core/OutputSocket.d.ts +18 -0
- package/dist/core/OutputSocket.d.ts.map +1 -0
- package/dist/core/OutputSocket.js +16 -0
- package/dist/core/ProcessNode.d.ts +8 -0
- package/dist/core/ProcessNode.d.ts.map +1 -0
- package/dist/core/ProcessNode.js +7 -0
- package/dist/core/ShaderConfig.d.ts +13 -0
- package/dist/core/ShaderConfig.d.ts.map +1 -0
- package/dist/core/ShaderConfig.js +11 -0
- package/dist/core/ShaderNode.d.ts +114 -0
- package/dist/core/ShaderNode.d.ts.map +1 -0
- package/dist/core/ShaderNode.js +156 -0
- package/dist/core/ShaderNodeError.d.ts +32 -0
- package/dist/core/ShaderNodeError.d.ts.map +1 -0
- package/dist/core/ShaderNodeError.js +61 -0
- package/dist/core/SocketType.d.ts +12 -0
- package/dist/core/SocketType.d.ts.map +1 -0
- package/dist/core/SocketType.js +7 -0
- package/dist/index.d.ts +164 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +108 -0
- package/dist/nodes/input/Attribute.d.ts +45 -0
- package/dist/nodes/input/Attribute.d.ts.map +1 -0
- package/dist/nodes/input/Attribute.js +58 -0
- package/dist/nodes/input/CameraData.d.ts +21 -0
- package/dist/nodes/input/CameraData.d.ts.map +1 -0
- package/dist/nodes/input/CameraData.js +33 -0
- package/dist/nodes/input/ColorAttribute.d.ts +28 -0
- package/dist/nodes/input/ColorAttribute.d.ts.map +1 -0
- package/dist/nodes/input/ColorAttribute.js +32 -0
- package/dist/nodes/input/Geometry.d.ts +23 -0
- package/dist/nodes/input/Geometry.d.ts.map +1 -0
- package/dist/nodes/input/Geometry.js +38 -0
- package/dist/nodes/input/HairInfo.d.ts +38 -0
- package/dist/nodes/input/HairInfo.d.ts.map +1 -0
- package/dist/nodes/input/HairInfo.js +50 -0
- package/dist/nodes/input/LayerWeight.d.ts +26 -0
- package/dist/nodes/input/LayerWeight.d.ts.map +1 -0
- package/dist/nodes/input/LayerWeight.js +35 -0
- package/dist/nodes/input/LightPath.d.ts +60 -0
- package/dist/nodes/input/LightPath.d.ts.map +1 -0
- package/dist/nodes/input/LightPath.js +112 -0
- package/dist/nodes/input/ObjectInfo.d.ts +22 -0
- package/dist/nodes/input/ObjectInfo.d.ts.map +1 -0
- package/dist/nodes/input/ObjectInfo.js +41 -0
- package/dist/nodes/input/OceanAttribute.d.ts +32 -0
- package/dist/nodes/input/OceanAttribute.d.ts.map +1 -0
- package/dist/nodes/input/OceanAttribute.js +38 -0
- package/dist/nodes/input/ParticleInfo.d.ts +31 -0
- package/dist/nodes/input/ParticleInfo.d.ts.map +1 -0
- package/dist/nodes/input/ParticleInfo.js +44 -0
- package/dist/nodes/input/RGB.d.ts +19 -0
- package/dist/nodes/input/RGB.d.ts.map +1 -0
- package/dist/nodes/input/RGB.js +23 -0
- package/dist/nodes/input/ScreenCamera.d.ts +37 -0
- package/dist/nodes/input/ScreenCamera.d.ts.map +1 -0
- package/dist/nodes/input/ScreenCamera.js +59 -0
- package/dist/nodes/input/Tangent.d.ts +21 -0
- package/dist/nodes/input/Tangent.d.ts.map +1 -0
- package/dist/nodes/input/Tangent.js +30 -0
- package/dist/nodes/input/TextureCoordinate.d.ts +17 -0
- package/dist/nodes/input/TextureCoordinate.d.ts.map +1 -0
- package/dist/nodes/input/TextureCoordinate.js +24 -0
- package/dist/nodes/input/UVMap.d.ts +20 -0
- package/dist/nodes/input/UVMap.d.ts.map +1 -0
- package/dist/nodes/input/UVMap.js +23 -0
- package/dist/nodes/input/Value.d.ts +19 -0
- package/dist/nodes/input/Value.d.ts.map +1 -0
- package/dist/nodes/input/Value.js +22 -0
- package/dist/nodes/input/Wireframe.d.ts +25 -0
- package/dist/nodes/input/Wireframe.d.ts.map +1 -0
- package/dist/nodes/input/Wireframe.js +30 -0
- package/dist/nodes/output/Displacement.d.ts +28 -0
- package/dist/nodes/output/Displacement.d.ts.map +1 -0
- package/dist/nodes/output/Displacement.js +34 -0
- package/dist/nodes/output/MaterialOutput.d.ts +43 -0
- package/dist/nodes/output/MaterialOutput.d.ts.map +1 -0
- package/dist/nodes/output/MaterialOutput.js +118 -0
- package/dist/nodes/output/ScreenOutput.d.ts +38 -0
- package/dist/nodes/output/ScreenOutput.d.ts.map +1 -0
- package/dist/nodes/output/ScreenOutput.js +88 -0
- package/dist/nodes/process/AddShader.d.ts +30 -0
- package/dist/nodes/process/AddShader.d.ts.map +1 -0
- package/dist/nodes/process/AddShader.js +36 -0
- package/dist/nodes/process/AnimatedNoiseTexture.d.ts +39 -0
- package/dist/nodes/process/AnimatedNoiseTexture.d.ts.map +1 -0
- package/dist/nodes/process/AnimatedNoiseTexture.js +93 -0
- package/dist/nodes/process/Blackbody.d.ts +29 -0
- package/dist/nodes/process/Blackbody.d.ts.map +1 -0
- package/dist/nodes/process/Blackbody.js +50 -0
- package/dist/nodes/process/BrickTexture.d.ts +36 -0
- package/dist/nodes/process/BrickTexture.d.ts.map +1 -0
- package/dist/nodes/process/BrickTexture.js +71 -0
- package/dist/nodes/process/BrightContrast.d.ts +30 -0
- package/dist/nodes/process/BrightContrast.d.ts.map +1 -0
- package/dist/nodes/process/BrightContrast.js +41 -0
- package/dist/nodes/process/Bump.d.ts +31 -0
- package/dist/nodes/process/Bump.d.ts.map +1 -0
- package/dist/nodes/process/Bump.js +65 -0
- package/dist/nodes/process/CheckerTexture.d.ts +30 -0
- package/dist/nodes/process/CheckerTexture.d.ts.map +1 -0
- package/dist/nodes/process/CheckerTexture.js +48 -0
- package/dist/nodes/process/Clamp.d.ts +32 -0
- package/dist/nodes/process/Clamp.d.ts.map +1 -0
- package/dist/nodes/process/Clamp.js +37 -0
- package/dist/nodes/process/ColorRamp.d.ts +28 -0
- package/dist/nodes/process/ColorRamp.d.ts.map +1 -0
- package/dist/nodes/process/ColorRamp.js +49 -0
- package/dist/nodes/process/CombineColor.d.ts +34 -0
- package/dist/nodes/process/CombineColor.d.ts.map +1 -0
- package/dist/nodes/process/CombineColor.js +69 -0
- package/dist/nodes/process/CombineRGB.d.ts +29 -0
- package/dist/nodes/process/CombineRGB.d.ts.map +1 -0
- package/dist/nodes/process/CombineRGB.js +33 -0
- package/dist/nodes/process/CombineXYZ.d.ts +29 -0
- package/dist/nodes/process/CombineXYZ.d.ts.map +1 -0
- package/dist/nodes/process/CombineXYZ.js +33 -0
- package/dist/nodes/process/DiffuseBSDF.d.ts +30 -0
- package/dist/nodes/process/DiffuseBSDF.d.ts.map +1 -0
- package/dist/nodes/process/DiffuseBSDF.js +43 -0
- package/dist/nodes/process/Emission.d.ts +30 -0
- package/dist/nodes/process/Emission.d.ts.map +1 -0
- package/dist/nodes/process/Emission.js +36 -0
- package/dist/nodes/process/EnvironmentTexture.d.ts +41 -0
- package/dist/nodes/process/EnvironmentTexture.d.ts.map +1 -0
- package/dist/nodes/process/EnvironmentTexture.js +65 -0
- package/dist/nodes/process/FloatCurve.d.ts +34 -0
- package/dist/nodes/process/FloatCurve.d.ts.map +1 -0
- package/dist/nodes/process/FloatCurve.js +46 -0
- package/dist/nodes/process/Fresnel.d.ts +36 -0
- package/dist/nodes/process/Fresnel.d.ts.map +1 -0
- package/dist/nodes/process/Fresnel.js +53 -0
- package/dist/nodes/process/Gamma.d.ts +29 -0
- package/dist/nodes/process/Gamma.d.ts.map +1 -0
- package/dist/nodes/process/Gamma.js +35 -0
- package/dist/nodes/process/GlassBSDF.d.ts +31 -0
- package/dist/nodes/process/GlassBSDF.d.ts.map +1 -0
- package/dist/nodes/process/GlassBSDF.js +51 -0
- package/dist/nodes/process/GlossyBSDF.d.ts +30 -0
- package/dist/nodes/process/GlossyBSDF.d.ts.map +1 -0
- package/dist/nodes/process/GlossyBSDF.js +50 -0
- package/dist/nodes/process/GradientTexture.d.ts +31 -0
- package/dist/nodes/process/GradientTexture.d.ts.map +1 -0
- package/dist/nodes/process/GradientTexture.js +49 -0
- package/dist/nodes/process/HashValue.d.ts +30 -0
- package/dist/nodes/process/HashValue.d.ts.map +1 -0
- package/dist/nodes/process/HashValue.js +34 -0
- package/dist/nodes/process/HueSaturationValue.d.ts +32 -0
- package/dist/nodes/process/HueSaturationValue.d.ts.map +1 -0
- package/dist/nodes/process/HueSaturationValue.js +58 -0
- package/dist/nodes/process/ImageTexture.d.ts +34 -0
- package/dist/nodes/process/ImageTexture.d.ts.map +1 -0
- package/dist/nodes/process/ImageTexture.js +53 -0
- package/dist/nodes/process/InvertColor.d.ts +29 -0
- package/dist/nodes/process/InvertColor.d.ts.map +1 -0
- package/dist/nodes/process/InvertColor.js +35 -0
- package/dist/nodes/process/MagicTexture.d.ts +30 -0
- package/dist/nodes/process/MagicTexture.d.ts.map +1 -0
- package/dist/nodes/process/MagicTexture.js +54 -0
- package/dist/nodes/process/MapRange.d.ts +38 -0
- package/dist/nodes/process/MapRange.d.ts.map +1 -0
- package/dist/nodes/process/MapRange.js +52 -0
- package/dist/nodes/process/Mapping.d.ts +37 -0
- package/dist/nodes/process/Mapping.d.ts.map +1 -0
- package/dist/nodes/process/Mapping.js +57 -0
- package/dist/nodes/process/Math.d.ts +40 -0
- package/dist/nodes/process/Math.d.ts.map +1 -0
- package/dist/nodes/process/Math.js +100 -0
- package/dist/nodes/process/MixRGB.d.ts +35 -0
- package/dist/nodes/process/MixRGB.d.ts.map +1 -0
- package/dist/nodes/process/MixRGB.js +63 -0
- package/dist/nodes/process/MixShader.d.ts +35 -0
- package/dist/nodes/process/MixShader.d.ts.map +1 -0
- package/dist/nodes/process/MixShader.js +47 -0
- package/dist/nodes/process/MusgraveTexture.d.ts +36 -0
- package/dist/nodes/process/MusgraveTexture.d.ts.map +1 -0
- package/dist/nodes/process/MusgraveTexture.js +70 -0
- package/dist/nodes/process/NoiseTexture.d.ts +31 -0
- package/dist/nodes/process/NoiseTexture.d.ts.map +1 -0
- package/dist/nodes/process/NoiseTexture.js +78 -0
- package/dist/nodes/process/Normal.d.ts +30 -0
- package/dist/nodes/process/Normal.d.ts.map +1 -0
- package/dist/nodes/process/Normal.js +38 -0
- package/dist/nodes/process/NormalMap.d.ts +34 -0
- package/dist/nodes/process/NormalMap.d.ts.map +1 -0
- package/dist/nodes/process/NormalMap.js +54 -0
- package/dist/nodes/process/PrincipledBSDF.d.ts +32 -0
- package/dist/nodes/process/PrincipledBSDF.d.ts.map +1 -0
- package/dist/nodes/process/PrincipledBSDF.js +75 -0
- package/dist/nodes/process/PrincipledHair.d.ts +63 -0
- package/dist/nodes/process/PrincipledHair.d.ts.map +1 -0
- package/dist/nodes/process/PrincipledHair.js +137 -0
- package/dist/nodes/process/PrincipledVolume.d.ts +37 -0
- package/dist/nodes/process/PrincipledVolume.d.ts.map +1 -0
- package/dist/nodes/process/PrincipledVolume.js +67 -0
- package/dist/nodes/process/RGBCurves.d.ts +45 -0
- package/dist/nodes/process/RGBCurves.d.ts.map +1 -0
- package/dist/nodes/process/RGBCurves.js +81 -0
- package/dist/nodes/process/RGBtoBW.d.ts +28 -0
- package/dist/nodes/process/RGBtoBW.d.ts.map +1 -0
- package/dist/nodes/process/RGBtoBW.js +31 -0
- package/dist/nodes/process/RefractionBSDF.d.ts +32 -0
- package/dist/nodes/process/RefractionBSDF.d.ts.map +1 -0
- package/dist/nodes/process/RefractionBSDF.js +46 -0
- package/dist/nodes/process/SchwarzschildMarch.d.ts +56 -0
- package/dist/nodes/process/SchwarzschildMarch.d.ts.map +1 -0
- package/dist/nodes/process/SchwarzschildMarch.js +306 -0
- package/dist/nodes/process/SeparateColor.d.ts +33 -0
- package/dist/nodes/process/SeparateColor.d.ts.map +1 -0
- package/dist/nodes/process/SeparateColor.js +79 -0
- package/dist/nodes/process/SeparateRGB.d.ts +27 -0
- package/dist/nodes/process/SeparateRGB.d.ts.map +1 -0
- package/dist/nodes/process/SeparateRGB.js +31 -0
- package/dist/nodes/process/SeparateXYZ.d.ts +27 -0
- package/dist/nodes/process/SeparateXYZ.d.ts.map +1 -0
- package/dist/nodes/process/SeparateXYZ.js +31 -0
- package/dist/nodes/process/ShaderScript.d.ts +95 -0
- package/dist/nodes/process/ShaderScript.d.ts.map +1 -0
- package/dist/nodes/process/ShaderScript.js +119 -0
- package/dist/nodes/process/ShaderToRGB.d.ts +28 -0
- package/dist/nodes/process/ShaderToRGB.d.ts.map +1 -0
- package/dist/nodes/process/ShaderToRGB.js +33 -0
- package/dist/nodes/process/SheenBSDF.d.ts +31 -0
- package/dist/nodes/process/SheenBSDF.d.ts.map +1 -0
- package/dist/nodes/process/SheenBSDF.js +49 -0
- package/dist/nodes/process/SpecularBSDF.d.ts +32 -0
- package/dist/nodes/process/SpecularBSDF.d.ts.map +1 -0
- package/dist/nodes/process/SpecularBSDF.js +54 -0
- package/dist/nodes/process/SubsurfaceScattering.d.ts +33 -0
- package/dist/nodes/process/SubsurfaceScattering.d.ts.map +1 -0
- package/dist/nodes/process/SubsurfaceScattering.js +46 -0
- package/dist/nodes/process/ToonBSDF.d.ts +31 -0
- package/dist/nodes/process/ToonBSDF.d.ts.map +1 -0
- package/dist/nodes/process/ToonBSDF.js +44 -0
- package/dist/nodes/process/TranslucentBSDF.d.ts +29 -0
- package/dist/nodes/process/TranslucentBSDF.d.ts.map +1 -0
- package/dist/nodes/process/TranslucentBSDF.js +39 -0
- package/dist/nodes/process/VectorCurves.d.ts +42 -0
- package/dist/nodes/process/VectorCurves.d.ts.map +1 -0
- package/dist/nodes/process/VectorCurves.js +71 -0
- package/dist/nodes/process/VectorMath.d.ts +38 -0
- package/dist/nodes/process/VectorMath.d.ts.map +1 -0
- package/dist/nodes/process/VectorMath.js +105 -0
- package/dist/nodes/process/VectorRotate.d.ts +34 -0
- package/dist/nodes/process/VectorRotate.d.ts.map +1 -0
- package/dist/nodes/process/VectorRotate.js +52 -0
- package/dist/nodes/process/VectorTransform.d.ts +36 -0
- package/dist/nodes/process/VectorTransform.d.ts.map +1 -0
- package/dist/nodes/process/VectorTransform.js +48 -0
- package/dist/nodes/process/VolumeAbsorption.d.ts +30 -0
- package/dist/nodes/process/VolumeAbsorption.d.ts.map +1 -0
- package/dist/nodes/process/VolumeAbsorption.js +36 -0
- package/dist/nodes/process/VolumeScatter.d.ts +31 -0
- package/dist/nodes/process/VolumeScatter.d.ts.map +1 -0
- package/dist/nodes/process/VolumeScatter.js +42 -0
- package/dist/nodes/process/VoronoiTexture.d.ts +38 -0
- package/dist/nodes/process/VoronoiTexture.d.ts.map +1 -0
- package/dist/nodes/process/VoronoiTexture.js +123 -0
- package/dist/nodes/process/WaveTexture.d.ts +39 -0
- package/dist/nodes/process/WaveTexture.d.ts.map +1 -0
- package/dist/nodes/process/WaveTexture.js +77 -0
- package/dist/nodes/process/Wavelength.d.ts +28 -0
- package/dist/nodes/process/Wavelength.d.ts.map +1 -0
- package/dist/nodes/process/Wavelength.js +43 -0
- package/dist/nodes/process/WhiteNoise.d.ts +27 -0
- package/dist/nodes/process/WhiteNoise.d.ts.map +1 -0
- package/dist/nodes/process/WhiteNoise.js +44 -0
- package/dist/nodes/shader/AmbientOcclusion.d.ts +47 -0
- package/dist/nodes/shader/AmbientOcclusion.d.ts.map +1 -0
- package/dist/nodes/shader/AmbientOcclusion.js +128 -0
- package/dist/nodes/shader/RayPortal.d.ts +57 -0
- package/dist/nodes/shader/RayPortal.d.ts.map +1 -0
- package/dist/nodes/shader/RayPortal.js +56 -0
- package/dist/shaders/color.d.ts +12 -0
- package/dist/shaders/color.d.ts.map +1 -0
- package/dist/shaders/color.js +42 -0
- package/dist/shaders/noise.d.ts +12 -0
- package/dist/shaders/noise.d.ts.map +1 -0
- package/dist/shaders/noise.js +70 -0
- package/dist/types/shader.d.ts +17 -0
- package/dist/types/shader.d.ts.map +1 -0
- package/dist/types/shader.js +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { InputSocket } from './InputSocket.js';
|
|
2
|
+
import { OutputSocket } from './OutputSocket.js';
|
|
3
|
+
import type { SocketType } from './SocketType.js';
|
|
4
|
+
/** Shorthand input definition: [socketType, defaultValue] */
|
|
5
|
+
type InputDef = [SocketType, unknown, boolean?];
|
|
6
|
+
/** Shorthand output definition: socketType */
|
|
7
|
+
type OutputDef = SocketType;
|
|
8
|
+
export interface NodeMetadata {
|
|
9
|
+
label: string;
|
|
10
|
+
category: string;
|
|
11
|
+
color: string;
|
|
12
|
+
cost: 'low' | 'medium' | 'high';
|
|
13
|
+
costNote?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Abstract base for all shader nodes.
|
|
17
|
+
* Do not extend directly — use InputNode, OutputNode, or ProcessNode.
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class ShaderNode {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
/** Per-instance GLSL override. Takes priority over static glslFunction. */
|
|
22
|
+
glslFunction?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Extra uniforms this node needs beyond its input sockets.
|
|
25
|
+
* Override to register float uniforms that are driven externally
|
|
26
|
+
* (e.g. LightPath ray-type flags set by LightPathController).
|
|
27
|
+
* Returns map of uniformName → initial float value.
|
|
28
|
+
*/
|
|
29
|
+
extraUniforms(): Record<string, number>;
|
|
30
|
+
/**
|
|
31
|
+
* Live parameters for this node.
|
|
32
|
+
* Floats and color ([r,g,b]) inputs are auto-populated by createInputs.
|
|
33
|
+
* After compile(), setters proxy directly to GPU uniforms — GSAP-compatible.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* gsap.to(noise.parameters, { scale: 10.0, duration: 2 })
|
|
37
|
+
* node.parameters.baseColor = [1.0, 0.5, 0.0]
|
|
38
|
+
*/
|
|
39
|
+
parameters: Record<string, number | [number, number, number]>;
|
|
40
|
+
/** Maps paramName → uniformName for _wireParameters. Internal use only. */
|
|
41
|
+
private _uniformMap;
|
|
42
|
+
/** Tracks which paramNames are color (vec3) uniforms. */
|
|
43
|
+
private _colorParams;
|
|
44
|
+
constructor(nodeType: string);
|
|
45
|
+
abstract get nodeType(): string;
|
|
46
|
+
abstract get metadata(): NodeMetadata;
|
|
47
|
+
abstract getInputSockets(): Record<string, InputSocket<unknown>>;
|
|
48
|
+
abstract getOutputSockets(): Record<string, OutputSocket>;
|
|
49
|
+
/**
|
|
50
|
+
* Declares custom vertex attribute → varying pairs needed by this node.
|
|
51
|
+
* CompileContext collects these and injects them into the vertex and fragment shaders.
|
|
52
|
+
* Override in nodes that read custom BufferGeometry attributes (e.g. OceanAttribute).
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* vertexInjections() {
|
|
56
|
+
* return [{ attrName: 'foam', attrType: 'float', varyingName: 'vFoam' }]
|
|
57
|
+
* }
|
|
58
|
+
*/
|
|
59
|
+
vertexInjections(): Array<{
|
|
60
|
+
attrName: string;
|
|
61
|
+
attrType: 'float' | 'vec2' | 'vec3';
|
|
62
|
+
varyingName: string;
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Returns the named output socket.
|
|
66
|
+
* Throws ShaderNodeError if the socket does not exist.
|
|
67
|
+
*/
|
|
68
|
+
output(name: string): OutputSocket;
|
|
69
|
+
/**
|
|
70
|
+
* Returns GLSL function definition(s) for this node type.
|
|
71
|
+
* Shared across all instances of the same type unless instanceSpecificDef is true.
|
|
72
|
+
*/
|
|
73
|
+
abstract compileDefs(): string;
|
|
74
|
+
/**
|
|
75
|
+
* Returns GLSL variable assignment(s) for this node instance.
|
|
76
|
+
* Called once per node in dependency order inside main().
|
|
77
|
+
*/
|
|
78
|
+
abstract compileCall(ctx: import('./CompileContext.js').CompileContext): string;
|
|
79
|
+
/**
|
|
80
|
+
* When true, compileDefs() output is unique per instance
|
|
81
|
+
* and is not deduplicated by the CompileContext.
|
|
82
|
+
* Use for nodes whose function body contains baked-in values (e.g. ColorRamp).
|
|
83
|
+
*/
|
|
84
|
+
static instanceSpecificDef: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Creates input sockets from a compact definition map.
|
|
87
|
+
* Connects any OutputSocket values automatically.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* this._inputs = this.createInputs(inputs, {
|
|
91
|
+
* scale: ['float', 5.0],
|
|
92
|
+
* roughness: ['float', 0.5],
|
|
93
|
+
* vector: ['vector', null],
|
|
94
|
+
* })
|
|
95
|
+
*/
|
|
96
|
+
protected createInputs(supplied: Record<string, unknown>, defs: Record<string, InputDef>): Record<string, InputSocket<unknown>>;
|
|
97
|
+
/**
|
|
98
|
+
* Creates output sockets from a compact definition map.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* this._outputs = this.createOutputs({ Fac: 'float', Color: 'color' })
|
|
102
|
+
*/
|
|
103
|
+
protected createOutputs(defs: Record<string, OutputDef>): Record<string, OutputSocket>;
|
|
104
|
+
/**
|
|
105
|
+
* Wires each entry in parameters to the corresponding GPU uniform.
|
|
106
|
+
* Called automatically by OutputNode.compile() — do not call manually.
|
|
107
|
+
* After wiring, reading/writing parameters[name] reads/writes the live uniform value.
|
|
108
|
+
*/
|
|
109
|
+
_wireParameters(uniforms: Record<string, {
|
|
110
|
+
value: unknown;
|
|
111
|
+
}>): void;
|
|
112
|
+
}
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=ShaderNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShaderNode.d.ts","sourceRoot":"","sources":["../../src/core/ShaderNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAajD,6DAA6D;AAC7D,KAAK,QAAQ,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;AAE/C,8CAA8C;AAC9C,KAAK,SAAS,GAAG,UAAU,CAAA;AAE3B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAK,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAK,MAAM,CAAA;IAChB,IAAI,EAAM,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,8BAAsB,UAAU;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAEnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;OAKG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEvC;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAK;IAElE,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAmC;IACtD,yDAAyD;IACzD,OAAO,CAAC,YAAY,CAAkC;gBAE1C,QAAQ,EAAE,MAAM;IAI5B,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAA;IAC/B,QAAQ,KAAK,QAAQ,IAAI,YAAY,CAAA;IAErC,QAAQ,CAAC,eAAe,IAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjE,QAAQ,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAEzD;;;;;;;;;OASG;IACH,gBAAgB,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzG;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAelC;;;OAGG;IACH,QAAQ,CAAC,WAAW,IAAI,MAAM;IAE9B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,qBAAqB,EAAE,cAAc,GAAG,MAAM;IAE/E;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,UAAQ;IAElC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,YAAY,CACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAgCvC;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAQ/B;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI;CAqBpE"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { ShaderNodeError } from './ShaderNodeError.js';
|
|
2
|
+
import { ShaderConfig } from './ShaderConfig.js';
|
|
3
|
+
import { InputSocket } from './InputSocket.js';
|
|
4
|
+
import { OutputSocket } from './OutputSocket.js';
|
|
5
|
+
function hexToRgb(hex) {
|
|
6
|
+
const h = hex.replace('#', '');
|
|
7
|
+
return [
|
|
8
|
+
parseInt(h.substring(0, 2), 16) / 255,
|
|
9
|
+
parseInt(h.substring(2, 4), 16) / 255,
|
|
10
|
+
parseInt(h.substring(4, 6), 16) / 255,
|
|
11
|
+
];
|
|
12
|
+
}
|
|
13
|
+
let nodeCounter = 0;
|
|
14
|
+
/**
|
|
15
|
+
* Abstract base for all shader nodes.
|
|
16
|
+
* Do not extend directly — use InputNode, OutputNode, or ProcessNode.
|
|
17
|
+
*/
|
|
18
|
+
export class ShaderNode {
|
|
19
|
+
/**
|
|
20
|
+
* Extra uniforms this node needs beyond its input sockets.
|
|
21
|
+
* Override to register float uniforms that are driven externally
|
|
22
|
+
* (e.g. LightPath ray-type flags set by LightPathController).
|
|
23
|
+
* Returns map of uniformName → initial float value.
|
|
24
|
+
*/
|
|
25
|
+
extraUniforms() { return {}; }
|
|
26
|
+
constructor(nodeType) {
|
|
27
|
+
/**
|
|
28
|
+
* Live parameters for this node.
|
|
29
|
+
* Floats and color ([r,g,b]) inputs are auto-populated by createInputs.
|
|
30
|
+
* After compile(), setters proxy directly to GPU uniforms — GSAP-compatible.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* gsap.to(noise.parameters, { scale: 10.0, duration: 2 })
|
|
34
|
+
* node.parameters.baseColor = [1.0, 0.5, 0.0]
|
|
35
|
+
*/
|
|
36
|
+
this.parameters = {};
|
|
37
|
+
/** Maps paramName → uniformName for _wireParameters. Internal use only. */
|
|
38
|
+
this._uniformMap = new Map();
|
|
39
|
+
/** Tracks which paramNames are color (vec3) uniforms. */
|
|
40
|
+
this._colorParams = new Set();
|
|
41
|
+
this.id = `${nodeType}_${++nodeCounter}`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Declares custom vertex attribute → varying pairs needed by this node.
|
|
45
|
+
* CompileContext collects these and injects them into the vertex and fragment shaders.
|
|
46
|
+
* Override in nodes that read custom BufferGeometry attributes (e.g. OceanAttribute).
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* vertexInjections() {
|
|
50
|
+
* return [{ attrName: 'foam', attrType: 'float', varyingName: 'vFoam' }]
|
|
51
|
+
* }
|
|
52
|
+
*/
|
|
53
|
+
vertexInjections() {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns the named output socket.
|
|
58
|
+
* Throws ShaderNodeError if the socket does not exist.
|
|
59
|
+
*/
|
|
60
|
+
output(name) {
|
|
61
|
+
const sockets = this.getOutputSockets();
|
|
62
|
+
if (ShaderConfig.errorLevel !== 'off' && !sockets[name]) {
|
|
63
|
+
ShaderNodeError.throw({
|
|
64
|
+
nodeType: this.nodeType,
|
|
65
|
+
nodeId: this.id,
|
|
66
|
+
problem: `Output socket "${name}" does not exist.`,
|
|
67
|
+
fix: `Available outputs: ${Object.keys(sockets).join(', ')}`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return sockets[name];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates input sockets from a compact definition map.
|
|
74
|
+
* Connects any OutputSocket values automatically.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* this._inputs = this.createInputs(inputs, {
|
|
78
|
+
* scale: ['float', 5.0],
|
|
79
|
+
* roughness: ['float', 0.5],
|
|
80
|
+
* vector: ['vector', null],
|
|
81
|
+
* })
|
|
82
|
+
*/
|
|
83
|
+
createInputs(supplied, defs) {
|
|
84
|
+
const sockets = {};
|
|
85
|
+
for (const [name, [type, defaultValue, required = false]] of Object.entries(defs)) {
|
|
86
|
+
const value = supplied[name];
|
|
87
|
+
const literal = value instanceof OutputSocket ? defaultValue : (value ?? defaultValue);
|
|
88
|
+
const socket = new InputSocket(name, type, literal, required);
|
|
89
|
+
if (value instanceof OutputSocket)
|
|
90
|
+
socket.connection = value;
|
|
91
|
+
// Auto-register float inputs as uniforms and populate parameters
|
|
92
|
+
if (type === 'float' && typeof literal === 'number') {
|
|
93
|
+
socket.uniformName = `u_${this.id}_${name}`;
|
|
94
|
+
this._uniformMap.set(name, socket.uniformName);
|
|
95
|
+
this.parameters[name] = literal;
|
|
96
|
+
}
|
|
97
|
+
// Auto-register unconnected color inputs as vec3 uniforms
|
|
98
|
+
if (type === 'color' && !(value instanceof OutputSocket)) {
|
|
99
|
+
if (typeof literal === 'string' || Array.isArray(literal)) {
|
|
100
|
+
socket.uniformName = `u_${this.id}_${name}`;
|
|
101
|
+
this._uniformMap.set(name, socket.uniformName);
|
|
102
|
+
this._colorParams.add(name);
|
|
103
|
+
this.parameters[name] = typeof literal === 'string' ? hexToRgb(literal) : literal;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
sockets[name] = socket;
|
|
107
|
+
}
|
|
108
|
+
return sockets;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Creates output sockets from a compact definition map.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* this._outputs = this.createOutputs({ Fac: 'float', Color: 'color' })
|
|
115
|
+
*/
|
|
116
|
+
createOutputs(defs) {
|
|
117
|
+
const sockets = {};
|
|
118
|
+
for (const [name, type] of Object.entries(defs)) {
|
|
119
|
+
sockets[name] = new OutputSocket(this, name, type);
|
|
120
|
+
}
|
|
121
|
+
return sockets;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Wires each entry in parameters to the corresponding GPU uniform.
|
|
125
|
+
* Called automatically by OutputNode.compile() — do not call manually.
|
|
126
|
+
* After wiring, reading/writing parameters[name] reads/writes the live uniform value.
|
|
127
|
+
*/
|
|
128
|
+
_wireParameters(uniforms) {
|
|
129
|
+
for (const [paramName, uniformName] of this._uniformMap.entries()) {
|
|
130
|
+
if (uniformName in uniforms) {
|
|
131
|
+
if (this._colorParams.has(paramName)) {
|
|
132
|
+
Object.defineProperty(this.parameters, paramName, {
|
|
133
|
+
get: () => uniforms[uniformName].value,
|
|
134
|
+
set: (v) => { uniforms[uniformName].value = v; },
|
|
135
|
+
enumerable: true,
|
|
136
|
+
configurable: true,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
Object.defineProperty(this.parameters, paramName, {
|
|
141
|
+
get: () => uniforms[uniformName].value,
|
|
142
|
+
set: (v) => { uniforms[uniformName].value = v; },
|
|
143
|
+
enumerable: true,
|
|
144
|
+
configurable: true,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* When true, compileDefs() output is unique per instance
|
|
153
|
+
* and is not deduplicated by the CompileContext.
|
|
154
|
+
* Use for nodes whose function body contains baked-in values (e.g. ColorRamp).
|
|
155
|
+
*/
|
|
156
|
+
ShaderNode.instanceSpecificDef = false;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface ShaderNodeErrorOptions {
|
|
2
|
+
nodeType: string;
|
|
3
|
+
nodeId: string;
|
|
4
|
+
inputName?: string;
|
|
5
|
+
problem: string;
|
|
6
|
+
fix?: string;
|
|
7
|
+
graphPath?: string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Structured error thrown by the shader node system.
|
|
11
|
+
* Always catchable — never writes to console directly.
|
|
12
|
+
*
|
|
13
|
+
* Message detail is controlled by ShaderConfig.errorLevel:
|
|
14
|
+
* verbose — full message with fix suggestions and graph path
|
|
15
|
+
* standard — node type, ID, and problem only
|
|
16
|
+
* off — errors are not thrown at all
|
|
17
|
+
*/
|
|
18
|
+
export declare class ShaderNodeError extends Error {
|
|
19
|
+
readonly nodeType: string;
|
|
20
|
+
readonly nodeId: string;
|
|
21
|
+
readonly inputName?: string;
|
|
22
|
+
readonly problem: string;
|
|
23
|
+
readonly fix?: string;
|
|
24
|
+
readonly graphPath?: string[];
|
|
25
|
+
constructor(opts: ShaderNodeErrorOptions);
|
|
26
|
+
private static buildMessage;
|
|
27
|
+
/** Throw only if errorLevel is not 'off'. */
|
|
28
|
+
static throw(opts: ShaderNodeErrorOptions): never;
|
|
29
|
+
/** Conditionally throw based on errorLevel. */
|
|
30
|
+
static throwIf(condition: boolean, opts: ShaderNodeErrorOptions): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ShaderNodeError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShaderNodeError.d.ts","sourceRoot":"","sources":["../../src/core/ShaderNodeError.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAK,MAAM,CAAA;IACnB,MAAM,EAAO,MAAM,CAAA;IACnB,SAAS,CAAC,EAAG,MAAM,CAAA;IACnB,OAAO,EAAM,MAAM,CAAA;IACnB,GAAG,CAAC,EAAS,MAAM,CAAA;IACnB,SAAS,CAAC,EAAG,MAAM,EAAE,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,QAAQ,EAAI,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAK,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAQ,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;gBAEjB,IAAI,EAAE,sBAAsB;IAYxC,OAAO,CAAC,MAAM,CAAC,YAAY;IAoC3B,6CAA6C;IAC7C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,KAAK;IAIjD,+CAA+C;IAC/C,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,GAAG,IAAI;CAKvE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ShaderConfig } from './ShaderConfig.js';
|
|
2
|
+
/**
|
|
3
|
+
* Structured error thrown by the shader node system.
|
|
4
|
+
* Always catchable — never writes to console directly.
|
|
5
|
+
*
|
|
6
|
+
* Message detail is controlled by ShaderConfig.errorLevel:
|
|
7
|
+
* verbose — full message with fix suggestions and graph path
|
|
8
|
+
* standard — node type, ID, and problem only
|
|
9
|
+
* off — errors are not thrown at all
|
|
10
|
+
*/
|
|
11
|
+
export class ShaderNodeError extends Error {
|
|
12
|
+
constructor(opts) {
|
|
13
|
+
super(ShaderNodeError.buildMessage(opts));
|
|
14
|
+
this.name = 'ShaderNodeError';
|
|
15
|
+
this.nodeType = opts.nodeType;
|
|
16
|
+
this.nodeId = opts.nodeId;
|
|
17
|
+
this.inputName = opts.inputName;
|
|
18
|
+
this.problem = opts.problem;
|
|
19
|
+
this.fix = opts.fix;
|
|
20
|
+
this.graphPath = opts.graphPath;
|
|
21
|
+
Object.setPrototypeOf(this, ShaderNodeError.prototype);
|
|
22
|
+
}
|
|
23
|
+
static buildMessage(opts) {
|
|
24
|
+
const level = ShaderConfig.errorLevel;
|
|
25
|
+
if (level === 'standard') {
|
|
26
|
+
const where = opts.inputName
|
|
27
|
+
? `[${opts.nodeType}:${opts.nodeId}] input "${opts.inputName}"`
|
|
28
|
+
: `[${opts.nodeType}:${opts.nodeId}]`;
|
|
29
|
+
return `ShaderNodeError — ${where}: ${opts.problem}`;
|
|
30
|
+
}
|
|
31
|
+
// verbose
|
|
32
|
+
const lines = [
|
|
33
|
+
'─'.repeat(60),
|
|
34
|
+
`ShaderNodeError`,
|
|
35
|
+
` Node : ${opts.nodeType}`,
|
|
36
|
+
` ID : ${opts.nodeId}`,
|
|
37
|
+
];
|
|
38
|
+
if (opts.inputName) {
|
|
39
|
+
lines.push(` Input : "${opts.inputName}"`);
|
|
40
|
+
}
|
|
41
|
+
lines.push('', ` Problem : ${opts.problem}`);
|
|
42
|
+
if (opts.fix) {
|
|
43
|
+
lines.push('', ` Fix : ${opts.fix}`);
|
|
44
|
+
}
|
|
45
|
+
if (opts.graphPath && opts.graphPath.length > 0) {
|
|
46
|
+
lines.push('', ` Path : ${opts.graphPath.join(' → ')}`);
|
|
47
|
+
}
|
|
48
|
+
lines.push('─'.repeat(60));
|
|
49
|
+
return lines.join('\n');
|
|
50
|
+
}
|
|
51
|
+
/** Throw only if errorLevel is not 'off'. */
|
|
52
|
+
static throw(opts) {
|
|
53
|
+
throw new ShaderNodeError(opts);
|
|
54
|
+
}
|
|
55
|
+
/** Conditionally throw based on errorLevel. */
|
|
56
|
+
static throwIf(condition, opts) {
|
|
57
|
+
if (condition && ShaderConfig.errorLevel !== 'off') {
|
|
58
|
+
throw new ShaderNodeError(opts);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Socket types mirror Blender's socket colours.
|
|
3
|
+
*
|
|
4
|
+
* shader — yellow — BSDF / material output
|
|
5
|
+
* color — yellow-green — vec3 RGB
|
|
6
|
+
* vector — purple — vec2 / vec3 spatial
|
|
7
|
+
* float — grey — single scalar
|
|
8
|
+
*/
|
|
9
|
+
export type SocketType = 'shader' | 'color' | 'vector' | 'float';
|
|
10
|
+
/** Maps SocketType to its GLSL primitive. */
|
|
11
|
+
export declare const SOCKET_GLSL_TYPE: Record<SocketType, string>;
|
|
12
|
+
//# sourceMappingURL=SocketType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SocketType.d.ts","sourceRoot":"","sources":["../../src/core/SocketType.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEhE,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKvD,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
export { ShaderConfig } from './core/ShaderConfig.js';
|
|
2
|
+
export { ShaderNodeError } from './core/ShaderNodeError.js';
|
|
3
|
+
export type { ErrorLevel } from './core/ShaderConfig.js';
|
|
4
|
+
export { ShaderNode } from './core/ShaderNode.js';
|
|
5
|
+
export { InputNode } from './core/InputNode.js';
|
|
6
|
+
export { OutputNode } from './core/OutputNode.js';
|
|
7
|
+
export { ProcessNode } from './core/ProcessNode.js';
|
|
8
|
+
export { InputSocket } from './core/InputSocket.js';
|
|
9
|
+
export { OutputSocket } from './core/OutputSocket.js';
|
|
10
|
+
export { SOCKET_GLSL_TYPE } from './core/SocketType.js';
|
|
11
|
+
export type { SocketType } from './core/SocketType.js';
|
|
12
|
+
export { CompileContext } from './core/CompileContext.js';
|
|
13
|
+
export type { CompiledMaterial } from './core/CompileContext.js';
|
|
14
|
+
export { TextureCoordinate } from './nodes/input/TextureCoordinate.js';
|
|
15
|
+
export { Value } from './nodes/input/Value.js';
|
|
16
|
+
export { RGB } from './nodes/input/RGB.js';
|
|
17
|
+
export { Geometry } from './nodes/input/Geometry.js';
|
|
18
|
+
export { LayerWeight } from './nodes/input/LayerWeight.js';
|
|
19
|
+
export { CameraData } from './nodes/input/CameraData.js';
|
|
20
|
+
export { UVMap } from './nodes/input/UVMap.js';
|
|
21
|
+
export { Tangent } from './nodes/input/Tangent.js';
|
|
22
|
+
export { ColorAttribute } from './nodes/input/ColorAttribute.js';
|
|
23
|
+
export { Attribute } from './nodes/input/Attribute.js';
|
|
24
|
+
export { Wireframe } from './nodes/input/Wireframe.js';
|
|
25
|
+
export { ObjectInfo } from './nodes/input/ObjectInfo.js';
|
|
26
|
+
export { OceanAttribute } from './nodes/input/OceanAttribute.js';
|
|
27
|
+
export { HairInfo } from './nodes/input/HairInfo.js';
|
|
28
|
+
export { ParticleInfo } from './nodes/input/ParticleInfo.js';
|
|
29
|
+
export { LightPath } from './nodes/input/LightPath.js';
|
|
30
|
+
export { MaterialOutput } from './nodes/output/MaterialOutput.js';
|
|
31
|
+
export { Displacement } from './nodes/output/Displacement.js';
|
|
32
|
+
export type { MaterialOutputInputs } from './nodes/output/MaterialOutput.js';
|
|
33
|
+
export type { DisplacementInputs } from './nodes/output/Displacement.js';
|
|
34
|
+
export { NoiseTexture } from './nodes/process/NoiseTexture.js';
|
|
35
|
+
export { AnimatedNoiseTexture } from './nodes/process/AnimatedNoiseTexture.js';
|
|
36
|
+
export { VoronoiTexture } from './nodes/process/VoronoiTexture.js';
|
|
37
|
+
export { WaveTexture } from './nodes/process/WaveTexture.js';
|
|
38
|
+
export { GradientTexture } from './nodes/process/GradientTexture.js';
|
|
39
|
+
export { BrickTexture } from './nodes/process/BrickTexture.js';
|
|
40
|
+
export { CheckerTexture } from './nodes/process/CheckerTexture.js';
|
|
41
|
+
export { MagicTexture } from './nodes/process/MagicTexture.js';
|
|
42
|
+
export { MusgraveTexture } from './nodes/process/MusgraveTexture.js';
|
|
43
|
+
export { WhiteNoise } from './nodes/process/WhiteNoise.js';
|
|
44
|
+
export { ImageTexture } from './nodes/process/ImageTexture.js';
|
|
45
|
+
export { EnvironmentTexture } from './nodes/process/EnvironmentTexture.js';
|
|
46
|
+
export { ColorRamp } from './nodes/process/ColorRamp.js';
|
|
47
|
+
export { MixRGB } from './nodes/process/MixRGB.js';
|
|
48
|
+
export { HueSaturationValue } from './nodes/process/HueSaturationValue.js';
|
|
49
|
+
export { BrightContrast } from './nodes/process/BrightContrast.js';
|
|
50
|
+
export { RGBtoBW } from './nodes/process/RGBtoBW.js';
|
|
51
|
+
export { Blackbody } from './nodes/process/Blackbody.js';
|
|
52
|
+
export { Gamma } from './nodes/process/Gamma.js';
|
|
53
|
+
export { InvertColor } from './nodes/process/InvertColor.js';
|
|
54
|
+
export { RGBCurves } from './nodes/process/RGBCurves.js';
|
|
55
|
+
export { Wavelength } from './nodes/process/Wavelength.js';
|
|
56
|
+
export { NormalMap } from './nodes/process/NormalMap.js';
|
|
57
|
+
export { Bump } from './nodes/process/Bump.js';
|
|
58
|
+
export { Mapping } from './nodes/process/Mapping.js';
|
|
59
|
+
export { VectorMath } from './nodes/process/VectorMath.js';
|
|
60
|
+
export { SeparateRGB } from './nodes/process/SeparateRGB.js';
|
|
61
|
+
export { CombineRGB } from './nodes/process/CombineRGB.js';
|
|
62
|
+
export { SeparateXYZ } from './nodes/process/SeparateXYZ.js';
|
|
63
|
+
export { CombineXYZ } from './nodes/process/CombineXYZ.js';
|
|
64
|
+
export { Normal } from './nodes/process/Normal.js';
|
|
65
|
+
export { VectorRotate } from './nodes/process/VectorRotate.js';
|
|
66
|
+
export { VectorTransform } from './nodes/process/VectorTransform.js';
|
|
67
|
+
export { VectorCurves } from './nodes/process/VectorCurves.js';
|
|
68
|
+
export { PrincipledBSDF } from './nodes/process/PrincipledBSDF.js';
|
|
69
|
+
export { Emission } from './nodes/process/Emission.js';
|
|
70
|
+
export { VolumeAbsorption } from './nodes/process/VolumeAbsorption.js';
|
|
71
|
+
export { VolumeScatter } from './nodes/process/VolumeScatter.js';
|
|
72
|
+
export { PrincipledVolume } from './nodes/process/PrincipledVolume.js';
|
|
73
|
+
export { MixShader } from './nodes/process/MixShader.js';
|
|
74
|
+
export { AddShader } from './nodes/process/AddShader.js';
|
|
75
|
+
export { Fresnel } from './nodes/process/Fresnel.js';
|
|
76
|
+
export { DiffuseBSDF } from './nodes/process/DiffuseBSDF.js';
|
|
77
|
+
export { GlossyBSDF } from './nodes/process/GlossyBSDF.js';
|
|
78
|
+
export { RefractionBSDF } from './nodes/process/RefractionBSDF.js';
|
|
79
|
+
export { GlassBSDF } from './nodes/process/GlassBSDF.js';
|
|
80
|
+
export { SheenBSDF } from './nodes/process/SheenBSDF.js';
|
|
81
|
+
export { SubsurfaceScattering } from './nodes/process/SubsurfaceScattering.js';
|
|
82
|
+
export { ToonBSDF } from './nodes/process/ToonBSDF.js';
|
|
83
|
+
export { SpecularBSDF } from './nodes/process/SpecularBSDF.js';
|
|
84
|
+
export { TranslucentBSDF } from './nodes/process/TranslucentBSDF.js';
|
|
85
|
+
export { PrincipledHair } from './nodes/process/PrincipledHair.js';
|
|
86
|
+
export { Math as ShaderMath } from './nodes/process/Math.js';
|
|
87
|
+
export { Clamp } from './nodes/process/Clamp.js';
|
|
88
|
+
export { MapRange } from './nodes/process/MapRange.js';
|
|
89
|
+
export { FloatCurve } from './nodes/process/FloatCurve.js';
|
|
90
|
+
export { ShaderToRGB } from './nodes/process/ShaderToRGB.js';
|
|
91
|
+
export { CombineColor } from './nodes/process/CombineColor.js';
|
|
92
|
+
export { SeparateColor } from './nodes/process/SeparateColor.js';
|
|
93
|
+
export { HashValue } from './nodes/process/HashValue.js';
|
|
94
|
+
export { ShaderScript } from './nodes/process/ShaderScript.js';
|
|
95
|
+
export type { ShaderScriptConfig, ScriptInputDecl, ScriptOutputDecl } from './nodes/process/ShaderScript.js';
|
|
96
|
+
export { ScreenCamera } from './nodes/input/ScreenCamera.js';
|
|
97
|
+
export { SchwarzschildMarch } from './nodes/process/SchwarzschildMarch.js';
|
|
98
|
+
export type { SchwarzschildMarchInputs } from './nodes/process/SchwarzschildMarch.js';
|
|
99
|
+
export { ScreenOutput } from './nodes/output/ScreenOutput.js';
|
|
100
|
+
export { AmbientOcclusion } from './nodes/shader/AmbientOcclusion.js';
|
|
101
|
+
export type { AmbientOcclusionInputs } from './nodes/shader/AmbientOcclusion.js';
|
|
102
|
+
export { RayPortal } from './nodes/shader/RayPortal.js';
|
|
103
|
+
export type { RayPortalInputs } from './nodes/shader/RayPortal.js';
|
|
104
|
+
export type { NoiseTextureInputs } from './nodes/process/NoiseTexture.js';
|
|
105
|
+
export type { AnimatedNoiseTextureInputs } from './nodes/process/AnimatedNoiseTexture.js';
|
|
106
|
+
export type { VoronoiTextureInputs, VoronoiFeature } from './nodes/process/VoronoiTexture.js';
|
|
107
|
+
export type { WaveTextureInputs, WaveType, WaveProfile } from './nodes/process/WaveTexture.js';
|
|
108
|
+
export type { GradientTextureInputs, GradientType } from './nodes/process/GradientTexture.js';
|
|
109
|
+
export type { BrickTextureInputs } from './nodes/process/BrickTexture.js';
|
|
110
|
+
export type { CheckerTextureInputs } from './nodes/process/CheckerTexture.js';
|
|
111
|
+
export type { MagicTextureInputs } from './nodes/process/MagicTexture.js';
|
|
112
|
+
export type { MusgraveTextureInputs, MusgraveType } from './nodes/process/MusgraveTexture.js';
|
|
113
|
+
export type { WhiteNoiseInputs } from './nodes/process/WhiteNoise.js';
|
|
114
|
+
export type { ImageTextureInputs } from './nodes/process/ImageTexture.js';
|
|
115
|
+
export type { EnvironmentTextureInputs } from './nodes/process/EnvironmentTexture.js';
|
|
116
|
+
export type { ColorRampInputs } from './nodes/process/ColorRamp.js';
|
|
117
|
+
export type { MixRGBInputs, MixRGBMode } from './nodes/process/MixRGB.js';
|
|
118
|
+
export type { HueSaturationValueInputs } from './nodes/process/HueSaturationValue.js';
|
|
119
|
+
export type { BrightContrastInputs } from './nodes/process/BrightContrast.js';
|
|
120
|
+
export type { RGBtoBWInputs } from './nodes/process/RGBtoBW.js';
|
|
121
|
+
export type { BlackbodyInputs } from './nodes/process/Blackbody.js';
|
|
122
|
+
export type { GammaInputs } from './nodes/process/Gamma.js';
|
|
123
|
+
export type { InvertColorInputs } from './nodes/process/InvertColor.js';
|
|
124
|
+
export type { RGBCurvesInputs } from './nodes/process/RGBCurves.js';
|
|
125
|
+
export type { WavelengthInputs } from './nodes/process/Wavelength.js';
|
|
126
|
+
export type { NormalMapInputs } from './nodes/process/NormalMap.js';
|
|
127
|
+
export type { BumpInputs } from './nodes/process/Bump.js';
|
|
128
|
+
export type { MappingInputs, MappingMode } from './nodes/process/Mapping.js';
|
|
129
|
+
export type { VectorMathInputs, VectorMathMode } from './nodes/process/VectorMath.js';
|
|
130
|
+
export type { SeparateRGBInputs } from './nodes/process/SeparateRGB.js';
|
|
131
|
+
export type { CombineRGBInputs } from './nodes/process/CombineRGB.js';
|
|
132
|
+
export type { SeparateXYZInputs } from './nodes/process/SeparateXYZ.js';
|
|
133
|
+
export type { CombineXYZInputs } from './nodes/process/CombineXYZ.js';
|
|
134
|
+
export type { NormalInputs } from './nodes/process/Normal.js';
|
|
135
|
+
export type { VectorRotateInputs, VectorRotateMode } from './nodes/process/VectorRotate.js';
|
|
136
|
+
export type { VectorTransformInputs, VectorTransformSpace, VectorTransformType } from './nodes/process/VectorTransform.js';
|
|
137
|
+
export type { VectorCurvesInputs } from './nodes/process/VectorCurves.js';
|
|
138
|
+
export type { PrincipledBSDFInputs } from './nodes/process/PrincipledBSDF.js';
|
|
139
|
+
export type { EmissionInputs } from './nodes/process/Emission.js';
|
|
140
|
+
export type { VolumeAbsorptionInputs } from './nodes/process/VolumeAbsorption.js';
|
|
141
|
+
export type { VolumeScatterInputs } from './nodes/process/VolumeScatter.js';
|
|
142
|
+
export type { PrincipledVolumeInputs } from './nodes/process/PrincipledVolume.js';
|
|
143
|
+
export type { MixShaderInputs } from './nodes/process/MixShader.js';
|
|
144
|
+
export type { AddShaderInputs } from './nodes/process/AddShader.js';
|
|
145
|
+
export type { FresnelInputs } from './nodes/process/Fresnel.js';
|
|
146
|
+
export type { DiffuseBSDFInputs } from './nodes/process/DiffuseBSDF.js';
|
|
147
|
+
export type { GlossyBSDFInputs } from './nodes/process/GlossyBSDF.js';
|
|
148
|
+
export type { RefractionBSDFInputs } from './nodes/process/RefractionBSDF.js';
|
|
149
|
+
export type { GlassBSDFInputs } from './nodes/process/GlassBSDF.js';
|
|
150
|
+
export type { SheenBSDFInputs } from './nodes/process/SheenBSDF.js';
|
|
151
|
+
export type { SubsurfaceScatteringInputs } from './nodes/process/SubsurfaceScattering.js';
|
|
152
|
+
export type { ToonBSDFInputs } from './nodes/process/ToonBSDF.js';
|
|
153
|
+
export type { SpecularBSDFInputs } from './nodes/process/SpecularBSDF.js';
|
|
154
|
+
export type { TranslucentBSDFInputs } from './nodes/process/TranslucentBSDF.js';
|
|
155
|
+
export type { PrincipledHairInputs } from './nodes/process/PrincipledHair.js';
|
|
156
|
+
export type { MathInputs, MathMode } from './nodes/process/Math.js';
|
|
157
|
+
export type { ClampInputs, ClampMode } from './nodes/process/Clamp.js';
|
|
158
|
+
export type { MapRangeInputs, MapRangeMode } from './nodes/process/MapRange.js';
|
|
159
|
+
export type { FloatCurveInputs } from './nodes/process/FloatCurve.js';
|
|
160
|
+
export type { ShaderToRGBInputs } from './nodes/process/ShaderToRGB.js';
|
|
161
|
+
export type { CombineColorInputs, CombineColorMode } from './nodes/process/CombineColor.js';
|
|
162
|
+
export type { SeparateColorInputs, SeparateColorMode } from './nodes/process/SeparateColor.js';
|
|
163
|
+
export type { HashValueInputs } from './nodes/process/HashValue.js';
|
|
164
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|