@anov/3d-ability 0.0.139 → 0.0.141

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 (265) hide show
  1. package/dist/business/Animation/motion/index.js +35 -56
  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 +146 -187
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +120 -112
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +140 -130
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +267 -483
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +14 -26
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +21 -46
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +189 -234
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +52 -81
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +51 -79
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +7 -21
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +96 -162
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +208 -291
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +8 -22
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +380 -467
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +405 -525
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +69 -3
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +201 -242
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +55 -88
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +145 -176
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +196 -294
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +36 -3
  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 +377 -551
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +92 -58
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +95 -16
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +51 -78
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.d.ts +5 -0
  72. package/dist/business/Poi/index.js +256 -295
  73. package/dist/business/Poi/index.js.map +1 -1
  74. package/dist/business/Poi/link/Cylinder.js +56 -89
  75. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  76. package/dist/business/Poi/link/Pyramid.js +104 -165
  77. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  78. package/dist/business/Poi/link/index.d.ts +1 -1
  79. package/dist/business/Poi/link/index.js +54 -114
  80. package/dist/business/Poi/link/index.js.map +1 -1
  81. package/dist/business/Poi/panel/index.d.ts +124 -0
  82. package/dist/business/Poi/panel/index.js +474 -0
  83. package/dist/business/Poi/panel/index.js.map +1 -0
  84. package/dist/business/Poi/panel/interfaces.d.ts +67 -0
  85. package/dist/business/Poi/panel/interfaces.js +2 -0
  86. package/dist/business/Poi/panel/interfaces.js.map +1 -0
  87. package/dist/business/Poi/panel/utils.d.ts +72 -0
  88. package/dist/business/Poi/panel/utils.js +126 -0
  89. package/dist/business/Poi/panel/utils.js.map +1 -0
  90. package/dist/business/Poi/particle/DoubleCircle.js +71 -107
  91. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  92. package/dist/business/Poi/particle/DynamicCircle.js +75 -111
  93. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  94. package/dist/business/Poi/particle/SingleCircle.js +62 -98
  95. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  96. package/dist/business/Poi/particle/index.js +49 -117
  97. package/dist/business/Poi/particle/index.js.map +1 -1
  98. package/dist/business/Poi/shader/circle.js +31 -3
  99. package/dist/business/Poi/shader/circle.js.map +1 -1
  100. package/dist/business/Poi/shader/cylinder.js +37 -3
  101. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  102. package/dist/business/Poi/shader/doubleCircle.js +55 -3
  103. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  104. package/dist/business/Poi/shader/dynamicCircle.js +67 -3
  105. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  106. package/dist/business/Poi/title/Border.js +7 -27
  107. package/dist/business/Poi/title/Border.js.map +1 -1
  108. package/dist/business/Poi/title/Ellipse.js +7 -27
  109. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  110. package/dist/business/Poi/title/index.js +208 -292
  111. package/dist/business/Poi/title/index.js.map +1 -1
  112. package/dist/business/Poi/tools.js +22 -19
  113. package/dist/business/Poi/tools.js.map +1 -1
  114. package/dist/business/Poi/types.d.ts +3 -0
  115. package/dist/business/Poi/types.js.map +1 -1
  116. package/dist/business/Sphere/index.js +47 -72
  117. package/dist/business/Sphere/index.js.map +1 -1
  118. package/dist/business/Spline/index.js +190 -245
  119. package/dist/business/Spline/index.js.map +1 -1
  120. package/dist/business/SplitBuilding/index.js +327 -536
  121. package/dist/business/SplitBuilding/index.js.map +1 -1
  122. package/dist/business/SplitBuilding/type.js +2 -2
  123. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
  124. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  125. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
  126. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  127. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
  128. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  129. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
  130. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  131. package/dist/business/TrafficComponents/base.js +32 -55
  132. package/dist/business/TrafficComponents/base.js.map +1 -1
  133. package/dist/business/TrafficComponents/utils.js +25 -24
  134. package/dist/business/TrafficComponents/utils.js.map +1 -1
  135. package/dist/business/Utils/Curve.js +40 -56
  136. package/dist/business/Utils/Curve.js.map +1 -1
  137. package/dist/business/Utils/constant.js +1 -1
  138. package/dist/business/Utils/constant.js.map +1 -1
  139. package/dist/business/Utils/defineProps.js +13 -14
  140. package/dist/business/Utils/defineProps.js.map +1 -1
  141. package/dist/business/Utils/round-curve.js +127 -153
  142. package/dist/business/Utils/round-curve.js.map +1 -1
  143. package/dist/business/VideoPanel/index.js +258 -319
  144. package/dist/business/VideoPanel/index.js.map +1 -1
  145. package/dist/business/Water/index.js +78 -108
  146. package/dist/business/Water/index.js.map +1 -1
  147. package/dist/business/Water/types.js +1 -1
  148. package/dist/business/Water/types.js.map +1 -1
  149. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
  150. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  151. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
  152. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  153. package/dist/core/Controls/FirstViewControl/index.js +84 -96
  154. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  155. package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
  156. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  157. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  158. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/index.js +19 -28
  160. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  161. package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
  162. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  163. package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
  164. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  165. package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
  166. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  167. package/dist/core/Controls/ThirdViewControl/player.js +66 -91
  168. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  169. package/dist/core/Controls/base.js +14 -30
  170. package/dist/core/Controls/base.js.map +1 -1
  171. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
  172. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  173. package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
  174. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  175. package/dist/core/Light/PointLight/PointLightExt.js +4 -21
  176. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  177. package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
  178. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  179. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
  180. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  181. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
  182. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  183. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
  184. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  185. package/dist/core/Material/SurfaceMaterial/index.js +76 -172
  186. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  187. package/dist/core/Material/decorators.js +6 -11
  188. package/dist/core/Material/decorators.js.map +1 -1
  189. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
  190. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  191. package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
  192. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  193. package/dist/core/PostEffects/bloomPass.js +17 -10
  194. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  195. package/dist/core/PostEffects/bloomSelect.js +60 -43
  196. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  197. package/dist/core/PostEffects/colorifyPass.js +17 -13
  198. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  199. package/dist/core/PostEffects/index.js +28 -22
  200. package/dist/core/PostEffects/index.js.map +1 -1
  201. package/dist/core/PostEffects/outlinePass.js +37 -50
  202. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  203. package/dist/core/PostEffects/postprocessing.js +14 -12
  204. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  205. package/dist/core/PostEffects/saoPass.js +15 -10
  206. package/dist/core/PostEffects/saoPass.js.map +1 -1
  207. package/dist/core/PostEffects/shader/colorify.js +22 -3
  208. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  209. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
  210. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  211. package/dist/core/PostEffects/shader/mapping.js +66 -3
  212. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  213. package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
  214. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  215. package/dist/core/SceneEffect/grow/grow.js +85 -101
  216. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  217. package/dist/core/SceneEffect/grow/style_down.js +60 -77
  218. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  219. package/dist/core/SceneEffect/grow/style_up.js +64 -81
  220. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  221. package/dist/core/SceneEffect/grow/type.js +2 -2
  222. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  223. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
  224. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  225. package/dist/core/WeatherSystem/hdr/index.js +69 -105
  226. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  227. package/dist/core/WeatherSystem/index.js +77 -124
  228. package/dist/core/WeatherSystem/index.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
  230. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  231. package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
  232. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  233. package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
  234. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  235. package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
  236. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  237. package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
  238. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  239. package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
  240. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  241. package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
  242. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  243. package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
  244. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  245. package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
  246. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  247. package/dist/core/WeatherSystem/shaders/fog.js +103 -3
  248. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  249. package/dist/core/WeatherSystem/shaders/rain.js +206 -7
  250. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  251. package/dist/core/WeatherSystem/shaders/sky.js +87 -3
  252. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  253. package/dist/core/WeatherSystem/sky/index.js +104 -135
  254. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  255. package/dist/core/WeatherSystem/utils/constant.js +44 -38
  256. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  257. package/dist/core/WeatherSystem/utils/math.js +18 -25
  258. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  259. package/dist/core/WeatherSystem/utils/type.js +1 -1
  260. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  261. package/dist/core/WeatherSystem/weather/index.js +96 -141
  262. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  263. package/dist/utils/index.js +1 -1
  264. package/dist/utils/index.js.map +1 -1
  265. package/package.json +3 -3
