angular-three-soba 2.0.0-beta.2 → 2.0.0-beta.21

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 (321) hide show
  1. package/abstractions/billboard/billboard.d.ts +11 -7
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +24 -12
  4. package/abstractions/grid/grid.d.ts +50 -0
  5. package/abstractions/index.d.ts +2 -7
  6. package/abstractions/text/text.d.ts +10 -5
  7. package/abstractions/text-3d/text-3d.d.ts +51 -41
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +50 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +31 -12
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +180 -0
  19. package/esm2022/abstractions/index.mjs +3 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -124
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
  22. package/esm2022/cameras/camera/camera-content.mjs +6 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +105 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +197 -0
  31. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  32. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
  33. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +150 -0
  34. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
  35. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
  36. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  37. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
  38. package/esm2022/gizmos/index.mjs +4 -0
  39. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +29 -29
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  43. package/esm2022/materials/index.mjs +2 -1
  44. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  45. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  46. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +102 -99
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  48. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  49. package/esm2022/materials/point-material/point-material.mjs +50 -0
  50. package/esm2022/misc/animations/animations.mjs +36 -32
  51. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  52. package/esm2022/misc/caustics/caustics.mjs +387 -0
  53. package/esm2022/misc/decal/decal.mjs +187 -0
  54. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  55. package/esm2022/misc/example/example.mjs +160 -0
  56. package/esm2022/misc/fbo/fbo.mjs +35 -35
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +304 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +142 -0
  61. package/esm2022/misc/shadow/shadow.mjs +111 -0
  62. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  63. package/esm2022/misc/trail/trail.mjs +209 -0
  64. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  65. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  66. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  67. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  68. package/esm2022/modifiers/index.mjs +2 -0
  69. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  70. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  71. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  72. package/esm2022/performances/index.mjs +8 -0
  73. package/esm2022/performances/instances/instances.mjs +220 -0
  74. package/esm2022/performances/instances/position-mesh.mjs +52 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +326 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +182 -0
  80. package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
  81. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  82. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
  86. package/esm2022/shaders/index.mjs +6 -3
  87. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  88. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
  89. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  96. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  97. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  98. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  101. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  102. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  103. package/esm2022/staging/bounds/bounds.mjs +144 -143
  104. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  105. package/esm2022/staging/center/center.mjs +129 -112
  106. package/esm2022/staging/cloud/cloud.mjs +118 -124
  107. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  108. package/esm2022/staging/environment/assets.mjs +12 -12
  109. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  110. package/esm2022/staging/environment/environment-ground.mjs +17 -19
  111. package/esm2022/staging/environment/environment-input.mjs +98 -85
  112. package/esm2022/staging/environment/environment-map.mjs +33 -33
  113. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  114. package/esm2022/staging/environment/environment.mjs +34 -51
  115. package/esm2022/staging/environment/utils.mjs +37 -15
  116. package/esm2022/staging/float/float.mjs +70 -58
  117. package/esm2022/staging/index.mjs +7 -3
  118. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  119. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  120. package/esm2022/staging/sky/sky.mjs +85 -80
  121. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  122. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  123. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  126. package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
  127. package/esm2022/staging/stage/stage.mjs +305 -290
  128. package/esm2022/staging/stars/stars.mjs +101 -102
  129. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  130. package/esm2022/staging/wireframe/wireframe.mjs +228 -0
  131. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  132. package/esm2022/utils/content/content.mjs +15 -0
  133. package/esm2022/utils/index.mjs +2 -0
  134. package/fesm2022/angular-three-soba-abstractions.mjs +514 -1947
  135. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  136. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  137. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  138. package/fesm2022/angular-three-soba-controls.mjs +104 -83
  139. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-gizmos.mjs +1043 -0
  141. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  142. package/fesm2022/angular-three-soba-loaders.mjs +121 -117
  143. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  144. package/fesm2022/angular-three-soba-materials.mjs +662 -592
  145. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  146. package/fesm2022/angular-three-soba-misc.mjs +2214 -105
  147. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  148. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  149. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  150. package/fesm2022/angular-three-soba-performances.mjs +956 -0
  151. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  152. package/fesm2022/angular-three-soba-shaders.mjs +549 -252
  153. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  154. package/fesm2022/angular-three-soba-staging.mjs +2899 -2563
  155. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  156. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  157. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  158. package/gizmos/README.md +3 -0
  159. package/gizmos/gizmo-helper/gizmo-helper.d.ts +69 -0
  160. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  164. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  166. package/gizmos/index.d.ts +3 -0
  167. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  168. package/loaders/loader/loader.d.ts +19 -17
  169. package/loaders/progress/progress.d.ts +1 -1
  170. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  171. package/materials/index.d.ts +1 -0
  172. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  173. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  174. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  175. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  176. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  177. package/materials/point-material/point-material.d.ts +24 -0
  178. package/metadata.json +1 -0
  179. package/misc/animations/animations.d.ts +6 -4
  180. package/misc/caustics/caustics.d.ts +87 -0
  181. package/misc/decal/decal.d.ts +49 -0
  182. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  183. package/misc/example/example.d.ts +81 -0
  184. package/misc/fbo/fbo.d.ts +2 -2
  185. package/misc/html/html-wrapper.d.ts +559 -0
  186. package/misc/html/html.d.ts +214 -0
  187. package/misc/index.d.ts +9 -0
  188. package/misc/sampler/sampler.d.ts +67 -0
  189. package/misc/shadow/shadow.d.ts +37 -0
  190. package/misc/stats-gl/stats-gl.d.ts +24 -0
  191. package/misc/trail/trail.d.ts +57 -0
  192. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  193. package/misc/trail-texture/trail-texture.d.ts +50 -0
  194. package/modifiers/README.md +3 -0
  195. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  196. package/modifiers/index.d.ts +1 -0
  197. package/package.json +31 -16
  198. package/performances/README.md +3 -0
  199. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  200. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  201. package/performances/index.d.ts +7 -0
  202. package/performances/instances/instances.d.ts +79 -0
  203. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  204. package/performances/points/points-input.d.ts +32 -0
  205. package/performances/points/points.d.ts +92 -0
  206. package/performances/points/position-point.d.ts +11 -0
  207. package/performances/segments/segment-object.d.ts +7 -0
  208. package/performances/segments/segments.d.ts +124 -0
  209. package/shaders/grid-material/grid-material.d.ts +37 -0
  210. package/shaders/index.d.ts +5 -2
  211. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +147 -2
  212. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  213. package/shaders/shader-material/shader-material.d.ts +2 -2
  214. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  215. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  216. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  217. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  218. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  219. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  220. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  221. package/staging/backdrop/backdrop.d.ts +30 -0
  222. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  223. package/staging/bounds/bounds.d.ts +100 -24
  224. package/staging/camera-shake/camera-shake.d.ts +30 -19
  225. package/staging/center/center.d.ts +43 -35
  226. package/staging/cloud/cloud.d.ts +26 -23
  227. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  228. package/staging/environment/assets.d.ts +9 -9
  229. package/staging/environment/environment-cube.d.ts +9 -5
  230. package/staging/environment/environment-ground.d.ts +7 -7
  231. package/staging/environment/environment-input.d.ts +37 -37
  232. package/staging/environment/environment-map.d.ts +10 -5
  233. package/staging/environment/environment-portal.d.ts +10 -5
  234. package/staging/environment/environment.d.ts +0 -4
  235. package/staging/environment/utils.d.ts +2 -2
  236. package/staging/float/float.d.ts +14 -10
  237. package/staging/index.d.ts +6 -2
  238. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  239. package/staging/normal-texture/normal-texture.d.ts +16 -0
  240. package/staging/sky/sky.d.ts +28 -21
  241. package/staging/sparkles/sparkles.d.ts +36 -22
  242. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  243. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  244. package/staging/spot-light/spot-light-input.d.ts +25 -25
  245. package/staging/spot-light/spot-light.d.ts +31 -15
  246. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  247. package/staging/stage/stage.d.ts +89 -65
  248. package/staging/stars/stars.d.ts +28 -17
  249. package/staging/wireframe/wireframe-input.d.ts +65 -0
  250. package/staging/wireframe/wireframe.d.ts +28 -0
  251. package/utils/README.md +3 -0
  252. package/utils/content/content.d.ts +8 -0
  253. package/utils/index.d.ts +1 -0
  254. package/web-types.json +1 -0
  255. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  256. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  257. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  258. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  259. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  262. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  263. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  264. package/abstractions/line/line-input.d.ts +0 -42
  265. package/abstractions/line/line.d.ts +0 -35
  266. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  267. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  268. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  269. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  270. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  271. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  277. package/esm2022/abstractions/line/line-input.mjs +0 -113
  278. package/esm2022/abstractions/line/line.mjs +0 -165
  279. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  280. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  281. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  282. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  283. package/esm2022/performance/detailed/detailed.mjs +0 -61
  284. package/esm2022/performance/index.mjs +0 -7
  285. package/esm2022/performance/instances/instance.mjs +0 -48
  286. package/esm2022/performance/instances/instances.mjs +0 -189
  287. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  288. package/esm2022/performance/stats/stats.mjs +0 -79
  289. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  290. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  291. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  292. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  293. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  294. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  295. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  296. package/performance/README.md +0 -3
  297. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  298. package/performance/detailed/detailed.d.ts +0 -20
  299. package/performance/index.d.ts +0 -6
  300. package/performance/instances/instance.d.ts +0 -9
  301. package/performance/instances/instances.d.ts +0 -35
  302. package/performance/stats/stats.d.ts +0 -18
  303. package/plugin/generators.json +0 -19
  304. package/plugin/libs/plugin/README.md +0 -11
  305. package/plugin/package.json +0 -9
  306. package/plugin/src/generators/init/compat.d.ts +0 -2
  307. package/plugin/src/generators/init/compat.js +0 -6
  308. package/plugin/src/generators/init/compat.js.map +0 -1
  309. package/plugin/src/generators/init/init.d.ts +0 -4
  310. package/plugin/src/generators/init/init.js +0 -22
  311. package/plugin/src/generators/init/init.js.map +0 -1
  312. package/plugin/src/generators/init/schema.json +0 -6
  313. package/plugin/src/index.d.ts +0 -1
  314. package/plugin/src/index.js +0 -6
  315. package/plugin/src/index.js.map +0 -1
  316. package/staging/caustics/caustisc.d.ts +0 -70
  317. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  318. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  319. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  320. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  321. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,7 +1,8 @@
