three-stdlib 2.35.2 → 2.35.4

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 (518) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +20 -17
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +20 -17
  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 +722 -715
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +723 -716
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +2 -1
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +3 -2
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +2 -1
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +3 -2
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +2 -1
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +3 -2
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +133 -122
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +23 -21
  68. package/exporters/DRACOExporter.js +133 -122
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +170 -167
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +170 -167
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +524 -515
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +524 -515
  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 +2 -1
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +3 -2
  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 +441 -435
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +441 -435
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +2 -1
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +3 -2
  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 +377 -374
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +377 -374
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +5 -4
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +6 -5
  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 +46 -43
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +46 -43
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1694 -1688
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1694 -1688
  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 +53 -50
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +53 -50
  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 +271 -268
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +272 -269
  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 +2 -1
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +3 -2
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +209 -206
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +209 -206
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +154 -146
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +154 -146
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +183 -180
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +183 -180
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +164 -161
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +164 -161
  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 +35 -32
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +100 -6
  258. package/objects/Sky.js +35 -32
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +2 -1
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +3 -2
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +143 -140
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +143 -140
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/Pass.cjs.map +1 -1
  270. package/postprocessing/Pass.d.ts +2 -2
  271. package/postprocessing/Pass.js.map +1 -1
  272. package/postprocessing/SAOPass.cjs +267 -264
  273. package/postprocessing/SAOPass.cjs.map +1 -1
  274. package/postprocessing/SAOPass.js +267 -264
  275. package/postprocessing/SAOPass.js.map +1 -1
  276. package/postprocessing/SSAOPass.cjs +253 -250
  277. package/postprocessing/SSAOPass.cjs.map +1 -1
  278. package/postprocessing/SSAOPass.js +253 -250
  279. package/postprocessing/SSAOPass.js.map +1 -1
  280. package/postprocessing/SSRPass.cjs +379 -376
  281. package/postprocessing/SSRPass.cjs.map +1 -1
  282. package/postprocessing/SSRPass.js +379 -376
  283. package/postprocessing/SSRPass.js.map +1 -1
  284. package/postprocessing/UnrealBloomPass.cjs +205 -202
  285. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  286. package/postprocessing/UnrealBloomPass.js +205 -202
  287. package/postprocessing/UnrealBloomPass.js.map +1 -1
  288. package/renderers/CSS2DRenderer.cjs +5 -5
  289. package/renderers/CSS2DRenderer.cjs.map +1 -1
  290. package/renderers/CSS2DRenderer.js +5 -5
  291. package/renderers/CSS2DRenderer.js.map +1 -1
  292. package/renderers/CSS3DRenderer.cjs +5 -5
  293. package/renderers/CSS3DRenderer.cjs.map +1 -1
  294. package/renderers/CSS3DRenderer.js +6 -6
  295. package/renderers/CSS3DRenderer.js.map +1 -1
  296. package/shaders/ACESFilmicToneMappingShader.cjs +71 -46
  297. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  298. package/shaders/ACESFilmicToneMappingShader.js +71 -46
  299. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  300. package/shaders/AfterimageShader.cjs +41 -22
  301. package/shaders/AfterimageShader.cjs.map +1 -1
  302. package/shaders/AfterimageShader.js +41 -22
  303. package/shaders/AfterimageShader.js.map +1 -1
  304. package/shaders/BasicShader.cjs +20 -6
  305. package/shaders/BasicShader.cjs.map +1 -1
  306. package/shaders/BasicShader.js +20 -6
  307. package/shaders/BasicShader.js.map +1 -1
  308. package/shaders/BleachBypassShader.cjs +46 -26
  309. package/shaders/BleachBypassShader.cjs.map +1 -1
  310. package/shaders/BleachBypassShader.js +46 -26
  311. package/shaders/BleachBypassShader.js.map +1 -1
  312. package/shaders/BlendShader.cjs +33 -19
  313. package/shaders/BlendShader.cjs.map +1 -1
  314. package/shaders/BlendShader.js +33 -19
  315. package/shaders/BlendShader.js.map +1 -1
  316. package/shaders/BokehShader.cjs +117 -90
  317. package/shaders/BokehShader.cjs.map +1 -1
  318. package/shaders/BokehShader.js +117 -90
  319. package/shaders/BokehShader.js.map +1 -1
  320. package/shaders/BokehShader2.cjs +333 -232
  321. package/shaders/BokehShader2.cjs.map +1 -1
  322. package/shaders/BokehShader2.js +333 -232
  323. package/shaders/BokehShader2.js.map +1 -1
  324. package/shaders/BrightnessContrastShader.cjs +38 -22
  325. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  326. package/shaders/BrightnessContrastShader.js +38 -22
  327. package/shaders/BrightnessContrastShader.js.map +1 -1
  328. package/shaders/ColorCorrectionShader.cjs +35 -21
  329. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  330. package/shaders/ColorCorrectionShader.js +35 -21
  331. package/shaders/ColorCorrectionShader.js.map +1 -1
  332. package/shaders/ColorifyShader.cjs +34 -19
  333. package/shaders/ColorifyShader.cjs.map +1 -1
  334. package/shaders/ColorifyShader.js +34 -19
  335. package/shaders/ColorifyShader.js.map +1 -1
  336. package/shaders/ConvolutionShader.cjs +43 -24
  337. package/shaders/ConvolutionShader.cjs.map +1 -1
  338. package/shaders/ConvolutionShader.js +43 -24
  339. package/shaders/ConvolutionShader.js.map +1 -1
  340. package/shaders/CopyShader.cjs +30 -16
  341. package/shaders/CopyShader.cjs.map +1 -1
  342. package/shaders/CopyShader.js +30 -16
  343. package/shaders/CopyShader.js.map +1 -1
  344. package/shaders/DOFMipMapShader.cjs +38 -21
  345. package/shaders/DOFMipMapShader.cjs.map +1 -1
  346. package/shaders/DOFMipMapShader.js +38 -21
  347. package/shaders/DOFMipMapShader.js.map +1 -1
  348. package/shaders/DepthLimitedBlurShader.cjs +98 -69
  349. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  350. package/shaders/DepthLimitedBlurShader.js +98 -69
  351. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  352. package/shaders/DigitalGlitch.cjs +70 -59
  353. package/shaders/DigitalGlitch.cjs.map +1 -1
  354. package/shaders/DigitalGlitch.js +70 -59
  355. package/shaders/DigitalGlitch.js.map +1 -1
  356. package/shaders/DotScreenShader.cjs +49 -28
  357. package/shaders/DotScreenShader.cjs.map +1 -1
  358. package/shaders/DotScreenShader.js +49 -28
  359. package/shaders/DotScreenShader.js.map +1 -1
  360. package/shaders/FXAAShader.cjs +1098 -1089
  361. package/shaders/FXAAShader.cjs.map +1 -1
  362. package/shaders/FXAAShader.js +1098 -1089
  363. package/shaders/FXAAShader.js.map +1 -1
  364. package/shaders/FilmShader.cjs +57 -29
  365. package/shaders/FilmShader.cjs.map +1 -1
  366. package/shaders/FilmShader.js +57 -29
  367. package/shaders/FilmShader.js.map +1 -1
  368. package/shaders/FocusShader.cjs +70 -43
  369. package/shaders/FocusShader.cjs.map +1 -1
  370. package/shaders/FocusShader.js +70 -43
  371. package/shaders/FocusShader.js.map +1 -1
  372. package/shaders/FreiChenShader.cjs +74 -53
  373. package/shaders/FreiChenShader.cjs.map +1 -1
  374. package/shaders/FreiChenShader.js +74 -53
  375. package/shaders/FreiChenShader.js.map +1 -1
  376. package/shaders/FresnelShader.cjs +55 -35
  377. package/shaders/FresnelShader.cjs.map +1 -1
  378. package/shaders/FresnelShader.js +55 -35
  379. package/shaders/FresnelShader.js.map +1 -1
  380. package/shaders/GammaCorrectionShader.cjs +33 -19
  381. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  382. package/shaders/GammaCorrectionShader.js +33 -19
  383. package/shaders/GammaCorrectionShader.js.map +1 -1
  384. package/shaders/GodRaysShader.cjs +193 -116
  385. package/shaders/GodRaysShader.cjs.map +1 -1
  386. package/shaders/GodRaysShader.js +193 -116
  387. package/shaders/GodRaysShader.js.map +1 -1
  388. package/shaders/HalftoneShader.cjs +270 -192
  389. package/shaders/HalftoneShader.cjs.map +1 -1
  390. package/shaders/HalftoneShader.js +270 -192
  391. package/shaders/HalftoneShader.js.map +1 -1
  392. package/shaders/HorizontalTiltShiftShader.cjs +43 -27
  393. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  394. package/shaders/HorizontalTiltShiftShader.js +43 -27
  395. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  396. package/shaders/HueSaturationShader.cjs +47 -31
  397. package/shaders/HueSaturationShader.cjs.map +1 -1
  398. package/shaders/HueSaturationShader.js +47 -31
  399. package/shaders/HueSaturationShader.js.map +1 -1
  400. package/shaders/KaleidoShader.cjs +37 -24
  401. package/shaders/KaleidoShader.cjs.map +1 -1
  402. package/shaders/KaleidoShader.js +37 -24
  403. package/shaders/KaleidoShader.js.map +1 -1
  404. package/shaders/LuminosityHighPassShader.cjs +43 -24
  405. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  406. package/shaders/LuminosityHighPassShader.js +43 -24
  407. package/shaders/LuminosityHighPassShader.js.map +1 -1
  408. package/shaders/LuminosityShader.cjs +34 -17
  409. package/shaders/LuminosityShader.cjs.map +1 -1
  410. package/shaders/LuminosityShader.js +34 -17
  411. package/shaders/LuminosityShader.js.map +1 -1
  412. package/shaders/MirrorShader.cjs +39 -26
  413. package/shaders/MirrorShader.cjs.map +1 -1
  414. package/shaders/MirrorShader.js +39 -26
  415. package/shaders/MirrorShader.js.map +1 -1
  416. package/shaders/NormalMapShader.cjs +36 -21
  417. package/shaders/NormalMapShader.cjs.map +1 -1
  418. package/shaders/NormalMapShader.js +36 -21
  419. package/shaders/NormalMapShader.js.map +1 -1
  420. package/shaders/ParallaxShader.cjs +147 -97
  421. package/shaders/ParallaxShader.cjs.map +1 -1
  422. package/shaders/ParallaxShader.js +147 -97
  423. package/shaders/ParallaxShader.js.map +1 -1
  424. package/shaders/PixelShader.cjs +31 -18
  425. package/shaders/PixelShader.cjs.map +1 -1
  426. package/shaders/PixelShader.js +31 -18
  427. package/shaders/PixelShader.js.map +1 -1
  428. package/shaders/RGBShiftShader.cjs +33 -20
  429. package/shaders/RGBShiftShader.cjs.map +1 -1
  430. package/shaders/RGBShiftShader.js +33 -20
  431. package/shaders/RGBShiftShader.js.map +1 -1
  432. package/shaders/SAOShader.cjs +154 -117
  433. package/shaders/SAOShader.cjs.map +1 -1
  434. package/shaders/SAOShader.js +154 -117
  435. package/shaders/SAOShader.js.map +1 -1
  436. package/shaders/SMAAShader.cjs +358 -270
  437. package/shaders/SMAAShader.cjs.map +1 -1
  438. package/shaders/SMAAShader.js +358 -270
  439. package/shaders/SMAAShader.js.map +1 -1
  440. package/shaders/SSAOShader.cjs +236 -142
  441. package/shaders/SSAOShader.cjs.map +1 -1
  442. package/shaders/SSAOShader.js +236 -142
  443. package/shaders/SSAOShader.js.map +1 -1
  444. package/shaders/SSRShader.cjs +4 -4
  445. package/shaders/SSRShader.cjs.map +1 -1
  446. package/shaders/SSRShader.js +4 -4
  447. package/shaders/SSRShader.js.map +1 -1
  448. package/shaders/SepiaShader.cjs +36 -20
  449. package/shaders/SepiaShader.cjs.map +1 -1
  450. package/shaders/SepiaShader.js +36 -20
  451. package/shaders/SepiaShader.js.map +1 -1
  452. package/shaders/SobelOperatorShader.cjs +64 -37
  453. package/shaders/SobelOperatorShader.cjs.map +1 -1
  454. package/shaders/SobelOperatorShader.js +64 -37
  455. package/shaders/SobelOperatorShader.js.map +1 -1
  456. package/shaders/TechnicolorShader.cjs +29 -16
  457. package/shaders/TechnicolorShader.cjs.map +1 -1
  458. package/shaders/TechnicolorShader.js +29 -16
  459. package/shaders/TechnicolorShader.js.map +1 -1
  460. package/shaders/ToneMapShader.cjs +55 -35
  461. package/shaders/ToneMapShader.cjs.map +1 -1
  462. package/shaders/ToneMapShader.js +55 -35
  463. package/shaders/ToneMapShader.js.map +1 -1
  464. package/shaders/ToonShader.cjs +275 -165
  465. package/shaders/ToonShader.cjs.map +1 -1
  466. package/shaders/ToonShader.js +275 -165
  467. package/shaders/ToonShader.js.map +1 -1
  468. package/shaders/TriangleBlurShader.cjs +50 -27
  469. package/shaders/TriangleBlurShader.cjs.map +1 -1
  470. package/shaders/TriangleBlurShader.js +50 -27
  471. package/shaders/TriangleBlurShader.js.map +1 -1
  472. package/shaders/UnpackDepthRGBAShader.cjs +32 -17
  473. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  474. package/shaders/UnpackDepthRGBAShader.js +32 -17
  475. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  476. package/shaders/VerticalTiltShiftShader.cjs +43 -27
  477. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  478. package/shaders/VerticalTiltShiftShader.js +43 -27
  479. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  480. package/shaders/VignetteShader.cjs +43 -27
  481. package/shaders/VignetteShader.cjs.map +1 -1
  482. package/shaders/VignetteShader.js +43 -27
  483. package/shaders/VignetteShader.js.map +1 -1
  484. package/shaders/VolumeShader.cjs +264 -213
  485. package/shaders/VolumeShader.cjs.map +1 -1
  486. package/shaders/VolumeShader.js +264 -213
  487. package/shaders/VolumeShader.js.map +1 -1
  488. package/shaders/WaterRefractionShader.cjs +63 -35
  489. package/shaders/WaterRefractionShader.cjs.map +1 -1
  490. package/shaders/WaterRefractionShader.js +63 -35
  491. package/shaders/WaterRefractionShader.js.map +1 -1
  492. package/utils/GeometryCompressionUtils.cjs +2 -1
  493. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  494. package/utils/GeometryCompressionUtils.js +3 -2
  495. package/utils/GeometryCompressionUtils.js.map +1 -1
  496. package/utils/RoughnessMipmapper.cjs +3 -3
  497. package/utils/RoughnessMipmapper.cjs.map +1 -1
  498. package/utils/RoughnessMipmapper.js +4 -4
  499. package/utils/RoughnessMipmapper.js.map +1 -1
  500. package/utils/ShadowMapViewer.d.ts +2 -2
  501. package/webxr/ARButton.cjs +109 -106
  502. package/webxr/ARButton.cjs.map +1 -1
  503. package/webxr/ARButton.d.ts +4 -3
  504. package/webxr/ARButton.js +109 -106
  505. package/webxr/ARButton.js.map +1 -1
  506. package/webxr/OculusHandPointerModel.cjs +2 -2
  507. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  508. package/webxr/OculusHandPointerModel.js +2 -2
  509. package/webxr/OculusHandPointerModel.js.map +1 -1
  510. package/webxr/VRButton.cjs +98 -95
  511. package/webxr/VRButton.cjs.map +1 -1
  512. package/webxr/VRButton.d.ts +6 -5
  513. package/webxr/VRButton.js +98 -95
  514. package/webxr/VRButton.js.map +1 -1
  515. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  516. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  517. package/webxr/XRHandPrimitiveModel.js +3 -3
  518. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -5,183 +5,184 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  import { Mesh, Matrix4, Vector2, Color, Vector3, PerspectiveCamera, DepthTexture, UnsignedShortType, NearestFilter, WebGLRenderTarget, ShaderMaterial, UniformsUtils, Plane, HalfFloatType } from "three";
