three-stdlib 2.35.4 → 2.35.5

Sign up to get free protection for your applications and to get access to all the features.
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;"}