@needle-tools/three 0.162.2 → 0.162.3

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 (955) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +86 -86
  3. package/build/three.cjs +53266 -53266
  4. package/build/three.module.js +53266 -53266
  5. package/examples/fonts/LICENSE +13 -13
  6. package/examples/fonts/README.md +11 -11
  7. package/examples/fonts/droid/NOTICE +190 -190
  8. package/examples/fonts/droid/README.txt +18 -18
  9. package/examples/fonts/ttf/README.md +9 -9
  10. package/examples/jsm/Addons.js +295 -295
  11. package/examples/jsm/animation/AnimationClipCreator.js +116 -116
  12. package/examples/jsm/animation/CCDIKSolver.js +482 -482
  13. package/examples/jsm/animation/MMDAnimationHelper.js +1207 -1207
  14. package/examples/jsm/animation/MMDPhysics.js +1406 -1406
  15. package/examples/jsm/cameras/CinematicCamera.js +208 -208
  16. package/examples/jsm/capabilities/WebGL.js +108 -108
  17. package/examples/jsm/capabilities/WebGPU.js +57 -57
  18. package/examples/jsm/controls/ArcballControls.js +3224 -3224
  19. package/examples/jsm/controls/DragControls.js +282 -282
  20. package/examples/jsm/controls/FirstPersonControls.js +325 -325
  21. package/examples/jsm/controls/FlyControls.js +326 -326
  22. package/examples/jsm/controls/MapControls.js +28 -28
  23. package/examples/jsm/controls/OrbitControls.js +1548 -1548
  24. package/examples/jsm/controls/PointerLockControls.js +162 -162
  25. package/examples/jsm/controls/TrackballControls.js +828 -828
  26. package/examples/jsm/controls/TransformControls.js +1573 -1573
  27. package/examples/jsm/csm/CSM.js +384 -384
  28. package/examples/jsm/csm/CSMFrustum.js +152 -152
  29. package/examples/jsm/csm/CSMHelper.js +193 -193
  30. package/examples/jsm/csm/CSMShader.js +295 -295
  31. package/examples/jsm/curves/CurveExtras.js +422 -422
  32. package/examples/jsm/curves/NURBSCurve.js +80 -80
  33. package/examples/jsm/curves/NURBSSurface.js +52 -52
  34. package/examples/jsm/curves/NURBSUtils.js +542 -542
  35. package/examples/jsm/curves/NURBSVolume.js +62 -62
  36. package/examples/jsm/effects/AnaglyphEffect.js +154 -154
  37. package/examples/jsm/effects/AsciiEffect.js +263 -263
  38. package/examples/jsm/effects/OutlineEffect.js +539 -539
  39. package/examples/jsm/effects/ParallaxBarrierEffect.js +119 -119
  40. package/examples/jsm/effects/PeppersGhostEffect.js +153 -153
  41. package/examples/jsm/effects/StereoEffect.js +55 -55
  42. package/examples/jsm/environments/DebugEnvironment.js +52 -52
  43. package/examples/jsm/environments/RoomEnvironment.js +148 -148
  44. package/examples/jsm/exporters/DRACOExporter.js +267 -267
  45. package/examples/jsm/exporters/EXRExporter.js +579 -579
  46. package/examples/jsm/exporters/GLTFExporter.js +3322 -3321
  47. package/examples/jsm/exporters/KTX2Exporter.js +292 -292
  48. package/examples/jsm/exporters/MMDExporter.js +217 -217
  49. package/examples/jsm/exporters/OBJExporter.js +284 -284
  50. package/examples/jsm/exporters/PLYExporter.js +528 -528
  51. package/examples/jsm/exporters/STLExporter.js +199 -199
  52. package/examples/jsm/exporters/USDZExporter.js +720 -720
  53. package/examples/jsm/geometries/BoxLineGeometry.js +69 -69
  54. package/examples/jsm/geometries/ConvexGeometry.js +53 -53
  55. package/examples/jsm/geometries/DecalGeometry.js +356 -356
  56. package/examples/jsm/geometries/InstancedPointsGeometry.js +174 -174
  57. package/examples/jsm/geometries/ParametricGeometries.js +254 -254
  58. package/examples/jsm/geometries/ParametricGeometry.js +139 -139
  59. package/examples/jsm/geometries/RoundedBoxGeometry.js +155 -155
  60. package/examples/jsm/geometries/SDFGeometryGenerator.js +144 -144
  61. package/examples/jsm/geometries/TeapotGeometry.js +704 -704
  62. package/examples/jsm/geometries/TextGeometry.js +57 -57
  63. package/examples/jsm/helpers/LightProbeHelper.js +130 -130
  64. package/examples/jsm/helpers/OctreeHelper.js +73 -73
  65. package/examples/jsm/helpers/PositionalAudioHelper.js +109 -109
  66. package/examples/jsm/helpers/RectAreaLightHelper.js +85 -85
  67. package/examples/jsm/helpers/TextureHelper.js +237 -237
  68. package/examples/jsm/helpers/VertexNormalsHelper.js +96 -96
  69. package/examples/jsm/helpers/VertexTangentsHelper.js +88 -88
  70. package/examples/jsm/helpers/ViewHelper.js +333 -333
  71. package/examples/jsm/interactive/HTMLMesh.js +572 -572
  72. package/examples/jsm/interactive/InteractiveGroup.js +106 -106
  73. package/examples/jsm/interactive/SelectionBox.js +227 -227
  74. package/examples/jsm/interactive/SelectionHelper.js +104 -104
  75. package/examples/jsm/libs/ammo.wasm.js +822 -822
  76. package/examples/jsm/libs/basis/README.md +46 -46
  77. package/examples/jsm/libs/basis/basis_transcoder.js +21 -21
  78. package/examples/jsm/libs/chevrotain.module.min.js +141 -141
  79. package/examples/jsm/libs/draco/README.md +32 -32
  80. package/examples/jsm/libs/draco/draco_decoder.js +34 -34
  81. package/examples/jsm/libs/draco/draco_encoder.js +33 -33
  82. package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -117
  83. package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -33
  84. package/examples/jsm/libs/draco/gltf/draco_encoder.js +33 -33
  85. package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -116
  86. package/examples/jsm/libs/ecsy.module.js +1792 -1792
  87. package/examples/jsm/libs/fflate.module.js +2474 -2474
  88. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  89. package/examples/jsm/libs/lil-gui.module.min.js +8 -8
  90. package/examples/jsm/libs/lottie_canvas.module.js +14849 -14849
  91. package/examples/jsm/libs/meshopt_decoder.module.js +178 -178
  92. package/examples/jsm/libs/mikktspace.module.js +128 -128
  93. package/examples/jsm/libs/mmdparser.module.js +11530 -11530
  94. package/examples/jsm/libs/motion-controllers.module.js +397 -397
  95. package/examples/jsm/libs/opentype.module.js +14506 -14506
  96. package/examples/jsm/libs/potpack.module.js +124 -124
  97. package/examples/jsm/libs/rhino3dm/rhino3dm.js +21 -21
  98. package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +15 -15
  99. package/examples/jsm/libs/stats.module.js +167 -167
  100. package/examples/jsm/libs/surfaceNet.js +200 -200
  101. package/examples/jsm/libs/tween.module.js +876 -876
  102. package/examples/jsm/libs/utif.module.js +1664 -1664
  103. package/examples/jsm/libs/zstddec.module.js +1 -1
  104. package/examples/jsm/lights/IESSpotLight.js +25 -25
  105. package/examples/jsm/lights/LightProbeGenerator.js +286 -286
  106. package/examples/jsm/lights/RectAreaLightUniformsLib.js +79 -79
  107. package/examples/jsm/lines/Line2.js +19 -19
  108. package/examples/jsm/lines/LineGeometry.js +79 -79
  109. package/examples/jsm/lines/LineMaterial.js +619 -619
  110. package/examples/jsm/lines/LineSegments2.js +361 -361
  111. package/examples/jsm/lines/LineSegmentsGeometry.js +241 -241
  112. package/examples/jsm/lines/Wireframe.js +56 -56
  113. package/examples/jsm/lines/WireframeGeometry2.js +24 -24
  114. package/examples/jsm/loaders/3DMLoader.js +1764 -1764
  115. package/examples/jsm/loaders/3MFLoader.js +1478 -1478
  116. package/examples/jsm/loaders/AMFLoader.js +521 -521
  117. package/examples/jsm/loaders/BVHLoader.js +437 -437
  118. package/examples/jsm/loaders/ColladaLoader.js +4116 -4116
  119. package/examples/jsm/loaders/DDSLoader.js +318 -318
  120. package/examples/jsm/loaders/DRACOLoader.js +613 -613
  121. package/examples/jsm/loaders/EXRLoader.js +2309 -2309
  122. package/examples/jsm/loaders/FBXLoader.js +4314 -4314
  123. package/examples/jsm/loaders/FontLoader.js +183 -183
  124. package/examples/jsm/loaders/GCodeLoader.js +261 -261
  125. package/examples/jsm/loaders/GLTFLoader.js +4666 -4666
  126. package/examples/jsm/loaders/GLTFLoaderAnimationPointer.js +729 -729
  127. package/examples/jsm/loaders/HDRCubeTextureLoader.js +115 -115
  128. package/examples/jsm/loaders/IESLoader.js +337 -337
  129. package/examples/jsm/loaders/KMZLoader.js +130 -130
  130. package/examples/jsm/loaders/KTX2Loader.js +932 -932
  131. package/examples/jsm/loaders/KTXLoader.js +176 -176
  132. package/examples/jsm/loaders/LDrawLoader.js +2470 -2470
  133. package/examples/jsm/loaders/LUT3dlLoader.js +183 -183
  134. package/examples/jsm/loaders/LUTCubeLoader.js +167 -167
  135. package/examples/jsm/loaders/LUTImageLoader.js +163 -163
  136. package/examples/jsm/loaders/LWOLoader.js +1052 -1052
  137. package/examples/jsm/loaders/LogLuvLoader.js +606 -606
  138. package/examples/jsm/loaders/LottieLoader.js +77 -77
  139. package/examples/jsm/loaders/MD2Loader.js +399 -399
  140. package/examples/jsm/loaders/MDDLoader.js +102 -102
  141. package/examples/jsm/loaders/MMDLoader.js +2276 -2276
  142. package/examples/jsm/loaders/MTLLoader.js +567 -567
  143. package/examples/jsm/loaders/MaterialXLoader.js +852 -852
  144. package/examples/jsm/loaders/NRRDLoader.js +686 -686
  145. package/examples/jsm/loaders/OBJLoader.js +905 -905
  146. package/examples/jsm/loaders/PCDLoader.js +467 -467
  147. package/examples/jsm/loaders/PDBLoader.js +232 -232
  148. package/examples/jsm/loaders/PLYLoader.js +771 -771
  149. package/examples/jsm/loaders/PVRLoader.js +251 -251
  150. package/examples/jsm/loaders/RGBELoader.js +450 -450
  151. package/examples/jsm/loaders/RGBMLoader.js +1065 -1065
  152. package/examples/jsm/loaders/STLLoader.js +410 -410
  153. package/examples/jsm/loaders/SVGLoader.js +3173 -3173
  154. package/examples/jsm/loaders/TDSLoader.js +1124 -1124
  155. package/examples/jsm/loaders/TGALoader.js +517 -517
  156. package/examples/jsm/loaders/TIFFLoader.js +36 -36
  157. package/examples/jsm/loaders/TTFLoader.js +214 -214
  158. package/examples/jsm/loaders/TiltLoader.js +520 -520
  159. package/examples/jsm/loaders/USDZLoader.js +822 -822
  160. package/examples/jsm/loaders/VOXLoader.js +318 -318
  161. package/examples/jsm/loaders/VRMLLoader.js +3537 -3537
  162. package/examples/jsm/loaders/VTKLoader.js +1163 -1163
  163. package/examples/jsm/loaders/XYZLoader.js +106 -106
  164. package/examples/jsm/loaders/lwo/IFFParser.js +1214 -1214
  165. package/examples/jsm/loaders/lwo/LWO2Parser.js +414 -414
  166. package/examples/jsm/loaders/lwo/LWO3Parser.js +373 -373
  167. package/examples/jsm/materials/MeshGouraudMaterial.js +426 -426
  168. package/examples/jsm/materials/MeshPostProcessingMaterial.js +144 -144
  169. package/examples/jsm/math/Capsule.js +82 -82
  170. package/examples/jsm/math/ColorConverter.js +36 -36
  171. package/examples/jsm/math/ConvexHull.js +1271 -1271
  172. package/examples/jsm/math/ImprovedNoise.js +71 -71
  173. package/examples/jsm/math/Lut.js +204 -204
  174. package/examples/jsm/math/MeshSurfaceSampler.js +250 -250
  175. package/examples/jsm/math/OBB.js +423 -423
  176. package/examples/jsm/math/Octree.js +540 -540
  177. package/examples/jsm/math/SimplexNoise.js +444 -444
  178. package/examples/jsm/misc/ConvexObjectBreaker.js +519 -519
  179. package/examples/jsm/misc/GPUComputationRenderer.js +446 -446
  180. package/examples/jsm/misc/Gyroscope.js +66 -66
  181. package/examples/jsm/misc/MD2Character.js +276 -276
  182. package/examples/jsm/misc/MD2CharacterComplex.js +576 -576
  183. package/examples/jsm/misc/MorphAnimMesh.js +75 -75
  184. package/examples/jsm/misc/MorphBlendMesh.js +322 -322
  185. package/examples/jsm/misc/ProgressiveLightMap.js +324 -324
  186. package/examples/jsm/misc/RollerCoaster.js +566 -566
  187. package/examples/jsm/misc/Timer.js +128 -128
  188. package/examples/jsm/misc/TubePainter.js +202 -202
  189. package/examples/jsm/misc/Volume.js +473 -473
  190. package/examples/jsm/misc/VolumeSlice.js +229 -229
  191. package/examples/jsm/modifiers/CurveModifier.js +344 -344
  192. package/examples/jsm/modifiers/EdgeSplitModifier.js +279 -279
  193. package/examples/jsm/modifiers/SimplifyModifier.js +617 -617
  194. package/examples/jsm/modifiers/TessellateModifier.js +307 -307
  195. package/examples/jsm/nodes/Nodes.js +195 -195
  196. package/examples/jsm/nodes/accessors/AccessorsUtils.js +10 -10
  197. package/examples/jsm/nodes/accessors/BitangentNode.js +89 -89
  198. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +127 -127
  199. package/examples/jsm/nodes/accessors/BufferNode.js +30 -30
  200. package/examples/jsm/nodes/accessors/CameraNode.js +119 -119
  201. package/examples/jsm/nodes/accessors/ClippingNode.js +144 -144
  202. package/examples/jsm/nodes/accessors/CubeTextureNode.js +61 -61
  203. package/examples/jsm/nodes/accessors/InstanceNode.js +71 -71
  204. package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +21 -21
  205. package/examples/jsm/nodes/accessors/MaterialNode.js +314 -314
  206. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +41 -41
  207. package/examples/jsm/nodes/accessors/ModelNode.js +33 -33
  208. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +39 -39
  209. package/examples/jsm/nodes/accessors/MorphNode.js +245 -245
  210. package/examples/jsm/nodes/accessors/NormalNode.js +96 -96
  211. package/examples/jsm/nodes/accessors/Object3DNode.js +150 -150
  212. package/examples/jsm/nodes/accessors/PointUVNode.js +26 -26
  213. package/examples/jsm/nodes/accessors/PositionNode.js +104 -104
  214. package/examples/jsm/nodes/accessors/ReferenceNode.js +160 -160
  215. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +35 -35
  216. package/examples/jsm/nodes/accessors/SceneNode.js +52 -52
  217. package/examples/jsm/nodes/accessors/SkinningNode.js +124 -124
  218. package/examples/jsm/nodes/accessors/StorageBufferNode.js +72 -72
  219. package/examples/jsm/nodes/accessors/TangentNode.js +109 -109
  220. package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -94
  221. package/examples/jsm/nodes/accessors/TextureNode.js +367 -367
  222. package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -35
  223. package/examples/jsm/nodes/accessors/TextureStoreNode.js +82 -82
  224. package/examples/jsm/nodes/accessors/UVNode.js +47 -47
  225. package/examples/jsm/nodes/accessors/UniformsNode.js +140 -140
  226. package/examples/jsm/nodes/accessors/UserDataNode.js +29 -29
  227. package/examples/jsm/nodes/accessors/VertexColorNode.js +70 -70
  228. package/examples/jsm/nodes/code/CodeNode.js +84 -84
  229. package/examples/jsm/nodes/code/ExpressionNode.js +37 -37
  230. package/examples/jsm/nodes/code/FunctionCallNode.js +96 -96
  231. package/examples/jsm/nodes/code/FunctionNode.js +138 -138
  232. package/examples/jsm/nodes/code/ScriptableNode.js +488 -488
  233. package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -167
  234. package/examples/jsm/nodes/core/AssignNode.js +128 -128
  235. package/examples/jsm/nodes/core/AttributeNode.js +108 -108
  236. package/examples/jsm/nodes/core/BypassNode.js +45 -45
  237. package/examples/jsm/nodes/core/CacheNode.js +49 -49
  238. package/examples/jsm/nodes/core/ConstNode.js +32 -32
  239. package/examples/jsm/nodes/core/ContextNode.js +61 -61
  240. package/examples/jsm/nodes/core/IndexNode.js +66 -66
  241. package/examples/jsm/nodes/core/InputNode.js +83 -83
  242. package/examples/jsm/nodes/core/LightingModel.js +17 -17
  243. package/examples/jsm/nodes/core/Node.js +493 -493
  244. package/examples/jsm/nodes/core/NodeAttribute.js +15 -15
  245. package/examples/jsm/nodes/core/NodeBuilder.js +1250 -1250
  246. package/examples/jsm/nodes/core/NodeCache.js +26 -26
  247. package/examples/jsm/nodes/core/NodeCode.js +15 -15
  248. package/examples/jsm/nodes/core/NodeFrame.js +143 -143
  249. package/examples/jsm/nodes/core/NodeFunction.js +22 -22
  250. package/examples/jsm/nodes/core/NodeFunctionInput.js +17 -17
  251. package/examples/jsm/nodes/core/NodeKeywords.js +80 -80
  252. package/examples/jsm/nodes/core/NodeParser.js +11 -11
  253. package/examples/jsm/nodes/core/NodeUniform.js +40 -40
  254. package/examples/jsm/nodes/core/NodeUtils.js +210 -210
  255. package/examples/jsm/nodes/core/NodeVar.js +14 -14
  256. package/examples/jsm/nodes/core/NodeVarying.js +17 -17
  257. package/examples/jsm/nodes/core/OutputStructNode.js +62 -62
  258. package/examples/jsm/nodes/core/ParameterNode.js +33 -33
  259. package/examples/jsm/nodes/core/PropertyNode.js +72 -72
  260. package/examples/jsm/nodes/core/StackNode.js +89 -89
  261. package/examples/jsm/nodes/core/StructTypeNode.js +24 -24
  262. package/examples/jsm/nodes/core/TempNode.js +58 -58
  263. package/examples/jsm/nodes/core/UniformGroup.js +13 -13
  264. package/examples/jsm/nodes/core/UniformGroupNode.js +36 -36
  265. package/examples/jsm/nodes/core/UniformNode.js +80 -80
  266. package/examples/jsm/nodes/core/VarNode.js +60 -60
  267. package/examples/jsm/nodes/core/VaryingNode.js +65 -65
  268. package/examples/jsm/nodes/core/constants.js +28 -28
  269. package/examples/jsm/nodes/display/AfterImageNode.js +148 -148
  270. package/examples/jsm/nodes/display/AnamorphicNode.js +148 -148
  271. package/examples/jsm/nodes/display/BlendModeNode.js +128 -128
  272. package/examples/jsm/nodes/display/BumpMapNode.js +99 -99
  273. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +99 -99
  274. package/examples/jsm/nodes/display/ColorSpaceNode.js +108 -108
  275. package/examples/jsm/nodes/display/FrontFacingNode.js +27 -27
  276. package/examples/jsm/nodes/display/GaussianBlurNode.js +190 -190
  277. package/examples/jsm/nodes/display/NormalMapNode.js +106 -106
  278. package/examples/jsm/nodes/display/PassNode.js +183 -183
  279. package/examples/jsm/nodes/display/PosterizeNode.js +32 -32
  280. package/examples/jsm/nodes/display/ToneMappingNode.js +184 -184
  281. package/examples/jsm/nodes/display/ViewportDepthNode.js +97 -97
  282. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +31 -31
  283. package/examples/jsm/nodes/display/ViewportNode.js +134 -134
  284. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +31 -31
  285. package/examples/jsm/nodes/display/ViewportTextureNode.js +75 -75
  286. package/examples/jsm/nodes/fog/FogExp2Node.js +35 -35
  287. package/examples/jsm/nodes/fog/FogNode.js +38 -38
  288. package/examples/jsm/nodes/fog/FogRangeNode.js +34 -34
  289. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +40 -40
  290. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -9
  291. package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +57 -57
  292. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +30 -30
  293. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +23 -23
  294. package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -13
  295. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +16 -16
  296. package/examples/jsm/nodes/functions/BSDF/Schlick_to_F0.js +21 -21
  297. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +28 -28
  298. package/examples/jsm/nodes/functions/PhongLightingModel.js +67 -67
  299. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +393 -393
  300. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +13 -13
  301. package/examples/jsm/nodes/functions/material/getRoughness.js +18 -18
  302. package/examples/jsm/nodes/geometry/RangeNode.js +104 -104
  303. package/examples/jsm/nodes/gpgpu/ComputeNode.js +85 -85
  304. package/examples/jsm/nodes/lighting/AONode.js +27 -27
  305. package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -27
  306. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +241 -241
  307. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +40 -40
  308. package/examples/jsm/nodes/lighting/EnvironmentNode.js +181 -181
  309. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +55 -55
  310. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -39
  311. package/examples/jsm/nodes/lighting/LightNode.js +57 -57
  312. package/examples/jsm/nodes/lighting/LightUtils.js +17 -17
  313. package/examples/jsm/nodes/lighting/LightingContextNode.js +66 -66
  314. package/examples/jsm/nodes/lighting/LightingNode.js +21 -21
  315. package/examples/jsm/nodes/lighting/LightsNode.js +188 -188
  316. package/examples/jsm/nodes/lighting/PointLightNode.js +68 -68
  317. package/examples/jsm/nodes/lighting/SpotLightNode.js +89 -89
  318. package/examples/jsm/nodes/loaders/NodeLoader.js +108 -108
  319. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +59 -59
  320. package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -70
  321. package/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +162 -162
  322. package/examples/jsm/nodes/materials/Line2NodeMaterial.js +436 -436
  323. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +28 -28
  324. package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +54 -54
  325. package/examples/jsm/nodes/materials/Materials.js +16 -16
  326. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +28 -28
  327. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +34 -34
  328. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +40 -40
  329. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +65 -65
  330. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +155 -155
  331. package/examples/jsm/nodes/materials/MeshSSSNodeMaterial.js +84 -84
  332. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +80 -80
  333. package/examples/jsm/nodes/materials/NodeMaterial.js +601 -601
  334. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +39 -39
  335. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +90 -90
  336. package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -199
  337. package/examples/jsm/nodes/materialx/MaterialXNodes.js +68 -68
  338. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +130 -130
  339. package/examples/jsm/nodes/materialx/lib/mx_noise.js +1430 -1430
  340. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +29 -29
  341. package/examples/jsm/nodes/math/CondNode.js +121 -121
  342. package/examples/jsm/nodes/math/HashNode.js +34 -34
  343. package/examples/jsm/nodes/math/MathNode.js +391 -391
  344. package/examples/jsm/nodes/math/MathUtils.js +15 -15
  345. package/examples/jsm/nodes/math/OperatorNode.js +274 -274
  346. package/examples/jsm/nodes/math/TriNoise3D.js +71 -71
  347. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +152 -152
  348. package/examples/jsm/nodes/parsers/GLSLNodeParser.js +14 -14
  349. package/examples/jsm/nodes/procedural/CheckerNode.js +42 -42
  350. package/examples/jsm/nodes/shadernode/ShaderNode.js +634 -634
  351. package/examples/jsm/nodes/utils/ArrayElementNode.js +35 -35
  352. package/examples/jsm/nodes/utils/ConvertNode.js +65 -65
  353. package/examples/jsm/nodes/utils/DiscardNode.js +27 -27
  354. package/examples/jsm/nodes/utils/EquirectUVNode.js +33 -33
  355. package/examples/jsm/nodes/utils/FunctionOverloadingNode.js +95 -95
  356. package/examples/jsm/nodes/utils/JoinNode.js +61 -61
  357. package/examples/jsm/nodes/utils/LoopNode.js +200 -200
  358. package/examples/jsm/nodes/utils/MatcapUVNode.js +30 -30
  359. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +46 -46
  360. package/examples/jsm/nodes/utils/OscNode.js +81 -81
  361. package/examples/jsm/nodes/utils/PackingNode.js +55 -55
  362. package/examples/jsm/nodes/utils/ReflectorNode.js +227 -227
  363. package/examples/jsm/nodes/utils/RemapNode.js +42 -42
  364. package/examples/jsm/nodes/utils/RotateNode.js +68 -68
  365. package/examples/jsm/nodes/utils/RotateUVNode.js +35 -35
  366. package/examples/jsm/nodes/utils/SetNode.js +62 -62
  367. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -37
  368. package/examples/jsm/nodes/utils/SplitNode.js +112 -112
  369. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +41 -41
  370. package/examples/jsm/nodes/utils/StorageArrayElementNode.js +91 -91
  371. package/examples/jsm/nodes/utils/TimerNode.js +94 -94
  372. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +62 -62
  373. package/examples/jsm/objects/GroundedSkybox.js +50 -50
  374. package/examples/jsm/objects/InstancedPoints.js +21 -21
  375. package/examples/jsm/objects/Lensflare.js +397 -397
  376. package/examples/jsm/objects/MarchingCubes.js +1176 -1176
  377. package/examples/jsm/objects/QuadMesh.js +66 -66
  378. package/examples/jsm/objects/Reflector.js +264 -264
  379. package/examples/jsm/objects/ReflectorForSSRPass.js +352 -352
  380. package/examples/jsm/objects/Refractor.js +327 -327
  381. package/examples/jsm/objects/ShadowMesh.js +80 -80
  382. package/examples/jsm/objects/Sky.js +219 -219
  383. package/examples/jsm/objects/Water.js +333 -333
  384. package/examples/jsm/objects/Water2.js +361 -361
  385. package/examples/jsm/offscreen/jank.js +45 -45
  386. package/examples/jsm/offscreen/offscreen.js +8 -8
  387. package/examples/jsm/offscreen/scene.js +86 -86
  388. package/examples/jsm/physics/AmmoPhysics.js +306 -306
  389. package/examples/jsm/physics/RapierPhysics.js +220 -220
  390. package/examples/jsm/postprocessing/AfterimagePass.js +104 -104
  391. package/examples/jsm/postprocessing/BloomPass.js +172 -172
  392. package/examples/jsm/postprocessing/BokehPass.js +141 -141
  393. package/examples/jsm/postprocessing/ClearPass.js +46 -46
  394. package/examples/jsm/postprocessing/CubeTexturePass.js +85 -85
  395. package/examples/jsm/postprocessing/DotScreenPass.js +65 -65
  396. package/examples/jsm/postprocessing/EffectComposer.js +231 -231
  397. package/examples/jsm/postprocessing/FilmPass.js +64 -64
  398. package/examples/jsm/postprocessing/GTAOPass.js +582 -582
  399. package/examples/jsm/postprocessing/GlitchPass.js +128 -128
  400. package/examples/jsm/postprocessing/HalftonePass.js +79 -79
  401. package/examples/jsm/postprocessing/LUTPass.js +174 -174
  402. package/examples/jsm/postprocessing/MaskPass.js +104 -104
  403. package/examples/jsm/postprocessing/OutlinePass.js +654 -654
  404. package/examples/jsm/postprocessing/OutputPass.js +97 -97
  405. package/examples/jsm/postprocessing/Pass.js +95 -95
  406. package/examples/jsm/postprocessing/RenderPass.js +99 -99
  407. package/examples/jsm/postprocessing/RenderPixelatedPass.js +235 -235
  408. package/examples/jsm/postprocessing/SAOPass.js +335 -335
  409. package/examples/jsm/postprocessing/SMAAPass.js +199 -199
  410. package/examples/jsm/postprocessing/SSAARenderPass.js +228 -228
  411. package/examples/jsm/postprocessing/SSAOPass.js +420 -420
  412. package/examples/jsm/postprocessing/SSRPass.js +641 -641
  413. package/examples/jsm/postprocessing/SavePass.js +79 -79
  414. package/examples/jsm/postprocessing/ShaderPass.js +77 -77
  415. package/examples/jsm/postprocessing/TAARenderPass.js +188 -188
  416. package/examples/jsm/postprocessing/TexturePass.js +67 -67
  417. package/examples/jsm/postprocessing/UnrealBloomPass.js +415 -415
  418. package/examples/jsm/renderers/CSS2DRenderer.js +215 -215
  419. package/examples/jsm/renderers/CSS3DRenderer.js +329 -329
  420. package/examples/jsm/renderers/Projector.js +918 -918
  421. package/examples/jsm/renderers/SVGRenderer.js +556 -556
  422. package/examples/jsm/renderers/common/Animation.js +47 -47
  423. package/examples/jsm/renderers/common/Attributes.js +75 -75
  424. package/examples/jsm/renderers/common/Backend.js +195 -195
  425. package/examples/jsm/renderers/common/Background.js +134 -134
  426. package/examples/jsm/renderers/common/Binding.js +25 -25
  427. package/examples/jsm/renderers/common/Bindings.js +173 -173
  428. package/examples/jsm/renderers/common/Buffer.js +38 -38
  429. package/examples/jsm/renderers/common/BufferUtils.js +33 -33
  430. package/examples/jsm/renderers/common/ChainMap.js +89 -89
  431. package/examples/jsm/renderers/common/ClippingContext.js +165 -165
  432. package/examples/jsm/renderers/common/Color4.js +37 -37
  433. package/examples/jsm/renderers/common/ComputePipeline.js +17 -17
  434. package/examples/jsm/renderers/common/Constants.js +14 -14
  435. package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -65
  436. package/examples/jsm/renderers/common/DataMap.js +54 -54
  437. package/examples/jsm/renderers/common/Geometries.js +215 -215
  438. package/examples/jsm/renderers/common/Info.js +107 -107
  439. package/examples/jsm/renderers/common/Pipeline.js +13 -13
  440. package/examples/jsm/renderers/common/Pipelines.js +322 -322
  441. package/examples/jsm/renderers/common/PostProcessing.js +25 -25
  442. package/examples/jsm/renderers/common/ProgrammableStage.js +20 -20
  443. package/examples/jsm/renderers/common/RenderContext.js +43 -43
  444. package/examples/jsm/renderers/common/RenderContexts.js +63 -63
  445. package/examples/jsm/renderers/common/RenderList.js +186 -186
  446. package/examples/jsm/renderers/common/RenderLists.js +38 -38
  447. package/examples/jsm/renderers/common/RenderObject.js +221 -221
  448. package/examples/jsm/renderers/common/RenderObjects.js +93 -93
  449. package/examples/jsm/renderers/common/RenderPipeline.js +16 -16
  450. package/examples/jsm/renderers/common/Renderer.js +1304 -1304
  451. package/examples/jsm/renderers/common/SampledTexture.js +83 -83
  452. package/examples/jsm/renderers/common/Sampler.js +18 -18
  453. package/examples/jsm/renderers/common/StorageBuffer.js +17 -17
  454. package/examples/jsm/renderers/common/StorageBufferAttribute.js +17 -17
  455. package/examples/jsm/renderers/common/StorageInstancedBufferAttribute.js +17 -17
  456. package/examples/jsm/renderers/common/StorageTexture.js +20 -20
  457. package/examples/jsm/renderers/common/Textures.js +344 -344
  458. package/examples/jsm/renderers/common/Uniform.js +140 -140
  459. package/examples/jsm/renderers/common/UniformBuffer.js +15 -15
  460. package/examples/jsm/renderers/common/UniformsGroup.js +301 -301
  461. package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +44 -44
  462. package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +49 -49
  463. package/examples/jsm/renderers/common/nodes/NodeSampler.js +15 -15
  464. package/examples/jsm/renderers/common/nodes/NodeStorageBuffer.js +23 -23
  465. package/examples/jsm/renderers/common/nodes/NodeUniform.js +135 -135
  466. package/examples/jsm/renderers/common/nodes/NodeUniformBuffer.js +23 -23
  467. package/examples/jsm/renderers/common/nodes/NodeUniformsGroup.js +44 -44
  468. package/examples/jsm/renderers/common/nodes/Nodes.js +496 -496
  469. package/examples/jsm/renderers/webgl/WebGLBackend.js +1382 -1382
  470. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +804 -804
  471. package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +258 -258
  472. package/examples/jsm/renderers/webgl/utils/WebGLCapabilities.js +36 -36
  473. package/examples/jsm/renderers/webgl/utils/WebGLConstants.js +11 -11
  474. package/examples/jsm/renderers/webgl/utils/WebGLExtensions.js +36 -36
  475. package/examples/jsm/renderers/webgl/utils/WebGLState.js +738 -738
  476. package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +694 -694
  477. package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +285 -285
  478. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +320 -320
  479. package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +26 -26
  480. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +794 -794
  481. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +51 -51
  482. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +1322 -1322
  483. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +53 -53
  484. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +1078 -1078
  485. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +104 -104
  486. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeParser.js +14 -14
  487. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +293 -293
  488. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +244 -244
  489. package/examples/jsm/renderers/webgpu/utils/WebGPUConstants.js +324 -324
  490. package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +591 -591
  491. package/examples/jsm/renderers/webgpu/utils/WebGPUTexturePassUtils.js +285 -285
  492. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +1040 -1040
  493. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +93 -93
  494. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +89 -89
  495. package/examples/jsm/shaders/AfterimageShader.js +58 -58
  496. package/examples/jsm/shaders/BasicShader.js +29 -29
  497. package/examples/jsm/shaders/BleachBypassShader.js +62 -62
  498. package/examples/jsm/shaders/BlendShader.js +49 -49
  499. package/examples/jsm/shaders/BokehShader.js +145 -145
  500. package/examples/jsm/shaders/BokehShader2.js +397 -397
  501. package/examples/jsm/shaders/BrightnessContrastShader.js +56 -56
  502. package/examples/jsm/shaders/ColorCorrectionShader.js +52 -52
  503. package/examples/jsm/shaders/ColorifyShader.js +51 -51
  504. package/examples/jsm/shaders/ConvolutionShader.js +103 -103
  505. package/examples/jsm/shaders/CopyShader.js +45 -45
  506. package/examples/jsm/shaders/DOFMipMapShader.js +56 -56
  507. package/examples/jsm/shaders/DepthLimitedBlurShader.js +171 -171
  508. package/examples/jsm/shaders/DigitalGlitch.js +101 -101
  509. package/examples/jsm/shaders/DotScreenShader.js +70 -70
  510. package/examples/jsm/shaders/ExposureShader.js +44 -44
  511. package/examples/jsm/shaders/FXAAShader.js +288 -288
  512. package/examples/jsm/shaders/FilmShader.js +59 -59
  513. package/examples/jsm/shaders/FocusShader.js +89 -89
  514. package/examples/jsm/shaders/FreiChenShader.js +96 -96
  515. package/examples/jsm/shaders/GTAOShader.js +424 -424
  516. package/examples/jsm/shaders/GammaCorrectionShader.js +43 -43
  517. package/examples/jsm/shaders/GodRaysShader.js +321 -321
  518. package/examples/jsm/shaders/HalftoneShader.js +312 -312
  519. package/examples/jsm/shaders/HorizontalBlurShader.js +59 -59
  520. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +63 -63
  521. package/examples/jsm/shaders/HueSaturationShader.js +67 -67
  522. package/examples/jsm/shaders/KaleidoShader.js +58 -58
  523. package/examples/jsm/shaders/LuminosityHighPassShader.js +66 -66
  524. package/examples/jsm/shaders/LuminosityShader.js +48 -48
  525. package/examples/jsm/shaders/MMDToonShader.js +134 -134
  526. package/examples/jsm/shaders/MirrorShader.js +56 -56
  527. package/examples/jsm/shaders/NormalMapShader.js +55 -55
  528. package/examples/jsm/shaders/OutputShader.js +85 -85
  529. package/examples/jsm/shaders/PoissonDenoiseShader.js +226 -226
  530. package/examples/jsm/shaders/RGBShiftShader.js +54 -54
  531. package/examples/jsm/shaders/SAOShader.js +179 -179
  532. package/examples/jsm/shaders/SMAAShader.js +466 -466
  533. package/examples/jsm/shaders/SSAOShader.js +300 -300
  534. package/examples/jsm/shaders/SSRShader.js +370 -370
  535. package/examples/jsm/shaders/SepiaShader.js +52 -52
  536. package/examples/jsm/shaders/SobelOperatorShader.js +92 -92
  537. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +90 -90
  538. package/examples/jsm/shaders/TechnicolorShader.js +45 -45
  539. package/examples/jsm/shaders/ToonShader.js +326 -326
  540. package/examples/jsm/shaders/TriangleBlurShader.js +74 -74
  541. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +47 -47
  542. package/examples/jsm/shaders/VelocityShader.js +130 -130
  543. package/examples/jsm/shaders/VerticalBlurShader.js +59 -59
  544. package/examples/jsm/shaders/VerticalTiltShiftShader.js +63 -63
  545. package/examples/jsm/shaders/VignetteShader.js +51 -51
  546. package/examples/jsm/shaders/VolumeShader.js +289 -289
  547. package/examples/jsm/shaders/WaterRefractionShader.js +95 -95
  548. package/examples/jsm/textures/FlakesTexture.js +40 -40
  549. package/examples/jsm/transpiler/AST.js +270 -270
  550. package/examples/jsm/transpiler/GLSLDecoder.js +941 -941
  551. package/examples/jsm/transpiler/ShaderToyDecoder.js +49 -49
  552. package/examples/jsm/transpiler/TSLEncoder.js +715 -715
  553. package/examples/jsm/transpiler/Transpiler.js +18 -18
  554. package/examples/jsm/utils/BufferGeometryUtils.js +1371 -1371
  555. package/examples/jsm/utils/CameraUtils.js +73 -73
  556. package/examples/jsm/utils/GPUStatsPanel.js +128 -128
  557. package/examples/jsm/utils/GeometryCompressionUtils.js +639 -639
  558. package/examples/jsm/utils/GeometryUtils.js +221 -221
  559. package/examples/jsm/utils/LDrawUtils.js +202 -202
  560. package/examples/jsm/utils/PackedPhongMaterial.js +178 -178
  561. package/examples/jsm/utils/SceneUtils.js +254 -254
  562. package/examples/jsm/utils/ShadowMapViewer.js +210 -210
  563. package/examples/jsm/utils/SkeletonUtils.js +424 -424
  564. package/examples/jsm/utils/SortUtils.js +160 -160
  565. package/examples/jsm/utils/TextureUtils.js +98 -98
  566. package/examples/jsm/utils/UVsDebug.js +165 -165
  567. package/examples/jsm/utils/WorkerPool.js +102 -102
  568. package/examples/jsm/webxr/ARButton.js +232 -232
  569. package/examples/jsm/webxr/OculusHandModel.js +109 -109
  570. package/examples/jsm/webxr/OculusHandPointerModel.js +416 -416
  571. package/examples/jsm/webxr/Text2D.js +38 -38
  572. package/examples/jsm/webxr/VRButton.js +233 -233
  573. package/examples/jsm/webxr/XRButton.js +223 -223
  574. package/examples/jsm/webxr/XRControllerModelFactory.js +323 -323
  575. package/examples/jsm/webxr/XREstimatedLight.js +223 -223
  576. package/examples/jsm/webxr/XRHandMeshModel.js +116 -116
  577. package/examples/jsm/webxr/XRHandModelFactory.js +105 -105
  578. package/examples/jsm/webxr/XRHandPrimitiveModel.js +105 -105
  579. package/examples/jsm/webxr/XRPlanes.js +100 -100
  580. package/package.json +129 -129
  581. package/src/Three.Legacy.js +21 -21
  582. package/src/Three.js +183 -183
  583. package/src/animation/AnimationAction.js +700 -700
  584. package/src/animation/AnimationClip.js +473 -473
  585. package/src/animation/AnimationMixer.js +770 -770
  586. package/src/animation/AnimationObjectGroup.js +387 -387
  587. package/src/animation/AnimationUtils.js +356 -356
  588. package/src/animation/KeyframeTrack.js +462 -462
  589. package/src/animation/PropertyBinding.js +719 -719
  590. package/src/animation/PropertyMixer.js +318 -318
  591. package/src/animation/tracks/BooleanKeyframeTrack.js +19 -19
  592. package/src/animation/tracks/ColorKeyframeTrack.js +15 -15
  593. package/src/animation/tracks/NumberKeyframeTrack.js +12 -12
  594. package/src/animation/tracks/QuaternionKeyframeTrack.js +23 -23
  595. package/src/animation/tracks/StringKeyframeTrack.js +15 -15
  596. package/src/animation/tracks/VectorKeyframeTrack.js +12 -12
  597. package/src/audio/Audio.js +400 -400
  598. package/src/audio/AudioAnalyser.js +40 -40
  599. package/src/audio/AudioContext.js +25 -25
  600. package/src/audio/AudioListener.js +140 -140
  601. package/src/audio/PositionalAudio.js +146 -146
  602. package/src/cameras/ArrayCamera.js +17 -17
  603. package/src/cameras/Camera.js +69 -69
  604. package/src/cameras/CubeCamera.js +173 -173
  605. package/src/cameras/OrthographicCamera.js +136 -136
  606. package/src/cameras/PerspectiveCamera.js +268 -268
  607. package/src/cameras/StereoCamera.js +100 -100
  608. package/src/constants.js +217 -217
  609. package/src/core/BufferAttribute.js +639 -639
  610. package/src/core/BufferGeometry.js +1073 -1073
  611. package/src/core/Clock.js +74 -74
  612. package/src/core/EventDispatcher.js +87 -87
  613. package/src/core/GLBufferAttribute.js +60 -60
  614. package/src/core/InstancedBufferAttribute.js +39 -39
  615. package/src/core/InstancedBufferGeometry.js +40 -40
  616. package/src/core/InstancedInterleavedBuffer.js +48 -48
  617. package/src/core/InterleavedBuffer.js +166 -166
  618. package/src/core/InterleavedBufferAttribute.js +351 -351
  619. package/src/core/Layers.js +60 -60
  620. package/src/core/Object3D.js +1019 -1019
  621. package/src/core/Raycaster.js +124 -124
  622. package/src/core/RenderTarget.js +154 -154
  623. package/src/core/Uniform.js +17 -17
  624. package/src/core/UniformsGroup.js +98 -98
  625. package/src/extras/DataUtils.js +176 -176
  626. package/src/extras/Earcut.js +789 -789
  627. package/src/extras/ImageUtils.js +129 -129
  628. package/src/extras/PMREMGenerator.js +912 -912
  629. package/src/extras/ShapeUtils.js +92 -92
  630. package/src/extras/core/Curve.js +416 -416
  631. package/src/extras/core/CurvePath.js +255 -255
  632. package/src/extras/core/Interpolations.js +79 -79
  633. package/src/extras/core/Path.js +196 -196
  634. package/src/extras/core/Shape.js +102 -102
  635. package/src/extras/core/ShapePath.js +291 -291
  636. package/src/extras/curves/ArcCurve.js +17 -17
  637. package/src/extras/curves/CatmullRomCurve3.js +255 -255
  638. package/src/extras/curves/CubicBezierCurve.js +78 -78
  639. package/src/extras/curves/CubicBezierCurve3.js +79 -79
  640. package/src/extras/curves/Curves.js +10 -10
  641. package/src/extras/curves/EllipseCurve.js +156 -156
  642. package/src/extras/curves/LineCurve.js +92 -92
  643. package/src/extras/curves/LineCurve3.js +92 -92
  644. package/src/extras/curves/QuadraticBezierCurve.js +74 -74
  645. package/src/extras/curves/QuadraticBezierCurve3.js +75 -75
  646. package/src/extras/curves/SplineCurve.js +97 -97
  647. package/src/geometries/BoxGeometry.js +180 -180
  648. package/src/geometries/CapsuleGeometry.js +33 -33
  649. package/src/geometries/CircleGeometry.js +101 -101
  650. package/src/geometries/ConeGeometry.js +31 -31
  651. package/src/geometries/CylinderGeometry.js +286 -286
  652. package/src/geometries/DodecahedronGeometry.js +66 -66
  653. package/src/geometries/EdgesGeometry.js +152 -152
  654. package/src/geometries/ExtrudeGeometry.js +814 -814
  655. package/src/geometries/Geometries.js +21 -21
  656. package/src/geometries/IcosahedronGeometry.js +42 -42
  657. package/src/geometries/LatheGeometry.js +189 -189
  658. package/src/geometries/OctahedronGeometry.js +37 -37
  659. package/src/geometries/PlaneGeometry.js +98 -98
  660. package/src/geometries/PolyhedronGeometry.js +319 -319
  661. package/src/geometries/RingGeometry.js +128 -128
  662. package/src/geometries/ShapeGeometry.js +195 -195
  663. package/src/geometries/SphereGeometry.js +137 -137
  664. package/src/geometries/TetrahedronGeometry.js +34 -34
  665. package/src/geometries/TorusGeometry.js +120 -120
  666. package/src/geometries/TorusKnotGeometry.js +167 -167
  667. package/src/geometries/TubeGeometry.js +203 -203
  668. package/src/geometries/WireframeGeometry.js +147 -147
  669. package/src/helpers/ArrowHelper.js +114 -114
  670. package/src/helpers/AxesHelper.js +68 -68
  671. package/src/helpers/Box3Helper.js +55 -55
  672. package/src/helpers/BoxHelper.js +113 -113
  673. package/src/helpers/CameraHelper.js +269 -269
  674. package/src/helpers/DirectionalLightHelper.js +93 -93
  675. package/src/helpers/GridHelper.js +56 -56
  676. package/src/helpers/HemisphereLightHelper.js +88 -88
  677. package/src/helpers/PlaneHelper.js +63 -63
  678. package/src/helpers/PointLightHelper.js +92 -92
  679. package/src/helpers/PolarGridHelper.js +96 -96
  680. package/src/helpers/SkeletonHelper.js +128 -128
  681. package/src/helpers/SpotLightHelper.js +111 -111
  682. package/src/lights/AmbientLight.js +17 -17
  683. package/src/lights/DirectionalLight.js +43 -43
  684. package/src/lights/DirectionalLightShadow.js +16 -16
  685. package/src/lights/HemisphereLight.js +34 -34
  686. package/src/lights/Light.js +58 -58
  687. package/src/lights/LightProbe.js +47 -47
  688. package/src/lights/LightShadow.js +147 -147
  689. package/src/lights/PointLight.js +57 -57
  690. package/src/lights/PointLightShadow.js +96 -96
  691. package/src/lights/RectAreaLight.js +56 -56
  692. package/src/lights/SpotLight.js +71 -71
  693. package/src/lights/SpotLightShadow.js +50 -50
  694. package/src/loaders/AnimationLoader.js +66 -66
  695. package/src/loaders/AudioLoader.js +66 -66
  696. package/src/loaders/BufferGeometryLoader.js +217 -217
  697. package/src/loaders/Cache.js +42 -42
  698. package/src/loaders/CompressedTextureLoader.js +134 -134
  699. package/src/loaders/CubeTextureLoader.js +58 -58
  700. package/src/loaders/DataTextureLoader.js +131 -131
  701. package/src/loaders/FileLoader.js +284 -284
  702. package/src/loaders/ImageBitmapLoader.js +123 -123
  703. package/src/loaders/ImageLoader.js +91 -91
  704. package/src/loaders/Loader.js +72 -72
  705. package/src/loaders/LoaderUtils.js +75 -75
  706. package/src/loaders/LoadingManager.js +142 -142
  707. package/src/loaders/MaterialLoader.js +373 -373
  708. package/src/loaders/ObjectLoader.js +1149 -1149
  709. package/src/loaders/TextureLoader.js +41 -41
  710. package/src/materials/LineBasicMaterial.js +49 -49
  711. package/src/materials/LineDashedMaterial.js +35 -35
  712. package/src/materials/Material.js +523 -523
  713. package/src/materials/Materials.js +39 -39
  714. package/src/materials/MeshBasicMaterial.js +84 -84
  715. package/src/materials/MeshDepthMaterial.js +54 -54
  716. package/src/materials/MeshDistanceMaterial.js +43 -43
  717. package/src/materials/MeshLambertMaterial.js +119 -119
  718. package/src/materials/MeshMatcapMaterial.js +81 -81
  719. package/src/materials/MeshNormalMaterial.js +61 -61
  720. package/src/materials/MeshPhongMaterial.js +123 -123
  721. package/src/materials/MeshPhysicalMaterial.js +224 -224
  722. package/src/materials/MeshStandardMaterial.js +127 -127
  723. package/src/materials/MeshToonMaterial.js +102 -102
  724. package/src/materials/PointsMaterial.js +50 -50
  725. package/src/materials/RawShaderMaterial.js +17 -17
  726. package/src/materials/ShaderMaterial.js +189 -189
  727. package/src/materials/ShadowMaterial.js +37 -37
  728. package/src/materials/SpriteMaterial.js +54 -54
  729. package/src/math/Box2.js +204 -204
  730. package/src/math/Box3.js +534 -534
  731. package/src/math/Color.js +623 -623
  732. package/src/math/ColorManagement.js +139 -139
  733. package/src/math/Cylindrical.js +61 -61
  734. package/src/math/Euler.js +315 -315
  735. package/src/math/Frustum.js +186 -186
  736. package/src/math/Interpolant.js +241 -241
  737. package/src/math/Line3.js +115 -115
  738. package/src/math/MathUtils.js +363 -363
  739. package/src/math/Matrix3.js +388 -388
  740. package/src/math/Matrix4.js +915 -915
  741. package/src/math/Plane.js +205 -205
  742. package/src/math/Quaternion.js +686 -686
  743. package/src/math/Ray.js +493 -493
  744. package/src/math/Sphere.js +245 -245
  745. package/src/math/Spherical.js +86 -86
  746. package/src/math/SphericalHarmonics3.js +243 -243
  747. package/src/math/Triangle.js +311 -311
  748. package/src/math/Vector2.js +480 -480
  749. package/src/math/Vector3.js +724 -724
  750. package/src/math/Vector4.js +644 -644
  751. package/src/math/interpolants/CubicInterpolant.js +150 -150
  752. package/src/math/interpolants/DiscreteInterpolant.js +26 -26
  753. package/src/math/interpolants/LinearInterpolant.js +38 -38
  754. package/src/math/interpolants/QuaternionLinearInterpolant.js +39 -39
  755. package/src/objects/BatchedMesh.js +1020 -1020
  756. package/src/objects/Bone.js +17 -17
  757. package/src/objects/Group.js +17 -17
  758. package/src/objects/InstancedMesh.js +267 -267
  759. package/src/objects/LOD.js +214 -214
  760. package/src/objects/Line.js +222 -222
  761. package/src/objects/LineLoop.js +17 -17
  762. package/src/objects/LineSegments.js +55 -55
  763. package/src/objects/Mesh.js +428 -428
  764. package/src/objects/Points.js +166 -166
  765. package/src/objects/Skeleton.js +277 -277
  766. package/src/objects/SkinnedMesh.js +257 -257
  767. package/src/objects/Sprite.js +181 -181
  768. package/src/renderers/WebGL1Renderer.js +7 -7
  769. package/src/renderers/WebGL3DRenderTarget.js +22 -22
  770. package/src/renderers/WebGLArrayRenderTarget.js +22 -22
  771. package/src/renderers/WebGLCubeRenderTarget.js +146 -146
  772. package/src/renderers/WebGLRenderTarget.js +15 -15
  773. package/src/renderers/WebGLRenderer.js +2615 -2615
  774. package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -7
  775. package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -68
  776. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +7 -7
  777. package/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js +7 -7
  778. package/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js +16 -16
  779. package/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js +5 -5
  780. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +26 -26
  781. package/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js +8 -8
  782. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +19 -19
  783. package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +5 -5
  784. package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +9 -9
  785. package/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js +9 -9
  786. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +33 -33
  787. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +43 -43
  788. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js +7 -7
  789. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +10 -10
  790. package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +21 -21
  791. package/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js +78 -78
  792. package/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js +9 -9
  793. package/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js +7 -7
  794. package/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js +7 -7
  795. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +11 -11
  796. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +11 -11
  797. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +11 -11
  798. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +23 -23
  799. package/src/renderers/shaders/ShaderChunk/colorspace_fragment.glsl.js +3 -3
  800. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +44 -44
  801. package/src/renderers/shaders/ShaderChunk/common.glsl.js +147 -147
  802. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +186 -186
  803. package/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js +5 -5
  804. package/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js +5 -5
  805. package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +63 -63
  806. package/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js +9 -9
  807. package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +7 -7
  808. package/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js +7 -7
  809. package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +20 -20
  810. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +9 -9
  811. package/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js +7 -7
  812. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +15 -15
  813. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +62 -62
  814. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +21 -21
  815. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +22 -22
  816. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +69 -69
  817. package/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +37 -37
  818. package/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js +17 -17
  819. package/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js +19 -19
  820. package/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js +7 -7
  821. package/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js +7 -7
  822. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +27 -27
  823. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +120 -120
  824. package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -14
  825. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +10 -10
  826. package/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js +8 -8
  827. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +202 -202
  828. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +13 -13
  829. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +40 -40
  830. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -5
  831. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -28
  832. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +228 -228
  833. package/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js +7 -7
  834. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +32 -32
  835. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +151 -151
  836. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +562 -562
  837. package/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js +4 -4
  838. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +26 -26
  839. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +9 -9
  840. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +9 -9
  841. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +16 -16
  842. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +22 -22
  843. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +21 -21
  844. package/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js +11 -11
  845. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +27 -27
  846. package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +27 -27
  847. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +12 -12
  848. package/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js +7 -7
  849. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -24
  850. package/src/renderers/shaders/ShaderChunk/morphinstance_vertex.glsl.js +14 -14
  851. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +27 -27
  852. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +47 -47
  853. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +36 -36
  854. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +76 -76
  855. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +33 -33
  856. package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +14 -14
  857. package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +14 -14
  858. package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +14 -14
  859. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +43 -43
  860. package/src/renderers/shaders/ShaderChunk/opaque_fragment.glsl.js +11 -11
  861. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +68 -68
  862. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +8 -8
  863. package/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js +19 -19
  864. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -12
  865. package/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js +7 -7
  866. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +314 -314
  867. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +68 -68
  868. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +68 -68
  869. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +66 -66
  870. package/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js +10 -10
  871. package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +25 -25
  872. package/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js +15 -15
  873. package/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js +20 -20
  874. package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +14 -14
  875. package/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js +7 -7
  876. package/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js +7 -7
  877. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +192 -192
  878. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +36 -36
  879. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +201 -201
  880. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +119 -119
  881. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +145 -145
  882. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +122 -122
  883. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +21 -21
  884. package/src/renderers/shaders/ShaderChunk.js +272 -272
  885. package/src/renderers/shaders/ShaderLib/background.glsl.js +40 -40
  886. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +63 -63
  887. package/src/renderers/shaders/ShaderLib/cube.glsl.js +36 -36
  888. package/src/renderers/shaders/ShaderLib/depth.glsl.js +97 -97
  889. package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +78 -78
  890. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +35 -35
  891. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +76 -76
  892. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +116 -116
  893. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +125 -125
  894. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +112 -112
  895. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +87 -87
  896. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +127 -127
  897. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +225 -225
  898. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +119 -119
  899. package/src/renderers/shaders/ShaderLib/points.glsl.js +87 -87
  900. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +58 -58
  901. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +81 -81
  902. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +53 -53
  903. package/src/renderers/shaders/ShaderLib.js +360 -360
  904. package/src/renderers/shaders/UniformsLib.js +231 -231
  905. package/src/renderers/shaders/UniformsUtils.js +104 -104
  906. package/src/renderers/webgl/WebGLAnimation.js +53 -53
  907. package/src/renderers/webgl/WebGLAttributes.js +229 -229
  908. package/src/renderers/webgl/WebGLBackground.js +257 -257
  909. package/src/renderers/webgl/WebGLBindingStates.js +631 -631
  910. package/src/renderers/webgl/WebGLBufferRenderer.js +92 -92
  911. package/src/renderers/webgl/WebGLCapabilities.js +120 -120
  912. package/src/renderers/webgl/WebGLClipping.js +171 -171
  913. package/src/renderers/webgl/WebGLCubeMaps.js +99 -99
  914. package/src/renderers/webgl/WebGLCubeUVMaps.js +132 -132
  915. package/src/renderers/webgl/WebGLExtensions.js +97 -97
  916. package/src/renderers/webgl/WebGLGeometries.js +211 -211
  917. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +102 -102
  918. package/src/renderers/webgl/WebGLInfo.js +71 -71
  919. package/src/renderers/webgl/WebGLLights.js +590 -590
  920. package/src/renderers/webgl/WebGLMaterials.js +590 -590
  921. package/src/renderers/webgl/WebGLMorphtargets.js +307 -307
  922. package/src/renderers/webgl/WebGLObjects.js +92 -92
  923. package/src/renderers/webgl/WebGLProgram.js +1120 -1120
  924. package/src/renderers/webgl/WebGLPrograms.js +664 -664
  925. package/src/renderers/webgl/WebGLProperties.js +48 -48
  926. package/src/renderers/webgl/WebGLRenderLists.js +238 -238
  927. package/src/renderers/webgl/WebGLRenderStates.js +107 -107
  928. package/src/renderers/webgl/WebGLShader.js +12 -12
  929. package/src/renderers/webgl/WebGLShaderCache.js +124 -124
  930. package/src/renderers/webgl/WebGLShadowMap.js +424 -424
  931. package/src/renderers/webgl/WebGLState.js +1318 -1318
  932. package/src/renderers/webgl/WebGLTextures.js +2213 -2213
  933. package/src/renderers/webgl/WebGLUniforms.js +1156 -1156
  934. package/src/renderers/webgl/WebGLUniformsGroups.js +392 -392
  935. package/src/renderers/webgl/WebGLUtils.js +283 -283
  936. package/src/renderers/webxr/WebXRController.js +343 -343
  937. package/src/renderers/webxr/WebXRDepthSensing.js +105 -105
  938. package/src/renderers/webxr/WebXRManager.js +824 -824
  939. package/src/scenes/Fog.js +38 -38
  940. package/src/scenes/FogExp2.js +35 -35
  941. package/src/scenes/Scene.js +71 -71
  942. package/src/textures/CanvasTexture.js +17 -17
  943. package/src/textures/CompressedArrayTexture.js +18 -18
  944. package/src/textures/CompressedCubeTexture.js +19 -19
  945. package/src/textures/CompressedTexture.js +28 -28
  946. package/src/textures/CubeTexture.js +33 -33
  947. package/src/textures/Data3DTexture.js +35 -35
  948. package/src/textures/DataArrayTexture.js +27 -27
  949. package/src/textures/DataTexture.js +22 -22
  950. package/src/textures/DepthTexture.js +58 -58
  951. package/src/textures/FramebufferTexture.js +23 -23
  952. package/src/textures/Source.js +128 -128
  953. package/src/textures/Texture.js +310 -310
  954. package/src/textures/VideoTexture.js +55 -55
  955. package/src/utils.js +91 -91