8
- const _ReflectorForSSRPass = class extends Mesh {
9
- constructor(geometry, options = {}) {
10
- super(geometry);
11
- this.isReflectorForSSRPass = true;
12
- this.type = "ReflectorForSSRPass";
13
- const scope = this;
14
- const color = options.color !== void 0 ? new Color(options.color) : new Color(8355711);
15
- const textureWidth = options.textureWidth || 512;
16
- const textureHeight = options.textureHeight || 512;
17
- const clipBias = options.clipBias || 0;
18
- const shader = options.shader || _ReflectorForSSRPass.ReflectorShader;
19
- const useDepthTexture = options.useDepthTexture === true;
20
- const yAxis = new Vector3(0, 1, 0);
21
- const vecTemp0 = new Vector3();
22
- const vecTemp1 = new Vector3();
23
- scope.needsUpdate = false;
24
- scope.maxDistance = _ReflectorForSSRPass.ReflectorShader.uniforms.maxDistance.value;
25
- scope.opacity = _ReflectorForSSRPass.ReflectorShader.uniforms.opacity.value;
26
- scope.color = color;
27
- scope.resolution = options.resolution || new Vector2(window.innerWidth, window.innerHeight);
28
- scope._distanceAttenuation = _ReflectorForSSRPass.ReflectorShader.defines.DISTANCE_ATTENUATION;
29
- Object.defineProperty(scope, "distanceAttenuation", {
30
- get() {
31
- return scope._distanceAttenuation;
32
- },
33
- set(val) {
34
- if (scope._distanceAttenuation === val)
35
- return;
36
- scope._distanceAttenuation = val;
37
- scope.material.defines.DISTANCE_ATTENUATION = val;
38
- scope.material.needsUpdate = true;
39
- }
40
- });
41
- scope._fresnel = _ReflectorForSSRPass.ReflectorShader.defines.FRESNEL;
42
- Object.defineProperty(scope, "fresnel", {
43
- get() {
44
- return scope._fresnel;
45
- },
46
- set(val) {
47
- if (scope._fresnel === val)
48
- return;
49
- scope._fresnel = val;
50
- scope.material.defines.FRESNEL = val;
51
- scope.material.needsUpdate = true;
8
+ const ReflectorForSSRPass = /* @__PURE__ */ (() => {
9
+ const _ReflectorForSSRPass = class extends Mesh {
10
+ constructor(geometry, options = {}) {
11
+ super(geometry);
12
+ this.isReflectorForSSRPass = true;
13
+ this.type = "ReflectorForSSRPass";
14
+ const scope = this;
15
+ const color = options.color !== void 0 ? new Color(options.color) : new Color(8355711);
16
+ const textureWidth = options.textureWidth || 512;
17
+ const textureHeight = options.textureHeight || 512;
18
+ const clipBias = options.clipBias || 0;
19
+ const shader = options.shader || _ReflectorForSSRPass.ReflectorShader;
20
+ const useDepthTexture = options.useDepthTexture === true;
21
+ const yAxis = new Vector3(0, 1, 0);
22
+ const vecTemp0 = new Vector3();
23
+ const vecTemp1 = new Vector3();
24
+ scope.needsUpdate = false;
25
+ scope.maxDistance = _ReflectorForSSRPass.ReflectorShader.uniforms.maxDistance.value;
26
+ scope.opacity = _ReflectorForSSRPass.ReflectorShader.uniforms.opacity.value;
27
+ scope.color = color;
28
+ scope.resolution = options.resolution || new Vector2(window.innerWidth, window.innerHeight);
29
+ scope._distanceAttenuation = _ReflectorForSSRPass.ReflectorShader.defines.DISTANCE_ATTENUATION;
30
+ Object.defineProperty(scope, "distanceAttenuation", {
31
+ get() {
32
+ return scope._distanceAttenuation;
33
+ },
34
+ set(val) {
35
+ if (scope._distanceAttenuation === val)
36
+ return;
37
+ scope._distanceAttenuation = val;
38
+ scope.material.defines.DISTANCE_ATTENUATION = val;
39
+ scope.material.needsUpdate = true;
40
+ }
41
+ });
42
+ scope._fresnel = _ReflectorForSSRPass.ReflectorShader.defines.FRESNEL;
43
+ Object.defineProperty(scope, "fresnel", {
44
+ get() {
45
+ return scope._fresnel;
46
+ },
47
+ set(val) {
48
+ if (scope._fresnel === val)
49
+ return;
50
+ scope._fresnel = val;
51
+ scope.material.defines.FRESNEL = val;
52
+ scope.material.needsUpdate = true;
53
+ }
54
+ });
55
+ const normal = new Vector3();
56
+ const reflectorWorldPosition = new Vector3();
57
+ const cameraWorldPosition = new Vector3();
58
+ const rotationMatrix = new Matrix4();
59
+ const lookAtPosition = new Vector3(0, 0, -1);
60
+ const view = new Vector3();
61
+ const target = new Vector3();
62
+ const textureMatrix = new Matrix4();
63
+ const virtualCamera = new PerspectiveCamera();
64
+ let depthTexture;
65
+ if (useDepthTexture) {
66
+ depthTexture = new DepthTexture();
67
+ depthTexture.type = UnsignedShortType;
68
+ depthTexture.minFilter = NearestFilter;
69
+ depthTexture.magFilter = NearestFilter;
52
70
  }
53
- });
54
- const normal = new Vector3();
55
- const reflectorWorldPosition = new Vector3();
56
- const cameraWorldPosition = new Vector3();
57
- const rotationMatrix = new Matrix4();
58
- const lookAtPosition = new Vector3(0, 0, -1);
59
- const view = new Vector3();
60
- const target = new Vector3();
61
- const textureMatrix = new Matrix4();
62
- const virtualCamera = new PerspectiveCamera();
63
- let depthTexture;
64
- if (useDepthTexture) {
65
- depthTexture = new DepthTexture();
66
- depthTexture.type = UnsignedShortType;
67
- depthTexture.minFilter = NearestFilter;
68
- depthTexture.magFilter = NearestFilter;
69
- }
70
- const parameters = {
71
- depthTexture: useDepthTexture ? depthTexture : null,
72
- type: HalfFloatType
73
- };
74
- const renderTarget = new WebGLRenderTarget(textureWidth, textureHeight, parameters);
75
- const material = new ShaderMaterial({
76
- transparent: useDepthTexture,
77
- defines: Object.assign({}, _ReflectorForSSRPass.ReflectorShader.defines, {
78
- useDepthTexture
79
- }),
80
- uniforms: UniformsUtils.clone(shader.uniforms),
81
- fragmentShader: shader.fragmentShader,
82
- vertexShader: shader.vertexShader
83
- });
84
- material.uniforms["tDiffuse"].value = renderTarget.texture;
85
- material.uniforms["color"].value = scope.color;
86
- material.uniforms["textureMatrix"].value = textureMatrix;
87
- if (useDepthTexture) {
88
- material.uniforms["tDepth"].value = renderTarget.depthTexture;
89
- }
90
- this.material = material;
91
- const globalPlane = new Plane(new Vector3(0, 1, 0), clipBias);
92
- const globalPlanes = [globalPlane];
93
- this.doRender = function(renderer, scene, camera) {
94
- material.uniforms["maxDistance"].value = scope.maxDistance;
71
+ const parameters = {
72
+ depthTexture: useDepthTexture ? depthTexture : null,
73
+ type: HalfFloatType
74
+ };
75
+ const renderTarget = new WebGLRenderTarget(textureWidth, textureHeight, parameters);
76
+ const material = new ShaderMaterial({
77
+ transparent: useDepthTexture,
78
+ defines: Object.assign({}, _ReflectorForSSRPass.ReflectorShader.defines, {
79
+ useDepthTexture
80
+ }),
81
+ uniforms: UniformsUtils.clone(shader.uniforms),
82
+ fragmentShader: shader.fragmentShader,
83
+ vertexShader: shader.vertexShader
84
+ });
85
+ material.uniforms["tDiffuse"].value = renderTarget.texture;
95
86
  material.uniforms["color"].value = scope.color;
96
- material.uniforms["opacity"].value = scope.opacity;
97
- vecTemp0.copy(camera.position).normalize();
98
- vecTemp1.copy(vecTemp0).reflect(yAxis);
99
- material.uniforms["fresnelCoe"].value = (vecTemp0.dot(vecTemp1) + 1) / 2;
100
- reflectorWorldPosition.setFromMatrixPosition(scope.matrixWorld);
101
- cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);
102
- rotationMatrix.extractRotation(scope.matrixWorld);
103
- normal.set(0, 0, 1);
104
- normal.applyMatrix4(rotationMatrix);
105
- view.subVectors(reflectorWorldPosition, cameraWorldPosition);
106
- if (view.dot(normal) > 0)
107
- return;
108
- view.reflect(normal).negate();
109
- view.add(reflectorWorldPosition);
110
- rotationMatrix.extractRotation(camera.matrixWorld);
111
- lookAtPosition.set(0, 0, -1);
112
- lookAtPosition.applyMatrix4(rotationMatrix);
113
- lookAtPosition.add(cameraWorldPosition);
114
- target.subVectors(reflectorWorldPosition, lookAtPosition);
115
- target.reflect(normal).negate();
116
- target.add(reflectorWorldPosition);
117
- virtualCamera.position.copy(view);
118
- virtualCamera.up.set(0, 1, 0);
119
- virtualCamera.up.applyMatrix4(rotationMatrix);
120
- virtualCamera.up.reflect(normal);
121
- virtualCamera.lookAt(target);
122
- virtualCamera.far = camera.far;
123
- virtualCamera.updateMatrixWorld();
124
- virtualCamera.projectionMatrix.copy(camera.projectionMatrix);
125
- material.uniforms["virtualCameraNear"].value = camera.near;
126
- material.uniforms["virtualCameraFar"].value = camera.far;
127
- material.uniforms["virtualCameraMatrixWorld"].value = virtualCamera.matrixWorld;
128
- material.uniforms["virtualCameraProjectionMatrix"].value = camera.projectionMatrix;
129
- material.uniforms["virtualCameraProjectionMatrixInverse"].value = camera.projectionMatrixInverse;
130
- material.uniforms["resolution"].value = scope.resolution;
131
- textureMatrix.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1);
132
- textureMatrix.multiply(virtualCamera.projectionMatrix);
133
- textureMatrix.multiply(virtualCamera.matrixWorldInverse);
134
- textureMatrix.multiply(scope.matrixWorld);
135
- const currentRenderTarget = renderer.getRenderTarget();
136
- const currentXrEnabled = renderer.xr.enabled;
137
- const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate;
138
- const currentClippingPlanes = renderer.clippingPlanes;
139
- renderer.xr.enabled = false;
140
- renderer.shadowMap.autoUpdate = false;
141
- renderer.clippingPlanes = globalPlanes;
142
- renderer.setRenderTarget(renderTarget);
143
- renderer.state.buffers.depth.setMask(true);
144
- if (renderer.autoClear === false)
145
- renderer.clear();
146
- renderer.render(scene, virtualCamera);
147
- renderer.xr.enabled = currentXrEnabled;
148
- renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
149
- renderer.clippingPlanes = currentClippingPlanes;
150
- renderer.setRenderTarget(currentRenderTarget);
151
- const viewport = camera.viewport;
152
- if (viewport !== void 0) {
153
- renderer.state.viewport(viewport);
87
+ material.uniforms["textureMatrix"].value = textureMatrix;
88
+ if (useDepthTexture) {
89
+ material.uniforms["tDepth"].value = renderTarget.depthTexture;
154
90
  }
155
- };
156
- this.getRenderTarget = function() {
157
- return renderTarget;
158
- };
159
- }
160
- };
161
- let ReflectorForSSRPass = _ReflectorForSSRPass;
162
- __publicField(ReflectorForSSRPass, "ReflectorShader", {
163
- defines: {
164
- DISTANCE_ATTENUATION: true,
165
- FRESNEL: true
166
- },
167
- uniforms: {
168
- color: { value: null },
169
- tDiffuse: { value: null },
170
- tDepth: { value: null },
171
- textureMatrix: { value: new Matrix4() },
172
- maxDistance: { value: 180 },
173
- opacity: { value: 0.5 },
174
- fresnelCoe: { value: null },
175
- virtualCameraNear: { value: null },
176
- virtualCameraFar: { value: null },
177
- virtualCameraProjectionMatrix: { value: new Matrix4() },
178
- virtualCameraMatrixWorld: { value: new Matrix4() },
179
- virtualCameraProjectionMatrixInverse: { value: new Matrix4() },
180
- resolution: { value: new Vector2() }
181
- },
182
- vertexShader: (
183
- /* glsl */
184
- `
91
+ this.material = material;
92
+ const globalPlane = new Plane(new Vector3(0, 1, 0), clipBias);
93
+ const globalPlanes = [globalPlane];
94
+ this.doRender = function(renderer, scene, camera) {
95
+ material.uniforms["maxDistance"].value = scope.maxDistance;
96
+ material.uniforms["color"].value = scope.color;
97
+ material.uniforms["opacity"].value = scope.opacity;
98
+ vecTemp0.copy(camera.position).normalize();
99
+ vecTemp1.copy(vecTemp0).reflect(yAxis);
100
+ material.uniforms["fresnelCoe"].value = (vecTemp0.dot(vecTemp1) + 1) / 2;
101
+ reflectorWorldPosition.setFromMatrixPosition(scope.matrixWorld);
102
+ cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);
103
+ rotationMatrix.extractRotation(scope.matrixWorld);
104
+ normal.set(0, 0, 1);
105
+ normal.applyMatrix4(rotationMatrix);
106
+ view.subVectors(reflectorWorldPosition, cameraWorldPosition);
107
+ if (view.dot(normal) > 0)
108
+ return;
109
+ view.reflect(normal).negate();
110
+ view.add(reflectorWorldPosition);
111
+ rotationMatrix.extractRotation(camera.matrixWorld);
112
+ lookAtPosition.set(0, 0, -1);
113
+ lookAtPosition.applyMatrix4(rotationMatrix);
114
+ lookAtPosition.add(cameraWorldPosition);
115
+ target.subVectors(reflectorWorldPosition, lookAtPosition);
116
+ target.reflect(normal).negate();
117
+ target.add(reflectorWorldPosition);
118
+ virtualCamera.position.copy(view);
119
+ virtualCamera.up.set(0, 1, 0);
120
+ virtualCamera.up.applyMatrix4(rotationMatrix);
121
+ virtualCamera.up.reflect(normal);
122
+ virtualCamera.lookAt(target);
123
+ virtualCamera.far = camera.far;
124
+ virtualCamera.updateMatrixWorld();
125
+ virtualCamera.projectionMatrix.copy(camera.projectionMatrix);
126
+ material.uniforms["virtualCameraNear"].value = camera.near;
127
+ material.uniforms["virtualCameraFar"].value = camera.far;
128
+ material.uniforms["virtualCameraMatrixWorld"].value = virtualCamera.matrixWorld;
129
+ material.uniforms["virtualCameraProjectionMatrix"].value = camera.projectionMatrix;
130
+ material.uniforms["virtualCameraProjectionMatrixInverse"].value = camera.projectionMatrixInverse;
131
+ material.uniforms["resolution"].value = scope.resolution;
132
+ textureMatrix.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1);
133
+ textureMatrix.multiply(virtualCamera.projectionMatrix);
134
+ textureMatrix.multiply(virtualCamera.matrixWorldInverse);
135
+ textureMatrix.multiply(scope.matrixWorld);
136
+ const currentRenderTarget = renderer.getRenderTarget();
137
+ const currentXrEnabled = renderer.xr.enabled;
138
+ const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate;
139
+ const currentClippingPlanes = renderer.clippingPlanes;
140
+ renderer.xr.enabled = false;
141
+ renderer.shadowMap.autoUpdate = false;
142
+ renderer.clippingPlanes = globalPlanes;
143
+ renderer.setRenderTarget(renderTarget);
144
+ renderer.state.buffers.depth.setMask(true);
145
+ if (renderer.autoClear === false)
146
+ renderer.clear();
147
+ renderer.render(scene, virtualCamera);
148
+ renderer.xr.enabled = currentXrEnabled;
149
+ renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
150
+ renderer.clippingPlanes = currentClippingPlanes;
151
+ renderer.setRenderTarget(currentRenderTarget);
152
+ const viewport = camera.viewport;
153
+ if (viewport !== void 0) {
154
+ renderer.state.viewport(viewport);
155
+ }
156
+ };
157
+ this.getRenderTarget = function() {
158
+ return renderTarget;
159
+ };
160
+ }
161
+ };
162
+ let ReflectorForSSRPass2 = _ReflectorForSSRPass;
163
+ __publicField(ReflectorForSSRPass2, "ReflectorShader", {
164
+ defines: {
165
+ DISTANCE_ATTENUATION: true,
166
+ FRESNEL: true
167
+ },
168
+ uniforms: {
169
+ color: { value: null },
170
+ tDiffuse: { value: null },
171
+ tDepth: { value: null },
172
+ textureMatrix: { value: new Matrix4() },
173
+ maxDistance: { value: 180 },
174
+ opacity: { value: 0.5 },
175
+ fresnelCoe: { value: null },
176
+ virtualCameraNear: { value: null },
177
+ virtualCameraFar: { value: null },
178
+ virtualCameraProjectionMatrix: { value: new Matrix4() },
179
+ virtualCameraMatrixWorld: { value: new Matrix4() },
180
+ virtualCameraProjectionMatrixInverse: { value: new Matrix4() },
181
+ resolution: { value: new Vector2() }
182
+ },
183
+ vertexShader: (
184
+ /* glsl */
185
+ `
185
186
  uniform mat4 textureMatrix;
186
187
  varying vec4 vUv;
187
188
 
@@ -192,10 +193,10 @@ __publicField(ReflectorForSSRPass, "ReflectorShader", {
192
193
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
193
194
 
194
195
  }`
195
- ),
196
- fragmentShader: (
197
- /* glsl */
198
- `
196
+ ),
197
+ fragmentShader: (
198
+ /* glsl */
199
+ `
199
200
  uniform vec3 color;
200
201
  uniform sampler2D tDiffuse;
201
202
  uniform sampler2D tDepth;
@@ -253,8 +254,10 @@ __publicField(ReflectorForSSRPass, "ReflectorShader", {
253
254
  #endif
254
255
  }
255
256
  `
256
- )
257
- });
257
+ )
258
+ });
259
+ return ReflectorForSSRPass2;
260
+ })();
258
261
  export {
259
262
  ReflectorForSSRPass
260
263
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ReflectorForSSRPass.js","sources":["../../src/objects/ReflectorForSSRPass.js"],"sourcesContent":["import {\n Color,\n Matrix4,\n Mesh,\n PerspectiveCamera,\n ShaderMaterial,\n UniformsUtils,\n Vector2,\n Vector3,\n WebGLRenderTarget,\n DepthTexture,\n UnsignedShortType,\n NearestFilter,\n Plane,\n HalfFloatType,\n} from 'three'\n\nclass ReflectorForSSRPass extends Mesh {\n static ReflectorShader = {\n defines: {\n DISTANCE_ATTENUATION: true,\n FRESNEL: true,\n },\n\n uniforms: {\n color: { value: null },\n tDiffuse: { value: null },\n tDepth: { value: null },\n textureMatrix: { value: new Matrix4() },\n maxDistance: { value: 180 },\n opacity: { value: 0.5 },\n fresnelCoe: { value: null },\n virtualCameraNear: { value: null },\n virtualCameraFar: { value: null },\n virtualCameraProjectionMatrix: { value: new Matrix4() },\n virtualCameraMatrixWorld: { value: new Matrix4() },\n virtualCameraProjectionMatrixInverse: { value: new Matrix4() },\n resolution: { value: new Vector2() },\n },\n\n vertexShader: /* glsl */ `\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}`,\n\n fragmentShader: /* glsl */ `\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\t\tuniform float maxDistance;\n\t\tuniform float opacity;\n\t\tuniform float fresnelCoe;\n\t\tuniform float virtualCameraNear;\n\t\tuniform float virtualCameraFar;\n\t\tuniform mat4 virtualCameraProjectionMatrix;\n\t\tuniform mat4 virtualCameraProjectionMatrixInverse;\n\t\tuniform mat4 virtualCameraMatrixWorld;\n\t\tuniform vec2 resolution;\n\t\tvarying vec4 vUv;\n\t\t#include <packing>\n\t\tfloat blendOverlay( float base, float blend ) {\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\t\t}\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\treturn perspectiveDepthToViewZ( depth, virtualCameraNear, virtualCameraFar );\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( virtualCameraProjectionMatrixInverse * clipPosition ).xyz;//view\n\t\t}\n\t\tvoid main() {\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\t#ifdef useDepthTexture\n\t\t\t\tvec2 uv=(gl_FragCoord.xy-.5)/resolution.xy;\n\t\t\t\tuv.x=1.-uv.x;\n\t\t\t\tfloat depth = texture2DProj( tDepth, vUv ).r;\n\t\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\t\tfloat clipW = virtualCameraProjectionMatrix[2][3] * viewZ+virtualCameraProjectionMatrix[3][3];\n\t\t\t\tvec3 viewPosition=getViewPosition( uv, depth, clipW );\n\t\t\t\tvec3 worldPosition=(virtualCameraMatrixWorld*vec4(viewPosition,1)).xyz;\n\t\t\t\tif(worldPosition.y>maxDistance) discard;\n\t\t\t\tfloat op=opacity;\n\t\t\t\t#ifdef DISTANCE_ATTENUATION\n\t\t\t\t\tfloat ratio=1.-(worldPosition.y/maxDistance);\n\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t#endif\n\t\t\t\t#ifdef FRESNEL\n\t\t\t\t\top*=fresnelCoe;\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), op );\n\t\t\t#else\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\t\t\t#endif\n\t\t}\n\t`,\n }\n\n constructor(geometry, options = {}) {\n super(geometry)\n\n this.isReflectorForSSRPass = true\n\n this.type = 'ReflectorForSSRPass'\n\n const scope = this\n\n const color = options.color !== undefined ? new Color(options.color) : new Color(0x7f7f7f)\n const textureWidth = options.textureWidth || 512\n const textureHeight = options.textureHeight || 512\n const clipBias = options.clipBias || 0\n const shader = options.shader || ReflectorForSSRPass.ReflectorShader\n const useDepthTexture = options.useDepthTexture === true\n const yAxis = new Vector3(0, 1, 0)\n const vecTemp0 = new Vector3()\n const vecTemp1 = new Vector3()\n\n //\n\n scope.needsUpdate = false\n scope.maxDistance = ReflectorForSSRPass.ReflectorShader.uniforms.maxDistance.value\n scope.opacity = ReflectorForSSRPass.ReflectorShader.uniforms.opacity.value\n scope.color = color\n scope.resolution = options.resolution || new Vector2(window.innerWidth, window.innerHeight)\n\n scope._distanceAttenuation = ReflectorForSSRPass.ReflectorShader.defines.DISTANCE_ATTENUATION\n Object.defineProperty(scope, 'distanceAttenuation', {\n get() {\n return scope._distanceAttenuation\n },\n set(val) {\n if (scope._distanceAttenuation === val) return\n scope._distanceAttenuation = val\n scope.material.defines.DISTANCE_ATTENUATION = val\n scope.material.needsUpdate = true\n },\n })\n\n scope._fresnel = ReflectorForSSRPass.ReflectorShader.defines.FRESNEL\n Object.defineProperty(scope, 'fresnel', {\n get() {\n return scope._fresnel\n },\n set(val) {\n if (scope._fresnel === val) return\n scope._fresnel = val\n scope.material.defines.FRESNEL = val\n scope.material.needsUpdate = true\n },\n })\n\n const normal = new Vector3()\n const reflectorWorldPosition = new Vector3()\n const cameraWorldPosition = new Vector3()\n const rotationMatrix = new Matrix4()\n const lookAtPosition = new Vector3(0, 0, -1)\n\n const view = new Vector3()\n const target = new Vector3()\n\n const textureMatrix = new Matrix4()\n const virtualCamera = new PerspectiveCamera()\n\n let depthTexture\n\n if (useDepthTexture) {\n depthTexture = new DepthTexture()\n depthTexture.type = UnsignedShortType\n depthTexture.minFilter = NearestFilter\n depthTexture.magFilter = NearestFilter\n }\n\n const parameters = {\n depthTexture: useDepthTexture ? depthTexture : null,\n type: HalfFloatType,\n }\n\n const renderTarget = new WebGLRenderTarget(textureWidth, textureHeight, parameters)\n\n const material = new ShaderMaterial({\n transparent: useDepthTexture,\n defines: Object.assign({}, ReflectorForSSRPass.ReflectorShader.defines, {\n useDepthTexture,\n }),\n uniforms: UniformsUtils.clone(shader.uniforms),\n fragmentShader: shader.fragmentShader,\n vertexShader: shader.vertexShader,\n })\n\n material.uniforms['tDiffuse'].value = renderTarget.texture\n material.uniforms['color'].value = scope.color\n material.uniforms['textureMatrix'].value = textureMatrix\n if (useDepthTexture) {\n material.uniforms['tDepth'].value = renderTarget.depthTexture\n }\n\n this.material = material\n\n const globalPlane = new Plane(new Vector3(0, 1, 0), clipBias)\n const globalPlanes = [globalPlane]\n\n this.doRender = function (renderer, scene, camera) {\n material.uniforms['maxDistance'].value = scope.maxDistance\n material.uniforms['color'].value = scope.color\n material.uniforms['opacity'].value = scope.opacity\n\n vecTemp0.copy(camera.position).normalize()\n vecTemp1.copy(vecTemp0).reflect(yAxis)\n material.uniforms['fresnelCoe'].value = (vecTemp0.dot(vecTemp1) + 1) / 2 // TODO: Also need to use glsl viewPosition and viewNormal per pixel.\n\n reflectorWorldPosition.setFromMatrixPosition(scope.matrixWorld)\n cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld)\n\n rotationMatrix.extractRotation(scope.matrixWorld)\n\n normal.set(0, 0, 1)\n normal.applyMatrix4(rotationMatrix)\n\n view.subVectors(reflectorWorldPosition, cameraWorldPosition)\n\n // Avoid rendering when reflector is facing away\n\n if (view.dot(normal) > 0) return\n\n view.reflect(normal).negate()\n view.add(reflectorWorldPosition)\n\n rotationMatrix.extractRotation(camera.matrixWorld)\n\n lookAtPosition.set(0, 0, -1)\n lookAtPosition.applyMatrix4(rotationMatrix)\n lookAtPosition.add(cameraWorldPosition)\n\n target.subVectors(reflectorWorldPosition, lookAtPosition)\n target.reflect(normal).negate()\n target.add(reflectorWorldPosition)\n\n virtualCamera.position.copy(view)\n virtualCamera.up.set(0, 1, 0)\n virtualCamera.up.applyMatrix4(rotationMatrix)\n virtualCamera.up.reflect(normal)\n virtualCamera.lookAt(target)\n\n virtualCamera.far = camera.far // Used in WebGLBackground\n\n virtualCamera.updateMatrixWorld()\n virtualCamera.projectionMatrix.copy(camera.projectionMatrix)\n\n material.uniforms['virtualCameraNear'].value = camera.near\n material.uniforms['virtualCameraFar'].value = camera.far\n material.uniforms['virtualCameraMatrixWorld'].value = virtualCamera.matrixWorld\n material.uniforms['virtualCameraProjectionMatrix'].value = camera.projectionMatrix\n material.uniforms['virtualCameraProjectionMatrixInverse'].value = camera.projectionMatrixInverse\n material.uniforms['resolution'].value = scope.resolution\n\n // Update the texture matrix\n textureMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0)\n textureMatrix.multiply(virtualCamera.projectionMatrix)\n textureMatrix.multiply(virtualCamera.matrixWorldInverse)\n textureMatrix.multiply(scope.matrixWorld)\n\n // scope.visible = false;\n\n const currentRenderTarget = renderer.getRenderTarget()\n\n const currentXrEnabled = renderer.xr.enabled\n const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate\n const currentClippingPlanes = renderer.clippingPlanes\n\n renderer.xr.enabled = false // Avoid camera modification\n renderer.shadowMap.autoUpdate = false // Avoid re-computing shadows\n renderer.clippingPlanes = globalPlanes\n\n renderer.setRenderTarget(renderTarget)\n\n renderer.state.buffers.depth.setMask(true) // make sure the depth buffer is writable so it can be properly cleared, see #18897\n\n if (renderer.autoClear === false) renderer.clear()\n renderer.render(scene, virtualCamera)\n\n renderer.xr.enabled = currentXrEnabled\n renderer.shadowMap.autoUpdate = currentShadowAutoUpdate\n renderer.clippingPlanes = currentClippingPlanes\n\n renderer.setRenderTarget(currentRenderTarget)\n\n // Restore viewport\n\n const viewport = camera.viewport\n\n if (viewport !== undefined) {\n renderer.state.viewport(viewport)\n }\n\n // scope.visible = true;\n }\n\n this.getRenderTarget = function () {\n return renderTarget\n }\n }\n}\n\nexport { ReflectorForSSRPass }\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReflectorForSSRPass.js","sources":["../../src/objects/ReflectorForSSRPass.js"],"sourcesContent":["import {\n Color,\n Matrix4,\n Mesh,\n PerspectiveCamera,\n ShaderMaterial,\n UniformsUtils,\n Vector2,\n Vector3,\n WebGLRenderTarget,\n DepthTexture,\n UnsignedShortType,\n NearestFilter,\n Plane,\n HalfFloatType,\n} from 'three'\n\nconst ReflectorForSSRPass = /* @__PURE__ */ (() => {\n class ReflectorForSSRPass extends Mesh {\n static ReflectorShader = {\n defines: {\n DISTANCE_ATTENUATION: true,\n FRESNEL: true,\n },\n\n uniforms: {\n color: { value: null },\n tDiffuse: { value: null },\n tDepth: { value: null },\n textureMatrix: { value: new Matrix4() },\n maxDistance: { value: 180 },\n opacity: { value: 0.5 },\n fresnelCoe: { value: null },\n virtualCameraNear: { value: null },\n virtualCameraFar: { value: null },\n virtualCameraProjectionMatrix: { value: new Matrix4() },\n virtualCameraMatrixWorld: { value: new Matrix4() },\n virtualCameraProjectionMatrixInverse: { value: new Matrix4() },\n resolution: { value: new Vector2() },\n },\n\n vertexShader: /* glsl */ `\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}`,\n\n fragmentShader: /* glsl */ `\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\t\tuniform float maxDistance;\n\t\tuniform float opacity;\n\t\tuniform float fresnelCoe;\n\t\tuniform float virtualCameraNear;\n\t\tuniform float virtualCameraFar;\n\t\tuniform mat4 virtualCameraProjectionMatrix;\n\t\tuniform mat4 virtualCameraProjectionMatrixInverse;\n\t\tuniform mat4 virtualCameraMatrixWorld;\n\t\tuniform vec2 resolution;\n\t\tvarying vec4 vUv;\n\t\t#include <packing>\n\t\tfloat blendOverlay( float base, float blend ) {\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\t\t}\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\treturn perspectiveDepthToViewZ( depth, virtualCameraNear, virtualCameraFar );\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( virtualCameraProjectionMatrixInverse * clipPosition ).xyz;//view\n\t\t}\n\t\tvoid main() {\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\t#ifdef useDepthTexture\n\t\t\t\tvec2 uv=(gl_FragCoord.xy-.5)/resolution.xy;\n\t\t\t\tuv.x=1.-uv.x;\n\t\t\t\tfloat depth = texture2DProj( tDepth, vUv ).r;\n\t\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\t\tfloat clipW = virtualCameraProjectionMatrix[2][3] * viewZ+virtualCameraProjectionMatrix[3][3];\n\t\t\t\tvec3 viewPosition=getViewPosition( uv, depth, clipW );\n\t\t\t\tvec3 worldPosition=(virtualCameraMatrixWorld*vec4(viewPosition,1)).xyz;\n\t\t\t\tif(worldPosition.y>maxDistance) discard;\n\t\t\t\tfloat op=opacity;\n\t\t\t\t#ifdef DISTANCE_ATTENUATION\n\t\t\t\t\tfloat ratio=1.-(worldPosition.y/maxDistance);\n\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t#endif\n\t\t\t\t#ifdef FRESNEL\n\t\t\t\t\top*=fresnelCoe;\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), op );\n\t\t\t#else\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\t\t\t#endif\n\t\t}\n\t`,\n }\n\n constructor(geometry, options = {}) {\n super(geometry)\n\n this.isReflectorForSSRPass = true\n\n this.type = 'ReflectorForSSRPass'\n\n const scope = this\n\n const color = options.color !== undefined ? new Color(options.color) : new Color(0x7f7f7f)\n const textureWidth = options.textureWidth || 512\n const textureHeight = options.textureHeight || 512\n const clipBias = options.clipBias || 0\n const shader = options.shader || ReflectorForSSRPass.ReflectorShader\n const useDepthTexture = options.useDepthTexture === true\n const yAxis = new Vector3(0, 1, 0)\n const vecTemp0 = new Vector3()\n const vecTemp1 = new Vector3()\n\n //\n\n scope.needsUpdate = false\n scope.maxDistance = ReflectorForSSRPass.ReflectorShader.uniforms.maxDistance.value\n scope.opacity = ReflectorForSSRPass.ReflectorShader.uniforms.opacity.value\n scope.color = color\n scope.resolution = options.resolution || new Vector2(window.innerWidth, window.innerHeight)\n\n scope._distanceAttenuation = ReflectorForSSRPass.ReflectorShader.defines.DISTANCE_ATTENUATION\n Object.defineProperty(scope, 'distanceAttenuation', {\n get() {\n return scope._distanceAttenuation\n },\n set(val) {\n if (scope._distanceAttenuation === val) return\n scope._distanceAttenuation = val\n scope.material.defines.DISTANCE_ATTENUATION = val\n scope.material.needsUpdate = true\n },\n })\n\n scope._fresnel = ReflectorForSSRPass.ReflectorShader.defines.FRESNEL\n Object.defineProperty(scope, 'fresnel', {\n get() {\n return scope._fresnel\n },\n set(val) {\n if (scope._fresnel === val) return\n scope._fresnel = val\n scope.material.defines.FRESNEL = val\n scope.material.needsUpdate = true\n },\n })\n\n const normal = new Vector3()\n const reflectorWorldPosition = new Vector3()\n const cameraWorldPosition = new Vector3()\n const rotationMatrix = new Matrix4()\n const lookAtPosition = new Vector3(0, 0, -1)\n\n const view = new Vector3()\n const target = new Vector3()\n\n const textureMatrix = new Matrix4()\n const virtualCamera = new PerspectiveCamera()\n\n let depthTexture\n\n if (useDepthTexture) {\n depthTexture = new DepthTexture()\n depthTexture.type = UnsignedShortType\n depthTexture.minFilter = NearestFilter\n depthTexture.magFilter = NearestFilter\n }\n\n const parameters = {\n depthTexture: useDepthTexture ? depthTexture : null,\n type: HalfFloatType,\n }\n\n const renderTarget = new WebGLRenderTarget(textureWidth, textureHeight, parameters)\n\n const material = new ShaderMaterial({\n transparent: useDepthTexture,\n defines: Object.assign({}, ReflectorForSSRPass.ReflectorShader.defines, {\n useDepthTexture,\n }),\n uniforms: UniformsUtils.clone(shader.uniforms),\n fragmentShader: shader.fragmentShader,\n vertexShader: shader.vertexShader,\n })\n\n material.uniforms['tDiffuse'].value = renderTarget.texture\n material.uniforms['color'].value = scope.color\n material.uniforms['textureMatrix'].value = textureMatrix\n if (useDepthTexture) {\n material.uniforms['tDepth'].value = renderTarget.depthTexture\n }\n\n this.material = material\n\n const globalPlane = new Plane(new Vector3(0, 1, 0), clipBias)\n const globalPlanes = [globalPlane]\n\n this.doRender = function (renderer, scene, camera) {\n material.uniforms['maxDistance'].value = scope.maxDistance\n material.uniforms['color'].value = scope.color\n material.uniforms['opacity'].value = scope.opacity\n\n vecTemp0.copy(camera.position).normalize()\n vecTemp1.copy(vecTemp0).reflect(yAxis)\n material.uniforms['fresnelCoe'].value = (vecTemp0.dot(vecTemp1) + 1) / 2 // TODO: Also need to use glsl viewPosition and viewNormal per pixel.\n\n reflectorWorldPosition.setFromMatrixPosition(scope.matrixWorld)\n cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld)\n\n rotationMatrix.extractRotation(scope.matrixWorld)\n\n normal.set(0, 0, 1)\n normal.applyMatrix4(rotationMatrix)\n\n view.subVectors(reflectorWorldPosition, cameraWorldPosition)\n\n // Avoid rendering when reflector is facing away\n\n if (view.dot(normal) > 0) return\n\n view.reflect(normal).negate()\n view.add(reflectorWorldPosition)\n\n rotationMatrix.extractRotation(camera.matrixWorld)\n\n lookAtPosition.set(0, 0, -1)\n lookAtPosition.applyMatrix4(rotationMatrix)\n lookAtPosition.add(cameraWorldPosition)\n\n target.subVectors(reflectorWorldPosition, lookAtPosition)\n target.reflect(normal).negate()\n target.add(reflectorWorldPosition)\n\n virtualCamera.position.copy(view)\n virtualCamera.up.set(0, 1, 0)\n virtualCamera.up.applyMatrix4(rotationMatrix)\n virtualCamera.up.reflect(normal)\n virtualCamera.lookAt(target)\n\n virtualCamera.far = camera.far // Used in WebGLBackground\n\n virtualCamera.updateMatrixWorld()\n virtualCamera.projectionMatrix.copy(camera.projectionMatrix)\n\n material.uniforms['virtualCameraNear'].value = camera.near\n material.uniforms['virtualCameraFar'].value = camera.far\n material.uniforms['virtualCameraMatrixWorld'].value = virtualCamera.matrixWorld\n material.uniforms['virtualCameraProjectionMatrix'].value = camera.projectionMatrix\n material.uniforms['virtualCameraProjectionMatrixInverse'].value = camera.projectionMatrixInverse\n material.uniforms['resolution'].value = scope.resolution\n\n // Update the texture matrix\n textureMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0)\n textureMatrix.multiply(virtualCamera.projectionMatrix)\n textureMatrix.multiply(virtualCamera.matrixWorldInverse)\n textureMatrix.multiply(scope.matrixWorld)\n\n // scope.visible = false;\n\n const currentRenderTarget = renderer.getRenderTarget()\n\n const currentXrEnabled = renderer.xr.enabled\n const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate\n const currentClippingPlanes = renderer.clippingPlanes\n\n renderer.xr.enabled = false // Avoid camera modification\n renderer.shadowMap.autoUpdate = false // Avoid re-computing shadows\n renderer.clippingPlanes = globalPlanes\n\n renderer.setRenderTarget(renderTarget)\n\n renderer.state.buffers.depth.setMask(true) // make sure the depth buffer is writable so it can be properly cleared, see #18897\n\n if (renderer.autoClear === false) renderer.clear()\n renderer.render(scene, virtualCamera)\n\n renderer.xr.enabled = currentXrEnabled\n renderer.shadowMap.autoUpdate = currentShadowAutoUpdate\n renderer.clippingPlanes = currentClippingPlanes\n\n renderer.setRenderTarget(currentRenderTarget)\n\n // Restore viewport\n\n const viewport = camera.viewport\n\n if (viewport !== undefined) {\n renderer.state.viewport(viewport)\n }\n\n // scope.visible = true;\n }\n\n this.getRenderTarget = function () {\n return renderTarget\n }\n }\n }\n\n return ReflectorForSSRPass\n})()\n\nexport { ReflectorForSSRPass }\n"],"names":["ReflectorForSSRPass"],"mappings":";;;;;;;AAiBK,MAAC,sBAAuC,uBAAM;AACjD,QAAM,uBAAN,cAAkC,KAAK;AAAA,IA+FrC,YAAY,UAAU,UAAU,IAAI;AAClC,YAAM,QAAQ;AAEd,WAAK,wBAAwB;AAE7B,WAAK,OAAO;AAEZ,YAAM,QAAQ;AAEd,YAAM,QAAQ,QAAQ,UAAU,SAAY,IAAI,MAAM,QAAQ,KAAK,IAAI,IAAI,MAAM,OAAQ;AACzF,YAAM,eAAe,QAAQ,gBAAgB;AAC7C,YAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,YAAM,WAAW,QAAQ,YAAY;AACrC,YAAM,SAAS,QAAQ,UAAU,qBAAoB;AACrD,YAAM,kBAAkB,QAAQ,oBAAoB;AACpD,YAAM,QAAQ,IAAI,QAAQ,GAAG,GAAG,CAAC;AACjC,YAAM,WAAW,IAAI,QAAS;AAC9B,YAAM,WAAW,IAAI,QAAS;AAI9B,YAAM,cAAc;AACpB,YAAM,cAAc,qBAAoB,gBAAgB,SAAS,YAAY;AAC7E,YAAM,UAAU,qBAAoB,gBAAgB,SAAS,QAAQ;AACrE,YAAM,QAAQ;AACd,YAAM,aAAa,QAAQ,cAAc,IAAI,QAAQ,OAAO,YAAY,OAAO,WAAW;AAE1F,YAAM,uBAAuB,qBAAoB,gBAAgB,QAAQ;AACzE,aAAO,eAAe,OAAO,uBAAuB;AAAA,QAClD,MAAM;AACJ,iBAAO,MAAM;AAAA,QACd;AAAA,QACD,IAAI,KAAK;AACP,cAAI,MAAM,yBAAyB;AAAK;AACxC,gBAAM,uBAAuB;AAC7B,gBAAM,SAAS,QAAQ,uBAAuB;AAC9C,gBAAM,SAAS,cAAc;AAAA,QAC9B;AAAA,MACT,CAAO;AAED,YAAM,WAAW,qBAAoB,gBAAgB,QAAQ;AAC7D,aAAO,eAAe,OAAO,WAAW;AAAA,QACtC,MAAM;AACJ,iBAAO,MAAM;AAAA,QACd;AAAA,QACD,IAAI,KAAK;AACP,cAAI,MAAM,aAAa;AAAK;AAC5B,gBAAM,WAAW;AACjB,gBAAM,SAAS,QAAQ,UAAU;AACjC,gBAAM,SAAS,cAAc;AAAA,QAC9B;AAAA,MACT,CAAO;AAED,YAAM,SAAS,IAAI,QAAS;AAC5B,YAAM,yBAAyB,IAAI,QAAS;AAC5C,YAAM,sBAAsB,IAAI,QAAS;AACzC,YAAM,iBAAiB,IAAI,QAAS;AACpC,YAAM,iBAAiB,IAAI,QAAQ,GAAG,GAAG,EAAE;AAE3C,YAAM,OAAO,IAAI,QAAS;AAC1B,YAAM,SAAS,IAAI,QAAS;AAE5B,YAAM,gBAAgB,IAAI,QAAS;AACnC,YAAM,gBAAgB,IAAI,kBAAmB;AAE7C,UAAI;AAEJ,UAAI,iBAAiB;AACnB,uBAAe,IAAI,aAAc;AACjC,qBAAa,OAAO;AACpB,qBAAa,YAAY;AACzB,qBAAa,YAAY;AAAA,MAC1B;AAED,YAAM,aAAa;AAAA,QACjB,cAAc,kBAAkB,eAAe;AAAA,QAC/C,MAAM;AAAA,MACP;AAED,YAAM,eAAe,IAAI,kBAAkB,cAAc,eAAe,UAAU;AAElF,YAAM,WAAW,IAAI,eAAe;AAAA,QAClC,aAAa;AAAA,QACb,SAAS,OAAO,OAAO,CAAE,GAAE,qBAAoB,gBAAgB,SAAS;AAAA,UACtE;AAAA,QACV,CAAS;AAAA,QACD,UAAU,cAAc,MAAM,OAAO,QAAQ;AAAA,QAC7C,gBAAgB,OAAO;AAAA,QACvB,cAAc,OAAO;AAAA,MAC7B,CAAO;AAED,eAAS,SAAS,UAAU,EAAE,QAAQ,aAAa;AACnD,eAAS,SAAS,OAAO,EAAE,QAAQ,MAAM;AACzC,eAAS,SAAS,eAAe,EAAE,QAAQ;AAC3C,UAAI,iBAAiB;AACnB,iBAAS,SAAS,QAAQ,EAAE,QAAQ,aAAa;AAAA,MAClD;AAED,WAAK,WAAW;AAEhB,YAAM,cAAc,IAAI,MAAM,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,QAAQ;AAC5D,YAAM,eAAe,CAAC,WAAW;AAEjC,WAAK,WAAW,SAAU,UAAU,OAAO,QAAQ;AACjD,iBAAS,SAAS,aAAa,EAAE,QAAQ,MAAM;AAC/C,iBAAS,SAAS,OAAO,EAAE,QAAQ,MAAM;AACzC,iBAAS,SAAS,SAAS,EAAE,QAAQ,MAAM;AAE3C,iBAAS,KAAK,OAAO,QAAQ,EAAE,UAAW;AAC1C,iBAAS,KAAK,QAAQ,EAAE,QAAQ,KAAK;AACrC,iBAAS,SAAS,YAAY,EAAE,SAAS,SAAS,IAAI,QAAQ,IAAI,KAAK;AAEvE,+BAAuB,sBAAsB,MAAM,WAAW;AAC9D,4BAAoB,sBAAsB,OAAO,WAAW;AAE5D,uBAAe,gBAAgB,MAAM,WAAW;AAEhD,eAAO,IAAI,GAAG,GAAG,CAAC;AAClB,eAAO,aAAa,cAAc;AAElC,aAAK,WAAW,wBAAwB,mBAAmB;AAI3D,YAAI,KAAK,IAAI,MAAM,IAAI;AAAG;AAE1B,aAAK,QAAQ,MAAM,EAAE,OAAQ;AAC7B,aAAK,IAAI,sBAAsB;AAE/B,uBAAe,gBAAgB,OAAO,WAAW;AAEjD,uBAAe,IAAI,GAAG,GAAG,EAAE;AAC3B,uBAAe,aAAa,cAAc;AAC1C,uBAAe,IAAI,mBAAmB;AAEtC,eAAO,WAAW,wBAAwB,cAAc;AACxD,eAAO,QAAQ,MAAM,EAAE,OAAQ;AAC/B,eAAO,IAAI,sBAAsB;AAEjC,sBAAc,SAAS,KAAK,IAAI;AAChC,sBAAc,GAAG,IAAI,GAAG,GAAG,CAAC;AAC5B,sBAAc,GAAG,aAAa,cAAc;AAC5C,sBAAc,GAAG,QAAQ,MAAM;AAC/B,sBAAc,OAAO,MAAM;AAE3B,sBAAc,MAAM,OAAO;AAE3B,sBAAc,kBAAmB;AACjC,sBAAc,iBAAiB,KAAK,OAAO,gBAAgB;AAE3D,iBAAS,SAAS,mBAAmB,EAAE,QAAQ,OAAO;AACtD,iBAAS,SAAS,kBAAkB,EAAE,QAAQ,OAAO;AACrD,iBAAS,SAAS,0BAA0B,EAAE,QAAQ,cAAc;AACpE,iBAAS,SAAS,+BAA+B,EAAE,QAAQ,OAAO;AAClE,iBAAS,SAAS,sCAAsC,EAAE,QAAQ,OAAO;AACzE,iBAAS,SAAS,YAAY,EAAE,QAAQ,MAAM;AAG9C,sBAAc,IAAI,KAAK,GAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,GAAK,KAAK,KAAK,GAAK,GAAK,GAAK,CAAG;AAChG,sBAAc,SAAS,cAAc,gBAAgB;AACrD,sBAAc,SAAS,cAAc,kBAAkB;AACvD,sBAAc,SAAS,MAAM,WAAW;AAIxC,cAAM,sBAAsB,SAAS,gBAAiB;AAEtD,cAAM,mBAAmB,SAAS,GAAG;AACrC,cAAM,0BAA0B,SAAS,UAAU;AACnD,cAAM,wBAAwB,SAAS;AAEvC,iBAAS,GAAG,UAAU;AACtB,iBAAS,UAAU,aAAa;AAChC,iBAAS,iBAAiB;AAE1B,iBAAS,gBAAgB,YAAY;AAErC,iBAAS,MAAM,QAAQ,MAAM,QAAQ,IAAI;AAEzC,YAAI,SAAS,cAAc;AAAO,mBAAS,MAAO;AAClD,iBAAS,OAAO,OAAO,aAAa;AAEpC,iBAAS,GAAG,UAAU;AACtB,iBAAS,UAAU,aAAa;AAChC,iBAAS,iBAAiB;AAE1B,iBAAS,gBAAgB,mBAAmB;AAI5C,cAAM,WAAW,OAAO;AAExB,YAAI,aAAa,QAAW;AAC1B,mBAAS,MAAM,SAAS,QAAQ;AAAA,QACjC;AAAA,MAGF;AAED,WAAK,kBAAkB,WAAY;AACjC,eAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AA1SD,MAAMA,uBAAN;AACE,gBADIA,sBACG,mBAAkB;AAAA,IACvB,SAAS;AAAA,MACP,sBAAsB;AAAA,MACtB,SAAS;AAAA,IACV;AAAA,IAED,UAAU;AAAA,MACR,OAAO,EAAE,OAAO,KAAM;AAAA,MACtB,UAAU,EAAE,OAAO,KAAM;AAAA,MACzB,QAAQ,EAAE,OAAO,KAAM;AAAA,MACvB,eAAe,EAAE,OAAO,IAAI,UAAW;AAAA,MACvC,aAAa,EAAE,OAAO,IAAK;AAAA,MAC3B,SAAS,EAAE,OAAO,IAAK;AAAA,MACvB,YAAY,EAAE,OAAO,KAAM;AAAA,MAC3B,mBAAmB,EAAE,OAAO,KAAM;AAAA,MAClC,kBAAkB,EAAE,OAAO,KAAM;AAAA,MACjC,+BAA+B,EAAE,OAAO,IAAI,UAAW;AAAA,MACvD,0BAA0B,EAAE,OAAO,IAAI,UAAW;AAAA,MAClD,sCAAsC,EAAE,OAAO,IAAI,UAAW;AAAA,MAC9D,YAAY,EAAE,OAAO,IAAI,UAAW;AAAA,IACrC;AAAA,IAED;AAAA;AAAA,MAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYzB;AAAA;AAAA,MAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0D5B;AA+MH,SAAOA;AACT,GAAC;"}