1
1
  import * as THREE from 'three';
2
- import { ShaderMaterial, Uniform, Vector2, NoBlending, WebGLRenderTarget, LinearFilter, HalfFloatType, Scene, PerspectiveCamera, BufferGeometry, BufferAttribute, Mesh, MeshStandardMaterial, Vector3, Color } from 'three';
3
- import { InjectionToken } from '@angular/core';
2
+ import { ShaderMaterial, Uniform, Vector2, NoBlending, WebGLRenderTarget, LinearFilter, HalfFloatType, Scene, PerspectiveCamera, BufferGeometry, BufferAttribute, Mesh, MeshStandardMaterial } from 'three';
3
+ import { InjectionToken, inject, runInInjectionContext, computed, effect } from '@angular/core';
4
4
  import { MeshBVHUniformStruct, shaderStructs, shaderIntersectFunction } from 'three-mesh-bvh';
5
+ import { assertInjectionContext } from 'angular-three';
5
6
 
6
7
  class ConvolutionMaterial extends ShaderMaterial {
7
8
  constructor(texelSize = new Vector2()) {
@@ -206,113 +207,115 @@ const CausticsMaterial = shaderMaterial({
206
207
  size: 10,
207
208
  intensity: 0.5,
208
209
  },
209
- /* glsl */ `varying vec2 vUv;
210
- void main() {
211
- vUv = uv;
212
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
213
- }`,
214
- /* glsl */ `uniform mat4 cameraMatrixWorld;
215
- uniform mat4 cameraProjectionMatrixInv;
216
- uniform vec3 lightDir;
217
- uniform vec3 lightPlaneNormal;
218
- uniform float lightPlaneConstant;
219
- uniform float near;
220
- uniform float far;
221
- uniform float time;
222
- uniform float worldRadius;
223
- uniform float resolution;
224
- uniform float size;
225
- uniform float intensity;
226
- uniform float ior;
227
- precision highp isampler2D;
228
- precision highp usampler2D;
229
- uniform sampler2D normalTexture;
230
- uniform sampler2D depthTexture;
231
- uniform float bounces;
232
- varying vec2 vUv;
233
- vec3 WorldPosFromDepth(float depth, vec2 coord) {
234
- float z = depth * 2.0 - 1.0;
235
- vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);
236
- vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;
237
- // Perspective division
238
- viewSpacePosition /= viewSpacePosition.w;
239
- vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;
240
- return worldSpacePosition.xyz;
241
- }
242
- float sdPlane( vec3 p, vec3 n, float h ) {
243
- // n must be normalized
244
- return dot(p,n) + h;
245
- }
246
- float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {
247
- return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);
248
- }
249
- vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {
250
- rayOrigin = ro;
251
- rayDirection = rd;
252
- rayDirection = refract(rayDirection, normal, 1.0 / ior);
253
- rayOrigin = pos + rayDirection * 0.1;
254
- return rayDirection;
255
- }
256
- void main() {
257
- // Each sample consists of random offset in the x and y direction
258
- float caustic = 0.0;
259
- float causticTexelSize = (1.0 / resolution) * size * 2.0;
260
- float texelsNeeded = worldRadius / causticTexelSize;
261
- float sampleRadius = texelsNeeded / resolution;
262
- float sum = 0.0;
263
- if (texture2D(depthTexture, vUv).x == 1.0) {
264
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
265
- return;
210
+ /* glsl */ `
211
+ varying vec2 vUv;
212
+ void main() {
213
+ vUv = uv;
214
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
215
+ }`,
216
+ /* glsl */ `
217
+ uniform mat4 cameraMatrixWorld;
218
+ uniform mat4 cameraProjectionMatrixInv;
219
+ uniform vec3 lightDir;
220
+ uniform vec3 lightPlaneNormal;
221
+ uniform float lightPlaneConstant;
222
+ uniform float near;
223
+ uniform float far;
224
+ uniform float time;
225
+ uniform float worldRadius;
226
+ uniform float resolution;
227
+ uniform float size;
228
+ uniform float intensity;
229
+ uniform float ior;
230
+ precision highp isampler2D;
231
+ precision highp usampler2D;
232
+ uniform sampler2D normalTexture;
233
+ uniform sampler2D depthTexture;
234
+ uniform float bounces;
235
+ varying vec2 vUv;
236
+ vec3 WorldPosFromDepth(float depth, vec2 coord) {
237
+ float z = depth * 2.0 - 1.0;
238
+ vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);
239
+ vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;
240
+ // Perspective division
241
+ viewSpacePosition /= viewSpacePosition.w;
242
+ vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;
243
+ return worldSpacePosition.xyz;
244
+ }
245
+ float sdPlane( vec3 p, vec3 n, float h ) {
246
+ // n must be normalized
247
+ return dot(p,n) + h;
266
248
  }
267
- vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);
268
- vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);
269
- vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);
270
- vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);
271
- vec2 uv1 = vUv + offset1 * sampleRadius;
272
- vec2 uv2 = vUv + offset2 * sampleRadius;
273
- vec2 uv3 = vUv + offset3 * sampleRadius;
274
- vec2 uv4 = vUv + offset4 * sampleRadius;
275
- vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;
276
- vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;
277
- vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;
278
- vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;
279
- float depth1 = texture2D(depthTexture, uv1, -10.0).x;
280
- float depth2 = texture2D(depthTexture, uv2, -10.0).x;
281
- float depth3 = texture2D(depthTexture, uv3, -10.0).x;
282
- float depth4 = texture2D(depthTexture, uv4, -10.0).x;
283
- // Sanity check the depths
284
- if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {
285
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
286
- return;
249
+ float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {
250
+ return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);
287
251
  }
