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
@@ -17,168 +17,118 @@ const ParallaxShader = {
17
17
  parallaxMinLayers: { value: null },
18
18
  parallaxMaxLayers: { value: null }
19
19
  },
20
- vertexShader: (
21
- /* glsl */
22
- `
23
- varying vec2 vUv;
24
- varying vec3 vViewPosition;
25
- varying vec3 vNormal;
26
-
27
- void main() {
28
-
29
- vUv = uv;
30
- vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
31
- vViewPosition = -mvPosition.xyz;
32
- vNormal = normalize( normalMatrix * normal );
33
- gl_Position = projectionMatrix * mvPosition;
34
-
35
- }
36
- `
37
- ),
38
- fragmentShader: (
39
- /* glsl */
40
- `
41
- uniform sampler2D bumpMap;
42
- uniform sampler2D map;
43
-
44
- uniform float parallaxScale;
45
- uniform float parallaxMinLayers;
46
- uniform float parallaxMaxLayers;
47
-
48
- varying vec2 vUv;
49
- varying vec3 vViewPosition;
50
- varying vec3 vNormal;
51
-
52
- #ifdef USE_BASIC_PARALLAX
53
-
54
- vec2 parallaxMap( in vec3 V ) {
55
-
56
- float initialHeight = texture2D( bumpMap, vUv ).r;
57
-
20
+ vertexShader: [
21
+ "varying vec2 vUv;",
22
+ "varying vec3 vViewPosition;",
23
+ "varying vec3 vNormal;",
24
+ "void main() {",
25
+ " vUv = uv;",
26
+ " vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
27
+ " vViewPosition = -mvPosition.xyz;",
28
+ " vNormal = normalize( normalMatrix * normal );",
29
+ " gl_Position = projectionMatrix * mvPosition;",
30
+ "}"
31
+ ].join("\n"),
32
+ fragmentShader: [
33
+ "uniform sampler2D bumpMap;",
34
+ "uniform sampler2D map;",
35
+ "uniform float parallaxScale;",
36
+ "uniform float parallaxMinLayers;",
37
+ "uniform float parallaxMaxLayers;",
38
+ "varying vec2 vUv;",
39
+ "varying vec3 vViewPosition;",
40
+ "varying vec3 vNormal;",
41
+ "#ifdef USE_BASIC_PARALLAX",
42
+ " vec2 parallaxMap( in vec3 V ) {",
43
+ " float initialHeight = texture2D( bumpMap, vUv ).r;",
58
44
  // No Offset Limitting: messy, floating output at grazing angles.
59
45
  //"vec2 texCoordOffset = parallaxScale * V.xy / V.z * initialHeight;",
60
-
61
46
  // Offset Limiting
62
- vec2 texCoordOffset = parallaxScale * V.xy * initialHeight;
63
- return vUv - texCoordOffset;
64
-
65
- }
66
-
67
- #else
68
-
69
- vec2 parallaxMap( in vec3 V ) {
70
-
47
+ " vec2 texCoordOffset = parallaxScale * V.xy * initialHeight;",
48
+ " return vUv - texCoordOffset;",
49
+ " }",
50
+ "#else",
51
+ " vec2 parallaxMap( in vec3 V ) {",
71
52
  // Determine number of layers from angle between V and N
72
- float numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );
73
-
74
- float layerHeight = 1.0 / numLayers;
75
- float currentLayerHeight = 0.0;
53
+ " float numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );",
54
+ " float layerHeight = 1.0 / numLayers;",
55
+ " float currentLayerHeight = 0.0;",
76
56
  // Shift of texture coordinates for each iteration
77
- vec2 dtex = parallaxScale * V.xy / V.z / numLayers;
78
-
79
- vec2 currentTextureCoords = vUv;
80
-
81
- float heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;
82
-
57
+ " vec2 dtex = parallaxScale * V.xy / V.z / numLayers;",
58
+ " vec2 currentTextureCoords = vUv;",
59
+ " float heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;",
83
60
  // while ( heightFromTexture > currentLayerHeight )
84
61
  // Infinite loops are not well supported. Do a "large" finite
85
62
  // loop, but not too large, as it slows down some compilers.
86
- for ( int i = 0; i < 30; i += 1 ) {
87
- if ( heightFromTexture <= currentLayerHeight ) {
88
- break;
89
- }
90
- currentLayerHeight += layerHeight;
63
+ " for ( int i = 0; i < 30; i += 1 ) {",
64
+ " if ( heightFromTexture <= currentLayerHeight ) {",
65
+ " break;",
66
+ " }",
67
+ " currentLayerHeight += layerHeight;",
91
68
  // Shift texture coordinates along vector V
92
- currentTextureCoords -= dtex;
93
- heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;
94
- }
95
-
96
- #ifdef USE_STEEP_PARALLAX
97
-
98
- return currentTextureCoords;
99
-
100
- #elif defined( USE_RELIEF_PARALLAX )
101
-
102
- vec2 deltaTexCoord = dtex / 2.0;
103
- float deltaHeight = layerHeight / 2.0;
104
-
69
+ " currentTextureCoords -= dtex;",
70
+ " heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;",
71
+ " }",
72
+ " #ifdef USE_STEEP_PARALLAX",
73
+ " return currentTextureCoords;",
74
+ " #elif defined( USE_RELIEF_PARALLAX )",
75
+ " vec2 deltaTexCoord = dtex / 2.0;",
76
+ " float deltaHeight = layerHeight / 2.0;",
105
77
  // Return to the mid point of previous layer
106
- currentTextureCoords += deltaTexCoord;
107
- currentLayerHeight -= deltaHeight;
108
-
78
+ " currentTextureCoords += deltaTexCoord;",
79
+ " currentLayerHeight -= deltaHeight;",
109
80
  // Binary search to increase precision of Steep Parallax Mapping
110
- const int numSearches = 5;
111
- for ( int i = 0; i < numSearches; i += 1 ) {
112
-
113
- deltaTexCoord /= 2.0;
114
- deltaHeight /= 2.0;
115
- heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;
81
+ " const int numSearches = 5;",
82
+ " for ( int i = 0; i < numSearches; i += 1 ) {",
83
+ " deltaTexCoord /= 2.0;",
84
+ " deltaHeight /= 2.0;",
85
+ " heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;",
116
86
  // Shift along or against vector V
117
- if( heightFromTexture > currentLayerHeight ) { // Below the surface
118
-
119
- currentTextureCoords -= deltaTexCoord;
120
- currentLayerHeight += deltaHeight;
121
-
122
- } else { // above the surface
123
-
124
- currentTextureCoords += deltaTexCoord;
125
- currentLayerHeight -= deltaHeight;
126
-
127
- }
128
-
129
- }
130
- return currentTextureCoords;
131
-
132
- #elif defined( USE_OCLUSION_PARALLAX )
133
-
134
- vec2 prevTCoords = currentTextureCoords + dtex;
135
-
87
+ " if( heightFromTexture > currentLayerHeight ) {",
88
+ // Below the surface
89
+ " currentTextureCoords -= deltaTexCoord;",
90
+ " currentLayerHeight += deltaHeight;",
91
+ " } else {",
92
+ // above the surface
93
+ " currentTextureCoords += deltaTexCoord;",
94
+ " currentLayerHeight -= deltaHeight;",
95
+ " }",
96
+ " }",
97
+ " return currentTextureCoords;",
98
+ " #elif defined( USE_OCLUSION_PARALLAX )",
99
+ " vec2 prevTCoords = currentTextureCoords + dtex;",
136
100
  // Heights for linear interpolation
137
- float nextH = heightFromTexture - currentLayerHeight;
138
- float prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;
139
-
101
+ " float nextH = heightFromTexture - currentLayerHeight;",
102
+ " float prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;",
140
103
  // Proportions for linear interpolation
141
- float weight = nextH / ( nextH - prevH );
142
-
104
+ " float weight = nextH / ( nextH - prevH );",
143
105
  // Interpolation of texture coordinates
144
- return prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );
145
-
146
- #else // NO_PARALLAX
147
-
148
- return vUv;
149
-
150
- #endif
151
-
152
- }
153
- #endif
154
-
155
- vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {
156
-
157
- vec2 texDx = dFdx( vUv );
158
- vec2 texDy = dFdy( vUv );
159
-
160
- vec3 vSigmaX = dFdx( surfPosition );
161
- vec3 vSigmaY = dFdy( surfPosition );
162
- vec3 vR1 = cross( vSigmaY, surfNormal );
163
- vec3 vR2 = cross( surfNormal, vSigmaX );
164
- float fDet = dot( vSigmaX, vR1 );
165
-
166
- vec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );
167
- vec3 vProjVtex;
168
- vProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;
169
- vProjVtex.z = dot( surfNormal, viewPosition );
170
-
171
- return parallaxMap( vProjVtex );
172
- }
173
-
174
- void main() {
175
-
176
- vec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );
177
- gl_FragColor = texture2D( map, mapUv );
178
-
179
- }
180
- `
181
- )
106
+ " return prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );",
107
+ " #else",
108
+ // NO_PARALLAX
109
+ " return vUv;",
110
+ " #endif",
111
+ " }",
112
+ "#endif",
113
+ "vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {",
114
+ " vec2 texDx = dFdx( vUv );",
115
+ " vec2 texDy = dFdy( vUv );",
116
+ " vec3 vSigmaX = dFdx( surfPosition );",
117
+ " vec3 vSigmaY = dFdy( surfPosition );",
118
+ " vec3 vR1 = cross( vSigmaY, surfNormal );",
119
+ " vec3 vR2 = cross( surfNormal, vSigmaX );",
120
+ " float fDet = dot( vSigmaX, vR1 );",
121
+ " vec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );",
122
+ " vec3 vProjVtex;",
123
+ " vProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;",
124
+ " vProjVtex.z = dot( surfNormal, viewPosition );",
125
+ " return parallaxMap( vProjVtex );",
126
+ "}",
127
+ "void main() {",
128
+ " vec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );",
129
+ " gl_FragColor = texture2D( map, mapUv );",
130
+ "}"
131
+ ].join("\n")
182
132
  };
