three-stdlib 2.35.4 → 2.35.5

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 (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +17 -20
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +17 -20
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +715 -722
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +716 -723
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +1 -2
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +2 -3
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +1 -2
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +2 -3
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +1 -2
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +2 -3
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +122 -133
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +21 -23
  68. package/exporters/DRACOExporter.js +122 -133
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +167 -170
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +167 -170
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +515 -524
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +515 -524
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +1 -2
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +2 -3
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +435 -441
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +435 -441
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +1 -2
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +2 -3
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +374 -377
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +374 -377
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +4 -5
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +5 -6
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +43 -46
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +43 -46
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1688 -1694
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1688 -1694
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +50 -53
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +50 -53
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +268 -271
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +269 -272
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +1 -2
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +2 -3
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +206 -209
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +206 -209
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +146 -154
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +146 -154
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +180 -183
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +180 -183
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +161 -164
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +161 -164
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +32 -35
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +6 -100
  258. package/objects/Sky.js +32 -35
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +1 -2
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +2 -3
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +140 -143
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +140 -143
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +264 -267
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +264 -267
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +250 -253
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +250 -253
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +376 -379
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +376 -379
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +202 -205
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +202 -205
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +46 -71
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +46 -71
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +22 -41
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +22 -41
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +6 -20
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +6 -20
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +26 -46
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +26 -46
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +19 -33
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +19 -33
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +90 -117
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +90 -117
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +232 -333
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +232 -333
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +22 -38
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +22 -38
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +21 -35
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +21 -35
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +19 -34
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +19 -34
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +24 -43
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +24 -43
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +16 -30
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +16 -30
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +21 -38
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +21 -38
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +69 -98
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +69 -98
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +59 -70
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +59 -70
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +28 -49
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +28 -49
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1089 -1098
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1089 -1098
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +29 -57
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +29 -57
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +43 -70
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +43 -70
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +53 -74
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +53 -74
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +35 -55
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +35 -55
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +19 -33
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +19 -33
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +116 -193
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +116 -193
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +192 -270
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +192 -270
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +27 -43
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +27 -43
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +31 -47
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +31 -47
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +24 -37
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +24 -37
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +24 -43
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +24 -43
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +17 -34
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +17 -34
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +26 -39
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +26 -39
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +21 -36
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +21 -36
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +97 -147
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +97 -147
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +18 -31
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +18 -31
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +20 -33
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +20 -33
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +117 -154
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +117 -154
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +270 -358
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +270 -358
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +142 -236
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +142 -236
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +20 -36
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +20 -36
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +37 -64
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +37 -64
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +16 -29
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +16 -29
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +35 -55
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +35 -55
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +165 -275
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +165 -275
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +27 -50
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +27 -50
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +17 -32
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +17 -32
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +27 -43
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +27 -43
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +27 -43
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +27 -43
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +213 -264
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +213 -264
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +35 -63
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +35 -63
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +1 -2
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +2 -3
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +106 -109
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +3 -4
  500. package/webxr/ARButton.js +106 -109
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +95 -98
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +5 -6
  509. package/webxr/VRButton.js +95 -98
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
- const LightProbeGenerator = {
4
+ class LightProbeGenerator {
5
5
  // https://www.ppsloan.org/publications/StupidSH36.pdf
6
- fromCubeTexture(cubeTexture) {
6
+ static fromCubeTexture(cubeTexture) {
7
7
  let totalWeight = 0;
8
8
  const coord = new THREE.Vector3();
9
9
  const dir = new THREE.Vector3();
@@ -75,8 +75,8 @@ const LightProbeGenerator = {
75
75
  shCoefficients[j].z *= norm;
76
76
  }
77
77
  return new THREE.LightProbe(sh);
78
- },
79
- fromCubeRenderTarget(renderer, cubeRenderTarget) {
78
+ }
79
+ static fromCubeRenderTarget(renderer, cubeRenderTarget) {
80
80
  let totalWeight = 0;
81
81
  const coord = new THREE.Vector3();
82
82
  const dir = new THREE.Vector3();
@@ -141,6 +141,6 @@ const LightProbeGenerator = {
141
141
  }
142
142
  return new THREE.LightProbe(sh);
143
143
  }
144
- };
144
+ }
145
145
  exports.LightProbeGenerator = LightProbeGenerator;
146
146
  //# sourceMappingURL=LightProbeGenerator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightProbeGenerator.cjs","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nconst LightProbeGenerator = {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n\n fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n}\n\nexport { LightProbeGenerator }\n"],"names":["Vector3","Color","SphericalHarmonics3","LightProbe"],"mappings":"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"}
1
+ {"version":3,"file":"LightProbeGenerator.cjs","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nclass LightProbeGenerator {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n static fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n\n static fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n}\n\nexport { LightProbeGenerator }\n"],"names":["Vector3","Color","SphericalHarmonics3","LightProbe"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Vector3, Color, SphericalHarmonics3, LightProbe } from "three";
2
- const LightProbeGenerator = {
2
+ class LightProbeGenerator {
3
3
  // https://www.ppsloan.org/publications/StupidSH36.pdf
4
- fromCubeTexture(cubeTexture) {
4
+ static fromCubeTexture(cubeTexture) {
5
5
  let totalWeight = 0;
6
6
  const coord = new Vector3();
7
7
  const dir = new Vector3();
@@ -73,8 +73,8 @@ const LightProbeGenerator = {
73
73
  shCoefficients[j].z *= norm;
74
74
  }
75
75
  return new LightProbe(sh);
76
- },
77
- fromCubeRenderTarget(renderer, cubeRenderTarget) {
76
+ }
77
+ static fromCubeRenderTarget(renderer, cubeRenderTarget) {
78
78
  let totalWeight = 0;
79
79
  const coord = new Vector3();
80
80
  const dir = new Vector3();
@@ -139,7 +139,7 @@ const LightProbeGenerator = {
139
139
  }
140
140
  return new LightProbe(sh);
141
141
  }
142
- };
142
+ }
143
143
  export {
144
144
  LightProbeGenerator
145
145
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LightProbeGenerator.js","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nconst LightProbeGenerator = {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n\n fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n}\n\nexport { LightProbeGenerator }\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LightProbeGenerator.js","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nclass LightProbeGenerator {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n static fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n\n static fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n}\n\nexport { LightProbeGenerator }\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
- const RectAreaLightUniformsLib = {
5
- init() {
4
+ class RectAreaLightUniformsLib {
5
+ static init() {
6
6
  const LTC_MAT_1 = [
7
7
  1,
8
8
  0,
@@ -32842,6 +32842,6 @@ const RectAreaLightUniformsLib = {
32842
32842
  THREE.UniformsLib.LTC_HALF_1.needsUpdate = true;
32843
32843
  THREE.UniformsLib.LTC_HALF_2.needsUpdate = true;
32844
32844
  }
32845
- };
32845
+ }
32846
32846
  exports.RectAreaLightUniformsLib = RectAreaLightUniformsLib;
32847
32847
  //# sourceMappingURL=RectAreaLightUniformsLib.cjs.map