288
- vec3 pos1 = WorldPosFromDepth(depth1, uv1);
289
- vec3 pos2 = WorldPosFromDepth(depth2, uv2);
290
- vec3 pos3 = WorldPosFromDepth(depth3, uv3);
291
- vec3 pos4 = WorldPosFromDepth(depth4, uv4);
292
- vec3 originPos1 = WorldPosFromDepth(0.0, uv1);
293
- vec3 originPos2 = WorldPosFromDepth(0.0, uv2);
294
- vec3 originPos3 = WorldPosFromDepth(0.0, uv3);
295
- vec3 originPos4 = WorldPosFromDepth(0.0, uv4);
296
- vec3 endPos1, endPos2, endPos3, endPos4;
297
- vec3 endDir1, endDir2, endDir3, endDir4;
298
- totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);
299
- totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);
300
- totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);
301
- totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);
302
- float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));
303
- float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));
304
- float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));
305
- float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));
306
- float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));
307
- vec3 finalPos1 = endPos1 + endDir1 * t1;
308
- vec3 finalPos2 = endPos2 + endDir2 * t2;
309
- vec3 finalPos3 = endPos3 + endDir3 * t3;
310
- vec3 finalPos4 = endPos4 + endDir4 * t4;
311
- float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));
312
- caustic += intensity * (lightPosArea / finalArea);
313
- // Calculate the area of the triangle in light spaces
314
- gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);
315
- }`);
252
+ vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {
253
+ rayOrigin = ro;
254
+ rayDirection = rd;
255
+ rayDirection = refract(rayDirection, normal, 1.0 / ior);
256
+ rayOrigin = pos + rayDirection * 0.1;
257
+ return rayDirection;
258
+ }
259
+ void main() {
260
+ // Each sample consists of random offset in the x and y direction
261
+ float caustic = 0.0;
262
+ float causticTexelSize = (1.0 / resolution) * size * 2.0;
263
+ float texelsNeeded = worldRadius / causticTexelSize;
264
+ float sampleRadius = texelsNeeded / resolution;
265
+ float sum = 0.0;
266
+ if (texture2D(depthTexture, vUv).x == 1.0) {
267
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
268
+ return;
269
+ }
270
+ vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);
271
+ vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);
272
+ vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);
273
+ vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);
274
+ vec2 uv1 = vUv + offset1 * sampleRadius;
275
+ vec2 uv2 = vUv + offset2 * sampleRadius;
276
+ vec2 uv3 = vUv + offset3 * sampleRadius;
277
+ vec2 uv4 = vUv + offset4 * sampleRadius;
278
+ vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;
279
+ vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;
280
+ vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;
281
+ vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;
282
+ float depth1 = texture2D(depthTexture, uv1, -10.0).x;
283
+ float depth2 = texture2D(depthTexture, uv2, -10.0).x;
284
+ float depth3 = texture2D(depthTexture, uv3, -10.0).x;
285
+ float depth4 = texture2D(depthTexture, uv4, -10.0).x;
286
+ // Sanity check the depths
287
+ if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {
288
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
289
+ return;
290
+ }
291
+ vec3 pos1 = WorldPosFromDepth(depth1, uv1);
292
+ vec3 pos2 = WorldPosFromDepth(depth2, uv2);
293
+ vec3 pos3 = WorldPosFromDepth(depth3, uv3);
294
+ vec3 pos4 = WorldPosFromDepth(depth4, uv4);
295
+ vec3 originPos1 = WorldPosFromDepth(0.0, uv1);
296
+ vec3 originPos2 = WorldPosFromDepth(0.0, uv2);
297
+ vec3 originPos3 = WorldPosFromDepth(0.0, uv3);
298
+ vec3 originPos4 = WorldPosFromDepth(0.0, uv4);
299
+ vec3 endPos1, endPos2, endPos3, endPos4;
300
+ vec3 endDir1, endDir2, endDir3, endDir4;
301
+ totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);
302
+ totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);
303
+ totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);
304
+ totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);
305
+ float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));
306
+ float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));
307
+ float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));
308
+ float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));
309
+ float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));
310
+ vec3 finalPos1 = endPos1 + endDir1 * t1;
311
+ vec3 finalPos2 = endPos2 + endDir2 * t2;
312
+ vec3 finalPos3 = endPos3 + endDir3 * t3;
313
+ vec3 finalPos4 = endPos4 + endDir4 * t4;
314
+ float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));
315
+ caustic += intensity * (lightPosArea / finalArea);
316
+ // Calculate the area of the triangle in light spaces
317
+ gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);
318
+ }`);
316
319
 