183
133
  exports.ParallaxShader = ParallaxShader;
184
134
  //# sourceMappingURL=ParallaxShader.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParallaxShader.cjs","sources":["../../src/shaders/ParallaxShader.ts"],"sourcesContent":["// Parallax Occlusion shaders from\n// http://sunandblackcat.com/tipFullView.php?topicid=28\n// No tangent-space transforms logic based on\n// http://mmikkelsen3d.blogspot.sk/2012/02/parallaxpoc-mapping-and-no-tangent.html\n\nexport const ParallaxShader = {\n // Ordered from fastest to best quality.\n modes: {\n none: 'NO_PARALLAX',\n basic: 'USE_BASIC_PARALLAX',\n steep: 'USE_STEEP_PARALLAX',\n occlusion: 'USE_OCLUSION_PARALLAX', // a.k.a. POM\n relief: 'USE_RELIEF_PARALLAX',\n },\n\n uniforms: {\n bumpMap: { value: null },\n map: { value: null },\n parallaxScale: { value: null },\n parallaxMinLayers: { value: null },\n parallaxMaxLayers: { value: null },\n },\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n varying vec3 vViewPosition;\n varying vec3 vNormal;\n\n void main() {\n\n \tvUv = uv;\n \tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n \tvViewPosition = -mvPosition.xyz;\n \tvNormal = normalize( normalMatrix * normal );\n \tgl_Position = projectionMatrix * mvPosition;\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform sampler2D bumpMap;\n uniform sampler2D map;\n\n uniform float parallaxScale;\n uniform float parallaxMinLayers;\n uniform float parallaxMaxLayers;\n\n varying vec2 vUv;\n varying vec3 vViewPosition;\n varying vec3 vNormal;\n\n #ifdef USE_BASIC_PARALLAX\n\n \tvec2 parallaxMap( in vec3 V ) {\n\n \t\tfloat initialHeight = texture2D( bumpMap, vUv ).r;\n\n // No Offset Limitting: messy, floating output at grazing angles.\n //\"vec2 texCoordOffset = parallaxScale * V.xy / V.z * initialHeight;\",\n\n // Offset Limiting\n \t\tvec2 texCoordOffset = parallaxScale * V.xy * initialHeight;\n \t\treturn vUv - texCoordOffset;\n\n \t}\n\n #else\n\n \tvec2 parallaxMap( in vec3 V ) {\n\n // Determine number of layers from angle between V and N\n \t\tfloat numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );\n\n \t\tfloat layerHeight = 1.0 / numLayers;\n \t\tfloat currentLayerHeight = 0.0;\n // Shift of texture coordinates for each iteration\n \t\tvec2 dtex = parallaxScale * V.xy / V.z / numLayers;\n\n \t\tvec2 currentTextureCoords = vUv;\n\n \t\tfloat heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;\n\n // while ( heightFromTexture > currentLayerHeight )\n // Infinite loops are not well supported. Do a \"large\" finite\n // loop, but not too large, as it slows down some compilers.\n \t\tfor ( int i = 0; i < 30; i += 1 ) {\n \t\t\tif ( heightFromTexture <= currentLayerHeight ) {\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\tcurrentLayerHeight += layerHeight;\n // Shift texture coordinates along vector V\n \t\t\tcurrentTextureCoords -= dtex;\n \t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;\n \t\t}\n\n \t\t#ifdef USE_STEEP_PARALLAX\n\n \t\t\treturn currentTextureCoords;\n\n \t\t#elif defined( USE_RELIEF_PARALLAX )\n\n \t\t\tvec2 deltaTexCoord = dtex / 2.0;\n \t\t\tfloat deltaHeight = layerHeight / 2.0;\n\n // Return to the mid point of previous layer\n \t\t\tcurrentTextureCoords += deltaTexCoord;\n \t\t\tcurrentLayerHeight -= deltaHeight;\n\n // Binary search to increase precision of Steep Parallax Mapping\n \t\t\tconst int numSearches = 5;\n \t\t\tfor ( int i = 0; i < numSearches; i += 1 ) {\n\n \t\t\t\tdeltaTexCoord /= 2.0;\n \t\t\t\tdeltaHeight /= 2.0;\n \t\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;\n // Shift along or against vector V\n \t\t\t\tif( heightFromTexture > currentLayerHeight ) { // Below the surface\n\n \t\t\t\t\tcurrentTextureCoords -= deltaTexCoord;\n \t\t\t\t\tcurrentLayerHeight += deltaHeight;\n\n \t\t\t\t} else { // above the surface\n\n \t\t\t\t\tcurrentTextureCoords += deltaTexCoord;\n \t\t\t\t\tcurrentLayerHeight -= deltaHeight;\n\n \t\t\t\t}\n\n \t\t\t}\n \t\t\treturn currentTextureCoords;\n\n \t\t#elif defined( USE_OCLUSION_PARALLAX )\n\n \t\t\tvec2 prevTCoords = currentTextureCoords + dtex;\n\n // Heights for linear interpolation\n \t\t\tfloat nextH = heightFromTexture - currentLayerHeight;\n \t\t\tfloat prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;\n\n // Proportions for linear interpolation\n \t\t\tfloat weight = nextH / ( nextH - prevH );\n\n // Interpolation of texture coordinates\n \t\t\treturn prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );\n\n \t\t#else // NO_PARALLAX\n\n \t\t\treturn vUv;\n\n \t\t#endif\n\n \t}\n #endif\n\n vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {\n\n \tvec2 texDx = dFdx( vUv );\n \tvec2 texDy = dFdy( vUv );\n\n \tvec3 vSigmaX = dFdx( surfPosition );\n \tvec3 vSigmaY = dFdy( surfPosition );\n \tvec3 vR1 = cross( vSigmaY, surfNormal );\n \tvec3 vR2 = cross( surfNormal, vSigmaX );\n \tfloat fDet = dot( vSigmaX, vR1 );\n\n \tvec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );\n \tvec3 vProjVtex;\n \tvProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;\n \tvProjVtex.z = dot( surfNormal, viewPosition );\n\n \treturn parallaxMap( vProjVtex );\n }\n\n void main() {\n\n \tvec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );\n \tgl_FragColor = texture2D( map, mapUv );\n\n }\n `,\n}\n"],"names":[],"mappings":";;AAKO,MAAM,iBAAiB;AAAA;AAAA,EAE5B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA;AAAA,IACX,QAAQ;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,SAAS,EAAE,OAAO,KAAK;AAAA,IACvB,KAAK,EAAE,OAAO,KAAK;AAAA,IACnB,eAAe,EAAE,OAAO,KAAK;AAAA,IAC7B,mBAAmB,EAAE,OAAO,KAAK;AAAA,IACjC,mBAAmB,EAAE,OAAO,KAAK;AAAA,EACnC;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBzB;AAAA;AAAA,IAA2B;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6I7B;;"}
