three-stdlib 2.16.0 → 2.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1219) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +143 -64
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.d.ts +5 -4
  25. package/controls/FlyControls.js +160 -90
  26. package/controls/OrbitControls.cjs.js +1 -0
  27. package/controls/OrbitControls.js +481 -232
  28. package/controls/PointerLockControls.cjs.js +1 -0
  29. package/controls/PointerLockControls.js +99 -63
  30. package/controls/TrackballControls.cjs.js +1 -0
  31. package/controls/TrackballControls.js +383 -211
  32. package/controls/TransformControls.cjs.js +1 -0
  33. package/controls/TransformControls.js +782 -575
  34. package/controls/experimental/CameraControls.cjs.js +1 -0
  35. package/controls/experimental/CameraControls.js +609 -329
  36. package/csm/CSM.cjs.js +1 -0
  37. package/csm/CSM.js +108 -47
  38. package/csm/CSMFrustum.cjs.js +1 -0
  39. package/csm/CSMFrustum.js +29 -14
  40. package/csm/CSMHelper.cjs.js +1 -0
  41. package/csm/CSMHelper.js +34 -20
  42. package/csm/CSMShader.cjs.js +1 -0
  43. package/csm/CSMShader.js +11 -7
  44. package/curves/CurveExtras.cjs.js +1 -0
  45. package/curves/CurveExtras.js +115 -73
  46. package/curves/NURBSCurve.cjs.js +1 -0
  47. package/curves/NURBSCurve.js +43 -15
  48. package/curves/NURBSSurface.cjs.js +1 -0
  49. package/curves/NURBSSurface.js +27 -11
  50. package/curves/NURBSUtils.cjs.js +1 -0
  51. package/curves/NURBSUtils.js +203 -54
  52. package/custom.d.cjs.js +1 -0
  53. package/{shaders/types.mjs → custom.d.js} +0 -0
  54. package/deprecated/Geometry.cjs.js +1 -0
  55. package/deprecated/Geometry.js +486 -191
  56. package/effects/AnaglyphEffect.cjs.js +1 -0
  57. package/effects/AnaglyphEffect.js +60 -95
  58. package/effects/AsciiEffect.cjs.js +1 -0
  59. package/effects/AsciiEffect.js +110 -80
  60. package/effects/OutlineEffect.cjs.js +1 -0
  61. package/effects/OutlineEffect.js +204 -121
  62. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  63. package/effects/ParallaxBarrierEffect.js +38 -39
  64. package/effects/PeppersGhostEffect.cjs.js +1 -0
  65. package/effects/PeppersGhostEffect.js +68 -19
  66. package/effects/StereoEffect.cjs.js +1 -0
  67. package/effects/StereoEffect.js +16 -12
  68. package/environments/RoomEnvironment.cjs.js +1 -0
  69. package/environments/RoomEnvironment.js +47 -52
  70. package/exporters/ColladaExporter.cjs.js +1 -0
  71. package/exporters/ColladaExporter.js +241 -115
  72. package/exporters/DRACOExporter.cjs.js +1 -0
  73. package/exporters/DRACOExporter.js +121 -67
  74. package/exporters/GLTFExporter.cjs.js +1 -0
  75. package/exporters/GLTFExporter.js +1014 -463
  76. package/exporters/MMDExporter.cjs.js +1 -0
  77. package/exporters/MMDExporter.js +102 -44
  78. package/exporters/OBJExporter.cjs.js +1 -0
  79. package/exporters/OBJExporter.js +140 -78
  80. package/exporters/PLYExporter.cjs.js +1 -0
  81. package/exporters/PLYExporter.js +154 -93
  82. package/exporters/STLExporter.cjs.js +1 -0
  83. package/exporters/STLExporter.js +81 -30
  84. package/exporters/USDZExporter.cjs.js +1 -0
  85. package/exporters/USDZExporter.js +144 -84
  86. package/geometries/BoxLineGeometry.cjs.js +1 -0
  87. package/geometries/BoxLineGeometry.js +14 -7
  88. package/geometries/ConvexGeometry.cjs.js +1 -0
  89. package/geometries/ConvexGeometry.js +23 -14
  90. package/geometries/DecalGeometry.cjs.js +1 -0
  91. package/geometries/DecalGeometry.js +162 -108
  92. package/geometries/LightningStrike.cjs.js +1 -0
  93. package/geometries/LightningStrike.js +294 -101
  94. package/geometries/ParametricGeometries.cjs.js +1 -0
  95. package/geometries/ParametricGeometries.js +76 -26
  96. package/geometries/ParametricGeometry.cjs.js +1 -0
  97. package/geometries/ParametricGeometry.js +48 -24
  98. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  99. package/geometries/RoundedBoxGeometry.js +64 -33
  100. package/geometries/TeapotGeometry.cjs.js +1 -0
  101. package/geometries/TeapotGeometry.js +174 -1434
  102. package/geometries/TextGeometry.cjs.js +1 -0
  103. package/geometries/TextGeometry.js +17 -9
  104. package/helpers/LightProbeHelper.cjs.js +1 -0
  105. package/helpers/LightProbeHelper.js +21 -53
  106. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  107. package/helpers/PositionalAudioHelper.js +30 -23
  108. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  109. package/helpers/RectAreaLightHelper.js +33 -17
  110. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  111. package/helpers/VertexNormalsHelper.js +41 -20
  112. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  113. package/helpers/VertexTangentsHelper.js +36 -18
  114. package/index.cjs.js +1 -0
  115. package/index.js +333 -969
  116. package/interactive/InteractiveGroup.cjs.js +1 -0
  117. package/interactive/InteractiveGroup.d.ts +5 -0
  118. package/interactive/InteractiveGroup.js +87 -0
  119. package/interactive/SelectionBox.cjs.js +1 -0
  120. package/interactive/SelectionBox.js +46 -31
  121. package/interactive/SelectionHelper.cjs.js +1 -0
  122. package/interactive/SelectionHelper.js +21 -16
  123. package/libs/MeshoptDecoder.cjs.js +1 -0
  124. package/libs/MeshoptDecoder.js +58 -147
  125. package/libs/MotionControllers.cjs.js +1 -0
  126. package/libs/MotionControllers.js +208 -66
  127. package/lights/LightProbeGenerator.cjs.js +1 -0
  128. package/lights/LightProbeGenerator.js +96 -40
  129. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  130. package/lights/RectAreaLightUniformsLib.js +9 -32842
  131. package/lines/Line2.cjs.js +1 -0
  132. package/lines/Line2.js +12 -9
  133. package/lines/LineGeometry.cjs.js +1 -0
  134. package/lines/LineGeometry.js +19 -7
  135. package/lines/LineMaterial.cjs.js +1 -0
  136. package/lines/LineMaterial.js +89 -51
  137. package/lines/LineSegments2.cjs.js +1 -0
  138. package/lines/LineSegments2.js +165 -56
  139. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  140. package/lines/LineSegmentsGeometry.js +71 -29
  141. package/lines/Wireframe.cjs.js +1 -0
  142. package/lines/Wireframe.js +29 -15
  143. package/lines/WireframeGeometry2.cjs.js +1 -0
  144. package/lines/WireframeGeometry2.js +9 -8
  145. package/loaders/3DMLoader.cjs.js +1 -0
  146. package/loaders/3DMLoader.js +469 -234
  147. package/loaders/3MFLoader.cjs.js +1 -0
  148. package/loaders/3MFLoader.js +555 -340
  149. package/loaders/AMFLoader.cjs.js +1 -0
  150. package/loaders/AMFLoader.js +219 -114
  151. package/loaders/AssimpLoader.cjs.js +1 -0
  152. package/loaders/AssimpLoader.js +725 -328
  153. package/loaders/BVHLoader.cjs.js +1 -0
  154. package/loaders/BVHLoader.js +200 -94
  155. package/loaders/BasisTextureLoader.cjs.js +1 -0
  156. package/loaders/BasisTextureLoader.js +357 -229
  157. package/loaders/ColladaLoader.cjs.js +1 -0
  158. package/loaders/ColladaLoader.js +1522 -932
  159. package/loaders/DDSLoader.cjs.js +1 -0
  160. package/loaders/DDSLoader.js +108 -42
  161. package/loaders/DRACOLoader.cjs.js +1 -0
  162. package/loaders/DRACOLoader.js +210 -103
  163. package/loaders/EXRLoader.cjs.js +1 -0
  164. package/loaders/EXRLoader.js +809 -461
  165. package/loaders/FBXLoader.cjs.js +1 -0
  166. package/loaders/FBXLoader.js +1397 -842
  167. package/loaders/FontLoader.cjs.js +1 -0
  168. package/loaders/FontLoader.js +66 -33
  169. package/loaders/GCodeLoader.cjs.js +1 -0
  170. package/loaders/GCodeLoader.js +111 -63
  171. package/loaders/GLTFLoader.cjs.js +1 -0
  172. package/loaders/GLTFLoader.js +1484 -771
  173. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  174. package/loaders/HDRCubeTextureLoader.js +50 -45
  175. package/loaders/KMZLoader.cjs.js +1 -0
  176. package/loaders/KMZLoader.js +55 -42
  177. package/loaders/KTX2Loader.cjs.js +1 -0
  178. package/loaders/KTX2Loader.js +362 -229
  179. package/loaders/KTXLoader.cjs.js +1 -0
  180. package/loaders/KTXLoader.js +99 -37
  181. package/loaders/LDrawLoader.cjs.js +1 -0
  182. package/loaders/LDrawLoader.js +746 -313
  183. package/loaders/LUT3dlLoader.cjs.js +1 -0
  184. package/loaders/LUT3dlLoader.js +62 -50
  185. package/loaders/LUTCubeLoader.cjs.js +1 -0
  186. package/loaders/LUTCubeLoader.js +56 -45
  187. package/loaders/LWOLoader.cjs.js +1 -0
  188. package/loaders/LWOLoader.js +339 -227
  189. package/loaders/LottieLoader.cjs.js +1 -0
  190. package/loaders/LottieLoader.js +38 -36
  191. package/loaders/MD2Loader.cjs.js +1 -0
  192. package/loaders/MD2Loader.js +91 -248
  193. package/loaders/MDDLoader.cjs.js +1 -0
  194. package/loaders/MDDLoader.js +45 -25
  195. package/loaders/MMDLoader.cjs.js +1 -0
  196. package/loaders/MMDLoader.js +795 -359
  197. package/loaders/MTLLoader.cjs.js +1 -0
  198. package/loaders/MTLLoader.js +201 -91
  199. package/loaders/NRRDLoader.cjs.js +1 -0
  200. package/loaders/NRRDLoader.js +263 -182
  201. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  202. package/loaders/NodeMaterialLoader.js +14 -121
  203. package/loaders/OBJLoader.cjs.js +1 -0
  204. package/loaders/OBJLoader.js +283 -161
  205. package/loaders/PCDLoader.cjs.js +1 -0
  206. package/loaders/PCDLoader.js +164 -145
  207. package/loaders/PDBLoader.cjs.js +1 -0
  208. package/loaders/PDBLoader.js +63 -45
  209. package/loaders/PLYLoader.cjs.js +1 -0
  210. package/loaders/PLYLoader.js +203 -106
  211. package/loaders/PRWMLoader.cjs.js +1 -0
  212. package/loaders/PRWMLoader.js +110 -73
  213. package/loaders/PVRLoader.cjs.js +1 -0
  214. package/loaders/PVRLoader.js +93 -32
  215. package/loaders/RGBELoader.cjs.js +1 -0
  216. package/loaders/RGBELoader.js +233 -96
  217. package/loaders/RGBMLoader.cjs.js +1 -0
  218. package/loaders/RGBMLoader.js +514 -344
  219. package/loaders/STLLoader.cjs.js +1 -0
  220. package/loaders/STLLoader.js +165 -59
  221. package/loaders/SVGLoader.cjs.js +1 -0
  222. package/loaders/SVGLoader.js +851 -481
  223. package/loaders/TDSLoader.cjs.js +1 -0
  224. package/loaders/TDSLoader.js +527 -137
  225. package/loaders/TGALoader.cjs.js +1 -0
  226. package/loaders/TGALoader.js +205 -94
  227. package/loaders/TTFLoader.cjs.js +1 -0
  228. package/loaders/TTFLoader.js +79 -58
  229. package/loaders/TiltLoader.cjs.js +1 -0
  230. package/loaders/TiltLoader.js +167 -129
  231. package/loaders/VOXLoader.cjs.js +1 -0
  232. package/loaders/VOXLoader.js +84 -320
  233. package/loaders/VRMLLoader.cjs.js +1 -0
  234. package/loaders/VRMLLoader.js +1268 -786
  235. package/loaders/VRMLoader.cjs.js +1 -0
  236. package/loaders/VRMLoader.js +31 -23
  237. package/loaders/VTKLoader.cjs.js +1 -0
  238. package/loaders/VTKLoader.js +407 -219
  239. package/loaders/XLoader.cjs.js +1 -0
  240. package/loaders/XLoader.js +1259 -1083
  241. package/loaders/XYZLoader.cjs.js +1 -0
  242. package/loaders/XYZLoader.js +34 -28
  243. package/loaders/lwo/IFFParser.cjs.js +1 -0
  244. package/loaders/lwo/IFFParser.js +492 -238
  245. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  246. package/loaders/lwo/LWO2Parser.js +279 -176
  247. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  248. package/loaders/lwo/LWO3Parser.js +247 -160
  249. package/math/Capsule.cjs.js +1 -0
  250. package/math/Capsule.js +43 -56
  251. package/math/ColorConverter.cjs.js +1 -0
  252. package/math/ColorConverter.js +32 -18
  253. package/math/ConvexHull.cjs.js +1 -0
  254. package/math/ConvexHull.js +357 -97
  255. package/math/ImprovedNoise.cjs.js +1 -0
  256. package/math/ImprovedNoise.js +32 -282
  257. package/math/Lut.cjs.js +1 -0
  258. package/math/Lut.js +35 -51
  259. package/math/MeshSurfaceSampler.cjs.js +1 -0
  260. package/math/MeshSurfaceSampler.js +68 -25
  261. package/math/OBB.cjs.js +1 -0
  262. package/math/OBB.js +152 -91
  263. package/math/Octree.cjs.js +1 -0
  264. package/math/Octree.js +139 -76
  265. package/math/SimplexNoise.cjs.js +1 -0
  266. package/math/SimplexNoise.js +238 -217
  267. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  268. package/misc/ConvexObjectBreaker.js +185 -79
  269. package/misc/GPUComputationRenderer.cjs.js +1 -0
  270. package/misc/GPUComputationRenderer.js +194 -69
  271. package/misc/Gyroscope.cjs.js +1 -0
  272. package/misc/Gyroscope.js +22 -16
  273. package/misc/MD2Character.cjs.js +1 -0
  274. package/misc/MD2Character.js +74 -52
  275. package/misc/MD2CharacterComplex.cjs.js +1 -0
  276. package/misc/MD2CharacterComplex.js +163 -112
  277. package/misc/MorphAnimMesh.cjs.js +1 -0
  278. package/misc/MorphAnimMesh.js +28 -20
  279. package/misc/MorphBlendMesh.cjs.js +1 -0
  280. package/misc/MorphBlendMesh.js +69 -45
  281. package/misc/ProgressiveLightmap.cjs.js +1 -0
  282. package/misc/ProgressiveLightmap.js +187 -70
  283. package/misc/RollerCoaster.cjs.js +1 -0
  284. package/misc/RollerCoaster.js +135 -106
  285. package/misc/TubePainter.cjs.js +1 -0
  286. package/misc/TubePainter.js +92 -74
  287. package/misc/Volume.cjs.js +1 -0
  288. package/misc/Volume.js +270 -108
  289. package/misc/VolumeSlice.cjs.js +1 -0
  290. package/misc/VolumeSlice.js +122 -34
  291. package/misc/WebGL.cjs.js +1 -0
  292. package/misc/WebGL.js +34 -37
  293. package/modifiers/CurveModifier.cjs.js +1 -0
  294. package/modifiers/CurveModifier.js +151 -46
  295. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  296. package/modifiers/EdgeSplitModifier.js +90 -46
  297. package/modifiers/SimplifyModifier.cjs.js +1 -0
  298. package/modifiers/SimplifyModifier.js +202 -77
  299. package/modifiers/TessellateModifier.cjs.js +1 -0
  300. package/modifiers/TessellateModifier.js +90 -65
  301. package/nodes/Nodes.cjs.js +1 -0
  302. package/nodes/Nodes.js +140 -274
  303. package/nodes/ShaderNode.cjs.js +1 -0
  304. package/nodes/ShaderNode.js +196 -296
  305. package/nodes/accessors/BufferNode.cjs.js +1 -0
  306. package/nodes/accessors/BufferNode.js +8 -4
  307. package/nodes/accessors/CameraNode.cjs.js +1 -0
  308. package/nodes/accessors/CameraNode.js +25 -20
  309. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  310. package/nodes/accessors/CubeTextureNode.js +26 -14
  311. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  312. package/nodes/accessors/MaterialNode.js +53 -43
  313. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  314. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  315. package/nodes/accessors/ModelNode.cjs.js +1 -0
  316. package/nodes/accessors/ModelNode.js +5 -3
  317. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  318. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  319. package/nodes/accessors/NormalNode.cjs.js +1 -0
  320. package/nodes/accessors/NormalNode.js +39 -40
  321. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  322. package/nodes/accessors/Object3DNode.js +50 -40
  323. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  324. package/nodes/accessors/PointUVNode.js +9 -5
  325. package/nodes/accessors/PositionNode.cjs.js +1 -0
  326. package/nodes/accessors/PositionNode.js +41 -42
  327. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  328. package/nodes/accessors/ReferenceNode.js +17 -10
  329. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  330. package/nodes/accessors/ReflectNode.js +26 -23
  331. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  332. package/nodes/accessors/SkinningNode.js +48 -46
  333. package/nodes/accessors/TextureNode.cjs.js +1 -0
  334. package/nodes/accessors/TextureNode.js +29 -14
  335. package/nodes/accessors/UVNode.cjs.js +1 -0
  336. package/nodes/accessors/UVNode.js +11 -5
  337. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  338. package/nodes/core/ArrayUniformNode.js +7 -3
  339. package/nodes/core/AttributeNode.cjs.js +1 -0
  340. package/nodes/core/AttributeNode.js +12 -5
  341. package/nodes/core/BypassNode.cjs.js +1 -0
  342. package/nodes/core/BypassNode.js +12 -5
  343. package/nodes/core/CodeNode.cjs.js +1 -0
  344. package/nodes/core/CodeNode.js +12 -4
  345. package/nodes/core/ConstNode.cjs.js +1 -0
  346. package/nodes/core/ConstNode.js +7 -3
  347. package/nodes/core/ContextNode.cjs.js +1 -0
  348. package/nodes/core/ContextNode.js +8 -3
  349. package/nodes/core/ExpressionNode.cjs.js +1 -0
  350. package/nodes/core/ExpressionNode.js +9 -5
  351. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  352. package/nodes/core/FunctionCallNode.js +15 -6
  353. package/nodes/core/FunctionNode.cjs.js +1 -0
  354. package/nodes/core/FunctionNode.js +25 -10
  355. package/nodes/core/InputNode.cjs.js +1 -0
  356. package/nodes/core/InputNode.js +23 -12
  357. package/nodes/core/Node.cjs.js +1 -0
  358. package/nodes/core/Node.js +75 -35
  359. package/nodes/core/NodeAttribute.cjs.js +1 -0
  360. package/nodes/core/NodeAttribute.js +4 -2
  361. package/nodes/core/NodeBuilder.cjs.js +1 -0
  362. package/nodes/core/NodeBuilder.js +224 -110
  363. package/nodes/core/NodeCode.cjs.js +1 -0
  364. package/nodes/core/NodeCode.js +7 -4
  365. package/nodes/core/NodeFrame.cjs.js +1 -0
  366. package/nodes/core/NodeFrame.js +12 -9
  367. package/nodes/core/NodeFunction.cjs.js +1 -0
  368. package/nodes/core/NodeFunction.js +17 -0
  369. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  370. package/nodes/core/NodeFunctionInput.js +5 -3
  371. package/nodes/core/NodeKeywords.cjs.js +1 -0
  372. package/nodes/core/NodeKeywords.js +16 -5
  373. package/nodes/core/NodeParser.cjs.js +1 -0
  374. package/nodes/core/NodeParser.js +8 -0
  375. package/nodes/core/NodeUniform.cjs.js +1 -0
  376. package/nodes/core/NodeUniform.js +7 -3
  377. package/nodes/core/NodeUtils.cjs.js +1 -0
  378. package/nodes/core/NodeUtils.js +43 -39
  379. package/nodes/core/NodeVar.cjs.js +1 -0
  380. package/nodes/core/NodeVar.js +4 -2
  381. package/nodes/core/NodeVary.cjs.js +1 -0
  382. package/nodes/core/NodeVary.js +4 -2
  383. package/nodes/core/PropertyNode.cjs.js +1 -0
  384. package/nodes/core/PropertyNode.js +10 -4
  385. package/nodes/core/TempNode.cjs.js +1 -0
  386. package/nodes/core/TempNode.js +11 -5
  387. package/nodes/core/UniformNode.cjs.js +1 -0
  388. package/nodes/core/UniformNode.js +10 -4
  389. package/nodes/core/VarNode.cjs.js +1 -0
  390. package/nodes/core/VarNode.js +11 -3
  391. package/nodes/core/VaryNode.cjs.js +1 -0
  392. package/nodes/core/VaryNode.js +15 -6
  393. package/nodes/core/constants.cjs.js +1 -0
  394. package/nodes/core/constants.js +7 -20
  395. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  396. package/nodes/display/ColorSpaceNode.js +38 -34
  397. package/nodes/display/NormalMapNode.cjs.js +1 -0
  398. package/nodes/display/NormalMapNode.js +53 -35
  399. package/nodes/fog/FogNode.cjs.js +1 -0
  400. package/nodes/fog/FogNode.js +9 -5
  401. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  402. package/nodes/fog/FogRangeNode.js +9 -5
  403. package/nodes/functions/BSDFs.cjs.js +1 -0
  404. package/nodes/functions/BSDFs.js +118 -61
  405. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  406. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  407. package/nodes/lights/LightContextNode.cjs.js +1 -0
  408. package/nodes/lights/LightContextNode.js +23 -14
  409. package/nodes/lights/LightNode.cjs.js +1 -0
  410. package/nodes/lights/LightNode.js +31 -27
  411. package/nodes/lights/LightsNode.cjs.js +1 -0
  412. package/nodes/lights/LightsNode.js +28 -9
  413. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  414. package/nodes/loaders/NodeLoader.js +42 -27
  415. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  416. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  417. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  418. package/nodes/loaders/NodeObjectLoader.js +19 -9
  419. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  420. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  421. package/nodes/materials/Materials.cjs.js +1 -0
  422. package/nodes/materials/Materials.js +17 -14
  423. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  424. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  425. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  426. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  427. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  428. package/nodes/materials/NodeMaterial.js +36 -20
  429. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  430. package/nodes/materials/PointsNodeMaterial.js +10 -5
  431. package/nodes/math/CondNode.cjs.js +1 -0
  432. package/nodes/math/CondNode.js +23 -11
  433. package/nodes/math/MathNode.cjs.js +1 -0
  434. package/nodes/math/MathNode.js +142 -98
  435. package/nodes/math/OperatorNode.cjs.js +1 -0
  436. package/nodes/math/OperatorNode.js +46 -24
  437. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  438. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  439. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  440. package/nodes/parsers/GLSLNodeParser.js +13 -0
  441. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  442. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  443. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  444. package/nodes/parsers/WGSLNodeParser.js +13 -0
  445. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  446. package/nodes/procedural/CheckerNode.js +19 -13
  447. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  448. package/nodes/utils/ArrayElementNode.js +8 -4
  449. package/nodes/utils/ConvertNode.cjs.js +1 -0
  450. package/nodes/utils/ConvertNode.js +8 -3
  451. package/nodes/utils/JoinNode.cjs.js +1 -0
  452. package/nodes/utils/JoinNode.js +11 -7
  453. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  454. package/nodes/utils/MatcapUVNode.js +11 -8
  455. package/nodes/utils/OscNode.cjs.js +1 -0
  456. package/nodes/utils/OscNode.js +33 -27
  457. package/nodes/utils/SplitNode.cjs.js +1 -0
  458. package/nodes/utils/SplitNode.js +20 -6
  459. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  460. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  461. package/nodes/utils/TimerNode.cjs.js +1 -0
  462. package/nodes/utils/TimerNode.js +24 -20
  463. package/objects/GroundProjectedEnv.cjs.js +1 -0
  464. package/objects/GroundProjectedEnv.js +37 -22
  465. package/objects/Lensflare.cjs.js +1 -0
  466. package/objects/Lensflare.js +156 -86
  467. package/objects/LightningStorm.cjs.js +1 -0
  468. package/objects/LightningStorm.js +102 -38
  469. package/objects/MarchingCubes.cjs.js +1 -0
  470. package/objects/MarchingCubes.js +303 -150
  471. package/objects/Reflector.cjs.js +1 -0
  472. package/objects/Reflector.js +72 -50
  473. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  474. package/objects/ReflectorForSSRPass.js +131 -80
  475. package/objects/ReflectorRTT.cjs.js +1 -0
  476. package/objects/ReflectorRTT.js +7 -6
  477. package/objects/Refractor.cjs.js +1 -0
  478. package/objects/Refractor.js +106 -64
  479. package/objects/ShadowMesh.cjs.js +1 -0
  480. package/objects/ShadowMesh.js +17 -8
  481. package/objects/Sky.cjs.js +1 -0
  482. package/objects/Sky.js +80 -119
  483. package/objects/Water.cjs.js +1 -0
  484. package/objects/Water.js +127 -83
  485. package/objects/Water2.cjs.js +1 -0
  486. package/objects/Water2.js +108 -72
  487. package/offscreen/jank.cjs.js +1 -0
  488. package/offscreen/jank.js +14 -10
  489. package/offscreen/offscreen.cjs.js +1 -0
  490. package/offscreen/offscreen.js +5 -4
  491. package/offscreen/scene.cjs.js +1 -0
  492. package/offscreen/scene.js +48 -45
  493. package/package.json +3 -3
  494. package/physics/AmmoPhysics.cjs.js +1 -0
  495. package/physics/AmmoPhysics.js +71 -30
  496. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  497. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  498. package/postprocessing/AfterimagePass.cjs.js +1 -0
  499. package/postprocessing/AfterimagePass.js +49 -28
  500. package/postprocessing/BloomPass.cjs.js +1 -0
  501. package/postprocessing/BloomPass.js +69 -43
  502. package/postprocessing/BokehPass.cjs.js +1 -0
  503. package/postprocessing/BokehPass.js +69 -39
  504. package/postprocessing/ClearPass.cjs.js +1 -0
  505. package/postprocessing/ClearPass.js +25 -10
  506. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  507. package/postprocessing/CubeTexturePass.js +27 -28
  508. package/postprocessing/DotScreenPass.cjs.js +1 -0
  509. package/postprocessing/DotScreenPass.js +32 -24
  510. package/postprocessing/EffectComposer.cjs.js +1 -0
  511. package/postprocessing/EffectComposer.js +86 -39
  512. package/postprocessing/FilmPass.cjs.js +1 -0
  513. package/postprocessing/FilmPass.js +30 -25
  514. package/postprocessing/GlitchPass.cjs.js +1 -0
  515. package/postprocessing/GlitchPass.js +61 -38
  516. package/postprocessing/HalftonePass.cjs.js +1 -0
  517. package/postprocessing/HalftonePass.js +39 -19
  518. package/postprocessing/LUTPass.cjs.js +1 -0
  519. package/postprocessing/LUTPass.js +38 -13
  520. package/postprocessing/MaskPass.cjs.js +1 -0
  521. package/postprocessing/MaskPass.js +38 -19
  522. package/postprocessing/OutlinePass.cjs.js +1 -0
  523. package/postprocessing/OutlinePass.js +277 -135
  524. package/postprocessing/Pass.cjs.js +1 -0
  525. package/postprocessing/Pass.js +44 -20
  526. package/postprocessing/RenderPass.cjs.js +1 -0
  527. package/postprocessing/RenderPass.js +36 -13
  528. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  529. package/postprocessing/RenderPixelatedPass.js +58 -44
  530. package/postprocessing/SAOPass.cjs.js +1 -0
  531. package/postprocessing/SAOPass.js +189 -154
  532. package/postprocessing/SMAAPass.cjs.js +1 -0
  533. package/postprocessing/SMAAPass.js +84 -64
  534. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  535. package/postprocessing/SSAARenderPass.js +69 -121
  536. package/postprocessing/SSAOPass.cjs.js +1 -0
  537. package/postprocessing/SSAOPass.js +172 -123
  538. package/postprocessing/SSRPass.cjs.js +1 -0
  539. package/postprocessing/SSRPass.js +280 -211
  540. package/postprocessing/SavePass.cjs.js +1 -0
  541. package/postprocessing/SavePass.js +25 -20
  542. package/postprocessing/ShaderPass.cjs.js +1 -0
  543. package/postprocessing/ShaderPass.js +30 -14
  544. package/postprocessing/TAARenderPass.cjs.js +1 -0
  545. package/postprocessing/TAARenderPass.js +61 -42
  546. package/postprocessing/TexturePass.cjs.js +1 -0
  547. package/postprocessing/TexturePass.js +22 -21
  548. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  549. package/postprocessing/UnrealBloomPass.js +213 -105
  550. package/renderers/CSS2DRenderer.cjs.js +1 -0
  551. package/renderers/CSS2DRenderer.js +56 -44
  552. package/renderers/CSS3DRenderer.cjs.js +1 -0
  553. package/renderers/CSS3DRenderer.js +86 -53
  554. package/renderers/Projector.cjs.js +1 -0
  555. package/renderers/Projector.js +274 -107
  556. package/renderers/SVGRenderer.cjs.js +1 -0
  557. package/renderers/SVGRenderer.js +182 -72
  558. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  559. package/renderers/nodes/accessors/CameraNode.js +40 -29
  560. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  561. package/renderers/nodes/accessors/ModelNode.js +37 -28
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  563. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  564. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  565. package/renderers/nodes/accessors/NormalNode.js +45 -35
  566. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  567. package/renderers/nodes/accessors/PositionNode.js +19 -18
  568. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  569. package/renderers/nodes/accessors/UVNode.js +10 -5
  570. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  571. package/renderers/nodes/core/AttributeNode.js +14 -5
  572. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  573. package/renderers/nodes/core/InputNode.js +14 -4
  574. package/renderers/nodes/core/Node.cjs.js +1 -0
  575. package/renderers/nodes/core/Node.js +17 -7
  576. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  577. package/renderers/nodes/core/NodeAttribute.js +6 -3
  578. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  579. package/renderers/nodes/core/NodeBuilder.js +154 -87
  580. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  581. package/renderers/nodes/core/NodeFrame.js +12 -9
  582. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  583. package/renderers/nodes/core/NodeSlot.js +3 -2
  584. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  585. package/renderers/nodes/core/NodeUniform.js +9 -4
  586. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  587. package/renderers/nodes/core/NodeVary.js +7 -4
  588. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  589. package/renderers/nodes/core/VaryNode.js +12 -6
  590. package/renderers/nodes/core/constants.cjs.js +1 -0
  591. package/renderers/nodes/core/constants.js +13 -16
  592. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  593. package/renderers/nodes/inputs/ColorNode.js +11 -5
  594. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  595. package/renderers/nodes/inputs/FloatNode.js +11 -5
  596. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  597. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  598. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  599. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  600. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  601. package/renderers/nodes/inputs/TextureNode.js +15 -7
  602. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  603. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  604. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  605. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  606. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  607. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  608. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  609. package/renderers/nodes/math/MathNode.js +30 -20
  610. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  611. package/renderers/nodes/math/OperatorNode.js +20 -4
  612. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  613. package/renderers/nodes/utils/SwitchNode.js +9 -4
  614. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  615. package/renderers/nodes/utils/TimerNode.js +10 -5
  616. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  617. package/renderers/webgpu/WebGPU.js +16 -14
  618. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  619. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  620. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  621. package/renderers/webgpu/WebGPUBackground.js +30 -13
  622. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  623. package/renderers/webgpu/WebGPUBinding.js +7 -4
  624. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  625. package/renderers/webgpu/WebGPUBindings.js +57 -21
  626. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  627. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  628. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  629. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  630. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  631. package/renderers/webgpu/WebGPUInfo.js +8 -3
  632. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  633. package/renderers/webgpu/WebGPUObjects.js +10 -5
  634. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  635. package/renderers/webgpu/WebGPUProperties.js +11 -5
  636. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  637. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  638. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  639. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  640. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  641. package/renderers/webgpu/WebGPURenderer.js +262 -124
  642. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  643. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  644. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  645. package/renderers/webgpu/WebGPUSampler.js +12 -7
  646. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  647. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  648. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  649. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  650. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  651. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  652. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  653. package/renderers/webgpu/WebGPUTextures.js +333 -186
  654. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  655. package/renderers/webgpu/WebGPUUniform.js +51 -25
  656. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  657. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  658. package/renderers/webgpu/constants.cjs.js +1 -0
  659. package/renderers/webgpu/constants.js +181 -190
  660. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  661. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  663. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  665. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  667. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  668. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  669. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  670. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  671. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  672. package/shaders/AfterimageShader.cjs.js +1 -0
  673. package/shaders/AfterimageShader.js +18 -28
  674. package/shaders/BasicShader.cjs.js +1 -0
  675. package/shaders/BasicShader.js +7 -9
  676. package/shaders/BleachBypassShader.cjs.js +1 -0
  677. package/shaders/BleachBypassShader.js +15 -31
  678. package/shaders/BlendShader.cjs.js +1 -0
  679. package/shaders/BlendShader.js +19 -26
  680. package/shaders/BokehShader.cjs.js +1 -0
  681. package/shaders/BokehShader.js +36 -98
  682. package/shaders/BokehShader2.cjs.js +1 -0
  683. package/shaders/BokehShader2.js +90 -261
  684. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  685. package/shaders/BrightnessContrastShader.js +19 -28
  686. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  687. package/shaders/ColorCorrectionShader.js +22 -26
  688. package/shaders/ColorifyShader.cjs.js +1 -0
  689. package/shaders/ColorifyShader.js +16 -24
  690. package/shaders/ConvolutionShader.cjs.js +1 -0
  691. package/shaders/ConvolutionShader.js +36 -40
  692. package/shaders/CopyShader.cjs.js +1 -0
  693. package/shaders/CopyShader.js +13 -21
  694. package/shaders/DOFMipMapShader.cjs.js +1 -0
  695. package/shaders/DOFMipMapShader.js +21 -28
  696. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  697. package/shaders/DepthLimitedBlurShader.js +40 -85
  698. package/shaders/DigitalGlitch.cjs.js +1 -0
  699. package/shaders/DigitalGlitch.js +46 -74
  700. package/shaders/DotScreenShader.cjs.js +1 -0
  701. package/shaders/DotScreenShader.js +27 -35
  702. package/shaders/FXAAShader.cjs.js +1 -0
  703. package/shaders/FXAAShader.js +19 -1094
  704. package/shaders/FilmShader.cjs.js +1 -0
  705. package/shaders/FilmShader.js +52 -38
  706. package/shaders/FocusShader.cjs.js +1 -0
  707. package/shaders/FocusShader.js +24 -51
  708. package/shaders/FreiChenShader.cjs.js +1 -0
  709. package/shaders/FreiChenShader.js +24 -57
  710. package/shaders/FresnelShader.cjs.js +1 -0
  711. package/shaders/FresnelShader.js +22 -43
  712. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  713. package/shaders/GammaCorrectionShader.js +11 -19
  714. package/shaders/GodRaysShader.cjs.js +1 -0
  715. package/shaders/GodRaysShader.js +94 -103
  716. package/shaders/HalftoneShader.cjs.js +1 -0
  717. package/shaders/HalftoneShader.js +65 -208
  718. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  719. package/shaders/HorizontalBlurShader.js +23 -7
  720. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  721. package/shaders/HorizontalTiltShiftShader.js +21 -33
  722. package/shaders/HueSaturationShader.cjs.js +1 -0
  723. package/shaders/HueSaturationShader.js +21 -37
  724. package/shaders/KaleidoShader.cjs.js +1 -0
  725. package/shaders/KaleidoShader.js +22 -30
  726. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  727. package/shaders/LuminosityHighPassShader.js +27 -33
  728. package/shaders/LuminosityShader.cjs.js +1 -0
  729. package/shaders/LuminosityShader.js +11 -21
  730. package/shaders/MirrorShader.cjs.js +1 -0
  731. package/shaders/MirrorShader.js +16 -31
  732. package/shaders/NormalMapShader.cjs.js +1 -0
  733. package/shaders/NormalMapShader.js +23 -27
  734. package/shaders/ParallaxShader.cjs.js +1 -0
  735. package/shaders/ParallaxShader.js +48 -107
  736. package/shaders/PixelShader.cjs.js +1 -0
  737. package/shaders/PixelShader.js +16 -24
  738. package/shaders/RGBShiftShader.cjs.js +1 -0
  739. package/shaders/RGBShiftShader.js +22 -26
  740. package/shaders/SAOShader.cjs.js +1 -0
  741. package/shaders/SAOShader.js +48 -132
  742. package/shaders/SMAAShader.cjs.js +1 -0
  743. package/shaders/SMAAShader.js +135 -256
  744. package/shaders/SSAOShader.cjs.js +1 -0
  745. package/shaders/SSAOShader.js +81 -153
  746. package/shaders/SSRShader.cjs.js +1 -0
  747. package/shaders/SSRShader.js +87 -32
  748. package/shaders/SepiaShader.cjs.js +1 -0
  749. package/shaders/SepiaShader.js +15 -25
  750. package/shaders/SobelOperatorShader.cjs.js +1 -0
  751. package/shaders/SobelOperatorShader.js +29 -40
  752. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  753. package/shaders/SubsurfaceScatteringShader.js +39 -53
  754. package/shaders/TechnicolorShader.cjs.js +1 -0
  755. package/shaders/TechnicolorShader.js +13 -20
  756. package/shaders/ToneMapShader.cjs.js +1 -0
  757. package/shaders/ToneMapShader.js +28 -44
  758. package/shaders/ToonShader.cjs.js +1 -0
  759. package/shaders/ToonShader.js +96 -172
  760. package/shaders/TriangleBlurShader.cjs.js +1 -0
  761. package/shaders/TriangleBlurShader.js +23 -32
  762. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  763. package/shaders/UnpackDepthRGBAShader.js +14 -22
  764. package/shaders/VerticalBlurShader.cjs.js +1 -0
  765. package/shaders/VerticalBlurShader.js +23 -7
  766. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  767. package/shaders/VerticalTiltShiftShader.js +21 -33
  768. package/shaders/VignetteShader.cjs.js +1 -0
  769. package/shaders/VignetteShader.js +28 -24
  770. package/shaders/VolumeShader.cjs.js +1 -0
  771. package/shaders/VolumeShader.js +77 -174
  772. package/shaders/WaterRefractionShader.cjs.js +1 -0
  773. package/shaders/WaterRefractionShader.js +6 -38
  774. package/shaders/types.cjs.js +1 -0
  775. package/shaders/types.js +1 -1
  776. package/textures/FlakesTexture.cjs.js +1 -0
  777. package/textures/FlakesTexture.js +10 -8
  778. package/types/helpers.cjs.js +1 -0
  779. package/types/helpers.js +2 -3
  780. package/types/shared.cjs.js +1 -0
  781. package/types/shared.js +1 -0
  782. package/types/utils.cjs.js +1 -0
  783. package/types/utils.js +1 -0
  784. package/utils/BufferGeometryUtils.cjs.js +1 -0
  785. package/utils/BufferGeometryUtils.js +325 -251
  786. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  787. package/utils/GeometryCompressionUtils.js +239 -241
  788. package/utils/GeometryUtils.cjs.js +1 -0
  789. package/utils/GeometryUtils.js +94 -41
  790. package/utils/LDrawUtils.cjs.js +1 -0
  791. package/utils/LDrawUtils.d.ts +5 -0
  792. package/utils/LDrawUtils.js +144 -0
  793. package/utils/RoughnessMipmapper.cjs.js +1 -0
  794. package/utils/RoughnessMipmapper.js +82 -38
  795. package/utils/SceneUtils.cjs.js +1 -0
  796. package/utils/SceneUtils.js +20 -15
  797. package/utils/ShadowMapViewer.cjs.js +1 -0
  798. package/utils/ShadowMapViewer.js +95 -49
  799. package/utils/SkeletonUtils.cjs.js +1 -0
  800. package/utils/SkeletonUtils.js +165 -74
  801. package/utils/UVsDebug.cjs.js +1 -0
  802. package/utils/UVsDebug.js +62 -32
  803. package/utils/WorkerPool.cjs.js +1 -0
  804. package/utils/WorkerPool.js +33 -13
  805. package/webxr/ARButton.cjs.js +1 -0
  806. package/webxr/ARButton.js +98 -72
  807. package/webxr/OculusHandModel.cjs.js +1 -0
  808. package/webxr/OculusHandModel.js +37 -18
  809. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  810. package/webxr/OculusHandPointerModel.js +80 -58
  811. package/webxr/Text2D.cjs.js +1 -0
  812. package/webxr/Text2D.js +19 -37
  813. package/webxr/VRButton.cjs.js +1 -0
  814. package/webxr/VRButton.js +90 -59
  815. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  816. package/webxr/XRControllerModelFactory.js +116 -58
  817. package/webxr/XREstimatedLight.cjs.js +1 -0
  818. package/webxr/XREstimatedLight.js +66 -39
  819. package/webxr/XRHandMeshModel.cjs.js +1 -0
  820. package/webxr/XRHandMeshModel.js +29 -40
  821. package/webxr/XRHandModelFactory.cjs.js +1 -0
  822. package/webxr/XRHandModelFactory.js +31 -28
  823. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  824. package/webxr/XRHandPrimitiveModel.js +27 -41
  825. package/animation/AnimationClipCreator.mjs +0 -57
  826. package/animation/CCDIKSolver.mjs +0 -223
  827. package/animation/MMDAnimationHelper.mjs +0 -514
  828. package/animation/MMDPhysics.mjs +0 -769
  829. package/cameras/CinematicCamera.mjs +0 -129
  830. package/controls/ArcballControls.mjs +0 -1737
  831. package/controls/DeviceOrientationControls.mjs +0 -74
  832. package/controls/DragControls.mjs +0 -172
  833. package/controls/FirstPersonControls.mjs +0 -220
  834. package/controls/FlyControls.mjs +0 -239
  835. package/controls/OrbitControls.mjs +0 -731
  836. package/controls/PointerLockControls.mjs +0 -88
  837. package/controls/TrackballControls.mjs +0 -481
  838. package/controls/TransformControls.mjs +0 -1068
  839. package/controls/experimental/CameraControls.mjs +0 -673
  840. package/csm/CSM.mjs +0 -244
  841. package/csm/CSMFrustum.mjs +0 -75
  842. package/csm/CSMHelper.mjs +0 -114
  843. package/csm/CSMShader.mjs +0 -251
  844. package/curves/CurveExtras.mjs +0 -224
  845. package/curves/NURBSCurve.mjs +0 -35
  846. package/curves/NURBSSurface.mjs +0 -28
  847. package/curves/NURBSUtils.mjs +0 -226
  848. package/deprecated/Geometry.mjs +0 -966
  849. package/effects/AnaglyphEffect.mjs +0 -120
  850. package/effects/AsciiEffect.mjs +0 -173
  851. package/effects/OutlineEffect.mjs +0 -295
  852. package/effects/ParallaxBarrierEffect.mjs +0 -64
  853. package/effects/PeppersGhostEffect.mjs +0 -85
  854. package/effects/StereoEffect.mjs +0 -32
  855. package/environments/RoomEnvironment.mjs +0 -78
  856. package/exporters/ColladaExporter.mjs +0 -299
  857. package/exporters/DRACOExporter.mjs +0 -132
  858. package/exporters/GLTFExporter.mjs +0 -1381
  859. package/exporters/MMDExporter.mjs +0 -102
  860. package/exporters/OBJExporter.mjs +0 -166
  861. package/exporters/PLYExporter.mjs +0 -278
  862. package/exporters/STLExporter.mjs +0 -129
  863. package/exporters/USDZExporter.mjs +0 -328
  864. package/geometries/BoxLineGeometry.mjs +0 -45
  865. package/geometries/ConvexGeometry.mjs +0 -29
  866. package/geometries/DecalGeometry.mjs +0 -184
  867. package/geometries/LightningStrike.mjs +0 -547
  868. package/geometries/ParametricGeometries.mjs +0 -129
  869. package/geometries/ParametricGeometry.mjs +0 -63
  870. package/geometries/RoundedBoxGeometry.mjs +0 -91
  871. package/geometries/TeapotGeometry.mjs +0 -1557
  872. package/geometries/TextGeometry.mjs +0 -23
  873. package/helpers/LightProbeHelper.mjs +0 -72
  874. package/helpers/PositionalAudioHelper.mjs +0 -68
  875. package/helpers/RectAreaLightHelper.mjs +0 -44
  876. package/helpers/VertexNormalsHelper.mjs +0 -54
  877. package/helpers/VertexTangentsHelper.mjs +0 -45
  878. package/index.mjs +0 -969
  879. package/interactive/SelectionBox.mjs +0 -137
  880. package/interactive/SelectionHelper.mjs +0 -54
  881. package/libs/MeshoptDecoder.mjs +0 -210
  882. package/libs/MotionControllers.mjs +0 -261
  883. package/lights/LightProbeGenerator.mjs +0 -145
  884. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  885. package/lines/Line2.mjs +0 -13
  886. package/lines/LineGeometry.mjs +0 -44
  887. package/lines/LineMaterial.mjs +0 -539
  888. package/lines/LineSegments2.mjs +0 -202
  889. package/lines/LineSegmentsGeometry.mjs +0 -124
  890. package/lines/Wireframe.mjs +0 -31
  891. package/lines/WireframeGeometry2.mjs +0 -13
  892. package/loaders/3DMLoader.mjs +0 -802
  893. package/loaders/3MFLoader.mjs +0 -837
  894. package/loaders/AMFLoader.mjs +0 -284
  895. package/loaders/AssimpLoader.mjs +0 -1396
  896. package/loaders/BVHLoader.mjs +0 -207
  897. package/loaders/BasisTextureLoader.mjs +0 -474
  898. package/loaders/ColladaLoader.mjs +0 -2403
  899. package/loaders/DDSLoader.mjs +0 -148
  900. package/loaders/DRACOLoader.mjs +0 -340
  901. package/loaders/EXRLoader.mjs +0 -1351
  902. package/loaders/FBXLoader.mjs +0 -2362
  903. package/loaders/FontLoader.mjs +0 -111
  904. package/loaders/GCodeLoader.mjs +0 -141
  905. package/loaders/GLTFLoader.mjs +0 -2316
  906. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  907. package/loaders/KMZLoader.mjs +0 -75
  908. package/loaders/KTX2Loader.mjs +0 -427
  909. package/loaders/KTXLoader.mjs +0 -87
  910. package/loaders/LDrawLoader.mjs +0 -1409
  911. package/loaders/LUT3dlLoader.mjs +0 -100
  912. package/loaders/LUTCubeLoader.mjs +0 -104
  913. package/loaders/LWOLoader.mjs +0 -625
  914. package/loaders/LottieLoader.mjs +0 -47
  915. package/loaders/MD2Loader.mjs +0 -359
  916. package/loaders/MDDLoader.mjs +0 -58
  917. package/loaders/MMDLoader.mjs +0 -998
  918. package/loaders/MTLLoader.mjs +0 -280
  919. package/loaders/NRRDLoader.mjs +0 -401
  920. package/loaders/NodeMaterialLoader.mjs +0 -146
  921. package/loaders/OBJLoader.mjs +0 -487
  922. package/loaders/PCDLoader.mjs +0 -248
  923. package/loaders/PDBLoader.mjs +0 -246
  924. package/loaders/PLYLoader.mjs +0 -317
  925. package/loaders/PRWMLoader.mjs +0 -160
  926. package/loaders/PVRLoader.mjs +0 -131
  927. package/loaders/RGBELoader.mjs +0 -244
  928. package/loaders/RGBMLoader.mjs +0 -998
  929. package/loaders/STLLoader.mjs +0 -190
  930. package/loaders/SVGLoader.mjs +0 -1709
  931. package/loaders/TDSLoader.mjs +0 -480
  932. package/loaders/TGALoader.mjs +0 -285
  933. package/loaders/TTFLoader.mjs +0 -131
  934. package/loaders/TiltLoader.mjs +0 -373
  935. package/loaders/VOXLoader.mjs +0 -431
  936. package/loaders/VRMLLoader.mjs +0 -2093
  937. package/loaders/VRMLoader.mjs +0 -38
  938. package/loaders/VTKLoader.mjs +0 -646
  939. package/loaders/XLoader.mjs +0 -1258
  940. package/loaders/XYZLoader.mjs +0 -60
  941. package/loaders/lwo/IFFParser.mjs +0 -697
  942. package/loaders/lwo/LWO2Parser.mjs +0 -327
  943. package/loaders/lwo/LWO3Parser.mjs +0 -298
  944. package/math/Capsule.mjs +0 -100
  945. package/math/ColorConverter.mjs +0 -51
  946. package/math/ConvexHull.mjs +0 -574
  947. package/math/ImprovedNoise.mjs +0 -302
  948. package/math/Lut.mjs +0 -135
  949. package/math/MeshSurfaceSampler.mjs +0 -107
  950. package/math/OBB.mjs +0 -235
  951. package/math/Octree.mjs +0 -278
  952. package/math/SimplexNoise.mjs +0 -425
  953. package/misc/ConvexObjectBreaker.mjs +0 -292
  954. package/misc/GPUComputationRenderer.mjs +0 -171
  955. package/misc/Gyroscope.mjs +0 -35
  956. package/misc/MD2Character.mjs +0 -162
  957. package/misc/MD2CharacterComplex.mjs +0 -328
  958. package/misc/MorphAnimMesh.mjs +0 -40
  959. package/misc/MorphBlendMesh.mjs +0 -179
  960. package/misc/ProgressiveLightmap.mjs +0 -166
  961. package/misc/RollerCoaster.mjs +0 -346
  962. package/misc/TubePainter.mjs +0 -123
  963. package/misc/Volume.mjs +0 -244
  964. package/misc/VolumeSlice.mjs +0 -106
  965. package/misc/WebGL.mjs +0 -74
  966. package/modifiers/CurveModifier.mjs +0 -182
  967. package/modifiers/EdgeSplitModifier.mjs +0 -162
  968. package/modifiers/SimplifyModifier.mjs +0 -282
  969. package/modifiers/TessellateModifier.mjs +0 -206
  970. package/nodes/Nodes.mjs +0 -400
  971. package/nodes/ShaderNode.mjs +0 -408
  972. package/nodes/accessors/BufferNode.mjs +0 -15
  973. package/nodes/accessors/CameraNode.mjs +0 -44
  974. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  975. package/nodes/accessors/MaterialNode.mjs +0 -71
  976. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  977. package/nodes/accessors/ModelNode.mjs +0 -9
  978. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  979. package/nodes/accessors/NormalNode.mjs +0 -62
  980. package/nodes/accessors/Object3DNode.mjs +0 -76
  981. package/nodes/accessors/PointUVNode.mjs +0 -13
  982. package/nodes/accessors/PositionNode.mjs +0 -65
  983. package/nodes/accessors/ReferenceNode.mjs +0 -37
  984. package/nodes/accessors/ReflectNode.mjs +0 -43
  985. package/nodes/accessors/SkinningNode.mjs +0 -58
  986. package/nodes/accessors/TextureNode.mjs +0 -54
  987. package/nodes/accessors/UVNode.mjs +0 -23
  988. package/nodes/core/ArrayUniformNode.mjs +0 -14
  989. package/nodes/core/AttributeNode.mjs +0 -30
  990. package/nodes/core/BypassNode.mjs +0 -22
  991. package/nodes/core/CodeNode.mjs +0 -28
  992. package/nodes/core/ConstNode.mjs +0 -14
  993. package/nodes/core/ContextNode.mjs +0 -22
  994. package/nodes/core/ExpressionNode.mjs +0 -19
  995. package/nodes/core/FunctionCallNode.mjs +0 -37
  996. package/nodes/core/FunctionNode.mjs +0 -56
  997. package/nodes/core/InputNode.mjs +0 -38
  998. package/nodes/core/Node.mjs +0 -139
  999. package/nodes/core/NodeAttribute.mjs +0 -10
  1000. package/nodes/core/NodeBuilder.mjs +0 -395
  1001. package/nodes/core/NodeCode.mjs +0 -11
  1002. package/nodes/core/NodeFrame.mjs +0 -35
  1003. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1004. package/nodes/core/NodeKeywords.mjs +0 -44
  1005. package/nodes/core/NodeUniform.mjs +0 -18
  1006. package/nodes/core/NodeUtils.mjs +0 -57
  1007. package/nodes/core/NodeVar.mjs +0 -10
  1008. package/nodes/core/NodeVary.mjs +0 -10
  1009. package/nodes/core/PropertyNode.mjs +0 -21
  1010. package/nodes/core/TempNode.mjs +0 -25
  1011. package/nodes/core/UniformNode.mjs +0 -23
  1012. package/nodes/core/VarNode.mjs +0 -31
  1013. package/nodes/core/VaryNode.mjs +0 -30
  1014. package/nodes/core/constants.mjs +0 -24
  1015. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1016. package/nodes/display/NormalMapNode.mjs +0 -54
  1017. package/nodes/fog/FogNode.mjs +0 -15
  1018. package/nodes/fog/FogRangeNode.mjs +0 -17
  1019. package/nodes/functions/BSDFs.mjs +0 -64
  1020. package/nodes/lights/LightContextNode.mjs +0 -35
  1021. package/nodes/lights/LightNode.mjs +0 -58
  1022. package/nodes/lights/LightsNode.mjs +0 -59
  1023. package/nodes/loaders/NodeLoader.mjs +0 -66
  1024. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1025. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1026. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1027. package/nodes/materials/Materials.mjs +0 -28
  1028. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1029. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1030. package/nodes/materials/NodeMaterial.mjs +0 -64
  1031. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1032. package/nodes/math/CondNode.mjs +0 -38
  1033. package/nodes/math/MathNode.mjs +0 -163
  1034. package/nodes/math/OperatorNode.mjs +0 -103
  1035. package/nodes/procedural/CheckerNode.mjs +0 -21
  1036. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1037. package/nodes/utils/ConvertNode.mjs +0 -25
  1038. package/nodes/utils/JoinNode.mjs +0 -26
  1039. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1040. package/nodes/utils/OscNode.mjs +0 -50
  1041. package/nodes/utils/SplitNode.mjs +0 -45
  1042. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1043. package/nodes/utils/TimerNode.mjs +0 -44
  1044. package/objects/GroundProjectedEnv.mjs +0 -130
  1045. package/objects/Lensflare.mjs +0 -262
  1046. package/objects/LightningStorm.mjs +0 -110
  1047. package/objects/MarchingCubes.mjs +0 -457
  1048. package/objects/Reflector.mjs +0 -166
  1049. package/objects/ReflectorForSSRPass.mjs +0 -247
  1050. package/objects/ReflectorRTT.mjs +0 -10
  1051. package/objects/Refractor.mjs +0 -178
  1052. package/objects/ShadowMesh.mjs +0 -41
  1053. package/objects/Sky.mjs +0 -124
  1054. package/objects/Water.mjs +0 -235
  1055. package/objects/Water2.mjs +0 -252
  1056. package/offscreen/jank.mjs +0 -27
  1057. package/offscreen/offscreen.mjs +0 -5
  1058. package/offscreen/scene.mjs +0 -52
  1059. package/physics/AmmoPhysics.mjs +0 -165
  1060. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1061. package/postprocessing/AfterimagePass.mjs +0 -55
  1062. package/postprocessing/BloomPass.mjs +0 -90
  1063. package/postprocessing/BokehPass.mjs +0 -76
  1064. package/postprocessing/ClearPass.mjs +0 -27
  1065. package/postprocessing/CubeTexturePass.mjs +0 -49
  1066. package/postprocessing/DotScreenPass.mjs +0 -40
  1067. package/postprocessing/EffectComposer.mjs +0 -139
  1068. package/postprocessing/FilmPass.mjs +0 -42
  1069. package/postprocessing/GlitchPass.mjs +0 -75
  1070. package/postprocessing/HalftonePass.mjs +0 -44
  1071. package/postprocessing/LUTPass.mjs +0 -136
  1072. package/postprocessing/MaskPass.mjs +0 -60
  1073. package/postprocessing/OutlinePass.mjs +0 -438
  1074. package/postprocessing/Pass.mjs +0 -37
  1075. package/postprocessing/RenderPass.mjs +0 -48
  1076. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1077. package/postprocessing/SAOPass.mjs +0 -282
  1078. package/postprocessing/SMAAPass.mjs +0 -112
  1079. package/postprocessing/SSAARenderPass.mjs +0 -170
  1080. package/postprocessing/SSAOPass.mjs +0 -265
  1081. package/postprocessing/SSRPass.mjs +0 -432
  1082. package/postprocessing/SavePass.mjs +0 -37
  1083. package/postprocessing/ShaderPass.mjs +0 -39
  1084. package/postprocessing/TAARenderPass.mjs +0 -88
  1085. package/postprocessing/TexturePass.mjs +0 -39
  1086. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1087. package/renderers/CSS2DRenderer.mjs +0 -112
  1088. package/renderers/CSS3DRenderer.mjs +0 -133
  1089. package/renderers/Projector.mjs +0 -511
  1090. package/renderers/SVGRenderer.mjs +0 -306
  1091. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1092. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1093. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1094. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1095. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1096. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1097. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1098. package/renderers/nodes/core/InputNode.mjs +0 -31
  1099. package/renderers/nodes/core/Node.mjs +0 -34
  1100. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1101. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1102. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1103. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1104. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1105. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1106. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1107. package/renderers/nodes/core/constants.mjs +0 -22
  1108. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1110. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1112. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1113. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1114. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1115. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1116. package/renderers/nodes/math/MathNode.mjs +0 -55
  1117. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1118. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1119. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1120. package/renderers/webgpu/WebGPU.mjs +0 -24
  1121. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1122. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1123. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1124. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1125. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1126. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1127. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1128. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1129. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1130. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1131. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1132. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1133. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1134. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1136. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1137. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1138. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1139. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1140. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1141. package/renderers/webgpu/constants.mjs +0 -230
  1142. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1143. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1145. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1146. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1147. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1148. package/shaders/AfterimageShader.mjs +0 -32
  1149. package/shaders/BasicShader.mjs +0 -12
  1150. package/shaders/BleachBypassShader.mjs +0 -35
  1151. package/shaders/BlendShader.mjs +0 -30
  1152. package/shaders/BokehShader.mjs +0 -106
  1153. package/shaders/BokehShader2.mjs +0 -269
  1154. package/shaders/BrightnessContrastShader.mjs +0 -32
  1155. package/shaders/ColorCorrectionShader.mjs +0 -30
  1156. package/shaders/ColorifyShader.mjs +0 -28
  1157. package/shaders/ConvolutionShader.mjs +0 -55
  1158. package/shaders/CopyShader.mjs +0 -25
  1159. package/shaders/DOFMipMapShader.mjs +0 -32
  1160. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1161. package/shaders/DigitalGlitch.mjs +0 -78
  1162. package/shaders/DotScreenShader.mjs +0 -39
  1163. package/shaders/FXAAShader.mjs +0 -1098
  1164. package/shaders/FilmShader.mjs +0 -42
  1165. package/shaders/FocusShader.mjs +0 -55
  1166. package/shaders/FreiChenShader.mjs +0 -61
  1167. package/shaders/FresnelShader.mjs +0 -47
  1168. package/shaders/GammaCorrectionShader.mjs +0 -23
  1169. package/shaders/GodRaysShader.mjs +0 -146
  1170. package/shaders/HalftoneShader.mjs +0 -212
  1171. package/shaders/HorizontalBlurShader.mjs +0 -43
  1172. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1173. package/shaders/HueSaturationShader.mjs +0 -41
  1174. package/shaders/KaleidoShader.mjs +0 -34
  1175. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1176. package/shaders/LuminosityShader.mjs +0 -25
  1177. package/shaders/MirrorShader.mjs +0 -35
  1178. package/shaders/NormalMapShader.mjs +0 -31
  1179. package/shaders/ParallaxShader.mjs +0 -113
  1180. package/shaders/PixelShader.mjs +0 -28
  1181. package/shaders/RGBShiftShader.mjs +0 -30
  1182. package/shaders/SAOShader.mjs +0 -144
  1183. package/shaders/SMAAShader.mjs +0 -272
  1184. package/shaders/SSAOShader.mjs +0 -172
  1185. package/shaders/SSRShader.mjs +0 -324
  1186. package/shaders/SepiaShader.mjs +0 -29
  1187. package/shaders/SobelOperatorShader.mjs +0 -44
  1188. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1189. package/shaders/TechnicolorShader.mjs +0 -24
  1190. package/shaders/ToneMapShader.mjs +0 -48
  1191. package/shaders/ToonShader.mjs +0 -188
  1192. package/shaders/TriangleBlurShader.mjs +0 -36
  1193. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1194. package/shaders/VerticalBlurShader.mjs +0 -44
  1195. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1196. package/shaders/VignetteShader.mjs +0 -28
  1197. package/shaders/VolumeShader.mjs +0 -178
  1198. package/shaders/WaterRefractionShader.mjs +0 -57
  1199. package/textures/FlakesTexture.mjs +0 -30
  1200. package/types/helpers.mjs +0 -4
  1201. package/utils/BufferGeometryUtils.mjs +0 -570
  1202. package/utils/GeometryCompressionUtils.mjs +0 -547
  1203. package/utils/GeometryUtils.mjs +0 -108
  1204. package/utils/RoughnessMipmapper.mjs +0 -213
  1205. package/utils/SceneUtils.mjs +0 -36
  1206. package/utils/ShadowMapViewer.mjs +0 -114
  1207. package/utils/SkeletonUtils.mjs +0 -292
  1208. package/utils/UVsDebug.mjs +0 -85
  1209. package/utils/WorkerPool.mjs +0 -62
  1210. package/webxr/ARButton.mjs +0 -119
  1211. package/webxr/OculusHandModel.mjs +0 -71
  1212. package/webxr/OculusHandPointerModel.mjs +0 -207
  1213. package/webxr/Text2D.mjs +0 -31
  1214. package/webxr/VRButton.mjs +0 -105
  1215. package/webxr/XRControllerModelFactory.mjs +0 -146
  1216. package/webxr/XREstimatedLight.mjs +0 -126
  1217. package/webxr/XRHandMeshModel.mjs +0 -73
  1218. package/webxr/XRHandModelFactory.mjs +0 -61
  1219. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,19 +1,90 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const THREE = require("three");