317
320
  const CausticsProjectionMaterial = shaderMaterial({
318
321
  causticsTexture: null,
@@ -320,85 +323,159 @@ const CausticsProjectionMaterial = shaderMaterial({
320
323
  color: new THREE.Color(),
321
324
  lightProjMatrix: new THREE.Matrix4(),
322
325
  lightViewMatrix: new THREE.Matrix4(),
323
- },
324
- /* glsl */ `varying vec3 vWorldPosition;
325
- void main() {
326
- gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
327
- vec4 worldPosition = modelMatrix * vec4(position, 1.);
328
- vWorldPosition = worldPosition.xyz;
329
- }`,
330
- /* glsl */ `varying vec3 vWorldPosition;
331
- uniform vec3 color;
332
- uniform sampler2D causticsTexture;
333
- uniform sampler2D causticsTextureB;
334
- uniform mat4 lightProjMatrix;
335
- uniform mat4 lightViewMatrix;
336
- void main() {
337
- // Apply caustics
338
- vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);
339
- lightSpacePos.xyz /= lightSpacePos.w;
340
- lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5;
341
- vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;
342
- vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;
343
- gl_FragColor = vec4((front + back) * color, 1.0);
344
- #include <tonemapping_fragment>
345
- #include <encodings_fragment>
346
- }`);
326
+ }, `varying vec3 vWorldPosition;
327
+ void main() {
328
+ gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
329
+ vec4 worldPosition = modelMatrix * vec4(position, 1.);
330
+ vWorldPosition = worldPosition.xyz;
331
+ }`, `varying vec3 vWorldPosition;
332
+ uniform vec3 color;
333
+ uniform sampler2D causticsTexture;
334
+ uniform sampler2D causticsTextureB;
335
+ uniform mat4 lightProjMatrix;
336
+ uniform mat4 lightViewMatrix;
337
+ void main() {
338
+ // Apply caustics
339
+ vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);
340
+ lightSpacePos.xyz /= lightSpacePos.w;
341
+ lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5;
342
+ vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;
343
+ vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;
344
+ gl_FragColor = vec4((front + back) * color, 1.0);
345
+ #include <tonemapping_fragment>
346
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
347
+ }`);
347
348
 
348
349
  const DiscardMaterial = shaderMaterial({}, 'void main() { }', 'void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); discard; }');
349
350
 
351
+ const GridMaterial = shaderMaterial({
352
+ cellSize: 0.5,
353
+ sectionSize: 1,
354
+ fadeDistance: 100,
355
+ fadeStrength: 1,
356
+ cellThickness: 0.5,
357
+ sectionThickness: 1,
358
+ cellColor: new THREE.Color(),
359
+ sectionColor: new THREE.Color(),
360
+ infiniteGrid: false,
361
+ followCamera: false,
362
+ worldCamProjPosition: new THREE.Vector3(),
363
+ worldPlanePosition: new THREE.Vector3(),
364
+ },
365
+ /* glsl */ `
366
+ varying vec3 localPosition;
367
+ varying vec4 worldPosition;
368
+
369
+ uniform vec3 worldCamProjPosition;
370
+ uniform vec3 worldPlanePosition;
371
+ uniform float fadeDistance;
372
+ uniform bool infiniteGrid;
373
+ uniform bool followCamera;
374
+
375
+ void main() {
376
+ localPosition = position.xzy;
377
+ if (infiniteGrid) localPosition *= 1.0 + fadeDistance;
378
+
379
+ worldPosition = modelMatrix * vec4(localPosition, 1.0);
380
+ if (followCamera) {
381
+ worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);
382
+ localPosition = (inverse(modelMatrix) * worldPosition).xyz;
383
+ }
384
+
385
+ gl_Position = projectionMatrix * viewMatrix * worldPosition;
386
+ }
387
+ `,
388
+ /* glsl */ `
389
+ varying vec3 localPosition;
390
+ varying vec4 worldPosition;
391
+
392
+ uniform vec3 worldCamProjPosition;
393
+ uniform float cellSize;
394
+ uniform float sectionSize;
395
+ uniform vec3 cellColor;
396
+ uniform vec3 sectionColor;
397
+ uniform float fadeDistance;
398
+ uniform float fadeStrength;
399
+ uniform float cellThickness;
400
+ uniform float sectionThickness;
401
+
402
+ float getGrid(float size, float thickness) {
403
+ vec2 r = localPosition.xz / size;
404
+ vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
405
+ float line = min(grid.x, grid.y) + 1.0 - thickness;
406
+ return 1.0 - min(line, 1.0);
407
+ }
408
+
409
+ void main() {
410
+ float g1 = getGrid(cellSize, cellThickness);
411
+ float g2 = getGrid(sectionSize, sectionThickness);
412
+
413
+ float dist = distance(worldCamProjPosition, worldPosition.xyz);
414
+ float d = 1.0 - min(dist / fadeDistance, 1.0);
415
+ vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));
416
+
417
+ gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));
418
+ gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);
419
+ if (gl_FragColor.a <= 0.0) discard;
420
+
421
+ #include <tonemapping_fragment>
422
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
423
+ }
424
+ `);
425
+
350
426
  const NGTS_DISTORT_MATERIAL_SHADER = new InjectionToken('DistortMaterialShader');