1
+ {"version":3,"file":"ParallaxShader.cjs","sources":["../../src/shaders/ParallaxShader.ts"],"sourcesContent":["// Parallax Occlusion shaders from\n// http://sunandblackcat.com/tipFullView.php?topicid=28\n// No tangent-space transforms logic based on\n// http://mmikkelsen3d.blogspot.sk/2012/02/parallaxpoc-mapping-and-no-tangent.html\n\nexport const ParallaxShader = {\n // Ordered from fastest to best quality.\n modes: {\n none: 'NO_PARALLAX',\n basic: 'USE_BASIC_PARALLAX',\n steep: 'USE_STEEP_PARALLAX',\n occlusion: 'USE_OCLUSION_PARALLAX', // a.k.a. POM\n relief: 'USE_RELIEF_PARALLAX',\n },\n\n uniforms: {\n bumpMap: { value: null },\n map: { value: null },\n parallaxScale: { value: null },\n parallaxMinLayers: { value: null },\n parallaxMaxLayers: { value: null },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n 'varying vec3 vViewPosition;',\n 'varying vec3 vNormal;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );',\n '\tvViewPosition = -mvPosition.xyz;',\n '\tvNormal = normalize( normalMatrix * normal );',\n '\tgl_Position = projectionMatrix * mvPosition;',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform sampler2D bumpMap;',\n 'uniform sampler2D map;',\n\n 'uniform float parallaxScale;',\n 'uniform float parallaxMinLayers;',\n 'uniform float parallaxMaxLayers;',\n\n 'varying vec2 vUv;',\n 'varying vec3 vViewPosition;',\n 'varying vec3 vNormal;',\n\n '#ifdef USE_BASIC_PARALLAX',\n\n '\tvec2 parallaxMap( in vec3 V ) {',\n\n '\t\tfloat initialHeight = texture2D( bumpMap, vUv ).r;',\n\n // No Offset Limitting: messy, floating output at grazing angles.\n //\"vec2 texCoordOffset = parallaxScale * V.xy / V.z * initialHeight;\",\n\n // Offset Limiting\n '\t\tvec2 texCoordOffset = parallaxScale * V.xy * initialHeight;',\n '\t\treturn vUv - texCoordOffset;',\n\n '\t}',\n\n '#else',\n\n '\tvec2 parallaxMap( in vec3 V ) {',\n\n // Determine number of layers from angle between V and N\n '\t\tfloat numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );',\n\n '\t\tfloat layerHeight = 1.0 / numLayers;',\n '\t\tfloat currentLayerHeight = 0.0;',\n // Shift of texture coordinates for each iteration\n '\t\tvec2 dtex = parallaxScale * V.xy / V.z / numLayers;',\n\n '\t\tvec2 currentTextureCoords = vUv;',\n\n '\t\tfloat heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;',\n\n // while ( heightFromTexture > currentLayerHeight )\n // Infinite loops are not well supported. Do a \"large\" finite\n // loop, but not too large, as it slows down some compilers.\n '\t\tfor ( int i = 0; i < 30; i += 1 ) {',\n '\t\t\tif ( heightFromTexture <= currentLayerHeight ) {',\n '\t\t\t\tbreak;',\n '\t\t\t}',\n '\t\t\tcurrentLayerHeight += layerHeight;',\n // Shift texture coordinates along vector V\n '\t\t\tcurrentTextureCoords -= dtex;',\n '\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;',\n '\t\t}',\n\n '\t\t#ifdef USE_STEEP_PARALLAX',\n\n '\t\t\treturn currentTextureCoords;',\n\n '\t\t#elif defined( USE_RELIEF_PARALLAX )',\n\n '\t\t\tvec2 deltaTexCoord = dtex / 2.0;',\n '\t\t\tfloat deltaHeight = layerHeight / 2.0;',\n\n // Return to the mid point of previous layer\n '\t\t\tcurrentTextureCoords += deltaTexCoord;',\n '\t\t\tcurrentLayerHeight -= deltaHeight;',\n\n // Binary search to increase precision of Steep Parallax Mapping\n '\t\t\tconst int numSearches = 5;',\n '\t\t\tfor ( int i = 0; i < numSearches; i += 1 ) {',\n\n '\t\t\t\tdeltaTexCoord /= 2.0;',\n '\t\t\t\tdeltaHeight /= 2.0;',\n '\t\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;',\n // Shift along or against vector V\n '\t\t\t\tif( heightFromTexture > currentLayerHeight ) {', // Below the surface\n\n '\t\t\t\t\tcurrentTextureCoords -= deltaTexCoord;',\n '\t\t\t\t\tcurrentLayerHeight += deltaHeight;',\n\n '\t\t\t\t} else {', // above the surface\n\n '\t\t\t\t\tcurrentTextureCoords += deltaTexCoord;',\n '\t\t\t\t\tcurrentLayerHeight -= deltaHeight;',\n\n '\t\t\t\t}',\n\n '\t\t\t}',\n '\t\t\treturn currentTextureCoords;',\n\n '\t\t#elif defined( USE_OCLUSION_PARALLAX )',\n\n '\t\t\tvec2 prevTCoords = currentTextureCoords + dtex;',\n\n // Heights for linear interpolation\n '\t\t\tfloat nextH = heightFromTexture - currentLayerHeight;',\n '\t\t\tfloat prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;',\n\n // Proportions for linear interpolation\n '\t\t\tfloat weight = nextH / ( nextH - prevH );',\n\n // Interpolation of texture coordinates\n '\t\t\treturn prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );',\n\n '\t\t#else', // NO_PARALLAX\n\n '\t\t\treturn vUv;',\n\n '\t\t#endif',\n\n '\t}',\n '#endif',\n\n 'vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {',\n\n '\tvec2 texDx = dFdx( vUv );',\n '\tvec2 texDy = dFdy( vUv );',\n\n '\tvec3 vSigmaX = dFdx( surfPosition );',\n '\tvec3 vSigmaY = dFdy( surfPosition );',\n '\tvec3 vR1 = cross( vSigmaY, surfNormal );',\n '\tvec3 vR2 = cross( surfNormal, vSigmaX );',\n '\tfloat fDet = dot( vSigmaX, vR1 );',\n\n '\tvec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );',\n '\tvec3 vProjVtex;',\n '\tvProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;',\n '\tvProjVtex.z = dot( surfNormal, viewPosition );',\n\n '\treturn parallaxMap( vProjVtex );',\n '}',\n\n 'void main() {',\n\n '\tvec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );',\n '\tgl_FragColor = texture2D( map, mapUv );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":";;AAKO,MAAM,iBAAiB;AAAA;AAAA,EAE5B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA;AAAA,IACX,QAAQ;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,SAAS,EAAE,OAAO,KAAK;AAAA,IACvB,KAAK,EAAE,OAAO,KAAK;AAAA,IACnB,eAAe,EAAE,OAAO,KAAK;AAAA,IAC7B,mBAAmB,EAAE,OAAO,KAAK;AAAA,IACjC,mBAAmB,EAAE,OAAO,KAAK;AAAA,EACnC;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}
@@ -15,168 +15,118 @@ const ParallaxShader = {
15
15
  parallaxMinLayers: { value: null },
16
16
  parallaxMaxLayers: { value: null }
17
17
  },
18
- vertexShader: (
19
- /* glsl */
20
- `
21
- varying vec2 vUv;
22
- varying vec3 vViewPosition;
23
- varying vec3 vNormal;
24
-
25
- void main() {
26
-
27
- vUv = uv;
28
- vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
29
- vViewPosition = -mvPosition.xyz;
30
- vNormal = normalize( normalMatrix * normal );
31
- gl_Position = projectionMatrix * mvPosition;
32
-
33
- }
34
- `
35
- ),
36
- fragmentShader: (
37
- /* glsl */
38
- `
39
- uniform sampler2D bumpMap;
40
- uniform sampler2D map;
41
-
42
- uniform float parallaxScale;
43
- uniform float parallaxMinLayers;
44
- uniform float parallaxMaxLayers;
45
-
46
- varying vec2 vUv;
47
- varying vec3 vViewPosition;
48
- varying vec3 vNormal;
49
-
50
- #ifdef USE_BASIC_PARALLAX
51
-
52
- vec2 parallaxMap( in vec3 V ) {
53
-
54
- float initialHeight = texture2D( bumpMap, vUv ).r;
55
-
18
+ vertexShader: [
19
+ "varying vec2 vUv;",
20
+ "varying vec3 vViewPosition;",
21
+ "varying vec3 vNormal;",
22
+ "void main() {",
23
+ " vUv = uv;",
24
+ " vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
25
+ " vViewPosition = -mvPosition.xyz;",
26
+ " vNormal = normalize( normalMatrix * normal );",
27
+ " gl_Position = projectionMatrix * mvPosition;",
28
+ "}"
29
+ ].join("\n"),
30
+ fragmentShader: [
31
+ "uniform sampler2D bumpMap;",
32
+ "uniform sampler2D map;",
33
+ "uniform float parallaxScale;",
34
+ "uniform float parallaxMinLayers;",
35
+ "uniform float parallaxMaxLayers;",
36
+ "varying vec2 vUv;",
37
+ "varying vec3 vViewPosition;",
38
+ "varying vec3 vNormal;",
39
+ "#ifdef USE_BASIC_PARALLAX",
40
+ " vec2 parallaxMap( in vec3 V ) {",
41
+ " float initialHeight = texture2D( bumpMap, vUv ).r;",
56
42
  // No Offset Limitting: messy, floating output at grazing angles.
57
43
  //"vec2 texCoordOffset = parallaxScale * V.xy / V.z * initialHeight;",
58
-
59
44
  // Offset Limiting
60
- vec2 texCoordOffset = parallaxScale * V.xy * initialHeight;
61
- return vUv - texCoordOffset;
62
-
63
- }
64
-
65
- #else
66
-
67
- vec2 parallaxMap( in vec3 V ) {
68
-
45
+ " vec2 texCoordOffset = parallaxScale * V.xy * initialHeight;",
46
+ " return vUv - texCoordOffset;",
47
+ " }",
48
+ "#else",
49
+ " vec2 parallaxMap( in vec3 V ) {",
69
50
  // Determine number of layers from angle between V and N
70
- float numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );
71
-
72
- float layerHeight = 1.0 / numLayers;
73
- float currentLayerHeight = 0.0;
51
+ " float numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );",
52
+ " float layerHeight = 1.0 / numLayers;",
53
+ " float currentLayerHeight = 0.0;",
74
54
  // Shift of texture coordinates for each iteration
75
- vec2 dtex = parallaxScale * V.xy / V.z / numLayers;
76
-
77
- vec2 currentTextureCoords = vUv;
78
-
79
- float heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;
80
-
55
+ " vec2 dtex = parallaxScale * V.xy / V.z / numLayers;",
56
+ " vec2 currentTextureCoords = vUv;",
57
+ " float heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;",
81
58
  // while ( heightFromTexture > currentLayerHeight )
82
59
  // Infinite loops are not well supported. Do a "large" finite
83
60
  // loop, but not too large, as it slows down some compilers.
84
- for ( int i = 0; i < 30; i += 1 ) {
85
- if ( heightFromTexture <= currentLayerHeight ) {
86
- break;
87
- }
88
- currentLayerHeight += layerHeight;
61
+ " for ( int i = 0; i < 30; i += 1 ) {",
62
+ " if ( heightFromTexture <= currentLayerHeight ) {",
63
+ " break;",
64
+ " }",
65
+ " currentLayerHeight += layerHeight;",
89
66
  // Shift texture coordinates along vector V
90
- currentTextureCoords -= dtex;
91
- heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;
92
- }
93
-
94
- #ifdef USE_STEEP_PARALLAX
95
-
96
- return currentTextureCoords;
97
-
98
- #elif defined( USE_RELIEF_PARALLAX )
99
-
100
- vec2 deltaTexCoord = dtex / 2.0;
101
- float deltaHeight = layerHeight / 2.0;
102
-
67
+ " currentTextureCoords -= dtex;",
68
+ " heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;",
69
+ " }",
70
+ " #ifdef USE_STEEP_PARALLAX",
71
+ " return currentTextureCoords;",
72
+ " #elif defined( USE_RELIEF_PARALLAX )",
73
+ " vec2 deltaTexCoord = dtex / 2.0;",
74
+ " float deltaHeight = layerHeight / 2.0;",
103
75
  // Return to the mid point of previous layer
104
- currentTextureCoords += deltaTexCoord;
105
- currentLayerHeight -= deltaHeight;
106
-
76
+ " currentTextureCoords += deltaTexCoord;",
77
+ " currentLayerHeight -= deltaHeight;",
107
78
  // Binary search to increase precision of Steep Parallax Mapping
108
- const int numSearches = 5;
109
- for ( int i = 0; i < numSearches; i += 1 ) {
110
-
111
- deltaTexCoord /= 2.0;
112
- deltaHeight /= 2.0;
113
- heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;
79
+ " const int numSearches = 5;",
80
+ " for ( int i = 0; i < numSearches; i += 1 ) {",
81
+ " deltaTexCoord /= 2.0;",
82
+ " deltaHeight /= 2.0;",
83
+ " heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;",
114
84
  // Shift along or against vector V
115
- if( heightFromTexture > currentLayerHeight ) { // Below the surface
116
-
117
- currentTextureCoords -= deltaTexCoord;
118
- currentLayerHeight += deltaHeight;
119
-
120
- } else { // above the surface
121
-
122
- currentTextureCoords += deltaTexCoord;
123
- currentLayerHeight -= deltaHeight;
124
-
125
- }
126
-
127
- }
128
- return currentTextureCoords;
129
-
130
- #elif defined( USE_OCLUSION_PARALLAX )
131
-
132
- vec2 prevTCoords = currentTextureCoords + dtex;
133
-
85
+ " if( heightFromTexture > currentLayerHeight ) {",
86
+ // Below the surface
87
+ " currentTextureCoords -= deltaTexCoord;",
88
+ " currentLayerHeight += deltaHeight;",
89
+ " } else {",
90
+ // above the surface
91
+ " currentTextureCoords += deltaTexCoord;",
92
+ " currentLayerHeight -= deltaHeight;",
93
+ " }",
94
+ " }",
95
+ " return currentTextureCoords;",
96
+ " #elif defined( USE_OCLUSION_PARALLAX )",
97
+ " vec2 prevTCoords = currentTextureCoords + dtex;",
134
98
  // Heights for linear interpolation
135
- float nextH = heightFromTexture - currentLayerHeight;
136
- float prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;
137
-
99
+ " float nextH = heightFromTexture - currentLayerHeight;",
100
+ " float prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;",
138
101
  // Proportions for linear interpolation
139
- float weight = nextH / ( nextH - prevH );
140
-
102
+ " float weight = nextH / ( nextH - prevH );",
141
103
  // Interpolation of texture coordinates
142
- return prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );
143
-
144
- #else // NO_PARALLAX
145
-
146
- return vUv;
147
-
148
- #endif
149
-
150
- }
151
- #endif
152
-
153
- vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {
154
-
155
- vec2 texDx = dFdx( vUv );
156
- vec2 texDy = dFdy( vUv );
157
-
158
- vec3 vSigmaX = dFdx( surfPosition );
159
- vec3 vSigmaY = dFdy( surfPosition );
160
- vec3 vR1 = cross( vSigmaY, surfNormal );
161
- vec3 vR2 = cross( surfNormal, vSigmaX );
162
- float fDet = dot( vSigmaX, vR1 );
163
-
164
- vec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );
165
- vec3 vProjVtex;
166
- vProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;
167
- vProjVtex.z = dot( surfNormal, viewPosition );
168
-
169
- return parallaxMap( vProjVtex );
170
- }
171
-
172
- void main() {
173
-
174
- vec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );
175
- gl_FragColor = texture2D( map, mapUv );
176
-
177
- }
178
- `
179
- )
104
+ " return prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );",
105
+ " #else",
106
+ // NO_PARALLAX
107
+ " return vUv;",
108
+ " #endif",
109
+ " }",
110
+ "#endif",
111
+ "vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {",
112
+ " vec2 texDx = dFdx( vUv );",
113
+ " vec2 texDy = dFdy( vUv );",
114
+ " vec3 vSigmaX = dFdx( surfPosition );",
115
+ " vec3 vSigmaY = dFdy( surfPosition );",
116
+ " vec3 vR1 = cross( vSigmaY, surfNormal );",
117
+ " vec3 vR2 = cross( surfNormal, vSigmaX );",
118
+ " float fDet = dot( vSigmaX, vR1 );",
119
+ " vec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );",
120
+ " vec3 vProjVtex;",
121
+ " vProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;",
122
+ " vProjVtex.z = dot( surfNormal, viewPosition );",
123
+ " return parallaxMap( vProjVtex );",
124
+ "}",
125
+ "void main() {",
126
+ " vec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );",
127
+ " gl_FragColor = texture2D( map, mapUv );",
128
+ "}"
129
+ ].join("\n")
180
130
  };
