@anov/3d-ability 0.0.141 → 0.0.143

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 (257) hide show
  1. package/dist/business/Animation/motion/index.js +56 -35
  2. package/dist/business/Animation/motion/index.js.map +1 -1
  3. package/dist/business/Animation/type.js +2 -2
  4. package/dist/business/Area/Fence/FenceBase.js +187 -146
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +112 -120
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +130 -140
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +483 -267
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +26 -14
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +46 -21
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +234 -189
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +81 -52
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +79 -51
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +21 -7
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +162 -96
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +291 -208
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +22 -8
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +467 -380
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +525 -405
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +3 -69
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +242 -201
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +88 -55
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +176 -145
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +294 -196
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +3 -36
  55. package/dist/business/Mark/shader/tanhao.js.map +1 -1
  56. package/dist/business/Mark/type.js +1 -1
  57. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +58 -92
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +16 -95
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +78 -51
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.js +336 -248
  72. package/dist/business/Poi/index.js.map +1 -1
  73. package/dist/business/Poi/link/Cylinder.js +89 -56
  74. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  75. package/dist/business/Poi/link/Pyramid.js +165 -104
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.js +114 -54
  78. package/dist/business/Poi/link/index.js.map +1 -1
  79. package/dist/business/Poi/panel/index.js +373 -315
  80. package/dist/business/Poi/panel/index.js.map +1 -1
  81. package/dist/business/Poi/panel/utils.js +10 -5
  82. package/dist/business/Poi/panel/utils.js.map +1 -1
  83. package/dist/business/Poi/particle/DoubleCircle.js +107 -71
  84. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  85. package/dist/business/Poi/particle/DynamicCircle.js +111 -75
  86. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  87. package/dist/business/Poi/particle/SingleCircle.js +98 -62
  88. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  89. package/dist/business/Poi/particle/index.js +117 -49
  90. package/dist/business/Poi/particle/index.js.map +1 -1
  91. package/dist/business/Poi/shader/circle.js +3 -31
  92. package/dist/business/Poi/shader/circle.js.map +1 -1
  93. package/dist/business/Poi/shader/cylinder.js +3 -37
  94. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  95. package/dist/business/Poi/shader/doubleCircle.js +3 -55
  96. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  97. package/dist/business/Poi/shader/dynamicCircle.js +3 -67
  98. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  99. package/dist/business/Poi/title/Border.js +27 -7
  100. package/dist/business/Poi/title/Border.js.map +1 -1
  101. package/dist/business/Poi/title/Ellipse.js +27 -7
  102. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  103. package/dist/business/Poi/title/index.js +292 -208
  104. package/dist/business/Poi/title/index.js.map +1 -1
  105. package/dist/business/Poi/tools.js +17 -18
  106. package/dist/business/Poi/tools.js.map +1 -1
  107. package/dist/business/Sphere/index.js +72 -47
  108. package/dist/business/Sphere/index.js.map +1 -1
  109. package/dist/business/Spline/index.js +245 -190
  110. package/dist/business/Spline/index.js.map +1 -1
  111. package/dist/business/SplitBuilding/index.js +536 -327
  112. package/dist/business/SplitBuilding/index.js.map +1 -1
  113. package/dist/business/SplitBuilding/type.js +2 -2
  114. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
  115. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  116. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
  117. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  118. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
  119. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  120. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
  121. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  122. package/dist/business/TrafficComponents/base.js +55 -32
  123. package/dist/business/TrafficComponents/base.js.map +1 -1
  124. package/dist/business/TrafficComponents/utils.d.ts +1 -1
  125. package/dist/business/TrafficComponents/utils.js +25 -26
  126. package/dist/business/TrafficComponents/utils.js.map +1 -1
  127. package/dist/business/Utils/Curve.js +56 -40
  128. package/dist/business/Utils/Curve.js.map +1 -1
  129. package/dist/business/Utils/constant.js +1 -1
  130. package/dist/business/Utils/constant.js.map +1 -1
  131. package/dist/business/Utils/defineProps.js +14 -13
  132. package/dist/business/Utils/defineProps.js.map +1 -1
  133. package/dist/business/Utils/round-curve.js +153 -127
  134. package/dist/business/Utils/round-curve.js.map +1 -1
  135. package/dist/business/VideoPanel/index.js +319 -258
  136. package/dist/business/VideoPanel/index.js.map +1 -1
  137. package/dist/business/Water/index.js +108 -78
  138. package/dist/business/Water/index.js.map +1 -1
  139. package/dist/business/Water/types.js +1 -1
  140. package/dist/business/Water/types.js.map +1 -1
  141. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
  142. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  143. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
  144. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  145. package/dist/core/Controls/FirstViewControl/index.js +96 -84
  146. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  147. package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
  148. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  149. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  150. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  151. package/dist/core/Controls/ThirdViewControl/index.js +28 -19
  152. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  153. package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
  154. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  155. package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
  156. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  157. package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
  158. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/player.js +91 -66
  160. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  161. package/dist/core/Controls/base.js +30 -14
  162. package/dist/core/Controls/base.js.map +1 -1
  163. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
  164. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  165. package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
  166. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  167. package/dist/core/Light/PointLight/PointLightExt.js +21 -4
  168. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  169. package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
  170. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  171. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
  172. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  173. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
  174. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  175. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
  176. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  177. package/dist/core/Material/SurfaceMaterial/index.js +172 -76
  178. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  179. package/dist/core/Material/decorators.js +11 -6
  180. package/dist/core/Material/decorators.js.map +1 -1
  181. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
  182. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  183. package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
  184. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  185. package/dist/core/PostEffects/bloomPass.js +10 -17
  186. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  187. package/dist/core/PostEffects/bloomSelect.js +43 -60
  188. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  189. package/dist/core/PostEffects/colorifyPass.js +13 -17
  190. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  191. package/dist/core/PostEffects/index.js +22 -28
  192. package/dist/core/PostEffects/index.js.map +1 -1
  193. package/dist/core/PostEffects/outlinePass.js +50 -37
  194. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  195. package/dist/core/PostEffects/postprocessing.js +12 -14
  196. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  197. package/dist/core/PostEffects/saoPass.js +10 -15
  198. package/dist/core/PostEffects/saoPass.js.map +1 -1
  199. package/dist/core/PostEffects/shader/colorify.js +3 -22
  200. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  201. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
  202. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  203. package/dist/core/PostEffects/shader/mapping.js +3 -66
  204. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  205. package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
  206. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  207. package/dist/core/SceneEffect/grow/grow.js +101 -85
  208. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  209. package/dist/core/SceneEffect/grow/style_down.js +77 -60
  210. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  211. package/dist/core/SceneEffect/grow/style_up.js +81 -64
  212. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  213. package/dist/core/SceneEffect/grow/type.js +2 -2
  214. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  215. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
  216. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  217. package/dist/core/WeatherSystem/hdr/index.js +105 -69
  218. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  219. package/dist/core/WeatherSystem/index.js +124 -77
  220. package/dist/core/WeatherSystem/index.js.map +1 -1
  221. package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
  222. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  223. package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
  224. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  225. package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
  226. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  227. package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
  228. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
  230. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  231. package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
  232. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  233. package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
  234. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  235. package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
  236. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  237. package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
  238. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  239. package/dist/core/WeatherSystem/shaders/fog.js +3 -103
  240. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  241. package/dist/core/WeatherSystem/shaders/rain.js +7 -206
  242. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  243. package/dist/core/WeatherSystem/shaders/sky.js +3 -87
  244. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  245. package/dist/core/WeatherSystem/sky/index.js +135 -104
  246. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  247. package/dist/core/WeatherSystem/utils/constant.js +38 -44
  248. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  249. package/dist/core/WeatherSystem/utils/math.js +25 -18
  250. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  251. package/dist/core/WeatherSystem/utils/type.js +1 -1
  252. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  253. package/dist/core/WeatherSystem/weather/index.js +141 -96
  254. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  255. package/dist/utils/index.js +1 -1
  256. package/dist/utils/index.js.map +1 -1
  257. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- const FogShader = {
1
+ var FogShader = {
2
2
  uniforms: {
3
3
  iTime: {
4
4
  value: 0
@@ -10,108 +10,8 @@ const FogShader = {
10
10
  value: 0.5
11
11
  }
12
12
  },
13
- vertexShader: `varying highp vec2 vUv;
14
- #include <common>
15
- #include <logdepthbuf_pars_vertex>
16
- void main() {
17
- #include <logdepthbuf_vertex>
18
- vUv = uv;
19
- // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
20
- gl_Position = vec4(position, 1.0);
21
- }`,
22
- fragmentShader: `uniform vec3 fogcolor;
23
- #include <logdepthbuf_pars_fragment>
24
- uniform float iTime;
25
- uniform float alpha;
26
-
27
- varying highp vec2 vUv;
28
-
29
- float random(vec2 _st) {
30
- return fract(sin(dot(_st.xy, vec2(0.630, 0.710))) *
31
- 43759.329);
32
- }
33
-
34
- //柏林噪声
35
- float noise(vec2 _st) {
36
- vec2 i = floor(_st);
37
- vec2 f = fract(_st);
38
-
39
- float a = random(i);
40
- float b = random(i + vec2(1.0, 0.0));
41
- float c = random(i + vec2(0.0, 1.0));
42
- float d = random(i + vec2(1.0, 1.0));
43
-
44
- vec2 u = f * f * (3.0 - 2.0 * f);
45
-
46
- return mix(a, b, u.x) +
47
- (c - a) * u.y * (1.0 - u.x) +
48
- (d - b) * u.x * u.y;
49
- }
50
-
51
- #define NUM_OCTAVES 6
52
-
53
- //布朗分形
54
- float fbm(vec2 _st) {
55
- float v = 0.0;
56
- float a = 0.5;
57
- vec2 shift = vec2(100.0, 100.0);
58
- mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.50));
59
-
60
- for(int i = 0; i < NUM_OCTAVES; ++i) {
61
- v += a * noise(_st);
62
- //_st = mul(_st, rot) * 2.0 + shift;
63
- _st = _st * rot * 2.0 + shift;
64
- a *= 0.5;
65
- }
66
- return v;
67
- }
68
-
69
- vec3 FilterColor(vec3 color1, vec3 color2) {
70
- //滤色
71
- return 1.0 - (1.0 - color1) * (1.0 - color2);
72
- }
73
-
74
- // -----------------------------------------------闪电
75
-
76
- void mainImage(out vec4 fragColor, in vec2 fragCoord) {
77
- vec2 uv = vUv;
78
- vec3 backcolor = vec3(0.);
79
-
80
- uv.y = 1.0 - uv.y;
81
-
82
- vec2 st = uv * 20.0;
83
-
84
- //iTime=iTime*0.3;
85
- float time=iTime*0.5;
86
- st.x += time * 0.1;
87
- st.y -= time * 0.2;
88
-
89
- vec3 color;
90
- vec2 q;
91
-
92
- q.x = fbm(st + 0.00 * time * 5.0);
93
- q.y = fbm(st + vec2(1.0, 1.0));
94
-
95
- vec2 r;
96
- r.x = fbm(st + 1.0 * q + vec2(1.7, 9.2) + 0.15 * time * 5.0);
97
- r.y = fbm(st + 1.0 * q + vec2(8.3, 2.8) + 0.126 * time * 5.0);
98
-
99
- float f = fbm(st + r);
100
-
101
- color = mix(vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0), clamp((f * f) * 4.0, 0.0, 1.0));
102
- color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(q), 0.0, 1.0));
103
- color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(r.x), 0.0, 1.0));
104
- vec3 cloud = vec3((f * f * f + 0.3 * f * f + 0.5 * f) * color);
105
-
106
- fragColor = vec4(FilterColor(cloud * fogcolor, backcolor), alpha);
107
-
108
- }
109
-
110
- void main() {
111
- #include <logdepthbuf_fragment>
112
- vec2 fragCoord = gl_FragCoord.xy;
113
- mainImage(gl_FragColor, fragCoord);
114
- }`
13
+ vertexShader: "varying highp vec2 vUv;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <logdepthbuf_vertex>\n vUv = uv;\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_Position = vec4(position, 1.0);\n }",
14
+ fragmentShader: "uniform vec3 fogcolor;\n #include <logdepthbuf_pars_fragment>\n uniform float iTime;\n uniform float alpha;\n \n varying highp vec2 vUv;\n \n float random(vec2 _st) {\n return fract(sin(dot(_st.xy, vec2(0.630, 0.710))) *\n 43759.329);\n }\n \n //\u67CF\u6797\u566A\u58F0\n float noise(vec2 _st) {\n vec2 i = floor(_st);\n vec2 f = fract(_st);\n \n float a = random(i);\n float b = random(i + vec2(1.0, 0.0));\n float c = random(i + vec2(0.0, 1.0));\n float d = random(i + vec2(1.0, 1.0));\n \n vec2 u = f * f * (3.0 - 2.0 * f);\n \n return mix(a, b, u.x) +\n (c - a) * u.y * (1.0 - u.x) +\n (d - b) * u.x * u.y;\n }\n \n #define NUM_OCTAVES 6\n \n //\u5E03\u6717\u5206\u5F62\n float fbm(vec2 _st) {\n float v = 0.0;\n float a = 0.5;\n vec2 shift = vec2(100.0, 100.0);\n mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.50));\n \n for(int i = 0; i < NUM_OCTAVES; ++i) {\n v += a * noise(_st);\n //_st = mul(_st, rot) * 2.0 + shift;\n _st = _st * rot * 2.0 + shift;\n a *= 0.5;\n }\n return v;\n }\n \n vec3 FilterColor(vec3 color1, vec3 color2) {\n //\u6EE4\u8272\n return 1.0 - (1.0 - color1) * (1.0 - color2);\n }\n \n // -----------------------------------------------\u95EA\u7535\n \n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n vec3 backcolor = vec3(0.);\n \n uv.y = 1.0 - uv.y;\n \n vec2 st = uv * 20.0;\n \n //iTime=iTime*0.3;\n float time=iTime*0.5;\n st.x += time * 0.1;\n st.y -= time * 0.2;\n \n vec3 color;\n vec2 q;\n \n q.x = fbm(st + 0.00 * time * 5.0);\n q.y = fbm(st + vec2(1.0, 1.0));\n \n vec2 r;\n r.x = fbm(st + 1.0 * q + vec2(1.7, 9.2) + 0.15 * time * 5.0);\n r.y = fbm(st + 1.0 * q + vec2(8.3, 2.8) + 0.126 * time * 5.0);\n \n float f = fbm(st + r);\n \n color = mix(vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0), clamp((f * f) * 4.0, 0.0, 1.0));\n color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(q), 0.0, 1.0));\n color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(r.x), 0.0, 1.0));\n vec3 cloud = vec3((f * f * f + 0.3 * f * f + 0.5 * f) * color);\n \n fragColor = vec4(FilterColor(cloud * fogcolor, backcolor), alpha);\n \n }\n \n void main() {\n #include <logdepthbuf_fragment>\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }"
115
15
  };
116
16
  export default FogShader;
117
17
  //# sourceMappingURL=fog.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FogShader","uniforms","iTime","value","fogcolor","alpha","vertexShader","fragmentShader"],"sources":["../../../../src/core/WeatherSystem/shaders/fog.ts"],"sourcesContent":["const FogShader = {\n uniforms: {\n iTime: { value: 0 },\n fogcolor: { value: [0.9, 0.9, 0.9] },\n alpha: { value: 0.5 },\n },\n vertexShader: `varying highp vec2 vUv;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <logdepthbuf_vertex>\n vUv = uv;\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_Position = vec4(position, 1.0);\n }`,\n fragmentShader: `uniform vec3 fogcolor;\n #include <logdepthbuf_pars_fragment>\n uniform float iTime;\n uniform float alpha;\n \n varying highp vec2 vUv;\n \n float random(vec2 _st) {\n return fract(sin(dot(_st.xy, vec2(0.630, 0.710))) *\n 43759.329);\n }\n \n //柏林噪声\n float noise(vec2 _st) {\n vec2 i = floor(_st);\n vec2 f = fract(_st);\n \n float a = random(i);\n float b = random(i + vec2(1.0, 0.0));\n float c = random(i + vec2(0.0, 1.0));\n float d = random(i + vec2(1.0, 1.0));\n \n vec2 u = f * f * (3.0 - 2.0 * f);\n \n return mix(a, b, u.x) +\n (c - a) * u.y * (1.0 - u.x) +\n (d - b) * u.x * u.y;\n }\n \n #define NUM_OCTAVES 6\n \n //布朗分形\n float fbm(vec2 _st) {\n float v = 0.0;\n float a = 0.5;\n vec2 shift = vec2(100.0, 100.0);\n mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.50));\n \n for(int i = 0; i < NUM_OCTAVES; ++i) {\n v += a * noise(_st);\n //_st = mul(_st, rot) * 2.0 + shift;\n _st = _st * rot * 2.0 + shift;\n a *= 0.5;\n }\n return v;\n }\n \n vec3 FilterColor(vec3 color1, vec3 color2) {\n //滤色\n return 1.0 - (1.0 - color1) * (1.0 - color2);\n }\n \n // -----------------------------------------------闪电\n \n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n vec3 backcolor = vec3(0.);\n \n uv.y = 1.0 - uv.y;\n \n vec2 st = uv * 20.0;\n \n //iTime=iTime*0.3;\n float time=iTime*0.5;\n st.x += time * 0.1;\n st.y -= time * 0.2;\n \n vec3 color;\n vec2 q;\n \n q.x = fbm(st + 0.00 * time * 5.0);\n q.y = fbm(st + vec2(1.0, 1.0));\n \n vec2 r;\n r.x = fbm(st + 1.0 * q + vec2(1.7, 9.2) + 0.15 * time * 5.0);\n r.y = fbm(st + 1.0 * q + vec2(8.3, 2.8) + 0.126 * time * 5.0);\n \n float f = fbm(st + r);\n \n color = mix(vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0), clamp((f * f) * 4.0, 0.0, 1.0));\n color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(q), 0.0, 1.0));\n color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(r.x), 0.0, 1.0));\n vec3 cloud = vec3((f * f * f + 0.3 * f * f + 0.5 * f) * color);\n \n fragColor = vec4(FilterColor(cloud * fogcolor, backcolor), alpha);\n \n }\n \n void main() {\n #include <logdepthbuf_fragment>\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }`,\n}\n\nexport default FogShader"],"mappings":"AAAA,MAAMA,SAAS,GAAG;EAChBC,QAAQ,EAAE;IACRC,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAE,CAAC;IACnBC,QAAQ,EAAE;MAAED,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IAAE,CAAC;IACpCE,KAAK,EAAE;MAAEF,KAAK,EAAE;IAAI;EACtB,CAAC;EACDG,YAAY,EAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;EACJC,cAAc,EAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,eAAeP,SAAS"}
1
+ {"version":3,"names":["FogShader","uniforms","iTime","value","fogcolor","alpha","vertexShader","fragmentShader"],"sources":["../../../../src/core/WeatherSystem/shaders/fog.ts"],"sourcesContent":["const FogShader = {\n uniforms: {\n iTime: { value: 0 },\n fogcolor: { value: [0.9, 0.9, 0.9] },\n alpha: { value: 0.5 },\n },\n vertexShader: `varying highp vec2 vUv;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <logdepthbuf_vertex>\n vUv = uv;\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_Position = vec4(position, 1.0);\n }`,\n fragmentShader: `uniform vec3 fogcolor;\n #include <logdepthbuf_pars_fragment>\n uniform float iTime;\n uniform float alpha;\n \n varying highp vec2 vUv;\n \n float random(vec2 _st) {\n return fract(sin(dot(_st.xy, vec2(0.630, 0.710))) *\n 43759.329);\n }\n \n //柏林噪声\n float noise(vec2 _st) {\n vec2 i = floor(_st);\n vec2 f = fract(_st);\n \n float a = random(i);\n float b = random(i + vec2(1.0, 0.0));\n float c = random(i + vec2(0.0, 1.0));\n float d = random(i + vec2(1.0, 1.0));\n \n vec2 u = f * f * (3.0 - 2.0 * f);\n \n return mix(a, b, u.x) +\n (c - a) * u.y * (1.0 - u.x) +\n (d - b) * u.x * u.y;\n }\n \n #define NUM_OCTAVES 6\n \n //布朗分形\n float fbm(vec2 _st) {\n float v = 0.0;\n float a = 0.5;\n vec2 shift = vec2(100.0, 100.0);\n mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.50));\n \n for(int i = 0; i < NUM_OCTAVES; ++i) {\n v += a * noise(_st);\n //_st = mul(_st, rot) * 2.0 + shift;\n _st = _st * rot * 2.0 + shift;\n a *= 0.5;\n }\n return v;\n }\n \n vec3 FilterColor(vec3 color1, vec3 color2) {\n //滤色\n return 1.0 - (1.0 - color1) * (1.0 - color2);\n }\n \n // -----------------------------------------------闪电\n \n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n vec3 backcolor = vec3(0.);\n \n uv.y = 1.0 - uv.y;\n \n vec2 st = uv * 20.0;\n \n //iTime=iTime*0.3;\n float time=iTime*0.5;\n st.x += time * 0.1;\n st.y -= time * 0.2;\n \n vec3 color;\n vec2 q;\n \n q.x = fbm(st + 0.00 * time * 5.0);\n q.y = fbm(st + vec2(1.0, 1.0));\n \n vec2 r;\n r.x = fbm(st + 1.0 * q + vec2(1.7, 9.2) + 0.15 * time * 5.0);\n r.y = fbm(st + 1.0 * q + vec2(8.3, 2.8) + 0.126 * time * 5.0);\n \n float f = fbm(st + r);\n \n color = mix(vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0), clamp((f * f) * 4.0, 0.0, 1.0));\n color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(q), 0.0, 1.0));\n color = mix(color, vec3(1.0, 1.0, 1.0), clamp(length(r.x), 0.0, 1.0));\n vec3 cloud = vec3((f * f * f + 0.3 * f * f + 0.5 * f) * color);\n \n fragColor = vec4(FilterColor(cloud * fogcolor, backcolor), alpha);\n \n }\n \n void main() {\n #include <logdepthbuf_fragment>\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }`,\n}\n\nexport default FogShader"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,QAAQ,EAAE;IACRC,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAE,CAAC;IACnBC,QAAQ,EAAE;MAAED,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IAAE,CAAC;IACpCE,KAAK,EAAE;MAAEF,KAAK,EAAE;IAAI;EACtB,CAAC;EACDG,YAAY,0SAQR;EACJC,cAAc;AA6FhB,CAAC;AAED,eAAeP,SAAS"}
@@ -1,4 +1,4 @@
1
- const RainShader = {
1
+ var RainShader = {
2
2
  uniforms: {
3
3
  texture1: {
4
4
  value: null
@@ -32,211 +32,12 @@ const RainShader = {
32
32
  value: -0.0
33
33
  } // 下雨倾斜角度-0.1
34
34
  },
35
- vertexShaderNear: `
36
- varying highp vec2 vUv;
37
- uniform vec3 cameraPos;
38
- varying float vDistance;
39
- #include <common>
40
- #include <logdepthbuf_pars_vertex>
41
- void main() {
42
- #include <begin_vertex>
43
- #include <project_vertex>
44
- #include <logdepthbuf_vertex>
45
- vUv = uv;
46
- vec4 worldPosition4 = modelMatrix * vec4(position, 1.0);
47
- vec3 worldPosition = worldPosition4.xyz;
48
- vDistance = distance(worldPosition, cameraPos);
49
-
50
- }`,
51
- fragmentShaderNear: `
52
- #include <logdepthbuf_pars_fragment>
53
- #define PI 3.14159265359
54
-
55
- uniform sampler2D texture1;
56
- uniform sampler2D texture2rain;
57
-
58
- uniform float iTime;
59
- uniform float size;
60
- uniform float snowT1density;
61
- uniform float rainT1density;
62
- uniform float snowSpeed;
63
-
64
- varying highp vec2 vUv;
65
- varying float vDistance;
66
-
67
- void main(){
68
-
69
- #include <logdepthbuf_fragment>
70
- vec2 uv= vUv*size;
71
-
72
- vec2 sownMove= vUv*size;
73
- sownMove.y+=iTime*0.04*snowSpeed;
74
-
75
- vec2 rainMove= uv*10.;
76
- rainMove.y+=iTime*0.2*snowSpeed;
77
-
78
- vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;
79
- vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;
80
-
81
- if (vDistance < 100.) {
82
- gl_FragColor = vec4(1);
83
- }else{gl_FragColor = vec4((T2),1.);}
84
-
85
- //gl_FragColor = vec4((T1+T2),1.);
86
-
87
- //gl_FragColor = vec4(1.,0.,0.,0.5);
88
- }`,
89
- vertexShaderFar: `
90
- varying highp vec2 vUv;
91
- varying vec3 vPosition;
92
- uniform vec3 cameraPos;
93
- #include <common>
94
- #include <logdepthbuf_pars_vertex>
95
- void main() {
96
- #include <begin_vertex>
97
- #include <project_vertex>
98
- #include <logdepthbuf_vertex>
99
- vUv = uv;
100
-
101
- // gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
102
-
103
- vec4 modelPosition = modelMatrix * vec4(position, 1.0);
104
- modelPosition.xyz += (cameraPos*1. );
105
- gl_Position = projectionMatrix * viewMatrix * modelPosition;
106
-
107
- }`,
108
- fragmentShaderFar: `
109
- #include <logdepthbuf_pars_fragment>
110
- #define PI 3.14159265359
111
-
112
- uniform sampler2D texture1;
113
- uniform sampler2D texture2rain;
114
-
115
- uniform float iTime;
116
- uniform float size;
117
- uniform float snowT1density;
118
- uniform float rainT1density;
119
- uniform float snowSpeed;
120
-
121
- varying highp vec2 vUv;
122
-
123
- void main(){
124
-
125
- #include <logdepthbuf_fragment>
126
- vec2 uv= vUv*size;
127
- /*
128
- float angle = radians(10.0);
129
- mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));
130
- uv = rotationMatrix * (uv - vec2(0.5, 0.5)) + vec2(0.5, 0.5);
131
- *//////水平旋转
132
- /*
133
- float distortAmount = 0.1; // 控制扭曲的程度
134
- uv.x = uv.x + distortAmount * sin(uv.y * 20.0);
135
- *//////扭曲
136
-
137
- // float perspectiveStrength = -0.2; // 控制透视强度
138
- // uv.y = mix(1.0 -uv.y, uv.y, pow(uv.y, perspectiveStrength));
139
-
140
-
141
- vec2 sownMove= vUv*size;
142
- sownMove.y+=iTime*0.04*snowSpeed;
143
- //sownMove.x+=sin(iTime*0.3)*0.001*snowSpeed;
144
-
145
- vec2 rainMove= uv;
146
- rainMove.y+=iTime*0.2*snowSpeed;
147
-
148
- vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;
149
- vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;
150
-
151
- gl_FragColor = vec4((T1+T2),1.);
152
- //gl_FragColor = vec4(1.,0.,0.,0.5);
153
- }`,
154
- vertexShader2d: `
155
- varying highp vec2 vUv;
156
- varying float vPitch;
157
- #include <common>
158
- #include <logdepthbuf_pars_vertex>
159
- void main() {
160
- // #include <begin_vertex>
161
- // #include <project_vertex>
162
- #include <logdepthbuf_vertex>
163
- vUv = uv;
164
- // 从视图矩阵中提取相机的朝向
165
- vec3 viewDir = normalize(vec3(
166
- viewMatrix[0][2], // 视图矩阵的第三列
167
- viewMatrix[1][2],
168
- viewMatrix[2][2]
169
- ));
170
-
171
- // 计算俯仰角 (与y轴的夹角)
172
- // asin返回弧度值 (-π/2 到 π/2)
173
- vPitch = asin(viewDir.y);
174
- // pitch = 0 (平视) -> 1.0
175
- // pitch = ±π/2 (完全俯视/仰视) -> 0.0
176
- vPitch = cos(vPitch)*0.3;
177
- // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
178
- gl_Position = vec4(position, 1.0);
179
- }`,
180
- fragmentShader2d: `
181
- #include <logdepthbuf_pars_fragment>
182
- uniform float iTime;
183
- uniform float snowSpeed;
184
- varying float vDistance;
185
- varying vec2 vUv;
186
- varying float vPitch;
187
- uniform float rainSpeed;//下雨速度
188
- uniform float rainAngle;//下雨倾斜角度
189
- float PI = 3.1415926;
190
- //随机数
191
- float random(in vec2 uv) {
192
- return fract(sin(dot(uv.xy, vec2(12.9898, 78.233))) *
193
- 43758.5453123);
194
- }
195
- //噪声函数
196
- float noise(in vec2 uv) {
197
- vec2 i = floor(uv);
198
- vec2 f = fract(uv);
199
- f = f * f * (3. - 2. * f);
200
-
201
- float lb = random(i + vec2(0., 0.));
202
- float rb = random(i + vec2(1., 0.));
203
- float lt = random(i + vec2(0., 1.));
204
- float rt = random(i + vec2(1., 1.));
205
-
206
- return mix(mix(lb, rb, f.x), mix(lt, rt, f.x), f.y);
207
- }
208
- //下雨效果
209
- float rain(vec2 uv) {
210
- float travelTime = (iTime * 0.05*snowSpeed) + 0.1;
211
-
212
- vec2 tiling = vec2(1., .01);
213
- vec2 offset = vec2(travelTime * 0.5 + uv.x * 0.2, travelTime * 0.2);
214
-
215
- vec2 st = uv * tiling + offset;
216
-
217
- float rain = 0.1;
218
- float f = fract(noise(st * 200.5) * noise(st * 125.5) * rainSpeed);
219
- f = clamp(pow(abs(f), 15.0) * 1.5 * (rain * rain * 125.0), 0.0, 0.25);
220
- return f;
221
- }
222
- //旋转角度
223
- mat2 rotate2d(float angle) {
224
- return mat2(cos(angle), -sin(angle), sin(angle), cos(angle));
225
- }
226
- void main(){
227
-
228
- #include <logdepthbuf_fragment>
229
-
230
- mat2 a = rotate2d(rainAngle * PI);
231
- float rain = rain(vUv * a*vec2(200.,400.));
232
- if(rain <= 0.0) {
233
- discard;
234
- return;
235
- }
236
- vec3 col = vec3(1.0);
237
- gl_FragColor = vec4(col, rain*vPitch);
238
-
239
- }`
35
+ vertexShaderNear: "\n varying highp vec2 vUv;\n uniform vec3 cameraPos;\n varying float vDistance;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n vec4 worldPosition4 = modelMatrix * vec4(position, 1.0);\n vec3 worldPosition = worldPosition4.xyz;\n vDistance = distance(worldPosition, cameraPos);\n\n }",
36
+ fragmentShaderNear: " \n #include <logdepthbuf_pars_fragment>\n #define PI 3.14159265359\n\n uniform sampler2D texture1;\n uniform sampler2D texture2rain;\n\n uniform float iTime;\n uniform float size;\n uniform float snowT1density;\n uniform float rainT1density;\n uniform float snowSpeed;\n\n varying highp vec2 vUv;\n varying float vDistance;\n \n void main(){\n\n #include <logdepthbuf_fragment>\n vec2 uv= vUv*size;\n\n vec2 sownMove= vUv*size;\n sownMove.y+=iTime*0.04*snowSpeed;\n\n vec2 rainMove= uv*10.;\n rainMove.y+=iTime*0.2*snowSpeed;\n \n vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;\n vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;\n\n if (vDistance < 100.) {\n gl_FragColor = vec4(1);\n }else{gl_FragColor = vec4((T2),1.);}\n\n //gl_FragColor = vec4((T1+T2),1.);\n \n //gl_FragColor = vec4(1.,0.,0.,0.5);\n }",
37
+ vertexShaderFar: "\n varying highp vec2 vUv;\n varying vec3 vPosition;\n uniform vec3 cameraPos;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n \n // gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.xyz += (cameraPos*1. );\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n\n }",
38
+ fragmentShaderFar: " \n #include <logdepthbuf_pars_fragment>\n #define PI 3.14159265359\n\n uniform sampler2D texture1;\n uniform sampler2D texture2rain;\n\n uniform float iTime;\n uniform float size;\n uniform float snowT1density;\n uniform float rainT1density;\n uniform float snowSpeed;\n\n varying highp vec2 vUv;\n\n void main(){\n\n #include <logdepthbuf_fragment>\n vec2 uv= vUv*size;\n/* \n float angle = radians(10.0);\nmat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\nuv = rotationMatrix * (uv - vec2(0.5, 0.5)) + vec2(0.5, 0.5);\n*//////\u6C34\u5E73\u65CB\u8F6C\n/*\nfloat distortAmount = 0.1; // \u63A7\u5236\u626D\u66F2\u7684\u7A0B\u5EA6\nuv.x = uv.x + distortAmount * sin(uv.y * 20.0);\n*//////\u626D\u66F2\n\n// float perspectiveStrength = -0.2; // \u63A7\u5236\u900F\u89C6\u5F3A\u5EA6\n// uv.y = mix(1.0 -uv.y, uv.y, pow(uv.y, perspectiveStrength));\n\n\n vec2 sownMove= vUv*size;\n sownMove.y+=iTime*0.04*snowSpeed;\n //sownMove.x+=sin(iTime*0.3)*0.001*snowSpeed;\n\n vec2 rainMove= uv;\n rainMove.y+=iTime*0.2*snowSpeed;\n \n vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;\n vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;\n\n gl_FragColor = vec4((T1+T2),1.);\n //gl_FragColor = vec4(1.,0.,0.,0.5);\n }",
39
+ vertexShader2d: "\n varying highp vec2 vUv;\n varying float vPitch;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n // #include <begin_vertex>\n // #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n // \u4ECE\u89C6\u56FE\u77E9\u9635\u4E2D\u63D0\u53D6\u76F8\u673A\u7684\u671D\u5411\n vec3 viewDir = normalize(vec3(\n viewMatrix[0][2], // \u89C6\u56FE\u77E9\u9635\u7684\u7B2C\u4E09\u5217\n viewMatrix[1][2],\n viewMatrix[2][2]\n ));\n \n // \u8BA1\u7B97\u4FEF\u4EF0\u89D2 (\u4E0Ey\u8F74\u7684\u5939\u89D2)\n // asin\u8FD4\u56DE\u5F27\u5EA6\u503C (-\u03C0/2 \u5230 \u03C0/2)\n vPitch = asin(viewDir.y);\n // pitch = 0 (\u5E73\u89C6) -> 1.0\n // pitch = \xB1\u03C0/2 (\u5B8C\u5168\u4FEF\u89C6/\u4EF0\u89C6) -> 0.0\n vPitch = cos(vPitch)*0.3;\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_Position = vec4(position, 1.0);\n }",
40
+ fragmentShader2d: " \n #include <logdepthbuf_pars_fragment>\n uniform float iTime;\n uniform float snowSpeed;\n varying float vDistance;\n varying vec2 vUv;\n varying float vPitch;\nuniform float rainSpeed;//\u4E0B\u96E8\u901F\u5EA6\nuniform float rainAngle;//\u4E0B\u96E8\u503E\u659C\u89D2\u5EA6\nfloat PI = 3.1415926;\n //\u968F\u673A\u6570\nfloat random(in vec2 uv) {\n return fract(sin(dot(uv.xy, vec2(12.9898, 78.233))) *\n 43758.5453123);\n}\n //\u566A\u58F0\u51FD\u6570\nfloat noise(in vec2 uv) {\n vec2 i = floor(uv);\n vec2 f = fract(uv);\n f = f * f * (3. - 2. * f);\n\n float lb = random(i + vec2(0., 0.));\n float rb = random(i + vec2(1., 0.));\n float lt = random(i + vec2(0., 1.));\n float rt = random(i + vec2(1., 1.));\n\n return mix(mix(lb, rb, f.x), mix(lt, rt, f.x), f.y);\n}\n//\u4E0B\u96E8\u6548\u679C\nfloat rain(vec2 uv) {\n float travelTime = (iTime * 0.05*snowSpeed) + 0.1;\n\n vec2 tiling = vec2(1., .01);\n vec2 offset = vec2(travelTime * 0.5 + uv.x * 0.2, travelTime * 0.2);\n\n vec2 st = uv * tiling + offset;\n\n float rain = 0.1;\n float f = fract(noise(st * 200.5) * noise(st * 125.5) * rainSpeed);\n f = clamp(pow(abs(f), 15.0) * 1.5 * (rain * rain * 125.0), 0.0, 0.25);\n return f;\n}\n//\u65CB\u8F6C\u89D2\u5EA6\nmat2 rotate2d(float angle) {\n return mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n}\n void main(){\n\n #include <logdepthbuf_fragment>\n\n mat2 a = rotate2d(rainAngle * PI);\n float rain = rain(vUv * a*vec2(200.,400.));\n if(rain <= 0.0) {\n discard;\n return;\n }\n vec3 col = vec3(1.0);\n gl_FragColor = vec4(col, rain*vPitch);\n\n }"
240
41
  };
241
42
  export default RainShader;
242
43
  //# sourceMappingURL=rain.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RainShader","uniforms","texture1","value","texture2rain","iTime","size","snowT1density","rainT1density","snowSpeed","cameraPos","rainSpeed","rainAngle","vertexShaderNear","fragmentShaderNear","vertexShaderFar","fragmentShaderFar","vertexShader2d","fragmentShader2d"],"sources":["../../../../src/core/WeatherSystem/shaders/rain.ts"],"sourcesContent":["const RainShader = {\n uniforms: {\n texture1: { value: null },\n texture2rain: { value: null },\n iTime: { value: 0 },\n size: { value: 5.0 },\n snowT1density: { value: 0.5 },\n rainT1density: { value: 0.5 },\n snowSpeed: { value: 1.0 },\n cameraPos: { value: null },\n rainSpeed: { value: 3.0 }, // 下雨速度\n rainAngle: { value: -0.0 }, // 下雨倾斜角度-0.1\n },\n vertexShaderNear: `\n varying highp vec2 vUv;\n uniform vec3 cameraPos;\n varying float vDistance;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n vec4 worldPosition4 = modelMatrix * vec4(position, 1.0);\n vec3 worldPosition = worldPosition4.xyz;\n vDistance = distance(worldPosition, cameraPos);\n\n }`,\n fragmentShaderNear: ` \n #include <logdepthbuf_pars_fragment>\n #define PI 3.14159265359\n\n uniform sampler2D texture1;\n uniform sampler2D texture2rain;\n\n uniform float iTime;\n uniform float size;\n uniform float snowT1density;\n uniform float rainT1density;\n uniform float snowSpeed;\n\n varying highp vec2 vUv;\n varying float vDistance;\n \n void main(){\n\n #include <logdepthbuf_fragment>\n vec2 uv= vUv*size;\n\n vec2 sownMove= vUv*size;\n sownMove.y+=iTime*0.04*snowSpeed;\n\n vec2 rainMove= uv*10.;\n rainMove.y+=iTime*0.2*snowSpeed;\n \n vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;\n vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;\n\n if (vDistance < 100.) {\n gl_FragColor = vec4(1);\n }else{gl_FragColor = vec4((T2),1.);}\n\n //gl_FragColor = vec4((T1+T2),1.);\n \n //gl_FragColor = vec4(1.,0.,0.,0.5);\n }`,\n\n vertexShaderFar: `\n varying highp vec2 vUv;\n varying vec3 vPosition;\n uniform vec3 cameraPos;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n \n // gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.xyz += (cameraPos*1. );\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n\n }`,\n fragmentShaderFar: ` \n #include <logdepthbuf_pars_fragment>\n #define PI 3.14159265359\n\n uniform sampler2D texture1;\n uniform sampler2D texture2rain;\n\n uniform float iTime;\n uniform float size;\n uniform float snowT1density;\n uniform float rainT1density;\n uniform float snowSpeed;\n\n varying highp vec2 vUv;\n\n void main(){\n\n #include <logdepthbuf_fragment>\n vec2 uv= vUv*size;\n/* \n float angle = radians(10.0);\nmat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\nuv = rotationMatrix * (uv - vec2(0.5, 0.5)) + vec2(0.5, 0.5);\n*//////水平旋转\n/*\nfloat distortAmount = 0.1; // 控制扭曲的程度\nuv.x = uv.x + distortAmount * sin(uv.y * 20.0);\n*//////扭曲\n\n// float perspectiveStrength = -0.2; // 控制透视强度\n// uv.y = mix(1.0 -uv.y, uv.y, pow(uv.y, perspectiveStrength));\n\n\n vec2 sownMove= vUv*size;\n sownMove.y+=iTime*0.04*snowSpeed;\n //sownMove.x+=sin(iTime*0.3)*0.001*snowSpeed;\n\n vec2 rainMove= uv;\n rainMove.y+=iTime*0.2*snowSpeed;\n \n vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;\n vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;\n\n gl_FragColor = vec4((T1+T2),1.);\n //gl_FragColor = vec4(1.,0.,0.,0.5);\n }`,\n\n vertexShader2d: `\n varying highp vec2 vUv;\n varying float vPitch;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n // #include <begin_vertex>\n // #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n // 从视图矩阵中提取相机的朝向\n vec3 viewDir = normalize(vec3(\n viewMatrix[0][2], // 视图矩阵的第三列\n viewMatrix[1][2],\n viewMatrix[2][2]\n ));\n \n // 计算俯仰角 (与y轴的夹角)\n // asin返回弧度值 (-π/2 到 π/2)\n vPitch = asin(viewDir.y);\n // pitch = 0 (平视) -> 1.0\n // pitch = ±π/2 (完全俯视/仰视) -> 0.0\n vPitch = cos(vPitch)*0.3;\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_Position = vec4(position, 1.0);\n }`,\n fragmentShader2d: ` \n #include <logdepthbuf_pars_fragment>\n uniform float iTime;\n uniform float snowSpeed;\n varying float vDistance;\n varying vec2 vUv;\n varying float vPitch;\nuniform float rainSpeed;//下雨速度\nuniform float rainAngle;//下雨倾斜角度\nfloat PI = 3.1415926;\n //随机数\nfloat random(in vec2 uv) {\n return fract(sin(dot(uv.xy, vec2(12.9898, 78.233))) *\n 43758.5453123);\n}\n //噪声函数\nfloat noise(in vec2 uv) {\n vec2 i = floor(uv);\n vec2 f = fract(uv);\n f = f * f * (3. - 2. * f);\n\n float lb = random(i + vec2(0., 0.));\n float rb = random(i + vec2(1., 0.));\n float lt = random(i + vec2(0., 1.));\n float rt = random(i + vec2(1., 1.));\n\n return mix(mix(lb, rb, f.x), mix(lt, rt, f.x), f.y);\n}\n//下雨效果\nfloat rain(vec2 uv) {\n float travelTime = (iTime * 0.05*snowSpeed) + 0.1;\n\n vec2 tiling = vec2(1., .01);\n vec2 offset = vec2(travelTime * 0.5 + uv.x * 0.2, travelTime * 0.2);\n\n vec2 st = uv * tiling + offset;\n\n float rain = 0.1;\n float f = fract(noise(st * 200.5) * noise(st * 125.5) * rainSpeed);\n f = clamp(pow(abs(f), 15.0) * 1.5 * (rain * rain * 125.0), 0.0, 0.25);\n return f;\n}\n//旋转角度\nmat2 rotate2d(float angle) {\n return mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n}\n void main(){\n\n #include <logdepthbuf_fragment>\n\n mat2 a = rotate2d(rainAngle * PI);\n float rain = rain(vUv * a*vec2(200.,400.));\n if(rain <= 0.0) {\n discard;\n return;\n }\n vec3 col = vec3(1.0);\n gl_FragColor = vec4(col, rain*vPitch);\n\n }`,\n}\n\nexport default RainShader"],"mappings":"AAAA,MAAMA,UAAU,GAAG;EACjBC,QAAQ,EAAE;IACRC,QAAQ,EAAE;MAAEC,KAAK,EAAE;IAAK,CAAC;IACzBC,YAAY,EAAE;MAAED,KAAK,EAAE;IAAK,CAAC;IAC7BE,KAAK,EAAE;MAAEF,KAAK,EAAE;IAAE,CAAC;IACnBG,IAAI,EAAE;MAAEH,KAAK,EAAE;IAAI,CAAC;IACpBI,aAAa,EAAE;MAAEJ,KAAK,EAAE;IAAI,CAAC;IAC7BK,aAAa,EAAE;MAAEL,KAAK,EAAE;IAAI,CAAC;IAC7BM,SAAS,EAAE;MAAEN,KAAK,EAAE;IAAI,CAAC;IACzBO,SAAS,EAAE;MAAEP,KAAK,EAAE;IAAK,CAAC;IAC1BQ,SAAS,EAAE;MAAER,KAAK,EAAE;IAAI,CAAC;IAAE;IAC3BS,SAAS,EAAE;MAAET,KAAK,EAAE,CAAC;IAAI,CAAC,CAAE;EAC9B,CAAC;EACDU,gBAAgB,EAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;EACFC,kBAAkB,EAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;EAEFC,eAAe,EAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;EACFC,iBAAiB,EAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;EAEFC,cAAc,EAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;EACJC,gBAAgB,EAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,eAAelB,UAAU"}
1
+ {"version":3,"names":["RainShader","uniforms","texture1","value","texture2rain","iTime","size","snowT1density","rainT1density","snowSpeed","cameraPos","rainSpeed","rainAngle","vertexShaderNear","fragmentShaderNear","vertexShaderFar","fragmentShaderFar","vertexShader2d","fragmentShader2d"],"sources":["../../../../src/core/WeatherSystem/shaders/rain.ts"],"sourcesContent":["const RainShader = {\n uniforms: {\n texture1: { value: null },\n texture2rain: { value: null },\n iTime: { value: 0 },\n size: { value: 5.0 },\n snowT1density: { value: 0.5 },\n rainT1density: { value: 0.5 },\n snowSpeed: { value: 1.0 },\n cameraPos: { value: null },\n rainSpeed: { value: 3.0 }, // 下雨速度\n rainAngle: { value: -0.0 }, // 下雨倾斜角度-0.1\n },\n vertexShaderNear: `\n varying highp vec2 vUv;\n uniform vec3 cameraPos;\n varying float vDistance;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n vec4 worldPosition4 = modelMatrix * vec4(position, 1.0);\n vec3 worldPosition = worldPosition4.xyz;\n vDistance = distance(worldPosition, cameraPos);\n\n }`,\n fragmentShaderNear: ` \n #include <logdepthbuf_pars_fragment>\n #define PI 3.14159265359\n\n uniform sampler2D texture1;\n uniform sampler2D texture2rain;\n\n uniform float iTime;\n uniform float size;\n uniform float snowT1density;\n uniform float rainT1density;\n uniform float snowSpeed;\n\n varying highp vec2 vUv;\n varying float vDistance;\n \n void main(){\n\n #include <logdepthbuf_fragment>\n vec2 uv= vUv*size;\n\n vec2 sownMove= vUv*size;\n sownMove.y+=iTime*0.04*snowSpeed;\n\n vec2 rainMove= uv*10.;\n rainMove.y+=iTime*0.2*snowSpeed;\n \n vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;\n vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;\n\n if (vDistance < 100.) {\n gl_FragColor = vec4(1);\n }else{gl_FragColor = vec4((T2),1.);}\n\n //gl_FragColor = vec4((T1+T2),1.);\n \n //gl_FragColor = vec4(1.,0.,0.,0.5);\n }`,\n\n vertexShaderFar: `\n varying highp vec2 vUv;\n varying vec3 vPosition;\n uniform vec3 cameraPos;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n \n // gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.xyz += (cameraPos*1. );\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n\n }`,\n fragmentShaderFar: ` \n #include <logdepthbuf_pars_fragment>\n #define PI 3.14159265359\n\n uniform sampler2D texture1;\n uniform sampler2D texture2rain;\n\n uniform float iTime;\n uniform float size;\n uniform float snowT1density;\n uniform float rainT1density;\n uniform float snowSpeed;\n\n varying highp vec2 vUv;\n\n void main(){\n\n #include <logdepthbuf_fragment>\n vec2 uv= vUv*size;\n/* \n float angle = radians(10.0);\nmat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\nuv = rotationMatrix * (uv - vec2(0.5, 0.5)) + vec2(0.5, 0.5);\n*//////水平旋转\n/*\nfloat distortAmount = 0.1; // 控制扭曲的程度\nuv.x = uv.x + distortAmount * sin(uv.y * 20.0);\n*//////扭曲\n\n// float perspectiveStrength = -0.2; // 控制透视强度\n// uv.y = mix(1.0 -uv.y, uv.y, pow(uv.y, perspectiveStrength));\n\n\n vec2 sownMove= vUv*size;\n sownMove.y+=iTime*0.04*snowSpeed;\n //sownMove.x+=sin(iTime*0.3)*0.001*snowSpeed;\n\n vec2 rainMove= uv;\n rainMove.y+=iTime*0.2*snowSpeed;\n \n vec3 T1 = texture(texture1, sownMove).rgb*snowT1density;\n vec3 T2 = texture(texture2rain, rainMove).rgb*rainT1density;\n\n gl_FragColor = vec4((T1+T2),1.);\n //gl_FragColor = vec4(1.,0.,0.,0.5);\n }`,\n\n vertexShader2d: `\n varying highp vec2 vUv;\n varying float vPitch;\n #include <common>\n #include <logdepthbuf_pars_vertex>\n void main() {\n // #include <begin_vertex>\n // #include <project_vertex>\n #include <logdepthbuf_vertex>\n vUv = uv;\n // 从视图矩阵中提取相机的朝向\n vec3 viewDir = normalize(vec3(\n viewMatrix[0][2], // 视图矩阵的第三列\n viewMatrix[1][2],\n viewMatrix[2][2]\n ));\n \n // 计算俯仰角 (与y轴的夹角)\n // asin返回弧度值 (-π/2 到 π/2)\n vPitch = asin(viewDir.y);\n // pitch = 0 (平视) -> 1.0\n // pitch = ±π/2 (完全俯视/仰视) -> 0.0\n vPitch = cos(vPitch)*0.3;\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_Position = vec4(position, 1.0);\n }`,\n fragmentShader2d: ` \n #include <logdepthbuf_pars_fragment>\n uniform float iTime;\n uniform float snowSpeed;\n varying float vDistance;\n varying vec2 vUv;\n varying float vPitch;\nuniform float rainSpeed;//下雨速度\nuniform float rainAngle;//下雨倾斜角度\nfloat PI = 3.1415926;\n //随机数\nfloat random(in vec2 uv) {\n return fract(sin(dot(uv.xy, vec2(12.9898, 78.233))) *\n 43758.5453123);\n}\n //噪声函数\nfloat noise(in vec2 uv) {\n vec2 i = floor(uv);\n vec2 f = fract(uv);\n f = f * f * (3. - 2. * f);\n\n float lb = random(i + vec2(0., 0.));\n float rb = random(i + vec2(1., 0.));\n float lt = random(i + vec2(0., 1.));\n float rt = random(i + vec2(1., 1.));\n\n return mix(mix(lb, rb, f.x), mix(lt, rt, f.x), f.y);\n}\n//下雨效果\nfloat rain(vec2 uv) {\n float travelTime = (iTime * 0.05*snowSpeed) + 0.1;\n\n vec2 tiling = vec2(1., .01);\n vec2 offset = vec2(travelTime * 0.5 + uv.x * 0.2, travelTime * 0.2);\n\n vec2 st = uv * tiling + offset;\n\n float rain = 0.1;\n float f = fract(noise(st * 200.5) * noise(st * 125.5) * rainSpeed);\n f = clamp(pow(abs(f), 15.0) * 1.5 * (rain * rain * 125.0), 0.0, 0.25);\n return f;\n}\n//旋转角度\nmat2 rotate2d(float angle) {\n return mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n}\n void main(){\n\n #include <logdepthbuf_fragment>\n\n mat2 a = rotate2d(rainAngle * PI);\n float rain = rain(vUv * a*vec2(200.,400.));\n if(rain <= 0.0) {\n discard;\n return;\n }\n vec3 col = vec3(1.0);\n gl_FragColor = vec4(col, rain*vPitch);\n\n }`,\n}\n\nexport default RainShader"],"mappings":"AAAA,IAAMA,UAAU,GAAG;EACjBC,QAAQ,EAAE;IACRC,QAAQ,EAAE;MAAEC,KAAK,EAAE;IAAK,CAAC;IACzBC,YAAY,EAAE;MAAED,KAAK,EAAE;IAAK,CAAC;IAC7BE,KAAK,EAAE;MAAEF,KAAK,EAAE;IAAE,CAAC;IACnBG,IAAI,EAAE;MAAEH,KAAK,EAAE;IAAI,CAAC;IACpBI,aAAa,EAAE;MAAEJ,KAAK,EAAE;IAAI,CAAC;IAC7BK,aAAa,EAAE;MAAEL,KAAK,EAAE;IAAI,CAAC;IAC7BM,SAAS,EAAE;MAAEN,KAAK,EAAE;IAAI,CAAC;IACzBO,SAAS,EAAE;MAAEP,KAAK,EAAE;IAAK,CAAC;IAC1BQ,SAAS,EAAE;MAAER,KAAK,EAAE;IAAI,CAAC;IAAE;IAC3BS,SAAS,EAAE;MAAET,KAAK,EAAE,CAAC;IAAI,CAAC,CAAE;EAC9B,CAAC;EACDU,gBAAgB,odAed;EACFC,kBAAkB,m5BAqChB;EAEFC,eAAe,kjBAkBb;EACFC,iBAAiB,izCA6Cf;EAEFC,cAAc,4+BAyBV;EACJC,gBAAgB;AA4DlB,CAAC;AAED,eAAelB,UAAU"}
@@ -1,4 +1,4 @@
1
- const SkyShader = {
1
+ var SkyShader = {
2
2
  uniforms: {
3
3
  skyTime: {
4
4
  value: 7.0
@@ -7,92 +7,8 @@ const SkyShader = {
7
7
  value: 1.0
8
8
  }
9
9
  },
10
- vertexShader: `varying highp vec2 vUv;
11
- void main() {
12
- vUv = uv;
13
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
14
- }`,
15
- fragmentShader: `
16
- uniform float skyTime;
17
- uniform float skyOpacity;
18
-
19
- varying vec2 vUv;
20
-
21
- vec4 midnightColor = vec4(0.0602, 0.0919, 0.2500, 0.6); // 午夜0.05, 0.05, 0.15
22
- vec4 dawnColor = vec4(0.4005, 0.5432, 0.8510, 0.8); // 凌晨0.3, 0.4, 0.6
23
- vec4 morningColor = vec4(0.4416, 0.7050, 1.0000, 0.7); // 早晨0.5, 0.7, 1.0
24
- vec4 noonColor = vec4(0.5842, 0.7033, 1.0000, 0.6); // 中午0.3, 0.6, 1.0
25
- vec4 afternoonColor = vec4(0.3844, 0.6402, 1.0000, 0.6); // 下午
26
- vec4 duskColor = vec4(0.7050, 0.4721, 0.5914, 0.6); // 黄昏
27
- vec4 eveningColor = vec4(0.5983, 0.3761, 0.4871, 0.7); // 傍晚
28
- vec4 nightColor = vec4(0.0947, 0.0947, 0.1500, 0.6); // 夜晚
29
-
30
- // sRGB到线性空间的转换函数
31
- vec3 sRGBToLinear(vec3 srgb) {
32
- return pow(srgb, vec3(2.2));
33
- }
34
-
35
- vec4 getSkyColor(float time) {
36
- vec4 timeColor;
37
- if (time < 3.0) {
38
- // 午夜到凌晨
39
- timeColor = mix(midnightColor, dawnColor, time / 3.0);
40
- } else if (time < 6.0) {
41
- // 凌晨到早晨
42
- timeColor = mix(dawnColor, morningColor, (time - 3.0) / 3.0);
43
- } else if (time < 9.0) {
44
- // 早晨到中午
45
- timeColor = mix(morningColor, noonColor, (time - 6.0) / 3.0);
46
- } else if (time < 15.0) {
47
- // 中午到下午
48
- timeColor = mix(noonColor, afternoonColor, (time - 9.0) / 6.0);
49
- } else if (time < 18.0) {
50
- // 下午到黄昏
51
- timeColor = mix(afternoonColor, duskColor, (time - 15.0) / 3.0);
52
- } else if (time < 19.5) {
53
- // 黄昏到傍晚
54
- timeColor = mix(duskColor, eveningColor, (time - 18.0) / 1.5);
55
- } else if (time < 21.0) {
56
- // 傍晚到夜晚
57
- timeColor = mix(eveningColor, nightColor, (time - 19.5) / 1.5);
58
- } else {
59
- // 夜晚到午夜
60
- timeColor = mix(nightColor, midnightColor, (time - 21.0) / 3.0);
61
- }
62
- return timeColor;
63
- }
64
-
65
- float distanceTo(vec2 src, vec2 dst) {
66
- float dx = src.x - dst.x;
67
- float dy = src.y - dst.y;
68
- float dv = dx * dx + dy * dy;
69
- return sqrt(dv);
70
- }
71
- void mainImage(out vec4 fragColor, in vec2 fragCoord) {
72
- // vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75
73
- // vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803
74
- vec4 skyColor1 = vec4(0., 0., 0., 1.);///2d5a7c,.176,.352,.486,,164c75
75
- vec4 skyColor2 = vec4(.95, .95, .95, 1.);///9cbfcd,.611,.749,.803
76
-
77
- float sphere1 = (pow(distanceTo(vec2(0.5, 0.5), vUv), 2.8)+0.2) * 2.8;
78
-
79
- fragColor = skyColor1;
80
- vec4 timeColor = getSkyColor(skyTime);
81
- // vec4 color = mix(skyColor1, skyColor2, sphere1)*timeColor;
82
- float sphere1_clamp = clamp(sphere1, 0.0, 1.0);
83
- vec3 color = vec3(sphere1)*timeColor.rgb;
84
-
85
- // fragColor=vec4(color,timeColor.a) ;
86
- // 将颜色转换到线性空间以补偿OutputPass的sRGB转换
87
- color = sRGBToLinear(color);
88
- fragColor=vec4((color+vec3(0.05))*1.2,0.97) ;
89
-
90
- }
91
-
92
- void main() {
93
- vec2 fragCoord = gl_FragCoord.xy;
94
- mainImage(gl_FragColor, fragCoord);
95
- }`
10
+ vertexShader: "varying highp vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }",
11
+ fragmentShader: "\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.0602, 0.0919, 0.2500, 0.6); // \u5348\u591C0.05, 0.05, 0.15\n vec4 dawnColor = vec4(0.4005, 0.5432, 0.8510, 0.8); // \u51CC\u66680.3, 0.4, 0.6\n vec4 morningColor = vec4(0.4416, 0.7050, 1.0000, 0.7); // \u65E9\u66680.5, 0.7, 1.0\n vec4 noonColor = vec4(0.5842, 0.7033, 1.0000, 0.6); // \u4E2D\u53480.3, 0.6, 1.0\n vec4 afternoonColor = vec4(0.3844, 0.6402, 1.0000, 0.6); // \u4E0B\u5348\n vec4 duskColor = vec4(0.7050, 0.4721, 0.5914, 0.6); // \u9EC4\u660F\n vec4 eveningColor = vec4(0.5983, 0.3761, 0.4871, 0.7); // \u508D\u665A\n vec4 nightColor = vec4(0.0947, 0.0947, 0.1500, 0.6); // \u591C\u665A\n \n // sRGB\u5230\u7EBF\u6027\u7A7A\u95F4\u7684\u8F6C\u6362\u51FD\u6570\n vec3 sRGBToLinear(vec3 srgb) {\n return pow(srgb, vec3(2.2));\n }\n\n vec4 getSkyColor(float time) {\n vec4 timeColor;\n if (time < 3.0) {\n // \u5348\u591C\u5230\u51CC\u6668\n timeColor = mix(midnightColor, dawnColor, time / 3.0);\n } else if (time < 6.0) {\n // \u51CC\u6668\u5230\u65E9\u6668\n timeColor = mix(dawnColor, morningColor, (time - 3.0) / 3.0);\n } else if (time < 9.0) {\n // \u65E9\u6668\u5230\u4E2D\u5348\n timeColor = mix(morningColor, noonColor, (time - 6.0) / 3.0);\n } else if (time < 15.0) {\n // \u4E2D\u5348\u5230\u4E0B\u5348\n timeColor = mix(noonColor, afternoonColor, (time - 9.0) / 6.0);\n } else if (time < 18.0) {\n // \u4E0B\u5348\u5230\u9EC4\u660F\n timeColor = mix(afternoonColor, duskColor, (time - 15.0) / 3.0);\n } else if (time < 19.5) {\n // \u9EC4\u660F\u5230\u508D\u665A\n timeColor = mix(duskColor, eveningColor, (time - 18.0) / 1.5);\n } else if (time < 21.0) {\n // \u508D\u665A\u5230\u591C\u665A\n timeColor = mix(eveningColor, nightColor, (time - 19.5) / 1.5);\n } else {\n // \u591C\u665A\u5230\u5348\u591C\n timeColor = mix(nightColor, midnightColor, (time - 21.0) / 3.0);\n }\n return timeColor;\n }\n\n float distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n }\n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n // vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n // vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n vec4 skyColor1 = vec4(0., 0., 0., 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.95, .95, .95, 1.);///9cbfcd,.611,.749,.803\n \n float sphere1 = (pow(distanceTo(vec2(0.5, 0.5), vUv), 2.8)+0.2) * 2.8;\n \n fragColor = skyColor1;\n vec4 timeColor = getSkyColor(skyTime);\n // vec4 color = mix(skyColor1, skyColor2, sphere1)*timeColor;\n float sphere1_clamp = clamp(sphere1, 0.0, 1.0);\n vec3 color = vec3(sphere1)*timeColor.rgb;\n\n // fragColor=vec4(color,timeColor.a) ;\n // \u5C06\u989C\u8272\u8F6C\u6362\u5230\u7EBF\u6027\u7A7A\u95F4\u4EE5\u8865\u507FOutputPass\u7684sRGB\u8F6C\u6362\n color = sRGBToLinear(color);\n fragColor=vec4((color+vec3(0.05))*1.2,0.97) ;\n \n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }"
96
12
  };
97
13
  export default SkyShader;
98
14
  //# sourceMappingURL=sky.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SkyShader","uniforms","skyTime","value","skyOpacity","vertexShader","fragmentShader"],"sources":["../../../../src/core/WeatherSystem/shaders/sky.ts"],"sourcesContent":["const SkyShader = {\n uniforms: {\n skyTime: { value: 7.0 },\n skyOpacity: { value: 1.0 },\n },\n vertexShader: `varying highp vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }`,\n fragmentShader: `\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.0602, 0.0919, 0.2500, 0.6); // 午夜0.05, 0.05, 0.15\n vec4 dawnColor = vec4(0.4005, 0.5432, 0.8510, 0.8); // 凌晨0.3, 0.4, 0.6\n vec4 morningColor = vec4(0.4416, 0.7050, 1.0000, 0.7); // 早晨0.5, 0.7, 1.0\n vec4 noonColor = vec4(0.5842, 0.7033, 1.0000, 0.6); // 中午0.3, 0.6, 1.0\n vec4 afternoonColor = vec4(0.3844, 0.6402, 1.0000, 0.6); // 下午\n vec4 duskColor = vec4(0.7050, 0.4721, 0.5914, 0.6); // 黄昏\n vec4 eveningColor = vec4(0.5983, 0.3761, 0.4871, 0.7); // 傍晚\n vec4 nightColor = vec4(0.0947, 0.0947, 0.1500, 0.6); // 夜晚\n \n // sRGB到线性空间的转换函数\n vec3 sRGBToLinear(vec3 srgb) {\n return pow(srgb, vec3(2.2));\n }\n\n vec4 getSkyColor(float time) {\n vec4 timeColor;\n if (time < 3.0) {\n // 午夜到凌晨\n timeColor = mix(midnightColor, dawnColor, time / 3.0);\n } else if (time < 6.0) {\n // 凌晨到早晨\n timeColor = mix(dawnColor, morningColor, (time - 3.0) / 3.0);\n } else if (time < 9.0) {\n // 早晨到中午\n timeColor = mix(morningColor, noonColor, (time - 6.0) / 3.0);\n } else if (time < 15.0) {\n // 中午到下午\n timeColor = mix(noonColor, afternoonColor, (time - 9.0) / 6.0);\n } else if (time < 18.0) {\n // 下午到黄昏\n timeColor = mix(afternoonColor, duskColor, (time - 15.0) / 3.0);\n } else if (time < 19.5) {\n // 黄昏到傍晚\n timeColor = mix(duskColor, eveningColor, (time - 18.0) / 1.5);\n } else if (time < 21.0) {\n // 傍晚到夜晚\n timeColor = mix(eveningColor, nightColor, (time - 19.5) / 1.5);\n } else {\n // 夜晚到午夜\n timeColor = mix(nightColor, midnightColor, (time - 21.0) / 3.0);\n }\n return timeColor;\n }\n\n float distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n }\n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n // vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n // vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n vec4 skyColor1 = vec4(0., 0., 0., 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.95, .95, .95, 1.);///9cbfcd,.611,.749,.803\n \n float sphere1 = (pow(distanceTo(vec2(0.5, 0.5), vUv), 2.8)+0.2) * 2.8;\n \n fragColor = skyColor1;\n vec4 timeColor = getSkyColor(skyTime);\n // vec4 color = mix(skyColor1, skyColor2, sphere1)*timeColor;\n float sphere1_clamp = clamp(sphere1, 0.0, 1.0);\n vec3 color = vec3(sphere1)*timeColor.rgb;\n\n // fragColor=vec4(color,timeColor.a) ;\n // 将颜色转换到线性空间以补偿OutputPass的sRGB转换\n color = sRGBToLinear(color);\n fragColor=vec4((color+vec3(0.05))*1.2,0.97) ;\n \n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }`,\n}\n\nexport default SkyShader"],"mappings":"AAAA,MAAMA,SAAS,GAAG;EAChBC,QAAQ,EAAE;IACRC,OAAO,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAC;IACvBC,UAAU,EAAE;MAAED,KAAK,EAAE;IAAI;EAC3B,CAAC;EACDE,YAAY,EAAG;AACjB;AACA;AACA;AACA,IAAI;EACFC,cAAc,EAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,eAAeN,SAAS"}
1
+ {"version":3,"names":["SkyShader","uniforms","skyTime","value","skyOpacity","vertexShader","fragmentShader"],"sources":["../../../../src/core/WeatherSystem/shaders/sky.ts"],"sourcesContent":["const SkyShader = {\n uniforms: {\n skyTime: { value: 7.0 },\n skyOpacity: { value: 1.0 },\n },\n vertexShader: `varying highp vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }`,\n fragmentShader: `\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.0602, 0.0919, 0.2500, 0.6); // 午夜0.05, 0.05, 0.15\n vec4 dawnColor = vec4(0.4005, 0.5432, 0.8510, 0.8); // 凌晨0.3, 0.4, 0.6\n vec4 morningColor = vec4(0.4416, 0.7050, 1.0000, 0.7); // 早晨0.5, 0.7, 1.0\n vec4 noonColor = vec4(0.5842, 0.7033, 1.0000, 0.6); // 中午0.3, 0.6, 1.0\n vec4 afternoonColor = vec4(0.3844, 0.6402, 1.0000, 0.6); // 下午\n vec4 duskColor = vec4(0.7050, 0.4721, 0.5914, 0.6); // 黄昏\n vec4 eveningColor = vec4(0.5983, 0.3761, 0.4871, 0.7); // 傍晚\n vec4 nightColor = vec4(0.0947, 0.0947, 0.1500, 0.6); // 夜晚\n \n // sRGB到线性空间的转换函数\n vec3 sRGBToLinear(vec3 srgb) {\n return pow(srgb, vec3(2.2));\n }\n\n vec4 getSkyColor(float time) {\n vec4 timeColor;\n if (time < 3.0) {\n // 午夜到凌晨\n timeColor = mix(midnightColor, dawnColor, time / 3.0);\n } else if (time < 6.0) {\n // 凌晨到早晨\n timeColor = mix(dawnColor, morningColor, (time - 3.0) / 3.0);\n } else if (time < 9.0) {\n // 早晨到中午\n timeColor = mix(morningColor, noonColor, (time - 6.0) / 3.0);\n } else if (time < 15.0) {\n // 中午到下午\n timeColor = mix(noonColor, afternoonColor, (time - 9.0) / 6.0);\n } else if (time < 18.0) {\n // 下午到黄昏\n timeColor = mix(afternoonColor, duskColor, (time - 15.0) / 3.0);\n } else if (time < 19.5) {\n // 黄昏到傍晚\n timeColor = mix(duskColor, eveningColor, (time - 18.0) / 1.5);\n } else if (time < 21.0) {\n // 傍晚到夜晚\n timeColor = mix(eveningColor, nightColor, (time - 19.5) / 1.5);\n } else {\n // 夜晚到午夜\n timeColor = mix(nightColor, midnightColor, (time - 21.0) / 3.0);\n }\n return timeColor;\n }\n\n float distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n }\n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n // vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n // vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n vec4 skyColor1 = vec4(0., 0., 0., 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.95, .95, .95, 1.);///9cbfcd,.611,.749,.803\n \n float sphere1 = (pow(distanceTo(vec2(0.5, 0.5), vUv), 2.8)+0.2) * 2.8;\n \n fragColor = skyColor1;\n vec4 timeColor = getSkyColor(skyTime);\n // vec4 color = mix(skyColor1, skyColor2, sphere1)*timeColor;\n float sphere1_clamp = clamp(sphere1, 0.0, 1.0);\n vec3 color = vec3(sphere1)*timeColor.rgb;\n\n // fragColor=vec4(color,timeColor.a) ;\n // 将颜色转换到线性空间以补偿OutputPass的sRGB转换\n color = sRGBToLinear(color);\n fragColor=vec4((color+vec3(0.05))*1.2,0.97) ;\n \n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }`,\n}\n\nexport default SkyShader"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,QAAQ,EAAE;IACRC,OAAO,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAC;IACvBC,UAAU,EAAE;MAAED,KAAK,EAAE;IAAI;EAC3B,CAAC;EACDE,YAAY,iJAIV;EACFC,cAAc;AAiFhB,CAAC;AAED,eAAeN,SAAS"}