@needle-tools/three 0.160.3 → 0.162.1

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 (961) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +86 -86
  3. package/build/three.cjs +53267 -53092
  4. package/build/three.module.js +53269 -53094
  5. package/build/three.module.min.js +1 -1
  6. package/examples/fonts/LICENSE +13 -13
  7. package/examples/fonts/README.md +11 -11
  8. package/examples/fonts/droid/NOTICE +190 -190
  9. package/examples/fonts/droid/README.txt +18 -18
  10. package/examples/fonts/ttf/README.md +9 -9
  11. package/examples/jsm/Addons.js +295 -294
  12. package/examples/jsm/animation/AnimationClipCreator.js +116 -116
  13. package/examples/jsm/animation/CCDIKSolver.js +482 -482
  14. package/examples/jsm/animation/MMDAnimationHelper.js +1207 -1207
  15. package/examples/jsm/animation/MMDPhysics.js +1406 -1406
  16. package/examples/jsm/cameras/CinematicCamera.js +208 -208
  17. package/examples/jsm/capabilities/WebGL.js +108 -108
  18. package/examples/jsm/capabilities/WebGPU.js +57 -57
  19. package/examples/jsm/controls/ArcballControls.js +3224 -3224
  20. package/examples/jsm/controls/DragControls.js +282 -221
  21. package/examples/jsm/controls/FirstPersonControls.js +325 -325
  22. package/examples/jsm/controls/FlyControls.js +326 -326
  23. package/examples/jsm/controls/MapControls.js +28 -28
  24. package/examples/jsm/controls/OrbitControls.js +1548 -1521
  25. package/examples/jsm/controls/PointerLockControls.js +162 -162
  26. package/examples/jsm/controls/TrackballControls.js +828 -828
  27. package/examples/jsm/controls/TransformControls.js +1573 -1573
  28. package/examples/jsm/csm/CSM.js +384 -384
  29. package/examples/jsm/csm/CSMFrustum.js +152 -152
  30. package/examples/jsm/csm/CSMHelper.js +193 -193
  31. package/examples/jsm/csm/CSMShader.js +295 -295
  32. package/examples/jsm/curves/CurveExtras.js +422 -422
  33. package/examples/jsm/curves/NURBSCurve.js +80 -80
  34. package/examples/jsm/curves/NURBSSurface.js +52 -52
  35. package/examples/jsm/curves/NURBSUtils.js +542 -487
  36. package/examples/jsm/curves/NURBSVolume.js +62 -0
  37. package/examples/jsm/effects/AnaglyphEffect.js +154 -154
  38. package/examples/jsm/effects/AsciiEffect.js +263 -263
  39. package/examples/jsm/effects/OutlineEffect.js +539 -539
  40. package/examples/jsm/effects/ParallaxBarrierEffect.js +119 -119
  41. package/examples/jsm/effects/PeppersGhostEffect.js +153 -153
  42. package/examples/jsm/effects/StereoEffect.js +55 -55
  43. package/examples/jsm/environments/DebugEnvironment.js +52 -52
  44. package/examples/jsm/environments/RoomEnvironment.js +148 -148
  45. package/examples/jsm/exporters/DRACOExporter.js +267 -267
  46. package/examples/jsm/exporters/EXRExporter.js +579 -579
  47. package/examples/jsm/exporters/GLTFExporter.js +3321 -3311
  48. package/examples/jsm/exporters/KTX2Exporter.js +292 -292
  49. package/examples/jsm/exporters/MMDExporter.js +217 -217
  50. package/examples/jsm/exporters/OBJExporter.js +284 -284
  51. package/examples/jsm/exporters/PLYExporter.js +528 -528
  52. package/examples/jsm/exporters/STLExporter.js +199 -199
  53. package/examples/jsm/exporters/USDZExporter.js +720 -720
  54. package/examples/jsm/geometries/BoxLineGeometry.js +69 -69
  55. package/examples/jsm/geometries/ConvexGeometry.js +53 -53
  56. package/examples/jsm/geometries/DecalGeometry.js +356 -356
  57. package/examples/jsm/geometries/InstancedPointsGeometry.js +174 -174
  58. package/examples/jsm/geometries/ParametricGeometries.js +254 -254
  59. package/examples/jsm/geometries/ParametricGeometry.js +139 -139
  60. package/examples/jsm/geometries/RoundedBoxGeometry.js +155 -155
  61. package/examples/jsm/geometries/SDFGeometryGenerator.js +144 -144
  62. package/examples/jsm/geometries/TeapotGeometry.js +704 -704
  63. package/examples/jsm/geometries/TextGeometry.js +57 -57
  64. package/examples/jsm/helpers/LightProbeHelper.js +130 -130
  65. package/examples/jsm/helpers/OctreeHelper.js +73 -73
  66. package/examples/jsm/helpers/PositionalAudioHelper.js +109 -109
  67. package/examples/jsm/helpers/RectAreaLightHelper.js +85 -85
  68. package/examples/jsm/helpers/TextureHelper.js +237 -237
  69. package/examples/jsm/helpers/VertexNormalsHelper.js +96 -96
  70. package/examples/jsm/helpers/VertexTangentsHelper.js +88 -88
  71. package/examples/jsm/helpers/ViewHelper.js +333 -333
  72. package/examples/jsm/interactive/HTMLMesh.js +572 -572
  73. package/examples/jsm/interactive/InteractiveGroup.js +106 -116
  74. package/examples/jsm/interactive/SelectionBox.js +227 -227
  75. package/examples/jsm/interactive/SelectionHelper.js +104 -104
  76. package/examples/jsm/libs/ammo.wasm.js +822 -822
  77. package/examples/jsm/libs/basis/README.md +46 -46
  78. package/examples/jsm/libs/basis/basis_transcoder.js +21 -21
  79. package/examples/jsm/libs/chevrotain.module.min.js +141 -141
  80. package/examples/jsm/libs/draco/README.md +32 -32
  81. package/examples/jsm/libs/draco/draco_decoder.js +34 -34
  82. package/examples/jsm/libs/draco/draco_encoder.js +33 -33
  83. package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -117
  84. package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -33
  85. package/examples/jsm/libs/draco/gltf/draco_encoder.js +33 -33
  86. package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -116
  87. package/examples/jsm/libs/ecsy.module.js +1792 -1792
  88. package/examples/jsm/libs/fflate.module.js +2474 -2474
  89. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  90. package/examples/jsm/libs/lil-gui.module.min.js +8 -8
  91. package/examples/jsm/libs/lottie_canvas.module.js +14849 -14849
  92. package/examples/jsm/libs/meshopt_decoder.module.js +178 -178
  93. package/examples/jsm/libs/mikktspace.module.js +128 -128
  94. package/examples/jsm/libs/mmdparser.module.js +11530 -11530
  95. package/examples/jsm/libs/motion-controllers.module.js +397 -397
  96. package/examples/jsm/libs/opentype.module.js +14506 -14506
  97. package/examples/jsm/libs/potpack.module.js +124 -124
  98. package/examples/jsm/libs/rhino3dm/rhino3dm.js +21 -8743
  99. package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +15 -8748
  100. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  101. package/examples/jsm/libs/stats.module.js +167 -167
  102. package/examples/jsm/libs/surfaceNet.js +200 -200
  103. package/examples/jsm/libs/tween.module.js +876 -858
  104. package/examples/jsm/libs/utif.module.js +1664 -1664
  105. package/examples/jsm/libs/zstddec.module.js +1 -1
  106. package/examples/jsm/lights/IESSpotLight.js +25 -25
  107. package/examples/jsm/lights/LightProbeGenerator.js +286 -286
  108. package/examples/jsm/lights/RectAreaLightUniformsLib.js +79 -79
  109. package/examples/jsm/lines/Line2.js +19 -19
  110. package/examples/jsm/lines/LineGeometry.js +79 -79
  111. package/examples/jsm/lines/LineMaterial.js +619 -619
  112. package/examples/jsm/lines/LineSegments2.js +361 -361
  113. package/examples/jsm/lines/LineSegmentsGeometry.js +241 -241
  114. package/examples/jsm/lines/Wireframe.js +56 -56
  115. package/examples/jsm/lines/WireframeGeometry2.js +24 -24
  116. package/examples/jsm/loaders/3DMLoader.js +1764 -1772
  117. package/examples/jsm/loaders/3MFLoader.js +1478 -1478
  118. package/examples/jsm/loaders/AMFLoader.js +521 -521
  119. package/examples/jsm/loaders/BVHLoader.js +437 -437
  120. package/examples/jsm/loaders/ColladaLoader.js +4116 -4116
  121. package/examples/jsm/loaders/DDSLoader.js +318 -318
  122. package/examples/jsm/loaders/DRACOLoader.js +613 -613
  123. package/examples/jsm/loaders/EXRLoader.js +2309 -2309
  124. package/examples/jsm/loaders/FBXLoader.js +4314 -4314
  125. package/examples/jsm/loaders/FontLoader.js +183 -183
  126. package/examples/jsm/loaders/GCodeLoader.js +261 -261
  127. package/examples/jsm/loaders/GLTFLoader.js +4666 -4666
  128. package/examples/jsm/loaders/GLTFLoaderAnimationPointer.js +729 -720
  129. package/examples/jsm/loaders/HDRCubeTextureLoader.js +115 -115
  130. package/examples/jsm/loaders/IESLoader.js +337 -337
  131. package/examples/jsm/loaders/KMZLoader.js +130 -130
  132. package/examples/jsm/loaders/KTX2Loader.js +932 -932
  133. package/examples/jsm/loaders/KTXLoader.js +176 -176
  134. package/examples/jsm/loaders/LDrawLoader.js +2470 -2470
  135. package/examples/jsm/loaders/LUT3dlLoader.js +183 -183
  136. package/examples/jsm/loaders/LUTCubeLoader.js +167 -167
  137. package/examples/jsm/loaders/LUTImageLoader.js +163 -163
  138. package/examples/jsm/loaders/LWOLoader.js +1052 -1052
  139. package/examples/jsm/loaders/LogLuvLoader.js +606 -606
  140. package/examples/jsm/loaders/LottieLoader.js +77 -77
  141. package/examples/jsm/loaders/MD2Loader.js +399 -399
  142. package/examples/jsm/loaders/MDDLoader.js +102 -102
  143. package/examples/jsm/loaders/MMDLoader.js +2276 -2276
  144. package/examples/jsm/loaders/MTLLoader.js +567 -567
  145. package/examples/jsm/loaders/MaterialXLoader.js +852 -852
  146. package/examples/jsm/loaders/NRRDLoader.js +686 -686
  147. package/examples/jsm/loaders/OBJLoader.js +905 -905
  148. package/examples/jsm/loaders/PCDLoader.js +467 -467
  149. package/examples/jsm/loaders/PDBLoader.js +232 -232
  150. package/examples/jsm/loaders/PLYLoader.js +771 -771
  151. package/examples/jsm/loaders/PVRLoader.js +251 -251
  152. package/examples/jsm/loaders/RGBELoader.js +450 -450
  153. package/examples/jsm/loaders/RGBMLoader.js +1065 -1065
  154. package/examples/jsm/loaders/STLLoader.js +410 -410
  155. package/examples/jsm/loaders/SVGLoader.js +3173 -3173
  156. package/examples/jsm/loaders/TDSLoader.js +1124 -1124
  157. package/examples/jsm/loaders/TGALoader.js +517 -517
  158. package/examples/jsm/loaders/TIFFLoader.js +36 -36
  159. package/examples/jsm/loaders/TTFLoader.js +214 -214
  160. package/examples/jsm/loaders/TiltLoader.js +520 -520
  161. package/examples/jsm/loaders/USDZLoader.js +822 -822
  162. package/examples/jsm/loaders/VOXLoader.js +318 -311
  163. package/examples/jsm/loaders/VRMLLoader.js +3537 -3533
  164. package/examples/jsm/loaders/VTKLoader.js +1163 -1163
  165. package/examples/jsm/loaders/XYZLoader.js +106 -106
  166. package/examples/jsm/loaders/lwo/IFFParser.js +1214 -1214
  167. package/examples/jsm/loaders/lwo/LWO2Parser.js +414 -414
  168. package/examples/jsm/loaders/lwo/LWO3Parser.js +373 -373
  169. package/examples/jsm/materials/MeshGouraudMaterial.js +426 -426
  170. package/examples/jsm/materials/MeshPostProcessingMaterial.js +144 -144
  171. package/examples/jsm/math/Capsule.js +82 -82
  172. package/examples/jsm/math/ColorConverter.js +36 -36
  173. package/examples/jsm/math/ConvexHull.js +1271 -1271
  174. package/examples/jsm/math/ImprovedNoise.js +71 -71
  175. package/examples/jsm/math/Lut.js +204 -204
  176. package/examples/jsm/math/MeshSurfaceSampler.js +250 -250
  177. package/examples/jsm/math/OBB.js +423 -423
  178. package/examples/jsm/math/Octree.js +540 -540
  179. package/examples/jsm/math/SimplexNoise.js +444 -444
  180. package/examples/jsm/misc/ConvexObjectBreaker.js +519 -519
  181. package/examples/jsm/misc/GPUComputationRenderer.js +446 -446
  182. package/examples/jsm/misc/Gyroscope.js +66 -66
  183. package/examples/jsm/misc/MD2Character.js +276 -276
  184. package/examples/jsm/misc/MD2CharacterComplex.js +576 -576
  185. package/examples/jsm/misc/MorphAnimMesh.js +75 -75
  186. package/examples/jsm/misc/MorphBlendMesh.js +322 -322
  187. package/examples/jsm/misc/ProgressiveLightMap.js +324 -323
  188. package/examples/jsm/misc/RollerCoaster.js +566 -566
  189. package/examples/jsm/misc/Timer.js +128 -119
  190. package/examples/jsm/misc/TubePainter.js +202 -202
  191. package/examples/jsm/misc/Volume.js +473 -473
  192. package/examples/jsm/misc/VolumeSlice.js +229 -229
  193. package/examples/jsm/modifiers/CurveModifier.js +344 -344
  194. package/examples/jsm/modifiers/EdgeSplitModifier.js +279 -279
  195. package/examples/jsm/modifiers/SimplifyModifier.js +617 -617
  196. package/examples/jsm/modifiers/TessellateModifier.js +307 -307
  197. package/examples/jsm/nodes/Nodes.js +195 -189
  198. package/examples/jsm/nodes/accessors/AccessorsUtils.js +10 -0
  199. package/examples/jsm/nodes/accessors/BitangentNode.js +89 -89
  200. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +127 -127
  201. package/examples/jsm/nodes/accessors/BufferNode.js +30 -30
  202. package/examples/jsm/nodes/accessors/CameraNode.js +119 -120
  203. package/examples/jsm/nodes/accessors/ClippingNode.js +144 -0
  204. package/examples/jsm/nodes/accessors/CubeTextureNode.js +61 -61
  205. package/examples/jsm/nodes/accessors/InstanceNode.js +71 -71
  206. package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +21 -21
  207. package/examples/jsm/nodes/accessors/MaterialNode.js +314 -314
  208. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +41 -51
  209. package/examples/jsm/nodes/accessors/ModelNode.js +33 -33
  210. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +39 -39
  211. package/examples/jsm/nodes/accessors/MorphNode.js +245 -245
  212. package/examples/jsm/nodes/accessors/NormalNode.js +96 -96
  213. package/examples/jsm/nodes/accessors/Object3DNode.js +150 -150
  214. package/examples/jsm/nodes/accessors/PointUVNode.js +26 -26
  215. package/examples/jsm/nodes/accessors/PositionNode.js +104 -104
  216. package/examples/jsm/nodes/accessors/ReferenceNode.js +160 -102
  217. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +35 -35
  218. package/examples/jsm/nodes/accessors/SceneNode.js +52 -52
  219. package/examples/jsm/nodes/accessors/SkinningNode.js +124 -103
  220. package/examples/jsm/nodes/accessors/StorageBufferNode.js +72 -54
  221. package/examples/jsm/nodes/accessors/TangentNode.js +109 -103
  222. package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -94
  223. package/examples/jsm/nodes/accessors/TextureNode.js +367 -367
  224. package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -35
  225. package/examples/jsm/nodes/accessors/TextureStoreNode.js +82 -82
  226. package/examples/jsm/nodes/accessors/UVNode.js +47 -47
  227. package/examples/jsm/nodes/accessors/UniformsNode.js +140 -0
  228. package/examples/jsm/nodes/accessors/UserDataNode.js +29 -29
  229. package/examples/jsm/nodes/accessors/VertexColorNode.js +70 -70
  230. package/examples/jsm/nodes/code/CodeNode.js +84 -78
  231. package/examples/jsm/nodes/code/ExpressionNode.js +37 -37
  232. package/examples/jsm/nodes/code/FunctionCallNode.js +96 -96
  233. package/examples/jsm/nodes/code/FunctionNode.js +138 -138
  234. package/examples/jsm/nodes/code/ScriptableNode.js +488 -488
  235. package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -167
  236. package/examples/jsm/nodes/core/AssignNode.js +128 -72
  237. package/examples/jsm/nodes/core/AttributeNode.js +108 -108
  238. package/examples/jsm/nodes/core/BypassNode.js +45 -45
  239. package/examples/jsm/nodes/core/CacheNode.js +49 -49
  240. package/examples/jsm/nodes/core/ConstNode.js +32 -32
  241. package/examples/jsm/nodes/core/ContextNode.js +61 -61
  242. package/examples/jsm/nodes/core/IndexNode.js +66 -66
  243. package/examples/jsm/nodes/core/InputNode.js +83 -83
  244. package/examples/jsm/nodes/core/LightingModel.js +17 -17
  245. package/examples/jsm/nodes/core/Node.js +493 -483
  246. package/examples/jsm/nodes/core/NodeAttribute.js +15 -15
  247. package/examples/jsm/nodes/core/NodeBuilder.js +1250 -1267
  248. package/examples/jsm/nodes/core/NodeCache.js +26 -26
  249. package/examples/jsm/nodes/core/NodeCode.js +15 -15
  250. package/examples/jsm/nodes/core/NodeFrame.js +143 -135
  251. package/examples/jsm/nodes/core/NodeFunction.js +22 -22
  252. package/examples/jsm/nodes/core/NodeFunctionInput.js +17 -17
  253. package/examples/jsm/nodes/core/NodeKeywords.js +80 -80
  254. package/examples/jsm/nodes/core/NodeParser.js +11 -11
  255. package/examples/jsm/nodes/core/NodeUniform.js +40 -40
  256. package/examples/jsm/nodes/core/NodeUtils.js +210 -210
  257. package/examples/jsm/nodes/core/NodeVar.js +14 -14
  258. package/examples/jsm/nodes/core/NodeVarying.js +17 -17
  259. package/examples/jsm/nodes/core/OutputStructNode.js +62 -62
  260. package/examples/jsm/nodes/core/ParameterNode.js +33 -33
  261. package/examples/jsm/nodes/core/PropertyNode.js +72 -72
  262. package/examples/jsm/nodes/core/StackNode.js +89 -89
  263. package/examples/jsm/nodes/core/StructTypeNode.js +24 -24
  264. package/examples/jsm/nodes/core/TempNode.js +58 -58
  265. package/examples/jsm/nodes/core/UniformGroup.js +13 -13
  266. package/examples/jsm/nodes/core/UniformGroupNode.js +36 -36
  267. package/examples/jsm/nodes/core/UniformNode.js +80 -80
  268. package/examples/jsm/nodes/core/VarNode.js +60 -60
  269. package/examples/jsm/nodes/core/VaryingNode.js +65 -65
  270. package/examples/jsm/nodes/core/constants.js +28 -27
  271. package/examples/jsm/nodes/display/AfterImageNode.js +148 -134
  272. package/examples/jsm/nodes/display/AnamorphicNode.js +148 -0
  273. package/examples/jsm/nodes/display/BlendModeNode.js +128 -99
  274. package/examples/jsm/nodes/display/BumpMapNode.js +99 -99
  275. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +99 -96
  276. package/examples/jsm/nodes/display/ColorSpaceNode.js +108 -108
  277. package/examples/jsm/nodes/display/FrontFacingNode.js +27 -27
  278. package/examples/jsm/nodes/display/GaussianBlurNode.js +190 -177
  279. package/examples/jsm/nodes/display/NormalMapNode.js +106 -108
  280. package/examples/jsm/nodes/display/PassNode.js +183 -182
  281. package/examples/jsm/nodes/display/PosterizeNode.js +32 -32
  282. package/examples/jsm/nodes/display/ToneMappingNode.js +184 -184
  283. package/examples/jsm/nodes/display/ViewportDepthNode.js +97 -97
  284. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +31 -31
  285. package/examples/jsm/nodes/display/ViewportNode.js +134 -134
  286. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +31 -31
  287. package/examples/jsm/nodes/display/ViewportTextureNode.js +75 -75
  288. package/examples/jsm/nodes/fog/FogExp2Node.js +35 -35
  289. package/examples/jsm/nodes/fog/FogNode.js +38 -38
  290. package/examples/jsm/nodes/fog/FogRangeNode.js +34 -34
  291. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +40 -40
  292. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -9
  293. package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +57 -57
  294. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +30 -30
  295. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +23 -23
  296. package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -13
  297. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +16 -16
  298. package/examples/jsm/nodes/functions/BSDF/Schlick_to_F0.js +21 -21
  299. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +28 -28
  300. package/examples/jsm/nodes/functions/PhongLightingModel.js +67 -67
  301. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +393 -393
  302. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +13 -13
  303. package/examples/jsm/nodes/functions/material/getRoughness.js +18 -18
  304. package/examples/jsm/nodes/geometry/RangeNode.js +104 -104
  305. package/examples/jsm/nodes/gpgpu/ComputeNode.js +85 -85
  306. package/examples/jsm/nodes/lighting/AONode.js +27 -27
  307. package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -27
  308. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +241 -238
  309. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +40 -40
  310. package/examples/jsm/nodes/lighting/EnvironmentNode.js +181 -181
  311. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +55 -55
  312. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -39
  313. package/examples/jsm/nodes/lighting/LightNode.js +57 -57
  314. package/examples/jsm/nodes/lighting/LightUtils.js +17 -17
  315. package/examples/jsm/nodes/lighting/LightingContextNode.js +66 -66
  316. package/examples/jsm/nodes/lighting/LightingNode.js +21 -21
  317. package/examples/jsm/nodes/lighting/LightsNode.js +188 -188
  318. package/examples/jsm/nodes/lighting/PointLightNode.js +68 -68
  319. package/examples/jsm/nodes/lighting/SpotLightNode.js +89 -89
  320. package/examples/jsm/nodes/loaders/NodeLoader.js +108 -108
  321. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +59 -59
  322. package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -70
  323. package/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +162 -162
  324. package/examples/jsm/nodes/materials/Line2NodeMaterial.js +436 -436
  325. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +28 -28
  326. package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +54 -54
  327. package/examples/jsm/nodes/materials/Materials.js +16 -16
  328. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +28 -28
  329. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +34 -34
  330. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +40 -40
  331. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +65 -65
  332. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +155 -155
  333. package/examples/jsm/nodes/materials/MeshSSSNodeMaterial.js +84 -84
  334. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +80 -80
  335. package/examples/jsm/nodes/materials/NodeMaterial.js +601 -568
  336. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +39 -39
  337. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +90 -96
  338. package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -199
  339. package/examples/jsm/nodes/materialx/MaterialXNodes.js +68 -68
  340. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +130 -130
  341. package/examples/jsm/nodes/materialx/lib/mx_noise.js +1430 -1430
  342. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +29 -29
  343. package/examples/jsm/nodes/math/CondNode.js +121 -86
  344. package/examples/jsm/nodes/math/HashNode.js +34 -34
  345. package/examples/jsm/nodes/math/MathNode.js +391 -382
  346. package/examples/jsm/nodes/math/MathUtils.js +15 -0
  347. package/examples/jsm/nodes/math/OperatorNode.js +274 -266
  348. package/examples/jsm/nodes/math/TriNoise3D.js +71 -71
  349. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +152 -152
  350. package/examples/jsm/nodes/parsers/GLSLNodeParser.js +14 -14
  351. package/examples/jsm/nodes/procedural/CheckerNode.js +42 -42
  352. package/examples/jsm/nodes/shadernode/ShaderNode.js +634 -625
  353. package/examples/jsm/nodes/utils/ArrayElementNode.js +35 -41
  354. package/examples/jsm/nodes/utils/ConvertNode.js +65 -65
  355. package/examples/jsm/nodes/utils/DiscardNode.js +27 -27
  356. package/examples/jsm/nodes/utils/EquirectUVNode.js +33 -33
  357. package/examples/jsm/nodes/utils/FunctionOverloadingNode.js +95 -95
  358. package/examples/jsm/nodes/utils/JoinNode.js +61 -61
  359. package/examples/jsm/nodes/utils/LoopNode.js +200 -198
  360. package/examples/jsm/nodes/utils/MatcapUVNode.js +30 -30
  361. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +46 -46
  362. package/examples/jsm/nodes/utils/OscNode.js +81 -81
  363. package/examples/jsm/nodes/utils/PackingNode.js +55 -55
  364. package/examples/jsm/nodes/utils/ReflectorNode.js +227 -0
  365. package/examples/jsm/nodes/utils/RemapNode.js +42 -42
  366. package/examples/jsm/nodes/utils/RotateNode.js +68 -43
  367. package/examples/jsm/nodes/utils/RotateUVNode.js +35 -43
  368. package/examples/jsm/nodes/utils/SetNode.js +62 -62
  369. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -37
  370. package/examples/jsm/nodes/utils/SplitNode.js +112 -112
  371. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +41 -41
  372. package/examples/jsm/nodes/utils/StorageArrayElementNode.js +91 -0
  373. package/examples/jsm/nodes/utils/TimerNode.js +94 -94
  374. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +62 -62
  375. package/examples/jsm/objects/GroundedSkybox.js +50 -50
  376. package/examples/jsm/objects/InstancedPoints.js +21 -21
  377. package/examples/jsm/objects/Lensflare.js +397 -397
  378. package/examples/jsm/objects/MarchingCubes.js +1176 -1176
  379. package/examples/jsm/objects/QuadMesh.js +66 -66
  380. package/examples/jsm/objects/Reflector.js +264 -264
  381. package/examples/jsm/objects/ReflectorForSSRPass.js +352 -352
  382. package/examples/jsm/objects/Refractor.js +327 -327
  383. package/examples/jsm/objects/ShadowMesh.js +80 -80
  384. package/examples/jsm/objects/Sky.js +219 -219
  385. package/examples/jsm/objects/Water.js +333 -333
  386. package/examples/jsm/objects/Water2.js +361 -361
  387. package/examples/jsm/offscreen/jank.js +45 -45
  388. package/examples/jsm/offscreen/offscreen.js +8 -8
  389. package/examples/jsm/offscreen/scene.js +86 -86
  390. package/examples/jsm/physics/AmmoPhysics.js +306 -306
  391. package/examples/jsm/physics/RapierPhysics.js +220 -220
  392. package/examples/jsm/postprocessing/AfterimagePass.js +104 -104
  393. package/examples/jsm/postprocessing/BloomPass.js +172 -172
  394. package/examples/jsm/postprocessing/BokehPass.js +141 -141
  395. package/examples/jsm/postprocessing/ClearPass.js +46 -46
  396. package/examples/jsm/postprocessing/CubeTexturePass.js +85 -85
  397. package/examples/jsm/postprocessing/DotScreenPass.js +65 -65
  398. package/examples/jsm/postprocessing/EffectComposer.js +231 -231
  399. package/examples/jsm/postprocessing/FilmPass.js +64 -64
  400. package/examples/jsm/postprocessing/GTAOPass.js +582 -582
  401. package/examples/jsm/postprocessing/GlitchPass.js +128 -128
  402. package/examples/jsm/postprocessing/HalftonePass.js +79 -79
  403. package/examples/jsm/postprocessing/LUTPass.js +174 -174
  404. package/examples/jsm/postprocessing/MaskPass.js +104 -104
  405. package/examples/jsm/postprocessing/OutlinePass.js +654 -654
  406. package/examples/jsm/postprocessing/OutputPass.js +97 -95
  407. package/examples/jsm/postprocessing/Pass.js +95 -95
  408. package/examples/jsm/postprocessing/RenderPass.js +99 -99
  409. package/examples/jsm/postprocessing/RenderPixelatedPass.js +235 -235
  410. package/examples/jsm/postprocessing/SAOPass.js +335 -335
  411. package/examples/jsm/postprocessing/SMAAPass.js +199 -199
  412. package/examples/jsm/postprocessing/SSAARenderPass.js +228 -228
  413. package/examples/jsm/postprocessing/SSAOPass.js +420 -420
  414. package/examples/jsm/postprocessing/SSRPass.js +641 -641
  415. package/examples/jsm/postprocessing/SavePass.js +79 -79
  416. package/examples/jsm/postprocessing/ShaderPass.js +77 -77
  417. package/examples/jsm/postprocessing/TAARenderPass.js +188 -188
  418. package/examples/jsm/postprocessing/TexturePass.js +67 -67
  419. package/examples/jsm/postprocessing/UnrealBloomPass.js +415 -415
  420. package/examples/jsm/renderers/CSS2DRenderer.js +215 -215
  421. package/examples/jsm/renderers/CSS3DRenderer.js +329 -329
  422. package/examples/jsm/renderers/Projector.js +918 -918
  423. package/examples/jsm/renderers/SVGRenderer.js +556 -556
  424. package/examples/jsm/renderers/common/Animation.js +47 -47
  425. package/examples/jsm/renderers/common/Attributes.js +75 -75
  426. package/examples/jsm/renderers/common/Backend.js +195 -193
  427. package/examples/jsm/renderers/common/Background.js +134 -134
  428. package/examples/jsm/renderers/common/Binding.js +25 -25
  429. package/examples/jsm/renderers/common/Bindings.js +173 -173
  430. package/examples/jsm/renderers/common/Buffer.js +38 -38
  431. package/examples/jsm/renderers/common/BufferUtils.js +33 -33
  432. package/examples/jsm/renderers/common/ChainMap.js +89 -89
  433. package/examples/jsm/renderers/common/ClippingContext.js +165 -0
  434. package/examples/jsm/renderers/common/Color4.js +37 -37
  435. package/examples/jsm/renderers/common/ComputePipeline.js +17 -17
  436. package/examples/jsm/renderers/common/Constants.js +14 -14
  437. package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -65
  438. package/examples/jsm/renderers/common/DataMap.js +54 -54
  439. package/examples/jsm/renderers/common/Geometries.js +215 -215
  440. package/examples/jsm/renderers/common/Info.js +107 -107
  441. package/examples/jsm/renderers/common/Pipeline.js +13 -13
  442. package/examples/jsm/renderers/common/Pipelines.js +322 -322
  443. package/examples/jsm/renderers/common/PostProcessing.js +25 -25
  444. package/examples/jsm/renderers/common/ProgrammableStage.js +20 -20
  445. package/examples/jsm/renderers/common/RenderContext.js +43 -41
  446. package/examples/jsm/renderers/common/RenderContexts.js +63 -74
  447. package/examples/jsm/renderers/common/RenderList.js +186 -186
  448. package/examples/jsm/renderers/common/RenderLists.js +38 -38
  449. package/examples/jsm/renderers/common/RenderObject.js +221 -178
  450. package/examples/jsm/renderers/common/RenderObjects.js +93 -91
  451. package/examples/jsm/renderers/common/RenderPipeline.js +16 -16
  452. package/examples/jsm/renderers/common/Renderer.js +1304 -1062
  453. package/examples/jsm/renderers/common/SampledTexture.js +83 -83
  454. package/examples/jsm/renderers/common/Sampler.js +18 -18
  455. package/examples/jsm/renderers/common/StorageBuffer.js +17 -17
  456. package/examples/jsm/renderers/common/StorageBufferAttribute.js +17 -21
  457. package/examples/jsm/renderers/common/StorageInstancedBufferAttribute.js +17 -0
  458. package/examples/jsm/renderers/common/StorageTexture.js +20 -20
  459. package/examples/jsm/renderers/common/Textures.js +344 -354
  460. package/examples/jsm/renderers/common/Uniform.js +140 -140
  461. package/examples/jsm/renderers/common/UniformBuffer.js +15 -15
  462. package/examples/jsm/renderers/common/UniformsGroup.js +301 -299
  463. package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +44 -44
  464. package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +49 -49
  465. package/examples/jsm/renderers/common/nodes/NodeSampler.js +15 -15
  466. package/examples/jsm/renderers/common/nodes/NodeStorageBuffer.js +23 -0
  467. package/examples/jsm/renderers/common/nodes/NodeUniform.js +135 -135
  468. package/examples/jsm/renderers/common/nodes/NodeUniformBuffer.js +23 -0
  469. package/examples/jsm/renderers/common/nodes/NodeUniformsGroup.js +44 -44
  470. package/examples/jsm/renderers/common/nodes/Nodes.js +496 -495
  471. package/examples/jsm/renderers/webgl/WebGLBackend.js +1382 -1290
  472. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +804 -679
  473. package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +258 -252
  474. package/examples/jsm/renderers/webgl/utils/WebGLCapabilities.js +36 -36
  475. package/examples/jsm/renderers/webgl/utils/WebGLConstants.js +11 -11
  476. package/examples/jsm/renderers/webgl/utils/WebGLExtensions.js +36 -36
  477. package/examples/jsm/renderers/webgl/utils/WebGLState.js +738 -738
  478. package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +694 -647
  479. package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +285 -284
  480. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +320 -320
  481. package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +26 -26
  482. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +794 -794
  483. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +51 -51
  484. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +1322 -1321
  485. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +53 -53
  486. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +1078 -1098
  487. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +104 -104
  488. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeParser.js +14 -14
  489. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +293 -287
  490. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +244 -244
  491. package/examples/jsm/renderers/webgpu/utils/WebGPUConstants.js +324 -324
  492. package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +591 -570
  493. package/examples/jsm/renderers/webgpu/utils/WebGPUTexturePassUtils.js +285 -285
  494. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +1040 -1040
  495. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +93 -93
  496. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +89 -89
  497. package/examples/jsm/shaders/AfterimageShader.js +58 -58
  498. package/examples/jsm/shaders/BasicShader.js +29 -29
  499. package/examples/jsm/shaders/BleachBypassShader.js +62 -62
  500. package/examples/jsm/shaders/BlendShader.js +49 -49
  501. package/examples/jsm/shaders/BokehShader.js +145 -145
  502. package/examples/jsm/shaders/BokehShader2.js +397 -397
  503. package/examples/jsm/shaders/BrightnessContrastShader.js +56 -56
  504. package/examples/jsm/shaders/ColorCorrectionShader.js +52 -52
  505. package/examples/jsm/shaders/ColorifyShader.js +51 -51
  506. package/examples/jsm/shaders/ConvolutionShader.js +103 -103
  507. package/examples/jsm/shaders/CopyShader.js +45 -45
  508. package/examples/jsm/shaders/DOFMipMapShader.js +56 -56
  509. package/examples/jsm/shaders/DepthLimitedBlurShader.js +171 -171
  510. package/examples/jsm/shaders/DigitalGlitch.js +101 -101
  511. package/examples/jsm/shaders/DotScreenShader.js +70 -70
  512. package/examples/jsm/shaders/ExposureShader.js +44 -44
  513. package/examples/jsm/shaders/FXAAShader.js +288 -288
  514. package/examples/jsm/shaders/FilmShader.js +59 -59
  515. package/examples/jsm/shaders/FocusShader.js +89 -89
  516. package/examples/jsm/shaders/FreiChenShader.js +96 -96
  517. package/examples/jsm/shaders/GTAOShader.js +424 -424
  518. package/examples/jsm/shaders/GammaCorrectionShader.js +43 -43
  519. package/examples/jsm/shaders/GodRaysShader.js +321 -321
  520. package/examples/jsm/shaders/HalftoneShader.js +312 -312
  521. package/examples/jsm/shaders/HorizontalBlurShader.js +59 -59
  522. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +63 -63
  523. package/examples/jsm/shaders/HueSaturationShader.js +67 -67
  524. package/examples/jsm/shaders/KaleidoShader.js +58 -58
  525. package/examples/jsm/shaders/LuminosityHighPassShader.js +66 -66
  526. package/examples/jsm/shaders/LuminosityShader.js +48 -48
  527. package/examples/jsm/shaders/MMDToonShader.js +134 -134
  528. package/examples/jsm/shaders/MirrorShader.js +56 -56
  529. package/examples/jsm/shaders/NormalMapShader.js +55 -55
  530. package/examples/jsm/shaders/OutputShader.js +85 -81
  531. package/examples/jsm/shaders/PoissonDenoiseShader.js +226 -226
  532. package/examples/jsm/shaders/RGBShiftShader.js +54 -54
  533. package/examples/jsm/shaders/SAOShader.js +179 -179
  534. package/examples/jsm/shaders/SMAAShader.js +466 -466
  535. package/examples/jsm/shaders/SSAOShader.js +300 -300
  536. package/examples/jsm/shaders/SSRShader.js +370 -370
  537. package/examples/jsm/shaders/SepiaShader.js +52 -52
  538. package/examples/jsm/shaders/SobelOperatorShader.js +92 -92
  539. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +90 -90
  540. package/examples/jsm/shaders/TechnicolorShader.js +45 -45
  541. package/examples/jsm/shaders/ToonShader.js +326 -326
  542. package/examples/jsm/shaders/TriangleBlurShader.js +74 -74
  543. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +47 -47
  544. package/examples/jsm/shaders/VelocityShader.js +130 -130
  545. package/examples/jsm/shaders/VerticalBlurShader.js +59 -59
  546. package/examples/jsm/shaders/VerticalTiltShiftShader.js +63 -63
  547. package/examples/jsm/shaders/VignetteShader.js +51 -51
  548. package/examples/jsm/shaders/VolumeShader.js +289 -289
  549. package/examples/jsm/shaders/WaterRefractionShader.js +95 -95
  550. package/examples/jsm/textures/FlakesTexture.js +40 -40
  551. package/examples/jsm/transpiler/AST.js +270 -270
  552. package/examples/jsm/transpiler/GLSLDecoder.js +941 -941
  553. package/examples/jsm/transpiler/ShaderToyDecoder.js +49 -49
  554. package/examples/jsm/transpiler/TSLEncoder.js +715 -715
  555. package/examples/jsm/transpiler/Transpiler.js +18 -18
  556. package/examples/jsm/utils/BufferGeometryUtils.js +1371 -1371
  557. package/examples/jsm/utils/CameraUtils.js +73 -73
  558. package/examples/jsm/utils/GPUStatsPanel.js +128 -128
  559. package/examples/jsm/utils/GeometryCompressionUtils.js +639 -639
  560. package/examples/jsm/utils/GeometryUtils.js +221 -221
  561. package/examples/jsm/utils/LDrawUtils.js +202 -202
  562. package/examples/jsm/utils/PackedPhongMaterial.js +178 -178
  563. package/examples/jsm/utils/SceneUtils.js +254 -254
  564. package/examples/jsm/utils/ShadowMapViewer.js +210 -210
  565. package/examples/jsm/utils/SkeletonUtils.js +424 -413
  566. package/examples/jsm/utils/SortUtils.js +160 -160
  567. package/examples/jsm/utils/TextureUtils.js +98 -98
  568. package/examples/jsm/utils/UVsDebug.js +165 -165
  569. package/examples/jsm/utils/WorkerPool.js +102 -102
  570. package/examples/jsm/webxr/ARButton.js +232 -232
  571. package/examples/jsm/webxr/OculusHandModel.js +109 -109
  572. package/examples/jsm/webxr/OculusHandPointerModel.js +416 -416
  573. package/examples/jsm/webxr/Text2D.js +38 -38
  574. package/examples/jsm/webxr/VRButton.js +233 -225
  575. package/examples/jsm/webxr/XRButton.js +223 -224
  576. package/examples/jsm/webxr/XRControllerModelFactory.js +323 -315
  577. package/examples/jsm/webxr/XREstimatedLight.js +223 -223
  578. package/examples/jsm/webxr/XRHandMeshModel.js +116 -116
  579. package/examples/jsm/webxr/XRHandModelFactory.js +105 -105
  580. package/examples/jsm/webxr/XRHandPrimitiveModel.js +105 -105
  581. package/examples/jsm/webxr/XRPlanes.js +100 -100
  582. package/package.json +4 -4
  583. package/src/Three.Legacy.js +21 -1
  584. package/src/Three.js +183 -184
  585. package/src/animation/AnimationAction.js +700 -700
  586. package/src/animation/AnimationClip.js +473 -473
  587. package/src/animation/AnimationMixer.js +770 -770
  588. package/src/animation/AnimationObjectGroup.js +387 -387
  589. package/src/animation/AnimationUtils.js +356 -356
  590. package/src/animation/KeyframeTrack.js +462 -462
  591. package/src/animation/PropertyBinding.js +719 -719
  592. package/src/animation/PropertyMixer.js +318 -318
  593. package/src/animation/tracks/BooleanKeyframeTrack.js +19 -19
  594. package/src/animation/tracks/ColorKeyframeTrack.js +15 -15
  595. package/src/animation/tracks/NumberKeyframeTrack.js +12 -12
  596. package/src/animation/tracks/QuaternionKeyframeTrack.js +23 -23
  597. package/src/animation/tracks/StringKeyframeTrack.js +15 -15
  598. package/src/animation/tracks/VectorKeyframeTrack.js +12 -12
  599. package/src/audio/Audio.js +400 -400
  600. package/src/audio/AudioAnalyser.js +40 -40
  601. package/src/audio/AudioContext.js +25 -25
  602. package/src/audio/AudioListener.js +140 -140
  603. package/src/audio/PositionalAudio.js +146 -146
  604. package/src/cameras/ArrayCamera.js +17 -17
  605. package/src/cameras/Camera.js +69 -69
  606. package/src/cameras/CubeCamera.js +173 -173
  607. package/src/cameras/OrthographicCamera.js +136 -136
  608. package/src/cameras/PerspectiveCamera.js +268 -268
  609. package/src/cameras/StereoCamera.js +100 -100
  610. package/src/constants.js +217 -216
  611. package/src/core/BufferAttribute.js +639 -650
  612. package/src/core/BufferGeometry.js +1073 -1079
  613. package/src/core/Clock.js +74 -74
  614. package/src/core/EventDispatcher.js +87 -87
  615. package/src/core/GLBufferAttribute.js +60 -60
  616. package/src/core/InstancedBufferAttribute.js +39 -39
  617. package/src/core/InstancedBufferGeometry.js +40 -40
  618. package/src/core/InstancedInterleavedBuffer.js +48 -48
  619. package/src/core/InterleavedBuffer.js +166 -166
  620. package/src/core/InterleavedBufferAttribute.js +351 -351
  621. package/src/core/Layers.js +60 -60
  622. package/src/core/Object3D.js +1019 -1008
  623. package/src/core/Raycaster.js +124 -110
  624. package/src/core/RenderTarget.js +154 -131
  625. package/src/core/Uniform.js +17 -17
  626. package/src/core/UniformsGroup.js +98 -98
  627. package/src/extras/DataUtils.js +176 -176
  628. package/src/extras/Earcut.js +789 -789
  629. package/src/extras/ImageUtils.js +129 -129
  630. package/src/extras/PMREMGenerator.js +912 -910
  631. package/src/extras/ShapeUtils.js +92 -92
  632. package/src/extras/core/Curve.js +416 -416
  633. package/src/extras/core/CurvePath.js +255 -255
  634. package/src/extras/core/Interpolations.js +79 -79
  635. package/src/extras/core/Path.js +196 -196
  636. package/src/extras/core/Shape.js +102 -102
  637. package/src/extras/core/ShapePath.js +291 -291
  638. package/src/extras/curves/ArcCurve.js +17 -17
  639. package/src/extras/curves/CatmullRomCurve3.js +255 -255
  640. package/src/extras/curves/CubicBezierCurve.js +78 -78
  641. package/src/extras/curves/CubicBezierCurve3.js +79 -79
  642. package/src/extras/curves/Curves.js +10 -10
  643. package/src/extras/curves/EllipseCurve.js +156 -156
  644. package/src/extras/curves/LineCurve.js +92 -92
  645. package/src/extras/curves/LineCurve3.js +92 -92
  646. package/src/extras/curves/QuadraticBezierCurve.js +74 -74
  647. package/src/extras/curves/QuadraticBezierCurve3.js +75 -75
  648. package/src/extras/curves/SplineCurve.js +97 -97
  649. package/src/geometries/BoxGeometry.js +180 -180
  650. package/src/geometries/CapsuleGeometry.js +33 -33
  651. package/src/geometries/CircleGeometry.js +101 -101
  652. package/src/geometries/ConeGeometry.js +31 -31
  653. package/src/geometries/CylinderGeometry.js +286 -286
  654. package/src/geometries/DodecahedronGeometry.js +66 -66
  655. package/src/geometries/EdgesGeometry.js +152 -152
  656. package/src/geometries/ExtrudeGeometry.js +814 -814
  657. package/src/geometries/Geometries.js +21 -21
  658. package/src/geometries/IcosahedronGeometry.js +42 -42
  659. package/src/geometries/LatheGeometry.js +189 -189
  660. package/src/geometries/OctahedronGeometry.js +37 -37
  661. package/src/geometries/PlaneGeometry.js +98 -98
  662. package/src/geometries/PolyhedronGeometry.js +319 -319
  663. package/src/geometries/RingGeometry.js +128 -128
  664. package/src/geometries/ShapeGeometry.js +195 -195
  665. package/src/geometries/SphereGeometry.js +137 -137
  666. package/src/geometries/TetrahedronGeometry.js +34 -34
  667. package/src/geometries/TorusGeometry.js +120 -120
  668. package/src/geometries/TorusKnotGeometry.js +167 -167
  669. package/src/geometries/TubeGeometry.js +203 -203
  670. package/src/geometries/WireframeGeometry.js +147 -147
  671. package/src/helpers/ArrowHelper.js +114 -114
  672. package/src/helpers/AxesHelper.js +68 -68
  673. package/src/helpers/Box3Helper.js +55 -55
  674. package/src/helpers/BoxHelper.js +113 -113
  675. package/src/helpers/CameraHelper.js +269 -269
  676. package/src/helpers/DirectionalLightHelper.js +93 -93
  677. package/src/helpers/GridHelper.js +56 -56
  678. package/src/helpers/HemisphereLightHelper.js +88 -88
  679. package/src/helpers/PlaneHelper.js +63 -63
  680. package/src/helpers/PointLightHelper.js +92 -92
  681. package/src/helpers/PolarGridHelper.js +96 -96
  682. package/src/helpers/SkeletonHelper.js +128 -128
  683. package/src/helpers/SpotLightHelper.js +111 -94
  684. package/src/lights/AmbientLight.js +17 -17
  685. package/src/lights/DirectionalLight.js +43 -43
  686. package/src/lights/DirectionalLightShadow.js +16 -16
  687. package/src/lights/HemisphereLight.js +34 -34
  688. package/src/lights/Light.js +58 -58
  689. package/src/lights/LightProbe.js +47 -47
  690. package/src/lights/LightShadow.js +147 -147
  691. package/src/lights/PointLight.js +57 -57
  692. package/src/lights/PointLightShadow.js +96 -96
  693. package/src/lights/RectAreaLight.js +56 -56
  694. package/src/lights/SpotLight.js +71 -71
  695. package/src/lights/SpotLightShadow.js +50 -50
  696. package/src/loaders/AnimationLoader.js +66 -66
  697. package/src/loaders/AudioLoader.js +66 -66
  698. package/src/loaders/BufferGeometryLoader.js +217 -217
  699. package/src/loaders/Cache.js +42 -42
  700. package/src/loaders/CompressedTextureLoader.js +134 -134
  701. package/src/loaders/CubeTextureLoader.js +58 -58
  702. package/src/loaders/DataTextureLoader.js +131 -135
  703. package/src/loaders/FileLoader.js +284 -284
  704. package/src/loaders/ImageBitmapLoader.js +123 -123
  705. package/src/loaders/ImageLoader.js +91 -91
  706. package/src/loaders/Loader.js +72 -72
  707. package/src/loaders/LoaderUtils.js +75 -75
  708. package/src/loaders/LoadingManager.js +142 -142
  709. package/src/loaders/MaterialLoader.js +373 -372
  710. package/src/loaders/ObjectLoader.js +1149 -1148
  711. package/src/loaders/TextureLoader.js +41 -41
  712. package/src/materials/LineBasicMaterial.js +49 -53
  713. package/src/materials/LineDashedMaterial.js +35 -35
  714. package/src/materials/Material.js +523 -522
  715. package/src/materials/Materials.js +39 -39
  716. package/src/materials/MeshBasicMaterial.js +84 -85
  717. package/src/materials/MeshDepthMaterial.js +54 -54
  718. package/src/materials/MeshDistanceMaterial.js +43 -43
  719. package/src/materials/MeshLambertMaterial.js +119 -120
  720. package/src/materials/MeshMatcapMaterial.js +81 -85
  721. package/src/materials/MeshNormalMaterial.js +61 -61
  722. package/src/materials/MeshPhongMaterial.js +123 -124
  723. package/src/materials/MeshPhysicalMaterial.js +224 -224
  724. package/src/materials/MeshStandardMaterial.js +127 -128
  725. package/src/materials/MeshToonMaterial.js +102 -106
  726. package/src/materials/PointsMaterial.js +50 -54
  727. package/src/materials/RawShaderMaterial.js +17 -17
  728. package/src/materials/ShaderMaterial.js +189 -190
  729. package/src/materials/ShadowMaterial.js +37 -37
  730. package/src/materials/SpriteMaterial.js +54 -54
  731. package/src/math/Box2.js +204 -204
  732. package/src/math/Box3.js +534 -534
  733. package/src/math/Color.js +623 -623
  734. package/src/math/ColorManagement.js +139 -139
  735. package/src/math/Cylindrical.js +61 -61
  736. package/src/math/Euler.js +315 -315
  737. package/src/math/Frustum.js +186 -186
  738. package/src/math/Interpolant.js +241 -241
  739. package/src/math/Line3.js +115 -115
  740. package/src/math/MathUtils.js +363 -363
  741. package/src/math/Matrix3.js +388 -388
  742. package/src/math/Matrix4.js +915 -915
  743. package/src/math/Plane.js +205 -205
  744. package/src/math/Quaternion.js +686 -685
  745. package/src/math/Ray.js +493 -493
  746. package/src/math/Sphere.js +245 -245
  747. package/src/math/Spherical.js +86 -86
  748. package/src/math/SphericalHarmonics3.js +243 -243
  749. package/src/math/Triangle.js +311 -311
  750. package/src/math/Vector2.js +480 -480
  751. package/src/math/Vector3.js +724 -724
  752. package/src/math/Vector4.js +644 -644
  753. package/src/math/interpolants/CubicInterpolant.js +150 -150
  754. package/src/math/interpolants/DiscreteInterpolant.js +26 -26
  755. package/src/math/interpolants/LinearInterpolant.js +38 -38
  756. package/src/math/interpolants/QuaternionLinearInterpolant.js +39 -39
  757. package/src/objects/BatchedMesh.js +1019 -1019
  758. package/src/objects/Bone.js +17 -17
  759. package/src/objects/Group.js +17 -17
  760. package/src/objects/InstancedMesh.js +267 -214
  761. package/src/objects/LOD.js +214 -214
  762. package/src/objects/Line.js +222 -222
  763. package/src/objects/LineLoop.js +17 -17
  764. package/src/objects/LineSegments.js +55 -55
  765. package/src/objects/Mesh.js +428 -429
  766. package/src/objects/Points.js +166 -166
  767. package/src/objects/Skeleton.js +277 -277
  768. package/src/objects/SkinnedMesh.js +257 -257
  769. package/src/objects/Sprite.js +181 -181
  770. package/src/renderers/WebGL1Renderer.js +7 -7
  771. package/src/renderers/WebGL3DRenderTarget.js +22 -22
  772. package/src/renderers/WebGLArrayRenderTarget.js +22 -22
  773. package/src/renderers/WebGLCubeRenderTarget.js +146 -155
  774. package/src/renderers/WebGLRenderTarget.js +15 -15
  775. package/src/renderers/WebGLRenderer.js +2615 -2631
  776. package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -7
  777. package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -68
  778. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +7 -7
  779. package/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js +7 -7
  780. package/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js +16 -16
  781. package/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js +5 -5
  782. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +26 -26
  783. package/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js +8 -8
  784. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +19 -19
  785. package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +5 -5
  786. package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +9 -9
  787. package/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js +9 -9
  788. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +33 -33
  789. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +43 -43
  790. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js +7 -7
  791. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +10 -10
  792. package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +21 -21
  793. package/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js +78 -78
  794. package/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js +9 -9
  795. package/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js +7 -7
  796. package/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js +7 -7
  797. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +11 -11
  798. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +11 -11
  799. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +11 -11
  800. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +23 -23
  801. package/src/renderers/shaders/ShaderChunk/colorspace_fragment.glsl.js +3 -3
  802. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +44 -44
  803. package/src/renderers/shaders/ShaderChunk/common.glsl.js +147 -147
  804. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +186 -186
  805. package/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js +5 -5
  806. package/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js +5 -5
  807. package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +63 -63
  808. package/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js +9 -9
  809. package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +7 -7
  810. package/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js +7 -7
  811. package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +20 -20
  812. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +9 -9
  813. package/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js +7 -7
  814. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +15 -14
  815. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +62 -62
  816. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +21 -21
  817. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +22 -22
  818. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +69 -69
  819. package/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +37 -37
  820. package/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js +17 -17
  821. package/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js +19 -19
  822. package/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js +7 -7
  823. package/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js +7 -7
  824. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +27 -27
  825. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +120 -120
  826. package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -14
  827. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +10 -10
  828. package/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js +8 -8
  829. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +202 -202
  830. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +13 -13
  831. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +40 -40
  832. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -5
  833. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -28
  834. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +228 -228
  835. package/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js +7 -7
  836. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +32 -32
  837. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +151 -151
  838. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +562 -562
  839. package/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js +4 -4
  840. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +26 -26
  841. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +9 -9
  842. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +9 -9
  843. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +16 -16
  844. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +22 -22
  845. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +21 -21
  846. package/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js +11 -11
  847. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +27 -27
  848. package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +27 -27
  849. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +12 -12
  850. package/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js +7 -7
  851. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -24
  852. package/src/renderers/shaders/ShaderChunk/morphinstance_vertex.glsl.js +14 -0
  853. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +27 -27
  854. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +47 -38
  855. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +36 -36
  856. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +76 -76
  857. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +33 -33
  858. package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +14 -14
  859. package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +14 -14
  860. package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +14 -14
  861. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +43 -43
  862. package/src/renderers/shaders/ShaderChunk/opaque_fragment.glsl.js +11 -11
  863. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +68 -68
  864. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +8 -8
  865. package/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js +19 -19
  866. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -12
  867. package/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js +7 -7
  868. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +314 -314
  869. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +68 -68
  870. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +68 -68
  871. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +66 -66
  872. package/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js +10 -10
  873. package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +25 -25
  874. package/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js +15 -15
  875. package/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js +20 -20
  876. package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +14 -14
  877. package/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js +7 -7
  878. package/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js +7 -7
  879. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +192 -169
  880. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +36 -36
  881. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +201 -201
  882. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +119 -119
  883. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +145 -145
  884. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +122 -122
  885. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +21 -21
  886. package/src/renderers/shaders/ShaderChunk.js +272 -274
  887. package/src/renderers/shaders/ShaderLib/background.glsl.js +40 -40
  888. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +63 -62
  889. package/src/renderers/shaders/ShaderLib/cube.glsl.js +36 -36
  890. package/src/renderers/shaders/ShaderLib/depth.glsl.js +97 -95
  891. package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +78 -76
  892. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +35 -35
  893. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +76 -77
  894. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +116 -117
  895. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +125 -126
  896. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +112 -113
  897. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +87 -89
  898. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +127 -128
  899. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +225 -226
  900. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +119 -120
  901. package/src/renderers/shaders/ShaderLib/points.glsl.js +87 -88
  902. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +58 -57
  903. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +81 -81
  904. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +53 -53
  905. package/src/renderers/shaders/ShaderLib.js +360 -367
  906. package/src/renderers/shaders/UniformsLib.js +231 -236
  907. package/src/renderers/shaders/UniformsUtils.js +104 -104
  908. package/src/renderers/webgl/WebGLAnimation.js +53 -53
  909. package/src/renderers/webgl/WebGLAttributes.js +229 -229
  910. package/src/renderers/webgl/WebGLBackground.js +257 -239
  911. package/src/renderers/webgl/WebGLBindingStates.js +631 -631
  912. package/src/renderers/webgl/WebGLBufferRenderer.js +92 -92
  913. package/src/renderers/webgl/WebGLCapabilities.js +120 -120
  914. package/src/renderers/webgl/WebGLClipping.js +171 -171
  915. package/src/renderers/webgl/WebGLCubeMaps.js +99 -99
  916. package/src/renderers/webgl/WebGLCubeUVMaps.js +132 -132
  917. package/src/renderers/webgl/WebGLExtensions.js +97 -97
  918. package/src/renderers/webgl/WebGLGeometries.js +211 -211
  919. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +102 -102
  920. package/src/renderers/webgl/WebGLInfo.js +71 -71
  921. package/src/renderers/webgl/WebGLLights.js +590 -590
  922. package/src/renderers/webgl/WebGLMaterials.js +590 -576
  923. package/src/renderers/webgl/WebGLMorphtargets.js +307 -300
  924. package/src/renderers/webgl/WebGLObjects.js +92 -92
  925. package/src/renderers/webgl/WebGLProgram.js +1120 -1112
  926. package/src/renderers/webgl/WebGLPrograms.js +664 -663
  927. package/src/renderers/webgl/WebGLProperties.js +48 -48
  928. package/src/renderers/webgl/WebGLRenderLists.js +238 -238
  929. package/src/renderers/webgl/WebGLRenderStates.js +107 -107
  930. package/src/renderers/webgl/WebGLShader.js +12 -12
  931. package/src/renderers/webgl/WebGLShaderCache.js +124 -124
  932. package/src/renderers/webgl/WebGLShadowMap.js +424 -424
  933. package/src/renderers/webgl/WebGLState.js +1318 -1328
  934. package/src/renderers/webgl/WebGLTextures.js +2213 -2117
  935. package/src/renderers/webgl/WebGLUniforms.js +1156 -1156
  936. package/src/renderers/webgl/WebGLUniformsGroups.js +392 -392
  937. package/src/renderers/webgl/WebGLUtils.js +283 -283
  938. package/src/renderers/webxr/WebXRController.js +343 -343
  939. package/src/renderers/webxr/WebXRDepthSensing.js +105 -0
  940. package/src/renderers/webxr/WebXRManager.js +824 -840
  941. package/src/scenes/Fog.js +38 -38
  942. package/src/scenes/FogExp2.js +35 -35
  943. package/src/scenes/Scene.js +71 -63
  944. package/src/textures/CanvasTexture.js +17 -17
  945. package/src/textures/CompressedArrayTexture.js +18 -18
  946. package/src/textures/CompressedCubeTexture.js +19 -19
  947. package/src/textures/CompressedTexture.js +28 -28
  948. package/src/textures/CubeTexture.js +33 -33
  949. package/src/textures/Data3DTexture.js +35 -35
  950. package/src/textures/DataArrayTexture.js +27 -27
  951. package/src/textures/DataTexture.js +22 -22
  952. package/src/textures/DepthTexture.js +58 -58
  953. package/src/textures/FramebufferTexture.js +23 -23
  954. package/src/textures/Source.js +128 -127
  955. package/src/textures/Texture.js +310 -338
  956. package/src/textures/VideoTexture.js +55 -55
  957. package/src/utils.js +91 -91
  958. package/examples/jsm/nodes/core/ArrayUniformNode.js +0 -26
  959. package/src/renderers/WebGLMultipleRenderTargets.js +0 -82
  960. package/src/renderers/shaders/ShaderChunk/occlusion_fragment.glsl.js +0 -20
  961. package/src/renderers/shaders/ShaderChunk/occlusion_pars_fragment.glsl.js +0 -97
@@ -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 };