@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.
Files changed (297) hide show
  1. package/README.md +90 -0
  2. package/dist/bundle.js +5578 -0
  3. package/dist/core/CompileContext.d.ts +60 -0
  4. package/dist/core/CompileContext.d.ts.map +1 -0
  5. package/dist/core/CompileContext.js +276 -0
  6. package/dist/core/InputNode.d.ts +11 -0
  7. package/dist/core/InputNode.d.ts.map +1 -0
  8. package/dist/core/InputNode.js +13 -0
  9. package/dist/core/InputSocket.d.ts +21 -0
  10. package/dist/core/InputSocket.d.ts.map +1 -0
  11. package/dist/core/InputSocket.js +23 -0
  12. package/dist/core/OutputNode.d.ts +30 -0
  13. package/dist/core/OutputNode.d.ts.map +1 -0
  14. package/dist/core/OutputNode.js +60 -0
  15. package/dist/core/OutputSocket.d.ts +18 -0
  16. package/dist/core/OutputSocket.d.ts.map +1 -0
  17. package/dist/core/OutputSocket.js +16 -0
  18. package/dist/core/ProcessNode.d.ts +8 -0
  19. package/dist/core/ProcessNode.d.ts.map +1 -0
  20. package/dist/core/ProcessNode.js +7 -0
  21. package/dist/core/ShaderConfig.d.ts +13 -0
  22. package/dist/core/ShaderConfig.d.ts.map +1 -0
  23. package/dist/core/ShaderConfig.js +11 -0
  24. package/dist/core/ShaderNode.d.ts +114 -0
  25. package/dist/core/ShaderNode.d.ts.map +1 -0
  26. package/dist/core/ShaderNode.js +156 -0
  27. package/dist/core/ShaderNodeError.d.ts +32 -0
  28. package/dist/core/ShaderNodeError.d.ts.map +1 -0
  29. package/dist/core/ShaderNodeError.js +61 -0
  30. package/dist/core/SocketType.d.ts +12 -0
  31. package/dist/core/SocketType.d.ts.map +1 -0
  32. package/dist/core/SocketType.js +7 -0
  33. package/dist/index.d.ts +164 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +108 -0
  36. package/dist/nodes/input/Attribute.d.ts +45 -0
  37. package/dist/nodes/input/Attribute.d.ts.map +1 -0
  38. package/dist/nodes/input/Attribute.js +58 -0
  39. package/dist/nodes/input/CameraData.d.ts +21 -0
  40. package/dist/nodes/input/CameraData.d.ts.map +1 -0
  41. package/dist/nodes/input/CameraData.js +33 -0
  42. package/dist/nodes/input/ColorAttribute.d.ts +28 -0
  43. package/dist/nodes/input/ColorAttribute.d.ts.map +1 -0
  44. package/dist/nodes/input/ColorAttribute.js +32 -0
  45. package/dist/nodes/input/Geometry.d.ts +23 -0
  46. package/dist/nodes/input/Geometry.d.ts.map +1 -0
  47. package/dist/nodes/input/Geometry.js +38 -0
  48. package/dist/nodes/input/HairInfo.d.ts +38 -0
  49. package/dist/nodes/input/HairInfo.d.ts.map +1 -0
  50. package/dist/nodes/input/HairInfo.js +50 -0
  51. package/dist/nodes/input/LayerWeight.d.ts +26 -0
  52. package/dist/nodes/input/LayerWeight.d.ts.map +1 -0
  53. package/dist/nodes/input/LayerWeight.js +35 -0
  54. package/dist/nodes/input/LightPath.d.ts +60 -0
  55. package/dist/nodes/input/LightPath.d.ts.map +1 -0
  56. package/dist/nodes/input/LightPath.js +112 -0
  57. package/dist/nodes/input/ObjectInfo.d.ts +22 -0
  58. package/dist/nodes/input/ObjectInfo.d.ts.map +1 -0
  59. package/dist/nodes/input/ObjectInfo.js +41 -0
  60. package/dist/nodes/input/OceanAttribute.d.ts +32 -0
  61. package/dist/nodes/input/OceanAttribute.d.ts.map +1 -0
  62. package/dist/nodes/input/OceanAttribute.js +38 -0
  63. package/dist/nodes/input/ParticleInfo.d.ts +31 -0
  64. package/dist/nodes/input/ParticleInfo.d.ts.map +1 -0
  65. package/dist/nodes/input/ParticleInfo.js +44 -0
  66. package/dist/nodes/input/RGB.d.ts +19 -0
  67. package/dist/nodes/input/RGB.d.ts.map +1 -0
  68. package/dist/nodes/input/RGB.js +23 -0
  69. package/dist/nodes/input/ScreenCamera.d.ts +37 -0
  70. package/dist/nodes/input/ScreenCamera.d.ts.map +1 -0
  71. package/dist/nodes/input/ScreenCamera.js +59 -0
  72. package/dist/nodes/input/Tangent.d.ts +21 -0
  73. package/dist/nodes/input/Tangent.d.ts.map +1 -0
  74. package/dist/nodes/input/Tangent.js +30 -0
  75. package/dist/nodes/input/TextureCoordinate.d.ts +17 -0
  76. package/dist/nodes/input/TextureCoordinate.d.ts.map +1 -0
  77. package/dist/nodes/input/TextureCoordinate.js +24 -0
  78. package/dist/nodes/input/UVMap.d.ts +20 -0
  79. package/dist/nodes/input/UVMap.d.ts.map +1 -0
  80. package/dist/nodes/input/UVMap.js +23 -0
  81. package/dist/nodes/input/Value.d.ts +19 -0
  82. package/dist/nodes/input/Value.d.ts.map +1 -0
  83. package/dist/nodes/input/Value.js +22 -0
  84. package/dist/nodes/input/Wireframe.d.ts +25 -0
  85. package/dist/nodes/input/Wireframe.d.ts.map +1 -0
  86. package/dist/nodes/input/Wireframe.js +30 -0
  87. package/dist/nodes/output/Displacement.d.ts +28 -0
  88. package/dist/nodes/output/Displacement.d.ts.map +1 -0
  89. package/dist/nodes/output/Displacement.js +34 -0
  90. package/dist/nodes/output/MaterialOutput.d.ts +43 -0
  91. package/dist/nodes/output/MaterialOutput.d.ts.map +1 -0
  92. package/dist/nodes/output/MaterialOutput.js +118 -0
  93. package/dist/nodes/output/ScreenOutput.d.ts +38 -0
  94. package/dist/nodes/output/ScreenOutput.d.ts.map +1 -0
  95. package/dist/nodes/output/ScreenOutput.js +88 -0
  96. package/dist/nodes/process/AddShader.d.ts +30 -0
  97. package/dist/nodes/process/AddShader.d.ts.map +1 -0
  98. package/dist/nodes/process/AddShader.js +36 -0
  99. package/dist/nodes/process/AnimatedNoiseTexture.d.ts +39 -0
  100. package/dist/nodes/process/AnimatedNoiseTexture.d.ts.map +1 -0
  101. package/dist/nodes/process/AnimatedNoiseTexture.js +93 -0
  102. package/dist/nodes/process/Blackbody.d.ts +29 -0
  103. package/dist/nodes/process/Blackbody.d.ts.map +1 -0
  104. package/dist/nodes/process/Blackbody.js +50 -0
  105. package/dist/nodes/process/BrickTexture.d.ts +36 -0
  106. package/dist/nodes/process/BrickTexture.d.ts.map +1 -0
  107. package/dist/nodes/process/BrickTexture.js +71 -0
  108. package/dist/nodes/process/BrightContrast.d.ts +30 -0
  109. package/dist/nodes/process/BrightContrast.d.ts.map +1 -0
  110. package/dist/nodes/process/BrightContrast.js +41 -0
  111. package/dist/nodes/process/Bump.d.ts +31 -0
  112. package/dist/nodes/process/Bump.d.ts.map +1 -0
  113. package/dist/nodes/process/Bump.js +65 -0
  114. package/dist/nodes/process/CheckerTexture.d.ts +30 -0
  115. package/dist/nodes/process/CheckerTexture.d.ts.map +1 -0
  116. package/dist/nodes/process/CheckerTexture.js +48 -0
  117. package/dist/nodes/process/Clamp.d.ts +32 -0
  118. package/dist/nodes/process/Clamp.d.ts.map +1 -0
  119. package/dist/nodes/process/Clamp.js +37 -0
  120. package/dist/nodes/process/ColorRamp.d.ts +28 -0
  121. package/dist/nodes/process/ColorRamp.d.ts.map +1 -0
  122. package/dist/nodes/process/ColorRamp.js +49 -0
  123. package/dist/nodes/process/CombineColor.d.ts +34 -0
  124. package/dist/nodes/process/CombineColor.d.ts.map +1 -0
  125. package/dist/nodes/process/CombineColor.js +69 -0
  126. package/dist/nodes/process/CombineRGB.d.ts +29 -0
  127. package/dist/nodes/process/CombineRGB.d.ts.map +1 -0
  128. package/dist/nodes/process/CombineRGB.js +33 -0
  129. package/dist/nodes/process/CombineXYZ.d.ts +29 -0
  130. package/dist/nodes/process/CombineXYZ.d.ts.map +1 -0
  131. package/dist/nodes/process/CombineXYZ.js +33 -0
  132. package/dist/nodes/process/DiffuseBSDF.d.ts +30 -0
  133. package/dist/nodes/process/DiffuseBSDF.d.ts.map +1 -0
  134. package/dist/nodes/process/DiffuseBSDF.js +43 -0
  135. package/dist/nodes/process/Emission.d.ts +30 -0
  136. package/dist/nodes/process/Emission.d.ts.map +1 -0
  137. package/dist/nodes/process/Emission.js +36 -0
  138. package/dist/nodes/process/EnvironmentTexture.d.ts +41 -0
  139. package/dist/nodes/process/EnvironmentTexture.d.ts.map +1 -0
  140. package/dist/nodes/process/EnvironmentTexture.js +65 -0
  141. package/dist/nodes/process/FloatCurve.d.ts +34 -0
  142. package/dist/nodes/process/FloatCurve.d.ts.map +1 -0
  143. package/dist/nodes/process/FloatCurve.js +46 -0
  144. package/dist/nodes/process/Fresnel.d.ts +36 -0
  145. package/dist/nodes/process/Fresnel.d.ts.map +1 -0
  146. package/dist/nodes/process/Fresnel.js +53 -0
  147. package/dist/nodes/process/Gamma.d.ts +29 -0
  148. package/dist/nodes/process/Gamma.d.ts.map +1 -0
  149. package/dist/nodes/process/Gamma.js +35 -0
  150. package/dist/nodes/process/GlassBSDF.d.ts +31 -0
  151. package/dist/nodes/process/GlassBSDF.d.ts.map +1 -0
  152. package/dist/nodes/process/GlassBSDF.js +51 -0
  153. package/dist/nodes/process/GlossyBSDF.d.ts +30 -0
  154. package/dist/nodes/process/GlossyBSDF.d.ts.map +1 -0
  155. package/dist/nodes/process/GlossyBSDF.js +50 -0
  156. package/dist/nodes/process/GradientTexture.d.ts +31 -0
  157. package/dist/nodes/process/GradientTexture.d.ts.map +1 -0
  158. package/dist/nodes/process/GradientTexture.js +49 -0
  159. package/dist/nodes/process/HashValue.d.ts +30 -0
  160. package/dist/nodes/process/HashValue.d.ts.map +1 -0
  161. package/dist/nodes/process/HashValue.js +34 -0
  162. package/dist/nodes/process/HueSaturationValue.d.ts +32 -0
  163. package/dist/nodes/process/HueSaturationValue.d.ts.map +1 -0
  164. package/dist/nodes/process/HueSaturationValue.js +58 -0
  165. package/dist/nodes/process/ImageTexture.d.ts +34 -0
  166. package/dist/nodes/process/ImageTexture.d.ts.map +1 -0
  167. package/dist/nodes/process/ImageTexture.js +53 -0
  168. package/dist/nodes/process/InvertColor.d.ts +29 -0
  169. package/dist/nodes/process/InvertColor.d.ts.map +1 -0
  170. package/dist/nodes/process/InvertColor.js +35 -0
  171. package/dist/nodes/process/MagicTexture.d.ts +30 -0
  172. package/dist/nodes/process/MagicTexture.d.ts.map +1 -0
  173. package/dist/nodes/process/MagicTexture.js +54 -0
  174. package/dist/nodes/process/MapRange.d.ts +38 -0
  175. package/dist/nodes/process/MapRange.d.ts.map +1 -0
  176. package/dist/nodes/process/MapRange.js +52 -0
  177. package/dist/nodes/process/Mapping.d.ts +37 -0
  178. package/dist/nodes/process/Mapping.d.ts.map +1 -0
  179. package/dist/nodes/process/Mapping.js +57 -0
  180. package/dist/nodes/process/Math.d.ts +40 -0
  181. package/dist/nodes/process/Math.d.ts.map +1 -0
  182. package/dist/nodes/process/Math.js +100 -0
  183. package/dist/nodes/process/MixRGB.d.ts +35 -0
  184. package/dist/nodes/process/MixRGB.d.ts.map +1 -0
  185. package/dist/nodes/process/MixRGB.js +63 -0
  186. package/dist/nodes/process/MixShader.d.ts +35 -0
  187. package/dist/nodes/process/MixShader.d.ts.map +1 -0
  188. package/dist/nodes/process/MixShader.js +47 -0
  189. package/dist/nodes/process/MusgraveTexture.d.ts +36 -0
  190. package/dist/nodes/process/MusgraveTexture.d.ts.map +1 -0
  191. package/dist/nodes/process/MusgraveTexture.js +70 -0
  192. package/dist/nodes/process/NoiseTexture.d.ts +31 -0
  193. package/dist/nodes/process/NoiseTexture.d.ts.map +1 -0
  194. package/dist/nodes/process/NoiseTexture.js +78 -0
  195. package/dist/nodes/process/Normal.d.ts +30 -0
  196. package/dist/nodes/process/Normal.d.ts.map +1 -0
  197. package/dist/nodes/process/Normal.js +38 -0
  198. package/dist/nodes/process/NormalMap.d.ts +34 -0
  199. package/dist/nodes/process/NormalMap.d.ts.map +1 -0
  200. package/dist/nodes/process/NormalMap.js +54 -0
  201. package/dist/nodes/process/PrincipledBSDF.d.ts +32 -0
  202. package/dist/nodes/process/PrincipledBSDF.d.ts.map +1 -0
  203. package/dist/nodes/process/PrincipledBSDF.js +75 -0
  204. package/dist/nodes/process/PrincipledHair.d.ts +63 -0
  205. package/dist/nodes/process/PrincipledHair.d.ts.map +1 -0
  206. package/dist/nodes/process/PrincipledHair.js +137 -0
  207. package/dist/nodes/process/PrincipledVolume.d.ts +37 -0
  208. package/dist/nodes/process/PrincipledVolume.d.ts.map +1 -0
  209. package/dist/nodes/process/PrincipledVolume.js +67 -0
  210. package/dist/nodes/process/RGBCurves.d.ts +45 -0
  211. package/dist/nodes/process/RGBCurves.d.ts.map +1 -0
  212. package/dist/nodes/process/RGBCurves.js +81 -0
  213. package/dist/nodes/process/RGBtoBW.d.ts +28 -0
  214. package/dist/nodes/process/RGBtoBW.d.ts.map +1 -0
  215. package/dist/nodes/process/RGBtoBW.js +31 -0
  216. package/dist/nodes/process/RefractionBSDF.d.ts +32 -0
  217. package/dist/nodes/process/RefractionBSDF.d.ts.map +1 -0
  218. package/dist/nodes/process/RefractionBSDF.js +46 -0
  219. package/dist/nodes/process/SchwarzschildMarch.d.ts +56 -0
  220. package/dist/nodes/process/SchwarzschildMarch.d.ts.map +1 -0
  221. package/dist/nodes/process/SchwarzschildMarch.js +306 -0
  222. package/dist/nodes/process/SeparateColor.d.ts +33 -0
  223. package/dist/nodes/process/SeparateColor.d.ts.map +1 -0
  224. package/dist/nodes/process/SeparateColor.js +79 -0
  225. package/dist/nodes/process/SeparateRGB.d.ts +27 -0
  226. package/dist/nodes/process/SeparateRGB.d.ts.map +1 -0
  227. package/dist/nodes/process/SeparateRGB.js +31 -0
  228. package/dist/nodes/process/SeparateXYZ.d.ts +27 -0
  229. package/dist/nodes/process/SeparateXYZ.d.ts.map +1 -0
  230. package/dist/nodes/process/SeparateXYZ.js +31 -0
  231. package/dist/nodes/process/ShaderScript.d.ts +95 -0
  232. package/dist/nodes/process/ShaderScript.d.ts.map +1 -0
  233. package/dist/nodes/process/ShaderScript.js +119 -0
  234. package/dist/nodes/process/ShaderToRGB.d.ts +28 -0
  235. package/dist/nodes/process/ShaderToRGB.d.ts.map +1 -0
  236. package/dist/nodes/process/ShaderToRGB.js +33 -0
  237. package/dist/nodes/process/SheenBSDF.d.ts +31 -0
  238. package/dist/nodes/process/SheenBSDF.d.ts.map +1 -0
  239. package/dist/nodes/process/SheenBSDF.js +49 -0
  240. package/dist/nodes/process/SpecularBSDF.d.ts +32 -0
  241. package/dist/nodes/process/SpecularBSDF.d.ts.map +1 -0
  242. package/dist/nodes/process/SpecularBSDF.js +54 -0
  243. package/dist/nodes/process/SubsurfaceScattering.d.ts +33 -0
  244. package/dist/nodes/process/SubsurfaceScattering.d.ts.map +1 -0
  245. package/dist/nodes/process/SubsurfaceScattering.js +46 -0
  246. package/dist/nodes/process/ToonBSDF.d.ts +31 -0
  247. package/dist/nodes/process/ToonBSDF.d.ts.map +1 -0
  248. package/dist/nodes/process/ToonBSDF.js +44 -0
  249. package/dist/nodes/process/TranslucentBSDF.d.ts +29 -0
  250. package/dist/nodes/process/TranslucentBSDF.d.ts.map +1 -0
  251. package/dist/nodes/process/TranslucentBSDF.js +39 -0
  252. package/dist/nodes/process/VectorCurves.d.ts +42 -0
  253. package/dist/nodes/process/VectorCurves.d.ts.map +1 -0
  254. package/dist/nodes/process/VectorCurves.js +71 -0
  255. package/dist/nodes/process/VectorMath.d.ts +38 -0
  256. package/dist/nodes/process/VectorMath.d.ts.map +1 -0
  257. package/dist/nodes/process/VectorMath.js +105 -0
  258. package/dist/nodes/process/VectorRotate.d.ts +34 -0
  259. package/dist/nodes/process/VectorRotate.d.ts.map +1 -0
  260. package/dist/nodes/process/VectorRotate.js +52 -0
  261. package/dist/nodes/process/VectorTransform.d.ts +36 -0
  262. package/dist/nodes/process/VectorTransform.d.ts.map +1 -0
  263. package/dist/nodes/process/VectorTransform.js +48 -0
  264. package/dist/nodes/process/VolumeAbsorption.d.ts +30 -0
  265. package/dist/nodes/process/VolumeAbsorption.d.ts.map +1 -0
  266. package/dist/nodes/process/VolumeAbsorption.js +36 -0
  267. package/dist/nodes/process/VolumeScatter.d.ts +31 -0
  268. package/dist/nodes/process/VolumeScatter.d.ts.map +1 -0
  269. package/dist/nodes/process/VolumeScatter.js +42 -0
  270. package/dist/nodes/process/VoronoiTexture.d.ts +38 -0
  271. package/dist/nodes/process/VoronoiTexture.d.ts.map +1 -0
  272. package/dist/nodes/process/VoronoiTexture.js +123 -0
  273. package/dist/nodes/process/WaveTexture.d.ts +39 -0
  274. package/dist/nodes/process/WaveTexture.d.ts.map +1 -0
  275. package/dist/nodes/process/WaveTexture.js +77 -0
  276. package/dist/nodes/process/Wavelength.d.ts +28 -0
  277. package/dist/nodes/process/Wavelength.d.ts.map +1 -0
  278. package/dist/nodes/process/Wavelength.js +43 -0
  279. package/dist/nodes/process/WhiteNoise.d.ts +27 -0
  280. package/dist/nodes/process/WhiteNoise.d.ts.map +1 -0
  281. package/dist/nodes/process/WhiteNoise.js +44 -0
  282. package/dist/nodes/shader/AmbientOcclusion.d.ts +47 -0
  283. package/dist/nodes/shader/AmbientOcclusion.d.ts.map +1 -0
  284. package/dist/nodes/shader/AmbientOcclusion.js +128 -0
  285. package/dist/nodes/shader/RayPortal.d.ts +57 -0
  286. package/dist/nodes/shader/RayPortal.d.ts.map +1 -0
  287. package/dist/nodes/shader/RayPortal.js +56 -0
  288. package/dist/shaders/color.d.ts +12 -0
  289. package/dist/shaders/color.d.ts.map +1 -0
  290. package/dist/shaders/color.js +42 -0
  291. package/dist/shaders/noise.d.ts +12 -0
  292. package/dist/shaders/noise.d.ts.map +1 -0
  293. package/dist/shaders/noise.js +70 -0
  294. package/dist/types/shader.d.ts +17 -0
  295. package/dist/types/shader.d.ts.map +1 -0
  296. package/dist/types/shader.js +1 -0
  297. 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"}
@@ -0,0 +1,7 @@
1
+ /** Maps SocketType to its GLSL primitive. */
2
+ export const SOCKET_GLSL_TYPE = {
3
+ shader: 'vec3',
4
+ color: 'vec3',
5
+ vector: 'vec2',
6
+ float: 'float',
7
+ };
@@ -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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"}