@@ -1,1430 +1,1430 @@
1
- // Three.js Transpiler
2
- // https://raw.githubusercontent.com/AcademySoftwareFoundation/MaterialX/main/libraries/stdlib/genglsl/lib/mx_noise.glsl
3
-
4
- import { int, uint, float, vec3, bool, uvec3, vec2, vec4, If, tslFn } from '../../shadernode/ShaderNode.js';
5
- import { cond } from '../../math/CondNode.js';
6
- import { sub, mul } from '../../math/OperatorNode.js';
7
- import { floor, abs, max, dot, min, sqrt } from '../../math/MathNode.js';
8
- import { overloadingFn } from '../../utils/FunctionOverloadingNode.js';
9
- import { loop } from '../../utils/LoopNode.js';
10
-
11
- const mx_select = tslFn( ( [ b_immutable, t_immutable, f_immutable ] ) => {
12
-
13
- const f = float( f_immutable ).toVar();
14
- const t = float( t_immutable ).toVar();
15
- const b = bool( b_immutable ).toVar();
16
-
17
- return cond( b, t, f );
18
-
19
- } );
20
-
21
- const mx_negate_if = tslFn( ( [ val_immutable, b_immutable ] ) => {
22
-
23
- const b = bool( b_immutable ).toVar();
24
- const val = float( val_immutable ).toVar();
25
-
26
- return cond( b, val.negate(), val );
27
-
28
- } );
29
-
30
- const mx_floor = tslFn( ( [ x_immutable ] ) => {
31
-
32
- const x = float( x_immutable ).toVar();
33
-
34
- return int( floor( x ) );
35
-
36
- } );
37
-
38
- const mx_floorfrac = tslFn( ( [ x_immutable, i ] ) => {
39
-
40
- const x = float( x_immutable ).toVar();
41
- i.assign( mx_floor( x ) );
42
-
43
- return x.sub( float( i ) );
44
-
45
- } );
46
-
47
- const mx_bilerp_0 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, s_immutable, t_immutable ] ) => {
48
-
49
- const t = float( t_immutable ).toVar();
50
- const s = float( s_immutable ).toVar();
51
- const v3 = float( v3_immutable ).toVar();
52
- const v2 = float( v2_immutable ).toVar();
53
- const v1 = float( v1_immutable ).toVar();
54
- const v0 = float( v0_immutable ).toVar();
55
- const s1 = float( sub( 1.0, s ) ).toVar();
56
-
57
- return sub( 1.0, t ).mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) );
58
-
59
- } );
60
-
61
- const mx_bilerp_1 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, s_immutable, t_immutable ] ) => {
62
-
63
- const t = float( t_immutable ).toVar();
64
- const s = float( s_immutable ).toVar();
65
- const v3 = vec3( v3_immutable ).toVar();
66
- const v2 = vec3( v2_immutable ).toVar();
67
- const v1 = vec3( v1_immutable ).toVar();
68
- const v0 = vec3( v0_immutable ).toVar();
69
- const s1 = float( sub( 1.0, s ) ).toVar();
70
-
71
- return sub( 1.0, t ).mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) );
72
-
73
- } );
74
-
75
- const mx_bilerp = overloadingFn( [ mx_bilerp_0, mx_bilerp_1 ] );
76
-
77
- const mx_trilerp_0 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, v4_immutable, v5_immutable, v6_immutable, v7_immutable, s_immutable, t_immutable, r_immutable ] ) => {
78
-
79
- const r = float( r_immutable ).toVar();
80
- const t = float( t_immutable ).toVar();
81
- const s = float( s_immutable ).toVar();
82
- const v7 = float( v7_immutable ).toVar();
83
- const v6 = float( v6_immutable ).toVar();
84
- const v5 = float( v5_immutable ).toVar();
85
- const v4 = float( v4_immutable ).toVar();
86
- const v3 = float( v3_immutable ).toVar();
87
- const v2 = float( v2_immutable ).toVar();
88
- const v1 = float( v1_immutable ).toVar();
89
- const v0 = float( v0_immutable ).toVar();
90
- const s1 = float( sub( 1.0, s ) ).toVar();
91
- const t1 = float( sub( 1.0, t ) ).toVar();
92
- const r1 = float( sub( 1.0, r ) ).toVar();
93
-
94
- return r1.mul( t1.mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) ) ).add( r.mul( t1.mul( v4.mul( s1 ).add( v5.mul( s ) ) ).add( t.mul( v6.mul( s1 ).add( v7.mul( s ) ) ) ) ) );
95
-
96
- } );
97
-
98
- const mx_trilerp_1 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, v4_immutable, v5_immutable, v6_immutable, v7_immutable, s_immutable, t_immutable, r_immutable ] ) => {
99
-
100
- const r = float( r_immutable ).toVar();
101
- const t = float( t_immutable ).toVar();
102
- const s = float( s_immutable ).toVar();
103
- const v7 = vec3( v7_immutable ).toVar();
104
- const v6 = vec3( v6_immutable ).toVar();
105
- const v5 = vec3( v5_immutable ).toVar();
106
- const v4 = vec3( v4_immutable ).toVar();
107
- const v3 = vec3( v3_immutable ).toVar();
108
- const v2 = vec3( v2_immutable ).toVar();
109
- const v1 = vec3( v1_immutable ).toVar();
110
- const v0 = vec3( v0_immutable ).toVar();
111
- const s1 = float( sub( 1.0, s ) ).toVar();
112
- const t1 = float( sub( 1.0, t ) ).toVar();
113
- const r1 = float( sub( 1.0, r ) ).toVar();
114
-
115
- return r1.mul( t1.mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) ) ).add( r.mul( t1.mul( v4.mul( s1 ).add( v5.mul( s ) ) ).add( t.mul( v6.mul( s1 ).add( v7.mul( s ) ) ) ) ) );
116
-
117
- } );
118
-
119
- const mx_trilerp = overloadingFn( [ mx_trilerp_0, mx_trilerp_1 ] );
120
-
121
- const mx_gradient_float_0 = tslFn( ( [ hash_immutable, x_immutable, y_immutable ] ) => {
122
-
123
- const y = float( y_immutable ).toVar();
124
- const x = float( x_immutable ).toVar();
125
- const hash = uint( hash_immutable ).toVar();
126
- const h = uint( hash.bitAnd( uint( 7 ) ) ).toVar();
127
- const u = float( mx_select( h.lessThan( uint( 4 ) ), x, y ) ).toVar();
128
- const v = float( mul( 2.0, mx_select( h.lessThan( uint( 4 ) ), y, x ) ) ).toVar();
129
-
130
- return mx_negate_if( u, bool( h.bitAnd( uint( 1 ) ) ) ).add( mx_negate_if( v, bool( h.bitAnd( uint( 2 ) ) ) ) );
131
-
132
- } );
133
-
134
- const mx_gradient_float_1 = tslFn( ( [ hash_immutable, x_immutable, y_immutable, z_immutable ] ) => {
135
-
136
- const z = float( z_immutable ).toVar();
137
- const y = float( y_immutable ).toVar();
138
- const x = float( x_immutable ).toVar();
139
- const hash = uint( hash_immutable ).toVar();
140
- const h = uint( hash.bitAnd( uint( 15 ) ) ).toVar();
141
- const u = float( mx_select( h.lessThan( uint( 8 ) ), x, y ) ).toVar();
142
- const v = float( mx_select( h.lessThan( uint( 4 ) ), y, mx_select( h.equal( uint( 12 ) ).or( h.equal( uint( 14 ) ) ), x, z ) ) ).toVar();
143
-
144
- return mx_negate_if( u, bool( h.bitAnd( uint( 1 ) ) ) ).add( mx_negate_if( v, bool( h.bitAnd( uint( 2 ) ) ) ) );
145
-
146
- } );
147
-
148
- const mx_gradient_float = overloadingFn( [ mx_gradient_float_0, mx_gradient_float_1 ] );
149
-
150
- const mx_gradient_vec3_0 = tslFn( ( [ hash_immutable, x_immutable, y_immutable ] ) => {
151
-
152
- const y = float( y_immutable ).toVar();
153
- const x = float( x_immutable ).toVar();
154
- const hash = uvec3( hash_immutable ).toVar();
155
-
156
- return vec3( mx_gradient_float( hash.x, x, y ), mx_gradient_float( hash.y, x, y ), mx_gradient_float( hash.z, x, y ) );
157
-
158
- } );
159
-
160
- const mx_gradient_vec3_1 = tslFn( ( [ hash_immutable, x_immutable, y_immutable, z_immutable ] ) => {
161
-
162
- const z = float( z_immutable ).toVar();
163
- const y = float( y_immutable ).toVar();
164
- const x = float( x_immutable ).toVar();
165
- const hash = uvec3( hash_immutable ).toVar();
166
-
167
- return vec3( mx_gradient_float( hash.x, x, y, z ), mx_gradient_float( hash.y, x, y, z ), mx_gradient_float( hash.z, x, y, z ) );
168
-
169
- } );
170
-
171
- const mx_gradient_vec3 = overloadingFn( [ mx_gradient_vec3_0, mx_gradient_vec3_1 ] );
172
-
173
- const mx_gradient_scale2d_0 = tslFn( ( [ v_immutable ] ) => {
174
-
175
- const v = float( v_immutable ).toVar();
176
-
177
- return mul( 0.6616, v );
178
-
179
- } );
180
-
181
- const mx_gradient_scale3d_0 = tslFn( ( [ v_immutable ] ) => {
182
-
183
- const v = float( v_immutable ).toVar();
184
-
185
- return mul( 0.9820, v );
186
-
187
- } );
188
-
189
- const mx_gradient_scale2d_1 = tslFn( ( [ v_immutable ] ) => {
190
-
191
- const v = vec3( v_immutable ).toVar();
192
-
193
- return mul( 0.6616, v );
194
-
195
- } );
196
-
197
- const mx_gradient_scale2d = overloadingFn( [ mx_gradient_scale2d_0, mx_gradient_scale2d_1 ] );
198
-
199
- const mx_gradient_scale3d_1 = tslFn( ( [ v_immutable ] ) => {
200
-
201
- const v = vec3( v_immutable ).toVar();
202
-
203
- return mul( 0.9820, v );
204
-
205
- } );
206
-
207
- const mx_gradient_scale3d = overloadingFn( [ mx_gradient_scale3d_0, mx_gradient_scale3d_1 ] );
208
-
209
- const mx_rotl32 = tslFn( ( [ x_immutable, k_immutable ] ) => {
210
-
211
- const k = int( k_immutable ).toVar();
212
- const x = uint( x_immutable ).toVar();
213
-
214
- return x.shiftLeft( k ).bitOr( x.shiftRight( int( 32 ).sub( k ) ) );
215
-
216
- } );
217
-
218
- const mx_bjmix = tslFn( ( [ a, b, c ] ) => {
219
-
220
- a.subAssign( c );
221
- a.bitXorAssign( mx_rotl32( c, int( 4 ) ) );
222
- c.addAssign( b );
223
- b.subAssign( a );
224
- b.bitXorAssign( mx_rotl32( a, int( 6 ) ) );
225
- a.addAssign( c );
226
- c.subAssign( b );
227
- c.bitXorAssign( mx_rotl32( b, int( 8 ) ) );
228
- b.addAssign( a );
229
- a.subAssign( c );
230
- a.bitXorAssign( mx_rotl32( c, int( 16 ) ) );
231
- c.addAssign( b );
232
- b.subAssign( a );
233
- b.bitXorAssign( mx_rotl32( a, int( 19 ) ) );
234
- a.addAssign( c );
235
- c.subAssign( b );
236
- c.bitXorAssign( mx_rotl32( b, int( 4 ) ) );
237
- b.addAssign( a );
238
-
239
- } );
240
-
241
- const mx_bjfinal = tslFn( ( [ a_immutable, b_immutable, c_immutable ] ) => {
242
-
243
- const c = uint( c_immutable ).toVar();
244
- const b = uint( b_immutable ).toVar();
245
- const a = uint( a_immutable ).toVar();
246
- c.bitXorAssign( b );
247
- c.subAssign( mx_rotl32( b, int( 14 ) ) );
248
- a.bitXorAssign( c );
249
- a.subAssign( mx_rotl32( c, int( 11 ) ) );
250
- b.bitXorAssign( a );
251
- b.subAssign( mx_rotl32( a, int( 25 ) ) );
252
- c.bitXorAssign( b );
253
- c.subAssign( mx_rotl32( b, int( 16 ) ) );
254
- a.bitXorAssign( c );
255
- a.subAssign( mx_rotl32( c, int( 4 ) ) );
256
- b.bitXorAssign( a );
257
- b.subAssign( mx_rotl32( a, int( 14 ) ) );
258
- c.bitXorAssign( b );
259
- c.subAssign( mx_rotl32( b, int( 24 ) ) );
260
-
261
- return c;
262
-
263
- } );
264
-
265
- const mx_bits_to_01 = tslFn( ( [ bits_immutable ] ) => {
266
-
267
- const bits = uint( bits_immutable ).toVar();
268
-
269
- return float( bits ).div( float( uint( int( 0xffffffff ) ) ) );
270
-
271
- } );
272
-
273
- const mx_fade = tslFn( ( [ t_immutable ] ) => {
274
-
275
- const t = float( t_immutable ).toVar();
276
-
277
- return t.mul( t.mul( t.mul( t.mul( t.mul( 6.0 ).sub( 15.0 ) ).add( 10.0 ) ) ) );
278
-
279
- } );
280
-
281
- const mx_hash_int_0 = tslFn( ( [ x_immutable ] ) => {
282
-
283
- const x = int( x_immutable ).toVar();
284
- const len = uint( uint( 1 ) ).toVar();
285
- const seed = uint( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ).toVar();
286
-
287
- return mx_bjfinal( seed.add( uint( x ) ), seed, seed );
288
-
289
- } );
290
-
291
- const mx_hash_int_1 = tslFn( ( [ x_immutable, y_immutable ] ) => {
292
-
293
- const y = int( y_immutable ).toVar();
294
- const x = int( x_immutable ).toVar();
295
- const len = uint( uint( 2 ) ).toVar();
296
- const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
297
- a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
298
- a.addAssign( uint( x ) );
299
- b.addAssign( uint( y ) );
300
-
301
- return mx_bjfinal( a, b, c );
302
-
303
- } );
304
-
305
- const mx_hash_int_2 = tslFn( ( [ x_immutable, y_immutable, z_immutable ] ) => {
306
-
307
- const z = int( z_immutable ).toVar();
308
- const y = int( y_immutable ).toVar();
309
- const x = int( x_immutable ).toVar();
310
- const len = uint( uint( 3 ) ).toVar();
311
- const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
312
- a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
313
- a.addAssign( uint( x ) );
314
- b.addAssign( uint( y ) );
315
- c.addAssign( uint( z ) );
316
-
317
- return mx_bjfinal( a, b, c );
318
-
319
- } );
320
-
321
- const mx_hash_int_3 = tslFn( ( [ x_immutable, y_immutable, z_immutable, xx_immutable ] ) => {
322
-
323
- const xx = int( xx_immutable ).toVar();
324
- const z = int( z_immutable ).toVar();
325
- const y = int( y_immutable ).toVar();
326
- const x = int( x_immutable ).toVar();
327
- const len = uint( uint( 4 ) ).toVar();
328
- const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
329
- a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
330
- a.addAssign( uint( x ) );
331
- b.addAssign( uint( y ) );
332
- c.addAssign( uint( z ) );
333
- mx_bjmix( a, b, c );
334
- a.addAssign( uint( xx ) );
335
-
336
- return mx_bjfinal( a, b, c );
337
-
338
- } );
339
-
340
- const mx_hash_int_4 = tslFn( ( [ x_immutable, y_immutable, z_immutable, xx_immutable, yy_immutable ] ) => {
341
-
342
- const yy = int( yy_immutable ).toVar();
343
- const xx = int( xx_immutable ).toVar();
344
- const z = int( z_immutable ).toVar();
345
- const y = int( y_immutable ).toVar();
346
- const x = int( x_immutable ).toVar();
347
- const len = uint( uint( 5 ) ).toVar();
348
- const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
349
- a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
350
- a.addAssign( uint( x ) );
351
- b.addAssign( uint( y ) );
352
- c.addAssign( uint( z ) );
353
- mx_bjmix( a, b, c );
354
- a.addAssign( uint( xx ) );
355
- b.addAssign( uint( yy ) );
356
-
357
- return mx_bjfinal( a, b, c );
358
-
359
- } );
360
-
361
- const mx_hash_int = overloadingFn( [ mx_hash_int_0, mx_hash_int_1, mx_hash_int_2, mx_hash_int_3, mx_hash_int_4 ] );
362
-
363
- const mx_hash_vec3_0 = tslFn( ( [ x_immutable, y_immutable ] ) => {
364
-
365
- const y = int( y_immutable ).toVar();
366
- const x = int( x_immutable ).toVar();
367
- const h = uint( mx_hash_int( x, y ) ).toVar();
368
- const result = uvec3().toVar();
369
- result.x.assign( h.bitAnd( int( 0xFF ) ) );
370
- result.y.assign( h.shiftRight( int( 8 ) ).bitAnd( int( 0xFF ) ) );
371
- result.z.assign( h.shiftRight( int( 16 ) ).bitAnd( int( 0xFF ) ) );
372
-
373
- return result;
374
-
375
- } );
376
-
377
- const mx_hash_vec3_1 = tslFn( ( [ x_immutable, y_immutable, z_immutable ] ) => {
378
-
379
- const z = int( z_immutable ).toVar();
380
- const y = int( y_immutable ).toVar();
381
- const x = int( x_immutable ).toVar();
382
- const h = uint( mx_hash_int( x, y, z ) ).toVar();
383
- const result = uvec3().toVar();
384
- result.x.assign( h.bitAnd( int( 0xFF ) ) );
385
- result.y.assign( h.shiftRight( int( 8 ) ).bitAnd( int( 0xFF ) ) );
386
- result.z.assign( h.shiftRight( int( 16 ) ).bitAnd( int( 0xFF ) ) );
387
-
388
- return result;
389
-
390
- } );
391
-
392
- const mx_hash_vec3 = overloadingFn( [ mx_hash_vec3_0, mx_hash_vec3_1 ] );
393
-
394
- const mx_perlin_noise_float_0 = tslFn( ( [ p_immutable ] ) => {
395
-
396
- const p = vec2( p_immutable ).toVar();
397
- const X = int().toVar(), Y = int().toVar();
398
- const fx = float( mx_floorfrac( p.x, X ) ).toVar();
399
- const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
400
- const u = float( mx_fade( fx ) ).toVar();
401
- const v = float( mx_fade( fy ) ).toVar();
402
- const result = float( mx_bilerp( mx_gradient_float( mx_hash_int( X, Y ), fx, fy ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y ), fx.sub( 1.0 ), fy ), mx_gradient_float( mx_hash_int( X, Y.add( int( 1 ) ) ), fx, fy.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ) ), u, v ) ).toVar();
403
-
404
- return mx_gradient_scale2d( result );
405
-
406
- } );
407
-
408
- const mx_perlin_noise_float_1 = tslFn( ( [ p_immutable ] ) => {
409
-
410
- const p = vec3( p_immutable ).toVar();
411
- const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
412
- const fx = float( mx_floorfrac( p.x, X ) ).toVar();
413
- const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
414
- const fz = float( mx_floorfrac( p.z, Z ) ).toVar();
415
- const u = float( mx_fade( fx ) ).toVar();
416
- const v = float( mx_fade( fy ) ).toVar();
417
- const w = float( mx_fade( fz ) ).toVar();
418
- const result = float( mx_trilerp( mx_gradient_float( mx_hash_int( X, Y, Z ), fx, fy, fz ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y, Z ), fx.sub( 1.0 ), fy, fz ), mx_gradient_float( mx_hash_int( X, Y.add( int( 1 ) ), Z ), fx, fy.sub( 1.0 ), fz ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz ), mx_gradient_float( mx_hash_int( X, Y, Z.add( int( 1 ) ) ), fx, fy, fz.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y, Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy, fz.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X, Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx, fy.sub( 1.0 ), fz.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz.sub( 1.0 ) ), u, v, w ) ).toVar();
419
-
420
- return mx_gradient_scale3d( result );
421
-
422
- } );
423
-
424
- const mx_perlin_noise_float = overloadingFn( [ mx_perlin_noise_float_0, mx_perlin_noise_float_1 ] );
425
-
426
- const mx_perlin_noise_vec3_0 = tslFn( ( [ p_immutable ] ) => {
427
-
428
- const p = vec2( p_immutable ).toVar();
429
- const X = int().toVar(), Y = int().toVar();
430
- const fx = float( mx_floorfrac( p.x, X ) ).toVar();
431
- const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
432
- const u = float( mx_fade( fx ) ).toVar();
433
- const v = float( mx_fade( fy ) ).toVar();
434
- const result = vec3( mx_bilerp( mx_gradient_vec3( mx_hash_vec3( X, Y ), fx, fy ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y ), fx.sub( 1.0 ), fy ), mx_gradient_vec3( mx_hash_vec3( X, Y.add( int( 1 ) ) ), fx, fy.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ) ), u, v ) ).toVar();
435
-
436
- return mx_gradient_scale2d( result );
437
-
438
- } );
439
-
440
- const mx_perlin_noise_vec3_1 = tslFn( ( [ p_immutable ] ) => {
441
-
442
- const p = vec3( p_immutable ).toVar();
443
- const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
444
- const fx = float( mx_floorfrac( p.x, X ) ).toVar();
445
- const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
446
- const fz = float( mx_floorfrac( p.z, Z ) ).toVar();
447
- const u = float( mx_fade( fx ) ).toVar();
448
- const v = float( mx_fade( fy ) ).toVar();
449
- const w = float( mx_fade( fz ) ).toVar();
450
- const result = vec3( mx_trilerp( mx_gradient_vec3( mx_hash_vec3( X, Y, Z ), fx, fy, fz ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y, Z ), fx.sub( 1.0 ), fy, fz ), mx_gradient_vec3( mx_hash_vec3( X, Y.add( int( 1 ) ), Z ), fx, fy.sub( 1.0 ), fz ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz ), mx_gradient_vec3( mx_hash_vec3( X, Y, Z.add( int( 1 ) ) ), fx, fy, fz.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y, Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy, fz.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X, Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx, fy.sub( 1.0 ), fz.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz.sub( 1.0 ) ), u, v, w ) ).toVar();
451
-
452
- return mx_gradient_scale3d( result );
453
-
454
- } );
455
-
456
- const mx_perlin_noise_vec3 = overloadingFn( [ mx_perlin_noise_vec3_0, mx_perlin_noise_vec3_1 ] );
457
-
458
- const mx_cell_noise_float_0 = tslFn( ( [ p_immutable ] ) => {
459
-
460
- const p = float( p_immutable ).toVar();
461
- const ix = int( mx_floor( p ) ).toVar();
462
-
463
- return mx_bits_to_01( mx_hash_int( ix ) );
464
-
465
- } );
466
-
467
- const mx_cell_noise_float_1 = tslFn( ( [ p_immutable ] ) => {
468
-
469
- const p = vec2( p_immutable ).toVar();
470
- const ix = int( mx_floor( p.x ) ).toVar();
471
- const iy = int( mx_floor( p.y ) ).toVar();
472
-
473
- return mx_bits_to_01( mx_hash_int( ix, iy ) );
474
-
475
- } );
476
-
477
- const mx_cell_noise_float_2 = tslFn( ( [ p_immutable ] ) => {
478
-
479
- const p = vec3( p_immutable ).toVar();
480
- const ix = int( mx_floor( p.x ) ).toVar();
481
- const iy = int( mx_floor( p.y ) ).toVar();
482
- const iz = int( mx_floor( p.z ) ).toVar();
483
-
484
- return mx_bits_to_01( mx_hash_int( ix, iy, iz ) );
485
-
486
- } );
487
-
488
- const mx_cell_noise_float_3 = tslFn( ( [ p_immutable ] ) => {
489
-
490
- const p = vec4( p_immutable ).toVar();
491
- const ix = int( mx_floor( p.x ) ).toVar();
492
- const iy = int( mx_floor( p.y ) ).toVar();
493
- const iz = int( mx_floor( p.z ) ).toVar();
494
- const iw = int( mx_floor( p.w ) ).toVar();
495
-
496
- return mx_bits_to_01( mx_hash_int( ix, iy, iz, iw ) );
497
-
498
- } );
499
-
500
- const mx_cell_noise_float = overloadingFn( [ mx_cell_noise_float_0, mx_cell_noise_float_1, mx_cell_noise_float_2, mx_cell_noise_float_3 ] );
501
-
502
- const mx_cell_noise_vec3_0 = tslFn( ( [ p_immutable ] ) => {
503
-
504
- const p = float( p_immutable ).toVar();
505
- const ix = int( mx_floor( p ) ).toVar();
506
-
507
- return vec3( mx_bits_to_01( mx_hash_int( ix, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, int( 2 ) ) ) );
508
-
509
- } );
510
-
511
- const mx_cell_noise_vec3_1 = tslFn( ( [ p_immutable ] ) => {
512
-
513
- const p = vec2( p_immutable ).toVar();
514
- const ix = int( mx_floor( p.x ) ).toVar();
515
- const iy = int( mx_floor( p.y ) ).toVar();
516
-
517
- return vec3( mx_bits_to_01( mx_hash_int( ix, iy, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, int( 2 ) ) ) );
518
-
519
- } );
520
-
521
- const mx_cell_noise_vec3_2 = tslFn( ( [ p_immutable ] ) => {
522
-
523
- const p = vec3( p_immutable ).toVar();
524
- const ix = int( mx_floor( p.x ) ).toVar();
525
- const iy = int( mx_floor( p.y ) ).toVar();
526
- const iz = int( mx_floor( p.z ) ).toVar();
527
-
528
- return vec3( mx_bits_to_01( mx_hash_int( ix, iy, iz, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, int( 2 ) ) ) );
529
-
530
- } );
531
-
532
- const mx_cell_noise_vec3_3 = tslFn( ( [ p_immutable ] ) => {
533
-
534
- const p = vec4( p_immutable ).toVar();
535
- const ix = int( mx_floor( p.x ) ).toVar();
536
- const iy = int( mx_floor( p.y ) ).toVar();
537
- const iz = int( mx_floor( p.z ) ).toVar();
538
- const iw = int( mx_floor( p.w ) ).toVar();
539
-
540
- return vec3( mx_bits_to_01( mx_hash_int( ix, iy, iz, iw, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, iw, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, iw, int( 2 ) ) ) );
541
-
542
- } );
543
-
544
- const mx_cell_noise_vec3 = overloadingFn( [ mx_cell_noise_vec3_0, mx_cell_noise_vec3_1, mx_cell_noise_vec3_2, mx_cell_noise_vec3_3 ] );
545
-
546
- const mx_fractal_noise_float = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
547
-
548
- const diminish = float( diminish_immutable ).toVar();
549
- const lacunarity = float( lacunarity_immutable ).toVar();
550
- const octaves = int( octaves_immutable ).toVar();
551
- const p = vec3( p_immutable ).toVar();
552
- const result = float( 0.0 ).toVar();
553
- const amplitude = float( 1.0 ).toVar();
554
-
555
- loop( { start: int( 0 ), end: octaves }, ( { i } ) => {
556
-
557
- result.addAssign( amplitude.mul( mx_perlin_noise_float( p ) ) );
558
- amplitude.mulAssign( diminish );
559
- p.mulAssign( lacunarity );
560
-
561
- } );
562
-
563
- return result;
564
-
565
- } );
566
-
567
- const mx_fractal_noise_vec3 = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
568
-
569
- const diminish = float( diminish_immutable ).toVar();
570
- const lacunarity = float( lacunarity_immutable ).toVar();
571
- const octaves = int( octaves_immutable ).toVar();
572
- const p = vec3( p_immutable ).toVar();
573
- const result = vec3( 0.0 ).toVar();
574
- const amplitude = float( 1.0 ).toVar();
575
-
576
- loop( { start: int( 0 ), end: octaves }, ( { i } ) => {
577
-
578
- result.addAssign( amplitude.mul( mx_perlin_noise_vec3( p ) ) );
579
- amplitude.mulAssign( diminish );
580
- p.mulAssign( lacunarity );
581
-
582
- } );
583
-
584
- return result;
585
-
586
- } );
587
-
588
- const mx_fractal_noise_vec2 = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
589
-
590
- const diminish = float( diminish_immutable ).toVar();
591
- const lacunarity = float( lacunarity_immutable ).toVar();
592
- const octaves = int( octaves_immutable ).toVar();
593
- const p = vec3( p_immutable ).toVar();
594
-
595
- return vec2( mx_fractal_noise_float( p, octaves, lacunarity, diminish ), mx_fractal_noise_float( p.add( vec3( int( 19 ), int( 193 ), int( 17 ) ) ), octaves, lacunarity, diminish ) );
596
-
597
- } );
598
-
599
- const mx_fractal_noise_vec4 = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
600
-
601
- const diminish = float( diminish_immutable ).toVar();
602
- const lacunarity = float( lacunarity_immutable ).toVar();
603
- const octaves = int( octaves_immutable ).toVar();
604
- const p = vec3( p_immutable ).toVar();
605
- const c = vec3( mx_fractal_noise_vec3( p, octaves, lacunarity, diminish ) ).toVar();
606
- const f = float( mx_fractal_noise_float( p.add( vec3( int( 19 ), int( 193 ), int( 17 ) ) ), octaves, lacunarity, diminish ) ).toVar();
607
-
608
- return vec4( c, f );
609
-
610
- } );
611
-
612
- const mx_worley_distance_0 = tslFn( ( [ p_immutable, x_immutable, y_immutable, xoff_immutable, yoff_immutable, jitter_immutable, metric_immutable ] ) => {
613
-
614
- const metric = int( metric_immutable ).toVar();
615
- const jitter = float( jitter_immutable ).toVar();
616
- const yoff = int( yoff_immutable ).toVar();
617
- const xoff = int( xoff_immutable ).toVar();
618
- const y = int( y_immutable ).toVar();
619
- const x = int( x_immutable ).toVar();
620
- const p = vec2( p_immutable ).toVar();
621
- const tmp = vec3( mx_cell_noise_vec3( vec2( x.add( xoff ), y.add( yoff ) ) ) ).toVar();
622
- const off = vec2( tmp.x, tmp.y ).toVar();
623
- off.subAssign( 0.5 );
624
- off.mulAssign( jitter );
625
- off.addAssign( 0.5 );
626
- const cellpos = vec2( vec2( float( x ), float( y ) ).add( off ) ).toVar();
627
- const diff = vec2( cellpos.sub( p ) ).toVar();
628
-
629
- If( metric.equal( int( 2 ) ), () => {
630
-
631
- return abs( diff.x ).add( abs( diff.y ) );
632
-
633
- } );
634
-
635
- If( metric.equal( int( 3 ) ), () => {
636
-
637
- return max( abs( diff.x ), abs( diff.y ) );
638
-
639
- } );
640
-
641
- return dot( diff, diff );
642
-
643
- } );
644
-
645
- const mx_worley_distance_1 = tslFn( ( [ p_immutable, x_immutable, y_immutable, z_immutable, xoff_immutable, yoff_immutable, zoff_immutable, jitter_immutable, metric_immutable ] ) => {
646
-
647
- const metric = int( metric_immutable ).toVar();
648
- const jitter = float( jitter_immutable ).toVar();
649
- const zoff = int( zoff_immutable ).toVar();
650
- const yoff = int( yoff_immutable ).toVar();
651
- const xoff = int( xoff_immutable ).toVar();
652
- const z = int( z_immutable ).toVar();
653
- const y = int( y_immutable ).toVar();
654
- const x = int( x_immutable ).toVar();
655
- const p = vec3( p_immutable ).toVar();
656
- const off = vec3( mx_cell_noise_vec3( vec3( x.add( xoff ), y.add( yoff ), z.add( zoff ) ) ) ).toVar();
657
- off.subAssign( 0.5 );
658
- off.mulAssign( jitter );
659
- off.addAssign( 0.5 );
660
- const cellpos = vec3( vec3( float( x ), float( y ), float( z ) ).add( off ) ).toVar();
661
- const diff = vec3( cellpos.sub( p ) ).toVar();
662
-
663
- If( metric.equal( int( 2 ) ), () => {
664
-
665
- return abs( diff.x ).add( abs( diff.y ).add( abs( diff.z ) ) );
666
-
667
- } );
668
-
669
- If( metric.equal( int( 3 ) ), () => {
670
-
671
- return max( max( abs( diff.x ), abs( diff.y ) ), abs( diff.z ) );
672
-
673
- } );
674
-
675
- return dot( diff, diff );
676
-
677
- } );
678
-
679
- const mx_worley_distance = overloadingFn( [ mx_worley_distance_0, mx_worley_distance_1 ] );
680
-
681
- const mx_worley_noise_float_0 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
682
-
683
- const metric = int( metric_immutable ).toVar();
684
- const jitter = float( jitter_immutable ).toVar();
685
- const p = vec2( p_immutable ).toVar();
686
- const X = int().toVar(), Y = int().toVar();
687
- const localpos = vec2( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ) ).toVar();
688
- const sqdist = float( 1e6 ).toVar();
689
-
690
- loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
691
-
692
- loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
693
-
694
- const dist = float( mx_worley_distance( localpos, x, y, X, Y, jitter, metric ) ).toVar();
695
- sqdist.assign( min( sqdist, dist ) );
696
-
697
- } );
698
-
699
- } );
700
-
701
- If( metric.equal( int( 0 ) ), () => {
702
-
703
- sqdist.assign( sqrt( sqdist ) );
704
-
705
- } );
706
-
707
- return sqdist;
708
-
709
- } );
710
-
711
- const mx_worley_noise_vec2_0 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
712
-
713
- const metric = int( metric_immutable ).toVar();
714
- const jitter = float( jitter_immutable ).toVar();
715
- const p = vec2( p_immutable ).toVar();
716
- const X = int().toVar(), Y = int().toVar();
717
- const localpos = vec2( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ) ).toVar();
718
- const sqdist = vec2( 1e6, 1e6 ).toVar();
719
-
720
- loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
721
-
722
- loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
723
-
724
- const dist = float( mx_worley_distance( localpos, x, y, X, Y, jitter, metric ) ).toVar();
725
-
726
- If( dist.lessThan( sqdist.x ), () => {
727
-
728
- sqdist.y.assign( sqdist.x );
729
- sqdist.x.assign( dist );
730
-
731
- } ).elseif( dist.lessThan( sqdist.y ), () => {
732
-
733
- sqdist.y.assign( dist );
734
-
735
- } );
736
-
737
- } );
738
-
739
- } );
740
-
741
- If( metric.equal( int( 0 ) ), () => {
742
-
743
- sqdist.assign( sqrt( sqdist ) );
744
-
745
- } );
746
-
747
- return sqdist;
748
-
749
- } );
750
-
751
- const mx_worley_noise_vec3_0 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
752
-
753
- const metric = int( metric_immutable ).toVar();
754
- const jitter = float( jitter_immutable ).toVar();
755
- const p = vec2( p_immutable ).toVar();
756
- const X = int().toVar(), Y = int().toVar();
757
- const localpos = vec2( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ) ).toVar();
758
- const sqdist = vec3( 1e6, 1e6, 1e6 ).toVar();
759
-
760
- loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
761
-
762
- loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
763
-
764
- const dist = float( mx_worley_distance( localpos, x, y, X, Y, jitter, metric ) ).toVar();
765
-
766
- If( dist.lessThan( sqdist.x ), () => {
767
-
768
- sqdist.z.assign( sqdist.y );
769
- sqdist.y.assign( sqdist.x );
770
- sqdist.x.assign( dist );
771
-
772
- } ).elseif( dist.lessThan( sqdist.y ), () => {
773
-
774
- sqdist.z.assign( sqdist.y );
775
- sqdist.y.assign( dist );
776
-
777
- } ).elseif( dist.lessThan( sqdist.z ), () => {
778
-
779
- sqdist.z.assign( dist );
780
-
781
- } );
782
-
783
- } );
784
-
785
- } );
786
-
787
- If( metric.equal( int( 0 ) ), () => {
788
-
789
- sqdist.assign( sqrt( sqdist ) );
790
-
791
- } );
792
-
793
- return sqdist;
794
-
795
- } );
796
-
797
- const mx_worley_noise_float_1 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
798
-
799
- const metric = int( metric_immutable ).toVar();
800
- const jitter = float( jitter_immutable ).toVar();
801
- const p = vec3( p_immutable ).toVar();
802
- const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
803
- const localpos = vec3( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ), mx_floorfrac( p.z, Z ) ).toVar();
804
- const sqdist = float( 1e6 ).toVar();
805
-
806
- loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
807
-
808
- loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
809
-
810
- loop( { start: - 1, end: int( 1 ), name: 'z', condition: '<=' }, ( { z } ) => {
811
-
812
- const dist = float( mx_worley_distance( localpos, x, y, z, X, Y, Z, jitter, metric ) ).toVar();
813
- sqdist.assign( min( sqdist, dist ) );
814
-
815
- } );
816
-
817
- } );
818
-
819
- } );
820
-
821
- If( metric.equal( int( 0 ) ), () => {
822
-
823
- sqdist.assign( sqrt( sqdist ) );
824
-
825
- } );
826
-
827
- return sqdist;
828
-
829
- } );
830
-
831
- const mx_worley_noise_float = overloadingFn( [ mx_worley_noise_float_0, mx_worley_noise_float_1 ] );
832
-
833
- const mx_worley_noise_vec2_1 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
834
-
835
- const metric = int( metric_immutable ).toVar();
836
- const jitter = float( jitter_immutable ).toVar();
837
- const p = vec3( p_immutable ).toVar();
838
- const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
839
- const localpos = vec3( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ), mx_floorfrac( p.z, Z ) ).toVar();
840
- const sqdist = vec2( 1e6, 1e6 ).toVar();
841
-
842
- loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
843
-
844
- loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
845
-
846
- loop( { start: - 1, end: int( 1 ), name: 'z', condition: '<=' }, ( { z } ) => {
847
-
848
- const dist = float( mx_worley_distance( localpos, x, y, z, X, Y, Z, jitter, metric ) ).toVar();
849
-
850
- If( dist.lessThan( sqdist.x ), () => {
851
-
852
- sqdist.y.assign( sqdist.x );
853
- sqdist.x.assign( dist );
854
-
855
- } ).elseif( dist.lessThan( sqdist.y ), () => {
856
-
857
- sqdist.y.assign( dist );
858
-
859
- } );
860
-
861
- } );
862
-
863
- } );
864
-
865
- } );
866
-
867
- If( metric.equal( int( 0 ) ), () => {
868
-
869
- sqdist.assign( sqrt( sqdist ) );
870
-
871
- } );
872
-
873
- return sqdist;
874
-
875
- } );
876
-
877
- const mx_worley_noise_vec2 = overloadingFn( [ mx_worley_noise_vec2_0, mx_worley_noise_vec2_1 ] );
878
-
879
- const mx_worley_noise_vec3_1 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
880
-
881
- const metric = int( metric_immutable ).toVar();
882
- const jitter = float( jitter_immutable ).toVar();
883
- const p = vec3( p_immutable ).toVar();
884
- const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
885
- const localpos = vec3( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ), mx_floorfrac( p.z, Z ) ).toVar();
886
- const sqdist = vec3( 1e6, 1e6, 1e6 ).toVar();
887
-
888
- loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
889
-
890
- loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
891
-
892
- loop( { start: - 1, end: int( 1 ), name: 'z', condition: '<=' }, ( { z } ) => {
893
-
894
- const dist = float( mx_worley_distance( localpos, x, y, z, X, Y, Z, jitter, metric ) ).toVar();
895
-
896
- If( dist.lessThan( sqdist.x ), () => {
897
-
898
- sqdist.z.assign( sqdist.y );
899
- sqdist.y.assign( sqdist.x );
900
- sqdist.x.assign( dist );
901
-
902
- } ).elseif( dist.lessThan( sqdist.y ), () => {
903
-
904
- sqdist.z.assign( sqdist.y );
905
- sqdist.y.assign( dist );
906
-
907
- } ).elseif( dist.lessThan( sqdist.z ), () => {
908
-
909
- sqdist.z.assign( dist );
910
-
911
- } );
912
-
913
- } );
914
-
915
- } );
916
-
917
- } );
918
-
919
- If( metric.equal( int( 0 ) ), () => {
920
-
921
- sqdist.assign( sqrt( sqdist ) );
922
-
923
- } );
924
-
925
- return sqdist;
926
-
927
- } );
928
-
929
- const mx_worley_noise_vec3 = overloadingFn( [ mx_worley_noise_vec3_0, mx_worley_noise_vec3_1 ] );
930
-
931
- // layouts
932
-
933
- mx_select.setLayout( {
934
- name: 'mx_select',
935
- type: 'float',
936
- inputs: [
937
- { name: 'b', type: 'bool' },
938
- { name: 't', type: 'float' },
939
- { name: 'f', type: 'float' }
940
- ]
941
- } );
942
-
943
- mx_negate_if.setLayout( {
944
- name: 'mx_negate_if',
945
- type: 'float',
946
- inputs: [
947
- { name: 'val', type: 'float' },
948
- { name: 'b', type: 'bool' }
949
- ]
950
- } );
951
-
952
- mx_floor.setLayout( {
953
- name: 'mx_floor',
954
- type: 'int',
955
- inputs: [
956
- { name: 'x', type: 'float' }
957
- ]
958
- } );
959
-
960
- mx_bilerp_0.setLayout( {
961
- name: 'mx_bilerp_0',
962
- type: 'float',
963
- inputs: [
964
- { name: 'v0', type: 'float' },
965
- { name: 'v1', type: 'float' },
966
- { name: 'v2', type: 'float' },
967
- { name: 'v3', type: 'float' },
968
- { name: 's', type: 'float' },
969
- { name: 't', type: 'float' }
970
- ]
971
- } );
972
-
973
- mx_bilerp_1.setLayout( {
974
- name: 'mx_bilerp_1',
975
- type: 'vec3',
976
- inputs: [
977
- { name: 'v0', type: 'vec3' },
978
- { name: 'v1', type: 'vec3' },
979
- { name: 'v2', type: 'vec3' },
980
- { name: 'v3', type: 'vec3' },
981
- { name: 's', type: 'float' },
982
- { name: 't', type: 'float' }
983
- ]
984
- } );
985
-
986
- mx_trilerp_0.setLayout( {
987
- name: 'mx_trilerp_0',
988
- type: 'float',
989
- inputs: [
990
- { name: 'v0', type: 'float' },
991
- { name: 'v1', type: 'float' },
992
- { name: 'v2', type: 'float' },
993
- { name: 'v3', type: 'float' },
994
- { name: 'v4', type: 'float' },
995
- { name: 'v5', type: 'float' },
996
- { name: 'v6', type: 'float' },
997
- { name: 'v7', type: 'float' },
998
- { name: 's', type: 'float' },
999
- { name: 't', type: 'float' },
1000
- { name: 'r', type: 'float' }
1001
- ]
1002
- } );
1003
-
1004
- mx_trilerp_1.setLayout( {
1005
- name: 'mx_trilerp_1',
1006
- type: 'vec3',
1007
- inputs: [
1008
- { name: 'v0', type: 'vec3' },
1009
- { name: 'v1', type: 'vec3' },
1010
- { name: 'v2', type: 'vec3' },
1011
- { name: 'v3', type: 'vec3' },
1012
- { name: 'v4', type: 'vec3' },
1013
- { name: 'v5', type: 'vec3' },
1014
- { name: 'v6', type: 'vec3' },
1015
- { name: 'v7', type: 'vec3' },
1016
- { name: 's', type: 'float' },
1017
- { name: 't', type: 'float' },
1018
- { name: 'r', type: 'float' }
1019
- ]
1020
- } );
1021
-
1022
- mx_gradient_float_0.setLayout( {
1023
- name: 'mx_gradient_float_0',
1024
- type: 'float',
1025
- inputs: [
1026
- { name: 'hash', type: 'uint' },
1027
- { name: 'x', type: 'float' },
1028
- { name: 'y', type: 'float' }
1029
- ]
1030
- } );
1031
-
1032
- mx_gradient_float_1.setLayout( {
1033
- name: 'mx_gradient_float_1',
1034
- type: 'float',
1035
- inputs: [
1036
- { name: 'hash', type: 'uint' },
1037
- { name: 'x', type: 'float' },
1038
- { name: 'y', type: 'float' },
1039
- { name: 'z', type: 'float' }
1040
- ]
1041
- } );
1042
-
1043
- mx_gradient_vec3_0.setLayout( {
1044
- name: 'mx_gradient_vec3_0',
1045
- type: 'vec3',
1046
- inputs: [
1047
- { name: 'hash', type: 'uvec3' },
1048
- { name: 'x', type: 'float' },
1049
- { name: 'y', type: 'float' }
1050
- ]
1051
- } );
1052
-
1053
- mx_gradient_vec3_1.setLayout( {
1054
- name: 'mx_gradient_vec3_1',
1055
- type: 'vec3',
1056
- inputs: [
1057
- { name: 'hash', type: 'uvec3' },
1058
- { name: 'x', type: 'float' },
1059
- { name: 'y', type: 'float' },
1060
- { name: 'z', type: 'float' }
1061
- ]
1062
- } );
1063
-
1064
- mx_gradient_scale2d_0.setLayout( {
1065
- name: 'mx_gradient_scale2d_0',
1066
- type: 'float',
1067
- inputs: [
1068
- { name: 'v', type: 'float' }
1069
- ]
1070
- } );
1071
-
1072
- mx_gradient_scale3d_0.setLayout( {
1073
- name: 'mx_gradient_scale3d_0',
1074
- type: 'float',
1075
- inputs: [
1076
- { name: 'v', type: 'float' }
1077
- ]
1078
- } );
1079
-
1080
- mx_gradient_scale2d_1.setLayout( {
1081
- name: 'mx_gradient_scale2d_1',
1082
- type: 'vec3',
1083
- inputs: [
1084
- { name: 'v', type: 'vec3' }
1085
- ]
1086
- } );
1087
-
1088
- mx_gradient_scale3d_1.setLayout( {
1089
- name: 'mx_gradient_scale3d_1',
1090
- type: 'vec3',
1091
- inputs: [
1092
- { name: 'v', type: 'vec3' }
1093
- ]
1094
- } );
1095
-
1096
- mx_rotl32.setLayout( {
1097
- name: 'mx_rotl32',
1098
- type: 'uint',
1099
- inputs: [
1100
- { name: 'x', type: 'uint' },
1101
- { name: 'k', type: 'int' }
1102
- ]
1103
- } );
1104
-
1105
- mx_bjfinal.setLayout( {
1106
- name: 'mx_bjfinal',
1107
- type: 'uint',
1108
- inputs: [
1109
- { name: 'a', type: 'uint' },
1110
- { name: 'b', type: 'uint' },
1111
- { name: 'c', type: 'uint' }
1112
- ]
1113
- } );
1114
-
1115
- mx_bits_to_01.setLayout( {
1116
- name: 'mx_bits_to_01',
1117
- type: 'float',
1118
- inputs: [
1119
- { name: 'bits', type: 'uint' }
1120
- ]
1121
- } );
1122
-
1123
- mx_fade.setLayout( {
1124
- name: 'mx_fade',
1125
- type: 'float',
1126
- inputs: [
1127
- { name: 't', type: 'float' }
1128
- ]
1129
- } );
1130
-
1131
- mx_hash_int_0.setLayout( {
1132
- name: 'mx_hash_int_0',
1133
- type: 'uint',
1134
- inputs: [
1135
- { name: 'x', type: 'int' }
1136
- ]
1137
- } );
1138
-
1139
- mx_hash_int_1.setLayout( {
1140
- name: 'mx_hash_int_1',
1141
- type: 'uint',
1142
- inputs: [
1143
- { name: 'x', type: 'int' },
1144
- { name: 'y', type: 'int' }
1145
- ]
1146
- } );
1147
-
1148
- mx_hash_int_2.setLayout( {
1149
- name: 'mx_hash_int_2',
1150
- type: 'uint',
1151
- inputs: [
1152
- { name: 'x', type: 'int' },
1153
- { name: 'y', type: 'int' },
1154
- { name: 'z', type: 'int' }
1155
- ]
1156
- } );
1157
-
1158
- mx_hash_int_3.setLayout( {
1159
- name: 'mx_hash_int_3',
1160
- type: 'uint',
1161
- inputs: [
1162
- { name: 'x', type: 'int' },
1163
- { name: 'y', type: 'int' },
1164
- { name: 'z', type: 'int' },
1165
- { name: 'xx', type: 'int' }
1166
- ]
1167
- } );
1168
-
1169
- mx_hash_int_4.setLayout( {
1170
- name: 'mx_hash_int_4',
1171
- type: 'uint',
1172
- inputs: [
1173
- { name: 'x', type: 'int' },
1174
- { name: 'y', type: 'int' },
1175
- { name: 'z', type: 'int' },
1176
- { name: 'xx', type: 'int' },
1177
- { name: 'yy', type: 'int' }
1178
- ]
1179
- } );
1180
-
1181
- mx_hash_vec3_0.setLayout( {
1182
- name: 'mx_hash_vec3_0',
1183
- type: 'uvec3',
1184
- inputs: [
1185
- { name: 'x', type: 'int' },
1186
- { name: 'y', type: 'int' }
1187
- ]
1188
- } );
1189
-
1190
- mx_hash_vec3_1.setLayout( {
1191
- name: 'mx_hash_vec3_1',
1192
- type: 'uvec3',
1193
- inputs: [
1194
- { name: 'x', type: 'int' },
1195
- { name: 'y', type: 'int' },
1196
- { name: 'z', type: 'int' }
1197
- ]
1198
- } );
1199
-
1200
- mx_perlin_noise_float_0.setLayout( {
1201
- name: 'mx_perlin_noise_float_0',
1202
- type: 'float',
1203
- inputs: [
1204
- { name: 'p', type: 'vec2' }
1205
- ]
1206
- } );
1207
-
1208
- mx_perlin_noise_float_1.setLayout( {
1209
- name: 'mx_perlin_noise_float_1',
1210
- type: 'float',
1211
- inputs: [
1212
- { name: 'p', type: 'vec3' }
1213
- ]
1214
- } );
1215
-
1216
- mx_perlin_noise_vec3_0.setLayout( {
1217
- name: 'mx_perlin_noise_vec3_0',
1218
- type: 'vec3',
1219
- inputs: [
1220
- { name: 'p', type: 'vec2' }
1221
- ]
1222
- } );
1223
-
1224
- mx_perlin_noise_vec3_1.setLayout( {
1225
- name: 'mx_perlin_noise_vec3_1',
1226
- type: 'vec3',
1227
- inputs: [
1228
- { name: 'p', type: 'vec3' }
1229
- ]
1230
- } );
1231
-
1232
- mx_cell_noise_float_0.setLayout( {
1233
- name: 'mx_cell_noise_float_0',
1234
- type: 'float',
1235
- inputs: [
1236
- { name: 'p', type: 'float' }
1237
- ]
1238
- } );
1239
-
1240
- mx_cell_noise_float_1.setLayout( {
1241
- name: 'mx_cell_noise_float_1',
1242
- type: 'float',
1243
- inputs: [
1244
- { name: 'p', type: 'vec2' }
1245
- ]
1246
- } );
1247
-
1248
- mx_cell_noise_float_2.setLayout( {
1249
- name: 'mx_cell_noise_float_2',
1250
- type: 'float',
1251
- inputs: [
1252
- { name: 'p', type: 'vec3' }
1253
- ]
1254
- } );
1255
-
1256
- mx_cell_noise_float_3.setLayout( {
1257
- name: 'mx_cell_noise_float_3',
1258
- type: 'float',
1259
- inputs: [
1260
- { name: 'p', type: 'vec4' }
1261
- ]
1262
- } );
1263
-
1264
- mx_cell_noise_vec3_0.setLayout( {
1265
- name: 'mx_cell_noise_vec3_0',
1266
- type: 'vec3',
1267
- inputs: [
1268
- { name: 'p', type: 'float' }
1269
- ]
1270
- } );
1271
-
1272
- mx_cell_noise_vec3_1.setLayout( {
1273
- name: 'mx_cell_noise_vec3_1',
1274
- type: 'vec3',
1275
- inputs: [
1276
- { name: 'p', type: 'vec2' }
1277
- ]
1278
- } );
1279
-
1280
- mx_cell_noise_vec3_2.setLayout( {
1281
- name: 'mx_cell_noise_vec3_2',
1282
- type: 'vec3',
1283
- inputs: [
1284
- { name: 'p', type: 'vec3' }
1285
- ]
1286
- } );
1287
-
1288
- mx_cell_noise_vec3_3.setLayout( {
1289
- name: 'mx_cell_noise_vec3_3',
1290
- type: 'vec3',
1291
- inputs: [
1292
- { name: 'p', type: 'vec4' }
1293
- ]
1294
- } );
1295
-
1296
- mx_fractal_noise_float.setLayout( {
1297
- name: 'mx_fractal_noise_float',
1298
- type: 'float',
1299
- inputs: [
1300
- { name: 'p', type: 'vec3' },
1301
- { name: 'octaves', type: 'int' },
1302
- { name: 'lacunarity', type: 'float' },
1303
- { name: 'diminish', type: 'float' }
1304
- ]
1305
- } );
1306
-
1307
- mx_fractal_noise_vec3.setLayout( {
1308
- name: 'mx_fractal_noise_vec3',
1309
- type: 'vec3',
1310
- inputs: [
1311
- { name: 'p', type: 'vec3' },
1312
- { name: 'octaves', type: 'int' },
1313
- { name: 'lacunarity', type: 'float' },
1314
- { name: 'diminish', type: 'float' }
1315
- ]
1316
- } );
1317
-
1318
- mx_fractal_noise_vec2.setLayout( {
1319
- name: 'mx_fractal_noise_vec2',
1320
- type: 'vec2',
1321
- inputs: [
1322
- { name: 'p', type: 'vec3' },
1323
- { name: 'octaves', type: 'int' },
1324
- { name: 'lacunarity', type: 'float' },
1325
- { name: 'diminish', type: 'float' }
1326
- ]
1327
- } );
1328
-
1329
- mx_fractal_noise_vec4.setLayout( {
1330
- name: 'mx_fractal_noise_vec4',
1331
- type: 'vec4',
1332
- inputs: [
1333
- { name: 'p', type: 'vec3' },
1334
- { name: 'octaves', type: 'int' },
1335
- { name: 'lacunarity', type: 'float' },
1336
- { name: 'diminish', type: 'float' }
1337
- ]
1338
- } );
1339
-
1340
- mx_worley_distance_0.setLayout( {
1341
- name: 'mx_worley_distance_0',
1342
- type: 'float',
1343
- inputs: [
1344
- { name: 'p', type: 'vec2' },
1345
- { name: 'x', type: 'int' },
1346
- { name: 'y', type: 'int' },
1347
- { name: 'xoff', type: 'int' },
1348
- { name: 'yoff', type: 'int' },
1349
- { name: 'jitter', type: 'float' },
1350
- { name: 'metric', type: 'int' }
1351
- ]
1352
- } );
1353
-
1354
- mx_worley_distance_1.setLayout( {
1355
- name: 'mx_worley_distance_1',
1356
- type: 'float',
1357
- inputs: [
1358
- { name: 'p', type: 'vec3' },
1359
- { name: 'x', type: 'int' },
1360
- { name: 'y', type: 'int' },
1361
- { name: 'z', type: 'int' },
1362
- { name: 'xoff', type: 'int' },
1363
- { name: 'yoff', type: 'int' },
1364
- { name: 'zoff', type: 'int' },
1365
- { name: 'jitter', type: 'float' },
1366
- { name: 'metric', type: 'int' }
1367
- ]
1368
- } );
1369
-
1370
- mx_worley_noise_float_0.setLayout( {
1371
- name: 'mx_worley_noise_float_0',
1372
- type: 'float',
1373
- inputs: [
1374
- { name: 'p', type: 'vec2' },
1375
- { name: 'jitter', type: 'float' },
1376
- { name: 'metric', type: 'int' }
1377
- ]
1378
- } );
1379
-
1380
- mx_worley_noise_vec2_0.setLayout( {
1381
- name: 'mx_worley_noise_vec2_0',
1382
- type: 'vec2',
1383
- inputs: [
1384
- { name: 'p', type: 'vec2' },
1385
- { name: 'jitter', type: 'float' },
1386
- { name: 'metric', type: 'int' }
1387
- ]
1388
- } );
1389
-
1390
- mx_worley_noise_vec3_0.setLayout( {
1391
- name: 'mx_worley_noise_vec3_0',
1392
- type: 'vec3',
1393
- inputs: [
1394
- { name: 'p', type: 'vec2' },
1395
- { name: 'jitter', type: 'float' },
1396
- { name: 'metric', type: 'int' }
1397
- ]
1398
- } );
1399
-
1400
- mx_worley_noise_float_1.setLayout( {
1401
- name: 'mx_worley_noise_float_1',
1402
- type: 'float',
1403
- inputs: [
1404
- { name: 'p', type: 'vec3' },
1405
- { name: 'jitter', type: 'float' },
1406
- { name: 'metric', type: 'int' }
1407
- ]
1408
- } );
1409
-
1410
- mx_worley_noise_vec2_1.setLayout( {
1411
- name: 'mx_worley_noise_vec2_1',
1412
- type: 'vec2',
1413
- inputs: [
1414
- { name: 'p', type: 'vec3' },
1415
- { name: 'jitter', type: 'float' },
1416
- { name: 'metric', type: 'int' }
1417
- ]
1418
- } );
1419
-
1420
- mx_worley_noise_vec3_1.setLayout( {
1421
- name: 'mx_worley_noise_vec3_1',
1422
- type: 'vec3',
1423
- inputs: [
1424
- { name: 'p', type: 'vec3' },
1425
- { name: 'jitter', type: 'float' },
1426
- { name: 'metric', type: 'int' }
1427
- ]
1428
- } );
1429
-
1430
- export { mx_select, mx_negate_if, mx_floor, mx_floorfrac, mx_bilerp, mx_trilerp, mx_gradient_float, mx_gradient_vec3, mx_gradient_scale2d, mx_gradient_scale3d, mx_rotl32, mx_bjmix, mx_bjfinal, mx_bits_to_01, mx_fade, mx_hash_int, mx_hash_vec3, mx_perlin_noise_float, mx_perlin_noise_vec3, mx_cell_noise_float, mx_cell_noise_vec3, mx_fractal_noise_float, mx_fractal_noise_vec3, mx_fractal_noise_vec2, mx_fractal_noise_vec4, mx_worley_distance, mx_worley_noise_float, mx_worley_noise_vec2, mx_worley_noise_vec3 };
1
+ // Three.js Transpiler
2
+ // https://raw.githubusercontent.com/AcademySoftwareFoundation/MaterialX/main/libraries/stdlib/genglsl/lib/mx_noise.glsl
3
+
4
+ import { int, uint, float, vec3, bool, uvec3, vec2, vec4, If, tslFn } from '../../shadernode/ShaderNode.js';
5
+ import { cond } from '../../math/CondNode.js';
6
+ import { sub, mul } from '../../math/OperatorNode.js';
7
+ import { floor, abs, max, dot, min, sqrt } from '../../math/MathNode.js';
8
+ import { overloadingFn } from '../../utils/FunctionOverloadingNode.js';
9
+ import { loop } from '../../utils/LoopNode.js';
10
+
11
+ const mx_select = tslFn( ( [ b_immutable, t_immutable, f_immutable ] ) => {
12
+
13
+ const f = float( f_immutable ).toVar();
14
+ const t = float( t_immutable ).toVar();
15
+ const b = bool( b_immutable ).toVar();
16
+
17
+ return cond( b, t, f );
18
+
19
+ } );
20
+
21
+ const mx_negate_if = tslFn( ( [ val_immutable, b_immutable ] ) => {
22
+
23
+ const b = bool( b_immutable ).toVar();
24
+ const val = float( val_immutable ).toVar();
25
+
26
+ return cond( b, val.negate(), val );
27
+
28
+ } );
29
+
30
+ const mx_floor = tslFn( ( [ x_immutable ] ) => {
31
+
32
+ const x = float( x_immutable ).toVar();
33
+
34
+ return int( floor( x ) );
35
+
36
+ } );
37
+
38
+ const mx_floorfrac = tslFn( ( [ x_immutable, i ] ) => {
39
+
40
+ const x = float( x_immutable ).toVar();
41
+ i.assign( mx_floor( x ) );
42
+
43
+ return x.sub( float( i ) );
44
+
45
+ } );
46
+
47
+ const mx_bilerp_0 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, s_immutable, t_immutable ] ) => {
48
+
49
+ const t = float( t_immutable ).toVar();
50
+ const s = float( s_immutable ).toVar();
51
+ const v3 = float( v3_immutable ).toVar();
52
+ const v2 = float( v2_immutable ).toVar();
53
+ const v1 = float( v1_immutable ).toVar();
54
+ const v0 = float( v0_immutable ).toVar();
55
+ const s1 = float( sub( 1.0, s ) ).toVar();
56
+
57
+ return sub( 1.0, t ).mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) );
58
+
59
+ } );
60
+
61
+ const mx_bilerp_1 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, s_immutable, t_immutable ] ) => {
62
+
63
+ const t = float( t_immutable ).toVar();
64
+ const s = float( s_immutable ).toVar();
65
+ const v3 = vec3( v3_immutable ).toVar();
66
+ const v2 = vec3( v2_immutable ).toVar();
67
+ const v1 = vec3( v1_immutable ).toVar();
68
+ const v0 = vec3( v0_immutable ).toVar();
69
+ const s1 = float( sub( 1.0, s ) ).toVar();
70
+
71
+ return sub( 1.0, t ).mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) );
72
+
73
+ } );
74
+
75
+ const mx_bilerp = overloadingFn( [ mx_bilerp_0, mx_bilerp_1 ] );
76
+
77
+ const mx_trilerp_0 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, v4_immutable, v5_immutable, v6_immutable, v7_immutable, s_immutable, t_immutable, r_immutable ] ) => {
78
+
79
+ const r = float( r_immutable ).toVar();
80
+ const t = float( t_immutable ).toVar();
81
+ const s = float( s_immutable ).toVar();
82
+ const v7 = float( v7_immutable ).toVar();
83
+ const v6 = float( v6_immutable ).toVar();
84
+ const v5 = float( v5_immutable ).toVar();
85
+ const v4 = float( v4_immutable ).toVar();
86
+ const v3 = float( v3_immutable ).toVar();
87
+ const v2 = float( v2_immutable ).toVar();
88
+ const v1 = float( v1_immutable ).toVar();
89
+ const v0 = float( v0_immutable ).toVar();
90
+ const s1 = float( sub( 1.0, s ) ).toVar();
91
+ const t1 = float( sub( 1.0, t ) ).toVar();
92
+ const r1 = float( sub( 1.0, r ) ).toVar();
93
+
94
+ return r1.mul( t1.mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) ) ).add( r.mul( t1.mul( v4.mul( s1 ).add( v5.mul( s ) ) ).add( t.mul( v6.mul( s1 ).add( v7.mul( s ) ) ) ) ) );
95
+
96
+ } );
97
+
98
+ const mx_trilerp_1 = tslFn( ( [ v0_immutable, v1_immutable, v2_immutable, v3_immutable, v4_immutable, v5_immutable, v6_immutable, v7_immutable, s_immutable, t_immutable, r_immutable ] ) => {
99
+
100
+ const r = float( r_immutable ).toVar();
101
+ const t = float( t_immutable ).toVar();
102
+ const s = float( s_immutable ).toVar();
103
+ const v7 = vec3( v7_immutable ).toVar();
104
+ const v6 = vec3( v6_immutable ).toVar();
105
+ const v5 = vec3( v5_immutable ).toVar();
106
+ const v4 = vec3( v4_immutable ).toVar();
107
+ const v3 = vec3( v3_immutable ).toVar();
108
+ const v2 = vec3( v2_immutable ).toVar();
109
+ const v1 = vec3( v1_immutable ).toVar();
110
+ const v0 = vec3( v0_immutable ).toVar();
111
+ const s1 = float( sub( 1.0, s ) ).toVar();
112
+ const t1 = float( sub( 1.0, t ) ).toVar();
113
+ const r1 = float( sub( 1.0, r ) ).toVar();
114
+
115
+ return r1.mul( t1.mul( v0.mul( s1 ).add( v1.mul( s ) ) ).add( t.mul( v2.mul( s1 ).add( v3.mul( s ) ) ) ) ).add( r.mul( t1.mul( v4.mul( s1 ).add( v5.mul( s ) ) ).add( t.mul( v6.mul( s1 ).add( v7.mul( s ) ) ) ) ) );
116
+
117
+ } );
118
+
119
+ const mx_trilerp = overloadingFn( [ mx_trilerp_0, mx_trilerp_1 ] );
120
+
121
+ const mx_gradient_float_0 = tslFn( ( [ hash_immutable, x_immutable, y_immutable ] ) => {
122
+
123
+ const y = float( y_immutable ).toVar();
124
+ const x = float( x_immutable ).toVar();
125
+ const hash = uint( hash_immutable ).toVar();
126
+ const h = uint( hash.bitAnd( uint( 7 ) ) ).toVar();
127
+ const u = float( mx_select( h.lessThan( uint( 4 ) ), x, y ) ).toVar();
128
+ const v = float( mul( 2.0, mx_select( h.lessThan( uint( 4 ) ), y, x ) ) ).toVar();
129
+
130
+ return mx_negate_if( u, bool( h.bitAnd( uint( 1 ) ) ) ).add( mx_negate_if( v, bool( h.bitAnd( uint( 2 ) ) ) ) );
131
+
132
+ } );
133
+
134
+ const mx_gradient_float_1 = tslFn( ( [ hash_immutable, x_immutable, y_immutable, z_immutable ] ) => {
135
+
136
+ const z = float( z_immutable ).toVar();
137
+ const y = float( y_immutable ).toVar();
138
+ const x = float( x_immutable ).toVar();
139
+ const hash = uint( hash_immutable ).toVar();
140
+ const h = uint( hash.bitAnd( uint( 15 ) ) ).toVar();
141
+ const u = float( mx_select( h.lessThan( uint( 8 ) ), x, y ) ).toVar();
142
+ const v = float( mx_select( h.lessThan( uint( 4 ) ), y, mx_select( h.equal( uint( 12 ) ).or( h.equal( uint( 14 ) ) ), x, z ) ) ).toVar();
143
+
144
+ return mx_negate_if( u, bool( h.bitAnd( uint( 1 ) ) ) ).add( mx_negate_if( v, bool( h.bitAnd( uint( 2 ) ) ) ) );
145
+
146
+ } );
147
+
148
+ const mx_gradient_float = overloadingFn( [ mx_gradient_float_0, mx_gradient_float_1 ] );
149
+
150
+ const mx_gradient_vec3_0 = tslFn( ( [ hash_immutable, x_immutable, y_immutable ] ) => {
151
+
152
+ const y = float( y_immutable ).toVar();
153
+ const x = float( x_immutable ).toVar();
154
+ const hash = uvec3( hash_immutable ).toVar();
155
+
156
+ return vec3( mx_gradient_float( hash.x, x, y ), mx_gradient_float( hash.y, x, y ), mx_gradient_float( hash.z, x, y ) );
157
+
158
+ } );
159
+
160
+ const mx_gradient_vec3_1 = tslFn( ( [ hash_immutable, x_immutable, y_immutable, z_immutable ] ) => {
161
+
162
+ const z = float( z_immutable ).toVar();
163
+ const y = float( y_immutable ).toVar();
164
+ const x = float( x_immutable ).toVar();
165
+ const hash = uvec3( hash_immutable ).toVar();
166
+
167
+ return vec3( mx_gradient_float( hash.x, x, y, z ), mx_gradient_float( hash.y, x, y, z ), mx_gradient_float( hash.z, x, y, z ) );
168
+
169
+ } );
170
+
171
+ const mx_gradient_vec3 = overloadingFn( [ mx_gradient_vec3_0, mx_gradient_vec3_1 ] );
172
+
173
+ const mx_gradient_scale2d_0 = tslFn( ( [ v_immutable ] ) => {
174
+
175
+ const v = float( v_immutable ).toVar();
176
+
177
+ return mul( 0.6616, v );
178
+
179
+ } );
180
+
181
+ const mx_gradient_scale3d_0 = tslFn( ( [ v_immutable ] ) => {
182
+
183
+ const v = float( v_immutable ).toVar();
184
+
185
+ return mul( 0.9820, v );
186
+
187
+ } );
188
+
189
+ const mx_gradient_scale2d_1 = tslFn( ( [ v_immutable ] ) => {
190
+
191
+ const v = vec3( v_immutable ).toVar();
192
+
193
+ return mul( 0.6616, v );
194
+
195
+ } );
196
+
197
+ const mx_gradient_scale2d = overloadingFn( [ mx_gradient_scale2d_0, mx_gradient_scale2d_1 ] );
198
+
199
+ const mx_gradient_scale3d_1 = tslFn( ( [ v_immutable ] ) => {
200
+
201
+ const v = vec3( v_immutable ).toVar();
202
+
203
+ return mul( 0.9820, v );
204
+
205
+ } );
206
+
207
+ const mx_gradient_scale3d = overloadingFn( [ mx_gradient_scale3d_0, mx_gradient_scale3d_1 ] );
208
+
209
+ const mx_rotl32 = tslFn( ( [ x_immutable, k_immutable ] ) => {
210
+
211
+ const k = int( k_immutable ).toVar();
212
+ const x = uint( x_immutable ).toVar();
213
+
214
+ return x.shiftLeft( k ).bitOr( x.shiftRight( int( 32 ).sub( k ) ) );
215
+
216
+ } );
217
+
218
+ const mx_bjmix = tslFn( ( [ a, b, c ] ) => {
219
+
220
+ a.subAssign( c );
221
+ a.bitXorAssign( mx_rotl32( c, int( 4 ) ) );
222
+ c.addAssign( b );
223
+ b.subAssign( a );
224
+ b.bitXorAssign( mx_rotl32( a, int( 6 ) ) );
225
+ a.addAssign( c );
226
+ c.subAssign( b );
227
+ c.bitXorAssign( mx_rotl32( b, int( 8 ) ) );
228
+ b.addAssign( a );
229
+ a.subAssign( c );
230
+ a.bitXorAssign( mx_rotl32( c, int( 16 ) ) );
231
+ c.addAssign( b );
232
+ b.subAssign( a );
233
+ b.bitXorAssign( mx_rotl32( a, int( 19 ) ) );
234
+ a.addAssign( c );
235
+ c.subAssign( b );
236
+ c.bitXorAssign( mx_rotl32( b, int( 4 ) ) );
237
+ b.addAssign( a );
238
+
239
+ } );
240
+
241
+ const mx_bjfinal = tslFn( ( [ a_immutable, b_immutable, c_immutable ] ) => {
242
+
243
+ const c = uint( c_immutable ).toVar();
244
+ const b = uint( b_immutable ).toVar();
245
+ const a = uint( a_immutable ).toVar();
246
+ c.bitXorAssign( b );
247
+ c.subAssign( mx_rotl32( b, int( 14 ) ) );
248
+ a.bitXorAssign( c );
249
+ a.subAssign( mx_rotl32( c, int( 11 ) ) );
250
+ b.bitXorAssign( a );
251
+ b.subAssign( mx_rotl32( a, int( 25 ) ) );
252
+ c.bitXorAssign( b );
253
+ c.subAssign( mx_rotl32( b, int( 16 ) ) );
254
+ a.bitXorAssign( c );
255
+ a.subAssign( mx_rotl32( c, int( 4 ) ) );
256
+ b.bitXorAssign( a );
257
+ b.subAssign( mx_rotl32( a, int( 14 ) ) );
258
+ c.bitXorAssign( b );
259
+ c.subAssign( mx_rotl32( b, int( 24 ) ) );
260
+
261
+ return c;
262
+
263
+ } );
264
+
265
+ const mx_bits_to_01 = tslFn( ( [ bits_immutable ] ) => {
266
+
267
+ const bits = uint( bits_immutable ).toVar();
268
+
269
+ return float( bits ).div( float( uint( int( 0xffffffff ) ) ) );
270
+
271
+ } );
272
+
273
+ const mx_fade = tslFn( ( [ t_immutable ] ) => {
274
+
275
+ const t = float( t_immutable ).toVar();
276
+
277
+ return t.mul( t.mul( t.mul( t.mul( t.mul( 6.0 ).sub( 15.0 ) ).add( 10.0 ) ) ) );
278
+
279
+ } );
280
+
281
+ const mx_hash_int_0 = tslFn( ( [ x_immutable ] ) => {
282
+
283
+ const x = int( x_immutable ).toVar();
284
+ const len = uint( uint( 1 ) ).toVar();
285
+ const seed = uint( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ).toVar();
286
+
287
+ return mx_bjfinal( seed.add( uint( x ) ), seed, seed );
288
+
289
+ } );
290
+
291
+ const mx_hash_int_1 = tslFn( ( [ x_immutable, y_immutable ] ) => {
292
+
293
+ const y = int( y_immutable ).toVar();
294
+ const x = int( x_immutable ).toVar();
295
+ const len = uint( uint( 2 ) ).toVar();
296
+ const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
297
+ a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
298
+ a.addAssign( uint( x ) );
299
+ b.addAssign( uint( y ) );
300
+
301
+ return mx_bjfinal( a, b, c );
302
+
303
+ } );
304
+
305
+ const mx_hash_int_2 = tslFn( ( [ x_immutable, y_immutable, z_immutable ] ) => {
306
+
307
+ const z = int( z_immutable ).toVar();
308
+ const y = int( y_immutable ).toVar();
309
+ const x = int( x_immutable ).toVar();
310
+ const len = uint( uint( 3 ) ).toVar();
311
+ const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
312
+ a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
313
+ a.addAssign( uint( x ) );
314
+ b.addAssign( uint( y ) );
315
+ c.addAssign( uint( z ) );
316
+
317
+ return mx_bjfinal( a, b, c );
318
+
319
+ } );
320
+
321
+ const mx_hash_int_3 = tslFn( ( [ x_immutable, y_immutable, z_immutable, xx_immutable ] ) => {
322
+
323
+ const xx = int( xx_immutable ).toVar();
324
+ const z = int( z_immutable ).toVar();
325
+ const y = int( y_immutable ).toVar();
326
+ const x = int( x_immutable ).toVar();
327
+ const len = uint( uint( 4 ) ).toVar();
328
+ const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
329
+ a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
330
+ a.addAssign( uint( x ) );
331
+ b.addAssign( uint( y ) );
332
+ c.addAssign( uint( z ) );
333
+ mx_bjmix( a, b, c );
334
+ a.addAssign( uint( xx ) );
335
+
336
+ return mx_bjfinal( a, b, c );
337
+
338
+ } );
339
+
340
+ const mx_hash_int_4 = tslFn( ( [ x_immutable, y_immutable, z_immutable, xx_immutable, yy_immutable ] ) => {
341
+
342
+ const yy = int( yy_immutable ).toVar();
343
+ const xx = int( xx_immutable ).toVar();
344
+ const z = int( z_immutable ).toVar();
345
+ const y = int( y_immutable ).toVar();
346
+ const x = int( x_immutable ).toVar();
347
+ const len = uint( uint( 5 ) ).toVar();
348
+ const a = uint().toVar(), b = uint().toVar(), c = uint().toVar();
349
+ a.assign( b.assign( c.assign( uint( int( 0xdeadbeef ) ).add( len.shiftLeft( uint( 2 ) ).add( uint( 13 ) ) ) ) ) );
350
+ a.addAssign( uint( x ) );
351
+ b.addAssign( uint( y ) );
352
+ c.addAssign( uint( z ) );
353
+ mx_bjmix( a, b, c );
354
+ a.addAssign( uint( xx ) );
355
+ b.addAssign( uint( yy ) );
356
+
357
+ return mx_bjfinal( a, b, c );
358
+
359
+ } );
360
+
361
+ const mx_hash_int = overloadingFn( [ mx_hash_int_0, mx_hash_int_1, mx_hash_int_2, mx_hash_int_3, mx_hash_int_4 ] );
362
+
363
+ const mx_hash_vec3_0 = tslFn( ( [ x_immutable, y_immutable ] ) => {
364
+
365
+ const y = int( y_immutable ).toVar();
366
+ const x = int( x_immutable ).toVar();
367
+ const h = uint( mx_hash_int( x, y ) ).toVar();
368
+ const result = uvec3().toVar();
369
+ result.x.assign( h.bitAnd( int( 0xFF ) ) );
370
+ result.y.assign( h.shiftRight( int( 8 ) ).bitAnd( int( 0xFF ) ) );
371
+ result.z.assign( h.shiftRight( int( 16 ) ).bitAnd( int( 0xFF ) ) );
372
+
373
+ return result;
374
+
375
+ } );
376
+
377
+ const mx_hash_vec3_1 = tslFn( ( [ x_immutable, y_immutable, z_immutable ] ) => {
378
+
379
+ const z = int( z_immutable ).toVar();
380
+ const y = int( y_immutable ).toVar();
381
+ const x = int( x_immutable ).toVar();
382
+ const h = uint( mx_hash_int( x, y, z ) ).toVar();
383
+ const result = uvec3().toVar();
384
+ result.x.assign( h.bitAnd( int( 0xFF ) ) );
385
+ result.y.assign( h.shiftRight( int( 8 ) ).bitAnd( int( 0xFF ) ) );
386
+ result.z.assign( h.shiftRight( int( 16 ) ).bitAnd( int( 0xFF ) ) );
387
+
388
+ return result;
389
+
390
+ } );
391
+
392
+ const mx_hash_vec3 = overloadingFn( [ mx_hash_vec3_0, mx_hash_vec3_1 ] );
393
+
394
+ const mx_perlin_noise_float_0 = tslFn( ( [ p_immutable ] ) => {
395
+
396
+ const p = vec2( p_immutable ).toVar();
397
+ const X = int().toVar(), Y = int().toVar();
398
+ const fx = float( mx_floorfrac( p.x, X ) ).toVar();
399
+ const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
400
+ const u = float( mx_fade( fx ) ).toVar();
401
+ const v = float( mx_fade( fy ) ).toVar();
402
+ const result = float( mx_bilerp( mx_gradient_float( mx_hash_int( X, Y ), fx, fy ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y ), fx.sub( 1.0 ), fy ), mx_gradient_float( mx_hash_int( X, Y.add( int( 1 ) ) ), fx, fy.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ) ), u, v ) ).toVar();
403
+
404
+ return mx_gradient_scale2d( result );
405
+
406
+ } );
407
+
408
+ const mx_perlin_noise_float_1 = tslFn( ( [ p_immutable ] ) => {
409
+
410
+ const p = vec3( p_immutable ).toVar();
411
+ const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
412
+ const fx = float( mx_floorfrac( p.x, X ) ).toVar();
413
+ const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
414
+ const fz = float( mx_floorfrac( p.z, Z ) ).toVar();
415
+ const u = float( mx_fade( fx ) ).toVar();
416
+ const v = float( mx_fade( fy ) ).toVar();
417
+ const w = float( mx_fade( fz ) ).toVar();
418
+ const result = float( mx_trilerp( mx_gradient_float( mx_hash_int( X, Y, Z ), fx, fy, fz ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y, Z ), fx.sub( 1.0 ), fy, fz ), mx_gradient_float( mx_hash_int( X, Y.add( int( 1 ) ), Z ), fx, fy.sub( 1.0 ), fz ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz ), mx_gradient_float( mx_hash_int( X, Y, Z.add( int( 1 ) ) ), fx, fy, fz.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y, Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy, fz.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X, Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx, fy.sub( 1.0 ), fz.sub( 1.0 ) ), mx_gradient_float( mx_hash_int( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz.sub( 1.0 ) ), u, v, w ) ).toVar();
419
+
420
+ return mx_gradient_scale3d( result );
421
+
422
+ } );
423
+
424
+ const mx_perlin_noise_float = overloadingFn( [ mx_perlin_noise_float_0, mx_perlin_noise_float_1 ] );
425
+
426
+ const mx_perlin_noise_vec3_0 = tslFn( ( [ p_immutable ] ) => {
427
+
428
+ const p = vec2( p_immutable ).toVar();
429
+ const X = int().toVar(), Y = int().toVar();
430
+ const fx = float( mx_floorfrac( p.x, X ) ).toVar();
431
+ const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
432
+ const u = float( mx_fade( fx ) ).toVar();
433
+ const v = float( mx_fade( fy ) ).toVar();
434
+ const result = vec3( mx_bilerp( mx_gradient_vec3( mx_hash_vec3( X, Y ), fx, fy ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y ), fx.sub( 1.0 ), fy ), mx_gradient_vec3( mx_hash_vec3( X, Y.add( int( 1 ) ) ), fx, fy.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ) ), u, v ) ).toVar();
435
+
436
+ return mx_gradient_scale2d( result );
437
+
438
+ } );
439
+
440
+ const mx_perlin_noise_vec3_1 = tslFn( ( [ p_immutable ] ) => {
441
+
442
+ const p = vec3( p_immutable ).toVar();
443
+ const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
444
+ const fx = float( mx_floorfrac( p.x, X ) ).toVar();
445
+ const fy = float( mx_floorfrac( p.y, Y ) ).toVar();
446
+ const fz = float( mx_floorfrac( p.z, Z ) ).toVar();
447
+ const u = float( mx_fade( fx ) ).toVar();
448
+ const v = float( mx_fade( fy ) ).toVar();
449
+ const w = float( mx_fade( fz ) ).toVar();
450
+ const result = vec3( mx_trilerp( mx_gradient_vec3( mx_hash_vec3( X, Y, Z ), fx, fy, fz ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y, Z ), fx.sub( 1.0 ), fy, fz ), mx_gradient_vec3( mx_hash_vec3( X, Y.add( int( 1 ) ), Z ), fx, fy.sub( 1.0 ), fz ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz ), mx_gradient_vec3( mx_hash_vec3( X, Y, Z.add( int( 1 ) ) ), fx, fy, fz.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y, Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy, fz.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X, Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx, fy.sub( 1.0 ), fz.sub( 1.0 ) ), mx_gradient_vec3( mx_hash_vec3( X.add( int( 1 ) ), Y.add( int( 1 ) ), Z.add( int( 1 ) ) ), fx.sub( 1.0 ), fy.sub( 1.0 ), fz.sub( 1.0 ) ), u, v, w ) ).toVar();
451
+
452
+ return mx_gradient_scale3d( result );
453
+
454
+ } );
455
+
456
+ const mx_perlin_noise_vec3 = overloadingFn( [ mx_perlin_noise_vec3_0, mx_perlin_noise_vec3_1 ] );
457
+
458
+ const mx_cell_noise_float_0 = tslFn( ( [ p_immutable ] ) => {
459
+
460
+ const p = float( p_immutable ).toVar();
461
+ const ix = int( mx_floor( p ) ).toVar();
462
+
463
+ return mx_bits_to_01( mx_hash_int( ix ) );
464
+
465
+ } );
466
+
467
+ const mx_cell_noise_float_1 = tslFn( ( [ p_immutable ] ) => {
468
+
469
+ const p = vec2( p_immutable ).toVar();
470
+ const ix = int( mx_floor( p.x ) ).toVar();
471
+ const iy = int( mx_floor( p.y ) ).toVar();
472
+
473
+ return mx_bits_to_01( mx_hash_int( ix, iy ) );
474
+
475
+ } );
476
+
477
+ const mx_cell_noise_float_2 = tslFn( ( [ p_immutable ] ) => {
478
+
479
+ const p = vec3( p_immutable ).toVar();
480
+ const ix = int( mx_floor( p.x ) ).toVar();
481
+ const iy = int( mx_floor( p.y ) ).toVar();
482
+ const iz = int( mx_floor( p.z ) ).toVar();
483
+
484
+ return mx_bits_to_01( mx_hash_int( ix, iy, iz ) );
485
+
486
+ } );
487
+
488
+ const mx_cell_noise_float_3 = tslFn( ( [ p_immutable ] ) => {
489
+
490
+ const p = vec4( p_immutable ).toVar();
491
+ const ix = int( mx_floor( p.x ) ).toVar();
492
+ const iy = int( mx_floor( p.y ) ).toVar();
493
+ const iz = int( mx_floor( p.z ) ).toVar();
494
+ const iw = int( mx_floor( p.w ) ).toVar();
495
+
496
+ return mx_bits_to_01( mx_hash_int( ix, iy, iz, iw ) );
497
+
498
+ } );
499
+
500
+ const mx_cell_noise_float = overloadingFn( [ mx_cell_noise_float_0, mx_cell_noise_float_1, mx_cell_noise_float_2, mx_cell_noise_float_3 ] );
501
+
502
+ const mx_cell_noise_vec3_0 = tslFn( ( [ p_immutable ] ) => {
503
+
504
+ const p = float( p_immutable ).toVar();
505
+ const ix = int( mx_floor( p ) ).toVar();
506
+
507
+ return vec3( mx_bits_to_01( mx_hash_int( ix, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, int( 2 ) ) ) );
508
+
509
+ } );
510
+
511
+ const mx_cell_noise_vec3_1 = tslFn( ( [ p_immutable ] ) => {
512
+
513
+ const p = vec2( p_immutable ).toVar();
514
+ const ix = int( mx_floor( p.x ) ).toVar();
515
+ const iy = int( mx_floor( p.y ) ).toVar();
516
+
517
+ return vec3( mx_bits_to_01( mx_hash_int( ix, iy, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, int( 2 ) ) ) );
518
+
519
+ } );
520
+
521
+ const mx_cell_noise_vec3_2 = tslFn( ( [ p_immutable ] ) => {
522
+
523
+ const p = vec3( p_immutable ).toVar();
524
+ const ix = int( mx_floor( p.x ) ).toVar();
525
+ const iy = int( mx_floor( p.y ) ).toVar();
526
+ const iz = int( mx_floor( p.z ) ).toVar();
527
+
528
+ return vec3( mx_bits_to_01( mx_hash_int( ix, iy, iz, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, int( 2 ) ) ) );
529
+
530
+ } );
531
+
532
+ const mx_cell_noise_vec3_3 = tslFn( ( [ p_immutable ] ) => {
533
+
534
+ const p = vec4( p_immutable ).toVar();
535
+ const ix = int( mx_floor( p.x ) ).toVar();
536
+ const iy = int( mx_floor( p.y ) ).toVar();
537
+ const iz = int( mx_floor( p.z ) ).toVar();
538
+ const iw = int( mx_floor( p.w ) ).toVar();
539
+
540
+ return vec3( mx_bits_to_01( mx_hash_int( ix, iy, iz, iw, int( 0 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, iw, int( 1 ) ) ), mx_bits_to_01( mx_hash_int( ix, iy, iz, iw, int( 2 ) ) ) );
541
+
542
+ } );
543
+
544
+ const mx_cell_noise_vec3 = overloadingFn( [ mx_cell_noise_vec3_0, mx_cell_noise_vec3_1, mx_cell_noise_vec3_2, mx_cell_noise_vec3_3 ] );
545
+
546
+ const mx_fractal_noise_float = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
547
+
548
+ const diminish = float( diminish_immutable ).toVar();
549
+ const lacunarity = float( lacunarity_immutable ).toVar();
550
+ const octaves = int( octaves_immutable ).toVar();
551
+ const p = vec3( p_immutable ).toVar();
552
+ const result = float( 0.0 ).toVar();
553
+ const amplitude = float( 1.0 ).toVar();
554
+
555
+ loop( { start: int( 0 ), end: octaves }, ( { i } ) => {
556
+
557
+ result.addAssign( amplitude.mul( mx_perlin_noise_float( p ) ) );
558
+ amplitude.mulAssign( diminish );
559
+ p.mulAssign( lacunarity );
560
+
561
+ } );
562
+
563
+ return result;
564
+
565
+ } );
566
+
567
+ const mx_fractal_noise_vec3 = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
568
+
569
+ const diminish = float( diminish_immutable ).toVar();
570
+ const lacunarity = float( lacunarity_immutable ).toVar();
571
+ const octaves = int( octaves_immutable ).toVar();
572
+ const p = vec3( p_immutable ).toVar();
573
+ const result = vec3( 0.0 ).toVar();
574
+ const amplitude = float( 1.0 ).toVar();
575
+
576
+ loop( { start: int( 0 ), end: octaves }, ( { i } ) => {
577
+
578
+ result.addAssign( amplitude.mul( mx_perlin_noise_vec3( p ) ) );
579
+ amplitude.mulAssign( diminish );
580
+ p.mulAssign( lacunarity );
581
+
582
+ } );
583
+
584
+ return result;
585
+
586
+ } );
587
+
588
+ const mx_fractal_noise_vec2 = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
589
+
590
+ const diminish = float( diminish_immutable ).toVar();
591
+ const lacunarity = float( lacunarity_immutable ).toVar();
592
+ const octaves = int( octaves_immutable ).toVar();
593
+ const p = vec3( p_immutable ).toVar();
594
+
595
+ return vec2( mx_fractal_noise_float( p, octaves, lacunarity, diminish ), mx_fractal_noise_float( p.add( vec3( int( 19 ), int( 193 ), int( 17 ) ) ), octaves, lacunarity, diminish ) );
596
+
597
+ } );
598
+
599
+ const mx_fractal_noise_vec4 = tslFn( ( [ p_immutable, octaves_immutable, lacunarity_immutable, diminish_immutable ] ) => {
600
+
601
+ const diminish = float( diminish_immutable ).toVar();
602
+ const lacunarity = float( lacunarity_immutable ).toVar();
603
+ const octaves = int( octaves_immutable ).toVar();
604
+ const p = vec3( p_immutable ).toVar();
605
+ const c = vec3( mx_fractal_noise_vec3( p, octaves, lacunarity, diminish ) ).toVar();
606
+ const f = float( mx_fractal_noise_float( p.add( vec3( int( 19 ), int( 193 ), int( 17 ) ) ), octaves, lacunarity, diminish ) ).toVar();
607
+
608
+ return vec4( c, f );
609
+
610
+ } );
611
+
612
+ const mx_worley_distance_0 = tslFn( ( [ p_immutable, x_immutable, y_immutable, xoff_immutable, yoff_immutable, jitter_immutable, metric_immutable ] ) => {
613
+
614
+ const metric = int( metric_immutable ).toVar();
615
+ const jitter = float( jitter_immutable ).toVar();
616
+ const yoff = int( yoff_immutable ).toVar();
617
+ const xoff = int( xoff_immutable ).toVar();
618
+ const y = int( y_immutable ).toVar();
619
+ const x = int( x_immutable ).toVar();
620
+ const p = vec2( p_immutable ).toVar();
621
+ const tmp = vec3( mx_cell_noise_vec3( vec2( x.add( xoff ), y.add( yoff ) ) ) ).toVar();
622
+ const off = vec2( tmp.x, tmp.y ).toVar();
623
+ off.subAssign( 0.5 );
624
+ off.mulAssign( jitter );
625
+ off.addAssign( 0.5 );
626
+ const cellpos = vec2( vec2( float( x ), float( y ) ).add( off ) ).toVar();
627
+ const diff = vec2( cellpos.sub( p ) ).toVar();
628
+
629
+ If( metric.equal( int( 2 ) ), () => {
630
+
631
+ return abs( diff.x ).add( abs( diff.y ) );
632
+
633
+ } );
634
+
635
+ If( metric.equal( int( 3 ) ), () => {
636
+
637
+ return max( abs( diff.x ), abs( diff.y ) );
638
+
639
+ } );
640
+
641
+ return dot( diff, diff );
642
+
643
+ } );
644
+
645
+ const mx_worley_distance_1 = tslFn( ( [ p_immutable, x_immutable, y_immutable, z_immutable, xoff_immutable, yoff_immutable, zoff_immutable, jitter_immutable, metric_immutable ] ) => {
646
+
647
+ const metric = int( metric_immutable ).toVar();
648
+ const jitter = float( jitter_immutable ).toVar();
649
+ const zoff = int( zoff_immutable ).toVar();
650
+ const yoff = int( yoff_immutable ).toVar();
651
+ const xoff = int( xoff_immutable ).toVar();
652
+ const z = int( z_immutable ).toVar();
653
+ const y = int( y_immutable ).toVar();
654
+ const x = int( x_immutable ).toVar();
655
+ const p = vec3( p_immutable ).toVar();
656
+ const off = vec3( mx_cell_noise_vec3( vec3( x.add( xoff ), y.add( yoff ), z.add( zoff ) ) ) ).toVar();
657
+ off.subAssign( 0.5 );
658
+ off.mulAssign( jitter );
659
+ off.addAssign( 0.5 );
660
+ const cellpos = vec3( vec3( float( x ), float( y ), float( z ) ).add( off ) ).toVar();
661
+ const diff = vec3( cellpos.sub( p ) ).toVar();
662
+
663
+ If( metric.equal( int( 2 ) ), () => {
664
+
665
+ return abs( diff.x ).add( abs( diff.y ).add( abs( diff.z ) ) );
666
+
667
+ } );
668
+
669
+ If( metric.equal( int( 3 ) ), () => {
670
+
671
+ return max( max( abs( diff.x ), abs( diff.y ) ), abs( diff.z ) );
672
+
673
+ } );
674
+
675
+ return dot( diff, diff );
676
+
677
+ } );
678
+
679
+ const mx_worley_distance = overloadingFn( [ mx_worley_distance_0, mx_worley_distance_1 ] );
680
+
681
+ const mx_worley_noise_float_0 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
682
+
683
+ const metric = int( metric_immutable ).toVar();
684
+ const jitter = float( jitter_immutable ).toVar();
685
+ const p = vec2( p_immutable ).toVar();
686
+ const X = int().toVar(), Y = int().toVar();
687
+ const localpos = vec2( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ) ).toVar();
688
+ const sqdist = float( 1e6 ).toVar();
689
+
690
+ loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
691
+
692
+ loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
693
+
694
+ const dist = float( mx_worley_distance( localpos, x, y, X, Y, jitter, metric ) ).toVar();
695
+ sqdist.assign( min( sqdist, dist ) );
696
+
697
+ } );
698
+
699
+ } );
700
+
701
+ If( metric.equal( int( 0 ) ), () => {
702
+
703
+ sqdist.assign( sqrt( sqdist ) );
704
+
705
+ } );
706
+
707
+ return sqdist;
708
+
709
+ } );
710
+
711
+ const mx_worley_noise_vec2_0 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
712
+
713
+ const metric = int( metric_immutable ).toVar();
714
+ const jitter = float( jitter_immutable ).toVar();
715
+ const p = vec2( p_immutable ).toVar();
716
+ const X = int().toVar(), Y = int().toVar();
717
+ const localpos = vec2( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ) ).toVar();
718
+ const sqdist = vec2( 1e6, 1e6 ).toVar();
719
+
720
+ loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
721
+
722
+ loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
723
+
724
+ const dist = float( mx_worley_distance( localpos, x, y, X, Y, jitter, metric ) ).toVar();
725
+
726
+ If( dist.lessThan( sqdist.x ), () => {
727
+
728
+ sqdist.y.assign( sqdist.x );
729
+ sqdist.x.assign( dist );
730
+
731
+ } ).elseif( dist.lessThan( sqdist.y ), () => {
732
+
733
+ sqdist.y.assign( dist );
734
+
735
+ } );
736
+
737
+ } );
738
+
739
+ } );
740
+
741
+ If( metric.equal( int( 0 ) ), () => {
742
+
743
+ sqdist.assign( sqrt( sqdist ) );
744
+
745
+ } );
746
+
747
+ return sqdist;
748
+
749
+ } );
750
+
751
+ const mx_worley_noise_vec3_0 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
752
+
753
+ const metric = int( metric_immutable ).toVar();
754
+ const jitter = float( jitter_immutable ).toVar();
755
+ const p = vec2( p_immutable ).toVar();
756
+ const X = int().toVar(), Y = int().toVar();
757
+ const localpos = vec2( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ) ).toVar();
758
+ const sqdist = vec3( 1e6, 1e6, 1e6 ).toVar();
759
+
760
+ loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
761
+
762
+ loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
763
+
764
+ const dist = float( mx_worley_distance( localpos, x, y, X, Y, jitter, metric ) ).toVar();
765
+
766
+ If( dist.lessThan( sqdist.x ), () => {
767
+
768
+ sqdist.z.assign( sqdist.y );
769
+ sqdist.y.assign( sqdist.x );
770
+ sqdist.x.assign( dist );
771
+
772
+ } ).elseif( dist.lessThan( sqdist.y ), () => {
773
+
774
+ sqdist.z.assign( sqdist.y );
775
+ sqdist.y.assign( dist );
776
+
777
+ } ).elseif( dist.lessThan( sqdist.z ), () => {
778
+
779
+ sqdist.z.assign( dist );
780
+
781
+ } );
782
+
783
+ } );
784
+
785
+ } );
786
+
787
+ If( metric.equal( int( 0 ) ), () => {
788
+
789
+ sqdist.assign( sqrt( sqdist ) );
790
+
791
+ } );
792
+
793
+ return sqdist;
794
+
795
+ } );
796
+
797
+ const mx_worley_noise_float_1 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
798
+
799
+ const metric = int( metric_immutable ).toVar();
800
+ const jitter = float( jitter_immutable ).toVar();
801
+ const p = vec3( p_immutable ).toVar();
802
+ const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
803
+ const localpos = vec3( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ), mx_floorfrac( p.z, Z ) ).toVar();
804
+ const sqdist = float( 1e6 ).toVar();
805
+
806
+ loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
807
+
808
+ loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
809
+
810
+ loop( { start: - 1, end: int( 1 ), name: 'z', condition: '<=' }, ( { z } ) => {
811
+
812
+ const dist = float( mx_worley_distance( localpos, x, y, z, X, Y, Z, jitter, metric ) ).toVar();
813
+ sqdist.assign( min( sqdist, dist ) );
814
+
815
+ } );
816
+
817
+ } );
818
+
819
+ } );
820
+
821
+ If( metric.equal( int( 0 ) ), () => {
822
+
823
+ sqdist.assign( sqrt( sqdist ) );
824
+
825
+ } );
826
+
827
+ return sqdist;
828
+
829
+ } );
830
+
831
+ const mx_worley_noise_float = overloadingFn( [ mx_worley_noise_float_0, mx_worley_noise_float_1 ] );
832
+
833
+ const mx_worley_noise_vec2_1 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
834
+
835
+ const metric = int( metric_immutable ).toVar();
836
+ const jitter = float( jitter_immutable ).toVar();
837
+ const p = vec3( p_immutable ).toVar();
838
+ const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
839
+ const localpos = vec3( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ), mx_floorfrac( p.z, Z ) ).toVar();
840
+ const sqdist = vec2( 1e6, 1e6 ).toVar();
841
+
842
+ loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
843
+
844
+ loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
845
+
846
+ loop( { start: - 1, end: int( 1 ), name: 'z', condition: '<=' }, ( { z } ) => {
847
+
848
+ const dist = float( mx_worley_distance( localpos, x, y, z, X, Y, Z, jitter, metric ) ).toVar();
849
+
850
+ If( dist.lessThan( sqdist.x ), () => {
851
+
852
+ sqdist.y.assign( sqdist.x );
853
+ sqdist.x.assign( dist );
854
+
855
+ } ).elseif( dist.lessThan( sqdist.y ), () => {
856
+
857
+ sqdist.y.assign( dist );
858
+
859
+ } );
860
+
861
+ } );
862
+
863
+ } );
864
+
865
+ } );
866
+
867
+ If( metric.equal( int( 0 ) ), () => {
868
+
869
+ sqdist.assign( sqrt( sqdist ) );
870
+
871
+ } );
872
+
873
+ return sqdist;
874
+
875
+ } );
876
+
877
+ const mx_worley_noise_vec2 = overloadingFn( [ mx_worley_noise_vec2_0, mx_worley_noise_vec2_1 ] );
878
+
879
+ const mx_worley_noise_vec3_1 = tslFn( ( [ p_immutable, jitter_immutable, metric_immutable ] ) => {
880
+
881
+ const metric = int( metric_immutable ).toVar();
882
+ const jitter = float( jitter_immutable ).toVar();
883
+ const p = vec3( p_immutable ).toVar();
884
+ const X = int().toVar(), Y = int().toVar(), Z = int().toVar();
885
+ const localpos = vec3( mx_floorfrac( p.x, X ), mx_floorfrac( p.y, Y ), mx_floorfrac( p.z, Z ) ).toVar();
886
+ const sqdist = vec3( 1e6, 1e6, 1e6 ).toVar();
887
+
888
+ loop( { start: - 1, end: int( 1 ), name: 'x', condition: '<=' }, ( { x } ) => {
889
+
890
+ loop( { start: - 1, end: int( 1 ), name: 'y', condition: '<=' }, ( { y } ) => {
891
+
892
+ loop( { start: - 1, end: int( 1 ), name: 'z', condition: '<=' }, ( { z } ) => {
893
+
894
+ const dist = float( mx_worley_distance( localpos, x, y, z, X, Y, Z, jitter, metric ) ).toVar();
895
+
896
+ If( dist.lessThan( sqdist.x ), () => {
897
+
898
+ sqdist.z.assign( sqdist.y );
899
+ sqdist.y.assign( sqdist.x );
900
+ sqdist.x.assign( dist );
901
+
902
+ } ).elseif( dist.lessThan( sqdist.y ), () => {
903
+
904
+ sqdist.z.assign( sqdist.y );
905
+ sqdist.y.assign( dist );
906
+
907
+ } ).elseif( dist.lessThan( sqdist.z ), () => {
908
+
909
+ sqdist.z.assign( dist );
910
+
911
+ } );
912
+
913
+ } );
914
+
915
+ } );
916
+
917
+ } );
918
+
919
+ If( metric.equal( int( 0 ) ), () => {
920
+
921
+ sqdist.assign( sqrt( sqdist ) );
922
+
923
+ } );
924
+
925
+ return sqdist;
926
+
927
+ } );
928
+
929
+ const mx_worley_noise_vec3 = overloadingFn( [ mx_worley_noise_vec3_0, mx_worley_noise_vec3_1 ] );
930
+
931
+ // layouts
932
+
933
+ mx_select.setLayout( {
934
+ name: 'mx_select',
935
+ type: 'float',
936
+ inputs: [
937
+ { name: 'b', type: 'bool' },
938
+ { name: 't', type: 'float' },
939
+ { name: 'f', type: 'float' }
940
+ ]
941
+ } );
942
+
943
+ mx_negate_if.setLayout( {
944
+ name: 'mx_negate_if',
945
+ type: 'float',
946
+ inputs: [
947
+ { name: 'val', type: 'float' },
948
+ { name: 'b', type: 'bool' }
949
+ ]
950
+ } );
951
+
952
+ mx_floor.setLayout( {
953
+ name: 'mx_floor',
954
+ type: 'int',
955
+ inputs: [
956
+ { name: 'x', type: 'float' }
957
+ ]
958
+ } );
959
+
960
+ mx_bilerp_0.setLayout( {
961
+ name: 'mx_bilerp_0',
962
+ type: 'float',
963
+ inputs: [
964
+ { name: 'v0', type: 'float' },
965
+ { name: 'v1', type: 'float' },
966
+ { name: 'v2', type: 'float' },
967
+ { name: 'v3', type: 'float' },
968
+ { name: 's', type: 'float' },
969
+ { name: 't', type: 'float' }
970
+ ]
971
+ } );
972
+
973
+ mx_bilerp_1.setLayout( {
974
+ name: 'mx_bilerp_1',
975
+ type: 'vec3',
976
+ inputs: [
977
+ { name: 'v0', type: 'vec3' },
978
+ { name: 'v1', type: 'vec3' },
979
+ { name: 'v2', type: 'vec3' },
980
+ { name: 'v3', type: 'vec3' },
981
+ { name: 's', type: 'float' },
982
+ { name: 't', type: 'float' }
983
+ ]
984
+ } );
985
+
986
+ mx_trilerp_0.setLayout( {
987
+ name: 'mx_trilerp_0',
988
+ type: 'float',
989
+ inputs: [
990
+ { name: 'v0', type: 'float' },
991
+ { name: 'v1', type: 'float' },
992
+ { name: 'v2', type: 'float' },
993
+ { name: 'v3', type: 'float' },
994
+ { name: 'v4', type: 'float' },
995
+ { name: 'v5', type: 'float' },
996
+ { name: 'v6', type: 'float' },
997
+ { name: 'v7', type: 'float' },
998
+ { name: 's', type: 'float' },
999
+ { name: 't', type: 'float' },
1000
+ { name: 'r', type: 'float' }
1001
+ ]
1002
+ } );
1003
+
1004
+ mx_trilerp_1.setLayout( {
1005
+ name: 'mx_trilerp_1',
1006
+ type: 'vec3',
1007
+ inputs: [
1008
+ { name: 'v0', type: 'vec3' },
1009
+ { name: 'v1', type: 'vec3' },
1010
+ { name: 'v2', type: 'vec3' },
1011
+ { name: 'v3', type: 'vec3' },
1012
+ { name: 'v4', type: 'vec3' },
1013
+ { name: 'v5', type: 'vec3' },
1014
+ { name: 'v6', type: 'vec3' },
1015
+ { name: 'v7', type: 'vec3' },
1016
+ { name: 's', type: 'float' },
1017
+ { name: 't', type: 'float' },
1018
+ { name: 'r', type: 'float' }
1019
+ ]
1020
+ } );
1021
+
1022
+ mx_gradient_float_0.setLayout( {
1023
+ name: 'mx_gradient_float_0',
1024
+ type: 'float',
1025
+ inputs: [
1026
+ { name: 'hash', type: 'uint' },
1027
+ { name: 'x', type: 'float' },
1028
+ { name: 'y', type: 'float' }
1029
+ ]
1030
+ } );
1031
+
1032
+ mx_gradient_float_1.setLayout( {
1033
+ name: 'mx_gradient_float_1',
1034
+ type: 'float',
1035
+ inputs: [
1036
+ { name: 'hash', type: 'uint' },
1037
+ { name: 'x', type: 'float' },
1038
+ { name: 'y', type: 'float' },
1039
+ { name: 'z', type: 'float' }
1040
+ ]
1041
+ } );
1042
+
1043
+ mx_gradient_vec3_0.setLayout( {
1044
+ name: 'mx_gradient_vec3_0',
1045
+ type: 'vec3',
1046
+ inputs: [
1047
+ { name: 'hash', type: 'uvec3' },
1048
+ { name: 'x', type: 'float' },
1049
+ { name: 'y', type: 'float' }
1050
+ ]
1051
+ } );
1052
+
1053
+ mx_gradient_vec3_1.setLayout( {
1054
+ name: 'mx_gradient_vec3_1',
1055
+ type: 'vec3',
1056
+ inputs: [
1057
+ { name: 'hash', type: 'uvec3' },
1058
+ { name: 'x', type: 'float' },
1059
+ { name: 'y', type: 'float' },
1060
+ { name: 'z', type: 'float' }
1061
+ ]
1062
+ } );
1063
+
1064
+ mx_gradient_scale2d_0.setLayout( {
1065
+ name: 'mx_gradient_scale2d_0',
1066
+ type: 'float',
1067
+ inputs: [
1068
+ { name: 'v', type: 'float' }
1069
+ ]
1070
+ } );
1071
+
1072
+ mx_gradient_scale3d_0.setLayout( {
1073
+ name: 'mx_gradient_scale3d_0',
1074
+ type: 'float',
1075
+ inputs: [
1076
+ { name: 'v', type: 'float' }
1077
+ ]
1078
+ } );
1079
+
1080
+ mx_gradient_scale2d_1.setLayout( {
1081
+ name: 'mx_gradient_scale2d_1',
1082
+ type: 'vec3',
1083
+ inputs: [
1084
+ { name: 'v', type: 'vec3' }
1085
+ ]
1086
+ } );
1087
+
1088
+ mx_gradient_scale3d_1.setLayout( {
1089
+ name: 'mx_gradient_scale3d_1',
1090
+ type: 'vec3',
1091
+ inputs: [
1092
+ { name: 'v', type: 'vec3' }
1093
+ ]
1094
+ } );
1095
+
1096
+ mx_rotl32.setLayout( {
1097
+ name: 'mx_rotl32',
1098
+ type: 'uint',
1099
+ inputs: [
1100
+ { name: 'x', type: 'uint' },
1101
+ { name: 'k', type: 'int' }
1102
+ ]
1103
+ } );
1104
+
1105
+ mx_bjfinal.setLayout( {
1106
+ name: 'mx_bjfinal',
1107
+ type: 'uint',
1108
+ inputs: [
1109
+ { name: 'a', type: 'uint' },
1110
+ { name: 'b', type: 'uint' },
1111
+ { name: 'c', type: 'uint' }
1112
+ ]
1113
+ } );
1114
+
1115
+ mx_bits_to_01.setLayout( {
1116
+ name: 'mx_bits_to_01',
1117
+ type: 'float',
1118
+ inputs: [
1119
+ { name: 'bits', type: 'uint' }
1120
+ ]
1121
+ } );
1122
+
1123
+ mx_fade.setLayout( {
1124
+ name: 'mx_fade',
1125
+ type: 'float',
1126
+ inputs: [
1127
+ { name: 't', type: 'float' }
1128
+ ]
1129
+ } );
1130
+
1131
+ mx_hash_int_0.setLayout( {
1132
+ name: 'mx_hash_int_0',
1133
+ type: 'uint',
1134
+ inputs: [
1135
+ { name: 'x', type: 'int' }
1136
+ ]
1137
+ } );
1138
+
1139
+ mx_hash_int_1.setLayout( {
1140
+ name: 'mx_hash_int_1',
1141
+ type: 'uint',
1142
+ inputs: [
1143
+ { name: 'x', type: 'int' },
1144
+ { name: 'y', type: 'int' }
1145
+ ]
1146
+ } );
1147
+
1148
+ mx_hash_int_2.setLayout( {
1149
+ name: 'mx_hash_int_2',
1150
+ type: 'uint',
1151
+ inputs: [
1152
+ { name: 'x', type: 'int' },
1153
+ { name: 'y', type: 'int' },
1154
+ { name: 'z', type: 'int' }
1155
+ ]
1156
+ } );
1157
+
1158
+ mx_hash_int_3.setLayout( {
1159
+ name: 'mx_hash_int_3',
1160
+ type: 'uint',
1161
+ inputs: [
1162
+ { name: 'x', type: 'int' },
1163
+ { name: 'y', type: 'int' },
1164
+ { name: 'z', type: 'int' },
1165
+ { name: 'xx', type: 'int' }
1166
+ ]
1167
+ } );
1168
+
1169
+ mx_hash_int_4.setLayout( {
1170
+ name: 'mx_hash_int_4',
1171
+ type: 'uint',
1172
+ inputs: [
1173
+ { name: 'x', type: 'int' },
1174
+ { name: 'y', type: 'int' },
1175
+ { name: 'z', type: 'int' },
1176
+ { name: 'xx', type: 'int' },
1177
+ { name: 'yy', type: 'int' }
1178
+ ]
1179
+ } );
1180
+
1181
+ mx_hash_vec3_0.setLayout( {
1182
+ name: 'mx_hash_vec3_0',
1183
+ type: 'uvec3',
1184
+ inputs: [
1185
+ { name: 'x', type: 'int' },
1186
+ { name: 'y', type: 'int' }
1187
+ ]
1188
+ } );
1189
+
1190
+ mx_hash_vec3_1.setLayout( {
1191
+ name: 'mx_hash_vec3_1',
1192
+ type: 'uvec3',
1193
+ inputs: [
1194
+ { name: 'x', type: 'int' },
1195
+ { name: 'y', type: 'int' },
1196
+ { name: 'z', type: 'int' }
1197
+ ]
1198
+ } );
1199
+
1200
+ mx_perlin_noise_float_0.setLayout( {
1201
+ name: 'mx_perlin_noise_float_0',
1202
+ type: 'float',
1203
+ inputs: [
1204
+ { name: 'p', type: 'vec2' }
1205
+ ]
1206
+ } );
1207
+
1208
+ mx_perlin_noise_float_1.setLayout( {
1209
+ name: 'mx_perlin_noise_float_1',
1210
+ type: 'float',
1211
+ inputs: [
1212
+ { name: 'p', type: 'vec3' }
1213
+ ]
1214
+ } );
1215
+
1216
+ mx_perlin_noise_vec3_0.setLayout( {
1217
+ name: 'mx_perlin_noise_vec3_0',
1218
+ type: 'vec3',
1219
+ inputs: [
1220
+ { name: 'p', type: 'vec2' }
1221
+ ]
1222
+ } );
1223
+
1224
+ mx_perlin_noise_vec3_1.setLayout( {
1225
+ name: 'mx_perlin_noise_vec3_1',
1226
+ type: 'vec3',
1227
+ inputs: [
1228
+ { name: 'p', type: 'vec3' }
1229
+ ]
1230
+ } );
1231
+
1232
+ mx_cell_noise_float_0.setLayout( {
1233
+ name: 'mx_cell_noise_float_0',
1234
+ type: 'float',
1235
+ inputs: [
1236
+ { name: 'p', type: 'float' }
1237
+ ]
1238
+ } );
1239
+
1240
+ mx_cell_noise_float_1.setLayout( {
1241
+ name: 'mx_cell_noise_float_1',
1242
+ type: 'float',
1243
+ inputs: [
1244
+ { name: 'p', type: 'vec2' }
1245
+ ]
1246
+ } );
1247
+
1248
+ mx_cell_noise_float_2.setLayout( {
1249
+ name: 'mx_cell_noise_float_2',
1250
+ type: 'float',
1251
+ inputs: [
1252
+ { name: 'p', type: 'vec3' }
1253
+ ]
1254
+ } );
1255
+
1256
+ mx_cell_noise_float_3.setLayout( {
1257
+ name: 'mx_cell_noise_float_3',
1258
+ type: 'float',
1259
+ inputs: [
1260
+ { name: 'p', type: 'vec4' }
1261
+ ]
1262
+ } );
1263
+
1264
+ mx_cell_noise_vec3_0.setLayout( {
1265
+ name: 'mx_cell_noise_vec3_0',
1266
+ type: 'vec3',
1267
+ inputs: [
1268
+ { name: 'p', type: 'float' }
1269
+ ]
1270
+ } );
1271
+
1272
+ mx_cell_noise_vec3_1.setLayout( {
1273
+ name: 'mx_cell_noise_vec3_1',
1274
+ type: 'vec3',
1275
+ inputs: [
1276
+ { name: 'p', type: 'vec2' }
1277
+ ]
1278
+ } );
1279
+
1280
+ mx_cell_noise_vec3_2.setLayout( {
1281
+ name: 'mx_cell_noise_vec3_2',
1282
+ type: 'vec3',
1283
+ inputs: [
1284
+ { name: 'p', type: 'vec3' }
1285
+ ]
1286
+ } );
1287
+
1288
+ mx_cell_noise_vec3_3.setLayout( {
1289
+ name: 'mx_cell_noise_vec3_3',
1290
+ type: 'vec3',
1291
+ inputs: [
1292
+ { name: 'p', type: 'vec4' }
1293
+ ]
1294
+ } );
1295
+
1296
+ mx_fractal_noise_float.setLayout( {
1297
+ name: 'mx_fractal_noise_float',
1298
+ type: 'float',
1299
+ inputs: [
1300
+ { name: 'p', type: 'vec3' },
1301
+ { name: 'octaves', type: 'int' },
1302
+ { name: 'lacunarity', type: 'float' },
1303
+ { name: 'diminish', type: 'float' }
1304
+ ]
1305
+ } );
1306
+
1307
+ mx_fractal_noise_vec3.setLayout( {
1308
+ name: 'mx_fractal_noise_vec3',
1309
+ type: 'vec3',
1310
+ inputs: [
1311
+ { name: 'p', type: 'vec3' },
1312
+ { name: 'octaves', type: 'int' },
1313
+ { name: 'lacunarity', type: 'float' },
1314
+ { name: 'diminish', type: 'float' }
1315
+ ]
1316
+ } );
1317
+
1318
+ mx_fractal_noise_vec2.setLayout( {
1319
+ name: 'mx_fractal_noise_vec2',
1320
+ type: 'vec2',
1321
+ inputs: [
1322
+ { name: 'p', type: 'vec3' },
1323
+ { name: 'octaves', type: 'int' },
1324
+ { name: 'lacunarity', type: 'float' },
1325
+ { name: 'diminish', type: 'float' }
1326
+ ]
1327
+ } );
1328
+
1329
+ mx_fractal_noise_vec4.setLayout( {
1330
+ name: 'mx_fractal_noise_vec4',
1331
+ type: 'vec4',
1332
+ inputs: [
1333
+ { name: 'p', type: 'vec3' },
1334
+ { name: 'octaves', type: 'int' },
1335
+ { name: 'lacunarity', type: 'float' },
1336
+ { name: 'diminish', type: 'float' }
1337
+ ]
1338
+ } );
1339
+
1340
+ mx_worley_distance_0.setLayout( {
1341
+ name: 'mx_worley_distance_0',
1342
+ type: 'float',
1343
+ inputs: [
1344
+ { name: 'p', type: 'vec2' },
1345
+ { name: 'x', type: 'int' },
1346
+ { name: 'y', type: 'int' },
1347
+ { name: 'xoff', type: 'int' },
1348
+ { name: 'yoff', type: 'int' },
1349
+ { name: 'jitter', type: 'float' },
1350
+ { name: 'metric', type: 'int' }
1351
+ ]
1352
+ } );
1353
+
1354
+ mx_worley_distance_1.setLayout( {
1355
+ name: 'mx_worley_distance_1',
1356
+ type: 'float',
1357
+ inputs: [
1358
+ { name: 'p', type: 'vec3' },
1359
+ { name: 'x', type: 'int' },
1360
+ { name: 'y', type: 'int' },
1361
+ { name: 'z', type: 'int' },
1362
+ { name: 'xoff', type: 'int' },
1363
+ { name: 'yoff', type: 'int' },
1364
+ { name: 'zoff', type: 'int' },
1365
+ { name: 'jitter', type: 'float' },
1366
+ { name: 'metric', type: 'int' }
1367
+ ]
1368
+ } );
1369
+
1370
+ mx_worley_noise_float_0.setLayout( {
1371
+ name: 'mx_worley_noise_float_0',
1372
+ type: 'float',
1373
+ inputs: [
1374
+ { name: 'p', type: 'vec2' },
1375
+ { name: 'jitter', type: 'float' },
1376
+ { name: 'metric', type: 'int' }
1377
+ ]
1378
+ } );
1379
+
1380
+ mx_worley_noise_vec2_0.setLayout( {
1381
+ name: 'mx_worley_noise_vec2_0',
1382
+ type: 'vec2',
1383
+ inputs: [
1384
+ { name: 'p', type: 'vec2' },
1385
+ { name: 'jitter', type: 'float' },
1386
+ { name: 'metric', type: 'int' }
1387
+ ]
1388
+ } );
1389
+
1390
+ mx_worley_noise_vec3_0.setLayout( {
1391
+ name: 'mx_worley_noise_vec3_0',
1392
+ type: 'vec3',
1393
+ inputs: [
1394
+ { name: 'p', type: 'vec2' },
1395
+ { name: 'jitter', type: 'float' },
1396
+ { name: 'metric', type: 'int' }
1397
+ ]
1398
+ } );
1399
+
1400
+ mx_worley_noise_float_1.setLayout( {
1401
+ name: 'mx_worley_noise_float_1',
1402
+ type: 'float',
1403
+ inputs: [
1404
+ { name: 'p', type: 'vec3' },
1405
+ { name: 'jitter', type: 'float' },
1406
+ { name: 'metric', type: 'int' }
1407
+ ]
1408
+ } );
1409
+
1410
+ mx_worley_noise_vec2_1.setLayout( {
1411
+ name: 'mx_worley_noise_vec2_1',
1412
+ type: 'vec2',
1413
+ inputs: [
1414
+ { name: 'p', type: 'vec3' },
1415
+ { name: 'jitter', type: 'float' },
1416
+ { name: 'metric', type: 'int' }
1417
+ ]
1418
+ } );
1419
+
1420
+ mx_worley_noise_vec3_1.setLayout( {
1421
+ name: 'mx_worley_noise_vec3_1',
1422
+ type: 'vec3',
1423
+ inputs: [
1424
+ { name: 'p', type: 'vec3' },
1425
+ { name: 'jitter', type: 'float' },
1426
+ { name: 'metric', type: 'int' }
1427
+ ]
1428
+ } );
1429
+
1430
+ export { mx_select, mx_negate_if, mx_floor, mx_floorfrac, mx_bilerp, mx_trilerp, mx_gradient_float, mx_gradient_vec3, mx_gradient_scale2d, mx_gradient_scale3d, mx_rotl32, mx_bjmix, mx_bjfinal, mx_bits_to_01, mx_fade, mx_hash_int, mx_hash_vec3, mx_perlin_noise_float, mx_perlin_noise_vec3, mx_cell_noise_float, mx_cell_noise_vec3, mx_fractal_noise_float, mx_fractal_noise_vec3, mx_fractal_noise_vec2, mx_fractal_noise_vec4, mx_worley_distance, mx_worley_noise_float, mx_worley_noise_vec2, mx_worley_noise_vec3 };