181
131
  export {
182
132
  ParallaxShader
@@ -1 +1 @@
1
- {"version":3,"file":"ParallaxShader.js","sources":["../../src/shaders/ParallaxShader.ts"],"sourcesContent":["// Parallax Occlusion shaders from\n// http://sunandblackcat.com/tipFullView.php?topicid=28\n// No tangent-space transforms logic based on\n// http://mmikkelsen3d.blogspot.sk/2012/02/parallaxpoc-mapping-and-no-tangent.html\n\nexport const ParallaxShader = {\n // Ordered from fastest to best quality.\n modes: {\n none: 'NO_PARALLAX',\n basic: 'USE_BASIC_PARALLAX',\n steep: 'USE_STEEP_PARALLAX',\n occlusion: 'USE_OCLUSION_PARALLAX', // a.k.a. POM\n relief: 'USE_RELIEF_PARALLAX',\n },\n\n uniforms: {\n bumpMap: { value: null },\n map: { value: null },\n parallaxScale: { value: null },\n parallaxMinLayers: { value: null },\n parallaxMaxLayers: { value: null },\n },\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n varying vec3 vViewPosition;\n varying vec3 vNormal;\n\n void main() {\n\n \tvUv = uv;\n \tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n \tvViewPosition = -mvPosition.xyz;\n \tvNormal = normalize( normalMatrix * normal );\n \tgl_Position = projectionMatrix * mvPosition;\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform sampler2D bumpMap;\n uniform sampler2D map;\n\n uniform float parallaxScale;\n uniform float parallaxMinLayers;\n uniform float parallaxMaxLayers;\n\n varying vec2 vUv;\n varying vec3 vViewPosition;\n varying vec3 vNormal;\n\n #ifdef USE_BASIC_PARALLAX\n\n \tvec2 parallaxMap( in vec3 V ) {\n\n \t\tfloat initialHeight = texture2D( bumpMap, vUv ).r;\n\n // No Offset Limitting: messy, floating output at grazing angles.\n //\"vec2 texCoordOffset = parallaxScale * V.xy / V.z * initialHeight;\",\n\n // Offset Limiting\n \t\tvec2 texCoordOffset = parallaxScale * V.xy * initialHeight;\n \t\treturn vUv - texCoordOffset;\n\n \t}\n\n #else\n\n \tvec2 parallaxMap( in vec3 V ) {\n\n // Determine number of layers from angle between V and N\n \t\tfloat numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );\n\n \t\tfloat layerHeight = 1.0 / numLayers;\n \t\tfloat currentLayerHeight = 0.0;\n // Shift of texture coordinates for each iteration\n \t\tvec2 dtex = parallaxScale * V.xy / V.z / numLayers;\n\n \t\tvec2 currentTextureCoords = vUv;\n\n \t\tfloat heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;\n\n // while ( heightFromTexture > currentLayerHeight )\n // Infinite loops are not well supported. Do a \"large\" finite\n // loop, but not too large, as it slows down some compilers.\n \t\tfor ( int i = 0; i < 30; i += 1 ) {\n \t\t\tif ( heightFromTexture <= currentLayerHeight ) {\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\tcurrentLayerHeight += layerHeight;\n // Shift texture coordinates along vector V\n \t\t\tcurrentTextureCoords -= dtex;\n \t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;\n \t\t}\n\n \t\t#ifdef USE_STEEP_PARALLAX\n\n \t\t\treturn currentTextureCoords;\n\n \t\t#elif defined( USE_RELIEF_PARALLAX )\n\n \t\t\tvec2 deltaTexCoord = dtex / 2.0;\n \t\t\tfloat deltaHeight = layerHeight / 2.0;\n\n // Return to the mid point of previous layer\n \t\t\tcurrentTextureCoords += deltaTexCoord;\n \t\t\tcurrentLayerHeight -= deltaHeight;\n\n // Binary search to increase precision of Steep Parallax Mapping\n \t\t\tconst int numSearches = 5;\n \t\t\tfor ( int i = 0; i < numSearches; i += 1 ) {\n\n \t\t\t\tdeltaTexCoord /= 2.0;\n \t\t\t\tdeltaHeight /= 2.0;\n \t\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;\n // Shift along or against vector V\n \t\t\t\tif( heightFromTexture > currentLayerHeight ) { // Below the surface\n\n \t\t\t\t\tcurrentTextureCoords -= deltaTexCoord;\n \t\t\t\t\tcurrentLayerHeight += deltaHeight;\n\n \t\t\t\t} else { // above the surface\n\n \t\t\t\t\tcurrentTextureCoords += deltaTexCoord;\n \t\t\t\t\tcurrentLayerHeight -= deltaHeight;\n\n \t\t\t\t}\n\n \t\t\t}\n \t\t\treturn currentTextureCoords;\n\n \t\t#elif defined( USE_OCLUSION_PARALLAX )\n\n \t\t\tvec2 prevTCoords = currentTextureCoords + dtex;\n\n // Heights for linear interpolation\n \t\t\tfloat nextH = heightFromTexture - currentLayerHeight;\n \t\t\tfloat prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;\n\n // Proportions for linear interpolation\n \t\t\tfloat weight = nextH / ( nextH - prevH );\n\n // Interpolation of texture coordinates\n \t\t\treturn prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );\n\n \t\t#else // NO_PARALLAX\n\n \t\t\treturn vUv;\n\n \t\t#endif\n\n \t}\n #endif\n\n vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {\n\n \tvec2 texDx = dFdx( vUv );\n \tvec2 texDy = dFdy( vUv );\n\n \tvec3 vSigmaX = dFdx( surfPosition );\n \tvec3 vSigmaY = dFdy( surfPosition );\n \tvec3 vR1 = cross( vSigmaY, surfNormal );\n \tvec3 vR2 = cross( surfNormal, vSigmaX );\n \tfloat fDet = dot( vSigmaX, vR1 );\n\n \tvec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );\n \tvec3 vProjVtex;\n \tvProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;\n \tvProjVtex.z = dot( surfNormal, viewPosition );\n\n \treturn parallaxMap( vProjVtex );\n }\n\n void main() {\n\n \tvec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );\n \tgl_FragColor = texture2D( map, mapUv );\n\n }\n `,\n}\n"],"names":[],"mappings":"AAKO,MAAM,iBAAiB;AAAA;AAAA,EAE5B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA;AAAA,IACX,QAAQ;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,SAAS,EAAE,OAAO,KAAK;AAAA,IACvB,KAAK,EAAE,OAAO,KAAK;AAAA,IACnB,eAAe,EAAE,OAAO,KAAK;AAAA,IAC7B,mBAAmB,EAAE,OAAO,KAAK;AAAA,IACjC,mBAAmB,EAAE,OAAO,KAAK;AAAA,EACnC;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBzB;AAAA;AAAA,IAA2B;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6I7B;"}
1
+ {"version":3,"file":"ParallaxShader.js","sources":["../../src/shaders/ParallaxShader.ts"],"sourcesContent":["// Parallax Occlusion shaders from\n// http://sunandblackcat.com/tipFullView.php?topicid=28\n// No tangent-space transforms logic based on\n// http://mmikkelsen3d.blogspot.sk/2012/02/parallaxpoc-mapping-and-no-tangent.html\n\nexport const ParallaxShader = {\n // Ordered from fastest to best quality.\n modes: {\n none: 'NO_PARALLAX',\n basic: 'USE_BASIC_PARALLAX',\n steep: 'USE_STEEP_PARALLAX',\n occlusion: 'USE_OCLUSION_PARALLAX', // a.k.a. POM\n relief: 'USE_RELIEF_PARALLAX',\n },\n\n uniforms: {\n bumpMap: { value: null },\n map: { value: null },\n parallaxScale: { value: null },\n parallaxMinLayers: { value: null },\n parallaxMaxLayers: { value: null },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n 'varying vec3 vViewPosition;',\n 'varying vec3 vNormal;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );',\n '\tvViewPosition = -mvPosition.xyz;',\n '\tvNormal = normalize( normalMatrix * normal );',\n '\tgl_Position = projectionMatrix * mvPosition;',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform sampler2D bumpMap;',\n 'uniform sampler2D map;',\n\n 'uniform float parallaxScale;',\n 'uniform float parallaxMinLayers;',\n 'uniform float parallaxMaxLayers;',\n\n 'varying vec2 vUv;',\n 'varying vec3 vViewPosition;',\n 'varying vec3 vNormal;',\n\n '#ifdef USE_BASIC_PARALLAX',\n\n '\tvec2 parallaxMap( in vec3 V ) {',\n\n '\t\tfloat initialHeight = texture2D( bumpMap, vUv ).r;',\n\n // No Offset Limitting: messy, floating output at grazing angles.\n //\"vec2 texCoordOffset = parallaxScale * V.xy / V.z * initialHeight;\",\n\n // Offset Limiting\n '\t\tvec2 texCoordOffset = parallaxScale * V.xy * initialHeight;',\n '\t\treturn vUv - texCoordOffset;',\n\n '\t}',\n\n '#else',\n\n '\tvec2 parallaxMap( in vec3 V ) {',\n\n // Determine number of layers from angle between V and N\n '\t\tfloat numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );',\n\n '\t\tfloat layerHeight = 1.0 / numLayers;',\n '\t\tfloat currentLayerHeight = 0.0;',\n // Shift of texture coordinates for each iteration\n '\t\tvec2 dtex = parallaxScale * V.xy / V.z / numLayers;',\n\n '\t\tvec2 currentTextureCoords = vUv;',\n\n '\t\tfloat heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;',\n\n // while ( heightFromTexture > currentLayerHeight )\n // Infinite loops are not well supported. Do a \"large\" finite\n // loop, but not too large, as it slows down some compilers.\n '\t\tfor ( int i = 0; i < 30; i += 1 ) {',\n '\t\t\tif ( heightFromTexture <= currentLayerHeight ) {',\n '\t\t\t\tbreak;',\n '\t\t\t}',\n '\t\t\tcurrentLayerHeight += layerHeight;',\n // Shift texture coordinates along vector V\n '\t\t\tcurrentTextureCoords -= dtex;',\n '\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;',\n '\t\t}',\n\n '\t\t#ifdef USE_STEEP_PARALLAX',\n\n '\t\t\treturn currentTextureCoords;',\n\n '\t\t#elif defined( USE_RELIEF_PARALLAX )',\n\n '\t\t\tvec2 deltaTexCoord = dtex / 2.0;',\n '\t\t\tfloat deltaHeight = layerHeight / 2.0;',\n\n // Return to the mid point of previous layer\n '\t\t\tcurrentTextureCoords += deltaTexCoord;',\n '\t\t\tcurrentLayerHeight -= deltaHeight;',\n\n // Binary search to increase precision of Steep Parallax Mapping\n '\t\t\tconst int numSearches = 5;',\n '\t\t\tfor ( int i = 0; i < numSearches; i += 1 ) {',\n\n '\t\t\t\tdeltaTexCoord /= 2.0;',\n '\t\t\t\tdeltaHeight /= 2.0;',\n '\t\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;',\n // Shift along or against vector V\n '\t\t\t\tif( heightFromTexture > currentLayerHeight ) {', // Below the surface\n\n '\t\t\t\t\tcurrentTextureCoords -= deltaTexCoord;',\n '\t\t\t\t\tcurrentLayerHeight += deltaHeight;',\n\n '\t\t\t\t} else {', // above the surface\n\n '\t\t\t\t\tcurrentTextureCoords += deltaTexCoord;',\n '\t\t\t\t\tcurrentLayerHeight -= deltaHeight;',\n\n '\t\t\t\t}',\n\n '\t\t\t}',\n '\t\t\treturn currentTextureCoords;',\n\n '\t\t#elif defined( USE_OCLUSION_PARALLAX )',\n\n '\t\t\tvec2 prevTCoords = currentTextureCoords + dtex;',\n\n // Heights for linear interpolation\n '\t\t\tfloat nextH = heightFromTexture - currentLayerHeight;',\n '\t\t\tfloat prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;',\n\n // Proportions for linear interpolation\n '\t\t\tfloat weight = nextH / ( nextH - prevH );',\n\n // Interpolation of texture coordinates\n '\t\t\treturn prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );',\n\n '\t\t#else', // NO_PARALLAX\n\n '\t\t\treturn vUv;',\n\n '\t\t#endif',\n\n '\t}',\n '#endif',\n\n 'vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {',\n\n '\tvec2 texDx = dFdx( vUv );',\n '\tvec2 texDy = dFdy( vUv );',\n\n '\tvec3 vSigmaX = dFdx( surfPosition );',\n '\tvec3 vSigmaY = dFdy( surfPosition );',\n '\tvec3 vR1 = cross( vSigmaY, surfNormal );',\n '\tvec3 vR2 = cross( surfNormal, vSigmaX );',\n '\tfloat fDet = dot( vSigmaX, vR1 );',\n\n '\tvec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );',\n '\tvec3 vProjVtex;',\n '\tvProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;',\n '\tvProjVtex.z = dot( surfNormal, viewPosition );',\n\n '\treturn parallaxMap( vProjVtex );',\n '}',\n\n 'void main() {',\n\n '\tvec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );',\n '\tgl_FragColor = texture2D( map, mapUv );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":"AAKO,MAAM,iBAAiB;AAAA;AAAA,EAE5B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA;AAAA,IACX,QAAQ;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,SAAS,EAAE,OAAO,KAAK;AAAA,IACvB,KAAK,EAAE,OAAO,KAAK;AAAA,IACnB,eAAe,EAAE,OAAO,KAAK;AAAA,IAC7B,mBAAmB,EAAE,OAAO,KAAK;AAAA,IACjC,mBAAmB,EAAE,OAAO,KAAK;AAAA,EACnC;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}