three-stdlib 2.16.0 → 2.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1219) 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 +143 -64
  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.d.ts +5 -4
  25. package/controls/FlyControls.js +160 -90
  26. package/controls/OrbitControls.cjs.js +1 -0
  27. package/controls/OrbitControls.js +481 -232
  28. package/controls/PointerLockControls.cjs.js +1 -0
  29. package/controls/PointerLockControls.js +99 -63
  30. package/controls/TrackballControls.cjs.js +1 -0
  31. package/controls/TrackballControls.js +383 -211
  32. package/controls/TransformControls.cjs.js +1 -0
  33. package/controls/TransformControls.js +782 -575
  34. package/controls/experimental/CameraControls.cjs.js +1 -0
  35. package/controls/experimental/CameraControls.js +609 -329
  36. package/csm/CSM.cjs.js +1 -0
  37. package/csm/CSM.js +108 -47
  38. package/csm/CSMFrustum.cjs.js +1 -0
  39. package/csm/CSMFrustum.js +29 -14
  40. package/csm/CSMHelper.cjs.js +1 -0
  41. package/csm/CSMHelper.js +34 -20
  42. package/csm/CSMShader.cjs.js +1 -0
  43. package/csm/CSMShader.js +11 -7
  44. package/curves/CurveExtras.cjs.js +1 -0
  45. package/curves/CurveExtras.js +115 -73
  46. package/curves/NURBSCurve.cjs.js +1 -0
  47. package/curves/NURBSCurve.js +43 -15
  48. package/curves/NURBSSurface.cjs.js +1 -0
  49. package/curves/NURBSSurface.js +27 -11
  50. package/curves/NURBSUtils.cjs.js +1 -0
  51. package/curves/NURBSUtils.js +203 -54
  52. package/custom.d.cjs.js +1 -0
  53. package/{shaders/types.mjs → custom.d.js} +0 -0
  54. package/deprecated/Geometry.cjs.js +1 -0
  55. package/deprecated/Geometry.js +486 -191
  56. package/effects/AnaglyphEffect.cjs.js +1 -0
  57. package/effects/AnaglyphEffect.js +60 -95
  58. package/effects/AsciiEffect.cjs.js +1 -0
  59. package/effects/AsciiEffect.js +110 -80
  60. package/effects/OutlineEffect.cjs.js +1 -0
  61. package/effects/OutlineEffect.js +204 -121
  62. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  63. package/effects/ParallaxBarrierEffect.js +38 -39
  64. package/effects/PeppersGhostEffect.cjs.js +1 -0
  65. package/effects/PeppersGhostEffect.js +68 -19
  66. package/effects/StereoEffect.cjs.js +1 -0
  67. package/effects/StereoEffect.js +16 -12
  68. package/environments/RoomEnvironment.cjs.js +1 -0
  69. package/environments/RoomEnvironment.js +47 -52
  70. package/exporters/ColladaExporter.cjs.js +1 -0
  71. package/exporters/ColladaExporter.js +241 -115
  72. package/exporters/DRACOExporter.cjs.js +1 -0
  73. package/exporters/DRACOExporter.js +121 -67
  74. package/exporters/GLTFExporter.cjs.js +1 -0
  75. package/exporters/GLTFExporter.js +1014 -463
  76. package/exporters/MMDExporter.cjs.js +1 -0
  77. package/exporters/MMDExporter.js +102 -44
  78. package/exporters/OBJExporter.cjs.js +1 -0
  79. package/exporters/OBJExporter.js +140 -78
  80. package/exporters/PLYExporter.cjs.js +1 -0
  81. package/exporters/PLYExporter.js +154 -93
  82. package/exporters/STLExporter.cjs.js +1 -0
  83. package/exporters/STLExporter.js +81 -30
  84. package/exporters/USDZExporter.cjs.js +1 -0
  85. package/exporters/USDZExporter.js +144 -84
  86. package/geometries/BoxLineGeometry.cjs.js +1 -0
  87. package/geometries/BoxLineGeometry.js +14 -7
  88. package/geometries/ConvexGeometry.cjs.js +1 -0
  89. package/geometries/ConvexGeometry.js +23 -14
  90. package/geometries/DecalGeometry.cjs.js +1 -0
  91. package/geometries/DecalGeometry.js +162 -108
  92. package/geometries/LightningStrike.cjs.js +1 -0
  93. package/geometries/LightningStrike.js +294 -101
  94. package/geometries/ParametricGeometries.cjs.js +1 -0
  95. package/geometries/ParametricGeometries.js +76 -26
  96. package/geometries/ParametricGeometry.cjs.js +1 -0
  97. package/geometries/ParametricGeometry.js +48 -24
  98. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  99. package/geometries/RoundedBoxGeometry.js +64 -33
  100. package/geometries/TeapotGeometry.cjs.js +1 -0
  101. package/geometries/TeapotGeometry.js +174 -1434
  102. package/geometries/TextGeometry.cjs.js +1 -0
  103. package/geometries/TextGeometry.js +17 -9
  104. package/helpers/LightProbeHelper.cjs.js +1 -0
  105. package/helpers/LightProbeHelper.js +21 -53
  106. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  107. package/helpers/PositionalAudioHelper.js +30 -23
  108. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  109. package/helpers/RectAreaLightHelper.js +33 -17
  110. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  111. package/helpers/VertexNormalsHelper.js +41 -20
  112. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  113. package/helpers/VertexTangentsHelper.js +36 -18
  114. package/index.cjs.js +1 -0
  115. package/index.js +333 -969
  116. package/interactive/InteractiveGroup.cjs.js +1 -0
  117. package/interactive/InteractiveGroup.d.ts +5 -0
  118. package/interactive/InteractiveGroup.js +87 -0
  119. package/interactive/SelectionBox.cjs.js +1 -0
  120. package/interactive/SelectionBox.js +46 -31
  121. package/interactive/SelectionHelper.cjs.js +1 -0
  122. package/interactive/SelectionHelper.js +21 -16
  123. package/libs/MeshoptDecoder.cjs.js +1 -0
  124. package/libs/MeshoptDecoder.js +58 -147
  125. package/libs/MotionControllers.cjs.js +1 -0
  126. package/libs/MotionControllers.js +208 -66
  127. package/lights/LightProbeGenerator.cjs.js +1 -0
  128. package/lights/LightProbeGenerator.js +96 -40
  129. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  130. package/lights/RectAreaLightUniformsLib.js +9 -32842
  131. package/lines/Line2.cjs.js +1 -0
  132. package/lines/Line2.js +12 -9
  133. package/lines/LineGeometry.cjs.js +1 -0
  134. package/lines/LineGeometry.js +19 -7
  135. package/lines/LineMaterial.cjs.js +1 -0
  136. package/lines/LineMaterial.js +89 -51
  137. package/lines/LineSegments2.cjs.js +1 -0
  138. package/lines/LineSegments2.js +165 -56
  139. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  140. package/lines/LineSegmentsGeometry.js +71 -29
  141. package/lines/Wireframe.cjs.js +1 -0
  142. package/lines/Wireframe.js +29 -15
  143. package/lines/WireframeGeometry2.cjs.js +1 -0
  144. package/lines/WireframeGeometry2.js +9 -8
  145. package/loaders/3DMLoader.cjs.js +1 -0
  146. package/loaders/3DMLoader.js +469 -234
  147. package/loaders/3MFLoader.cjs.js +1 -0
  148. package/loaders/3MFLoader.js +555 -340
  149. package/loaders/AMFLoader.cjs.js +1 -0
  150. package/loaders/AMFLoader.js +219 -114
  151. package/loaders/AssimpLoader.cjs.js +1 -0
  152. package/loaders/AssimpLoader.js +725 -328
  153. package/loaders/BVHLoader.cjs.js +1 -0
  154. package/loaders/BVHLoader.js +200 -94
  155. package/loaders/BasisTextureLoader.cjs.js +1 -0
  156. package/loaders/BasisTextureLoader.js +357 -229
  157. package/loaders/ColladaLoader.cjs.js +1 -0
  158. package/loaders/ColladaLoader.js +1522 -932
  159. package/loaders/DDSLoader.cjs.js +1 -0
  160. package/loaders/DDSLoader.js +108 -42
  161. package/loaders/DRACOLoader.cjs.js +1 -0
  162. package/loaders/DRACOLoader.js +210 -103
  163. package/loaders/EXRLoader.cjs.js +1 -0
  164. package/loaders/EXRLoader.js +809 -461
  165. package/loaders/FBXLoader.cjs.js +1 -0
  166. package/loaders/FBXLoader.js +1397 -842
  167. package/loaders/FontLoader.cjs.js +1 -0
  168. package/loaders/FontLoader.js +66 -33
  169. package/loaders/GCodeLoader.cjs.js +1 -0
  170. package/loaders/GCodeLoader.js +111 -63
  171. package/loaders/GLTFLoader.cjs.js +1 -0
  172. package/loaders/GLTFLoader.js +1484 -771
  173. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  174. package/loaders/HDRCubeTextureLoader.js +50 -45
  175. package/loaders/KMZLoader.cjs.js +1 -0
  176. package/loaders/KMZLoader.js +55 -42
  177. package/loaders/KTX2Loader.cjs.js +1 -0
  178. package/loaders/KTX2Loader.js +362 -229
  179. package/loaders/KTXLoader.cjs.js +1 -0
  180. package/loaders/KTXLoader.js +99 -37
  181. package/loaders/LDrawLoader.cjs.js +1 -0
  182. package/loaders/LDrawLoader.js +746 -313
  183. package/loaders/LUT3dlLoader.cjs.js +1 -0
  184. package/loaders/LUT3dlLoader.js +62 -50
  185. package/loaders/LUTCubeLoader.cjs.js +1 -0
  186. package/loaders/LUTCubeLoader.js +56 -45
  187. package/loaders/LWOLoader.cjs.js +1 -0
  188. package/loaders/LWOLoader.js +339 -227
  189. package/loaders/LottieLoader.cjs.js +1 -0
  190. package/loaders/LottieLoader.js +38 -36
  191. package/loaders/MD2Loader.cjs.js +1 -0
  192. package/loaders/MD2Loader.js +91 -248
  193. package/loaders/MDDLoader.cjs.js +1 -0
  194. package/loaders/MDDLoader.js +45 -25
  195. package/loaders/MMDLoader.cjs.js +1 -0
  196. package/loaders/MMDLoader.js +795 -359
  197. package/loaders/MTLLoader.cjs.js +1 -0
  198. package/loaders/MTLLoader.js +201 -91
  199. package/loaders/NRRDLoader.cjs.js +1 -0
  200. package/loaders/NRRDLoader.js +263 -182
  201. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  202. package/loaders/NodeMaterialLoader.js +14 -121
  203. package/loaders/OBJLoader.cjs.js +1 -0
  204. package/loaders/OBJLoader.js +283 -161
  205. package/loaders/PCDLoader.cjs.js +1 -0
  206. package/loaders/PCDLoader.js +164 -145
  207. package/loaders/PDBLoader.cjs.js +1 -0
  208. package/loaders/PDBLoader.js +63 -45
  209. package/loaders/PLYLoader.cjs.js +1 -0
  210. package/loaders/PLYLoader.js +203 -106
  211. package/loaders/PRWMLoader.cjs.js +1 -0
  212. package/loaders/PRWMLoader.js +110 -73
  213. package/loaders/PVRLoader.cjs.js +1 -0
  214. package/loaders/PVRLoader.js +93 -32
  215. package/loaders/RGBELoader.cjs.js +1 -0
  216. package/loaders/RGBELoader.js +233 -96
  217. package/loaders/RGBMLoader.cjs.js +1 -0
  218. package/loaders/RGBMLoader.js +514 -344
  219. package/loaders/STLLoader.cjs.js +1 -0
  220. package/loaders/STLLoader.js +165 -59
  221. package/loaders/SVGLoader.cjs.js +1 -0
  222. package/loaders/SVGLoader.js +851 -481
  223. package/loaders/TDSLoader.cjs.js +1 -0
  224. package/loaders/TDSLoader.js +527 -137
  225. package/loaders/TGALoader.cjs.js +1 -0
  226. package/loaders/TGALoader.js +205 -94
  227. package/loaders/TTFLoader.cjs.js +1 -0
  228. package/loaders/TTFLoader.js +79 -58
  229. package/loaders/TiltLoader.cjs.js +1 -0
  230. package/loaders/TiltLoader.js +167 -129
  231. package/loaders/VOXLoader.cjs.js +1 -0
  232. package/loaders/VOXLoader.js +84 -320
  233. package/loaders/VRMLLoader.cjs.js +1 -0
  234. package/loaders/VRMLLoader.js +1268 -786
  235. package/loaders/VRMLoader.cjs.js +1 -0
  236. package/loaders/VRMLoader.js +31 -23
  237. package/loaders/VTKLoader.cjs.js +1 -0
  238. package/loaders/VTKLoader.js +407 -219
  239. package/loaders/XLoader.cjs.js +1 -0
  240. package/loaders/XLoader.js +1259 -1083
  241. package/loaders/XYZLoader.cjs.js +1 -0
  242. package/loaders/XYZLoader.js +34 -28
  243. package/loaders/lwo/IFFParser.cjs.js +1 -0
  244. package/loaders/lwo/IFFParser.js +492 -238
  245. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  246. package/loaders/lwo/LWO2Parser.js +279 -176
  247. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  248. package/loaders/lwo/LWO3Parser.js +247 -160
  249. package/math/Capsule.cjs.js +1 -0
  250. package/math/Capsule.js +43 -56
  251. package/math/ColorConverter.cjs.js +1 -0
  252. package/math/ColorConverter.js +32 -18
  253. package/math/ConvexHull.cjs.js +1 -0
  254. package/math/ConvexHull.js +357 -97
  255. package/math/ImprovedNoise.cjs.js +1 -0
  256. package/math/ImprovedNoise.js +32 -282
  257. package/math/Lut.cjs.js +1 -0
  258. package/math/Lut.js +35 -51
  259. package/math/MeshSurfaceSampler.cjs.js +1 -0
  260. package/math/MeshSurfaceSampler.js +68 -25
  261. package/math/OBB.cjs.js +1 -0
  262. package/math/OBB.js +152 -91
  263. package/math/Octree.cjs.js +1 -0
  264. package/math/Octree.js +139 -76
  265. package/math/SimplexNoise.cjs.js +1 -0
  266. package/math/SimplexNoise.js +238 -217
  267. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  268. package/misc/ConvexObjectBreaker.js +185 -79
  269. package/misc/GPUComputationRenderer.cjs.js +1 -0
  270. package/misc/GPUComputationRenderer.js +194 -69
  271. package/misc/Gyroscope.cjs.js +1 -0
  272. package/misc/Gyroscope.js +22 -16
  273. package/misc/MD2Character.cjs.js +1 -0
  274. package/misc/MD2Character.js +74 -52
  275. package/misc/MD2CharacterComplex.cjs.js +1 -0
  276. package/misc/MD2CharacterComplex.js +163 -112
  277. package/misc/MorphAnimMesh.cjs.js +1 -0
  278. package/misc/MorphAnimMesh.js +28 -20
  279. package/misc/MorphBlendMesh.cjs.js +1 -0
  280. package/misc/MorphBlendMesh.js +69 -45
  281. package/misc/ProgressiveLightmap.cjs.js +1 -0
  282. package/misc/ProgressiveLightmap.js +187 -70
  283. package/misc/RollerCoaster.cjs.js +1 -0
  284. package/misc/RollerCoaster.js +135 -106
  285. package/misc/TubePainter.cjs.js +1 -0
  286. package/misc/TubePainter.js +92 -74
  287. package/misc/Volume.cjs.js +1 -0
  288. package/misc/Volume.js +270 -108
  289. package/misc/VolumeSlice.cjs.js +1 -0
  290. package/misc/VolumeSlice.js +122 -34
  291. package/misc/WebGL.cjs.js +1 -0
  292. package/misc/WebGL.js +34 -37
  293. package/modifiers/CurveModifier.cjs.js +1 -0
  294. package/modifiers/CurveModifier.js +151 -46
  295. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  296. package/modifiers/EdgeSplitModifier.js +90 -46
  297. package/modifiers/SimplifyModifier.cjs.js +1 -0
  298. package/modifiers/SimplifyModifier.js +202 -77
  299. package/modifiers/TessellateModifier.cjs.js +1 -0
  300. package/modifiers/TessellateModifier.js +90 -65
  301. package/nodes/Nodes.cjs.js +1 -0
  302. package/nodes/Nodes.js +140 -274
  303. package/nodes/ShaderNode.cjs.js +1 -0
  304. package/nodes/ShaderNode.js +196 -296
  305. package/nodes/accessors/BufferNode.cjs.js +1 -0
  306. package/nodes/accessors/BufferNode.js +8 -4
  307. package/nodes/accessors/CameraNode.cjs.js +1 -0
  308. package/nodes/accessors/CameraNode.js +25 -20
  309. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  310. package/nodes/accessors/CubeTextureNode.js +26 -14
  311. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  312. package/nodes/accessors/MaterialNode.js +53 -43
  313. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  314. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  315. package/nodes/accessors/ModelNode.cjs.js +1 -0
  316. package/nodes/accessors/ModelNode.js +5 -3
  317. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  318. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  319. package/nodes/accessors/NormalNode.cjs.js +1 -0
  320. package/nodes/accessors/NormalNode.js +39 -40
  321. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  322. package/nodes/accessors/Object3DNode.js +50 -40
  323. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  324. package/nodes/accessors/PointUVNode.js +9 -5
  325. package/nodes/accessors/PositionNode.cjs.js +1 -0
  326. package/nodes/accessors/PositionNode.js +41 -42
  327. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  328. package/nodes/accessors/ReferenceNode.js +17 -10
  329. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  330. package/nodes/accessors/ReflectNode.js +26 -23
  331. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  332. package/nodes/accessors/SkinningNode.js +48 -46
  333. package/nodes/accessors/TextureNode.cjs.js +1 -0
  334. package/nodes/accessors/TextureNode.js +29 -14
  335. package/nodes/accessors/UVNode.cjs.js +1 -0
  336. package/nodes/accessors/UVNode.js +11 -5
  337. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  338. package/nodes/core/ArrayUniformNode.js +7 -3
  339. package/nodes/core/AttributeNode.cjs.js +1 -0
  340. package/nodes/core/AttributeNode.js +12 -5
  341. package/nodes/core/BypassNode.cjs.js +1 -0
  342. package/nodes/core/BypassNode.js +12 -5
  343. package/nodes/core/CodeNode.cjs.js +1 -0
  344. package/nodes/core/CodeNode.js +12 -4
  345. package/nodes/core/ConstNode.cjs.js +1 -0
  346. package/nodes/core/ConstNode.js +7 -3
  347. package/nodes/core/ContextNode.cjs.js +1 -0
  348. package/nodes/core/ContextNode.js +8 -3
  349. package/nodes/core/ExpressionNode.cjs.js +1 -0
  350. package/nodes/core/ExpressionNode.js +9 -5
  351. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  352. package/nodes/core/FunctionCallNode.js +15 -6
  353. package/nodes/core/FunctionNode.cjs.js +1 -0
  354. package/nodes/core/FunctionNode.js +25 -10
  355. package/nodes/core/InputNode.cjs.js +1 -0
  356. package/nodes/core/InputNode.js +23 -12
  357. package/nodes/core/Node.cjs.js +1 -0
  358. package/nodes/core/Node.js +75 -35
  359. package/nodes/core/NodeAttribute.cjs.js +1 -0
  360. package/nodes/core/NodeAttribute.js +4 -2
  361. package/nodes/core/NodeBuilder.cjs.js +1 -0
  362. package/nodes/core/NodeBuilder.js +224 -110
  363. package/nodes/core/NodeCode.cjs.js +1 -0
  364. package/nodes/core/NodeCode.js +7 -4
  365. package/nodes/core/NodeFrame.cjs.js +1 -0
  366. package/nodes/core/NodeFrame.js +12 -9
  367. package/nodes/core/NodeFunction.cjs.js +1 -0
  368. package/nodes/core/NodeFunction.js +17 -0
  369. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  370. package/nodes/core/NodeFunctionInput.js +5 -3
  371. package/nodes/core/NodeKeywords.cjs.js +1 -0
  372. package/nodes/core/NodeKeywords.js +16 -5
  373. package/nodes/core/NodeParser.cjs.js +1 -0
  374. package/nodes/core/NodeParser.js +8 -0
  375. package/nodes/core/NodeUniform.cjs.js +1 -0
  376. package/nodes/core/NodeUniform.js +7 -3
  377. package/nodes/core/NodeUtils.cjs.js +1 -0
  378. package/nodes/core/NodeUtils.js +43 -39
  379. package/nodes/core/NodeVar.cjs.js +1 -0
  380. package/nodes/core/NodeVar.js +4 -2
  381. package/nodes/core/NodeVary.cjs.js +1 -0
  382. package/nodes/core/NodeVary.js +4 -2
  383. package/nodes/core/PropertyNode.cjs.js +1 -0
  384. package/nodes/core/PropertyNode.js +10 -4
  385. package/nodes/core/TempNode.cjs.js +1 -0
  386. package/nodes/core/TempNode.js +11 -5
  387. package/nodes/core/UniformNode.cjs.js +1 -0
  388. package/nodes/core/UniformNode.js +10 -4
  389. package/nodes/core/VarNode.cjs.js +1 -0
  390. package/nodes/core/VarNode.js +11 -3
  391. package/nodes/core/VaryNode.cjs.js +1 -0
  392. package/nodes/core/VaryNode.js +15 -6
  393. package/nodes/core/constants.cjs.js +1 -0
  394. package/nodes/core/constants.js +7 -20
  395. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  396. package/nodes/display/ColorSpaceNode.js +38 -34
  397. package/nodes/display/NormalMapNode.cjs.js +1 -0
  398. package/nodes/display/NormalMapNode.js +53 -35
  399. package/nodes/fog/FogNode.cjs.js +1 -0
  400. package/nodes/fog/FogNode.js +9 -5
  401. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  402. package/nodes/fog/FogRangeNode.js +9 -5
  403. package/nodes/functions/BSDFs.cjs.js +1 -0
  404. package/nodes/functions/BSDFs.js +118 -61
  405. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  406. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  407. package/nodes/lights/LightContextNode.cjs.js +1 -0
  408. package/nodes/lights/LightContextNode.js +23 -14
  409. package/nodes/lights/LightNode.cjs.js +1 -0
  410. package/nodes/lights/LightNode.js +31 -27
  411. package/nodes/lights/LightsNode.cjs.js +1 -0
  412. package/nodes/lights/LightsNode.js +28 -9
  413. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  414. package/nodes/loaders/NodeLoader.js +42 -27
  415. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  416. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  417. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  418. package/nodes/loaders/NodeObjectLoader.js +19 -9
  419. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  420. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  421. package/nodes/materials/Materials.cjs.js +1 -0
  422. package/nodes/materials/Materials.js +17 -14
  423. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  424. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  425. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  426. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  427. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  428. package/nodes/materials/NodeMaterial.js +36 -20
  429. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  430. package/nodes/materials/PointsNodeMaterial.js +10 -5
  431. package/nodes/math/CondNode.cjs.js +1 -0
  432. package/nodes/math/CondNode.js +23 -11
  433. package/nodes/math/MathNode.cjs.js +1 -0
  434. package/nodes/math/MathNode.js +142 -98
  435. package/nodes/math/OperatorNode.cjs.js +1 -0
  436. package/nodes/math/OperatorNode.js +46 -24
  437. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  438. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  439. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  440. package/nodes/parsers/GLSLNodeParser.js +13 -0
  441. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  442. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  443. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  444. package/nodes/parsers/WGSLNodeParser.js +13 -0
  445. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  446. package/nodes/procedural/CheckerNode.js +19 -13
  447. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  448. package/nodes/utils/ArrayElementNode.js +8 -4
  449. package/nodes/utils/ConvertNode.cjs.js +1 -0
  450. package/nodes/utils/ConvertNode.js +8 -3
  451. package/nodes/utils/JoinNode.cjs.js +1 -0
  452. package/nodes/utils/JoinNode.js +11 -7
  453. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  454. package/nodes/utils/MatcapUVNode.js +11 -8
  455. package/nodes/utils/OscNode.cjs.js +1 -0
  456. package/nodes/utils/OscNode.js +33 -27
  457. package/nodes/utils/SplitNode.cjs.js +1 -0
  458. package/nodes/utils/SplitNode.js +20 -6
  459. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  460. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  461. package/nodes/utils/TimerNode.cjs.js +1 -0
  462. package/nodes/utils/TimerNode.js +24 -20
  463. package/objects/GroundProjectedEnv.cjs.js +1 -0
  464. package/objects/GroundProjectedEnv.js +37 -22
  465. package/objects/Lensflare.cjs.js +1 -0
  466. package/objects/Lensflare.js +156 -86
  467. package/objects/LightningStorm.cjs.js +1 -0
  468. package/objects/LightningStorm.js +102 -38
  469. package/objects/MarchingCubes.cjs.js +1 -0
  470. package/objects/MarchingCubes.js +303 -150
  471. package/objects/Reflector.cjs.js +1 -0
  472. package/objects/Reflector.js +72 -50
  473. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  474. package/objects/ReflectorForSSRPass.js +131 -80
  475. package/objects/ReflectorRTT.cjs.js +1 -0
  476. package/objects/ReflectorRTT.js +7 -6
  477. package/objects/Refractor.cjs.js +1 -0
  478. package/objects/Refractor.js +106 -64
  479. package/objects/ShadowMesh.cjs.js +1 -0
  480. package/objects/ShadowMesh.js +17 -8
  481. package/objects/Sky.cjs.js +1 -0
  482. package/objects/Sky.js +80 -119
  483. package/objects/Water.cjs.js +1 -0
  484. package/objects/Water.js +127 -83
  485. package/objects/Water2.cjs.js +1 -0
  486. package/objects/Water2.js +108 -72
  487. package/offscreen/jank.cjs.js +1 -0
  488. package/offscreen/jank.js +14 -10
  489. package/offscreen/offscreen.cjs.js +1 -0
  490. package/offscreen/offscreen.js +5 -4
  491. package/offscreen/scene.cjs.js +1 -0
  492. package/offscreen/scene.js +48 -45
  493. package/package.json +3 -3
  494. package/physics/AmmoPhysics.cjs.js +1 -0
  495. package/physics/AmmoPhysics.js +71 -30
  496. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  497. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  498. package/postprocessing/AfterimagePass.cjs.js +1 -0
  499. package/postprocessing/AfterimagePass.js +49 -28
  500. package/postprocessing/BloomPass.cjs.js +1 -0
  501. package/postprocessing/BloomPass.js +69 -43
  502. package/postprocessing/BokehPass.cjs.js +1 -0
  503. package/postprocessing/BokehPass.js +69 -39
  504. package/postprocessing/ClearPass.cjs.js +1 -0
  505. package/postprocessing/ClearPass.js +25 -10
  506. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  507. package/postprocessing/CubeTexturePass.js +27 -28
  508. package/postprocessing/DotScreenPass.cjs.js +1 -0
  509. package/postprocessing/DotScreenPass.js +32 -24
  510. package/postprocessing/EffectComposer.cjs.js +1 -0
  511. package/postprocessing/EffectComposer.js +86 -39
  512. package/postprocessing/FilmPass.cjs.js +1 -0
  513. package/postprocessing/FilmPass.js +30 -25
  514. package/postprocessing/GlitchPass.cjs.js +1 -0
  515. package/postprocessing/GlitchPass.js +61 -38
  516. package/postprocessing/HalftonePass.cjs.js +1 -0
  517. package/postprocessing/HalftonePass.js +39 -19
  518. package/postprocessing/LUTPass.cjs.js +1 -0
  519. package/postprocessing/LUTPass.js +38 -13
  520. package/postprocessing/MaskPass.cjs.js +1 -0
  521. package/postprocessing/MaskPass.js +38 -19
  522. package/postprocessing/OutlinePass.cjs.js +1 -0
  523. package/postprocessing/OutlinePass.js +277 -135
  524. package/postprocessing/Pass.cjs.js +1 -0
  525. package/postprocessing/Pass.js +44 -20
  526. package/postprocessing/RenderPass.cjs.js +1 -0
  527. package/postprocessing/RenderPass.js +36 -13
  528. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  529. package/postprocessing/RenderPixelatedPass.js +58 -44
  530. package/postprocessing/SAOPass.cjs.js +1 -0
  531. package/postprocessing/SAOPass.js +189 -154
  532. package/postprocessing/SMAAPass.cjs.js +1 -0
  533. package/postprocessing/SMAAPass.js +84 -64
  534. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  535. package/postprocessing/SSAARenderPass.js +69 -121
  536. package/postprocessing/SSAOPass.cjs.js +1 -0
  537. package/postprocessing/SSAOPass.js +172 -123
  538. package/postprocessing/SSRPass.cjs.js +1 -0
  539. package/postprocessing/SSRPass.js +280 -211
  540. package/postprocessing/SavePass.cjs.js +1 -0
  541. package/postprocessing/SavePass.js +25 -20
  542. package/postprocessing/ShaderPass.cjs.js +1 -0
  543. package/postprocessing/ShaderPass.js +30 -14
  544. package/postprocessing/TAARenderPass.cjs.js +1 -0
  545. package/postprocessing/TAARenderPass.js +61 -42
  546. package/postprocessing/TexturePass.cjs.js +1 -0
  547. package/postprocessing/TexturePass.js +22 -21
  548. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  549. package/postprocessing/UnrealBloomPass.js +213 -105
  550. package/renderers/CSS2DRenderer.cjs.js +1 -0
  551. package/renderers/CSS2DRenderer.js +56 -44
  552. package/renderers/CSS3DRenderer.cjs.js +1 -0
  553. package/renderers/CSS3DRenderer.js +86 -53
  554. package/renderers/Projector.cjs.js +1 -0
  555. package/renderers/Projector.js +274 -107
  556. package/renderers/SVGRenderer.cjs.js +1 -0
  557. package/renderers/SVGRenderer.js +182 -72
  558. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  559. package/renderers/nodes/accessors/CameraNode.js +40 -29
  560. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  561. package/renderers/nodes/accessors/ModelNode.js +37 -28
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  563. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  564. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  565. package/renderers/nodes/accessors/NormalNode.js +45 -35
  566. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  567. package/renderers/nodes/accessors/PositionNode.js +19 -18
  568. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  569. package/renderers/nodes/accessors/UVNode.js +10 -5
  570. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  571. package/renderers/nodes/core/AttributeNode.js +14 -5
  572. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  573. package/renderers/nodes/core/InputNode.js +14 -4
  574. package/renderers/nodes/core/Node.cjs.js +1 -0
  575. package/renderers/nodes/core/Node.js +17 -7
  576. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  577. package/renderers/nodes/core/NodeAttribute.js +6 -3
  578. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  579. package/renderers/nodes/core/NodeBuilder.js +154 -87
  580. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  581. package/renderers/nodes/core/NodeFrame.js +12 -9
  582. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  583. package/renderers/nodes/core/NodeSlot.js +3 -2
  584. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  585. package/renderers/nodes/core/NodeUniform.js +9 -4
  586. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  587. package/renderers/nodes/core/NodeVary.js +7 -4
  588. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  589. package/renderers/nodes/core/VaryNode.js +12 -6
  590. package/renderers/nodes/core/constants.cjs.js +1 -0
  591. package/renderers/nodes/core/constants.js +13 -16
  592. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  593. package/renderers/nodes/inputs/ColorNode.js +11 -5
  594. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  595. package/renderers/nodes/inputs/FloatNode.js +11 -5
  596. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  597. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  598. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  599. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  600. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  601. package/renderers/nodes/inputs/TextureNode.js +15 -7
  602. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  603. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  604. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  605. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  606. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  607. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  608. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  609. package/renderers/nodes/math/MathNode.js +30 -20
  610. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  611. package/renderers/nodes/math/OperatorNode.js +20 -4
  612. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  613. package/renderers/nodes/utils/SwitchNode.js +9 -4
  614. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  615. package/renderers/nodes/utils/TimerNode.js +10 -5
  616. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  617. package/renderers/webgpu/WebGPU.js +16 -14
  618. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  619. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  620. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  621. package/renderers/webgpu/WebGPUBackground.js +30 -13
  622. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  623. package/renderers/webgpu/WebGPUBinding.js +7 -4
  624. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  625. package/renderers/webgpu/WebGPUBindings.js +57 -21
  626. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  627. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  628. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  629. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  630. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  631. package/renderers/webgpu/WebGPUInfo.js +8 -3
  632. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  633. package/renderers/webgpu/WebGPUObjects.js +10 -5
  634. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  635. package/renderers/webgpu/WebGPUProperties.js +11 -5
  636. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  637. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  638. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  639. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  640. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  641. package/renderers/webgpu/WebGPURenderer.js +262 -124
  642. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  643. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  644. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  645. package/renderers/webgpu/WebGPUSampler.js +12 -7
  646. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  647. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  648. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  649. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  650. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  651. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  652. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  653. package/renderers/webgpu/WebGPUTextures.js +333 -186
  654. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  655. package/renderers/webgpu/WebGPUUniform.js +51 -25
  656. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  657. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  658. package/renderers/webgpu/constants.cjs.js +1 -0
  659. package/renderers/webgpu/constants.js +181 -190
  660. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  661. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  663. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  665. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  667. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  668. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  669. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  670. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  671. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  672. package/shaders/AfterimageShader.cjs.js +1 -0
  673. package/shaders/AfterimageShader.js +18 -28
  674. package/shaders/BasicShader.cjs.js +1 -0
  675. package/shaders/BasicShader.js +7 -9
  676. package/shaders/BleachBypassShader.cjs.js +1 -0
  677. package/shaders/BleachBypassShader.js +15 -31
  678. package/shaders/BlendShader.cjs.js +1 -0
  679. package/shaders/BlendShader.js +19 -26
  680. package/shaders/BokehShader.cjs.js +1 -0
  681. package/shaders/BokehShader.js +36 -98
  682. package/shaders/BokehShader2.cjs.js +1 -0
  683. package/shaders/BokehShader2.js +90 -261
  684. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  685. package/shaders/BrightnessContrastShader.js +19 -28
  686. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  687. package/shaders/ColorCorrectionShader.js +22 -26
  688. package/shaders/ColorifyShader.cjs.js +1 -0
  689. package/shaders/ColorifyShader.js +16 -24
  690. package/shaders/ConvolutionShader.cjs.js +1 -0
  691. package/shaders/ConvolutionShader.js +36 -40
  692. package/shaders/CopyShader.cjs.js +1 -0
  693. package/shaders/CopyShader.js +13 -21
  694. package/shaders/DOFMipMapShader.cjs.js +1 -0
  695. package/shaders/DOFMipMapShader.js +21 -28
  696. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  697. package/shaders/DepthLimitedBlurShader.js +40 -85
  698. package/shaders/DigitalGlitch.cjs.js +1 -0
  699. package/shaders/DigitalGlitch.js +46 -74
  700. package/shaders/DotScreenShader.cjs.js +1 -0
  701. package/shaders/DotScreenShader.js +27 -35
  702. package/shaders/FXAAShader.cjs.js +1 -0
  703. package/shaders/FXAAShader.js +19 -1094
  704. package/shaders/FilmShader.cjs.js +1 -0
  705. package/shaders/FilmShader.js +52 -38
  706. package/shaders/FocusShader.cjs.js +1 -0
  707. package/shaders/FocusShader.js +24 -51
  708. package/shaders/FreiChenShader.cjs.js +1 -0
  709. package/shaders/FreiChenShader.js +24 -57
  710. package/shaders/FresnelShader.cjs.js +1 -0
  711. package/shaders/FresnelShader.js +22 -43
  712. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  713. package/shaders/GammaCorrectionShader.js +11 -19
  714. package/shaders/GodRaysShader.cjs.js +1 -0
  715. package/shaders/GodRaysShader.js +94 -103
  716. package/shaders/HalftoneShader.cjs.js +1 -0
  717. package/shaders/HalftoneShader.js +65 -208
  718. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  719. package/shaders/HorizontalBlurShader.js +23 -7
  720. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  721. package/shaders/HorizontalTiltShiftShader.js +21 -33
  722. package/shaders/HueSaturationShader.cjs.js +1 -0
  723. package/shaders/HueSaturationShader.js +21 -37
  724. package/shaders/KaleidoShader.cjs.js +1 -0
  725. package/shaders/KaleidoShader.js +22 -30
  726. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  727. package/shaders/LuminosityHighPassShader.js +27 -33
  728. package/shaders/LuminosityShader.cjs.js +1 -0
  729. package/shaders/LuminosityShader.js +11 -21
  730. package/shaders/MirrorShader.cjs.js +1 -0
  731. package/shaders/MirrorShader.js +16 -31
  732. package/shaders/NormalMapShader.cjs.js +1 -0
  733. package/shaders/NormalMapShader.js +23 -27
  734. package/shaders/ParallaxShader.cjs.js +1 -0
  735. package/shaders/ParallaxShader.js +48 -107
  736. package/shaders/PixelShader.cjs.js +1 -0
  737. package/shaders/PixelShader.js +16 -24
  738. package/shaders/RGBShiftShader.cjs.js +1 -0
  739. package/shaders/RGBShiftShader.js +22 -26
  740. package/shaders/SAOShader.cjs.js +1 -0
  741. package/shaders/SAOShader.js +48 -132
  742. package/shaders/SMAAShader.cjs.js +1 -0
  743. package/shaders/SMAAShader.js +135 -256
  744. package/shaders/SSAOShader.cjs.js +1 -0
  745. package/shaders/SSAOShader.js +81 -153
  746. package/shaders/SSRShader.cjs.js +1 -0
  747. package/shaders/SSRShader.js +87 -32
  748. package/shaders/SepiaShader.cjs.js +1 -0
  749. package/shaders/SepiaShader.js +15 -25
  750. package/shaders/SobelOperatorShader.cjs.js +1 -0
  751. package/shaders/SobelOperatorShader.js +29 -40
  752. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  753. package/shaders/SubsurfaceScatteringShader.js +39 -53
  754. package/shaders/TechnicolorShader.cjs.js +1 -0
  755. package/shaders/TechnicolorShader.js +13 -20
  756. package/shaders/ToneMapShader.cjs.js +1 -0
  757. package/shaders/ToneMapShader.js +28 -44
  758. package/shaders/ToonShader.cjs.js +1 -0
  759. package/shaders/ToonShader.js +96 -172
  760. package/shaders/TriangleBlurShader.cjs.js +1 -0
  761. package/shaders/TriangleBlurShader.js +23 -32
  762. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  763. package/shaders/UnpackDepthRGBAShader.js +14 -22
  764. package/shaders/VerticalBlurShader.cjs.js +1 -0
  765. package/shaders/VerticalBlurShader.js +23 -7
  766. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  767. package/shaders/VerticalTiltShiftShader.js +21 -33
  768. package/shaders/VignetteShader.cjs.js +1 -0
  769. package/shaders/VignetteShader.js +28 -24
  770. package/shaders/VolumeShader.cjs.js +1 -0
  771. package/shaders/VolumeShader.js +77 -174
  772. package/shaders/WaterRefractionShader.cjs.js +1 -0
  773. package/shaders/WaterRefractionShader.js +6 -38
  774. package/shaders/types.cjs.js +1 -0
  775. package/shaders/types.js +1 -1
  776. package/textures/FlakesTexture.cjs.js +1 -0
  777. package/textures/FlakesTexture.js +10 -8
  778. package/types/helpers.cjs.js +1 -0
  779. package/types/helpers.js +2 -3
  780. package/types/shared.cjs.js +1 -0
  781. package/types/shared.js +1 -0
  782. package/types/utils.cjs.js +1 -0
  783. package/types/utils.js +1 -0
  784. package/utils/BufferGeometryUtils.cjs.js +1 -0
  785. package/utils/BufferGeometryUtils.js +325 -251
  786. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  787. package/utils/GeometryCompressionUtils.js +239 -241
  788. package/utils/GeometryUtils.cjs.js +1 -0
  789. package/utils/GeometryUtils.js +94 -41
  790. package/utils/LDrawUtils.cjs.js +1 -0
  791. package/utils/LDrawUtils.d.ts +5 -0
  792. package/utils/LDrawUtils.js +144 -0
  793. package/utils/RoughnessMipmapper.cjs.js +1 -0
  794. package/utils/RoughnessMipmapper.js +82 -38
  795. package/utils/SceneUtils.cjs.js +1 -0
  796. package/utils/SceneUtils.js +20 -15
  797. package/utils/ShadowMapViewer.cjs.js +1 -0
  798. package/utils/ShadowMapViewer.js +95 -49
  799. package/utils/SkeletonUtils.cjs.js +1 -0
  800. package/utils/SkeletonUtils.js +165 -74
  801. package/utils/UVsDebug.cjs.js +1 -0
  802. package/utils/UVsDebug.js +62 -32
  803. package/utils/WorkerPool.cjs.js +1 -0
  804. package/utils/WorkerPool.js +33 -13
  805. package/webxr/ARButton.cjs.js +1 -0
  806. package/webxr/ARButton.js +98 -72
  807. package/webxr/OculusHandModel.cjs.js +1 -0
  808. package/webxr/OculusHandModel.js +37 -18
  809. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  810. package/webxr/OculusHandPointerModel.js +80 -58
  811. package/webxr/Text2D.cjs.js +1 -0
  812. package/webxr/Text2D.js +19 -37
  813. package/webxr/VRButton.cjs.js +1 -0
  814. package/webxr/VRButton.js +90 -59
  815. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  816. package/webxr/XRControllerModelFactory.js +116 -58
  817. package/webxr/XREstimatedLight.cjs.js +1 -0
  818. package/webxr/XREstimatedLight.js +66 -39
  819. package/webxr/XRHandMeshModel.cjs.js +1 -0
  820. package/webxr/XRHandMeshModel.js +29 -40
  821. package/webxr/XRHandModelFactory.cjs.js +1 -0
  822. package/webxr/XRHandModelFactory.js +31 -28
  823. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  824. package/webxr/XRHandPrimitiveModel.js +27 -41
  825. package/animation/AnimationClipCreator.mjs +0 -57
  826. package/animation/CCDIKSolver.mjs +0 -223
  827. package/animation/MMDAnimationHelper.mjs +0 -514
  828. package/animation/MMDPhysics.mjs +0 -769
  829. package/cameras/CinematicCamera.mjs +0 -129
  830. package/controls/ArcballControls.mjs +0 -1737
  831. package/controls/DeviceOrientationControls.mjs +0 -74
  832. package/controls/DragControls.mjs +0 -172
  833. package/controls/FirstPersonControls.mjs +0 -220
  834. package/controls/FlyControls.mjs +0 -239
  835. package/controls/OrbitControls.mjs +0 -731
  836. package/controls/PointerLockControls.mjs +0 -88
  837. package/controls/TrackballControls.mjs +0 -481
  838. package/controls/TransformControls.mjs +0 -1068
  839. package/controls/experimental/CameraControls.mjs +0 -673
  840. package/csm/CSM.mjs +0 -244
  841. package/csm/CSMFrustum.mjs +0 -75
  842. package/csm/CSMHelper.mjs +0 -114
  843. package/csm/CSMShader.mjs +0 -251
  844. package/curves/CurveExtras.mjs +0 -224
  845. package/curves/NURBSCurve.mjs +0 -35
  846. package/curves/NURBSSurface.mjs +0 -28
  847. package/curves/NURBSUtils.mjs +0 -226
  848. package/deprecated/Geometry.mjs +0 -966
  849. package/effects/AnaglyphEffect.mjs +0 -120
  850. package/effects/AsciiEffect.mjs +0 -173
  851. package/effects/OutlineEffect.mjs +0 -295
  852. package/effects/ParallaxBarrierEffect.mjs +0 -64
  853. package/effects/PeppersGhostEffect.mjs +0 -85
  854. package/effects/StereoEffect.mjs +0 -32
  855. package/environments/RoomEnvironment.mjs +0 -78
  856. package/exporters/ColladaExporter.mjs +0 -299
  857. package/exporters/DRACOExporter.mjs +0 -132
  858. package/exporters/GLTFExporter.mjs +0 -1381
  859. package/exporters/MMDExporter.mjs +0 -102
  860. package/exporters/OBJExporter.mjs +0 -166
  861. package/exporters/PLYExporter.mjs +0 -278
  862. package/exporters/STLExporter.mjs +0 -129
  863. package/exporters/USDZExporter.mjs +0 -328
  864. package/geometries/BoxLineGeometry.mjs +0 -45
  865. package/geometries/ConvexGeometry.mjs +0 -29
  866. package/geometries/DecalGeometry.mjs +0 -184
  867. package/geometries/LightningStrike.mjs +0 -547
  868. package/geometries/ParametricGeometries.mjs +0 -129
  869. package/geometries/ParametricGeometry.mjs +0 -63
  870. package/geometries/RoundedBoxGeometry.mjs +0 -91
  871. package/geometries/TeapotGeometry.mjs +0 -1557
  872. package/geometries/TextGeometry.mjs +0 -23
  873. package/helpers/LightProbeHelper.mjs +0 -72
  874. package/helpers/PositionalAudioHelper.mjs +0 -68
  875. package/helpers/RectAreaLightHelper.mjs +0 -44
  876. package/helpers/VertexNormalsHelper.mjs +0 -54
  877. package/helpers/VertexTangentsHelper.mjs +0 -45
  878. package/index.mjs +0 -969
  879. package/interactive/SelectionBox.mjs +0 -137
  880. package/interactive/SelectionHelper.mjs +0 -54
  881. package/libs/MeshoptDecoder.mjs +0 -210
  882. package/libs/MotionControllers.mjs +0 -261
  883. package/lights/LightProbeGenerator.mjs +0 -145
  884. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  885. package/lines/Line2.mjs +0 -13
  886. package/lines/LineGeometry.mjs +0 -44
  887. package/lines/LineMaterial.mjs +0 -539
  888. package/lines/LineSegments2.mjs +0 -202
  889. package/lines/LineSegmentsGeometry.mjs +0 -124
  890. package/lines/Wireframe.mjs +0 -31
  891. package/lines/WireframeGeometry2.mjs +0 -13
  892. package/loaders/3DMLoader.mjs +0 -802
  893. package/loaders/3MFLoader.mjs +0 -837
  894. package/loaders/AMFLoader.mjs +0 -284
  895. package/loaders/AssimpLoader.mjs +0 -1396
  896. package/loaders/BVHLoader.mjs +0 -207
  897. package/loaders/BasisTextureLoader.mjs +0 -474
  898. package/loaders/ColladaLoader.mjs +0 -2403
  899. package/loaders/DDSLoader.mjs +0 -148
  900. package/loaders/DRACOLoader.mjs +0 -340
  901. package/loaders/EXRLoader.mjs +0 -1351
  902. package/loaders/FBXLoader.mjs +0 -2362
  903. package/loaders/FontLoader.mjs +0 -111
  904. package/loaders/GCodeLoader.mjs +0 -141
  905. package/loaders/GLTFLoader.mjs +0 -2316
  906. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  907. package/loaders/KMZLoader.mjs +0 -75
  908. package/loaders/KTX2Loader.mjs +0 -427
  909. package/loaders/KTXLoader.mjs +0 -87
  910. package/loaders/LDrawLoader.mjs +0 -1409
  911. package/loaders/LUT3dlLoader.mjs +0 -100
  912. package/loaders/LUTCubeLoader.mjs +0 -104
  913. package/loaders/LWOLoader.mjs +0 -625
  914. package/loaders/LottieLoader.mjs +0 -47
  915. package/loaders/MD2Loader.mjs +0 -359
  916. package/loaders/MDDLoader.mjs +0 -58
  917. package/loaders/MMDLoader.mjs +0 -998
  918. package/loaders/MTLLoader.mjs +0 -280
  919. package/loaders/NRRDLoader.mjs +0 -401
  920. package/loaders/NodeMaterialLoader.mjs +0 -146
  921. package/loaders/OBJLoader.mjs +0 -487
  922. package/loaders/PCDLoader.mjs +0 -248
  923. package/loaders/PDBLoader.mjs +0 -246
  924. package/loaders/PLYLoader.mjs +0 -317
  925. package/loaders/PRWMLoader.mjs +0 -160
  926. package/loaders/PVRLoader.mjs +0 -131
  927. package/loaders/RGBELoader.mjs +0 -244
  928. package/loaders/RGBMLoader.mjs +0 -998
  929. package/loaders/STLLoader.mjs +0 -190
  930. package/loaders/SVGLoader.mjs +0 -1709
  931. package/loaders/TDSLoader.mjs +0 -480
  932. package/loaders/TGALoader.mjs +0 -285
  933. package/loaders/TTFLoader.mjs +0 -131
  934. package/loaders/TiltLoader.mjs +0 -373
  935. package/loaders/VOXLoader.mjs +0 -431
  936. package/loaders/VRMLLoader.mjs +0 -2093
  937. package/loaders/VRMLoader.mjs +0 -38
  938. package/loaders/VTKLoader.mjs +0 -646
  939. package/loaders/XLoader.mjs +0 -1258
  940. package/loaders/XYZLoader.mjs +0 -60
  941. package/loaders/lwo/IFFParser.mjs +0 -697
  942. package/loaders/lwo/LWO2Parser.mjs +0 -327
  943. package/loaders/lwo/LWO3Parser.mjs +0 -298
  944. package/math/Capsule.mjs +0 -100
  945. package/math/ColorConverter.mjs +0 -51
  946. package/math/ConvexHull.mjs +0 -574
  947. package/math/ImprovedNoise.mjs +0 -302
  948. package/math/Lut.mjs +0 -135
  949. package/math/MeshSurfaceSampler.mjs +0 -107
  950. package/math/OBB.mjs +0 -235
  951. package/math/Octree.mjs +0 -278
  952. package/math/SimplexNoise.mjs +0 -425
  953. package/misc/ConvexObjectBreaker.mjs +0 -292
  954. package/misc/GPUComputationRenderer.mjs +0 -171
  955. package/misc/Gyroscope.mjs +0 -35
  956. package/misc/MD2Character.mjs +0 -162
  957. package/misc/MD2CharacterComplex.mjs +0 -328
  958. package/misc/MorphAnimMesh.mjs +0 -40
  959. package/misc/MorphBlendMesh.mjs +0 -179
  960. package/misc/ProgressiveLightmap.mjs +0 -166
  961. package/misc/RollerCoaster.mjs +0 -346
  962. package/misc/TubePainter.mjs +0 -123
  963. package/misc/Volume.mjs +0 -244
  964. package/misc/VolumeSlice.mjs +0 -106
  965. package/misc/WebGL.mjs +0 -74
  966. package/modifiers/CurveModifier.mjs +0 -182
  967. package/modifiers/EdgeSplitModifier.mjs +0 -162
  968. package/modifiers/SimplifyModifier.mjs +0 -282
  969. package/modifiers/TessellateModifier.mjs +0 -206
  970. package/nodes/Nodes.mjs +0 -400
  971. package/nodes/ShaderNode.mjs +0 -408
  972. package/nodes/accessors/BufferNode.mjs +0 -15
  973. package/nodes/accessors/CameraNode.mjs +0 -44
  974. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  975. package/nodes/accessors/MaterialNode.mjs +0 -71
  976. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  977. package/nodes/accessors/ModelNode.mjs +0 -9
  978. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  979. package/nodes/accessors/NormalNode.mjs +0 -62
  980. package/nodes/accessors/Object3DNode.mjs +0 -76
  981. package/nodes/accessors/PointUVNode.mjs +0 -13
  982. package/nodes/accessors/PositionNode.mjs +0 -65
  983. package/nodes/accessors/ReferenceNode.mjs +0 -37
  984. package/nodes/accessors/ReflectNode.mjs +0 -43
  985. package/nodes/accessors/SkinningNode.mjs +0 -58
  986. package/nodes/accessors/TextureNode.mjs +0 -54
  987. package/nodes/accessors/UVNode.mjs +0 -23
  988. package/nodes/core/ArrayUniformNode.mjs +0 -14
  989. package/nodes/core/AttributeNode.mjs +0 -30
  990. package/nodes/core/BypassNode.mjs +0 -22
  991. package/nodes/core/CodeNode.mjs +0 -28
  992. package/nodes/core/ConstNode.mjs +0 -14
  993. package/nodes/core/ContextNode.mjs +0 -22
  994. package/nodes/core/ExpressionNode.mjs +0 -19
  995. package/nodes/core/FunctionCallNode.mjs +0 -37
  996. package/nodes/core/FunctionNode.mjs +0 -56
  997. package/nodes/core/InputNode.mjs +0 -38
  998. package/nodes/core/Node.mjs +0 -139
  999. package/nodes/core/NodeAttribute.mjs +0 -10
  1000. package/nodes/core/NodeBuilder.mjs +0 -395
  1001. package/nodes/core/NodeCode.mjs +0 -11
  1002. package/nodes/core/NodeFrame.mjs +0 -35
  1003. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1004. package/nodes/core/NodeKeywords.mjs +0 -44
  1005. package/nodes/core/NodeUniform.mjs +0 -18
  1006. package/nodes/core/NodeUtils.mjs +0 -57
  1007. package/nodes/core/NodeVar.mjs +0 -10
  1008. package/nodes/core/NodeVary.mjs +0 -10
  1009. package/nodes/core/PropertyNode.mjs +0 -21
  1010. package/nodes/core/TempNode.mjs +0 -25
  1011. package/nodes/core/UniformNode.mjs +0 -23
  1012. package/nodes/core/VarNode.mjs +0 -31
  1013. package/nodes/core/VaryNode.mjs +0 -30
  1014. package/nodes/core/constants.mjs +0 -24
  1015. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1016. package/nodes/display/NormalMapNode.mjs +0 -54
  1017. package/nodes/fog/FogNode.mjs +0 -15
  1018. package/nodes/fog/FogRangeNode.mjs +0 -17
  1019. package/nodes/functions/BSDFs.mjs +0 -64
  1020. package/nodes/lights/LightContextNode.mjs +0 -35
  1021. package/nodes/lights/LightNode.mjs +0 -58
  1022. package/nodes/lights/LightsNode.mjs +0 -59
  1023. package/nodes/loaders/NodeLoader.mjs +0 -66
  1024. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1025. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1026. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1027. package/nodes/materials/Materials.mjs +0 -28
  1028. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1029. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1030. package/nodes/materials/NodeMaterial.mjs +0 -64
  1031. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1032. package/nodes/math/CondNode.mjs +0 -38
  1033. package/nodes/math/MathNode.mjs +0 -163
  1034. package/nodes/math/OperatorNode.mjs +0 -103
  1035. package/nodes/procedural/CheckerNode.mjs +0 -21
  1036. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1037. package/nodes/utils/ConvertNode.mjs +0 -25
  1038. package/nodes/utils/JoinNode.mjs +0 -26
  1039. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1040. package/nodes/utils/OscNode.mjs +0 -50
  1041. package/nodes/utils/SplitNode.mjs +0 -45
  1042. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1043. package/nodes/utils/TimerNode.mjs +0 -44
  1044. package/objects/GroundProjectedEnv.mjs +0 -130
  1045. package/objects/Lensflare.mjs +0 -262
  1046. package/objects/LightningStorm.mjs +0 -110
  1047. package/objects/MarchingCubes.mjs +0 -457
  1048. package/objects/Reflector.mjs +0 -166
  1049. package/objects/ReflectorForSSRPass.mjs +0 -247
  1050. package/objects/ReflectorRTT.mjs +0 -10
  1051. package/objects/Refractor.mjs +0 -178
  1052. package/objects/ShadowMesh.mjs +0 -41
  1053. package/objects/Sky.mjs +0 -124
  1054. package/objects/Water.mjs +0 -235
  1055. package/objects/Water2.mjs +0 -252
  1056. package/offscreen/jank.mjs +0 -27
  1057. package/offscreen/offscreen.mjs +0 -5
  1058. package/offscreen/scene.mjs +0 -52
  1059. package/physics/AmmoPhysics.mjs +0 -165
  1060. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1061. package/postprocessing/AfterimagePass.mjs +0 -55
  1062. package/postprocessing/BloomPass.mjs +0 -90
  1063. package/postprocessing/BokehPass.mjs +0 -76
  1064. package/postprocessing/ClearPass.mjs +0 -27
  1065. package/postprocessing/CubeTexturePass.mjs +0 -49
  1066. package/postprocessing/DotScreenPass.mjs +0 -40
  1067. package/postprocessing/EffectComposer.mjs +0 -139
  1068. package/postprocessing/FilmPass.mjs +0 -42
  1069. package/postprocessing/GlitchPass.mjs +0 -75
  1070. package/postprocessing/HalftonePass.mjs +0 -44
  1071. package/postprocessing/LUTPass.mjs +0 -136
  1072. package/postprocessing/MaskPass.mjs +0 -60
  1073. package/postprocessing/OutlinePass.mjs +0 -438
  1074. package/postprocessing/Pass.mjs +0 -37
  1075. package/postprocessing/RenderPass.mjs +0 -48
  1076. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1077. package/postprocessing/SAOPass.mjs +0 -282
  1078. package/postprocessing/SMAAPass.mjs +0 -112
  1079. package/postprocessing/SSAARenderPass.mjs +0 -170
  1080. package/postprocessing/SSAOPass.mjs +0 -265
  1081. package/postprocessing/SSRPass.mjs +0 -432
  1082. package/postprocessing/SavePass.mjs +0 -37
  1083. package/postprocessing/ShaderPass.mjs +0 -39
  1084. package/postprocessing/TAARenderPass.mjs +0 -88
  1085. package/postprocessing/TexturePass.mjs +0 -39
  1086. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1087. package/renderers/CSS2DRenderer.mjs +0 -112
  1088. package/renderers/CSS3DRenderer.mjs +0 -133
  1089. package/renderers/Projector.mjs +0 -511
  1090. package/renderers/SVGRenderer.mjs +0 -306
  1091. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1092. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1093. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1094. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1095. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1096. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1097. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1098. package/renderers/nodes/core/InputNode.mjs +0 -31
  1099. package/renderers/nodes/core/Node.mjs +0 -34
  1100. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1101. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1102. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1103. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1104. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1105. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1106. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1107. package/renderers/nodes/core/constants.mjs +0 -22
  1108. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1110. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1112. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1113. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1114. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1115. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1116. package/renderers/nodes/math/MathNode.mjs +0 -55
  1117. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1118. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1119. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1120. package/renderers/webgpu/WebGPU.mjs +0 -24
  1121. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1122. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1123. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1124. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1125. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1126. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1127. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1128. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1129. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1130. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1131. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1132. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1133. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1134. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1136. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1137. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1138. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1139. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1140. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1141. package/renderers/webgpu/constants.mjs +0 -230
  1142. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1143. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1145. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1146. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1147. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1148. package/shaders/AfterimageShader.mjs +0 -32
  1149. package/shaders/BasicShader.mjs +0 -12
  1150. package/shaders/BleachBypassShader.mjs +0 -35
  1151. package/shaders/BlendShader.mjs +0 -30
  1152. package/shaders/BokehShader.mjs +0 -106
  1153. package/shaders/BokehShader2.mjs +0 -269
  1154. package/shaders/BrightnessContrastShader.mjs +0 -32
  1155. package/shaders/ColorCorrectionShader.mjs +0 -30
  1156. package/shaders/ColorifyShader.mjs +0 -28
  1157. package/shaders/ConvolutionShader.mjs +0 -55
  1158. package/shaders/CopyShader.mjs +0 -25
  1159. package/shaders/DOFMipMapShader.mjs +0 -32
  1160. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1161. package/shaders/DigitalGlitch.mjs +0 -78
  1162. package/shaders/DotScreenShader.mjs +0 -39
  1163. package/shaders/FXAAShader.mjs +0 -1098
  1164. package/shaders/FilmShader.mjs +0 -42
  1165. package/shaders/FocusShader.mjs +0 -55
  1166. package/shaders/FreiChenShader.mjs +0 -61
  1167. package/shaders/FresnelShader.mjs +0 -47
  1168. package/shaders/GammaCorrectionShader.mjs +0 -23
  1169. package/shaders/GodRaysShader.mjs +0 -146
  1170. package/shaders/HalftoneShader.mjs +0 -212
  1171. package/shaders/HorizontalBlurShader.mjs +0 -43
  1172. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1173. package/shaders/HueSaturationShader.mjs +0 -41
  1174. package/shaders/KaleidoShader.mjs +0 -34
  1175. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1176. package/shaders/LuminosityShader.mjs +0 -25
  1177. package/shaders/MirrorShader.mjs +0 -35
  1178. package/shaders/NormalMapShader.mjs +0 -31
  1179. package/shaders/ParallaxShader.mjs +0 -113
  1180. package/shaders/PixelShader.mjs +0 -28
  1181. package/shaders/RGBShiftShader.mjs +0 -30
  1182. package/shaders/SAOShader.mjs +0 -144
  1183. package/shaders/SMAAShader.mjs +0 -272
  1184. package/shaders/SSAOShader.mjs +0 -172
  1185. package/shaders/SSRShader.mjs +0 -324
  1186. package/shaders/SepiaShader.mjs +0 -29
  1187. package/shaders/SobelOperatorShader.mjs +0 -44
  1188. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1189. package/shaders/TechnicolorShader.mjs +0 -24
  1190. package/shaders/ToneMapShader.mjs +0 -48
  1191. package/shaders/ToonShader.mjs +0 -188
  1192. package/shaders/TriangleBlurShader.mjs +0 -36
  1193. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1194. package/shaders/VerticalBlurShader.mjs +0 -44
  1195. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1196. package/shaders/VignetteShader.mjs +0 -28
  1197. package/shaders/VolumeShader.mjs +0 -178
  1198. package/shaders/WaterRefractionShader.mjs +0 -57
  1199. package/textures/FlakesTexture.mjs +0 -30
  1200. package/types/helpers.mjs +0 -4
  1201. package/utils/BufferGeometryUtils.mjs +0 -570
  1202. package/utils/GeometryCompressionUtils.mjs +0 -547
  1203. package/utils/GeometryUtils.mjs +0 -108
  1204. package/utils/RoughnessMipmapper.mjs +0 -213
  1205. package/utils/SceneUtils.mjs +0 -36
  1206. package/utils/ShadowMapViewer.mjs +0 -114
  1207. package/utils/SkeletonUtils.mjs +0 -292
  1208. package/utils/UVsDebug.mjs +0 -85
  1209. package/utils/WorkerPool.mjs +0 -62
  1210. package/webxr/ARButton.mjs +0 -119
  1211. package/webxr/OculusHandModel.mjs +0 -71
  1212. package/webxr/OculusHandPointerModel.mjs +0 -207
  1213. package/webxr/Text2D.mjs +0 -31
  1214. package/webxr/VRButton.mjs +0 -105
  1215. package/webxr/XRControllerModelFactory.mjs +0 -146
  1216. package/webxr/XREstimatedLight.mjs +0 -126
  1217. package/webxr/XRHandMeshModel.mjs +0 -73
  1218. package/webxr/XRHandModelFactory.mjs +0 -61
  1219. 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 };