@@ -1,12 +1,16 @@
1
1
  import { Color, Layers, MeshBasicMaterial, ShaderMaterial, SpriteMaterial, Vector2, lib, use, utils } from '@anov/3d-core';
2
- var EffectComposer = lib.EffectComposer,
3
- RenderPass = lib.RenderPass,
4
- UnrealBloomPass = lib.UnrealBloomPass,
5
- ShaderPass = lib.ShaderPass,
6
- GammaCorrectionShader = lib.GammaCorrectionShader,
7
- CopyShader = lib.CopyShader,
8
- FXAAShader = lib.FXAAShader;
9
- var storeManagement = utils.storeManagement;
2
+ const {
3
+ EffectComposer,
4
+ RenderPass,
5
+ UnrealBloomPass,
6
+ ShaderPass,
7
+ GammaCorrectionShader,
8
+ CopyShader,
9
+ FXAAShader
10
+ } = lib;
11
+ const {
12
+ storeManagement
13
+ } = utils;
10
14
  /**
11
15
  * @file createBloomSelectedTool
12
16
  * todo 待优化
@@ -17,37 +21,36 @@ var storeManagement = utils.storeManagement;
17
21
  * @param highParams
18
22
  * @returns
19
23
  */
20
- export var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
21
- var _use$useScene = use.useScene(),
22
- scene = _use$useScene.scene,
23
- camera = _use$useScene.camera,
24
- renderer = _use$useScene.renderer;
25
- var _ref = highParams || {},
26
- _ref$strength = _ref.strength,
27
- strength = _ref$strength === void 0 ? 1.5 : _ref$strength,
28
- _ref$radius = _ref.radius,
29
- radius = _ref$radius === void 0 ? 0.4 : _ref$radius,
30
- _ref$threshold = _ref.threshold,
31
- threshold = _ref$threshold === void 0 ? 0.85 : _ref$threshold;
32
- var composer = storeManagement.get('composer');
24
+ export const createBloomSelectedTool = highParams => {
25
+ const {
26
+ scene,
27
+ camera,
28
+ renderer
29
+ } = use.useScene();
30
+ const {
31
+ strength = 1.5,
32
+ radius = 0.4,
33
+ threshold = 0.85
34
+ } = highParams || {};
35
+ const composer = storeManagement.get('composer');
33
36
  if (!scene || !camera || !renderer) throw new Error('scene or camera is not defined,');
34
37
 
35
38
  // @ts-ignore
36
39
  composer.isNeedRender = false;
37
- var BLOOM_SCENE = 1;
38
- var bloomLayer = new Layers();
40
+ const BLOOM_SCENE = 1;
41
+ const bloomLayer = new Layers();
39
42
  bloomLayer.set(BLOOM_SCENE);
40
- var renderScene = new RenderPass(scene, camera);
41
- var bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold);
42
- var bloomComposer = new EffectComposer(renderer);
43
+ const renderScene = new RenderPass(scene, camera);
44
+ const bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold);
45
+ const bloomComposer = new EffectComposer(renderer);
43
46
  bloomComposer.renderToScreen = false;
44
47
  bloomComposer.addPass(renderScene);
45
48
  bloomComposer.addPass(bloomPass);
46
- var effectCopy = new ShaderPass(CopyShader);
49
+ const effectCopy = new ShaderPass(CopyShader);
47
50
  effectCopy.renderToScreen = true;
48
- var effectFXAA = new ShaderPass(FXAAShader);
51
+ const effectFXAA = new ShaderPass(FXAAShader);
49
52
  effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight);
