three-stdlib 2.15.2 → 2.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1218) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +275 -207
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.js +152 -82
  25. package/controls/OrbitControls.cjs.js +1 -0
  26. package/controls/OrbitControls.js +481 -232
  27. package/controls/PointerLockControls.cjs.js +1 -0
  28. package/controls/PointerLockControls.js +99 -63
  29. package/controls/TrackballControls.cjs.js +1 -0
  30. package/controls/TrackballControls.js +383 -211
  31. package/controls/TransformControls.cjs.js +1 -0
  32. package/controls/TransformControls.js +782 -575
  33. package/controls/experimental/CameraControls.cjs.js +1 -0
  34. package/controls/experimental/CameraControls.js +609 -329
  35. package/csm/CSM.cjs.js +1 -0
  36. package/csm/CSM.js +108 -47
  37. package/csm/CSMFrustum.cjs.js +1 -0
  38. package/csm/CSMFrustum.js +29 -14
  39. package/csm/CSMHelper.cjs.js +1 -0
  40. package/csm/CSMHelper.js +34 -20
  41. package/csm/CSMShader.cjs.js +1 -0
  42. package/csm/CSMShader.js +11 -7
  43. package/curves/CurveExtras.cjs.js +1 -0
  44. package/curves/CurveExtras.js +115 -73
  45. package/curves/NURBSCurve.cjs.js +1 -0
  46. package/curves/NURBSCurve.js +43 -15
  47. package/curves/NURBSSurface.cjs.js +1 -0
  48. package/curves/NURBSSurface.js +27 -11
  49. package/curves/NURBSUtils.cjs.js +1 -0
  50. package/curves/NURBSUtils.js +203 -54
  51. package/custom.d.cjs.js +1 -0
  52. package/{shaders/types.mjs → custom.d.js} +0 -0
  53. package/deprecated/Geometry.cjs.js +1 -0
  54. package/deprecated/Geometry.js +486 -191
  55. package/effects/AnaglyphEffect.cjs.js +1 -0
  56. package/effects/AnaglyphEffect.js +60 -95
  57. package/effects/AsciiEffect.cjs.js +1 -0
  58. package/effects/AsciiEffect.js +110 -80
  59. package/effects/OutlineEffect.cjs.js +1 -0
  60. package/effects/OutlineEffect.js +204 -121
  61. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  62. package/effects/ParallaxBarrierEffect.js +38 -39
  63. package/effects/PeppersGhostEffect.cjs.js +1 -0
  64. package/effects/PeppersGhostEffect.js +68 -19
  65. package/effects/StereoEffect.cjs.js +1 -0
  66. package/effects/StereoEffect.js +16 -12
  67. package/environments/RoomEnvironment.cjs.js +1 -0
  68. package/environments/RoomEnvironment.js +47 -52
  69. package/exporters/ColladaExporter.cjs.js +1 -0
  70. package/exporters/ColladaExporter.js +241 -115
  71. package/exporters/DRACOExporter.cjs.js +1 -0
  72. package/exporters/DRACOExporter.js +121 -67
  73. package/exporters/GLTFExporter.cjs.js +1 -0
  74. package/exporters/GLTFExporter.js +1014 -463
  75. package/exporters/MMDExporter.cjs.js +1 -0
  76. package/exporters/MMDExporter.js +102 -44
  77. package/exporters/OBJExporter.cjs.js +1 -0
  78. package/exporters/OBJExporter.js +140 -78
  79. package/exporters/PLYExporter.cjs.js +1 -0
  80. package/exporters/PLYExporter.js +154 -93
  81. package/exporters/STLExporter.cjs.js +1 -0
  82. package/exporters/STLExporter.js +81 -30
  83. package/exporters/USDZExporter.cjs.js +1 -0
  84. package/exporters/USDZExporter.js +144 -84
  85. package/geometries/BoxLineGeometry.cjs.js +1 -0
  86. package/geometries/BoxLineGeometry.js +14 -7
  87. package/geometries/ConvexGeometry.cjs.js +1 -0
  88. package/geometries/ConvexGeometry.js +23 -14
  89. package/geometries/DecalGeometry.cjs.js +1 -0
  90. package/geometries/DecalGeometry.js +162 -108
  91. package/geometries/LightningStrike.cjs.js +1 -0
  92. package/geometries/LightningStrike.js +294 -101
  93. package/geometries/ParametricGeometries.cjs.js +1 -0
  94. package/geometries/ParametricGeometries.js +76 -26
  95. package/geometries/ParametricGeometry.cjs.js +1 -0
  96. package/geometries/ParametricGeometry.js +48 -24
  97. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  98. package/geometries/RoundedBoxGeometry.js +64 -33
  99. package/geometries/TeapotGeometry.cjs.js +1 -0
  100. package/geometries/TeapotGeometry.js +174 -1434
  101. package/geometries/TextGeometry.cjs.js +1 -0
  102. package/geometries/TextGeometry.js +17 -9
  103. package/helpers/LightProbeHelper.cjs.js +1 -0
  104. package/helpers/LightProbeHelper.js +21 -53
  105. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  106. package/helpers/PositionalAudioHelper.js +30 -23
  107. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  108. package/helpers/RectAreaLightHelper.js +33 -17
  109. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  110. package/helpers/VertexNormalsHelper.js +41 -20
  111. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  112. package/helpers/VertexTangentsHelper.js +36 -18
  113. package/index.cjs.js +1 -0
  114. package/index.js +333 -968
  115. package/interactive/InteractiveGroup.cjs.js +1 -0
  116. package/interactive/InteractiveGroup.d.ts +5 -0
  117. package/interactive/InteractiveGroup.js +87 -0
  118. package/interactive/SelectionBox.cjs.js +1 -0
  119. package/interactive/SelectionBox.js +46 -31
  120. package/interactive/SelectionHelper.cjs.js +1 -0
  121. package/interactive/SelectionHelper.js +21 -16
  122. package/libs/MeshoptDecoder.cjs.js +1 -0
  123. package/libs/MeshoptDecoder.js +58 -147
  124. package/libs/MotionControllers.cjs.js +1 -0
  125. package/libs/MotionControllers.js +208 -66
  126. package/lights/LightProbeGenerator.cjs.js +1 -0
  127. package/lights/LightProbeGenerator.js +96 -40
  128. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  129. package/lights/RectAreaLightUniformsLib.js +9 -32842
  130. package/lines/Line2.cjs.js +1 -0
  131. package/lines/Line2.js +12 -9
  132. package/lines/LineGeometry.cjs.js +1 -0
  133. package/lines/LineGeometry.js +19 -7
  134. package/lines/LineMaterial.cjs.js +1 -0
  135. package/lines/LineMaterial.js +89 -51
  136. package/lines/LineSegments2.cjs.js +1 -0
  137. package/lines/LineSegments2.js +165 -56
  138. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  139. package/lines/LineSegmentsGeometry.js +71 -29
  140. package/lines/Wireframe.cjs.js +1 -0
  141. package/lines/Wireframe.js +29 -15
  142. package/lines/WireframeGeometry2.cjs.js +1 -0
  143. package/lines/WireframeGeometry2.js +9 -8
  144. package/loaders/3DMLoader.cjs.js +1 -0
  145. package/loaders/3DMLoader.js +469 -234
  146. package/loaders/3MFLoader.cjs.js +1 -0
  147. package/loaders/3MFLoader.js +555 -340
  148. package/loaders/AMFLoader.cjs.js +1 -0
  149. package/loaders/AMFLoader.js +219 -114
  150. package/loaders/AssimpLoader.cjs.js +1 -0
  151. package/loaders/AssimpLoader.js +725 -328
  152. package/loaders/BVHLoader.cjs.js +1 -0
  153. package/loaders/BVHLoader.js +200 -94
  154. package/loaders/BasisTextureLoader.cjs.js +1 -0
  155. package/loaders/BasisTextureLoader.js +357 -229
  156. package/loaders/ColladaLoader.cjs.js +1 -0
  157. package/loaders/ColladaLoader.js +1522 -932
  158. package/loaders/DDSLoader.cjs.js +1 -0
  159. package/loaders/DDSLoader.js +108 -42
  160. package/loaders/DRACOLoader.cjs.js +1 -0
  161. package/loaders/DRACOLoader.js +210 -103
  162. package/loaders/EXRLoader.cjs.js +1 -0
  163. package/loaders/EXRLoader.js +809 -461
  164. package/loaders/FBXLoader.cjs.js +1 -0
  165. package/loaders/FBXLoader.js +1397 -842
  166. package/loaders/FontLoader.cjs.js +1 -0
  167. package/loaders/FontLoader.js +66 -33
  168. package/loaders/GCodeLoader.cjs.js +1 -0
  169. package/loaders/GCodeLoader.js +111 -63
  170. package/loaders/GLTFLoader.cjs.js +1 -0
  171. package/loaders/GLTFLoader.js +1484 -771
  172. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  173. package/loaders/HDRCubeTextureLoader.js +50 -45
  174. package/loaders/KMZLoader.cjs.js +1 -0
  175. package/loaders/KMZLoader.js +55 -42
  176. package/loaders/KTX2Loader.cjs.js +1 -0
  177. package/loaders/KTX2Loader.js +362 -229
  178. package/loaders/KTXLoader.cjs.js +1 -0
  179. package/loaders/KTXLoader.js +99 -37
  180. package/loaders/LDrawLoader.cjs.js +1 -0
  181. package/loaders/LDrawLoader.js +746 -313
  182. package/loaders/LUT3dlLoader.cjs.js +1 -0
  183. package/loaders/LUT3dlLoader.js +62 -50
  184. package/loaders/LUTCubeLoader.cjs.js +1 -0
  185. package/loaders/LUTCubeLoader.js +56 -45
  186. package/loaders/LWOLoader.cjs.js +1 -0
  187. package/loaders/LWOLoader.js +339 -227
  188. package/loaders/LottieLoader.cjs.js +1 -0
  189. package/loaders/LottieLoader.js +38 -36
  190. package/loaders/MD2Loader.cjs.js +1 -0
  191. package/loaders/MD2Loader.js +91 -248
  192. package/loaders/MDDLoader.cjs.js +1 -0
  193. package/loaders/MDDLoader.js +45 -25
  194. package/loaders/MMDLoader.cjs.js +1 -0
  195. package/loaders/MMDLoader.js +795 -359
  196. package/loaders/MTLLoader.cjs.js +1 -0
  197. package/loaders/MTLLoader.js +201 -91
  198. package/loaders/NRRDLoader.cjs.js +1 -0
  199. package/loaders/NRRDLoader.js +263 -182
  200. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  201. package/loaders/NodeMaterialLoader.js +14 -121
  202. package/loaders/OBJLoader.cjs.js +1 -0
  203. package/loaders/OBJLoader.js +283 -161
  204. package/loaders/PCDLoader.cjs.js +1 -0
  205. package/loaders/PCDLoader.js +164 -145
  206. package/loaders/PDBLoader.cjs.js +1 -0
  207. package/loaders/PDBLoader.js +63 -45
  208. package/loaders/PLYLoader.cjs.js +1 -0
  209. package/loaders/PLYLoader.js +203 -106
  210. package/loaders/PRWMLoader.cjs.js +1 -0
  211. package/loaders/PRWMLoader.js +110 -73
  212. package/loaders/PVRLoader.cjs.js +1 -0
  213. package/loaders/PVRLoader.js +93 -32
  214. package/loaders/RGBELoader.cjs.js +1 -0
  215. package/loaders/RGBELoader.js +233 -96
  216. package/loaders/RGBMLoader.cjs.js +1 -0
  217. package/loaders/RGBMLoader.js +514 -344
  218. package/loaders/STLLoader.cjs.js +1 -0
  219. package/loaders/STLLoader.js +165 -59
  220. package/loaders/SVGLoader.cjs.js +1 -0
  221. package/loaders/SVGLoader.js +851 -481
  222. package/loaders/TDSLoader.cjs.js +1 -0
  223. package/loaders/TDSLoader.js +527 -137
  224. package/loaders/TGALoader.cjs.js +1 -0
  225. package/loaders/TGALoader.js +205 -94
  226. package/loaders/TTFLoader.cjs.js +1 -0
  227. package/loaders/TTFLoader.js +79 -58
  228. package/loaders/TiltLoader.cjs.js +1 -0
  229. package/loaders/TiltLoader.js +167 -129
  230. package/loaders/VOXLoader.cjs.js +1 -0
  231. package/loaders/VOXLoader.js +84 -320
  232. package/loaders/VRMLLoader.cjs.js +1 -0
  233. package/loaders/VRMLLoader.js +1268 -786
  234. package/loaders/VRMLoader.cjs.js +1 -0
  235. package/loaders/VRMLoader.js +31 -23
  236. package/loaders/VTKLoader.cjs.js +1 -0
  237. package/loaders/VTKLoader.js +407 -219
  238. package/loaders/XLoader.cjs.js +1 -0
  239. package/loaders/XLoader.js +1259 -1083
  240. package/loaders/XYZLoader.cjs.js +1 -0
  241. package/loaders/XYZLoader.js +34 -28
  242. package/loaders/lwo/IFFParser.cjs.js +1 -0
  243. package/loaders/lwo/IFFParser.js +492 -238
  244. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  245. package/loaders/lwo/LWO2Parser.js +279 -176
  246. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  247. package/loaders/lwo/LWO3Parser.js +247 -160
  248. package/math/Capsule.cjs.js +1 -0
  249. package/math/Capsule.js +43 -56
  250. package/math/ColorConverter.cjs.js +1 -0
  251. package/math/ColorConverter.js +32 -18
  252. package/math/ConvexHull.cjs.js +1 -0
  253. package/math/ConvexHull.js +357 -97
  254. package/math/ImprovedNoise.cjs.js +1 -0
  255. package/math/ImprovedNoise.js +32 -282
  256. package/math/Lut.cjs.js +1 -0
  257. package/math/Lut.js +35 -51
  258. package/math/MeshSurfaceSampler.cjs.js +1 -0
  259. package/math/MeshSurfaceSampler.js +68 -25
  260. package/math/OBB.cjs.js +1 -0
  261. package/math/OBB.js +152 -91
  262. package/math/Octree.cjs.js +1 -0
  263. package/math/Octree.js +139 -76
  264. package/math/SimplexNoise.cjs.js +1 -0
  265. package/math/SimplexNoise.js +238 -217
  266. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  267. package/misc/ConvexObjectBreaker.js +185 -79
  268. package/misc/GPUComputationRenderer.cjs.js +1 -0
  269. package/misc/GPUComputationRenderer.js +194 -69
  270. package/misc/Gyroscope.cjs.js +1 -0
  271. package/misc/Gyroscope.js +22 -16
  272. package/misc/MD2Character.cjs.js +1 -0
  273. package/misc/MD2Character.js +74 -52
  274. package/misc/MD2CharacterComplex.cjs.js +1 -0
  275. package/misc/MD2CharacterComplex.js +163 -112
  276. package/misc/MorphAnimMesh.cjs.js +1 -0
  277. package/misc/MorphAnimMesh.js +28 -20
  278. package/misc/MorphBlendMesh.cjs.js +1 -0
  279. package/misc/MorphBlendMesh.js +69 -45
  280. package/misc/ProgressiveLightmap.cjs.js +1 -0
  281. package/misc/ProgressiveLightmap.js +187 -70
  282. package/misc/RollerCoaster.cjs.js +1 -0
  283. package/misc/RollerCoaster.js +135 -106
  284. package/misc/TubePainter.cjs.js +1 -0
  285. package/misc/TubePainter.js +92 -74
  286. package/misc/Volume.cjs.js +1 -0
  287. package/misc/Volume.js +270 -108
  288. package/misc/VolumeSlice.cjs.js +1 -0
  289. package/misc/VolumeSlice.js +122 -34
  290. package/misc/WebGL.cjs.js +1 -0
  291. package/misc/WebGL.js +34 -37
  292. package/modifiers/CurveModifier.cjs.js +1 -0
  293. package/modifiers/CurveModifier.js +151 -46
  294. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  295. package/modifiers/EdgeSplitModifier.js +90 -46
  296. package/modifiers/SimplifyModifier.cjs.js +1 -0
  297. package/modifiers/SimplifyModifier.js +202 -77
  298. package/modifiers/TessellateModifier.cjs.js +1 -0
  299. package/modifiers/TessellateModifier.js +90 -65
  300. package/nodes/Nodes.cjs.js +1 -0
  301. package/nodes/Nodes.js +140 -274
  302. package/nodes/ShaderNode.cjs.js +1 -0
  303. package/nodes/ShaderNode.js +196 -296
  304. package/nodes/accessors/BufferNode.cjs.js +1 -0
  305. package/nodes/accessors/BufferNode.js +8 -4
  306. package/nodes/accessors/CameraNode.cjs.js +1 -0
  307. package/nodes/accessors/CameraNode.js +25 -20
  308. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  309. package/nodes/accessors/CubeTextureNode.js +26 -14
  310. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  311. package/nodes/accessors/MaterialNode.js +53 -43
  312. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  313. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  314. package/nodes/accessors/ModelNode.cjs.js +1 -0
  315. package/nodes/accessors/ModelNode.js +5 -3
  316. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  317. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  318. package/nodes/accessors/NormalNode.cjs.js +1 -0
  319. package/nodes/accessors/NormalNode.js +39 -40
  320. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  321. package/nodes/accessors/Object3DNode.js +50 -40
  322. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  323. package/nodes/accessors/PointUVNode.js +9 -5
  324. package/nodes/accessors/PositionNode.cjs.js +1 -0
  325. package/nodes/accessors/PositionNode.js +41 -42
  326. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  327. package/nodes/accessors/ReferenceNode.js +17 -10
  328. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  329. package/nodes/accessors/ReflectNode.js +26 -23
  330. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  331. package/nodes/accessors/SkinningNode.js +48 -46
  332. package/nodes/accessors/TextureNode.cjs.js +1 -0
  333. package/nodes/accessors/TextureNode.js +29 -14
  334. package/nodes/accessors/UVNode.cjs.js +1 -0
  335. package/nodes/accessors/UVNode.js +11 -5
  336. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  337. package/nodes/core/ArrayUniformNode.js +7 -3
  338. package/nodes/core/AttributeNode.cjs.js +1 -0
  339. package/nodes/core/AttributeNode.js +12 -5
  340. package/nodes/core/BypassNode.cjs.js +1 -0
  341. package/nodes/core/BypassNode.js +12 -5
  342. package/nodes/core/CodeNode.cjs.js +1 -0
  343. package/nodes/core/CodeNode.js +12 -4
  344. package/nodes/core/ConstNode.cjs.js +1 -0
  345. package/nodes/core/ConstNode.js +7 -3
  346. package/nodes/core/ContextNode.cjs.js +1 -0
  347. package/nodes/core/ContextNode.js +8 -3
  348. package/nodes/core/ExpressionNode.cjs.js +1 -0
  349. package/nodes/core/ExpressionNode.js +9 -5
  350. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  351. package/nodes/core/FunctionCallNode.js +15 -6
  352. package/nodes/core/FunctionNode.cjs.js +1 -0
  353. package/nodes/core/FunctionNode.js +25 -10
  354. package/nodes/core/InputNode.cjs.js +1 -0
  355. package/nodes/core/InputNode.js +23 -12
  356. package/nodes/core/Node.cjs.js +1 -0
  357. package/nodes/core/Node.js +75 -35
  358. package/nodes/core/NodeAttribute.cjs.js +1 -0
  359. package/nodes/core/NodeAttribute.js +4 -2
  360. package/nodes/core/NodeBuilder.cjs.js +1 -0
  361. package/nodes/core/NodeBuilder.js +224 -110
  362. package/nodes/core/NodeCode.cjs.js +1 -0
  363. package/nodes/core/NodeCode.js +7 -4
  364. package/nodes/core/NodeFrame.cjs.js +1 -0
  365. package/nodes/core/NodeFrame.js +12 -9
  366. package/nodes/core/NodeFunction.cjs.js +1 -0
  367. package/nodes/core/NodeFunction.js +17 -0
  368. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  369. package/nodes/core/NodeFunctionInput.js +5 -3
  370. package/nodes/core/NodeKeywords.cjs.js +1 -0
  371. package/nodes/core/NodeKeywords.js +16 -5
  372. package/nodes/core/NodeParser.cjs.js +1 -0
  373. package/nodes/core/NodeParser.js +8 -0
  374. package/nodes/core/NodeUniform.cjs.js +1 -0
  375. package/nodes/core/NodeUniform.js +7 -3
  376. package/nodes/core/NodeUtils.cjs.js +1 -0
  377. package/nodes/core/NodeUtils.js +43 -39
  378. package/nodes/core/NodeVar.cjs.js +1 -0
  379. package/nodes/core/NodeVar.js +4 -2
  380. package/nodes/core/NodeVary.cjs.js +1 -0
  381. package/nodes/core/NodeVary.js +4 -2
  382. package/nodes/core/PropertyNode.cjs.js +1 -0
  383. package/nodes/core/PropertyNode.js +10 -4
  384. package/nodes/core/TempNode.cjs.js +1 -0
  385. package/nodes/core/TempNode.js +11 -5
  386. package/nodes/core/UniformNode.cjs.js +1 -0
  387. package/nodes/core/UniformNode.js +10 -4
  388. package/nodes/core/VarNode.cjs.js +1 -0
  389. package/nodes/core/VarNode.js +11 -3
  390. package/nodes/core/VaryNode.cjs.js +1 -0
  391. package/nodes/core/VaryNode.js +15 -6
  392. package/nodes/core/constants.cjs.js +1 -0
  393. package/nodes/core/constants.js +7 -20
  394. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  395. package/nodes/display/ColorSpaceNode.js +38 -34
  396. package/nodes/display/NormalMapNode.cjs.js +1 -0
  397. package/nodes/display/NormalMapNode.js +53 -35
  398. package/nodes/fog/FogNode.cjs.js +1 -0
  399. package/nodes/fog/FogNode.js +9 -5
  400. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  401. package/nodes/fog/FogRangeNode.js +9 -5
  402. package/nodes/functions/BSDFs.cjs.js +1 -0
  403. package/nodes/functions/BSDFs.js +118 -61
  404. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  405. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  406. package/nodes/lights/LightContextNode.cjs.js +1 -0
  407. package/nodes/lights/LightContextNode.js +23 -14
  408. package/nodes/lights/LightNode.cjs.js +1 -0
  409. package/nodes/lights/LightNode.js +31 -27
  410. package/nodes/lights/LightsNode.cjs.js +1 -0
  411. package/nodes/lights/LightsNode.js +28 -9
  412. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  413. package/nodes/loaders/NodeLoader.js +42 -27
  414. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  415. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  416. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  417. package/nodes/loaders/NodeObjectLoader.js +19 -9
  418. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  419. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  420. package/nodes/materials/Materials.cjs.js +1 -0
  421. package/nodes/materials/Materials.js +17 -14
  422. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  423. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  424. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  425. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  426. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  427. package/nodes/materials/NodeMaterial.js +36 -20
  428. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  429. package/nodes/materials/PointsNodeMaterial.js +10 -5
  430. package/nodes/math/CondNode.cjs.js +1 -0
  431. package/nodes/math/CondNode.js +23 -11
  432. package/nodes/math/MathNode.cjs.js +1 -0
  433. package/nodes/math/MathNode.js +142 -98
  434. package/nodes/math/OperatorNode.cjs.js +1 -0
  435. package/nodes/math/OperatorNode.js +46 -24
  436. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  437. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  438. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  439. package/nodes/parsers/GLSLNodeParser.js +13 -0
  440. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  441. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  442. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  443. package/nodes/parsers/WGSLNodeParser.js +13 -0
  444. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  445. package/nodes/procedural/CheckerNode.js +19 -13
  446. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  447. package/nodes/utils/ArrayElementNode.js +8 -4
  448. package/nodes/utils/ConvertNode.cjs.js +1 -0
  449. package/nodes/utils/ConvertNode.js +8 -3
  450. package/nodes/utils/JoinNode.cjs.js +1 -0
  451. package/nodes/utils/JoinNode.js +11 -7
  452. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  453. package/nodes/utils/MatcapUVNode.js +11 -8
  454. package/nodes/utils/OscNode.cjs.js +1 -0
  455. package/nodes/utils/OscNode.js +33 -27
  456. package/nodes/utils/SplitNode.cjs.js +1 -0
  457. package/nodes/utils/SplitNode.js +20 -6
  458. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  459. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  460. package/nodes/utils/TimerNode.cjs.js +1 -0
  461. package/nodes/utils/TimerNode.js +24 -20
  462. package/objects/GroundProjectedEnv.cjs.js +1 -0
  463. package/objects/GroundProjectedEnv.js +37 -22
  464. package/objects/Lensflare.cjs.js +1 -0
  465. package/objects/Lensflare.js +156 -86
  466. package/objects/LightningStorm.cjs.js +1 -0
  467. package/objects/LightningStorm.js +102 -38
  468. package/objects/MarchingCubes.cjs.js +1 -0
  469. package/objects/MarchingCubes.js +303 -150
  470. package/objects/Reflector.cjs.js +1 -0
  471. package/objects/Reflector.js +72 -50
  472. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  473. package/objects/ReflectorForSSRPass.js +131 -80
  474. package/objects/ReflectorRTT.cjs.js +1 -0
  475. package/objects/ReflectorRTT.js +7 -6
  476. package/objects/Refractor.cjs.js +1 -0
  477. package/objects/Refractor.js +106 -64
  478. package/objects/ShadowMesh.cjs.js +1 -0
  479. package/objects/ShadowMesh.js +17 -8
  480. package/objects/Sky.cjs.js +1 -0
  481. package/objects/Sky.js +80 -119
  482. package/objects/Water.cjs.js +1 -0
  483. package/objects/Water.js +127 -83
  484. package/objects/Water2.cjs.js +1 -0
  485. package/objects/Water2.js +108 -72
  486. package/offscreen/jank.cjs.js +1 -0
  487. package/offscreen/jank.js +14 -10
  488. package/offscreen/offscreen.cjs.js +1 -0
  489. package/offscreen/offscreen.js +5 -4
  490. package/offscreen/scene.cjs.js +1 -0
  491. package/offscreen/scene.js +48 -45
  492. package/package.json +3 -3
  493. package/physics/AmmoPhysics.cjs.js +1 -0
  494. package/physics/AmmoPhysics.js +71 -30
  495. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  496. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  497. package/postprocessing/AfterimagePass.cjs.js +1 -0
  498. package/postprocessing/AfterimagePass.js +49 -28
  499. package/postprocessing/BloomPass.cjs.js +1 -0
  500. package/postprocessing/BloomPass.js +69 -43
  501. package/postprocessing/BokehPass.cjs.js +1 -0
  502. package/postprocessing/BokehPass.js +69 -39
  503. package/postprocessing/ClearPass.cjs.js +1 -0
  504. package/postprocessing/ClearPass.js +25 -10
  505. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  506. package/postprocessing/CubeTexturePass.js +27 -28
  507. package/postprocessing/DotScreenPass.cjs.js +1 -0
  508. package/postprocessing/DotScreenPass.js +32 -24
  509. package/postprocessing/EffectComposer.cjs.js +1 -0
  510. package/postprocessing/EffectComposer.js +86 -39
  511. package/postprocessing/FilmPass.cjs.js +1 -0
  512. package/postprocessing/FilmPass.js +30 -25
  513. package/postprocessing/GlitchPass.cjs.js +1 -0
  514. package/postprocessing/GlitchPass.js +61 -38
  515. package/postprocessing/HalftonePass.cjs.js +1 -0
  516. package/postprocessing/HalftonePass.js +39 -19
  517. package/postprocessing/LUTPass.cjs.js +1 -0
  518. package/postprocessing/LUTPass.js +38 -13
  519. package/postprocessing/MaskPass.cjs.js +1 -0
  520. package/postprocessing/MaskPass.js +38 -19
  521. package/postprocessing/OutlinePass.cjs.js +1 -0
  522. package/postprocessing/OutlinePass.js +277 -135
  523. package/postprocessing/Pass.cjs.js +1 -0
  524. package/postprocessing/Pass.js +44 -20
  525. package/postprocessing/RenderPass.cjs.js +1 -0
  526. package/postprocessing/RenderPass.js +36 -13
  527. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  528. package/postprocessing/RenderPixelatedPass.js +58 -44
  529. package/postprocessing/SAOPass.cjs.js +1 -0
  530. package/postprocessing/SAOPass.js +189 -154
  531. package/postprocessing/SMAAPass.cjs.js +1 -0
  532. package/postprocessing/SMAAPass.js +84 -64
  533. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  534. package/postprocessing/SSAARenderPass.js +69 -121
  535. package/postprocessing/SSAOPass.cjs.js +1 -0
  536. package/postprocessing/SSAOPass.js +172 -123
  537. package/postprocessing/SSRPass.cjs.js +1 -0
  538. package/postprocessing/SSRPass.js +280 -211
  539. package/postprocessing/SavePass.cjs.js +1 -0
  540. package/postprocessing/SavePass.js +25 -20
  541. package/postprocessing/ShaderPass.cjs.js +1 -0
  542. package/postprocessing/ShaderPass.js +30 -14
  543. package/postprocessing/TAARenderPass.cjs.js +1 -0
  544. package/postprocessing/TAARenderPass.js +61 -42
  545. package/postprocessing/TexturePass.cjs.js +1 -0
  546. package/postprocessing/TexturePass.js +22 -21
  547. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  548. package/postprocessing/UnrealBloomPass.js +213 -105
  549. package/renderers/CSS2DRenderer.cjs.js +1 -0
  550. package/renderers/CSS2DRenderer.js +56 -44
  551. package/renderers/CSS3DRenderer.cjs.js +1 -0
  552. package/renderers/CSS3DRenderer.js +86 -53
  553. package/renderers/Projector.cjs.js +1 -0
  554. package/renderers/Projector.js +274 -107
  555. package/renderers/SVGRenderer.cjs.js +1 -0
  556. package/renderers/SVGRenderer.js +182 -72
  557. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  558. package/renderers/nodes/accessors/CameraNode.js +40 -29
  559. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  560. package/renderers/nodes/accessors/ModelNode.js +37 -28
  561. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  563. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  564. package/renderers/nodes/accessors/NormalNode.js +45 -35
  565. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  566. package/renderers/nodes/accessors/PositionNode.js +19 -18
  567. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  568. package/renderers/nodes/accessors/UVNode.js +10 -5
  569. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  570. package/renderers/nodes/core/AttributeNode.js +14 -5
  571. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  572. package/renderers/nodes/core/InputNode.js +14 -4
  573. package/renderers/nodes/core/Node.cjs.js +1 -0
  574. package/renderers/nodes/core/Node.js +17 -7
  575. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  576. package/renderers/nodes/core/NodeAttribute.js +6 -3
  577. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  578. package/renderers/nodes/core/NodeBuilder.js +154 -87
  579. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  580. package/renderers/nodes/core/NodeFrame.js +12 -9
  581. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  582. package/renderers/nodes/core/NodeSlot.js +3 -2
  583. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  584. package/renderers/nodes/core/NodeUniform.js +9 -4
  585. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  586. package/renderers/nodes/core/NodeVary.js +7 -4
  587. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  588. package/renderers/nodes/core/VaryNode.js +12 -6
  589. package/renderers/nodes/core/constants.cjs.js +1 -0
  590. package/renderers/nodes/core/constants.js +13 -16
  591. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  592. package/renderers/nodes/inputs/ColorNode.js +11 -5
  593. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  594. package/renderers/nodes/inputs/FloatNode.js +11 -5
  595. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  596. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  597. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  598. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  599. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  600. package/renderers/nodes/inputs/TextureNode.js +15 -7
  601. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  602. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  603. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  604. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  605. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  606. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  607. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  608. package/renderers/nodes/math/MathNode.js +30 -20
  609. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  610. package/renderers/nodes/math/OperatorNode.js +20 -4
  611. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  612. package/renderers/nodes/utils/SwitchNode.js +9 -4
  613. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  614. package/renderers/nodes/utils/TimerNode.js +10 -5
  615. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  616. package/renderers/webgpu/WebGPU.js +16 -14
  617. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  618. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  619. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  620. package/renderers/webgpu/WebGPUBackground.js +30 -13
  621. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  622. package/renderers/webgpu/WebGPUBinding.js +7 -4
  623. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  624. package/renderers/webgpu/WebGPUBindings.js +57 -21
  625. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  626. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  627. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  628. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  629. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  630. package/renderers/webgpu/WebGPUInfo.js +8 -3
  631. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  632. package/renderers/webgpu/WebGPUObjects.js +10 -5
  633. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  634. package/renderers/webgpu/WebGPUProperties.js +11 -5
  635. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  636. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  637. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  638. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  639. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  640. package/renderers/webgpu/WebGPURenderer.js +262 -124
  641. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  642. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  643. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  644. package/renderers/webgpu/WebGPUSampler.js +12 -7
  645. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  646. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  647. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  648. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  649. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  650. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  651. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  652. package/renderers/webgpu/WebGPUTextures.js +333 -186
  653. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  654. package/renderers/webgpu/WebGPUUniform.js +51 -25
  655. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  656. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  657. package/renderers/webgpu/constants.cjs.js +1 -0
  658. package/renderers/webgpu/constants.js +181 -190
  659. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  660. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  661. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  663. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  665. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  667. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  668. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  669. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  670. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  671. package/shaders/AfterimageShader.cjs.js +1 -0
  672. package/shaders/AfterimageShader.js +18 -28
  673. package/shaders/BasicShader.cjs.js +1 -0
  674. package/shaders/BasicShader.js +7 -9
  675. package/shaders/BleachBypassShader.cjs.js +1 -0
  676. package/shaders/BleachBypassShader.js +15 -31
  677. package/shaders/BlendShader.cjs.js +1 -0
  678. package/shaders/BlendShader.js +19 -26
  679. package/shaders/BokehShader.cjs.js +1 -0
  680. package/shaders/BokehShader.js +36 -98
  681. package/shaders/BokehShader2.cjs.js +1 -0
  682. package/shaders/BokehShader2.js +90 -261
  683. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  684. package/shaders/BrightnessContrastShader.js +19 -28
  685. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  686. package/shaders/ColorCorrectionShader.js +22 -26
  687. package/shaders/ColorifyShader.cjs.js +1 -0
  688. package/shaders/ColorifyShader.js +16 -24
  689. package/shaders/ConvolutionShader.cjs.js +1 -0
  690. package/shaders/ConvolutionShader.js +36 -40
  691. package/shaders/CopyShader.cjs.js +1 -0
  692. package/shaders/CopyShader.js +13 -21
  693. package/shaders/DOFMipMapShader.cjs.js +1 -0
  694. package/shaders/DOFMipMapShader.js +21 -28
  695. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  696. package/shaders/DepthLimitedBlurShader.js +40 -85
  697. package/shaders/DigitalGlitch.cjs.js +1 -0
  698. package/shaders/DigitalGlitch.js +46 -74
  699. package/shaders/DotScreenShader.cjs.js +1 -0
  700. package/shaders/DotScreenShader.js +27 -35
  701. package/shaders/FXAAShader.cjs.js +1 -0
  702. package/shaders/FXAAShader.js +19 -1094
  703. package/shaders/FilmShader.cjs.js +1 -0
  704. package/shaders/FilmShader.js +52 -38
  705. package/shaders/FocusShader.cjs.js +1 -0
  706. package/shaders/FocusShader.js +24 -51
  707. package/shaders/FreiChenShader.cjs.js +1 -0
  708. package/shaders/FreiChenShader.js +24 -57
  709. package/shaders/FresnelShader.cjs.js +1 -0
  710. package/shaders/FresnelShader.js +22 -43
  711. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  712. package/shaders/GammaCorrectionShader.js +11 -19
  713. package/shaders/GodRaysShader.cjs.js +1 -0
  714. package/shaders/GodRaysShader.js +94 -103
  715. package/shaders/HalftoneShader.cjs.js +1 -0
  716. package/shaders/HalftoneShader.js +65 -208
  717. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  718. package/shaders/HorizontalBlurShader.js +23 -7
  719. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  720. package/shaders/HorizontalTiltShiftShader.js +21 -33
  721. package/shaders/HueSaturationShader.cjs.js +1 -0
  722. package/shaders/HueSaturationShader.js +21 -37
  723. package/shaders/KaleidoShader.cjs.js +1 -0
  724. package/shaders/KaleidoShader.js +22 -30
  725. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  726. package/shaders/LuminosityHighPassShader.js +27 -33
  727. package/shaders/LuminosityShader.cjs.js +1 -0
  728. package/shaders/LuminosityShader.js +11 -21
  729. package/shaders/MirrorShader.cjs.js +1 -0
  730. package/shaders/MirrorShader.js +16 -31
  731. package/shaders/NormalMapShader.cjs.js +1 -0
  732. package/shaders/NormalMapShader.js +23 -27
  733. package/shaders/ParallaxShader.cjs.js +1 -0
  734. package/shaders/ParallaxShader.js +48 -107
  735. package/shaders/PixelShader.cjs.js +1 -0
  736. package/shaders/PixelShader.js +16 -24
  737. package/shaders/RGBShiftShader.cjs.js +1 -0
  738. package/shaders/RGBShiftShader.js +22 -26
  739. package/shaders/SAOShader.cjs.js +1 -0
  740. package/shaders/SAOShader.js +48 -132
  741. package/shaders/SMAAShader.cjs.js +1 -0
  742. package/shaders/SMAAShader.js +135 -256
  743. package/shaders/SSAOShader.cjs.js +1 -0
  744. package/shaders/SSAOShader.js +81 -153
  745. package/shaders/SSRShader.cjs.js +1 -0
  746. package/shaders/SSRShader.js +87 -32
  747. package/shaders/SepiaShader.cjs.js +1 -0
  748. package/shaders/SepiaShader.js +15 -25
  749. package/shaders/SobelOperatorShader.cjs.js +1 -0
  750. package/shaders/SobelOperatorShader.js +29 -40
  751. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  752. package/shaders/SubsurfaceScatteringShader.js +39 -53
  753. package/shaders/TechnicolorShader.cjs.js +1 -0
  754. package/shaders/TechnicolorShader.js +13 -20
  755. package/shaders/ToneMapShader.cjs.js +1 -0
  756. package/shaders/ToneMapShader.js +28 -44
  757. package/shaders/ToonShader.cjs.js +1 -0
  758. package/shaders/ToonShader.js +96 -172
  759. package/shaders/TriangleBlurShader.cjs.js +1 -0
  760. package/shaders/TriangleBlurShader.js +23 -32
  761. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  762. package/shaders/UnpackDepthRGBAShader.js +14 -22
  763. package/shaders/VerticalBlurShader.cjs.js +1 -0
  764. package/shaders/VerticalBlurShader.js +23 -7
  765. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  766. package/shaders/VerticalTiltShiftShader.js +21 -33
  767. package/shaders/VignetteShader.cjs.js +1 -0
  768. package/shaders/VignetteShader.js +28 -24
  769. package/shaders/VolumeShader.cjs.js +1 -0
  770. package/shaders/VolumeShader.js +77 -174
  771. package/shaders/WaterRefractionShader.cjs.js +1 -0
  772. package/shaders/WaterRefractionShader.js +6 -38
  773. package/shaders/types.cjs.js +1 -0
  774. package/shaders/types.js +1 -1
  775. package/textures/FlakesTexture.cjs.js +1 -0
  776. package/textures/FlakesTexture.js +10 -8
  777. package/types/helpers.cjs.js +1 -0
  778. package/types/helpers.js +2 -3
  779. package/types/shared.cjs.js +1 -0
  780. package/types/shared.js +1 -0
  781. package/types/utils.cjs.js +1 -0
  782. package/types/utils.js +1 -0
  783. package/utils/BufferGeometryUtils.cjs.js +1 -0
  784. package/utils/BufferGeometryUtils.js +325 -251
  785. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  786. package/utils/GeometryCompressionUtils.js +239 -241
  787. package/utils/GeometryUtils.cjs.js +1 -0
  788. package/utils/GeometryUtils.js +94 -41
  789. package/utils/LDrawUtils.cjs.js +1 -0
  790. package/utils/LDrawUtils.d.ts +5 -0
  791. package/utils/LDrawUtils.js +144 -0
  792. package/utils/RoughnessMipmapper.cjs.js +1 -0
  793. package/utils/RoughnessMipmapper.js +82 -38
  794. package/utils/SceneUtils.cjs.js +1 -0
  795. package/utils/SceneUtils.js +20 -15
  796. package/utils/ShadowMapViewer.cjs.js +1 -0
  797. package/utils/ShadowMapViewer.js +95 -49
  798. package/utils/SkeletonUtils.cjs.js +1 -0
  799. package/utils/SkeletonUtils.js +165 -74
  800. package/utils/UVsDebug.cjs.js +1 -0
  801. package/utils/UVsDebug.js +62 -32
  802. package/utils/WorkerPool.cjs.js +1 -0
  803. package/utils/WorkerPool.js +33 -13
  804. package/webxr/ARButton.cjs.js +1 -0
  805. package/webxr/ARButton.js +98 -72
  806. package/webxr/OculusHandModel.cjs.js +1 -0
  807. package/webxr/OculusHandModel.js +37 -18
  808. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  809. package/webxr/OculusHandPointerModel.js +80 -58
  810. package/webxr/Text2D.cjs.js +1 -0
  811. package/webxr/Text2D.js +19 -37
  812. package/webxr/VRButton.cjs.js +1 -0
  813. package/webxr/VRButton.js +90 -59
  814. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  815. package/webxr/XRControllerModelFactory.js +116 -58
  816. package/webxr/XREstimatedLight.cjs.js +1 -0
  817. package/webxr/XREstimatedLight.js +66 -39
  818. package/webxr/XRHandMeshModel.cjs.js +1 -0
  819. package/webxr/XRHandMeshModel.js +29 -40
  820. package/webxr/XRHandModelFactory.cjs.js +1 -0
  821. package/webxr/XRHandModelFactory.js +31 -28
  822. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  823. package/webxr/XRHandPrimitiveModel.js +27 -41
  824. package/animation/AnimationClipCreator.mjs +0 -57
  825. package/animation/CCDIKSolver.mjs +0 -234
  826. package/animation/MMDAnimationHelper.mjs +0 -514
  827. package/animation/MMDPhysics.mjs +0 -769
  828. package/cameras/CinematicCamera.mjs +0 -129
  829. package/controls/ArcballControls.mjs +0 -1737
  830. package/controls/DeviceOrientationControls.mjs +0 -74
  831. package/controls/DragControls.mjs +0 -172
  832. package/controls/FirstPersonControls.mjs +0 -220
  833. package/controls/FlyControls.mjs +0 -239
  834. package/controls/OrbitControls.mjs +0 -731
  835. package/controls/PointerLockControls.mjs +0 -88
  836. package/controls/TrackballControls.mjs +0 -481
  837. package/controls/TransformControls.mjs +0 -1068
  838. package/controls/experimental/CameraControls.mjs +0 -673
  839. package/csm/CSM.mjs +0 -244
  840. package/csm/CSMFrustum.mjs +0 -75
  841. package/csm/CSMHelper.mjs +0 -114
  842. package/csm/CSMShader.mjs +0 -251
  843. package/curves/CurveExtras.mjs +0 -224
  844. package/curves/NURBSCurve.mjs +0 -35
  845. package/curves/NURBSSurface.mjs +0 -28
  846. package/curves/NURBSUtils.mjs +0 -226
  847. package/deprecated/Geometry.mjs +0 -966
  848. package/effects/AnaglyphEffect.mjs +0 -120
  849. package/effects/AsciiEffect.mjs +0 -173
  850. package/effects/OutlineEffect.mjs +0 -295
  851. package/effects/ParallaxBarrierEffect.mjs +0 -64
  852. package/effects/PeppersGhostEffect.mjs +0 -85
  853. package/effects/StereoEffect.mjs +0 -32
  854. package/environments/RoomEnvironment.mjs +0 -78
  855. package/exporters/ColladaExporter.mjs +0 -299
  856. package/exporters/DRACOExporter.mjs +0 -132
  857. package/exporters/GLTFExporter.mjs +0 -1381
  858. package/exporters/MMDExporter.mjs +0 -102
  859. package/exporters/OBJExporter.mjs +0 -166
  860. package/exporters/PLYExporter.mjs +0 -278
  861. package/exporters/STLExporter.mjs +0 -129
  862. package/exporters/USDZExporter.mjs +0 -328
  863. package/geometries/BoxLineGeometry.mjs +0 -45
  864. package/geometries/ConvexGeometry.mjs +0 -29
  865. package/geometries/DecalGeometry.mjs +0 -184
  866. package/geometries/LightningStrike.mjs +0 -547
  867. package/geometries/ParametricGeometries.mjs +0 -129
  868. package/geometries/ParametricGeometry.mjs +0 -63
  869. package/geometries/RoundedBoxGeometry.mjs +0 -91
  870. package/geometries/TeapotGeometry.mjs +0 -1557
  871. package/geometries/TextGeometry.mjs +0 -23
  872. package/helpers/LightProbeHelper.mjs +0 -72
  873. package/helpers/PositionalAudioHelper.mjs +0 -68
  874. package/helpers/RectAreaLightHelper.mjs +0 -44
  875. package/helpers/VertexNormalsHelper.mjs +0 -54
  876. package/helpers/VertexTangentsHelper.mjs +0 -45
  877. package/index.mjs +0 -968
  878. package/interactive/SelectionBox.mjs +0 -137
  879. package/interactive/SelectionHelper.mjs +0 -54
  880. package/libs/MeshoptDecoder.mjs +0 -210
  881. package/libs/MotionControllers.mjs +0 -261
  882. package/lights/LightProbeGenerator.mjs +0 -145
  883. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  884. package/lines/Line2.mjs +0 -13
  885. package/lines/LineGeometry.mjs +0 -44
  886. package/lines/LineMaterial.mjs +0 -539
  887. package/lines/LineSegments2.mjs +0 -202
  888. package/lines/LineSegmentsGeometry.mjs +0 -124
  889. package/lines/Wireframe.mjs +0 -31
  890. package/lines/WireframeGeometry2.mjs +0 -13
  891. package/loaders/3DMLoader.mjs +0 -802
  892. package/loaders/3MFLoader.mjs +0 -837
  893. package/loaders/AMFLoader.mjs +0 -284
  894. package/loaders/AssimpLoader.mjs +0 -1396
  895. package/loaders/BVHLoader.mjs +0 -207
  896. package/loaders/BasisTextureLoader.mjs +0 -474
  897. package/loaders/ColladaLoader.mjs +0 -2403
  898. package/loaders/DDSLoader.mjs +0 -148
  899. package/loaders/DRACOLoader.mjs +0 -340
  900. package/loaders/EXRLoader.mjs +0 -1351
  901. package/loaders/FBXLoader.mjs +0 -2362
  902. package/loaders/FontLoader.mjs +0 -111
  903. package/loaders/GCodeLoader.mjs +0 -141
  904. package/loaders/GLTFLoader.mjs +0 -2316
  905. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  906. package/loaders/KMZLoader.mjs +0 -75
  907. package/loaders/KTX2Loader.mjs +0 -427
  908. package/loaders/KTXLoader.mjs +0 -87
  909. package/loaders/LDrawLoader.mjs +0 -1409
  910. package/loaders/LUT3dlLoader.mjs +0 -100
  911. package/loaders/LUTCubeLoader.mjs +0 -104
  912. package/loaders/LWOLoader.mjs +0 -625
  913. package/loaders/LottieLoader.mjs +0 -47
  914. package/loaders/MD2Loader.mjs +0 -359
  915. package/loaders/MDDLoader.mjs +0 -58
  916. package/loaders/MMDLoader.mjs +0 -998
  917. package/loaders/MTLLoader.mjs +0 -280
  918. package/loaders/NRRDLoader.mjs +0 -401
  919. package/loaders/NodeMaterialLoader.mjs +0 -146
  920. package/loaders/OBJLoader.mjs +0 -487
  921. package/loaders/PCDLoader.mjs +0 -248
  922. package/loaders/PDBLoader.mjs +0 -246
  923. package/loaders/PLYLoader.mjs +0 -317
  924. package/loaders/PRWMLoader.mjs +0 -160
  925. package/loaders/PVRLoader.mjs +0 -131
  926. package/loaders/RGBELoader.mjs +0 -244
  927. package/loaders/RGBMLoader.mjs +0 -998
  928. package/loaders/STLLoader.mjs +0 -190
  929. package/loaders/SVGLoader.mjs +0 -1709
  930. package/loaders/TDSLoader.mjs +0 -480
  931. package/loaders/TGALoader.mjs +0 -285
  932. package/loaders/TTFLoader.mjs +0 -131
  933. package/loaders/TiltLoader.mjs +0 -373
  934. package/loaders/VOXLoader.mjs +0 -431
  935. package/loaders/VRMLLoader.mjs +0 -2093
  936. package/loaders/VRMLoader.mjs +0 -38
  937. package/loaders/VTKLoader.mjs +0 -646
  938. package/loaders/XLoader.mjs +0 -1258
  939. package/loaders/XYZLoader.mjs +0 -60
  940. package/loaders/lwo/IFFParser.mjs +0 -697
  941. package/loaders/lwo/LWO2Parser.mjs +0 -327
  942. package/loaders/lwo/LWO3Parser.mjs +0 -298
  943. package/math/Capsule.mjs +0 -100
  944. package/math/ColorConverter.mjs +0 -51
  945. package/math/ConvexHull.mjs +0 -574
  946. package/math/ImprovedNoise.mjs +0 -302
  947. package/math/Lut.mjs +0 -135
  948. package/math/MeshSurfaceSampler.mjs +0 -107
  949. package/math/OBB.mjs +0 -235
  950. package/math/Octree.mjs +0 -278
  951. package/math/SimplexNoise.mjs +0 -425
  952. package/misc/ConvexObjectBreaker.mjs +0 -292
  953. package/misc/GPUComputationRenderer.mjs +0 -171
  954. package/misc/Gyroscope.mjs +0 -35
  955. package/misc/MD2Character.mjs +0 -162
  956. package/misc/MD2CharacterComplex.mjs +0 -328
  957. package/misc/MorphAnimMesh.mjs +0 -40
  958. package/misc/MorphBlendMesh.mjs +0 -179
  959. package/misc/ProgressiveLightmap.mjs +0 -166
  960. package/misc/RollerCoaster.mjs +0 -346
  961. package/misc/TubePainter.mjs +0 -123
  962. package/misc/Volume.mjs +0 -244
  963. package/misc/VolumeSlice.mjs +0 -106
  964. package/misc/WebGL.mjs +0 -74
  965. package/modifiers/CurveModifier.mjs +0 -182
  966. package/modifiers/EdgeSplitModifier.mjs +0 -162
  967. package/modifiers/SimplifyModifier.mjs +0 -282
  968. package/modifiers/TessellateModifier.mjs +0 -206
  969. package/nodes/Nodes.mjs +0 -400
  970. package/nodes/ShaderNode.mjs +0 -408
  971. package/nodes/accessors/BufferNode.mjs +0 -15
  972. package/nodes/accessors/CameraNode.mjs +0 -44
  973. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  974. package/nodes/accessors/MaterialNode.mjs +0 -71
  975. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  976. package/nodes/accessors/ModelNode.mjs +0 -9
  977. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  978. package/nodes/accessors/NormalNode.mjs +0 -62
  979. package/nodes/accessors/Object3DNode.mjs +0 -76
  980. package/nodes/accessors/PointUVNode.mjs +0 -13
  981. package/nodes/accessors/PositionNode.mjs +0 -65
  982. package/nodes/accessors/ReferenceNode.mjs +0 -37
  983. package/nodes/accessors/ReflectNode.mjs +0 -43
  984. package/nodes/accessors/SkinningNode.mjs +0 -58
  985. package/nodes/accessors/TextureNode.mjs +0 -54
  986. package/nodes/accessors/UVNode.mjs +0 -23
  987. package/nodes/core/ArrayUniformNode.mjs +0 -14
  988. package/nodes/core/AttributeNode.mjs +0 -30
  989. package/nodes/core/BypassNode.mjs +0 -22
  990. package/nodes/core/CodeNode.mjs +0 -28
  991. package/nodes/core/ConstNode.mjs +0 -14
  992. package/nodes/core/ContextNode.mjs +0 -22
  993. package/nodes/core/ExpressionNode.mjs +0 -19
  994. package/nodes/core/FunctionCallNode.mjs +0 -37
  995. package/nodes/core/FunctionNode.mjs +0 -56
  996. package/nodes/core/InputNode.mjs +0 -38
  997. package/nodes/core/Node.mjs +0 -139
  998. package/nodes/core/NodeAttribute.mjs +0 -10
  999. package/nodes/core/NodeBuilder.mjs +0 -395
  1000. package/nodes/core/NodeCode.mjs +0 -11
  1001. package/nodes/core/NodeFrame.mjs +0 -35
  1002. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1003. package/nodes/core/NodeKeywords.mjs +0 -44
  1004. package/nodes/core/NodeUniform.mjs +0 -18
  1005. package/nodes/core/NodeUtils.mjs +0 -57
  1006. package/nodes/core/NodeVar.mjs +0 -10
  1007. package/nodes/core/NodeVary.mjs +0 -10
  1008. package/nodes/core/PropertyNode.mjs +0 -21
  1009. package/nodes/core/TempNode.mjs +0 -25
  1010. package/nodes/core/UniformNode.mjs +0 -23
  1011. package/nodes/core/VarNode.mjs +0 -31
  1012. package/nodes/core/VaryNode.mjs +0 -30
  1013. package/nodes/core/constants.mjs +0 -24
  1014. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1015. package/nodes/display/NormalMapNode.mjs +0 -54
  1016. package/nodes/fog/FogNode.mjs +0 -15
  1017. package/nodes/fog/FogRangeNode.mjs +0 -17
  1018. package/nodes/functions/BSDFs.mjs +0 -64
  1019. package/nodes/lights/LightContextNode.mjs +0 -35
  1020. package/nodes/lights/LightNode.mjs +0 -58
  1021. package/nodes/lights/LightsNode.mjs +0 -59
  1022. package/nodes/loaders/NodeLoader.mjs +0 -66
  1023. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1024. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1025. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1026. package/nodes/materials/Materials.mjs +0 -28
  1027. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1028. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1029. package/nodes/materials/NodeMaterial.mjs +0 -64
  1030. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1031. package/nodes/math/CondNode.mjs +0 -38
  1032. package/nodes/math/MathNode.mjs +0 -163
  1033. package/nodes/math/OperatorNode.mjs +0 -103
  1034. package/nodes/procedural/CheckerNode.mjs +0 -21
  1035. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1036. package/nodes/utils/ConvertNode.mjs +0 -25
  1037. package/nodes/utils/JoinNode.mjs +0 -26
  1038. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1039. package/nodes/utils/OscNode.mjs +0 -50
  1040. package/nodes/utils/SplitNode.mjs +0 -45
  1041. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1042. package/nodes/utils/TimerNode.mjs +0 -44
  1043. package/objects/GroundProjectedEnv.mjs +0 -130
  1044. package/objects/Lensflare.mjs +0 -262
  1045. package/objects/LightningStorm.mjs +0 -110
  1046. package/objects/MarchingCubes.mjs +0 -457
  1047. package/objects/Reflector.mjs +0 -166
  1048. package/objects/ReflectorForSSRPass.mjs +0 -247
  1049. package/objects/ReflectorRTT.mjs +0 -10
  1050. package/objects/Refractor.mjs +0 -178
  1051. package/objects/ShadowMesh.mjs +0 -41
  1052. package/objects/Sky.mjs +0 -124
  1053. package/objects/Water.mjs +0 -235
  1054. package/objects/Water2.mjs +0 -252
  1055. package/offscreen/jank.mjs +0 -27
  1056. package/offscreen/offscreen.mjs +0 -5
  1057. package/offscreen/scene.mjs +0 -52
  1058. package/physics/AmmoPhysics.mjs +0 -165
  1059. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1060. package/postprocessing/AfterimagePass.mjs +0 -55
  1061. package/postprocessing/BloomPass.mjs +0 -90
  1062. package/postprocessing/BokehPass.mjs +0 -76
  1063. package/postprocessing/ClearPass.mjs +0 -27
  1064. package/postprocessing/CubeTexturePass.mjs +0 -49
  1065. package/postprocessing/DotScreenPass.mjs +0 -40
  1066. package/postprocessing/EffectComposer.mjs +0 -139
  1067. package/postprocessing/FilmPass.mjs +0 -42
  1068. package/postprocessing/GlitchPass.mjs +0 -75
  1069. package/postprocessing/HalftonePass.mjs +0 -44
  1070. package/postprocessing/LUTPass.mjs +0 -136
  1071. package/postprocessing/MaskPass.mjs +0 -60
  1072. package/postprocessing/OutlinePass.mjs +0 -438
  1073. package/postprocessing/Pass.mjs +0 -37
  1074. package/postprocessing/RenderPass.mjs +0 -48
  1075. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1076. package/postprocessing/SAOPass.mjs +0 -282
  1077. package/postprocessing/SMAAPass.mjs +0 -112
  1078. package/postprocessing/SSAARenderPass.mjs +0 -170
  1079. package/postprocessing/SSAOPass.mjs +0 -265
  1080. package/postprocessing/SSRPass.mjs +0 -432
  1081. package/postprocessing/SavePass.mjs +0 -37
  1082. package/postprocessing/ShaderPass.mjs +0 -39
  1083. package/postprocessing/TAARenderPass.mjs +0 -88
  1084. package/postprocessing/TexturePass.mjs +0 -39
  1085. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1086. package/renderers/CSS2DRenderer.mjs +0 -112
  1087. package/renderers/CSS3DRenderer.mjs +0 -133
  1088. package/renderers/Projector.mjs +0 -511
  1089. package/renderers/SVGRenderer.mjs +0 -306
  1090. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1091. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1092. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1093. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1094. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1095. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1096. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1097. package/renderers/nodes/core/InputNode.mjs +0 -31
  1098. package/renderers/nodes/core/Node.mjs +0 -34
  1099. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1100. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1101. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1102. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1103. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1104. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1105. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1106. package/renderers/nodes/core/constants.mjs +0 -22
  1107. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1108. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1110. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1112. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1113. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1114. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1115. package/renderers/nodes/math/MathNode.mjs +0 -55
  1116. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1117. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1118. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1119. package/renderers/webgpu/WebGPU.mjs +0 -24
  1120. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1121. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1122. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1123. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1124. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1125. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1126. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1127. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1128. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1129. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1130. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1131. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1132. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1133. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1134. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1136. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1137. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1138. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1139. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1140. package/renderers/webgpu/constants.mjs +0 -230
  1141. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1142. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1143. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1145. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1146. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1147. package/shaders/AfterimageShader.mjs +0 -32
  1148. package/shaders/BasicShader.mjs +0 -12
  1149. package/shaders/BleachBypassShader.mjs +0 -35
  1150. package/shaders/BlendShader.mjs +0 -30
  1151. package/shaders/BokehShader.mjs +0 -106
  1152. package/shaders/BokehShader2.mjs +0 -269
  1153. package/shaders/BrightnessContrastShader.mjs +0 -32
  1154. package/shaders/ColorCorrectionShader.mjs +0 -30
  1155. package/shaders/ColorifyShader.mjs +0 -28
  1156. package/shaders/ConvolutionShader.mjs +0 -55
  1157. package/shaders/CopyShader.mjs +0 -25
  1158. package/shaders/DOFMipMapShader.mjs +0 -32
  1159. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1160. package/shaders/DigitalGlitch.mjs +0 -78
  1161. package/shaders/DotScreenShader.mjs +0 -39
  1162. package/shaders/FXAAShader.mjs +0 -1098
  1163. package/shaders/FilmShader.mjs +0 -42
  1164. package/shaders/FocusShader.mjs +0 -55
  1165. package/shaders/FreiChenShader.mjs +0 -61
  1166. package/shaders/FresnelShader.mjs +0 -47
  1167. package/shaders/GammaCorrectionShader.mjs +0 -23
  1168. package/shaders/GodRaysShader.mjs +0 -146
  1169. package/shaders/HalftoneShader.mjs +0 -212
  1170. package/shaders/HorizontalBlurShader.mjs +0 -43
  1171. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1172. package/shaders/HueSaturationShader.mjs +0 -41
  1173. package/shaders/KaleidoShader.mjs +0 -34
  1174. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1175. package/shaders/LuminosityShader.mjs +0 -25
  1176. package/shaders/MirrorShader.mjs +0 -35
  1177. package/shaders/NormalMapShader.mjs +0 -31
  1178. package/shaders/ParallaxShader.mjs +0 -113
  1179. package/shaders/PixelShader.mjs +0 -28
  1180. package/shaders/RGBShiftShader.mjs +0 -30
  1181. package/shaders/SAOShader.mjs +0 -144
  1182. package/shaders/SMAAShader.mjs +0 -272
  1183. package/shaders/SSAOShader.mjs +0 -172
  1184. package/shaders/SSRShader.mjs +0 -324
  1185. package/shaders/SepiaShader.mjs +0 -29
  1186. package/shaders/SobelOperatorShader.mjs +0 -44
  1187. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1188. package/shaders/TechnicolorShader.mjs +0 -24
  1189. package/shaders/ToneMapShader.mjs +0 -48
  1190. package/shaders/ToonShader.mjs +0 -188
  1191. package/shaders/TriangleBlurShader.mjs +0 -36
  1192. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1193. package/shaders/VerticalBlurShader.mjs +0 -44
  1194. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1195. package/shaders/VignetteShader.mjs +0 -28
  1196. package/shaders/VolumeShader.mjs +0 -178
  1197. package/shaders/WaterRefractionShader.mjs +0 -57
  1198. package/textures/FlakesTexture.mjs +0 -30
  1199. package/types/helpers.mjs +0 -4
  1200. package/utils/BufferGeometryUtils.mjs +0 -570
  1201. package/utils/GeometryCompressionUtils.mjs +0 -547
  1202. package/utils/GeometryUtils.mjs +0 -108
  1203. package/utils/RoughnessMipmapper.mjs +0 -213
  1204. package/utils/SceneUtils.mjs +0 -36
  1205. package/utils/ShadowMapViewer.mjs +0 -114
  1206. package/utils/SkeletonUtils.mjs +0 -292
  1207. package/utils/UVsDebug.mjs +0 -85
  1208. package/utils/WorkerPool.mjs +0 -62
  1209. package/webxr/ARButton.mjs +0 -119
  1210. package/webxr/OculusHandModel.mjs +0 -71
  1211. package/webxr/OculusHandPointerModel.mjs +0 -207
  1212. package/webxr/Text2D.mjs +0 -31
  1213. package/webxr/VRButton.mjs +0 -105
  1214. package/webxr/XRControllerModelFactory.mjs +0 -146
  1215. package/webxr/XREstimatedLight.mjs +0 -126
  1216. package/webxr/XRHandMeshModel.mjs +0 -73
  1217. package/webxr/XRHandModelFactory.mjs +0 -61
  1218. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,48 +1,67 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- const IFFParser = require("./lwo/IFFParser.js");