4
- const fflate = require("fflate");
5
- class EXRLoader extends THREE.DataTextureLoader {
1
+ import { DataTextureLoader, HalfFloatType, FloatType, RGBAFormat, LinearEncoding, RedFormat, LinearFilter, DataUtils } from 'three';
2
+ import { unzlibSync } from 'fflate';
3
+
4
+ /**
5
+ * OpenEXR loader currently supports uncompressed, ZIP(S), RLE, PIZ and DWA/B compression.
6
+ * Supports reading as UnsignedByte, HalfFloat and Float type data texture.
7
+ *
8
+ * Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita
9
+ * implementation, so I have preserved their copyright notices.
10
+ */
11
+ // /*
12
+ // Copyright (c) 2014 - 2017, Syoyo Fujita
13
+ // All rights reserved.
14
+ // Redistribution and use in source and binary forms, with or without
15
+ // modification, are permitted provided that the following conditions are met:
16
+ // * Redistributions of source code must retain the above copyright
17
+ // notice, this list of conditions and the following disclaimer.
18
+ // * Redistributions in binary form must reproduce the above copyright
19
+ // notice, this list of conditions and the following disclaimer in the
20
+ // documentation and/or other materials provided with the distribution.
21
+ // * Neither the name of the Syoyo Fujita nor the
22
+ // names of its contributors may be used to endorse or promote products
23
+ // derived from this software without specific prior written permission.
24
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25
+ // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
+ // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
+ // DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
28
+ // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
+ // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
+ // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
+ // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
+ // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ // */
35
+ // // TinyEXR contains some OpenEXR code, which is licensed under ------------
36
+ // ///////////////////////////////////////////////////////////////////////////
37
+ // //
38
+ // // Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
39
+ // // Digital Ltd. LLC
40
+ // //
41
+ // // All rights reserved.
42
+ // //
43
+ // // Redistribution and use in source and binary forms, with or without
44
+ // // modification, are permitted provided that the following conditions are
45
+ // // met:
46
+ // // * Redistributions of source code must retain the above copyright
47
+ // // notice, this list of conditions and the following disclaimer.
48
+ // // * Redistributions in binary form must reproduce the above
49
+ // // copyright notice, this list of conditions and the following disclaimer
50
+ // // in the documentation and/or other materials provided with the
51
+ // // distribution.
52
+ // // * Neither the name of Industrial Light & Magic nor the names of
53
+ // // its contributors may be used to endorse or promote products derived
54
+ // // from this software without specific prior written permission.
55
+ // //
56
+ // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
57
+ // // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
58
+ // // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
59
+ // // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
60
+ // // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
61
+ // // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
62
+ // // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
63
+ // // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
64
+ // // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
65
+ // // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
66
+ // // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
67
+ // //
68
+ // ///////////////////////////////////////////////////////////////////////////
69
+ // // End of OpenEXR license -------------------------------------------------
70
+
71
+ class EXRLoader extends DataTextureLoader {
6
72
  constructor(manager) {
7
73
  super(manager);
8
- this.type = THREE.HalfFloatType;
74
+ this.type = HalfFloatType;
9
75
  }
76
+
10
77
  parse(buffer) {
11
78
  const USHORT_RANGE = 1 << 16;
12
79
  const BITMAP_SIZE = USHORT_RANGE >> 3;
13
- const HUF_ENCBITS = 16;
14
- const HUF_DECBITS = 14;
15
- const HUF_ENCSIZE = (1 << HUF_ENCBITS) + 1;
16
- const HUF_DECSIZE = 1 << HUF_DECBITS;
80
+ const HUF_ENCBITS = 16; // literal (value) bit length
81
+
82
+ const HUF_DECBITS = 14; // decoding bit size (>= 8)
83
+
84
+ const HUF_ENCSIZE = (1 << HUF_ENCBITS) + 1; // encoding table size
85
+
86
+ const HUF_DECSIZE = 1 << HUF_DECBITS; // decoding table size
87
+
17
88
  const HUF_DECMASK = HUF_DECSIZE - 1;
18
89
  const NBITS = 16;
19
90
  const A_OFFSET = 1 << NBITS - 1;
@@ -32,18 +103,23 @@ class EXRLoader extends THREE.DataTextureLoader {
32
103
  const LOSSY_DCT = 1;
33
104
  const RLE = 2;
34
105
  const logBase = Math.pow(2.7182818, 2.2);
106
+
35
107
  function reverseLutFromBitmap(bitmap, lut) {
36
108
  var k = 0;
109
+
37
110
  for (var i = 0; i < USHORT_RANGE; ++i) {
38
111
  if (i == 0 || bitmap[i >> 3] & 1 << (i & 7)) {
39
112
  lut[k++] = i;
40
113
  }
41
114
  }
115
+
42
116
  var n = k - 1;
43
- while (k < USHORT_RANGE)
44
- lut[k++] = 0;
117
+
118
+ while (k < USHORT_RANGE) lut[k++] = 0;
119
+
45
120
  return n;
46
121
  }
122
+
47
123
  function hufClearDecTable(hdec) {
48
124
  for (var i = 0; i < HUF_DECSIZE; i++) {
49
125
  hdec[i] = {};
@@ -52,139 +128,185 @@ class EXRLoader extends THREE.DataTextureLoader {
52
128
  hdec[i].p = null;
53
129
  }
54
130
  }
55
- const getBitsReturn = { l: 0, c: 0, lc: 0 };
56
- function getBits(nBits, c, lc, uInt8Array2, inOffset) {
131
+
132
+ const getBitsReturn = {
133
+ l: 0,
134
+ c: 0,
135
+ lc: 0
136
+ };
137
+
138
+ function getBits(nBits, c, lc, uInt8Array, inOffset) {
57
139
  while (lc < nBits) {
58
- c = c << 8 | parseUint8Array(uInt8Array2, inOffset);
140
+ c = c << 8 | parseUint8Array(uInt8Array, inOffset);
59
141
  lc += 8;
60
142
  }
143
+
61
144
  lc -= nBits;
62
145
  getBitsReturn.l = c >> lc & (1 << nBits) - 1;
63
146
  getBitsReturn.c = c;
64
147
  getBitsReturn.lc = lc;
65
148
  }
149
+
66
150
  const hufTableBuffer = new Array(59);
151
+
67
152
  function hufCanonicalCodeTable(hcode) {
68
- for (var i = 0; i <= 58; ++i)
69
- hufTableBuffer[i] = 0;
70
- for (var i = 0; i < HUF_ENCSIZE; ++i)
71
- hufTableBuffer[hcode[i]] += 1;
153
+ for (var i = 0; i <= 58; ++i) hufTableBuffer[i] = 0;
154
+
155
+ for (var i = 0; i < HUF_ENCSIZE; ++i) hufTableBuffer[hcode[i]] += 1;
156
+
72
157
  var c = 0;
158
+
73
159
  for (var i = 58; i > 0; --i) {
74
160
  var nc = c + hufTableBuffer[i] >> 1;
75
161
  hufTableBuffer[i] = c;
76
162
  c = nc;
77
163
  }
164
+
78
165
  for (var i = 0; i < HUF_ENCSIZE; ++i) {
79
166
  var l = hcode[i];
80
- if (l > 0)
81
- hcode[i] = l | hufTableBuffer[l]++ << 6;
167
+ if (l > 0) hcode[i] = l | hufTableBuffer[l]++ << 6;
82
168
  }
83
169
  }
84
- function hufUnpackEncTable(uInt8Array2, inDataView, inOffset, ni, im, iM, hcode) {
170
+
171
+ function hufUnpackEncTable(uInt8Array, inDataView, inOffset, ni, im, iM, hcode) {
85
172
  var p = inOffset;
86
173
  var c = 0;
87
174
  var lc = 0;
175
+
88
176
  for (; im <= iM; im++) {
89
- if (p.value - inOffset.value > ni)
90
- return false;
91
- getBits(6, c, lc, uInt8Array2, p);
177
+ if (p.value - inOffset.value > ni) return false;
178
+ getBits(6, c, lc, uInt8Array, p);
92
179
  var l = getBitsReturn.l;
93
180
  c = getBitsReturn.c;
94
181
  lc = getBitsReturn.lc;
95
182
  hcode[im] = l;
183
+
96
184
  if (l == LONG_ZEROCODE_RUN) {
97
185
  if (p.value - inOffset.value > ni) {
98
- throw "Something wrong with hufUnpackEncTable";
186
+ throw 'Something wrong with hufUnpackEncTable';
99
187
  }
100
- getBits(8, c, lc, uInt8Array2, p);
188
+
189
+ getBits(8, c, lc, uInt8Array, p);
101
190
  var zerun = getBitsReturn.l + SHORTEST_LONG_RUN;
102
191
  c = getBitsReturn.c;
103
192
  lc = getBitsReturn.lc;
193
+
104
194
  if (im + zerun > iM + 1) {
105
- throw "Something wrong with hufUnpackEncTable";
195
+ throw 'Something wrong with hufUnpackEncTable';
106
196
  }
107
- while (zerun--)
108
- hcode[im++] = 0;
197
+
198
+ while (zerun--) hcode[im++] = 0;
199
+
109
200
  im--;
110
201
  } else if (l >= SHORT_ZEROCODE_RUN) {
111
202
  var zerun = l - SHORT_ZEROCODE_RUN + 2;
203
+
112
204
  if (im + zerun > iM + 1) {
113
- throw "Something wrong with hufUnpackEncTable";
205
+ throw 'Something wrong with hufUnpackEncTable';
114
206
  }
115
- while (zerun--)
116
- hcode[im++] = 0;
207
+
208
+ while (zerun--) hcode[im++] = 0;
209
+
117
210
  im--;
118
211
  }
119
212
  }
213
+
120
214
  hufCanonicalCodeTable(hcode);
121
215
  }
216
+
122
217
  function hufLength(code) {
123
218
  return code & 63;
124
219
  }
220
+
125
221
  function hufCode(code) {
126
222
  return code >> 6;
127
223
  }
224
+
128
225
  function hufBuildDecTable(hcode, im, iM, hdecod) {
129
226
  for (; im <= iM; im++) {
130
227
  var c = hufCode(hcode[im]);
131
228
  var l = hufLength(hcode[im]);
229
+
132
230
  if (c >> l) {
133
- throw "Invalid table entry";
231
+ throw 'Invalid table entry';
134
232
  }
233
+
135
234
  if (l > HUF_DECBITS) {
136
235
  var pl = hdecod[c >> l - HUF_DECBITS];
236
+
137
237
  if (pl.len) {
138
- throw "Invalid table entry";
238
+ throw 'Invalid table entry';
139
239
  }
240
+
140
241
  pl.lit++;
242
+
141
243
  if (pl.p) {
142
244
  var p = pl.p;
143
245
  pl.p = new Array(pl.lit);
246
+
144
247
  for (var i = 0; i < pl.lit - 1; ++i) {
145
248
  pl.p[i] = p[i];
146
249
  }
147
250
  } else {
148
251
  pl.p = new Array(1);
149
252
  }
253
+
150
254
  pl.p[pl.lit - 1] = im;
151
255
  } else if (l) {
152
256
  var plOffset = 0;
257
+
153
258
  for (var i = 1 << HUF_DECBITS - l; i > 0; i--) {
154
259
  var pl = hdecod[(c << HUF_DECBITS - l) + plOffset];
260
+
155
261
  if (pl.len || pl.p) {
156
- throw "Invalid table entry";
262
+ throw 'Invalid table entry';
157
263
  }
264
+
158
265
  pl.len = l;
159
266
  pl.lit = im;
160
267
  plOffset++;
161
268
  }
162
269
  }
163
270
  }
271
+
164
272
  return true;
165
273
  }
166
- const getCharReturn = { c: 0, lc: 0 };
167
- function getChar(c, lc, uInt8Array2, inOffset) {
168
- c = c << 8 | parseUint8Array(uInt8Array2, inOffset);
274
+
275
+ const getCharReturn = {
276
+ c: 0,
277
+ lc: 0
278
+ };
279
+
280
+ function getChar(c, lc, uInt8Array, inOffset) {
281
+ c = c << 8 | parseUint8Array(uInt8Array, inOffset);
169
282
  lc += 8;
170
283
  getCharReturn.c = c;
171
284
  getCharReturn.lc = lc;
172
285
  }
173
- const getCodeReturn = { c: 0, lc: 0 };
174
- function getCode(po, rlc, c, lc, uInt8Array2, inDataView, inOffset, outBuffer, outBufferOffset, outBufferEndOffset) {
286
+
287
+ const getCodeReturn = {
288
+ c: 0,
289
+ lc: 0
290
+ };
291
+
292
+ function getCode(po, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outBufferOffset, outBufferEndOffset) {
175
293
  if (po == rlc) {
176
294
  if (lc < 8) {
177
- getChar(c, lc, uInt8Array2, inOffset);
295
+ getChar(c, lc, uInt8Array, inOffset);
178
296
  c = getCharReturn.c;
179
297
  lc = getCharReturn.lc;
180
298
  }
299
+
181
300
  lc -= 8;
182
301
  var cs = c >> lc;
183
302
  var cs = new Uint8Array([cs])[0];
303
+
184
304
  if (outBufferOffset.value + cs > outBufferEndOffset) {
185
305
  return false;
186
306
  }
307
+
187
308
  var s = outBuffer[outBufferOffset.value - 1];
309
+
188
310
  while (cs-- > 0) {
189
311
  outBuffer[outBufferOffset.value++] = s;
190
312
  }
@@ -193,17 +315,25 @@ class EXRLoader extends THREE.DataTextureLoader {
193
315
  } else {
194
316
  return false;
195
317
  }
318
+
196
319
  getCodeReturn.c = c;
197
320
  getCodeReturn.lc = lc;
198
321
  }
322
+
199
323
  function UInt16(value) {
200
- return value & 65535;
324
+ return value & 0xffff;
201
325
  }
326
+
202
327
  function Int16(value) {
203
328
  var ref = UInt16(value);
204
- return ref > 32767 ? ref - 65536 : ref;
329
+ return ref > 0x7fff ? ref - 0x10000 : ref;
205
330
  }
206
- const wdec14Return = { a: 0, b: 0 };
331
+
332
+ const wdec14Return = {
333
+ a: 0,
334
+ b: 0
335
+ };
336
+
207
337
  function wdec14(l, h) {
208
338
  var ls = Int16(l);
209
339
  var hs = Int16(h);
@@ -214,6 +344,7 @@ class EXRLoader extends THREE.DataTextureLoader {
214
344
  wdec14Return.a = as;
215
345
  wdec14Return.b = bs;
216
346
  }
347
+
217
348
  function wdec16(l, h) {
218
349
  var m = UInt16(l);
219
350
  var d = UInt16(h);
@@ -222,16 +353,19 @@ class EXRLoader extends THREE.DataTextureLoader {
222
353
  wdec14Return.a = aa;
223
354
  wdec14Return.b = bb;
224
355
  }
225
- function wav2Decode(buffer2, j, nx, ox, ny, oy, mx) {
356
+
357
+ function wav2Decode(buffer, j, nx, ox, ny, oy, mx) {
226
358
  var w14 = mx < 1 << 14;
227
359
  var n = nx > ny ? ny : nx;
228
360
  var p = 1;
229
361
  var p2;
230
- while (p <= n)
231
- p <<= 1;
362
+
363
+ while (p <= n) p <<= 1;
364
+
232
365
  p >>= 1;
233
366
  p2 = p;
234
367
  p >>= 1;
368
+
235
369
  while (p >= 1) {
236
370
  var py = 0;
237
371
  var ey = py + oy * (ny - p2);
@@ -240,200 +374,217 @@ class EXRLoader extends THREE.DataTextureLoader {
240
374
  var ox1 = ox * p;
241
375
  var ox2 = ox * p2;
242
376
  var i00, i01, i10, i11;
377
+
243
378
  for (; py <= ey; py += oy2) {
244
379
  var px = py;
245
380
  var ex = py + ox * (nx - p2);
381
+
246
382
  for (; px <= ex; px += ox2) {
247
383
  var p01 = px + ox1;
248
384
  var p10 = px + oy1;
249
385
  var p11 = p10 + ox1;
386
+
250
387
  if (w14) {
251
- wdec14(buffer2[px + j], buffer2[p10 + j]);
388
+ wdec14(buffer[px + j], buffer[p10 + j]);
252
389
  i00 = wdec14Return.a;
253
390
  i10 = wdec14Return.b;
254
- wdec14(buffer2[p01 + j], buffer2[p11 + j]);
391
+ wdec14(buffer[p01 + j], buffer[p11 + j]);
255
392
  i01 = wdec14Return.a;
256
393
  i11 = wdec14Return.b;
257
394
  wdec14(i00, i01);
258
- buffer2[px + j] = wdec14Return.a;
259
- buffer2[p01 + j] = wdec14Return.b;
395
+ buffer[px + j] = wdec14Return.a;
396
+ buffer[p01 + j] = wdec14Return.b;
260
397
  wdec14(i10, i11);
261
- buffer2[p10 + j] = wdec14Return.a;
262
- buffer2[p11 + j] = wdec14Return.b;
398
+ buffer[p10 + j] = wdec14Return.a;
399
+ buffer[p11 + j] = wdec14Return.b;
263
400
  } else {
264
- wdec16(buffer2[px + j], buffer2[p10 + j]);
401
+ wdec16(buffer[px + j], buffer[p10 + j]);
265
402
  i00 = wdec14Return.a;
266
403
  i10 = wdec14Return.b;
267
- wdec16(buffer2[p01 + j], buffer2[p11 + j]);
404
+ wdec16(buffer[p01 + j], buffer[p11 + j]);
268
405
  i01 = wdec14Return.a;
269
406
  i11 = wdec14Return.b;
270
407
  wdec16(i00, i01);
271
- buffer2[px + j] = wdec14Return.a;
272
- buffer2[p01 + j] = wdec14Return.b;
408
+ buffer[px + j] = wdec14Return.a;
409
+ buffer[p01 + j] = wdec14Return.b;
273
410
  wdec16(i10, i11);
274
- buffer2[p10 + j] = wdec14Return.a;
275
- buffer2[p11 + j] = wdec14Return.b;
411
+ buffer[p10 + j] = wdec14Return.a;
412
+ buffer[p11 + j] = wdec14Return.b;
276
413
  }
277
414
  }
415
+
278
416
  if (nx & p) {
279
417
  var p10 = px + oy1;
280
- if (w14)
281
- wdec14(buffer2[px + j], buffer2[p10 + j]);
282
- else
283
- wdec16(buffer2[px + j], buffer2[p10 + j]);
418
+ if (w14) wdec14(buffer[px + j], buffer[p10 + j]);else wdec16(buffer[px + j], buffer[p10 + j]);
284
419
  i00 = wdec14Return.a;
285
- buffer2[p10 + j] = wdec14Return.b;
286
- buffer2[px + j] = i00;
420
+ buffer[p10 + j] = wdec14Return.b;
421
+ buffer[px + j] = i00;
287
422
  }
288
423
  }
424
+
289
425
  if (ny & p) {
290
426
  var px = py;
291
427
  var ex = py + ox * (nx - p2);
428
+
292
429
  for (; px <= ex; px += ox2) {
293
430
  var p01 = px + ox1;
294
- if (w14)
295
- wdec14(buffer2[px + j], buffer2[p01 + j]);
296
- else
297
- wdec16(buffer2[px + j], buffer2[p01 + j]);
431
+ if (w14) wdec14(buffer[px + j], buffer[p01 + j]);else wdec16(buffer[px + j], buffer[p01 + j]);
298
432
  i00 = wdec14Return.a;
299
- buffer2[p01 + j] = wdec14Return.b;
300
- buffer2[px + j] = i00;
433
+ buffer[p01 + j] = wdec14Return.b;
434
+ buffer[px + j] = i00;
301
435
  }
302
436
  }
437
+
303
438
  p2 = p;
304
439
  p >>= 1;
305
440
  }
441
+
306
442
  return py;
307
443
  }
308
- function hufDecode(encodingTable, decodingTable, uInt8Array2, inDataView, inOffset, ni, rlc, no, outBuffer, outOffset) {
444
+
445
+ function hufDecode(encodingTable, decodingTable, uInt8Array, inDataView, inOffset, ni, rlc, no, outBuffer, outOffset) {
309
446
  var c = 0;
310
447
  var lc = 0;
311
448
  var outBufferEndOffset = no;
312
449
  var inOffsetEnd = Math.trunc(inOffset.value + (ni + 7) / 8);
450
+
313
451
  while (inOffset.value < inOffsetEnd) {
314
- getChar(c, lc, uInt8Array2, inOffset);
452
+ getChar(c, lc, uInt8Array, inOffset);
315
453
  c = getCharReturn.c;
316
454
  lc = getCharReturn.lc;
455
+
317
456
  while (lc >= HUF_DECBITS) {
318
457
  var index = c >> lc - HUF_DECBITS & HUF_DECMASK;
319
458
  var pl = decodingTable[index];
459
+
320
460
  if (pl.len) {
321
461
  lc -= pl.len;
322
- getCode(pl.lit, rlc, c, lc, uInt8Array2, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
462
+ getCode(pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
323
463
  c = getCodeReturn.c;
324
464
  lc = getCodeReturn.lc;
325
465
  } else {
326
466
  if (!pl.p) {
327
- throw "hufDecode issues";
467
+ throw 'hufDecode issues';
328
468
  }
469
+
329
470
  var j;
471
+
330
472
  for (j = 0; j < pl.lit; j++) {
331
473
  var l = hufLength(encodingTable[pl.p[j]]);
474
+
332
475
  while (lc < l && inOffset.value < inOffsetEnd) {
333
- getChar(c, lc, uInt8Array2, inOffset);
476
+ getChar(c, lc, uInt8Array, inOffset);
334
477
  c = getCharReturn.c;
335
478
  lc = getCharReturn.lc;
336
479
  }
480
+
337
481
  if (lc >= l) {
338
482
  if (hufCode(encodingTable[pl.p[j]]) == (c >> lc - l & (1 << l) - 1)) {
339
483
  lc -= l;
340
- getCode(
341
- pl.p[j],
342
- rlc,
343
- c,
344
- lc,
345
- uInt8Array2,
346
- inDataView,
347
- inOffset,
348
- outBuffer,
349
- outOffset,
350
- outBufferEndOffset
351
- );
484
+ getCode(pl.p[j], rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
352
485
  c = getCodeReturn.c;
353
486
  lc = getCodeReturn.lc;
354
487
  break;
355
488
  }
356
489
  }
357
490
  }
491
+
358
492
  if (j == pl.lit) {
359
- throw "hufDecode issues";
493
+ throw 'hufDecode issues';
360
494
  }
361
495
  }
362
496
  }
363
497
  }
498
+
364
499
  var i = 8 - ni & 7;
365
500
  c >>= i;
366
501
  lc -= i;
502
+
367
503
  while (lc > 0) {
368
504
  var pl = decodingTable[c << HUF_DECBITS - lc & HUF_DECMASK];
505
+
369
506
  if (pl.len) {
370
507
  lc -= pl.len;
371
- getCode(pl.lit, rlc, c, lc, uInt8Array2, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
508
+ getCode(pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
372
509
  c = getCodeReturn.c;
373
510
  lc = getCodeReturn.lc;
374
511
  } else {
375
- throw "hufDecode issues";
512
+ throw 'hufDecode issues';
376
513
  }
377
514
  }
515
+
378
516
  return true;
379
517
  }
380
- function hufUncompress(uInt8Array2, inDataView, inOffset, nCompressed, outBuffer, nRaw) {
381
- var outOffset = { value: 0 };
518
+
519
+ function hufUncompress(uInt8Array, inDataView, inOffset, nCompressed, outBuffer, nRaw) {
520
+ var outOffset = {
521
+ value: 0
522
+ };
382
523
  var initialInOffset = inOffset.value;
383
524
  var im = parseUint32(inDataView, inOffset);
384
525
  var iM = parseUint32(inDataView, inOffset);
385
526
  inOffset.value += 4;
386
527
  var nBits = parseUint32(inDataView, inOffset);
387
528
  inOffset.value += 4;
529
+
388
530
  if (im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE) {
389
- throw "Something wrong with HUF_ENCSIZE";
531
+ throw 'Something wrong with HUF_ENCSIZE';
390
532
  }
533
+
391
534
  var freq = new Array(HUF_ENCSIZE);
392
535
  var hdec = new Array(HUF_DECSIZE);
393
536
  hufClearDecTable(hdec);
394
537
  var ni = nCompressed - (inOffset.value - initialInOffset);
395
- hufUnpackEncTable(uInt8Array2, inDataView, inOffset, ni, im, iM, freq);
538
+ hufUnpackEncTable(uInt8Array, inDataView, inOffset, ni, im, iM, freq);
539
+
396
540
  if (nBits > 8 * (nCompressed - (inOffset.value - initialInOffset))) {
397
- throw "Something wrong with hufUncompress";
541
+ throw 'Something wrong with hufUncompress';
398
542
  }
543
+
399
544
  hufBuildDecTable(freq, im, iM, hdec);
400
- hufDecode(freq, hdec, uInt8Array2, inDataView, inOffset, nBits, iM, nRaw, outBuffer, outOffset);
545
+ hufDecode(freq, hdec, uInt8Array, inDataView, inOffset, nBits, iM, nRaw, outBuffer, outOffset);
401
546
  }
547
+
402
548
  function applyLut(lut, data, nData) {
403
549
  for (var i = 0; i < nData; ++i) {
404
550
  data[i] = lut[data[i]];
405
551
  }
406
552
  }
553
+
407
554
  function predictor(source) {
408
555
  for (var t = 1; t < source.length; t++) {
409
556
  var d = source[t - 1] + source[t] - 128;
410
557
  source[t] = d;
411
558
  }
412
559
  }
560
+
413
561
  function interleaveScalar(source, out) {
414
562
  var t1 = 0;
415
563
  var t2 = Math.floor((source.length + 1) / 2);
416
564
  var s = 0;
417
565
  var stop = source.length - 1;
566
+
418
567
  while (true) {
419
- if (s > stop)
420
- break;
568
+ if (s > stop) break;
421
569
  out[s++] = source[t1++];
422
- if (s > stop)
423
- break;
570
+ if (s > stop) break;
424
571
  out[s++] = source[t2++];
425
572
  }
426
573
  }
574
+
427
575
  function decodeRunLength(source) {
428
576
  var size = source.byteLength;
429
577
  var out = new Array();
430
578
  var p = 0;
431
579
  var reader = new DataView(source);
580
+
432
581
  while (size > 0) {
433
582
  var l = reader.getInt8(p++);
583
+
434
584
  if (l < 0) {
435
585
  var count = -l;
436
586
  size -= count + 1;
587
+
437
588
  for (var i = 0; i < count; i++) {
438
589
  out.push(reader.getUint8(p++));
439
590
  }
@@ -441,121 +592,153 @@ class EXRLoader extends THREE.DataTextureLoader {
441
592
  var count = l;
442
593
  size -= 2;
443
594
  var value = reader.getUint8(p++);
595
+
444
596
  for (var i = 0; i < count + 1; i++) {
445
597
  out.push(value);
446
598
  }
447
599
  }
448
600
  }
601
+
449
602
  return out;
450
603
  }
604
+
451
605
  function lossyDctDecode(cscSet, rowPtrs, channelData, acBuffer, dcBuffer, outBuffer) {
452
606
  var dataView = new DataView(outBuffer.buffer);
453
607
  var width = channelData[cscSet.idx[0]].width;
454
608
  var height = channelData[cscSet.idx[0]].height;
455
609
  var numComp = 3;
456
- var numFullBlocksX = Math.floor(width / 8);
457
- var numBlocksX = Math.ceil(width / 8);
458
- var numBlocksY = Math.ceil(height / 8);
610
+ var numFullBlocksX = Math.floor(width / 8.0);
611
+ var numBlocksX = Math.ceil(width / 8.0);
612
+ var numBlocksY = Math.ceil(height / 8.0);
459
613
  var leftoverX = width - (numBlocksX - 1) * 8;
460
614
  var leftoverY = height - (numBlocksY - 1) * 8;
461
- var currAcComp = { value: 0 };
615
+ var currAcComp = {
616
+ value: 0
617
+ };
462
618
  var currDcComp = new Array(numComp);
463
619
  var dctData = new Array(numComp);
464
620
  var halfZigBlock = new Array(numComp);
465
621
  var rowBlock = new Array(numComp);
466
622
  var rowOffsets = new Array(numComp);
467
- for (let comp2 = 0; comp2 < numComp; ++comp2) {
468
- rowOffsets[comp2] = rowPtrs[cscSet.idx[comp2]];
469
- currDcComp[comp2] = comp2 < 1 ? 0 : currDcComp[comp2 - 1] + numBlocksX * numBlocksY;
470
- dctData[comp2] = new Float32Array(64);
471
- halfZigBlock[comp2] = new Uint16Array(64);
472
- rowBlock[comp2] = new Uint16Array(numBlocksX * 64);
623
+
624
+ for (let comp = 0; comp < numComp; ++comp) {
625
+ rowOffsets[comp] = rowPtrs[cscSet.idx[comp]];
626
+ currDcComp[comp] = comp < 1 ? 0 : currDcComp[comp - 1] + numBlocksX * numBlocksY;
627
+ dctData[comp] = new Float32Array(64);
628
+ halfZigBlock[comp] = new Uint16Array(64);
629
+ rowBlock[comp] = new Uint16Array(numBlocksX * 64);
473
630
  }
631
+
474
632
  for (let blocky = 0; blocky < numBlocksY; ++blocky) {
475
633
  var maxY = 8;
476
- if (blocky == numBlocksY - 1)
477
- maxY = leftoverY;
634
+ if (blocky == numBlocksY - 1) maxY = leftoverY;
478
635
  var maxX = 8;
636
+
479
637
  for (let blockx = 0; blockx < numBlocksX; ++blockx) {
480
- if (blockx == numBlocksX - 1)
481
- maxX = leftoverX;
482
- for (let comp2 = 0; comp2 < numComp; ++comp2) {
483
- halfZigBlock[comp2].fill(0);
484
- halfZigBlock[comp2][0] = dcBuffer[currDcComp[comp2]++];
485
- unRleAC(currAcComp, acBuffer, halfZigBlock[comp2]);
486
- unZigZag(halfZigBlock[comp2], dctData[comp2]);
487
- dctInverse(dctData[comp2]);
638
+ if (blockx == numBlocksX - 1) maxX = leftoverX;
639
+
640
+ for (let comp = 0; comp < numComp; ++comp) {
641
+ halfZigBlock[comp].fill(0); // set block DC component
642
+
643
+ halfZigBlock[comp][0] = dcBuffer[currDcComp[comp]++]; // set block AC components
644
+
645
+ unRleAC(currAcComp, acBuffer, halfZigBlock[comp]); // UnZigZag block to float
646
+
647
+ unZigZag(halfZigBlock[comp], dctData[comp]); // decode float dct
648
+
649
+ dctInverse(dctData[comp]);
488
650
  }
489
- if (numComp == 3) {
651
+
652
+ {
490
653
  csc709Inverse(dctData);
491
654
  }
492
- for (let comp2 = 0; comp2 < numComp; ++comp2) {
493
- convertToHalf(dctData[comp2], rowBlock[comp2], blockx * 64);
655
+
656
+ for (let comp = 0; comp < numComp; ++comp) {
657
+ convertToHalf(dctData[comp], rowBlock[comp], blockx * 64);
494
658
  }
495
- }
496
- let offset2 = 0;
497
- for (let comp2 = 0; comp2 < numComp; ++comp2) {
498
- const type2 = channelData[cscSet.idx[comp2]].type;
499
- for (let y2 = 8 * blocky; y2 < 8 * blocky + maxY; ++y2) {
500
- offset2 = rowOffsets[comp2][y2];
659
+ } // blockx
660
+
661
+
662
+ let offset = 0;
663
+
664
+ for (let comp = 0; comp < numComp; ++comp) {
665
+ const type = channelData[cscSet.idx[comp]].type;
666
+
667
+ for (let y = 8 * blocky; y < 8 * blocky + maxY; ++y) {
668
+ offset = rowOffsets[comp][y];
669
+
501
670
  for (let blockx = 0; blockx < numFullBlocksX; ++blockx) {
502
- const src = blockx * 64 + (y2 & 7) * 8;
503
- dataView.setUint16(offset2 + 0 * INT16_SIZE * type2, rowBlock[comp2][src + 0], true);
504
- dataView.setUint16(offset2 + 1 * INT16_SIZE * type2, rowBlock[comp2][src + 1], true);
505
- dataView.setUint16(offset2 + 2 * INT16_SIZE * type2, rowBlock[comp2][src + 2], true);
506
- dataView.setUint16(offset2 + 3 * INT16_SIZE * type2, rowBlock[comp2][src + 3], true);
507
- dataView.setUint16(offset2 + 4 * INT16_SIZE * type2, rowBlock[comp2][src + 4], true);
508
- dataView.setUint16(offset2 + 5 * INT16_SIZE * type2, rowBlock[comp2][src + 5], true);
509
- dataView.setUint16(offset2 + 6 * INT16_SIZE * type2, rowBlock[comp2][src + 6], true);
510
- dataView.setUint16(offset2 + 7 * INT16_SIZE * type2, rowBlock[comp2][src + 7], true);
511
- offset2 += 8 * INT16_SIZE * type2;
671
+ const src = blockx * 64 + (y & 0x7) * 8;
672
+ dataView.setUint16(offset + 0 * INT16_SIZE * type, rowBlock[comp][src + 0], true);
673
+ dataView.setUint16(offset + 1 * INT16_SIZE * type, rowBlock[comp][src + 1], true);
674
+ dataView.setUint16(offset + 2 * INT16_SIZE * type, rowBlock[comp][src + 2], true);
675
+ dataView.setUint16(offset + 3 * INT16_SIZE * type, rowBlock[comp][src + 3], true);
676
+ dataView.setUint16(offset + 4 * INT16_SIZE * type, rowBlock[comp][src + 4], true);
677
+ dataView.setUint16(offset + 5 * INT16_SIZE * type, rowBlock[comp][src + 5], true);
678
+ dataView.setUint16(offset + 6 * INT16_SIZE * type, rowBlock[comp][src + 6], true);
679
+ dataView.setUint16(offset + 7 * INT16_SIZE * type, rowBlock[comp][src + 7], true);
680
+ offset += 8 * INT16_SIZE * type;
512
681
  }
513
- }
682
+ } // handle partial X blocks
683
+
684
+
514
685
  if (numFullBlocksX != numBlocksX) {
515
- for (let y2 = 8 * blocky; y2 < 8 * blocky + maxY; ++y2) {
516
- const offset3 = rowOffsets[comp2][y2] + 8 * numFullBlocksX * INT16_SIZE * type2;
517
- const src = numFullBlocksX * 64 + (y2 & 7) * 8;
518
- for (let x2 = 0; x2 < maxX; ++x2) {
519
- dataView.setUint16(offset3 + x2 * INT16_SIZE * type2, rowBlock[comp2][src + x2], true);
686
+ for (let y = 8 * blocky; y < 8 * blocky + maxY; ++y) {
687
+ const offset = rowOffsets[comp][y] + 8 * numFullBlocksX * INT16_SIZE * type;
688
+ const src = numFullBlocksX * 64 + (y & 0x7) * 8;
689
+
690
+ for (let x = 0; x < maxX; ++x) {
691
+ dataView.setUint16(offset + x * INT16_SIZE * type, rowBlock[comp][src + x], true);
520
692
  }
521
693
  }
522
694
  }
523
- }
524
- }
695
+ } // comp
696
+
697
+ } // blocky
698
+
699
+
525
700
  var halfRow = new Uint16Array(width);
526
- var dataView = new DataView(outBuffer.buffer);
701
+ var dataView = new DataView(outBuffer.buffer); // convert channels back to float, if needed
702
+
527
703
  for (var comp = 0; comp < numComp; ++comp) {
528
704
  channelData[cscSet.idx[comp]].decoded = true;
529
705
  var type = channelData[cscSet.idx[comp]].type;
530
- if (channelData[comp].type != 2)
531
- continue;
706
+ if (channelData[comp].type != 2) continue;
707
+
532
708
  for (var y = 0; y < height; ++y) {
533
- const offset2 = rowOffsets[comp][y];
709
+ const offset = rowOffsets[comp][y];
710
+
534
711
  for (var x = 0; x < width; ++x) {
535
- halfRow[x] = dataView.getUint16(offset2 + x * INT16_SIZE * type, true);
712
+ halfRow[x] = dataView.getUint16(offset + x * INT16_SIZE * type, true);
536
713
  }
714
+
537
715
  for (var x = 0; x < width; ++x) {
538
- dataView.setFloat32(offset2 + x * INT16_SIZE * type, decodeFloat16(halfRow[x]), true);
716
+ dataView.setFloat32(offset + x * INT16_SIZE * type, decodeFloat16(halfRow[x]), true);
539
717
  }
540
718
  }
541
719
  }
542
720
  }
721
+
543
722
  function unRleAC(currAcComp, acBuffer, halfZigBlock) {
544
723
  var acValue;
545
724
  var dctComp = 1;
725
+
546
726
  while (dctComp < 64) {
547
727
  acValue = acBuffer[currAcComp.value];
548
- if (acValue == 65280) {
728
+
729
+ if (acValue == 0xff00) {
549
730
  dctComp = 64;
550
- } else if (acValue >> 8 == 255) {
551
- dctComp += acValue & 255;
731
+ } else if (acValue >> 8 == 0xff) {
732
+ dctComp += acValue & 0xff;
552
733
  } else {
553
734
  halfZigBlock[dctComp] = acValue;
554
735
  dctComp++;
555
736
  }
737
+
556
738
  currAcComp.value++;
557
739
  }
558
740
  }
741
+
559
742
  function unZigZag(src, dst) {
560
743
  dst[0] = decodeFloat16(src[0]);
561
744
  dst[1] = decodeFloat16(src[1]);
@@ -622,18 +805,20 @@ class EXRLoader extends THREE.DataTextureLoader {
622
805
  dst[62] = decodeFloat16(src[62]);
623
806
  dst[63] = decodeFloat16(src[63]);
624
807
  }
808
+
625
809
  function dctInverse(data) {
626
- const a = 0.5 * Math.cos(3.14159 / 4);
627
- const b = 0.5 * Math.cos(3.14159 / 16);
628
- const c = 0.5 * Math.cos(3.14159 / 8);
629
- const d = 0.5 * Math.cos(3 * 3.14159 / 16);
630
- const e = 0.5 * Math.cos(5 * 3.14159 / 16);
631
- const f = 0.5 * Math.cos(3 * 3.14159 / 8);
632
- const g = 0.5 * Math.cos(7 * 3.14159 / 16);
810
+ const a = 0.5 * Math.cos(3.14159 / 4.0);
811
+ const b = 0.5 * Math.cos(3.14159 / 16.0);
812
+ const c = 0.5 * Math.cos(3.14159 / 8.0);
813
+ const d = 0.5 * Math.cos(3.0 * 3.14159 / 16.0);
814
+ const e = 0.5 * Math.cos(5.0 * 3.14159 / 16.0);
815
+ const f = 0.5 * Math.cos(3.0 * 3.14159 / 8.0);
816
+ const g = 0.5 * Math.cos(7.0 * 3.14159 / 16.0);
633
817
  var alpha = new Array(4);
634
818
  var beta = new Array(4);
635
819
  var theta = new Array(4);
636
820
  var gamma = new Array(4);
821
+
637
822
  for (var row = 0; row < 8; ++row) {
638
823
  var rowPtr = row * 8;
639
824
  alpha[0] = c * data[rowPtr + 2];
@@ -661,6 +846,7 @@ class EXRLoader extends THREE.DataTextureLoader {
661
846
  data[rowPtr + 6] = gamma[1] - beta[1];
662
847
  data[rowPtr + 7] = gamma[0] - beta[0];
663
848
  }
849
+
664
850
  for (var column = 0; column < 8; ++column) {
665
851
  alpha[0] = c * data[16 + column];
666
852
  alpha[1] = f * data[16 + column];
@@ -688,6 +874,7 @@ class EXRLoader extends THREE.DataTextureLoader {
688
874
  data[56 + column] = gamma[0] - beta[0];
689
875
  }
690
876
  }
877
+
691
878
  function csc709Inverse(data) {
692
879
  for (var i = 0; i < 64; ++i) {
693
880
  var y = data[0][i];
@@ -698,132 +885,175 @@ class EXRLoader extends THREE.DataTextureLoader {
698
885
  data[2][i] = y + 1.8556 * cb;
699
886
  }
700
887
  }
888
+
701
889
  function convertToHalf(src, dst, idx) {
702
890
  for (var i = 0; i < 64; ++i) {
703
- dst[idx + i] = THREE.DataUtils.toHalfFloat(toLinear(src[i]));
891
+ dst[idx + i] = DataUtils.toHalfFloat(toLinear(src[i]));
704
892
  }
705
893
  }
894
+
706
895
  function toLinear(float) {
707
896
  if (float <= 1) {
708
897
  return Math.sign(float) * Math.pow(Math.abs(float), 2.2);
709
898
  } else {
710
- return Math.sign(float) * Math.pow(logBase, Math.abs(float) - 1);
899
+ return Math.sign(float) * Math.pow(logBase, Math.abs(float) - 1.0);
711
900
  }
712
901
  }
902
+
713
903
  function uncompressRAW(info) {
714
904
  return new DataView(info.array.buffer, info.offset.value, info.size);
715
905
  }
906
+
716
907
  function uncompressRLE(info) {
717
908
  var compressed = info.viewer.buffer.slice(info.offset.value, info.offset.value + info.size);
718
909
  var rawBuffer = new Uint8Array(decodeRunLength(compressed));
719
910
  var tmpBuffer = new Uint8Array(rawBuffer.length);
720
- predictor(rawBuffer);
721
- interleaveScalar(rawBuffer, tmpBuffer);
911
+ predictor(rawBuffer); // revert predictor
912
+
913
+ interleaveScalar(rawBuffer, tmpBuffer); // interleave pixels
914
+
722
915
  return new DataView(tmpBuffer.buffer);
723
916
  }
917
+
724
918
  function uncompressZIP(info) {
725
919
  var compressed = info.array.slice(info.offset.value, info.offset.value + info.size);
726
- var rawBuffer = fflate.unzlibSync(compressed);
920
+ var rawBuffer = unzlibSync(compressed); // eslint-disable-line no-undef
921
+
727
922
  var tmpBuffer = new Uint8Array(rawBuffer.length);
728
- predictor(rawBuffer);
729
- interleaveScalar(rawBuffer, tmpBuffer);
923
+ predictor(rawBuffer); // revert predictor
924
+
925
+ interleaveScalar(rawBuffer, tmpBuffer); // interleave pixels
926
+
730
927
  return new DataView(tmpBuffer.buffer);
731
928
  }
929
+
732
930
  function uncompressPIZ(info) {
733
931
  var inDataView = info.viewer;
734
- var inOffset = { value: info.offset.value };
932
+ var inOffset = {
933
+ value: info.offset.value
934
+ };
735
935
  var outBuffer = new Uint16Array(info.width * info.scanlineBlockSize * (info.channels * info.type));
736
- var bitmap = new Uint8Array(BITMAP_SIZE);
936
+ var bitmap = new Uint8Array(BITMAP_SIZE); // Setup channel info
937
+
737
938
  var outBufferEnd = 0;
738
939
  var pizChannelData = new Array(info.channels);
940
+
739
941
  for (var i = 0; i < info.channels; i++) {
740
942
  pizChannelData[i] = {};
741
- pizChannelData[i]["start"] = outBufferEnd;
742
- pizChannelData[i]["end"] = pizChannelData[i]["start"];
743
- pizChannelData[i]["nx"] = info.width;
744
- pizChannelData[i]["ny"] = info.lines;
745
- pizChannelData[i]["size"] = info.type;
943
+ pizChannelData[i]['start'] = outBufferEnd;
944
+ pizChannelData[i]['end'] = pizChannelData[i]['start'];
945
+ pizChannelData[i]['nx'] = info.width;
946
+ pizChannelData[i]['ny'] = info.lines;
947
+ pizChannelData[i]['size'] = info.type;
746
948
  outBufferEnd += pizChannelData[i].nx * pizChannelData[i].ny * pizChannelData[i].size;
747
- }
949
+ } // Read range compression data
950
+
951
+
748
952
  var minNonZero = parseUint16(inDataView, inOffset);
749
953
  var maxNonZero = parseUint16(inDataView, inOffset);
954
+
750
955
  if (maxNonZero >= BITMAP_SIZE) {
751
- throw "Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";
956
+ throw 'Something is wrong with PIZ_COMPRESSION BITMAP_SIZE';
752
957
  }
958
+
753
959
  if (minNonZero <= maxNonZero) {
754
960
  for (var i = 0; i < maxNonZero - minNonZero + 1; i++) {
755
961
  bitmap[i + minNonZero] = parseUint8(inDataView, inOffset);
756
962
  }
757
- }
963
+ } // Reverse LUT
964
+
965
+
758
966
  var lut = new Uint16Array(USHORT_RANGE);
759
967
  var maxValue = reverseLutFromBitmap(bitmap, lut);
760
- var length = parseUint32(inDataView, inOffset);
761
- hufUncompress(info.array, inDataView, inOffset, length, outBuffer, outBufferEnd);
968
+ var length = parseUint32(inDataView, inOffset); // Huffman decoding
969
+
970
+ hufUncompress(info.array, inDataView, inOffset, length, outBuffer, outBufferEnd); // Wavelet decoding
971
+
762
972
  for (var i = 0; i < info.channels; ++i) {
763
973
  var cd = pizChannelData[i];
974
+
764
975
  for (var j = 0; j < pizChannelData[i].size; ++j) {
765
976
  wav2Decode(outBuffer, cd.start + j, cd.nx, cd.size, cd.ny, cd.nx * cd.size, maxValue);
766
977
  }
767
- }
768
- applyLut(lut, outBuffer, outBufferEnd);
769
- var tmpOffset2 = 0;
978
+ } // Expand the pixel data to their original range
979
+
980
+
981
+ applyLut(lut, outBuffer, outBufferEnd); // Rearrange the pixel data into the format expected by the caller.
982
+
983
+ var tmpOffset = 0;
770
984
  var tmpBuffer = new Uint8Array(outBuffer.buffer.byteLength);
985
+
771
986
  for (var y = 0; y < info.lines; y++) {
772
987
  for (var c = 0; c < info.channels; c++) {
773
988
  var cd = pizChannelData[c];
774
989
  var n = cd.nx * cd.size;
775
990
  var cp = new Uint8Array(outBuffer.buffer, cd.end * INT16_SIZE, n * INT16_SIZE);
776
- tmpBuffer.set(cp, tmpOffset2);
777
- tmpOffset2 += n * INT16_SIZE;
991
+ tmpBuffer.set(cp, tmpOffset);
992
+ tmpOffset += n * INT16_SIZE;
778
993
  cd.end += n;
779
994
  }
780
995
  }
996
+
781
997
  return new DataView(tmpBuffer.buffer);
782
998
  }
999
+
783
1000
  function uncompressPXR(info) {
784
1001
  var compressed = info.array.slice(info.offset.value, info.offset.value + info.size);
785
- var rawBuffer = fflate.unzlibSync(compressed);
1002
+ var rawBuffer = unzlibSync(compressed); // eslint-disable-line no-undef
1003
+
786
1004
  const sz = info.lines * info.channels * info.width;
787
1005
  const tmpBuffer = info.type == 1 ? new Uint16Array(sz) : new Uint32Array(sz);
788
1006
  let tmpBufferEnd = 0;
789
1007
  let writePtr = 0;
790
1008
  const ptr = new Array(4);
1009
+
791
1010
  for (let y = 0; y < info.lines; y++) {
792
1011
  for (let c = 0; c < info.channels; c++) {
793
1012
  let pixel = 0;
1013
+
794
1014
  switch (info.type) {
795
1015
  case 1:
796
1016
  ptr[0] = tmpBufferEnd;
797
1017
  ptr[1] = ptr[0] + info.width;
798
1018
  tmpBufferEnd = ptr[1] + info.width;
1019
+
799
1020
  for (let j = 0; j < info.width; ++j) {
800
1021
  const diff = rawBuffer[ptr[0]++] << 8 | rawBuffer[ptr[1]++];
801
1022
  pixel += diff;
802
1023
  tmpBuffer[writePtr] = pixel;
803
1024
  writePtr++;
804
1025
  }
1026
+
805
1027
  break;
1028
+
806
1029
  case 2:
807
1030
  ptr[0] = tmpBufferEnd;
808
1031
  ptr[1] = ptr[0] + info.width;
809
1032
  ptr[2] = ptr[1] + info.width;
810
1033
  tmpBufferEnd = ptr[2] + info.width;
1034
+
811
1035
  for (let j = 0; j < info.width; ++j) {
812
1036
  const diff = rawBuffer[ptr[0]++] << 24 | rawBuffer[ptr[1]++] << 16 | rawBuffer[ptr[2]++] << 8;
813
1037
  pixel += diff;
814
1038
  tmpBuffer[writePtr] = pixel;
815
1039
  writePtr++;
816
1040
  }
1041
+
817
1042
  break;
818
1043
  }
819
1044
  }
820
1045
  }
1046
+
821
1047
  return new DataView(tmpBuffer.buffer);
822
1048
  }
1049
+
823
1050
  function uncompressDWA(info) {
824
1051
  var inDataView = info.viewer;
825
- var inOffset = { value: info.offset.value };
826
- var outBuffer = new Uint8Array(info.width * info.lines * (info.channels * info.type * INT16_SIZE));
1052
+ var inOffset = {
1053
+ value: info.offset.value
1054
+ };
1055
+ var outBuffer = new Uint8Array(info.width * info.lines * (info.channels * info.type * INT16_SIZE)); // Read compression header information
1056
+
827
1057
  var dwaHeader = {
828
1058
  version: parseInt64(inDataView, inOffset),
829
1059
  unknownUncompressedSize: parseInt64(inDataView, inOffset),
@@ -837,11 +1067,15 @@ class EXRLoader extends THREE.DataTextureLoader {
837
1067
  totalDcUncompressedCount: parseInt64(inDataView, inOffset),
838
1068
  acCompression: parseInt64(inDataView, inOffset)
839
1069
  };
1070
+
840
1071
  if (dwaHeader.version < 2) {
841
- throw "EXRLoader.parse: " + EXRHeader.compression + " version " + dwaHeader.version + " is unsupported";
842
- }
1072
+ throw 'EXRLoader.parse: ' + EXRHeader.compression + ' version ' + dwaHeader.version + ' is unsupported';
1073
+ } // Read channel ruleset information
1074
+
1075
+
843
1076
  var channelRules = new Array();
844
1077
  var ruleSize = parseUint16(inDataView, inOffset) - INT16_SIZE;
1078
+
845
1079
  while (ruleSize > 0) {
846
1080
  var name = parseNullTerminatedString(inDataView.buffer, inOffset);
847
1081
  var value = parseUint8(inDataView, inOffset);
@@ -850,15 +1084,18 @@ class EXRLoader extends THREE.DataTextureLoader {
850
1084
  var index = new Int8Array([csc])[0];
851
1085
  var type = parseUint8(inDataView, inOffset);
852
1086
  channelRules.push({
853
- name,
854
- index,
855
- type,
856
- compression
1087
+ name: name,
1088
+ index: index,
1089
+ type: type,
1090
+ compression: compression
857
1091
  });
858
1092
  ruleSize -= name.length + 3;
859
- }
1093
+ } // Classify channels
1094
+
1095
+
860
1096
  var channels = EXRHeader.channels;
861
1097
  var channelData = new Array(info.channels);
1098
+
862
1099
  for (var i = 0; i < info.channels; ++i) {
863
1100
  var cd = channelData[i] = {};
864
1101
  var channel = channels[i];
@@ -870,43 +1107,48 @@ class EXRLoader extends THREE.DataTextureLoader {
870
1107
  cd.width = info.width;
871
1108
  cd.height = info.lines;
872
1109
  }
1110
+
873
1111
  var cscSet = {
874
1112
  idx: new Array(3)
875
1113
  };
876
- for (var offset2 = 0; offset2 < info.channels; ++offset2) {
877
- var cd = channelData[offset2];
1114
+
1115
+ for (var offset = 0; offset < info.channels; ++offset) {
1116
+ var cd = channelData[offset];
1117
+
878
1118
  for (var i = 0; i < channelRules.length; ++i) {
879
1119
  var rule = channelRules[i];
1120
+
880
1121
  if (cd.name == rule.name) {
881
1122
  cd.compression = rule.compression;
1123
+
882
1124
  if (rule.index >= 0) {
883
- cscSet.idx[rule.index] = offset2;
1125
+ cscSet.idx[rule.index] = offset;
884
1126
  }
885
- cd.offset = offset2;
1127
+
1128
+ cd.offset = offset;
886
1129
  }
887
1130
  }
888
- }
1131
+ } // Read DCT - AC component data
1132
+
1133
+
889
1134
  if (dwaHeader.acCompressedSize > 0) {
890
1135
  switch (dwaHeader.acCompression) {
891
1136
  case STATIC_HUFFMAN:
892
1137
  var acBuffer = new Uint16Array(dwaHeader.totalAcUncompressedCount);
893
- hufUncompress(
894
- info.array,
895
- inDataView,
896
- inOffset,
897
- dwaHeader.acCompressedSize,
898
- acBuffer,
899
- dwaHeader.totalAcUncompressedCount
900
- );
1138
+ hufUncompress(info.array, inDataView, inOffset, dwaHeader.acCompressedSize, acBuffer, dwaHeader.totalAcUncompressedCount);
901
1139
  break;
1140
+
902
1141
  case DEFLATE:
903
1142
  var compressed = info.array.slice(inOffset.value, inOffset.value + dwaHeader.totalAcUncompressedCount);
904
- var data = fflate.unzlibSync(compressed);
1143
+ var data = unzlibSync(compressed); // eslint-disable-line no-undef
1144
+
905
1145
  var acBuffer = new Uint16Array(data.buffer);
906
1146
  inOffset.value += dwaHeader.totalAcUncompressedCount;
907
1147
  break;
908
1148
  }
909
- }
1149
+ } // Read DCT - DC component data
1150
+
1151
+
910
1152
  if (dwaHeader.dcCompressedSize > 0) {
911
1153
  var zlibInfo = {
912
1154
  array: info.array,
@@ -915,404 +1157,505 @@ class EXRLoader extends THREE.DataTextureLoader {
915
1157
  };
916
1158
  var dcBuffer = new Uint16Array(uncompressZIP(zlibInfo).buffer);
917
1159
  inOffset.value += dwaHeader.dcCompressedSize;
918
- }
1160
+ } // Read RLE compressed data
1161
+
1162
+
919
1163
  if (dwaHeader.rleRawSize > 0) {
920
1164
  var compressed = info.array.slice(inOffset.value, inOffset.value + dwaHeader.rleCompressedSize);
921
- var data = fflate.unzlibSync(compressed);
1165
+ var data = unzlibSync(compressed); // eslint-disable-line no-undef
1166
+
922
1167
  var rleBuffer = decodeRunLength(data.buffer);
923
1168
  inOffset.value += dwaHeader.rleCompressedSize;
924
- }
1169
+ } // Prepare outbuffer data offset
1170
+
1171
+
925
1172
  var outBufferEnd = 0;
926
1173
  var rowOffsets = new Array(channelData.length);
1174
+
927
1175
  for (var i = 0; i < rowOffsets.length; ++i) {
928
1176
  rowOffsets[i] = new Array();
929
1177
  }
1178
+
930
1179
  for (var y = 0; y < info.lines; ++y) {
931
1180
  for (var chan = 0; chan < channelData.length; ++chan) {
932
1181
  rowOffsets[chan].push(outBufferEnd);
933
1182
  outBufferEnd += channelData[chan].width * info.type * INT16_SIZE;
934
1183
  }
935
- }
936
- lossyDctDecode(cscSet, rowOffsets, channelData, acBuffer, dcBuffer, outBuffer);
1184
+ } // Lossy DCT decode RGB channels
1185
+
1186
+
1187
+ lossyDctDecode(cscSet, rowOffsets, channelData, acBuffer, dcBuffer, outBuffer); // Decode other channels
1188
+
937
1189
  for (var i = 0; i < channelData.length; ++i) {
938
1190
  var cd = channelData[i];
939
- if (cd.decoded)
940
- continue;
1191
+ if (cd.decoded) continue;
1192
+
941
1193
  switch (cd.compression) {
942
1194
  case RLE:
943
1195
  var row = 0;
944
1196
  var rleOffset = 0;
1197
+
945
1198
  for (var y = 0; y < info.lines; ++y) {
946
1199
  var rowOffsetBytes = rowOffsets[i][row];
1200
+
947
1201
  for (var x = 0; x < cd.width; ++x) {
948
1202
  for (var byte = 0; byte < INT16_SIZE * cd.type; ++byte) {
949
1203
  outBuffer[rowOffsetBytes++] = rleBuffer[rleOffset + byte * cd.width * cd.height];
950
1204
  }
1205
+
951
1206
  rleOffset++;
952
1207
  }
1208
+
953
1209
  row++;
954
1210
  }
1211
+
955
1212
  break;
956
- case LOSSY_DCT:
1213
+
1214
+ case LOSSY_DCT: // skip
1215
+
957
1216
  default:
958
- throw "EXRLoader.parse: unsupported channel compression";
1217
+ throw 'EXRLoader.parse: unsupported channel compression';
959
1218
  }
960
1219
  }
1220
+
961
1221
  return new DataView(outBuffer.buffer);
962
1222
  }
963
- function parseNullTerminatedString(buffer2, offset2) {
964
- var uintBuffer = new Uint8Array(buffer2);
1223
+
1224
+ function parseNullTerminatedString(buffer, offset) {
1225
+ var uintBuffer = new Uint8Array(buffer);
965
1226
  var endOffset = 0;
966
- while (uintBuffer[offset2.value + endOffset] != 0) {
1227
+
1228
+ while (uintBuffer[offset.value + endOffset] != 0) {
967
1229
  endOffset += 1;
968
1230
  }
969
- var stringValue = new TextDecoder().decode(uintBuffer.slice(offset2.value, offset2.value + endOffset));
970
- offset2.value = offset2.value + endOffset + 1;
1231
+
1232
+ var stringValue = new TextDecoder().decode(uintBuffer.slice(offset.value, offset.value + endOffset));
1233
+ offset.value = offset.value + endOffset + 1;
971
1234
  return stringValue;
972
1235
  }
973
- function parseFixedLengthString(buffer2, offset2, size) {
974
- var stringValue = new TextDecoder().decode(new Uint8Array(buffer2).slice(offset2.value, offset2.value + size));
975
- offset2.value = offset2.value + size;
1236
+
1237
+ function parseFixedLengthString(buffer, offset, size) {
1238
+ var stringValue = new TextDecoder().decode(new Uint8Array(buffer).slice(offset.value, offset.value + size));
1239
+ offset.value = offset.value + size;
976
1240
  return stringValue;
977
1241
  }
978
- function parseRational(dataView, offset2) {
979
- var x = parseInt32(dataView, offset2);
980
- var y = parseUint32(dataView, offset2);
1242
+
1243
+ function parseRational(dataView, offset) {
1244
+ var x = parseInt32(dataView, offset);
1245
+ var y = parseUint32(dataView, offset);
981
1246
  return [x, y];
982
1247
  }
983
- function parseTimecode(dataView, offset2) {
984
- var x = parseUint32(dataView, offset2);
985
- var y = parseUint32(dataView, offset2);
1248
+
1249
+ function parseTimecode(dataView, offset) {
1250
+ var x = parseUint32(dataView, offset);
1251
+ var y = parseUint32(dataView, offset);
986
1252
  return [x, y];
987
1253
  }
988
- function parseInt32(dataView, offset2) {
989
- var Int32 = dataView.getInt32(offset2.value, true);
990
- offset2.value = offset2.value + INT32_SIZE;
1254
+
1255
+ function parseInt32(dataView, offset) {
1256
+ var Int32 = dataView.getInt32(offset.value, true);
1257
+ offset.value = offset.value + INT32_SIZE;
991
1258
  return Int32;
992
1259
  }
993
- function parseUint32(dataView, offset2) {
994
- var Uint32 = dataView.getUint32(offset2.value, true);
995
- offset2.value = offset2.value + INT32_SIZE;
1260
+
1261
+ function parseUint32(dataView, offset) {
1262
+ var Uint32 = dataView.getUint32(offset.value, true);
1263
+ offset.value = offset.value + INT32_SIZE;
996
1264
  return Uint32;
997
1265
  }
998
- function parseUint8Array(uInt8Array2, offset2) {
999
- var Uint8 = uInt8Array2[offset2.value];
1000
- offset2.value = offset2.value + INT8_SIZE;
1266
+
1267
+ function parseUint8Array(uInt8Array, offset) {
1268
+ var Uint8 = uInt8Array[offset.value];
1269
+ offset.value = offset.value + INT8_SIZE;
1001
1270
  return Uint8;
1002
1271
  }
1003
- function parseUint8(dataView, offset2) {
1004
- var Uint8 = dataView.getUint8(offset2.value);
1005
- offset2.value = offset2.value + INT8_SIZE;
1272
+
1273
+ function parseUint8(dataView, offset) {
1274
+ var Uint8 = dataView.getUint8(offset.value);
1275
+ offset.value = offset.value + INT8_SIZE;
1006
1276
  return Uint8;
1007
1277
  }
1008
- const parseInt64 = function(dataView, offset2) {
1278
+
1279
+ const parseInt64 = function (dataView, offset) {
1009
1280
  let int;
1010
- if ("getBigInt64" in DataView.prototype) {
1011
- int = Number(dataView.getBigInt64(offset2.value, true));
1281
+
1282
+ if ('getBigInt64' in DataView.prototype) {
1283
+ int = Number(dataView.getBigInt64(offset.value, true));
1012
1284
  } else {
1013
- int = dataView.getUint32(offset2.value + 4, true) + Number(dataView.getUint32(offset2.value, true) << 32);
1285
+ int = dataView.getUint32(offset.value + 4, true) + Number(dataView.getUint32(offset.value, true) << 32);
1014
1286
  }
1015
- offset2.value += ULONG_SIZE;
1287
+
1288
+ offset.value += ULONG_SIZE;
1016
1289
  return int;
1017
1290
  };
1018
- function parseFloat32(dataView, offset2) {
1019
- var float = dataView.getFloat32(offset2.value, true);
1020
- offset2.value += FLOAT32_SIZE;
1291
+
1292
+ function parseFloat32(dataView, offset) {
1293
+ var float = dataView.getFloat32(offset.value, true);
1294
+ offset.value += FLOAT32_SIZE;
1021
1295
  return float;
1022
1296
  }
1023
- function decodeFloat32(dataView, offset2) {
1024
- return THREE.DataUtils.toHalfFloat(parseFloat32(dataView, offset2));
1025
- }
1297
+
1298
+ function decodeFloat32(dataView, offset) {
1299
+ return DataUtils.toHalfFloat(parseFloat32(dataView, offset));
1300
+ } // https://stackoverflow.com/questions/5678432/decompressing-half-precision-floats-in-javascript
1301
+
1302
+
1026
1303
  function decodeFloat16(binary) {
1027
- var exponent = (binary & 31744) >> 10, fraction = binary & 1023;
1028
- return (binary >> 15 ? -1 : 1) * (exponent ? exponent === 31 ? fraction ? NaN : Infinity : Math.pow(2, exponent - 15) * (1 + fraction / 1024) : 6103515625e-14 * (fraction / 1024));
1304
+ var exponent = (binary & 0x7c00) >> 10,
1305
+ fraction = binary & 0x03ff;
1306
+ return (binary >> 15 ? -1 : 1) * (exponent ? exponent === 0x1f ? fraction ? NaN : Infinity : Math.pow(2, exponent - 15) * (1 + fraction / 0x400) : 6.103515625e-5 * (fraction / 0x400));
1029
1307
  }
1030
- function parseUint16(dataView, offset2) {
1031
- var Uint16 = dataView.getUint16(offset2.value, true);
1032
- offset2.value += INT16_SIZE;
1308
+
1309
+ function parseUint16(dataView, offset) {
1310
+ var Uint16 = dataView.getUint16(offset.value, true);
1311
+ offset.value += INT16_SIZE;
1033
1312
  return Uint16;
1034
1313
  }
1035
- function parseFloat16(buffer2, offset2) {
1036
- return decodeFloat16(parseUint16(buffer2, offset2));
1314
+
1315
+ function parseFloat16(buffer, offset) {
1316
+ return decodeFloat16(parseUint16(buffer, offset));
1037
1317
  }
1038
- function parseChlist(dataView, buffer2, offset2, size) {
1039
- var startOffset = offset2.value;
1318
+
1319
+ function parseChlist(dataView, buffer, offset, size) {
1320
+ var startOffset = offset.value;
1040
1321
  var channels = [];
1041
- while (offset2.value < startOffset + size - 1) {
1042
- var name = parseNullTerminatedString(buffer2, offset2);
1043
- var pixelType = parseInt32(dataView, offset2);
1044
- var pLinear = parseUint8(dataView, offset2);
1045
- offset2.value += 3;
1046
- var xSampling = parseInt32(dataView, offset2);
1047
- var ySampling = parseInt32(dataView, offset2);
1322
+
1323
+ while (offset.value < startOffset + size - 1) {
1324
+ var name = parseNullTerminatedString(buffer, offset);
1325
+ var pixelType = parseInt32(dataView, offset);
1326
+ var pLinear = parseUint8(dataView, offset);
1327
+ offset.value += 3; // reserved, three chars
1328
+
1329
+ var xSampling = parseInt32(dataView, offset);
1330
+ var ySampling = parseInt32(dataView, offset);
1048
1331
  channels.push({
1049
- name,
1050
- pixelType,
1051
- pLinear,
1052
- xSampling,
1053
- ySampling
1332
+ name: name,
1333
+ pixelType: pixelType,
1334
+ pLinear: pLinear,
1335
+ xSampling: xSampling,
1336
+ ySampling: ySampling
1054
1337
  });
1055
1338
  }
1056
- offset2.value += 1;
1339
+
1340
+ offset.value += 1;
1057
1341
  return channels;
1058
1342
  }
1059
- function parseChromaticities(dataView, offset2) {
1060
- var redX = parseFloat32(dataView, offset2);
1061
- var redY = parseFloat32(dataView, offset2);
1062
- var greenX = parseFloat32(dataView, offset2);
1063
- var greenY = parseFloat32(dataView, offset2);
1064
- var blueX = parseFloat32(dataView, offset2);
1065
- var blueY = parseFloat32(dataView, offset2);
1066
- var whiteX = parseFloat32(dataView, offset2);
1067
- var whiteY = parseFloat32(dataView, offset2);
1343
+
1344
+ function parseChromaticities(dataView, offset) {
1345
+ var redX = parseFloat32(dataView, offset);
1346
+ var redY = parseFloat32(dataView, offset);
1347
+ var greenX = parseFloat32(dataView, offset);
1348
+ var greenY = parseFloat32(dataView, offset);
1349
+ var blueX = parseFloat32(dataView, offset);
1350
+ var blueY = parseFloat32(dataView, offset);
1351
+ var whiteX = parseFloat32(dataView, offset);
1352
+ var whiteY = parseFloat32(dataView, offset);
1068
1353
  return {
1069
- redX,
1070
- redY,
1071
- greenX,
1072
- greenY,
1073
- blueX,
1074
- blueY,
1075
- whiteX,
1076
- whiteY
1354
+ redX: redX,
1355
+ redY: redY,
1356
+ greenX: greenX,
1357
+ greenY: greenY,
1358
+ blueX: blueX,
1359
+ blueY: blueY,
1360
+ whiteX: whiteX,
1361
+ whiteY: whiteY
1077
1362
  };
1078
1363
  }
1079
- function parseCompression(dataView, offset2) {
1080
- var compressionCodes = [
1081
- "NO_COMPRESSION",
1082
- "RLE_COMPRESSION",
1083
- "ZIPS_COMPRESSION",
1084
- "ZIP_COMPRESSION",
1085
- "PIZ_COMPRESSION",
1086
- "PXR24_COMPRESSION",
1087
- "B44_COMPRESSION",
1088
- "B44A_COMPRESSION",
1089
- "DWAA_COMPRESSION",
1090
- "DWAB_COMPRESSION"
1091
- ];
1092
- var compression = parseUint8(dataView, offset2);
1364
+
1365
+ function parseCompression(dataView, offset) {
1366
+ var compressionCodes = ['NO_COMPRESSION', 'RLE_COMPRESSION', 'ZIPS_COMPRESSION', 'ZIP_COMPRESSION', 'PIZ_COMPRESSION', 'PXR24_COMPRESSION', 'B44_COMPRESSION', 'B44A_COMPRESSION', 'DWAA_COMPRESSION', 'DWAB_COMPRESSION'];
1367
+ var compression = parseUint8(dataView, offset);
1093
1368
  return compressionCodes[compression];
1094
1369
  }
1095
- function parseBox2i(dataView, offset2) {
1096
- var xMin = parseUint32(dataView, offset2);
1097
- var yMin = parseUint32(dataView, offset2);
1098
- var xMax = parseUint32(dataView, offset2);
1099
- var yMax = parseUint32(dataView, offset2);
1100
- return { xMin, yMin, xMax, yMax };
1370
+
1371
+ function parseBox2i(dataView, offset) {
1372
+ var xMin = parseUint32(dataView, offset);
1373
+ var yMin = parseUint32(dataView, offset);
1374
+ var xMax = parseUint32(dataView, offset);
1375
+ var yMax = parseUint32(dataView, offset);
1376
+ return {
1377
+ xMin: xMin,
1378
+ yMin: yMin,
1379
+ xMax: xMax,
1380
+ yMax: yMax
1381
+ };
1101
1382
  }
1102
- function parseLineOrder(dataView, offset2) {
1103
- var lineOrders = ["INCREASING_Y"];
1104
- var lineOrder = parseUint8(dataView, offset2);
1383
+
1384
+ function parseLineOrder(dataView, offset) {
1385
+ var lineOrders = ['INCREASING_Y'];
1386
+ var lineOrder = parseUint8(dataView, offset);
1105
1387
  return lineOrders[lineOrder];
1106
1388
  }
1107
- function parseV2f(dataView, offset2) {
1108
- var x = parseFloat32(dataView, offset2);
1109
- var y = parseFloat32(dataView, offset2);
1389
+
1390
+ function parseV2f(dataView, offset) {
1391
+ var x = parseFloat32(dataView, offset);
1392
+ var y = parseFloat32(dataView, offset);
1110
1393
  return [x, y];
1111
1394
  }
1112
- function parseV3f(dataView, offset2) {
1113
- var x = parseFloat32(dataView, offset2);
1114
- var y = parseFloat32(dataView, offset2);
1115
- var z = parseFloat32(dataView, offset2);
1395
+
1396
+ function parseV3f(dataView, offset) {
1397
+ var x = parseFloat32(dataView, offset);
1398
+ var y = parseFloat32(dataView, offset);
1399
+ var z = parseFloat32(dataView, offset);
1116
1400
  return [x, y, z];
1117
1401
  }
1118
- function parseValue(dataView, buffer2, offset2, type, size) {
1119
- if (type === "string" || type === "stringvector" || type === "iccProfile") {
1120
- return parseFixedLengthString(buffer2, offset2, size);
1121
- } else if (type === "chlist") {
1122
- return parseChlist(dataView, buffer2, offset2, size);
1123
- } else if (type === "chromaticities") {
1124
- return parseChromaticities(dataView, offset2);
1125
- } else if (type === "compression") {
1126
- return parseCompression(dataView, offset2);
1127
- } else if (type === "box2i") {
1128
- return parseBox2i(dataView, offset2);
1129
- } else if (type === "lineOrder") {
1130
- return parseLineOrder(dataView, offset2);
1131
- } else if (type === "float") {
1132
- return parseFloat32(dataView, offset2);
1133
- } else if (type === "v2f") {
1134
- return parseV2f(dataView, offset2);
1135
- } else if (type === "v3f") {
1136
- return parseV3f(dataView, offset2);
1137
- } else if (type === "int") {
1138
- return parseInt32(dataView, offset2);
1139
- } else if (type === "rational") {
1140
- return parseRational(dataView, offset2);
1141
- } else if (type === "timecode") {
1142
- return parseTimecode(dataView, offset2);
1143
- } else if (type === "preview") {
1144
- offset2.value += size;
1145
- return "skipped";
1402
+
1403
+ function parseValue(dataView, buffer, offset, type, size) {
1404
+ if (type === 'string' || type === 'stringvector' || type === 'iccProfile') {
1405
+ return parseFixedLengthString(buffer, offset, size);
1406
+ } else if (type === 'chlist') {
1407
+ return parseChlist(dataView, buffer, offset, size);
1408
+ } else if (type === 'chromaticities') {
1409
+ return parseChromaticities(dataView, offset);
1410
+ } else if (type === 'compression') {
1411
+ return parseCompression(dataView, offset);
1412
+ } else if (type === 'box2i') {
1413
+ return parseBox2i(dataView, offset);
1414
+ } else if (type === 'lineOrder') {
1415
+ return parseLineOrder(dataView, offset);
1416
+ } else if (type === 'float') {
1417
+ return parseFloat32(dataView, offset);
1418
+ } else if (type === 'v2f') {
1419
+ return parseV2f(dataView, offset);
1420
+ } else if (type === 'v3f') {
1421
+ return parseV3f(dataView, offset);
1422
+ } else if (type === 'int') {
1423
+ return parseInt32(dataView, offset);
1424
+ } else if (type === 'rational') {
1425
+ return parseRational(dataView, offset);
1426
+ } else if (type === 'timecode') {
1427
+ return parseTimecode(dataView, offset);
1428
+ } else if (type === 'preview') {
1429
+ offset.value += size;
1430
+ return 'skipped';
1146
1431
  } else {
1147
- offset2.value += size;
1148
- return void 0;
1432
+ offset.value += size;
1433
+ return undefined;
1149
1434
  }
1150
1435
  }
1151
- function parseHeader(dataView, buffer2, offset2) {
1152
- const EXRHeader2 = {};
1436
+
1437
+ function parseHeader(dataView, buffer, offset) {
1438
+ const EXRHeader = {};
1439
+
1153
1440
  if (dataView.getUint32(0, true) != 20000630) {
1441
+ // magic
1154
1442
  throw "THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";
1155
1443
  }
1156
- EXRHeader2.version = dataView.getUint8(4);
1157
- const spec = dataView.getUint8(5);
1158
- EXRHeader2.spec = {
1444
+
1445
+ EXRHeader.version = dataView.getUint8(4);
1446
+ const spec = dataView.getUint8(5); // fullMask
1447
+
1448
+ EXRHeader.spec = {
1159
1449
  singleTile: !!(spec & 2),
1160
1450
  longName: !!(spec & 4),
1161
1451
  deepFormat: !!(spec & 8),
1162
1452
  multiPart: !!(spec & 16)
1163
- };
1164
- offset2.value = 8;
1453
+ }; // start of header
1454
+
1455
+ offset.value = 8; // start at 8 - after pre-amble
1456
+
1165
1457
  var keepReading = true;
1458
+
1166
1459
  while (keepReading) {
1167
- var attributeName = parseNullTerminatedString(buffer2, offset2);
1460
+ var attributeName = parseNullTerminatedString(buffer, offset);
1461
+
1168
1462
  if (attributeName == 0) {
1169
1463
  keepReading = false;
1170
1464
  } else {
1171
- var attributeType = parseNullTerminatedString(buffer2, offset2);
1172
- var attributeSize = parseUint32(dataView, offset2);
1173
- var attributeValue = parseValue(dataView, buffer2, offset2, attributeType, attributeSize);
1174
- if (attributeValue === void 0) {
1175
- console.warn(`EXRLoader.parse: skipped unknown header attribute type '${attributeType}'.`);
1465
+ var attributeType = parseNullTerminatedString(buffer, offset);
1466
+ var attributeSize = parseUint32(dataView, offset);
1467
+ var attributeValue = parseValue(dataView, buffer, offset, attributeType, attributeSize);
1468
+
1469
+ if (attributeValue === undefined) {
1470
+ console.warn(`EXRLoader.parse: skipped unknown header attribute type \'${attributeType}\'.`);
1176
1471
  } else {
1177
- EXRHeader2[attributeName] = attributeValue;
1472
+ EXRHeader[attributeName] = attributeValue;
1178
1473
  }
1179
1474
  }
1180
1475
  }
1476
+
1181
1477
  if (spec != 0) {
1182
- console.error("EXRHeader:", EXRHeader2);
1183
- throw "THREE.EXRLoader: provided file is currently unsupported.";
1478
+ console.error('EXRHeader:', EXRHeader);
1479
+ throw 'THREE.EXRLoader: provided file is currently unsupported.';
1184
1480
  }
1185
- return EXRHeader2;
1481
+
1482
+ return EXRHeader;
1186
1483
  }
1187
- function setupDecoder(EXRHeader2, dataView, uInt8Array2, offset2, outputType) {
1188
- const EXRDecoder2 = {
1484
+
1485
+ function setupDecoder(EXRHeader, dataView, uInt8Array, offset, outputType) {
1486
+ const EXRDecoder = {
1189
1487
  size: 0,
1190
1488
  viewer: dataView,
1191
- array: uInt8Array2,
1192
- offset: offset2,
1193
- width: EXRHeader2.dataWindow.xMax - EXRHeader2.dataWindow.xMin + 1,
1194
- height: EXRHeader2.dataWindow.yMax - EXRHeader2.dataWindow.yMin + 1,
1195
- channels: EXRHeader2.channels.length,
1489
+ array: uInt8Array,
1490
+ offset: offset,
1491
+ width: EXRHeader.dataWindow.xMax - EXRHeader.dataWindow.xMin + 1,
1492
+ height: EXRHeader.dataWindow.yMax - EXRHeader.dataWindow.yMin + 1,
1493
+ channels: EXRHeader.channels.length,
1196
1494
  bytesPerLine: null,
1197
1495
  lines: null,
1198
1496
  inputSize: null,
1199
- type: EXRHeader2.channels[0].pixelType,
1497
+ type: EXRHeader.channels[0].pixelType,
1200
1498
  uncompress: null,
1201
1499
  getter: null,
1202
1500
  format: null,
1203
1501
  encoding: null
1204
1502
  };
1205
- switch (EXRHeader2.compression) {
1206
- case "NO_COMPRESSION":
1207
- EXRDecoder2.lines = 1;
1208
- EXRDecoder2.uncompress = uncompressRAW;
1503
+
1504
+ switch (EXRHeader.compression) {
1505
+ case 'NO_COMPRESSION':
1506
+ EXRDecoder.lines = 1;
1507
+ EXRDecoder.uncompress = uncompressRAW;
1209
1508
  break;
1210
- case "RLE_COMPRESSION":
1211
- EXRDecoder2.lines = 1;
1212
- EXRDecoder2.uncompress = uncompressRLE;
1509
+
1510
+ case 'RLE_COMPRESSION':
1511
+ EXRDecoder.lines = 1;
1512
+ EXRDecoder.uncompress = uncompressRLE;
1213
1513
  break;
1214
- case "ZIPS_COMPRESSION":
1215
- EXRDecoder2.lines = 1;
1216
- EXRDecoder2.uncompress = uncompressZIP;
1514
+
1515
+ case 'ZIPS_COMPRESSION':
1516
+ EXRDecoder.lines = 1;
1517
+ EXRDecoder.uncompress = uncompressZIP;
1217
1518
  break;
1218
- case "ZIP_COMPRESSION":
1219
- EXRDecoder2.lines = 16;
1220
- EXRDecoder2.uncompress = uncompressZIP;
1519
+
1520
+ case 'ZIP_COMPRESSION':
1521
+ EXRDecoder.lines = 16;
1522
+ EXRDecoder.uncompress = uncompressZIP;
1221
1523
  break;
1222
- case "PIZ_COMPRESSION":
1223
- EXRDecoder2.lines = 32;
1224
- EXRDecoder2.uncompress = uncompressPIZ;
1524
+
1525
+ case 'PIZ_COMPRESSION':
1526
+ EXRDecoder.lines = 32;
1527
+ EXRDecoder.uncompress = uncompressPIZ;
1225
1528
  break;
1226
- case "PXR24_COMPRESSION":
1227
- EXRDecoder2.lines = 16;
1228
- EXRDecoder2.uncompress = uncompressPXR;
1529
+
1530
+ case 'PXR24_COMPRESSION':
1531
+ EXRDecoder.lines = 16;
1532
+ EXRDecoder.uncompress = uncompressPXR;
1229
1533
  break;
1230
- case "DWAA_COMPRESSION":
1231
- EXRDecoder2.lines = 32;
1232
- EXRDecoder2.uncompress = uncompressDWA;
1534
+
1535
+ case 'DWAA_COMPRESSION':
1536
+ EXRDecoder.lines = 32;
1537
+ EXRDecoder.uncompress = uncompressDWA;
1233
1538
  break;
1234
- case "DWAB_COMPRESSION":
1235
- EXRDecoder2.lines = 256;
1236
- EXRDecoder2.uncompress = uncompressDWA;
1539
+
1540
+ case 'DWAB_COMPRESSION':
1541
+ EXRDecoder.lines = 256;
1542
+ EXRDecoder.uncompress = uncompressDWA;
1237
1543
  break;
1544
+
1238
1545
  default:
1239
- throw "EXRLoader.parse: " + EXRHeader2.compression + " is unsupported";
1546
+ throw 'EXRLoader.parse: ' + EXRHeader.compression + ' is unsupported';
1240
1547
  }
1241
- EXRDecoder2.scanlineBlockSize = EXRDecoder2.lines;
1242
- if (EXRDecoder2.type == 1) {
1548
+
1549
+ EXRDecoder.scanlineBlockSize = EXRDecoder.lines;
1550
+
1551
+ if (EXRDecoder.type == 1) {
1552
+ // half
1243
1553
  switch (outputType) {
1244
- case THREE.FloatType:
1245
- EXRDecoder2.getter = parseFloat16;
1246
- EXRDecoder2.inputSize = INT16_SIZE;
1554
+ case FloatType:
1555
+ EXRDecoder.getter = parseFloat16;
1556
+ EXRDecoder.inputSize = INT16_SIZE;
1247
1557
  break;
1248
- case THREE.HalfFloatType:
1249
- EXRDecoder2.getter = parseUint16;
1250
- EXRDecoder2.inputSize = INT16_SIZE;
1558
+
1559
+ case HalfFloatType:
1560
+ EXRDecoder.getter = parseUint16;
1561
+ EXRDecoder.inputSize = INT16_SIZE;
1251
1562
  break;
1252
1563
  }
1253
- } else if (EXRDecoder2.type == 2) {
1564
+ } else if (EXRDecoder.type == 2) {
1565
+ // float
1254
1566
  switch (outputType) {
1255
- case THREE.FloatType:
1256
- EXRDecoder2.getter = parseFloat32;
1257
- EXRDecoder2.inputSize = FLOAT32_SIZE;
1567
+ case FloatType:
1568
+ EXRDecoder.getter = parseFloat32;
1569
+ EXRDecoder.inputSize = FLOAT32_SIZE;
1258
1570
  break;
1259
- case THREE.HalfFloatType:
1260
- EXRDecoder2.getter = decodeFloat32;
1261
- EXRDecoder2.inputSize = FLOAT32_SIZE;
1571
+
1572
+ case HalfFloatType:
1573
+ EXRDecoder.getter = decodeFloat32;
1574
+ EXRDecoder.inputSize = FLOAT32_SIZE;
1262
1575
  }
1263
1576
  } else {
1264
- throw "EXRLoader.parse: unsupported pixelType " + EXRDecoder2.type + " for " + EXRHeader2.compression + ".";
1577
+ throw 'EXRLoader.parse: unsupported pixelType ' + EXRDecoder.type + ' for ' + EXRHeader.compression + '.';
1265
1578
  }
1266
- EXRDecoder2.blockCount = (EXRHeader2.dataWindow.yMax + 1) / EXRDecoder2.scanlineBlockSize;
1267
- for (var i = 0; i < EXRDecoder2.blockCount; i++)
1268
- parseInt64(dataView, offset2);
1269
- EXRDecoder2.outputChannels = EXRDecoder2.channels == 3 ? 4 : EXRDecoder2.channels;
1270
- const size = EXRDecoder2.width * EXRDecoder2.height * EXRDecoder2.outputChannels;
1579
+
1580
+ EXRDecoder.blockCount = (EXRHeader.dataWindow.yMax + 1) / EXRDecoder.scanlineBlockSize;
1581
+
1582
+ for (var i = 0; i < EXRDecoder.blockCount; i++) parseInt64(dataView, offset); // scanlineOffset
1583
+ // we should be passed the scanline offset table, ready to start reading pixel data.
1584
+ // RGB images will be converted to RGBA format, preventing software emulation in select devices.
1585
+
1586
+
1587
+ EXRDecoder.outputChannels = EXRDecoder.channels == 3 ? 4 : EXRDecoder.channels;
1588
+ const size = EXRDecoder.width * EXRDecoder.height * EXRDecoder.outputChannels;
1589
+
1271
1590
  switch (outputType) {
1272
- case THREE.FloatType:
1273
- EXRDecoder2.byteArray = new Float32Array(size);
1274
- if (EXRDecoder2.channels < EXRDecoder2.outputChannels)
1275
- EXRDecoder2.byteArray.fill(1, 0, size);
1591
+ case FloatType:
1592
+ EXRDecoder.byteArray = new Float32Array(size); // Fill initially with 1s for the alpha value if the texture is not RGBA, RGB values will be overwritten
1593
+
1594
+ if (EXRDecoder.channels < EXRDecoder.outputChannels) EXRDecoder.byteArray.fill(1, 0, size);
1276
1595
  break;
1277
- case THREE.HalfFloatType:
1278
- EXRDecoder2.byteArray = new Uint16Array(size);
1279
- if (EXRDecoder2.channels < EXRDecoder2.outputChannels)
1280
- EXRDecoder2.byteArray.fill(15360, 0, size);
1596
+
1597
+ case HalfFloatType:
1598
+ EXRDecoder.byteArray = new Uint16Array(size);
1599
+ if (EXRDecoder.channels < EXRDecoder.outputChannels) EXRDecoder.byteArray.fill(0x3c00, 0, size); // Uint16Array holds half float data, 0x3C00 is 1
1600
+
1281
1601
  break;
1602
+
1282
1603
  default:
1283
- console.error("THREE.EXRLoader: unsupported type: ", outputType);
1604
+ console.error('THREE.EXRLoader: unsupported type: ', outputType);
1284
1605
  break;
1285
1606
  }
1286
- EXRDecoder2.bytesPerLine = EXRDecoder2.width * EXRDecoder2.inputSize * EXRDecoder2.channels;
1287
- if (EXRDecoder2.outputChannels == 4) {
1288
- EXRDecoder2.format = THREE.RGBAFormat;
1289
- EXRDecoder2.encoding = THREE.LinearEncoding;
1607
+
1608
+ EXRDecoder.bytesPerLine = EXRDecoder.width * EXRDecoder.inputSize * EXRDecoder.channels;
1609
+
1610
+ if (EXRDecoder.outputChannels == 4) {
1611
+ EXRDecoder.format = RGBAFormat;
1612
+ EXRDecoder.encoding = LinearEncoding;
1290
1613
  } else {
1291
- EXRDecoder2.format = THREE.RedFormat;
1292
- EXRDecoder2.encoding = THREE.LinearEncoding;
1614
+ EXRDecoder.format = RedFormat;
1615
+ EXRDecoder.encoding = LinearEncoding;
1293
1616
  }
1294
- return EXRDecoder2;
1295
- }
1617
+
1618
+ return EXRDecoder;
1619
+ } // start parsing file [START]
1620
+
1621
+
1296
1622
  const bufferDataView = new DataView(buffer);
1297
1623
  const uInt8Array = new Uint8Array(buffer);
1298
- const offset = { value: 0 };
1299
- const EXRHeader = parseHeader(bufferDataView, buffer, offset);
1624
+ const offset = {
1625
+ value: 0
1626
+ }; // get header information and validate format.
1627
+
1628
+ const EXRHeader = parseHeader(bufferDataView, buffer, offset); // get input compression information and prepare decoding.
1629
+
1300
1630
  const EXRDecoder = setupDecoder(EXRHeader, bufferDataView, uInt8Array, offset, this.type);
1301
- const tmpOffset = { value: 0 };
1302
- const channelOffsets = { R: 0, G: 1, B: 2, A: 3, Y: 0 };
1631
+ const tmpOffset = {
1632
+ value: 0
1633
+ };
1634
+ const channelOffsets = {
1635
+ R: 0,
1636
+ G: 1,
1637
+ B: 2,
1638
+ A: 3,
1639
+ Y: 0
1640
+ };
1641
+
1303
1642
  for (let scanlineBlockIdx = 0; scanlineBlockIdx < EXRDecoder.height / EXRDecoder.scanlineBlockSize; scanlineBlockIdx++) {
1304
- const line = parseUint32(bufferDataView, offset);
1305
- EXRDecoder.size = parseUint32(bufferDataView, offset);
1643
+ const line = parseUint32(bufferDataView, offset); // line_no
1644
+
1645
+ EXRDecoder.size = parseUint32(bufferDataView, offset); // data_len
1646
+
1306
1647
  EXRDecoder.lines = line + EXRDecoder.scanlineBlockSize > EXRDecoder.height ? EXRDecoder.height - line : EXRDecoder.scanlineBlockSize;
1307
1648
  const isCompressed = EXRDecoder.size < EXRDecoder.lines * EXRDecoder.bytesPerLine;
1308
1649
  const viewer = isCompressed ? EXRDecoder.uncompress(EXRDecoder) : uncompressRAW(EXRDecoder);
1309
1650
  offset.value += EXRDecoder.size;
1651
+
1310
1652
  for (let line_y = 0; line_y < EXRDecoder.scanlineBlockSize; line_y++) {
1311
1653
  const true_y = line_y + scanlineBlockIdx * EXRDecoder.scanlineBlockSize;
1312
- if (true_y >= EXRDecoder.height)
1313
- break;
1654
+ if (true_y >= EXRDecoder.height) break;
1655
+
1314
1656
  for (let channelID = 0; channelID < EXRDecoder.channels; channelID++) {
1315
1657
  const cOff = channelOffsets[EXRHeader.channels[channelID].name];
1658
+
1316
1659
  for (let x = 0; x < EXRDecoder.width; x++) {
1317
1660
  tmpOffset.value = (line_y * (EXRDecoder.channels * EXRDecoder.width) + channelID * EXRDecoder.width + x) * EXRDecoder.inputSize;
1318
1661
  const outIndex = (EXRDecoder.height - 1 - true_y) * (EXRDecoder.width * EXRDecoder.outputChannels) + x * EXRDecoder.outputChannels + cOff;
@@ -1321,6 +1664,7 @@ class EXRLoader extends THREE.DataTextureLoader {
1321
1664
  }
1322
1665
  }
1323
1666
  }
1667
+
1324
1668
  return {
1325
1669
  header: EXRHeader,
1326
1670
  width: EXRDecoder.width,
@@ -1331,21 +1675,25 @@ class EXRLoader extends THREE.DataTextureLoader {
1331
1675
  type: this.type
1332
1676
  };
1333
1677
  }
1678
+
1334
1679
  setDataType(value) {
1335
1680
  this.type = value;
1336
1681
  return this;
1337
1682
  }
1683
+
1338
1684
  load(url, onLoad, onProgress, onError) {
1339
1685
  function onLoadCallback(texture, texData) {
1340
1686
  texture.encoding = texData.encoding;
1341
- texture.minFilter = THREE.LinearFilter;
1342
- texture.magFilter = THREE.LinearFilter;
1687
+ texture.minFilter = LinearFilter;
1688
+ texture.magFilter = LinearFilter;
1343
1689
  texture.generateMipmaps = false;
1344
1690
  texture.flipY = false;
1345
- if (onLoad)
1346
- onLoad(texture, texData);
1691
+ if (onLoad) onLoad(texture, texData);
1347
1692
  }
1693
+
1348
1694
  return super.load(url, onLoadCallback, onProgress, onError);
1349
1695
  }
1696
+
1350
1697
  }
1351
- exports.EXRLoader = EXRLoader;
1698
+
1699
+ export { EXRLoader };