50
- var mixPass = new ShaderPass(new ShaderMaterial({
53
+ const mixPass = new ShaderPass(new ShaderMaterial({
51
54
  uniforms: {
52
55
  baseTexture: {
53
56
  value: null
@@ -56,28 +59,42 @@ export var createBloomSelectedTool = function createBloomSelectedTool(highParams
56
59
  value: bloomComposer.renderTarget2.texture
57
60
  }
58
61
  },
59
- vertexShader: "\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n ",
60
- fragmentShader: "\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n ",
62
+ vertexShader: `
63
+ varying vec2 vUv;
64
+ void main() {
65
+ vUv = uv;
66
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
67
+ }
68
+ `,
69
+ fragmentShader: `
70
+ uniform sampler2D baseTexture;
71
+ uniform sampler2D bloomTexture;
72
+ varying vec2 vUv;
73
+
74
+ void main() {
75
+ gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );
76
+ }
77
+ `,
61
78
  defines: {}
62
79
  }), 'baseTexture');
63
80
  mixPass.needsSwap = true;
64
- var gammaCorrectionShader = new ShaderPass(GammaCorrectionShader);
81
+ const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader);
65
82
  composer.addPass(renderScene);
66
83
  composer.addPass(mixPass);
67
84
  composer.addPass(gammaCorrectionShader);
68
85
  composer.addPass(effectCopy);
69
- var materials = {};
70
- var darkMaterial = new MeshBasicMaterial({
86
+ const materials = {};
87
+ const darkMaterial = new MeshBasicMaterial({
71
88
  color: 'black'
72
89
  });
73
90
 
74
91
  /**
75
92
  * 性能消耗太大了
76
93
  */
77
- var cleanBloomBefore = use.useframeAfter(function () {
94
+ const cleanBloomBefore = use.useframeAfter(() => {
78
95
  var _scene$background$clo, _scene$background;
79
- var old = (_scene$background$clo = (_scene$background = scene.background) === null || _scene$background === void 0 ? void 0 : _scene$background.clone()) !== null && _scene$background$clo !== void 0 ? _scene$background$clo : null;
80
- scene.traverse(function (obj) {
96
+ const old = (_scene$background$clo = (_scene$background = scene.background) === null || _scene$background === void 0 ? void 0 : _scene$background.clone()) !== null && _scene$background$clo !== void 0 ? _scene$background$clo : null;
97
+ scene.traverse(obj => {
81
98
  if (!obj.visible) return;
82
99
  if (obj.type === 'SpritePoi') {
83
100
  if (obj.material && obj.material.map) {
@@ -100,7 +117,7 @@ export var createBloomSelectedTool = function createBloomSelectedTool(highParams
100
117
  }
101
118
  });
102
119
  bloomComposer.render();
103
- scene.traverse(function (obj) {
120
+ scene.traverse(obj => {
104
121
  if (!obj.visible) return;
105
122
  if (materials[obj.uuid]) {
106
123
  obj.material = materials[obj.uuid];
@@ -110,20 +127,20 @@ export var createBloomSelectedTool = function createBloomSelectedTool(highParams
110
127
  if (old) scene.background = old;
111
128
  composer.render();
112
129
  });
113
- var bloomSelected = function bloomSelected(object3dArray) {
114
- object3dArray.forEach(function (object3d) {
130
+ const bloomSelected = object3dArray => {
131
+ object3dArray.forEach(object3d => {
115
132
  if (object3d.type === 'Mesh') {
116
133
  object3d.layers.enable(BLOOM_SCENE);
117
134
  } else if (object3d.type === 'Group') {
118
- object3d.traverse(function (child) {
135
+ object3d.traverse(child => {
119
136
  if (child.type === 'Mesh') child.layers.enable(BLOOM_SCENE);
120
137
  });
121
138
  }
122
139
  });
123
140
  };
124
141
  return {
125
- bloomSelected: bloomSelected,
126
- clean: function clean() {
142
+ bloomSelected,
143
+ clean: () => {
127
144
  cleanBloomBefore();
128
145
 
129
146
  // @ts-ignore
@@ -1 +1 @@
1
- {"version":3,"names":["Color","Layers","MeshBasicMaterial","ShaderMaterial","SpriteMaterial","Vector2","lib","use","utils","EffectComposer","RenderPass","UnrealBloomPass","ShaderPass","GammaCorrectionShader","CopyShader","FXAAShader","storeManagement","createBloomSelectedTool","highParams","_use$useScene","useScene","scene","camera","renderer","_ref","_ref$strength","strength","_ref$radius","radius","_ref$threshold","threshold","composer","get","Error","isNeedRender","BLOOM_SCENE","bloomLayer","set","renderScene","bloomPass","window","innerWidth","innerHeight","bloomComposer","renderToScreen","addPass","effectCopy","effectFXAA","uniforms","resolution","value","mixPass","baseTexture","bloomTexture","renderTarget2","texture","vertexShader","fragmentShader","defines","needsSwap","gammaCorrectionShader","materials","darkMaterial","color","cleanBloomBefore","useframeAfter","_scene$background$clo","_scene$background","old","background","clone","traverse","obj","visible","type","material","map","transparent","opacity","depthTest","uuid","isMesh","test","layers","render","bloomSelected","object3dArray","forEach","object3d","enable","child","clean"],"sources":["../../../src/core/PostEffects/bloomSelect.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, Layers, MeshBasicMaterial, ShaderMaterial, SpriteMaterial, Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass, UnrealBloomPass, ShaderPass, GammaCorrectionShader, CopyShader, FXAAShader } = lib\nconst { storeManagement } = utils\n\ntype HighParams = {\n strength?: number\n radius?: number\n threshold?: number\n}\n\n/**\n * @file createBloomSelectedTool\n * todo 待优化\n */\n\n/**\n * createBloomSelectedTool\n * @param highParams\n * @returns\n */\nexport const createBloomSelectedTool = (highParams?: HighParams) => {\n const { scene, camera, renderer } = use.useScene()\n const { strength = 1.5, radius = 0.4, threshold = 0.85 } = highParams || {}\n\n const composer = storeManagement.get('composer') as lib.EffectComposer\n\n if (!scene || !camera || !renderer)\n throw new Error('scene or camera is not defined,')\n\n // @ts-ignore\n composer.isNeedRender = false\n\n const BLOOM_SCENE = 1\n const bloomLayer = new Layers()\n\n bloomLayer.set(BLOOM_SCENE)\n\n const renderScene = new RenderPass(scene, camera)\n const bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold)\n\n const bloomComposer = new EffectComposer(renderer)\n\n bloomComposer.renderToScreen = false\n bloomComposer.addPass(renderScene)\n bloomComposer.addPass(bloomPass)\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const effectFXAA = new ShaderPass(FXAAShader)\n effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n\n const mixPass = new ShaderPass(\n new ShaderMaterial({\n uniforms: {\n baseTexture: { value: null },\n bloomTexture: { value: bloomComposer.renderTarget2.texture },\n },\n vertexShader: `\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n `,\n fragmentShader: `\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n `,\n defines: {},\n }), 'baseTexture',\n )\n mixPass.needsSwap = true\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n composer.addPass(renderScene)\n composer.addPass(mixPass)\n composer.addPass(gammaCorrectionShader)\n composer.addPass(effectCopy)\n\n const materials = {} as any\n const darkMaterial = new MeshBasicMaterial({ color: 'black' })\n\n /**\n * 性能消耗太大了\n */\n const cleanBloomBefore = use.useframeAfter(() => {\n const old = scene.background?.clone() ?? null\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (obj.type === 'SpritePoi') {\n if (obj.material && obj.material.map) {\n obj.material = new SpriteMaterial({ map: obj.material.map, transparent: true, opacity: obj.material.opacity, depthTest: obj.material.depthTest })\n materials[obj.uuid] = obj.material\n obj.material = new SpriteMaterial({ color: 'black' })\n }\n }\n\n if (scene.background)\n scene.background = new Color('#000')\n\n if (obj.isMesh && bloomLayer.test(obj.layers) === false) {\n materials[obj.uuid] = obj.material\n obj.material = darkMaterial\n }\n })\n\n bloomComposer.render()\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (materials[obj.uuid]) {\n obj.material = materials[obj.uuid]\n delete materials[obj.uuid]\n }\n })\n\n if (old)\n scene.background = old\n\n composer.render()\n })\n\n const bloomSelected = (object3dArray: Object3D[]) => {\n object3dArray.forEach((object3d) => {\n if (object3d.type === 'Mesh') {\n object3d.layers.enable(BLOOM_SCENE)\n }\n\n else if (object3d.type === 'Group') {\n object3d.traverse((child) => {\n if (child.type === 'Mesh')\n child.layers.enable(BLOOM_SCENE)\n })\n }\n })\n }\n\n return {\n bloomSelected,\n clean: () => {\n cleanBloomBefore()\n\n // @ts-ignore\n composer.isNeedRender = true\n },\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Color","Layers","MeshBasicMaterial","ShaderMaterial","SpriteMaterial","Vector2","lib","use","utils","EffectComposer","RenderPass","UnrealBloomPass","ShaderPass","GammaCorrectionShader","CopyShader","FXAAShader","storeManagement","createBloomSelectedTool","highParams","scene","camera","renderer","useScene","strength","radius","threshold","composer","get","Error","isNeedRender","BLOOM_SCENE","bloomLayer","set","renderScene","bloomPass","window","innerWidth","innerHeight","bloomComposer","renderToScreen","addPass","effectCopy","effectFXAA","uniforms","resolution","value","mixPass","baseTexture","bloomTexture","renderTarget2","texture","vertexShader","fragmentShader","defines","needsSwap","gammaCorrectionShader","materials","darkMaterial","color","cleanBloomBefore","useframeAfter","_scene$background$clo","_scene$background","old","background","clone","traverse","obj","visible","type","material","map","transparent","opacity","depthTest","uuid","isMesh","test","layers","render","bloomSelected","object3dArray","forEach","object3d","enable","child","clean"],"sources":["../../../src/core/PostEffects/bloomSelect.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, Layers, MeshBasicMaterial, ShaderMaterial, SpriteMaterial, Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass, UnrealBloomPass, ShaderPass, GammaCorrectionShader, CopyShader, FXAAShader } = lib\nconst { storeManagement } = utils\n\ntype HighParams = {\n strength?: number\n radius?: number\n threshold?: number\n}\n\n/**\n * @file createBloomSelectedTool\n * todo 待优化\n */\n\n/**\n * createBloomSelectedTool\n * @param highParams\n * @returns\n */\nexport const createBloomSelectedTool = (highParams?: HighParams) => {\n const { scene, camera, renderer } = use.useScene()\n const { strength = 1.5, radius = 0.4, threshold = 0.85 } = highParams || {}\n\n const composer = storeManagement.get('composer') as lib.EffectComposer\n\n if (!scene || !camera || !renderer)\n throw new Error('scene or camera is not defined,')\n\n // @ts-ignore\n composer.isNeedRender = false\n\n const BLOOM_SCENE = 1\n const bloomLayer = new Layers()\n\n bloomLayer.set(BLOOM_SCENE)\n\n const renderScene = new RenderPass(scene, camera)\n const bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold)\n\n const bloomComposer = new EffectComposer(renderer)\n\n bloomComposer.renderToScreen = false\n bloomComposer.addPass(renderScene)\n bloomComposer.addPass(bloomPass)\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const effectFXAA = new ShaderPass(FXAAShader)\n effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n\n const mixPass = new ShaderPass(\n new ShaderMaterial({\n uniforms: {\n baseTexture: { value: null },\n bloomTexture: { value: bloomComposer.renderTarget2.texture },\n },\n vertexShader: `\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n `,\n fragmentShader: `\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n `,\n defines: {},\n }), 'baseTexture',\n )\n mixPass.needsSwap = true\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n composer.addPass(renderScene)\n composer.addPass(mixPass)\n composer.addPass(gammaCorrectionShader)\n composer.addPass(effectCopy)\n\n const materials = {} as any\n const darkMaterial = new MeshBasicMaterial({ color: 'black' })\n\n /**\n * 性能消耗太大了\n */\n const cleanBloomBefore = use.useframeAfter(() => {\n const old = scene.background?.clone() ?? null\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (obj.type === 'SpritePoi') {\n if (obj.material && obj.material.map) {\n obj.material = new SpriteMaterial({ map: obj.material.map, transparent: true, opacity: obj.material.opacity, depthTest: obj.material.depthTest })\n materials[obj.uuid] = obj.material\n obj.material = new SpriteMaterial({ color: 'black' })\n }\n }\n\n if (scene.background)\n scene.background = new Color('#000')\n\n if (obj.isMesh && bloomLayer.test(obj.layers) === false) {\n materials[obj.uuid] = obj.material\n obj.material = darkMaterial\n }\n })\n\n bloomComposer.render()\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (materials[obj.uuid]) {\n obj.material = materials[obj.uuid]\n delete materials[obj.uuid]\n }\n })\n\n if (old)\n scene.background = old\n\n composer.render()\n })\n\n const bloomSelected = (object3dArray: Object3D[]) => {\n object3dArray.forEach((object3d) => {\n if (object3d.type === 'Mesh') {\n object3d.layers.enable(BLOOM_SCENE)\n }\n\n else if (object3d.type === 'Group') {\n object3d.traverse((child) => {\n if (child.type === 'Mesh')\n child.layers.enable(BLOOM_SCENE)\n })\n }\n })\n }\n\n return {\n bloomSelected,\n clean: () => {\n cleanBloomBefore()\n\n // @ts-ignore\n composer.isNeedRender = true\n },\n }\n}\n"],"mappings":"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"}
@@ -1,30 +1,34 @@
1
1
  import { lib, use, utils } from '@anov/3d-core';
2
2
  import ColorifyShader from "./shader/colorify";
3
- var storeManagement = utils.storeManagement;
4
- var CopyShader = lib.CopyShader,
5
- ShaderPass = lib.ShaderPass;
6
- var addColorifyPass = function addColorifyPass(color) {
7
- var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.5;
8
- var _use$useScene = use.useScene(),
9
- scene = _use$useScene.scene,
10
- camera = _use$useScene.camera;
11
- var composer = storeManagement.get('composer');
3
+ const {
4
+ storeManagement
5
+ } = utils;
6
+ const {
7
+ CopyShader,
8
+ ShaderPass
9
+ } = lib;
10
+ const addColorifyPass = (color, alpha = 0.5) => {
11
+ const {
12
+ scene,
13
+ camera
14
+ } = use.useScene();
15
+ const composer = storeManagement.get('composer');
12
16
  if (!scene || !camera) throw new Error('scene or camera is not defined,');
13
17
  if (!composer) throw new Error('composer is not defined, please initPostEffects first');
14
- var effectCopy = new ShaderPass(CopyShader);
18
+ const effectCopy = new ShaderPass(CopyShader);
15
19
  effectCopy.renderToScreen = true;
16
- var colorify = new ShaderPass(ColorifyShader);
20
+ const colorify = new ShaderPass(ColorifyShader);
17
21
  colorify.enabled = true;
18
22
  colorify.uniforms.color.value = color;
19
23
  colorify.uniforms.alpha.value = alpha;
20
24
  composer.addPass(colorify);
21
25
  composer.addPass(effectCopy);
22
26
  return {
23
- clean: function clean() {
27
+ clean: () => {
24
28
  composer.removePass(effectCopy);
25
29
  composer.removePass(colorify);
26
30
  },
27
- setColor: function setColor(color) {
31
+ setColor: color => {
28
32
  colorify.uniforms.color.value = color;
29
33
  }
30
34
  };
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","ColorifyShader","storeManagement","CopyShader","ShaderPass","addColorifyPass","color","alpha","arguments","length","undefined","_use$useScene","useScene","scene","camera","composer","get","Error","effectCopy","renderToScreen","colorify","enabled","uniforms","value","addPass","clean","removePass","setColor"],"sources":["../../../src/core/PostEffects/colorifyPass.ts"],"sourcesContent":["import type { Color } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\nimport ColorifyShader from './shader/colorify'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass } = lib\n\nconst addColorifyPass = (color: Color, alpha = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const colorify = new ShaderPass(ColorifyShader)\n colorify.enabled = true\n\n colorify.uniforms.color.value = color\n colorify.uniforms.alpha.value = alpha\n\n composer.addPass(colorify)\n composer.addPass(effectCopy)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(colorify)\n },\n setColor: (color: Color) => {\n colorify.uniforms.color.value = color\n },\n }\n}\n\nexport default addColorifyPass"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAC/C,OAAOC,cAAc;AAErB,IAAQC,eAAe,GAAKF,KAAK,CAAzBE,eAAe;AACvB,IAAQC,UAAU,GAAiBL,GAAG,CAA9BK,UAAU;EAAEC,UAAU,GAAKN,GAAG,CAAlBM,UAAU;AAE9B,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAY,EAAkB;EAAA,IAAhBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAChD,IAAAG,aAAA,GAA0BZ,GAAG,CAACa,QAAQ,CAAC,CAAC;IAAhCC,KAAK,GAAAF,aAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;EACrB,IAAMC,QAAQ,GAAGb,eAAe,CAACc,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,UAAU,GAAG,IAAId,UAAU,CAACD,UAAU,CAAC;EAC7Ce,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhC,IAAMC,QAAQ,GAAG,IAAIhB,UAAU,CAACH,cAAc,CAAC;EAC/CmB,QAAQ,CAACC,OAAO,GAAG,IAAI;EAEvBD,QAAQ,CAACE,QAAQ,CAAChB,KAAK,CAACiB,KAAK,GAAGjB,KAAK;EACrCc,QAAQ,CAACE,QAAQ,CAACf,KAAK,CAACgB,KAAK,GAAGhB,KAAK;EAErCQ,QAAQ,CAACS,OAAO,CAACJ,QAAQ,CAAC;EAC1BL,QAAQ,CAACS,OAAO,CAACN,UAAU,CAAC;EAE5B,OAAO;IACLO,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXV,QAAQ,CAACW,UAAU,CAACR,UAAU,CAAC;MAC/BH,QAAQ,CAACW,UAAU,CAACN,QAAQ,CAAC;IAC/B,CAAC;IACDO,QAAQ,EAAE,SAAAA,SAACrB,KAAY,EAAK;MAC1Bc,QAAQ,CAACE,QAAQ,CAAChB,KAAK,CAACiB,KAAK,GAAGjB,KAAK;IACvC;EACF,CAAC;AACH,CAAC;AAED,eAAeD,eAAe"}
1
+ {"version":3,"names":["lib","use","utils","ColorifyShader","storeManagement","CopyShader","ShaderPass","addColorifyPass","color","alpha","scene","camera","useScene","composer","get","Error","effectCopy","renderToScreen","colorify","enabled","uniforms","value","addPass","clean","removePass","setColor"],"sources":["../../../src/core/PostEffects/colorifyPass.ts"],"sourcesContent":["import type { Color } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\nimport ColorifyShader from './shader/colorify'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass } = lib\n\nconst addColorifyPass = (color: Color, alpha = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const colorify = new ShaderPass(ColorifyShader)\n colorify.enabled = true\n\n colorify.uniforms.color.value = color\n colorify.uniforms.alpha.value = alpha\n\n composer.addPass(colorify)\n composer.addPass(effectCopy)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(colorify)\n },\n setColor: (color: Color) => {\n colorify.uniforms.color.value = color\n },\n }\n}\n\nexport default addColorifyPass"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAC/C,OAAOC,cAAc;AAErB,MAAM;EAAEC;AAAgB,CAAC,GAAGF,KAAK;AACjC,MAAM;EAAEG,UAAU;EAAEC;AAAW,CAAC,GAAGN,GAAG;AAEtC,MAAMO,eAAe,GAAGA,CAACC,KAAY,EAAEC,KAAK,GAAG,GAAG,KAAK;EACrD,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGV,GAAG,CAACW,QAAQ,CAAC,CAAC;EACxC,MAAMC,QAAQ,GAAGT,eAAe,CAACU,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACJ,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAII,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,MAAMC,UAAU,GAAG,IAAIV,UAAU,CAACD,UAAU,CAAC;EAC7CW,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhC,MAAMC,QAAQ,GAAG,IAAIZ,UAAU,CAACH,cAAc,CAAC;EAC/Ce,QAAQ,CAACC,OAAO,GAAG,IAAI;EAEvBD,QAAQ,CAACE,QAAQ,CAACZ,KAAK,CAACa,KAAK,GAAGb,KAAK;EACrCU,QAAQ,CAACE,QAAQ,CAACX,KAAK,CAACY,KAAK,GAAGZ,KAAK;EAErCI,QAAQ,CAACS,OAAO,CAACJ,QAAQ,CAAC;EAC1BL,QAAQ,CAACS,OAAO,CAACN,UAAU,CAAC;EAE5B,OAAO;IACLO,KAAK,EAAEA,CAAA,KAAM;MACXV,QAAQ,CAACW,UAAU,CAACR,UAAU,CAAC;MAC/BH,QAAQ,CAACW,UAAU,CAACN,QAAQ,CAAC;IAC/B,CAAC;IACDO,QAAQ,EAAGjB,KAAY,IAAK;MAC1BU,QAAQ,CAACE,QAAQ,CAACZ,KAAK,CAACa,KAAK,GAAGb,KAAK;IACvC;EACF,CAAC;AACH,CAAC;AAED,eAAeD,eAAe"}
@@ -1,10 +1,16 @@
1
1
  import { lib, use, utils } from '@anov/3d-core';
2
- var EffectComposer = lib.EffectComposer,
3
- RenderPass = lib.RenderPass;
4
- var storeManagement = utils.storeManagement;
5
- var useSubComposerFrame = use.useSubComposerFrame,
6
- useComposerFrame = use.useComposerFrame;
7
- var clean;
2
+ const {
3
+ EffectComposer,
4
+ RenderPass
5
+ } = lib;
6
+ const {
7
+ storeManagement
8
+ } = utils;
9
+ const {
10
+ useSubComposerFrame,
11
+ useComposerFrame
12
+ } = use;
13
+ let clean;
8
14
 
9
15
  /**
10
16
  * init post effects
@@ -15,18 +21,18 @@ var clean;
15
21
  * @param afterhooks composer render after hook
16
22
  * @returns
17
23
  */
18
- export var initPostEffects = function initPostEffects(scene, renderer, camera, options) {
19
- var _ref = options || {
20
- type: 'main'
21
- },
22
- type = _ref.type,
23
- beforehooks = _ref.beforehooks,
24
- afterhooks = _ref.afterhooks,
25
- _ref$renderToScreen = _ref.renderToScreen,
26
- renderToScreen = _ref$renderToScreen === void 0 ? true : _ref$renderToScreen;
27
- var composer = new EffectComposer(renderer);
28
- var renderPass = new RenderPass(scene, camera);
29
- var func = type === 'main' ? useComposerFrame : useSubComposerFrame;
24
+ export const initPostEffects = (scene, renderer, camera, options) => {
25
+ const {
26
+ type,
27
+ beforehooks,
28
+ afterhooks,
29
+ renderToScreen = true
30
+ } = options || {
31
+ type: 'main'
32
+ };
33
+ const composer = new EffectComposer(renderer);
34
+ const renderPass = new RenderPass(scene, camera);
35
+ const func = type === 'main' ? useComposerFrame : useSubComposerFrame;
30
36
  clean && clean();
31
37
  storeManagement.set('composer', composer);
32
38
  storeManagement.set('renderPass', renderPass);
@@ -35,20 +41,20 @@ export var initPostEffects = function initPostEffects(scene, renderer, camera, o
35
41
 
36
42
  // @ts-ignore
37
43
  composer.isNeedRender = true;
38
- var cleanEffectsframe = func(function () {
44
+ const cleanEffectsframe = func(() => {
39
45
  beforehooks && beforehooks();
40
46
  // @ts-ignore
41
47
  composer.isNeedRender && composer.render();
42
48
  afterhooks && afterhooks();
43
49
  });
44
- clean = function clean() {
50
+ clean = () => {
45
51
  storeManagement.delete('composer');
46
52
  storeManagement.delete('renderPass');
47
53
  cleanEffectsframe();
48
54
  };
49
55
  return {
50
- composer: composer,
51
- clean: clean
56
+ composer,
57
+ clean
52
58
  };
53
59
  };
54
60
  export * from "./outlinePass";
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","_ref","type","beforehooks","afterhooks","_ref$renderToScreen","renderToScreen","composer","renderPass","func","set","addPass","isNeedRender","cleanEffectsframe","render","delete"],"sources":["../../../src/core/PostEffects/index.ts"],"sourcesContent":["import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass } = lib\nconst { storeManagement } = utils\nconst { useSubComposerFrame, useComposerFrame } = use\n\ntype InitPostEffectsOptions = {\n type: 'main' | 'sub'\n beforehooks?: () => void\n afterhooks?: () => void\n renderToScreen?: boolean\n}\n\nlet clean: () => void\n\n/**\n * init post effects\n * @param scene\n * @param renderer\n * @param camera\n * @param beforehooks composer render before hook\n * @param afterhooks composer render after hook\n * @returns\n */\nexport const initPostEffects = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n options?: InitPostEffectsOptions,\n) => {\n const { type, beforehooks, afterhooks, renderToScreen = true } = options || { type: 'main' }\n const composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n const func = type === 'main' ? useComposerFrame : useSubComposerFrame\n\n clean && clean()\n\n storeManagement.set('composer', composer)\n storeManagement.set('renderPass', renderPass)\n\n composer.addPass(renderPass)\n composer.renderToScreen = renderToScreen\n\n // @ts-ignore\n composer.isNeedRender = true\n\n const cleanEffectsframe = func (() => {\n beforehooks && beforehooks()\n // @ts-ignore\n composer.isNeedRender && composer.render()\n afterhooks && afterhooks()\n })\n\n clean = () => {\n storeManagement.delete('composer')\n storeManagement.delete('renderPass')\n\n cleanEffectsframe()\n }\n\n return {\n composer,\n clean,\n }\n}\n\nexport * from './outlinePass'\nexport * from './bloomSelect'"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,IAAQC,cAAc,GAAiBH,GAAG,CAAlCG,cAAc;EAAEC,UAAU,GAAKJ,GAAG,CAAlBI,UAAU;AAClC,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AACvB,IAAQC,mBAAmB,GAAuBL,GAAG,CAA7CK,mBAAmB;EAAEC,gBAAgB,GAAKN,GAAG,CAAxBM,gBAAgB;AAS7C,IAAIC,KAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACdC,OAAgC,EAC7B;EACH,IAAAC,IAAA,GAAiED,OAAO,IAAI;MAAEE,IAAI,EAAE;IAAO,CAAC;IAApFA,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IAAEC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IAAAC,mBAAA,GAAAJ,IAAA,CAAEK,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,IAAI,GAAAA,mBAAA;EAC5D,IAAME,QAAQ,GAAG,IAAIjB,cAAc,CAACQ,QAAQ,CAAC;EAC7C,IAAMU,UAAU,GAAG,IAAIjB,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAChD,IAAMU,IAAI,GAAGP,IAAI,KAAK,MAAM,GAAGR,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,CAAC,CAAC;EAEhBH,eAAe,CAACkB,GAAG,CAAC,UAAU,EAAEH,QAAQ,CAAC;EACzCf,eAAe,CAACkB,GAAG,CAAC,YAAY,EAAEF,UAAU,CAAC;EAE7CD,QAAQ,CAACI,OAAO,CAACH,UAAU,CAAC;EAC5BD,QAAQ,CAACD,cAAc,GAAGA,cAAc;;EAExC;EACAC,QAAQ,CAACK,YAAY,GAAG,IAAI;EAE5B,IAAMC,iBAAiB,GAAGJ,IAAI,CAAE,YAAM;IACpCN,WAAW,IAAIA,WAAW,CAAC,CAAC;IAC5B;IACAI,QAAQ,CAACK,YAAY,IAAIL,QAAQ,CAACO,MAAM,CAAC,CAAC;IAC1CV,UAAU,IAAIA,UAAU,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEFT,KAAK,GAAG,SAAAA,MAAA,EAAM;IACZH,eAAe,CAACuB,MAAM,CAAC,UAAU,CAAC;IAClCvB,eAAe,CAACuB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,CAAC,CAAC;EACrB,CAAC;EAED,OAAO;IACLN,QAAQ,EAARA,QAAQ;IACRZ,KAAK,EAALA;EACF,CAAC;AACH,CAAC;AAED;AACA"}
1
+ {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","type","beforehooks","afterhooks","renderToScreen","composer","renderPass","func","set","addPass","isNeedRender","cleanEffectsframe","render","delete"],"sources":["../../../src/core/PostEffects/index.ts"],"sourcesContent":["import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass } = lib\nconst { storeManagement } = utils\nconst { useSubComposerFrame, useComposerFrame } = use\n\ntype InitPostEffectsOptions = {\n type: 'main' | 'sub'\n beforehooks?: () => void\n afterhooks?: () => void\n renderToScreen?: boolean\n}\n\nlet clean: () => void\n\n/**\n * init post effects\n * @param scene\n * @param renderer\n * @param camera\n * @param beforehooks composer render before hook\n * @param afterhooks composer render after hook\n * @returns\n */\nexport const initPostEffects = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n options?: InitPostEffectsOptions,\n) => {\n const { type, beforehooks, afterhooks, renderToScreen = true } = options || { type: 'main' }\n const composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n const func = type === 'main' ? useComposerFrame : useSubComposerFrame\n\n clean && clean()\n\n storeManagement.set('composer', composer)\n storeManagement.set('renderPass', renderPass)\n\n composer.addPass(renderPass)\n composer.renderToScreen = renderToScreen\n\n // @ts-ignore\n composer.isNeedRender = true\n\n const cleanEffectsframe = func (() => {\n beforehooks && beforehooks()\n // @ts-ignore\n composer.isNeedRender && composer.render()\n afterhooks && afterhooks()\n })\n\n clean = () => {\n storeManagement.delete('composer')\n storeManagement.delete('renderPass')\n\n cleanEffectsframe()\n }\n\n return {\n composer,\n clean,\n }\n}\n\nexport * from './outlinePass'\nexport * from './bloomSelect'"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,MAAM;EAAEC,cAAc;EAAEC;AAAW,CAAC,GAAGJ,GAAG;AAC1C,MAAM;EAAEK;AAAgB,CAAC,GAAGH,KAAK;AACjC,MAAM;EAAEI,mBAAmB;EAAEC;AAAiB,CAAC,GAAGN,GAAG;AASrD,IAAIO,KAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAC7BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACdC,OAAgC,KAC7B;EACH,MAAM;IAAEC,IAAI;IAAEC,WAAW;IAAEC,UAAU;IAAEC,cAAc,GAAG;EAAK,CAAC,GAAGJ,OAAO,IAAI;IAAEC,IAAI,EAAE;EAAO,CAAC;EAC5F,MAAMI,QAAQ,GAAG,IAAIf,cAAc,CAACQ,QAAQ,CAAC;EAC7C,MAAMQ,UAAU,GAAG,IAAIf,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAChD,MAAMQ,IAAI,GAAGN,IAAI,KAAK,MAAM,GAAGP,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,CAAC,CAAC;EAEhBH,eAAe,CAACgB,GAAG,CAAC,UAAU,EAAEH,QAAQ,CAAC;EACzCb,eAAe,CAACgB,GAAG,CAAC,YAAY,EAAEF,UAAU,CAAC;EAE7CD,QAAQ,CAACI,OAAO,CAACH,UAAU,CAAC;EAC5BD,QAAQ,CAACD,cAAc,GAAGA,cAAc;;EAExC;EACAC,QAAQ,CAACK,YAAY,GAAG,IAAI;EAE5B,MAAMC,iBAAiB,GAAGJ,IAAI,CAAE,MAAM;IACpCL,WAAW,IAAIA,WAAW,CAAC,CAAC;IAC5B;IACAG,QAAQ,CAACK,YAAY,IAAIL,QAAQ,CAACO,MAAM,CAAC,CAAC;IAC1CT,UAAU,IAAIA,UAAU,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEFR,KAAK,GAAGA,CAAA,KAAM;IACZH,eAAe,CAACqB,MAAM,CAAC,UAAU,CAAC;IAClCrB,eAAe,CAACqB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,CAAC,CAAC;EACrB,CAAC;EAED,OAAO;IACLN,QAAQ;IACRV;EACF,CAAC;AACH,CAAC;AAED;AACA"}
@@ -1,26 +1,21 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
6
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
7
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
9
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12
1
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
2
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
6
  import { OutlinePassExtend, OutputPass, Vector2, lib, use, utils } from '@anov/3d-core';
18
7
  import { EffectPass } from 'postprocessing';
19
- var storeManagement = utils.storeManagement;
20
- var ShaderPass = lib.ShaderPass,
21
- GammaCorrectionShader = lib.GammaCorrectionShader;
22
- var useScene = use.useScene;
23
- var baseHighParams = {
8
+ const {
9
+ storeManagement
10
+ } = utils;
11
+ const {
12
+ ShaderPass,
13
+ GammaCorrectionShader
14
+ } = lib;
15
+ const {
16
+ useScene
17
+ } = use;
18
+ const baseHighParams = {
24
19
  edgeStrength: 10,
25
20
  edgeGlow: 1,
26
21
  edgeThickness: 3,
@@ -33,19 +28,20 @@ var baseHighParams = {
33
28
  * @param highParams
34
29
  * @returns
35
30
  */
36
- export var createHighSelectedTool = function createHighSelectedTool(highParams) {
37
- var lastHighParams = _objectSpread(_objectSpread({}, baseHighParams), highParams);
38
- var _useScene = useScene(),
39
- scene = _useScene.scene,
40
- camera = _useScene.camera;
41
- var composer = storeManagement.get('composer');
31
+ export const createHighSelectedTool = highParams => {
32
+ const lastHighParams = _objectSpread(_objectSpread({}, baseHighParams), highParams);
33
+ const {
34
+ scene,
35
+ camera
36
+ } = useScene();
37
+ const composer = storeManagement.get('composer');
42
38
  if (!scene || !camera) throw new Error('scene or camera is not defined,');
43
39
  if (!composer) {
44
40
  console.error('composer is not defined, please initPostEffects first');
45
41
  return null;
46
42
  // throw new Error('composer is not defined, please initPostEffects first')
47
43
  }
48
- var outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera);
44
+ const outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera);
49
45
  outlinePass.edgeStrength = lastHighParams.edgeStrength;
50
46
  outlinePass.edgeGlow = lastHighParams.edgeGlow;
51
47
  outlinePass.edgeThickness = lastHighParams.edgeThickness;
@@ -53,39 +49,30 @@ export var createHighSelectedTool = function createHighSelectedTool(highParams)
53
49
  outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor);
54
50
  composer.addPass(outlinePass);
55
51
  composer.addPass(new OutputPass());
56
- var gammaCorrectionShader = new ShaderPass(GammaCorrectionShader);
52
+ const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader);
57
53
 
58
54
  // if (!storeManagement.get<boolean>('__&&__gammaCorrectionShader')) {
59
55
  // composer.addPass(gammaCorrectionShader)
60
56
  // storeManagement.set('__&&__gammaCorrectionShader', true)
61
57
  // }
62
58
 
63
- return function (object3dArray) {
59
+ return object3dArray => {
64
60
  outlinePass.selectedObjects = object3dArray;
65
61
  };
66
62
  };
67
- export var OutlinePass = /*#__PURE__*/function (_EffectPass) {
68
- _inherits(OutlinePass, _EffectPass);
69
- var _super = _createSuper(OutlinePass);
70
- function OutlinePass(scene, camera) {
71
- var _this;
72
- _classCallCheck(this, OutlinePass);
73
- _this = _super.call(this);
74
- _defineProperty(_assertThisInitialized(_this), "outlinePass", void 0);
75
- _this.outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera);
76
- _this.outlinePass.edgeStrength = baseHighParams.edgeStrength;
77
- _this.outlinePass.edgeGlow = baseHighParams.edgeGlow;
78
- _this.outlinePass.edgeThickness = baseHighParams.edgeThickness;
79
- _this.outlinePass.visibleEdgeColor.set(baseHighParams.visibleEdgeColor);
80
- _this.outlinePass.hiddenEdgeColor.set(baseHighParams.hiddenEdgeColor);
81
- return _this;
63
+ export class OutlinePass extends EffectPass {
64
+ constructor(scene, camera) {
65
+ super();
66
+ _defineProperty(this, "outlinePass", void 0);
67
+ this.outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera);
68
+ this.outlinePass.edgeStrength = baseHighParams.edgeStrength;
69
+ this.outlinePass.edgeGlow = baseHighParams.edgeGlow;
70
+ this.outlinePass.edgeThickness = baseHighParams.edgeThickness;
71
+ this.outlinePass.visibleEdgeColor.set(baseHighParams.visibleEdgeColor);
72
+ this.outlinePass.hiddenEdgeColor.set(baseHighParams.hiddenEdgeColor);
82
73
  }
83
- _createClass(OutlinePass, [{
84
- key: "selectedObjects",
85
- value: function selectedObjects(object3dArray) {
86
- this.outlinePass.selectedObjects = object3dArray;
87
- }
88
- }]);
89
- return OutlinePass;
90
- }(EffectPass);
74
+ selectedObjects(object3dArray) {
75
+ this.outlinePass.selectedObjects = object3dArray;
76
+ }
77
+ }
91
78
  //# sourceMappingURL=outlinePass.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OutlinePassExtend","OutputPass","Vector2","lib","use","utils","EffectPass","storeManagement","ShaderPass","GammaCorrectionShader","useScene","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","createHighSelectedTool","highParams","lastHighParams","_objectSpread","_useScene","scene","camera","composer","get","Error","console","error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects","OutlinePass","_EffectPass","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_createClass","key","value"],"sources":["../../../src/core/PostEffects/outlinePass.ts"],"sourcesContent":["import type { Camera, Object3D, Scene } from '@anov/3d-core'\nimport { OutlinePassExtend, OutputPass, Vector2, lib, use, utils } from '@anov/3d-core'\nimport { EffectPass } from 'postprocessing'\n\ntype HighParamsType = {\n edgeStrength?: number // 边缘强度\n edgeGlow?: number // 缓缓接近\n edgeThickness?: number // 边缘厚度\n pulsePeriod?: number // 脉冲周期\n visibleEdgeColor?: string // 可见边缘颜色\n hiddenEdgeColor?: string // 隐藏边缘颜色\n}\n\nconst { storeManagement } = utils\nconst { ShaderPass, GammaCorrectionShader } = lib\nconst { useScene } = use\n\nconst baseHighParams: HighParamsType = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: '#FF5713',\n hiddenEdgeColor: '#FF5713',\n}\n\n/**\n *\n * @param highParams\n * @returns\n */\nexport const createHighSelectedTool = (highParams?: HighParamsType) => {\n const lastHighParams = {\n ...baseHighParams,\n ...highParams,\n }\n\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer) {\n console.error('composer is not defined, please initPostEffects first')\n return null\n // throw new Error('composer is not defined, please initPostEffects first')\n }\n\n const outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n outlinePass.edgeStrength = lastHighParams.edgeStrength\n outlinePass.edgeGlow = lastHighParams.edgeGlow\n outlinePass.edgeThickness = lastHighParams.edgeThickness\n lastHighParams.pulsePeriod && (outlinePass.pulsePeriod = lastHighParams.pulsePeriod)\n outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor)\n\n composer.addPass(outlinePass)\n composer.addPass(new OutputPass())\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n // if (!storeManagement.get<boolean>('__&&__gammaCorrectionShader')) {\n // composer.addPass(gammaCorrectionShader)\n // storeManagement.set('__&&__gammaCorrectionShader', true)\n // }\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport class OutlinePass extends EffectPass {\n private outlinePass: OutlinePassExtend\n\n constructor(scene: Scene, camera: Camera) {\n super()\n\n this.outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n this.outlinePass.edgeStrength = baseHighParams.edgeStrength\n this.outlinePass.edgeGlow = baseHighParams.edgeGlow\n this.outlinePass.edgeThickness = baseHighParams.edgeThickness\n this.outlinePass.visibleEdgeColor.set(baseHighParams.visibleEdgeColor)\n this.outlinePass.hiddenEdgeColor.set(baseHighParams.hiddenEdgeColor)\n }\n\n public selectedObjects(object3dArray: Object3D[]) {\n this.outlinePass.selectedObjects = object3dArray\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["OutlinePassExtend","OutputPass","Vector2","lib","use","utils","EffectPass","storeManagement","ShaderPass","GammaCorrectionShader","useScene","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","createHighSelectedTool","highParams","lastHighParams","_objectSpread","scene","camera","composer","get","Error","console","error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects","OutlinePass","constructor","_defineProperty"],"sources":["../../../src/core/PostEffects/outlinePass.ts"],"sourcesContent":["import type { Camera, Object3D, Scene } from '@anov/3d-core'\nimport { OutlinePassExtend, OutputPass, Vector2, lib, use, utils } from '@anov/3d-core'\nimport { EffectPass } from 'postprocessing'\n\ntype HighParamsType = {\n edgeStrength?: number // 边缘强度\n edgeGlow?: number // 缓缓接近\n edgeThickness?: number // 边缘厚度\n pulsePeriod?: number // 脉冲周期\n visibleEdgeColor?: string // 可见边缘颜色\n hiddenEdgeColor?: string // 隐藏边缘颜色\n}\n\nconst { storeManagement } = utils\nconst { ShaderPass, GammaCorrectionShader } = lib\nconst { useScene } = use\n\nconst baseHighParams: HighParamsType = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: '#FF5713',\n hiddenEdgeColor: '#FF5713',\n}\n\n/**\n *\n * @param highParams\n * @returns\n */\nexport const createHighSelectedTool = (highParams?: HighParamsType) => {\n const lastHighParams = {\n ...baseHighParams,\n ...highParams,\n }\n\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer) {\n console.error('composer is not defined, please initPostEffects first')\n return null\n // throw new Error('composer is not defined, please initPostEffects first')\n }\n\n const outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n outlinePass.edgeStrength = lastHighParams.edgeStrength\n outlinePass.edgeGlow = lastHighParams.edgeGlow\n outlinePass.edgeThickness = lastHighParams.edgeThickness\n lastHighParams.pulsePeriod && (outlinePass.pulsePeriod = lastHighParams.pulsePeriod)\n outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor)\n\n composer.addPass(outlinePass)\n composer.addPass(new OutputPass())\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n // if (!storeManagement.get<boolean>('__&&__gammaCorrectionShader')) {\n // composer.addPass(gammaCorrectionShader)\n // storeManagement.set('__&&__gammaCorrectionShader', true)\n // }\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport class OutlinePass extends EffectPass {\n private outlinePass: OutlinePassExtend\n\n constructor(scene: Scene, camera: Camera) {\n super()\n\n this.outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n this.outlinePass.edgeStrength = baseHighParams.edgeStrength\n this.outlinePass.edgeGlow = baseHighParams.edgeGlow\n this.outlinePass.edgeThickness = baseHighParams.edgeThickness\n this.outlinePass.visibleEdgeColor.set(baseHighParams.visibleEdgeColor)\n this.outlinePass.hiddenEdgeColor.set(baseHighParams.hiddenEdgeColor)\n }\n\n public selectedObjects(object3dArray: Object3D[]) {\n this.outlinePass.selectedObjects = object3dArray\n }\n}\n"],"mappings":"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"}
@@ -1,26 +1,28 @@
1
1
  import { use } from '@anov/3d-core';
2
2
  import { BlendFunction, DepthDownsamplingPass, EdgeDetectionMode, EffectComposer, EffectPass, NormalPass, PredicationMode, RenderPass, SMAAEffect, SMAAPreset, SSAOEffect, TextureEffect } from 'postprocessing';
3
- var useComposerFrame = use.useComposerFrame;
4
- export var initPostEffectsV2 = function initPostEffectsV2(scene, renderer, camera) {
5
- var composer = new EffectComposer(renderer);
3
+ const {
4
+ useComposerFrame
5
+ } = use;
6
+ export const initPostEffectsV2 = (scene, renderer, camera) => {
7
+ const composer = new EffectComposer(renderer);
6
8
  composer.addPass(new RenderPass(scene, camera));
7
- var normalPass = new NormalPass(scene, camera);
8
- var depthDownsamplingPass = new DepthDownsamplingPass({
9
+ const normalPass = new NormalPass(scene, camera);
10
+ const depthDownsamplingPass = new DepthDownsamplingPass({
9
11
  normalBuffer: normalPass.texture,
10
12
  resolutionScale: 0.5
11
13
  });
12
- var normalDepthBuffer = depthDownsamplingPass.texture;
13
- var smaaEffect = new SMAAEffect({
14
+ const normalDepthBuffer = depthDownsamplingPass.texture;
15
+ const smaaEffect = new SMAAEffect({
14
16
  preset: SMAAPreset.MEDIUM,
15
17
  edgeDetectionMode: EdgeDetectionMode.COLOR,
16
18
  predicationMode: PredicationMode.DEPTH
17
19
  });
18
20
  smaaEffect.edgeDetectionMaterial.setEdgeDetectionThreshold(0.01);
19
- var ssaoEffect = new SSAOEffect(camera, normalPass.texture, {
21
+ const ssaoEffect = new SSAOEffect(camera, normalPass.texture, {
20
22
  blendFunction: BlendFunction.MULTIPLY,
21
23
  distanceScaling: true,
22
24
  depthAwareUpsampling: true,
23
- normalDepthBuffer: normalDepthBuffer,
25
+ normalDepthBuffer,
24
26
  samples: 9,
25
27
  rings: 7,
26
28
  distanceThreshold: 0.02,
@@ -40,15 +42,15 @@ export var initPostEffectsV2 = function initPostEffectsV2(scene, renderer, camer
40
42
  color: null,
41
43
  resolutionScale: 0.5
42
44
  });
43
- var textureEffect = new TextureEffect({
45
+ const textureEffect = new TextureEffect({
44
46
  blendFunction: BlendFunction.SKIP,
45
47
  texture: depthDownsamplingPass.texture
46
48
  });
47
- var effectPass = new EffectPass(camera, smaaEffect, ssaoEffect, textureEffect);
49
+ const effectPass = new EffectPass(camera, smaaEffect, ssaoEffect, textureEffect);
48
50
  composer.addPass(normalPass);
49
51
  composer.addPass(depthDownsamplingPass);
50
52
  composer.addPass(effectPass);
51
- useComposerFrame(function () {
53
+ useComposerFrame(() => {
52
54
  composer.render();
53
55
  });
54
56
  };