1
+ import { Loader, FileLoader, TextureLoader, Points, LineSegments, Mesh, PointsMaterial, LineBasicMaterial, BufferAttribute, MeshPhongMaterial, BackSide, DoubleSide, FrontSide, Vector2, Color, AddOperation, EquirectangularRefractionMapping, EquirectangularReflectionMapping, ClampToEdgeWrapping, MirroredRepeatWrapping, RepeatWrapping, MeshPhysicalMaterial, MeshStandardMaterial, BufferGeometry, Float32BufferAttribute } from 'three';
2
+ import { IFFParser } from './lwo/IFFParser.js';
3
+
4
+ /**
5
+ * @version 1.1.1
6
+ *
7
+ * @desc Load files in LWO3 and LWO2 format on Three.js
8
+ *
9
+ * LWO3 format specification:
10
+ * http://static.lightwave3d.com/sdk/2018/html/filefmts/lwo3.html
11
+ *
12
+ * LWO2 format specification:
13
+ * http://static.lightwave3d.com/sdk/2018/html/filefmts/lwo2.html
14
+ *
15
+ **/
16
+
5
17
  let _lwoTree;
6
- class LWOLoader extends THREE.Loader {
18
+
19
+ class LWOLoader extends Loader {
7
20
  constructor(manager, parameters = {}) {
8
21
  super(manager);
9
- this.resourcePath = parameters.resourcePath !== void 0 ? parameters.resourcePath : "";
22
+ this.resourcePath = parameters.resourcePath !== undefined ? parameters.resourcePath : '';
10
23
  }
24
+
11
25
  load(url, onLoad, onProgress, onError) {
12
26
  const scope = this;
13
- const path = scope.path === "" ? extractParentUrl(url, "Objects") : scope.path;
14
- const modelName = url.split(path).pop().split(".")[0];
15
- const loader = new THREE.FileLoader(this.manager);
27
+ const path = scope.path === '' ? extractParentUrl(url, 'Objects') : scope.path; // give the mesh a default name based on the filename
28
+
29
+ const modelName = url.split(path).pop().split('.')[0];
30
+ const loader = new FileLoader(this.manager);
16
31
  loader.setPath(scope.path);
17
- loader.setResponseType("arraybuffer");
18
- loader.load(
19
- url,
20
- function(buffer) {
21
- try {
22
- onLoad(scope.parse(buffer, path, modelName));
23
- } catch (e) {
24
- if (onError) {
25
- onError(e);
26
- } else {
27
- console.error(e);
28
- }
29
- scope.manager.itemError(url);
32
+ loader.setResponseType('arraybuffer');
33
+ loader.load(url, function (buffer) {
34
+ // console.time( 'Total parsing: ' );
35
+ try {
36
+ onLoad(scope.parse(buffer, path, modelName));
37
+ } catch (e) {
38
+ if (onError) {
39
+ onError(e);
40
+ } else {
41
+ console.error(e);
30
42
  }
31
- },
32
- onProgress,
33
- onError
34
- );
43
+
44
+ scope.manager.itemError(url);
45
+ } // console.timeEnd( 'Total parsing: ' );
46
+
47
+ }, onProgress, onError);
35
48
  }
49
+
36
50
  parse(iffBuffer, path, modelName) {
37
- _lwoTree = new IFFParser.IFFParser().parse(iffBuffer);
38
- const textureLoader = new THREE.TextureLoader(this.manager).setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);
51
+ _lwoTree = new IFFParser().parse(iffBuffer); // console.log( 'lwoTree', lwoTree );
52
+
53
+ const textureLoader = new TextureLoader(this.manager).setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);
39
54
  return new LWOTreeParser(textureLoader).parse(modelName);
40
55
  }
41
- }
56
+
57
+ } // Parse the lwoTree object
58
+
59
+
42
60
  class LWOTreeParser {
43
61
  constructor(textureLoader) {
44
62
  this.textureLoader = textureLoader;
45
63
  }
64
+
46
65
  parse(modelName) {
47
66
  this.materials = new MaterialParser(this.textureLoader).parse();
48
67
  this.defaultLayerName = modelName;
@@ -52,47 +71,45 @@ class LWOTreeParser {
52
71
  meshes: this.meshes
53
72
  };
54
73
  }
74
+
55
75
  parseLayers() {
56
- const meshes = [];
76
+ // array of all meshes for building hierarchy
77
+ const meshes = []; // final array containing meshes with scene graph hierarchy set up
78
+
57
79
  const finalMeshes = [];
58
80
  const geometryParser = new GeometryParser();
59
81
  const scope = this;
60
- _lwoTree.layers.forEach(function(layer) {
82
+
83
+ _lwoTree.layers.forEach(function (layer) {
61
84
  const geometry = geometryParser.parse(layer.geometry, layer);
62
85
  const mesh = scope.parseMesh(geometry, layer);
63
86
  meshes[layer.number] = mesh;
64
- if (layer.parent === -1)
65
- finalMeshes.push(mesh);
66
- else
67
- meshes[layer.parent].add(mesh);
87
+ if (layer.parent === -1) finalMeshes.push(mesh);else meshes[layer.parent].add(mesh);
68
88
  });
89
+
69
90
  this.applyPivots(finalMeshes);
70
91
  return finalMeshes;
71
92
  }
93
+
72
94
  parseMesh(geometry, layer) {
73
95
  let mesh;
74
96
  const materials = this.getMaterials(geometry.userData.matNames, layer.geometry.type);
75
97
  this.duplicateUVs(geometry, materials);
76
- if (layer.geometry.type === "points")
77
- mesh = new THREE.Points(geometry, materials);
78
- else if (layer.geometry.type === "lines")
79
- mesh = new THREE.LineSegments(geometry, materials);
80
- else
81
- mesh = new THREE.Mesh(geometry, materials);
82
- if (layer.name)
83
- mesh.name = layer.name;
84
- else
85
- mesh.name = this.defaultLayerName + "_layer_" + layer.number;
98
+ if (layer.geometry.type === 'points') mesh = new Points(geometry, materials);else if (layer.geometry.type === 'lines') mesh = new LineSegments(geometry, materials);else mesh = new Mesh(geometry, materials);
99
+ if (layer.name) mesh.name = layer.name;else mesh.name = this.defaultLayerName + '_layer_' + layer.number;
86
100
  mesh.userData.pivot = layer.pivot;
87
101
  return mesh;
88
- }
102
+ } // TODO: may need to be reversed in z to convert LWO to three.js coordinates
103
+
104
+
89
105
  applyPivots(meshes) {
90
- meshes.forEach(function(mesh) {
91
- mesh.traverse(function(child) {
106
+ meshes.forEach(function (mesh) {
107
+ mesh.traverse(function (child) {
92
108
  const pivot = child.userData.pivot;
93
109
  child.position.x += pivot[0];
94
110
  child.position.y += pivot[1];
95
111
  child.position.z += pivot[2];
112
+
96
113
  if (child.parent) {
97
114
  const parentPivot = child.parent.userData.pivot;
98
115
  child.position.x -= parentPivot[0];
@@ -102,72 +119,84 @@ class LWOTreeParser {
102
119
  });
103
120
  });
104
121
  }
122
+
105
123
  getMaterials(namesArray, type) {
106
124
  const materials = [];
107
125
  const scope = this;
108
- namesArray.forEach(function(name, i) {
126
+ namesArray.forEach(function (name, i) {
109
127
  materials[i] = scope.getMaterialByName(name);
110
- });
111
- if (type === "points" || type === "lines") {
112
- materials.forEach(function(mat, i) {
128
+ }); // convert materials to line or point mats if required
129
+
130
+ if (type === 'points' || type === 'lines') {
131
+ materials.forEach(function (mat, i) {
113
132
  const spec = {
114
133
  color: mat.color
115
134
  };
116
- if (type === "points") {
135
+
136
+ if (type === 'points') {
117
137
  spec.size = 0.1;
118
138
  spec.map = mat.map;
119
139
  spec.morphTargets = mat.morphTargets;
120
- materials[i] = new THREE.PointsMaterial(spec);
121
- } else if (type === "lines") {
122
- materials[i] = new THREE.LineBasicMaterial(spec);
140
+ materials[i] = new PointsMaterial(spec);
141
+ } else if (type === 'lines') {
142
+ materials[i] = new LineBasicMaterial(spec);
123
143
  }
124
144
  });
125
- }
145
+ } // if there is only one material, return that directly instead of array
146
+
147
+
126
148
  const filtered = materials.filter(Boolean);
127
- if (filtered.length === 1)
128
- return filtered[0];
149
+ if (filtered.length === 1) return filtered[0];
129
150
  return materials;
130
151
  }
152
+
131
153
  getMaterialByName(name) {
132
- return this.materials.filter(function(m) {
154
+ return this.materials.filter(function (m) {
133
155
  return m.name === name;
134
156
  })[0];
135
- }
157
+ } // If the material has an aoMap, duplicate UVs
158
+
159
+
136
160
  duplicateUVs(geometry, materials) {
137
161
  let duplicateUVs = false;
162
+
138
163
  if (!Array.isArray(materials)) {
139
- if (materials.aoMap)
140
- duplicateUVs = true;
164
+ if (materials.aoMap) duplicateUVs = true;
141
165
  } else {
142
- materials.forEach(function(material) {
143
- if (material.aoMap)
144
- duplicateUVs = true;
166
+ materials.forEach(function (material) {
167
+ if (material.aoMap) duplicateUVs = true;
145
168
  });
146
169
  }
147
- if (!duplicateUVs)
148
- return;
149
- geometry.setAttribute("uv2", new THREE.BufferAttribute(geometry.attributes.uv.array, 2));
170
+
171
+ if (!duplicateUVs) return;
172
+ geometry.setAttribute('uv2', new BufferAttribute(geometry.attributes.uv.array, 2));
150
173
  }
174
+
151
175
  }
176
+
152
177
  class MaterialParser {
153
178
  constructor(textureLoader) {
154
179
  this.textureLoader = textureLoader;
155
180
  }
181
+
156
182
  parse() {
157
183
  const materials = [];
158
184
  this.textures = {};
185
+
159
186
  for (const name in _lwoTree.materials) {
160
- if (_lwoTree.format === "LWO3") {
187
+ if (_lwoTree.format === 'LWO3') {
161
188
  materials.push(this.parseMaterial(_lwoTree.materials[name], name, _lwoTree.textures));
162
- } else if (_lwoTree.format === "LWO2") {
189
+ } else if (_lwoTree.format === 'LWO2') {
163
190
  materials.push(this.parseMaterialLwo2(_lwoTree.materials[name], name, _lwoTree.textures));
164
191
  }
165
192
  }
193
+
166
194
  return materials;
167
195
  }
196
+
168
197
  parseMaterial(materialData, name, textures) {
169
198
  let params = {
170
- name,
199
+ name: name,
171
200
  side: this.getSide(materialData.attributes),
172
201
  flatShading: this.getSmooth(materialData.attributes)
173
202
  };
@@ -181,34 +210,44 @@ class MaterialParser {
181
210
  const materialType = this.getMaterialType(connections.attributes);
182
211
  return new materialType(params);
183
212
  }
184
- parseMaterialLwo2(materialData, name) {
213
+
214
+ parseMaterialLwo2(materialData, name
215
+ /*, textures*/
216
+ ) {
185
217
  let params = {
186
- name,
218
+ name: name,
187
219
  side: this.getSide(materialData.attributes),
188
220
  flatShading: this.getSmooth(materialData.attributes)
189
221
  };
190
222
  const attributes = this.parseAttributes(materialData.attributes, {});
191
223
  params = Object.assign(params, attributes);
192
- return new THREE.MeshPhongMaterial(params);
193
- }
224
+ return new MeshPhongMaterial(params);
225
+ } // Note: converting from left to right handed coords by switching x -> -x in vertices, and
226
+ // then switching mat FrontSide -> BackSide
227
+ // NB: this means that FrontSide and BackSide have been switched!
228
+
229
+
194
230
  getSide(attributes) {
195
- if (!attributes.side)
196
- return THREE.BackSide;
231
+ if (!attributes.side) return BackSide;
232
+
197
233
  switch (attributes.side) {
198
234
  case 0:
199
235
  case 1:
200
- return THREE.BackSide;
236
+ return BackSide;
237
+
201
238
  case 2:
202
- return THREE.FrontSide;
239
+ return FrontSide;
240
+
203
241
  case 3:
204
- return THREE.DoubleSide;
242
+ return DoubleSide;
205
243
  }
206
244
  }
245
+
207
246
  getSmooth(attributes) {
208
- if (!attributes.smooth)
209
- return true;
247
+ if (!attributes.smooth) return true;
210
248
  return !attributes.smooth;
211
249
  }
250
+
212
251
  parseConnections(connections, nodes) {
213
252
  const materialConnections = {
214
253
  maps: {}
@@ -217,321 +256,366 @@ class MaterialParser {
217
256
  const inputNodeName = connections.inputNodeName;
218
257
  const nodeName = connections.nodeName;
219
258
  const scope = this;
220
- inputName.forEach(function(name, index) {
221
- if (name === "Material") {
259
+ inputName.forEach(function (name, index) {
260
+ if (name === 'Material') {
222
261
  const matNode = scope.getNodeByRefName(inputNodeName[index], nodes);
223
262
  materialConnections.attributes = matNode.attributes;
224
263
  materialConnections.envMap = matNode.fileName;
225
264
  materialConnections.name = inputNodeName[index];
226
265
  }
227
266
  });
228
- nodeName.forEach(function(name, index) {
267
+ nodeName.forEach(function (name, index) {
229
268
  if (name === materialConnections.name) {
230
269
  materialConnections.maps[inputName[index]] = scope.getNodeByRefName(inputNodeName[index], nodes);
231
270
  }
232
271
  });
233
272
  return materialConnections;
234
273
  }
274
+
235
275
  getNodeByRefName(refName, nodes) {
236
276
  for (const name in nodes) {
237
- if (nodes[name].refName === refName)
238
- return nodes[name];
277
+ if (nodes[name].refName === refName) return nodes[name];
239
278
  }
240
279
  }
280
+
241
281
  parseTextureNodes(textureNodes) {
242
282
  const maps = {};
283
+
243
284
  for (const name in textureNodes) {
244
285
  const node = textureNodes[name];
245
286
  const path = node.fileName;
246
- if (!path)
247
- return;
287
+ if (!path) return;
248
288
  const texture = this.loadTexture(path);
249
- if (node.widthWrappingMode !== void 0)
250
- texture.wrapS = this.getWrappingType(node.widthWrappingMode);
251
- if (node.heightWrappingMode !== void 0)
252
- texture.wrapT = this.getWrappingType(node.heightWrappingMode);
289
+ if (node.widthWrappingMode !== undefined) texture.wrapS = this.getWrappingType(node.widthWrappingMode);
290
+ if (node.heightWrappingMode !== undefined) texture.wrapT = this.getWrappingType(node.heightWrappingMode);
291
+
253
292
  switch (name) {
254
- case "Color":
293
+ case 'Color':
255
294
  maps.map = texture;
256
295
  break;
257
- case "Roughness":
296
+
297
+ case 'Roughness':
258
298
  maps.roughnessMap = texture;
259
299
  maps.roughness = 0.5;
260
300
  break;
261
- case "Specular":
301
+
302
+ case 'Specular':
262
303
  maps.specularMap = texture;
263
- maps.specular = 16777215;
304
+ maps.specular = 0xffffff;
264
305
  break;
265
- case "Luminous":
306
+
307
+ case 'Luminous':
266
308
  maps.emissiveMap = texture;
267
- maps.emissive = 8421504;
309
+ maps.emissive = 0x808080;
268
310
  break;
269
- case "Luminous Color":
270
- maps.emissive = 8421504;
311
+
312
+ case 'Luminous Color':
313
+ maps.emissive = 0x808080;
271
314
  break;
272
- case "Metallic":
315
+
316
+ case 'Metallic':
273
317
  maps.metalnessMap = texture;
274
318
  maps.metalness = 0.5;
275
319
  break;
276
- case "Transparency":
277
- case "Alpha":
320
+
321
+ case 'Transparency':
322
+ case 'Alpha':
278
323
  maps.alphaMap = texture;
279
324
  maps.transparent = true;
280
325
  break;
281
- case "Normal":
326
+
327
+ case 'Normal':
282
328
  maps.normalMap = texture;
283
- if (node.amplitude !== void 0)
284
- maps.normalScale = new THREE.Vector2(node.amplitude, node.amplitude);
329
+ if (node.amplitude !== undefined) maps.normalScale = new Vector2(node.amplitude, node.amplitude);
285
330
  break;
286
- case "Bump":
331
+
332
+ case 'Bump':
287
333
  maps.bumpMap = texture;
288
334
  break;
289
335
  }
290
- }
291
- if (maps.roughnessMap && maps.specularMap)
292
- delete maps.specularMap;
336
+ } // LWO BSDF materials can have both spec and rough, but this is not valid in three
337
+
338
+
339
+ if (maps.roughnessMap && maps.specularMap) delete maps.specularMap;
293
340
  return maps;
294
- }
341
+ } // maps can also be defined on individual material attributes, parse those here
342
+ // This occurs on Standard (Phong) surfaces
343
+
344
+
295
345
  parseAttributeImageMaps(attributes, textures, maps) {
296
346
  for (const name in attributes) {
297
347
  const attribute = attributes[name];
348
+
298
349
  if (attribute.maps) {
299
350
  const mapData = attribute.maps[0];
300
351
  const path = this.getTexturePathByIndex(mapData.imageIndex, textures);
301
- if (!path)
302
- return;
352
+ if (!path) return;
303
353
  const texture = this.loadTexture(path);
304
- if (mapData.wrap !== void 0)
305
- texture.wrapS = this.getWrappingType(mapData.wrap.w);
306
- if (mapData.wrap !== void 0)
307
- texture.wrapT = this.getWrappingType(mapData.wrap.h);
354
+ if (mapData.wrap !== undefined) texture.wrapS = this.getWrappingType(mapData.wrap.w);
355
+ if (mapData.wrap !== undefined) texture.wrapT = this.getWrappingType(mapData.wrap.h);
356
+
308
357
  switch (name) {
309
- case "Color":
358
+ case 'Color':
310
359
  maps.map = texture;
311
360
  break;
312
- case "Diffuse":
361
+
362
+ case 'Diffuse':
313
363
  maps.aoMap = texture;
314
364
  break;
315
- case "Roughness":
365
+
366
+ case 'Roughness':
316
367
  maps.roughnessMap = texture;
317
368
  maps.roughness = 1;
318
369
  break;
319
- case "Specular":
370
+
371
+ case 'Specular':
320
372
  maps.specularMap = texture;
321
- maps.specular = 16777215;
373
+ maps.specular = 0xffffff;
322
374
  break;
323
- case "Luminosity":
375
+
376
+ case 'Luminosity':
324
377
  maps.emissiveMap = texture;
325
- maps.emissive = 8421504;
378
+ maps.emissive = 0x808080;
326
379
  break;
327
- case "Metallic":
380
+
381
+ case 'Metallic':
328
382
  maps.metalnessMap = texture;
329
383
  maps.metalness = 1;
330
384
  break;
331
- case "Transparency":
332
- case "Alpha":
385
+
386
+ case 'Transparency':
387
+ case 'Alpha':
333
388
  maps.alphaMap = texture;
334
389
  maps.transparent = true;
335
390
  break;
336
- case "Normal":
391
+
392
+ case 'Normal':
337
393
  maps.normalMap = texture;
338
394
  break;
339
- case "Bump":
395
+
396
+ case 'Bump':
340
397
  maps.bumpMap = texture;
341
398
  break;
342
399
  }
343
400
  }
344
401
  }
345
402
  }
403
+
346
404
  parseAttributes(attributes, maps) {
347
- const params = {};
405
+ const params = {}; // don't use color data if color map is present
406
+
348
407
  if (attributes.Color && !maps.map) {
349
- params.color = new THREE.Color().fromArray(attributes.Color.value);
408
+ params.color = new Color().fromArray(attributes.Color.value);
350
409
  } else {
351
- params.color = new THREE.Color();
410
+ params.color = new Color();
352
411
  }
412
+
353
413
  if (attributes.Transparency && attributes.Transparency.value !== 0) {
354
414
  params.opacity = 1 - attributes.Transparency.value;
355
415
  params.transparent = true;
356
416
  }
357
- if (attributes["Bump Height"])
358
- params.bumpScale = attributes["Bump Height"].value * 0.1;
359
- if (attributes["Refraction Index"])
360
- params.refractionRatio = 1 / attributes["Refraction Index"].value;
417
+
418
+ if (attributes['Bump Height']) params.bumpScale = attributes['Bump Height'].value * 0.1;
419
+ if (attributes['Refraction Index']) params.refractionRatio = 1 / attributes['Refraction Index'].value;
361
420
  this.parsePhysicalAttributes(params, attributes, maps);
362
421
  this.parseStandardAttributes(params, attributes, maps);
363
422
  this.parsePhongAttributes(params, attributes, maps);
364
423
  return params;
365
424
  }
366
- parsePhysicalAttributes(params, attributes) {
425
+
426
+ parsePhysicalAttributes(params, attributes
427
+ /*, maps*/
428
+ ) {
367
429
  if (attributes.Clearcoat && attributes.Clearcoat.value > 0) {
368
430
  params.clearcoat = attributes.Clearcoat.value;
369
- if (attributes["Clearcoat Gloss"]) {
370
- params.clearcoatRoughness = 0.5 * (1 - attributes["Clearcoat Gloss"].value);
431
+
432
+ if (attributes['Clearcoat Gloss']) {
433
+ params.clearcoatRoughness = 0.5 * (1 - attributes['Clearcoat Gloss'].value);
371
434
  }
372
435
  }
373
436
  }
437
+
374
438
  parseStandardAttributes(params, attributes, maps) {
375
439
  if (attributes.Luminous) {
376
440
  params.emissiveIntensity = attributes.Luminous.value;
377
- if (attributes["Luminous Color"] && !maps.emissive) {
378
- params.emissive = new THREE.Color().fromArray(attributes["Luminous Color"].value);
441
+
442
+ if (attributes['Luminous Color'] && !maps.emissive) {
443
+ params.emissive = new Color().fromArray(attributes['Luminous Color'].value);
379
444
  } else {
380
- params.emissive = new THREE.Color(8421504);
445
+ params.emissive = new Color(0x808080);
381
446
  }
382
447
  }
383
- if (attributes.Roughness && !maps.roughnessMap)
384
- params.roughness = attributes.Roughness.value;
385
- if (attributes.Metallic && !maps.metalnessMap)
386
- params.metalness = attributes.Metallic.value;
448
+
449
+ if (attributes.Roughness && !maps.roughnessMap) params.roughness = attributes.Roughness.value;
450
+ if (attributes.Metallic && !maps.metalnessMap) params.metalness = attributes.Metallic.value;
387
451
  }
452
+
388
453
  parsePhongAttributes(params, attributes, maps) {
389
- if (attributes.Diffuse)
390
- params.color.multiplyScalar(attributes.Diffuse.value);
454
+ if (attributes.Diffuse) params.color.multiplyScalar(attributes.Diffuse.value);
455
+
391
456
  if (attributes.Reflection) {
392
457
  params.reflectivity = attributes.Reflection.value;
393
- params.combine = THREE.AddOperation;
458
+ params.combine = AddOperation;
394
459
  }
460
+
395
461
  if (attributes.Luminosity) {
396
462
  params.emissiveIntensity = attributes.Luminosity.value;
463
+
397
464
  if (!maps.emissiveMap && !maps.map) {
398
465
  params.emissive = params.color;
399
466
  } else {
400
- params.emissive = new THREE.Color(8421504);
467
+ params.emissive = new Color(0x808080);
401
468
  }
402
- }
469
+ } // parse specular if there is no roughness - we will interpret the material as 'Phong' in this case
470
+
471
+
403
472
  if (!attributes.Roughness && attributes.Specular && !maps.specularMap) {
404
- if (attributes["Color Highlight"]) {
405
- params.specular = new THREE.Color().setScalar(attributes.Specular.value).lerp(params.color.clone().multiplyScalar(attributes.Specular.value), attributes["Color Highlight"].value);
473
+ if (attributes['Color Highlight']) {
474
+ params.specular = new Color().setScalar(attributes.Specular.value).lerp(params.color.clone().multiplyScalar(attributes.Specular.value), attributes['Color Highlight'].value);
406
475
  } else {
407
- params.specular = new THREE.Color().setScalar(attributes.Specular.value);
476
+ params.specular = new Color().setScalar(attributes.Specular.value);
408
477
  }
409
478
  }
479
+
410
480
  if (params.specular && attributes.Glossiness) {
411
481
  params.shininess = 7 + Math.pow(2, attributes.Glossiness.value * 12 + 2);
412
482
  }
413
483
  }
484
+
414
485
  parseEnvMap(connections, maps, attributes) {
415
486
  if (connections.envMap) {
416
487
  const envMap = this.loadTexture(connections.envMap);
488
+
417
489
  if (attributes.transparent && attributes.opacity < 0.999) {
418
- envMap.mapping = THREE.EquirectangularRefractionMapping;
419
- if (attributes.reflectivity !== void 0) {
490
+ envMap.mapping = EquirectangularRefractionMapping; // Reflectivity and refraction mapping don't work well together in Phong materials
491
+
492
+ if (attributes.reflectivity !== undefined) {
420
493
  delete attributes.reflectivity;
421
494
  delete attributes.combine;
422
495
  }
423
- if (attributes.metalness !== void 0) {
496
+
497
+ if (attributes.metalness !== undefined) {
424
498
  delete attributes.metalness;
425
499
  }
426
500
  } else {
427
- envMap.mapping = THREE.EquirectangularReflectionMapping;
501
+ envMap.mapping = EquirectangularReflectionMapping;
428
502
  }
503
+
429
504
  maps.envMap = envMap;
430
505
  }
431
- }
506
+ } // get texture defined at top level by its index
507
+
508
+
432
509
  getTexturePathByIndex(index) {
433
- let fileName = "";
434
- if (!_lwoTree.textures)
435
- return fileName;
436
- _lwoTree.textures.forEach(function(texture) {
437
- if (texture.index === index)
438
- fileName = texture.fileName;
510
+ let fileName = '';
511
+ if (!_lwoTree.textures) return fileName;
512
+
513
+ _lwoTree.textures.forEach(function (texture) {
514
+ if (texture.index === index) fileName = texture.fileName;
439
515
  });
516
+
440
517
  return fileName;
441
518
  }
519
+
442
520
  loadTexture(path) {
443
- if (!path)
444
- return null;
445
- const texture = this.textureLoader.load(path, void 0, void 0, function() {
446
- console.warn(
447
- "LWOLoader: non-standard resource hierarchy. Use `resourcePath` parameter to specify root content directory."
448
- );
521
+ if (!path) return null;
522
+ const texture = this.textureLoader.load(path, undefined, undefined, function () {
523
+ console.warn('LWOLoader: non-standard resource hierarchy. Use `resourcePath` parameter to specify root content directory.');
449
524
  });
450
525
  return texture;
451
- }
526
+ } // 0 = Reset, 1 = Repeat, 2 = Mirror, 3 = Edge
527
+
528
+
452
529
  getWrappingType(num) {
453
530
  switch (num) {
454
531
  case 0:
455
532
  console.warn('LWOLoader: "Reset" texture wrapping type is not supported in three.js');
456
- return THREE.ClampToEdgeWrapping;
533
+ return ClampToEdgeWrapping;
534
+
457
535
  case 1:
458
- return THREE.RepeatWrapping;
536
+ return RepeatWrapping;
537
+
459
538
  case 2:
460
- return THREE.MirroredRepeatWrapping;
539
+ return MirroredRepeatWrapping;
540
+
461
541
  case 3:
462
- return THREE.ClampToEdgeWrapping;
542
+ return ClampToEdgeWrapping;
463
543
  }
464
544
  }
545
+
465
546
  getMaterialType(nodeData) {
466
- if (nodeData.Clearcoat && nodeData.Clearcoat.value > 0)
467
- return THREE.MeshPhysicalMaterial;
468
- if (nodeData.Roughness)
469
- return THREE.MeshStandardMaterial;
470
- return THREE.MeshPhongMaterial;
547
+ if (nodeData.Clearcoat && nodeData.Clearcoat.value > 0) return MeshPhysicalMaterial;
548
+ if (nodeData.Roughness) return MeshStandardMaterial;
549
+ return MeshPhongMaterial;
471
550
  }
551
+
472
552
  }
553
+
473
554
  class GeometryParser {
474
555
  parse(geoData, layer) {
475
- const geometry = new THREE.BufferGeometry();
476
- geometry.setAttribute("position", new THREE.Float32BufferAttribute(geoData.points, 3));
556
+ const geometry = new BufferGeometry();
557
+ geometry.setAttribute('position', new Float32BufferAttribute(geoData.points, 3));
477
558
  const indices = this.splitIndices(geoData.vertexIndices, geoData.polygonDimensions);
478
559
  geometry.setIndex(indices);
479
560
  this.parseGroups(geometry, geoData);
480
561
  geometry.computeVertexNormals();
481
562
  this.parseUVs(geometry, layer, indices);
482
- this.parseMorphTargets(geometry, layer, indices);
483
- geometry.translate(-layer.pivot[0], -layer.pivot[1], -layer.pivot[2]);
563
+ this.parseMorphTargets(geometry, layer, indices); // TODO: z may need to be reversed to account for coordinate system change
564
+
565
+ geometry.translate(-layer.pivot[0], -layer.pivot[1], -layer.pivot[2]); // let userData = geometry.userData;
566
+ // geometry = geometry.toNonIndexed()
567
+ // geometry.userData = userData;
568
+
484
569
  return geometry;
485
- }
570
+ } // split quads into tris
571
+
572
+
486
573
  splitIndices(indices, polygonDimensions) {
487
574
  const remappedIndices = [];
488
575
  let i = 0;
489
- polygonDimensions.forEach(function(dim) {
576
+ polygonDimensions.forEach(function (dim) {
490
577
  if (dim < 4) {
491
- for (let k = 0; k < dim; k++)
492
- remappedIndices.push(indices[i + k]);
578
+ for (let k = 0; k < dim; k++) remappedIndices.push(indices[i + k]);
493
579
  } else if (dim === 4) {
494
- remappedIndices.push(
495
- indices[i],
496
- indices[i + 1],
497
- indices[i + 2],
498
- indices[i],
499
- indices[i + 2],
500
- indices[i + 3]
501
- );
580
+ remappedIndices.push(indices[i], indices[i + 1], indices[i + 2], indices[i], indices[i + 2], indices[i + 3]);
502
581
  } else if (dim > 4) {
503
582
  for (let k = 1; k < dim - 1; k++) {
504
583
  remappedIndices.push(indices[i], indices[i + k], indices[i + k + 1]);
505
584
  }
506
- console.warn("LWOLoader: polygons with greater than 4 sides are not supported");
585
+
586
+ console.warn('LWOLoader: polygons with greater than 4 sides are not supported');
507
587
  }
588
+
508
589
  i += dim;
509
590
  });
510
591
  return remappedIndices;
511
- }
592
+ } // NOTE: currently ignoring poly indices and assuming that they are intelligently ordered
593
+
594
+
512
595
  parseGroups(geometry, geoData) {
513
596
  const tags = _lwoTree.tags;
514
597
  const matNames = [];
515
598
  let elemSize = 3;
516
- if (geoData.type === "lines")
517
- elemSize = 2;
518
- if (geoData.type === "points")
519
- elemSize = 1;
599
+ if (geoData.type === 'lines') elemSize = 2;
600
+ if (geoData.type === 'points') elemSize = 1;
520
601
  const remappedIndices = this.splitMaterialIndices(geoData.polygonDimensions, geoData.materialIndices);
521
- let indexNum = 0;
522
- const indexPairs = {};
602
+ let indexNum = 0; // create new indices in numerical order
603
+
604
+ const indexPairs = {}; // original indices mapped to numerical indices
605
+
523
606
  let prevMaterialIndex;
524
607
  let materialIndex;
525
608
  let prevStart = 0;
526
609
  let currentCount = 0;
610
+
527
611
  for (let i = 0; i < remappedIndices.length; i += 2) {
528
612
  materialIndex = remappedIndices[i + 1];
529
- if (i === 0)
530
- matNames[indexNum] = tags[materialIndex];
531
- if (prevMaterialIndex === void 0)
532
- prevMaterialIndex = materialIndex;
613
+ if (i === 0) matNames[indexNum] = tags[materialIndex];
614
+ if (prevMaterialIndex === undefined) prevMaterialIndex = materialIndex;
615
+
533
616
  if (materialIndex !== prevMaterialIndex) {
534
617
  let currentIndex;
618
+
535
619
  if (indexPairs[tags[prevMaterialIndex]]) {
536
620
  currentIndex = indexPairs[tags[prevMaterialIndex]];
537
621
  } else {
@@ -540,15 +624,20 @@ class GeometryParser {
540
624
  matNames[indexNum] = tags[prevMaterialIndex];
541
625
  indexNum++;
542
626
  }
627
+
543
628
  geometry.addGroup(prevStart, currentCount, currentIndex);
544
629
  prevStart += currentCount;
545
630
  prevMaterialIndex = materialIndex;
546
631
  currentCount = 0;
547
632
  }
633
+
548
634
  currentCount += elemSize;
549
- }
635
+ } // the loop above doesn't add the last group, do that here.
636
+
637
+
550
638
  if (geometry.groups.length > 0) {
551
639
  let currentIndex;
640
+
552
641
  if (indexPairs[tags[materialIndex]]) {
553
642
  currentIndex = indexPairs[tags[materialIndex]];
554
643
  } else {
@@ -556,50 +645,69 @@ class GeometryParser {
556
645
  indexPairs[tags[materialIndex]] = indexNum;
557
646
  matNames[indexNum] = tags[materialIndex];
558
647
  }
648
+
559
649
  geometry.addGroup(prevStart, currentCount, currentIndex);
560
- }
650
+ } // Mat names from TAGS chunk, used to build up an array of materials for this geometry
651
+
652
+
561
653
  geometry.userData.matNames = matNames;
562
654
  }
655
+
563
656
  splitMaterialIndices(polygonDimensions, indices) {
564
657
  const remappedIndices = [];
565
- polygonDimensions.forEach(function(dim, i) {
658
+ polygonDimensions.forEach(function (dim, i) {
566
659
  if (dim <= 3) {
567
660
  remappedIndices.push(indices[i * 2], indices[i * 2 + 1]);
568
661
  } else if (dim === 4) {
569
662
  remappedIndices.push(indices[i * 2], indices[i * 2 + 1], indices[i * 2], indices[i * 2 + 1]);
570
663
  } else {
664
+ // ignore > 4 for now
571
665
  for (let k = 0; k < dim - 2; k++) {
572
666
  remappedIndices.push(indices[i * 2], indices[i * 2 + 1]);
573
667
  }
574
668
  }
575
669
  });
576
670
  return remappedIndices;
577
- }
671
+ } // UV maps:
672
+ // 1: are defined via index into an array of points, not into a geometry
673
+ // - the geometry is also defined by an index into this array, but the indexes may not match
674
+ // 2: there can be any number of UV maps for a single geometry. Here these are combined,
675
+ // with preference given to the first map encountered
676
+ // 3: UV maps can be partial - that is, defined for only a part of the geometry
677
+ // 4: UV maps can be VMAP or VMAD (discontinuous, to allow for seams). In practice, most
678
+ // UV maps are defined as partially VMAP and partially VMAD
679
+ // VMADs are currently not supported
680
+
681
+
578
682
  parseUVs(geometry, layer) {
579
- const remappedUVs = Array.from(Array(geometry.attributes.position.count * 2), function() {
683
+ // start by creating a UV map set to zero for the whole geometry
684
+ const remappedUVs = Array.from(Array(geometry.attributes.position.count * 2), function () {
580
685
  return 0;
581
686
  });
687
+
582
688
  for (const name in layer.uvs) {
583
689
  const uvs = layer.uvs[name].uvs;
584
690
  const uvIndices = layer.uvs[name].uvIndices;
585
- uvIndices.forEach(function(i, j) {
691
+ uvIndices.forEach(function (i, j) {
586
692
  remappedUVs[i * 2] = uvs[j * 2];
587
693
  remappedUVs[i * 2 + 1] = uvs[j * 2 + 1];
588
694
  });
589
695
  }
590
- geometry.setAttribute("uv", new THREE.Float32BufferAttribute(remappedUVs, 2));
696
+
697
+ geometry.setAttribute('uv', new Float32BufferAttribute(remappedUVs, 2));
591
698
  }
699
+
592
700
  parseMorphTargets(geometry, layer) {
593
701
  let num = 0;
702
+
594
703
  for (const name in layer.morphTargets) {
595
704
  const remappedPoints = geometry.attributes.position.array.slice();
596
- if (!geometry.morphAttributes.position)
597
- geometry.morphAttributes.position = [];
705
+ if (!geometry.morphAttributes.position) geometry.morphAttributes.position = [];
598
706
  const morphPoints = layer.morphTargets[name].points;
599
707
  const morphIndices = layer.morphTargets[name].indices;
600
708
  const type = layer.morphTargets[name].type;
601
- morphIndices.forEach(function(i, j) {
602
- if (type === "relative") {
709
+ morphIndices.forEach(function (i, j) {
710
+ if (type === 'relative') {
603
711
  remappedPoints[i * 3] += morphPoints[j * 3];
604
712
  remappedPoints[i * 3 + 1] += morphPoints[j * 3 + 1];
605
713
  remappedPoints[i * 3 + 2] += morphPoints[j * 3 + 2];
@@ -609,17 +717,21 @@ class GeometryParser {
609
717
  remappedPoints[i * 3 + 2] = morphPoints[j * 3 + 2];
610
718
  }
611
719
  });
612
- geometry.morphAttributes.position[num] = new THREE.Float32BufferAttribute(remappedPoints, 3);
720
+ geometry.morphAttributes.position[num] = new Float32BufferAttribute(remappedPoints, 3);
613
721
  geometry.morphAttributes.position[num].name = name;
614
722
  num++;
615
723
  }
724
+
616
725
  geometry.morphTargetsRelative = false;
617
726
  }
618
- }
727
+
728
+ } // ************** UTILITY FUNCTIONS **************
729
+
730
+
619
731
  function extractParentUrl(url, dir) {
620
732
  const index = url.indexOf(dir);
621
- if (index === -1)
622
- return "./";
733
+ if (index === -1) return './';
623
734
  return url.substr(0, index);
624
735
  }
625
- exports.LWOLoader = LWOLoader;
736
+
737
+ export { LWOLoader };