351
- function provideNgtsMeshDistortMaterialShader(distortShader) {
352
- return {
353
- provide: NGTS_DISTORT_MATERIAL_SHADER,
354
- useFactory: () => {
355
- return class extends THREE.MeshPhysicalMaterial {
356
- constructor(parameters = {}) {
357
- super(parameters);
358
- this.setValues(parameters);
359
- this._time = { value: 0 };
360
- this._distort = { value: 0.4 };
361
- this._radius = { value: 1 };
362
- }
363
- onBeforeCompile(shader) {
364
- shader.uniforms['time'] = this._time;
365
- shader.uniforms['radius'] = this._radius;
366
- shader.uniforms['distort'] = this._distort;
367
- shader.vertexShader = `
427
+ function injectNgtsMeshDistortMaterial() {
428
+ return inject(NGTS_DISTORT_MATERIAL_SHADER);
429
+ }
430
+ function createMeshDistortMaterial(distortShader) {
431
+ return class extends THREE.MeshPhysicalMaterial {
432
+ constructor(parameters = {}) {
433
+ super(parameters);
434
+ this.setValues(parameters);
435
+ this._time = { value: 0 };
436
+ this._distort = { value: 0.4 };
437
+ this._radius = { value: 1 };
438
+ }
439
+ onBeforeCompile(shader) {
440
+ shader.uniforms['time'] = this._time;
441
+ shader.uniforms['radius'] = this._radius;
442
+ shader.uniforms['distort'] = this._distort;
443
+ shader.vertexShader = `
368
444
  uniform float time;
369
445
  uniform float radius;
370
446
  uniform float distort;
371
447
  ${distortShader}
372
448
  ${shader.vertexShader}
373
449
  `;
374
- shader.vertexShader = shader.vertexShader.replace('#include <begin_vertex>', `
450
+ shader.vertexShader = shader.vertexShader.replace('#include <begin_vertex>', `
375
451
  float updateTime = time / 50.0;
376
452
  float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));
377
453
  vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));
378
454
  `);
379
- }
380
- get time() {
381
- return this._time.value;
382
- }
383
- set time(v) {
384
- this._time.value = v;
385
- }
386
- get distort() {
387
- return this._distort.value;
388
- }
389
- set distort(v) {
390
- this._distort.value = v;
391
- }
392
- get radius() {
393
- return this._radius.value;
394
- }
395
- set radius(v) {
396
- this._radius.value = v;
397
- }
398
- };
399
- },
455
+ }
456
+ get time() {
457
+ return this._time.value;
458
+ }
459
+ set time(v) {
460
+ this._time.value = v;
461
+ }
462
+ get distort() {
463
+ return this._distort.value;
464
+ }
465
+ set distort(v) {
466
+ this._distort.value = v;
467
+ }
468
+ get radius() {
469
+ return this._radius.value;
470
+ }
471
+ set radius(v) {
472
+ this._radius.value = v;
473
+ }
400
474
  };
401
475
  }
476
+ function provideNgtsMeshDistortMaterialShader(distortShader) {
477
+ return { provide: NGTS_DISTORT_MATERIAL_SHADER, useFactory: () => createMeshDistortMaterial(distortShader) };
478
+ }
402
479
 
