three-stdlib 2.15.2 → 2.16.1

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