403
480
  class MeshReflectorMaterial extends MeshStandardMaterial {
404
481
  constructor(parameters = {}) {
@@ -785,7 +862,7 @@ const MeshRefractionMaterial = shaderMaterial({
785
862
  float nFresnel = fresnelFunc(viewDirection, normal) * fresnel;
786
863
  gl_FragColor = vec4(mix(finalColor, vec3(1.0), nFresnel), 1.0);
787
864
  #include <tonemapping_fragment>
788
- #include <encodings_fragment>
865
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
789
866
  }`);
790
867
 
791
868
  class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
@@ -804,7 +881,7 @@ class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
804
881
  thicknessMap: { value: null },
805
882
  attenuationDistance: { value: Infinity },
806
883
  attenuationColor: { value: new THREE.Color('white') },
807
- anisotropy: { value: 0.1 },
884
+ anisotropicBlur: { value: 0.1 },
808
885
  time: { value: 0 },
809
886
  distortion: { value: 0.0 },
810
887
  distortionScale: { value: 0.5 },
@@ -827,7 +904,7 @@ class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
827
904
  shader.fragmentShader =
828
905
  /*glsl*/ `
829
906
  uniform float chromaticAberration;
830
- uniform float anisotropy;
907
+ uniform float anisotropicBlur;
831
908
  uniform float time;
832
909
  uniform float distortion;
833
910
  uniform float distortionScale;
@@ -1018,7 +1095,7 @@ class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
1018
1095
  vec3 transmission = vec3(0.0);
1019
1096
  float transmissionR, transmissionB, transmissionG;
1020
1097
  float randomCoords = rand();
1021
- float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropy);
1098
+ float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropicBlur);
1022
1099
  vec3 distortionNormal = vec3(0.0);
1023
1100
  vec3 temporalOffset = vec3(time, -time, -time) * temporalDistortion;
1024
1101
  if (distortion > 0.0) {
@@ -1097,78 +1174,55 @@ const SoftShadowMaterial = shaderMaterial({
1097
1174
  alphaTest: 0.75,
1098
1175
  opacity: 0,
1099
1176
  map: null,
1100
- },
1101
- // language=glsl
1102
- `
1103
- varying vec2 vUv;
1104
- void main() {
1105
- gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
1106
- vUv = uv;
1107
- }
1108
- `,
1109
- // language=glsl
1110
- `
1111
- varying vec2 vUv;
1112
- uniform sampler2D map;
1113
- uniform vec3 color;
1114
- uniform float opacity;
1115
- uniform float alphaTest;
1116
- uniform float blend;
1117
- void main() {
1118
- vec4 sampledDiffuseColor = texture2D(map, vUv);
1119
- gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);
1120
- #include <tonemapping_fragment>
1121
- #include <encodings_fragment>
1122
- }
1123
- `);
1124
-
1125
- const SparklesMaterial = shaderMaterial({ time: 0, pixelRatio: 1 },
1126
- // language=GLSL
1127
- `
1128
- uniform float pixelRatio;
1129
- uniform float time;
1130
-
1131
- attribute float size;
1132
- attribute float speed;
1133
- attribute float opacity;
1134
- attribute vec3 noise;
1135
- attribute vec3 color;
1136
-
1137
- varying vec3 vColor;
1138
- varying float vOpacity;
1139
-
1140
- void main() {
1141
- vec4 modelPosition = modelMatrix * vec4(position, 1.0);
1142
-
1143
- modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;
1144
- modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;
1145
- modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;
1146
-
1147
- vec4 viewPosition = viewMatrix * modelPosition;
1148
- vec4 projectionPostion = projectionMatrix * viewPosition;
1149
-
1150
- gl_Position = projectionPostion;
1151
- gl_PointSize = size * 25. * pixelRatio;
1152
- gl_PointSize *= (1.0 / - viewPosition.z);
1153
-
1154
- vColor = color;
1155
- vOpacity = opacity;
1156
- }
1157
- `,
1158
- // language=GLSL
1159
- `
1160
- varying vec3 vColor;
1161
- varying float vOpacity;
1162
-
1163
- void main() {
1164
- float distanceToCenter = distance(gl_PointCoord, vec2(0.5));
1165
- float strength = 0.05 / distanceToCenter - 0.1;
1166
-
1167
- gl_FragColor = vec4(vColor, strength * vOpacity);
1168
- }
1169
- `);
1170
-
1171
- class SpotLightMaterial extends ShaderMaterial {
1177
+ }, `varying vec2 vUv;
1178
+ void main() {
1179
+ gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
1180
+ vUv = uv;
1181
+ }`, `varying vec2 vUv;
1182
+ uniform sampler2D map;
1183
+ uniform vec3 color;
1184
+ uniform float opacity;
1185
+ uniform float alphaTest;
1186
+ uniform float blend;
1187
+ void main() {
1188
+ vec4 sampledDiffuseColor = texture2D(map, vUv);
1189
+ gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);
1190
+ #include <tonemapping_fragment>
1191
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
1192
+ }`);
1193
+
1194
+ const SparklesMaterial = shaderMaterial({ time: 0, pixelRatio: 1 }, ` uniform float pixelRatio;
1195
+ uniform float time;
1196
+ attribute float size;
1197
+ attribute float speed;
1198
+ attribute float opacity;
1199
+ attribute vec3 noise;
1200
+ attribute vec3 color;
1201
+ varying vec3 vColor;
1202
+ varying float vOpacity;
1203
+ void main() {
1204
+ vec4 modelPosition = modelMatrix * vec4(position, 1.0);
1205
+ modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;
1206
+ modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;
1207
+ modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;
1208
+ vec4 viewPosition = viewMatrix * modelPosition;
1209
+ vec4 projectionPostion = projectionMatrix * viewPosition;
1210
+ gl_Position = projectionPostion;
1211
+ gl_PointSize = size * 25. * pixelRatio;
1212
+ gl_PointSize *= (1.0 / - viewPosition.z);
1213
+ vColor = color;
1214
+ vOpacity = opacity;
1215
+ }`, ` varying vec3 vColor;
1216
+ varying float vOpacity;
1217
+ void main() {
1218
+ float distanceToCenter = distance(gl_PointCoord, vec2(0.5));
1219
+ float strength = 0.05 / distanceToCenter - 0.1;
1220
+ gl_FragColor = vec4(vColor, strength * vOpacity);
1221
+ #include <tonemapping_fragment>
1222
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
1223
+ }`);
1224
+
1225
+ class SpotLightMaterial extends THREE.ShaderMaterial {
1172
1226
  constructor() {
1173
1227
  super({
1174
1228
  uniforms: {
@@ -1176,11 +1230,11 @@ class SpotLightMaterial extends ShaderMaterial {
1176
1230
  opacity: { value: 1 },
1177
1231
  attenuation: { value: 2.5 },
1178
1232
  anglePower: { value: 12 },
1179
- spotPosition: { value: new Vector3(0, 0, 0) },
1180
- lightColor: { value: new Color('white') },
1233
+ spotPosition: { value: new THREE.Vector3(0, 0, 0) },
1234
+ lightColor: { value: new THREE.Color('white') },
1181
1235
  cameraNear: { value: 0 },
1182
1236
  cameraFar: { value: 1 },
1183
- resolution: { value: new Vector2(0, 0) },
1237
+ resolution: { value: new THREE.Vector2(0, 0) },
1184
1238
  },
1185
1239
  transparent: true,
1186
1240
  depthWrite: false,
@@ -1247,7 +1301,7 @@ class SpotLightMaterial extends ShaderMaterial {
1247
1301
  gl_FragColor = vec4(lightColor, intensity * opacity);
1248
1302
 
1249
1303
  #include <tonemapping_fragment>
1250
- #include <encodings_fragment>
1304
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
1251
1305
  }`,
1252
1306
  });
1253
1307
  }
@@ -1280,13 +1334,256 @@ void main() {
1280
1334
  gl_FragColor = vec4(vColor, opacity);
1281
1335
 
1282
1336
  #include <tonemapping_fragment>
1283
- #include <encodings_fragment>
1337
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, '')) >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
1284
1338
  }
1285
1339
  `);
1286
1340
 
1341
+ const WireframeMaterialShaders = {
1342
+ uniforms: {
1343
+ strokeOpacity: 1,
1344
+ fillOpacity: 0.25,
1345
+ fillMix: 0,
1346
+ thickness: 0.05,
1347
+ colorBackfaces: false,
1348
+ dashInvert: true,
1349
+ dash: false,
1350
+ dashRepeats: 4,
1351
+ dashLength: 0.5,
1352
+ squeeze: false,
1353
+ squeezeMin: 0.2,
1354
+ squeezeMax: 1,
1355
+ stroke: new THREE.Color('#ff0000'),
1356
+ backfaceStroke: new THREE.Color('#0000ff'),
1357
+ fill: new THREE.Color('#00ff00'),
1358
+ },
1359
+ vertex: /* glsl */ `
1360
+ attribute vec3 barycentric;
1361
+
1362
+ varying vec3 v_edges_Barycentric;
1363
+ varying vec3 v_edges_Position;
1364
+
1365
+ void initWireframe() {
1366
+ v_edges_Barycentric = barycentric;
1367
+ v_edges_Position = position.xyz;
1368
+ }
1369
+ `,
1370
+ fragment: /* glsl */ `
1371
+ #ifndef PI
1372
+ #define PI 3.1415926535897932384626433832795
1373
+ #endif
1374
+
1375
+ varying vec3 v_edges_Barycentric;
1376
+ varying vec3 v_edges_Position;
1377
+
1378
+ uniform float strokeOpacity;
1379
+ uniform float fillOpacity;
1380
+ uniform float fillMix;
1381
+ uniform float thickness;
1382
+ uniform bool colorBackfaces;
1383
+
1384
+ // Dash
1385
+ uniform bool dashInvert;
1386
+ uniform bool dash;
1387
+ uniform bool dashOnly;
1388
+ uniform float dashRepeats;
1389
+ uniform float dashLength;
1390
+
1391
+ // Squeeze
1392
+ uniform bool squeeze;
1393
+ uniform float squeezeMin;
1394
+ uniform float squeezeMax;
1395
+
1396
+ // Colors
1397
+ uniform vec3 stroke;
1398
+ uniform vec3 backfaceStroke;
1399
+ uniform vec3 fill;
1400
+
1401
+ // This is like
1402
+ float wireframe_aastep(float threshold, float dist) {
1403
+ float afwidth = fwidth(dist) * 0.5;
1404
+ return smoothstep(threshold - afwidth, threshold + afwidth, dist);
1405
+ }
1406
+
1407
+ float wireframe_map(float value, float min1, float max1, float min2, float max2) {
1408
+ return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
1409
+ }
1410
+
1411
+ float getWireframe() {
1412
+ vec3 barycentric = v_edges_Barycentric;
1413
+
1414
+ // Distance from center of each triangle to its edges.
1415
+ float d = min(min(barycentric.x, barycentric.y), barycentric.z);
1416
+
1417
+ // for dashed rendering, we can use this to get the 0 .. 1 value of the line length
1418
+ float positionAlong = max(barycentric.x, barycentric.y);
1419
+ if (barycentric.y < barycentric.x && barycentric.y < barycentric.z) {
1420
+ positionAlong = 1.0 - positionAlong;
1421
+ }
1422
+
1423
+ // the thickness of the stroke
1424
+ float computedThickness = wireframe_map(thickness, 0.0, 1.0, 0.0, 0.34);
1425
+
1426
+ // if we want to shrink the thickness toward the center of the line segment
1427
+ if (squeeze) {
1428
+ computedThickness *= mix(squeezeMin, squeezeMax, (1.0 - sin(positionAlong * PI)));
1429
+ }
1430
+
1431
+ // Create dash pattern
1432
+ if (dash) {
1433
+ // here we offset the stroke position depending on whether it
1434
+ // should overlap or not
1435
+ float offset = 1.0 / dashRepeats * dashLength / 2.0;
1436
+ if (!dashInvert) {
1437
+ offset += 1.0 / dashRepeats / 2.0;
1438
+ }
1439
+
1440
+ // if we should animate the dash or not
1441
+ // if (dashAnimate) {
1442
+ // offset += time * 0.22;
1443
+ // }
1444
+
1445
+ // create the repeating dash pattern
1446
+ float pattern = fract((positionAlong + offset) * dashRepeats);
1447
+ computedThickness *= 1.0 - wireframe_aastep(dashLength, pattern);
1448
+ }
1449
+
1450
+ // compute the anti-aliased stroke edge
1451
+ float edge = 1.0 - wireframe_aastep(computedThickness, d);
1452
+
1453
+ return edge;
1454
+ }
1455
+ `,
1456
+ };
1457
+ const WireframeMaterial = shaderMaterial(WireframeMaterialShaders.uniforms, WireframeMaterialShaders.vertex +
1458
+ /* glsl */ `
1459
+ void main() {
1460
+ initWireframe();
1461
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
1462
+ }
1463
+ `, WireframeMaterialShaders.fragment +
1464
+ /* glsl */ `
1465
+ void main () {
1466
+ // Compute color
1467
+
1468
+ float edge = getWireframe();
1469
+ vec4 colorStroke = vec4(stroke, edge);
1470
+
1471
+ #ifdef FLIP_SIDED
1472
+ colorStroke.rgb = backfaceStroke;
1473
+ #endif
1474
+
1475
+ vec4 colorFill = vec4(fill, fillOpacity);
1476
+ vec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);
1477
+
1478
+ gl_FragColor = outColor;
1479
+ }
1480
+ `);
1481
+ function setWireframeOverride(material, uniforms) {
1482
+ material.onBeforeCompile = (shader) => {
1483
+ shader.uniforms = {
1484
+ ...shader.uniforms,
1485
+ ...uniforms,
1486
+ };
1487
+ shader.vertexShader = shader.vertexShader.replace('void main() {', `
1488
+ ${WireframeMaterialShaders.vertex}
1489
+ void main() {
1490
+ initWireframe();
1491
+ `);
1492
+ shader.fragmentShader = shader.fragmentShader.replace('void main() {', `
1493
+ ${WireframeMaterialShaders.fragment}
1494
+ void main() {
1495
+ `);
1496
+ shader.fragmentShader = shader.fragmentShader.replace('#include <color_fragment>',
1497
+ /* glsl */ `
1498
+ #include <color_fragment>
1499
+ float edge = getWireframe();
1500
+ vec4 colorStroke = vec4(stroke, edge);
1501
+ #ifdef FLIP_SIDED
1502
+ colorStroke.rgb = backfaceStroke;
1503
+ #endif
1504
+ vec4 colorFill = vec4(mix(diffuseColor.rgb, fill, fillMix), mix(diffuseColor.a, fillOpacity, fillMix));
1505
+ vec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);
1506
+
1507
+ diffuseColor.rgb = outColor.rgb;
1508
+ diffuseColor.a *= outColor.a;
1509
+ `);
1510
+ };
1511
+ material.side = THREE.DoubleSide;
1512
+ material.transparent = true;
1513
+ }
1514
+ function injectNgtsWireframeUniforms(uniformsFactory, stateFactory, { injector } = {}) {
1515
+ injector = assertInjectionContext(injectNgtsWireframeUniforms, injector);
1516
+ return runInInjectionContext(injector, () => {
1517
+ const uniforms = uniformsFactory();
1518
+ const state = computed(() => stateFactory());
1519
+ const fillOpacity = computed(() => state().fillOpacity);
1520
+ const fillMix = computed(() => state().fillMix);
1521
+ const strokeOpacity = computed(() => state().strokeOpacity);
1522
+ const thickness = computed(() => state().thickness);
1523
+ const colorBackfaces = computed(() => state().colorBackfaces);
1524
+ const dash = computed(() => state().dash);
1525
+ const dashInvert = computed(() => state().dashInvert);
1526
+ const dashRepeats = computed(() => state().dashRepeats);
1527
+ const dashLength = computed(() => state().dashLength);
1528
+ const squeeze = computed(() => state().squeeze);
1529
+ const squeezeMin = computed(() => state().squeezeMin);
1530
+ const squeezeMax = computed(() => state().squeezeMax);
1531
+ const stroke = computed(() => state().stroke);
1532
+ const fill = computed(() => state().fill);
1533
+ const backfaceStroke = computed(() => state().backfaceStroke);
1534
+ effect(() => {
1535
+ uniforms['fillOpacity'].value = fillOpacity() ?? uniforms['fillOpacity'].value;
1536
+ });
1537
+ effect(() => {
1538
+ uniforms['fillMix'].value = fillMix() ?? uniforms['fillMix'].value;
1539
+ });
1540
+ effect(() => {
1541
+ uniforms['strokeOpacity'].value = strokeOpacity() ?? uniforms['strokeOpacity'].value;
1542
+ });
1543
+ effect(() => {
1544
+ uniforms['thickness'].value = thickness() ?? uniforms['thickness'].value;
1545
+ });
1546
+ effect(() => {
1547
+ uniforms['colorBackfaces'].value = colorBackfaces() ?? uniforms['colorBackfaces'].value;
1548
+ });
1549
+ effect(() => {
1550
+ uniforms['dash'].value = dash() ?? uniforms['dash'].value;
1551
+ });
1552
+ effect(() => {
1553
+ uniforms['dashInvert'].value = dashInvert() ?? uniforms['dashInvert'].value;
1554
+ });
1555
+ effect(() => {
1556
+ uniforms['dashRepeats'].value = dashRepeats() ?? uniforms['dashRepeats'].value;
1557
+ });
1558
+ effect(() => {
1559
+ uniforms['dashLength'].value = dashLength() ?? uniforms['dashLength'].value;
1560
+ });
1561
+ effect(() => {
1562
+ uniforms['squeeze'].value = squeeze() ?? uniforms['squeeze'].value;
1563
+ });
1564
+ effect(() => {
1565
+ uniforms['squeezeMin'].value = squeezeMin() ?? uniforms['squeezeMin'].value;
1566
+ });
1567
+ effect(() => {
1568
+ uniforms['squeezeMax'].value = squeezeMax() ?? uniforms['squeezeMax'].value;
1569
+ });
1570
+ effect(() => {
1571
+ uniforms['stroke'].value = stroke() ? new THREE.Color(stroke()) : uniforms['stroke'].value;
1572
+ });
1573
+ effect(() => {
1574
+ uniforms['fill'].value = fill() ? new THREE.Color(fill()) : uniforms['fill'].value;
1575
+ });
1576
+ effect(() => {
1577
+ uniforms['backfaceStroke'].value = backfaceStroke()
1578
+ ? new THREE.Color(backfaceStroke())
1579
+ : uniforms['backfaceStroke'].value;
1580
+ });
1581
+ });
1582
+ }
1583
+
1287
1584
  /**
1288
1585
  * Generated bundle index. Do not edit.
1289
1586
  */
1290
1587
 
1291
- export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, ConvolutionMaterial, DiscardMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, NGTS_DISTORT_MATERIAL_SHADER, SoftShadowMaterial, SparklesMaterial, SpotLightMaterial, StarFieldMaterial, provideNgtsMeshDistortMaterialShader };
1588
+ export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, ConvolutionMaterial, DiscardMaterial, GridMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, NGTS_DISTORT_MATERIAL_SHADER, SoftShadowMaterial, SparklesMaterial, SpotLightMaterial, StarFieldMaterial, WireframeMaterial, WireframeMaterialShaders, createMeshDistortMaterial, injectNgtsMeshDistortMaterial, injectNgtsWireframeUniforms, provideNgtsMeshDistortMaterialShader, setWireframeOverride, shaderMaterial };
1292
1589
  //# sourceMappingURL=angular-three-soba-shaders.mjs.map