@anov/3d-ability 0.0.27 → 0.0.29

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 (220) hide show
  1. package/dist/camera/index.d.ts +1 -1
  2. package/dist/camera/index.js +3 -3
  3. package/dist/camera/index.js.map +1 -1
  4. package/dist/common/IconStyle.d.ts +4 -4
  5. package/dist/common/IconStyle.js +3 -3
  6. package/dist/common/IconStyle.js.map +1 -1
  7. package/dist/common/ImageStyle.d.ts +3 -3
  8. package/dist/common/ImageStyle.js +3 -3
  9. package/dist/common/ImageStyle.js.map +1 -1
  10. package/dist/common/LabelStyle.d.ts +5 -5
  11. package/dist/common/LabelStyle.js +3 -3
  12. package/dist/common/LabelStyle.js.map +1 -1
  13. package/dist/common/component.d.ts +3 -2
  14. package/dist/common/component.js +8 -6
  15. package/dist/common/component.js.map +1 -1
  16. package/dist/common/constant.d.ts +9 -3
  17. package/dist/common/constant.js +5 -4
  18. package/dist/common/constant.js.map +1 -1
  19. package/dist/controls/base.d.ts +6 -3
  20. package/dist/controls/base.js +24 -6
  21. package/dist/controls/base.js.map +1 -1
  22. package/dist/controls/index.d.ts +2 -1
  23. package/dist/controls/index.js +2 -1
  24. package/dist/controls/index.js.map +1 -1
  25. package/dist/controls/src/FirstViewControl.js +3 -3
  26. package/dist/controls/src/FirstViewControl.js.map +1 -1
  27. package/dist/controls/src/ThirdViewControl/action/input.d.ts +9 -0
  28. package/dist/controls/src/ThirdViewControl/action/input.js +116 -0
  29. package/dist/controls/src/ThirdViewControl/action/input.js.map +1 -0
  30. package/dist/controls/src/ThirdViewControl/config/constants.d.ts +1 -0
  31. package/dist/controls/src/ThirdViewControl/config/constants.js +3 -0
  32. package/dist/controls/src/ThirdViewControl/config/constants.js.map +1 -0
  33. package/dist/controls/src/ThirdViewControl/index.d.ts +16 -0
  34. package/dist/controls/src/ThirdViewControl/index.js +48 -0
  35. package/dist/controls/src/ThirdViewControl/index.js.map +1 -0
  36. package/dist/controls/src/ThirdViewControl/player/animation.d.ts +28 -0
  37. package/dist/controls/src/ThirdViewControl/player/animation.js +207 -0
  38. package/dist/controls/src/ThirdViewControl/player/animation.js.map +1 -0
  39. package/dist/controls/src/ThirdViewControl/player/camera.d.ts +26 -0
  40. package/dist/controls/src/ThirdViewControl/player/camera.js +86 -0
  41. package/dist/controls/src/ThirdViewControl/player/camera.js.map +1 -0
  42. package/dist/controls/src/ThirdViewControl/player/control.d.ts +33 -0
  43. package/dist/controls/src/ThirdViewControl/player/control.js +85 -0
  44. package/dist/controls/src/ThirdViewControl/player/control.js.map +1 -0
  45. package/dist/controls/src/ThirdViewControl/player.d.ts +23 -0
  46. package/dist/controls/src/ThirdViewControl/player.js +115 -0
  47. package/dist/controls/src/ThirdViewControl/player.js.map +1 -0
  48. package/dist/controls/src/ThirdViewControl/type.d.ts +41 -0
  49. package/dist/controls/src/ThirdViewControl/type.js +2 -0
  50. package/dist/controls/src/ThirdViewControl/type.js.map +1 -0
  51. package/dist/environment/rain.d.ts +1 -1
  52. package/dist/environment/rain.js.map +1 -1
  53. package/dist/environment/rainShader/index.js +3 -3
  54. package/dist/environment/rainShader/index.js.map +1 -1
  55. package/dist/environment/rainShader/shader.d.ts +2 -2
  56. package/dist/environment/shaderCloud/cloudMaterial.d.ts +1 -1
  57. package/dist/environment/shaderCloud/cloudMaterial.js +3 -3
  58. package/dist/environment/shaderCloud/cloudMaterial.js.map +1 -1
  59. package/dist/environment/shaderCloud/index.js.map +1 -1
  60. package/dist/environment/showShader/index.js +3 -3
  61. package/dist/environment/showShader/index.js.map +1 -1
  62. package/dist/environment/showShader/shader.d.ts +2 -2
  63. package/dist/environment/sky/index.js +1 -1
  64. package/dist/environment/sky/index.js.map +1 -1
  65. package/dist/environment/skyBox/index.d.ts +1 -1
  66. package/dist/environment/skyBox/index.js +13 -14
  67. package/dist/environment/skyBox/index.js.map +1 -1
  68. package/dist/environment/skyv2/config.d.ts +2 -2
  69. package/dist/environment/skyv2/config.js.map +1 -1
  70. package/dist/environment/skyv2/index.js +4 -4
  71. package/dist/environment/skyv2/index.js.map +1 -1
  72. package/dist/environment/snow.d.ts +1 -1
  73. package/dist/environment/snow.js.map +1 -1
  74. package/dist/environment/sun/index.d.ts +4 -1
  75. package/dist/environment/sun/index.js.map +1 -1
  76. package/dist/environment/utils/points.d.ts +1 -1
  77. package/dist/environment/utils/points.js +3 -3
  78. package/dist/environment/utils/points.js.map +1 -1
  79. package/dist/environment/volumetricCloud/cloudMaterial.js.map +1 -1
  80. package/dist/environment/volumetricCloud/inex.js +3 -3
  81. package/dist/environment/volumetricCloud/inex.js.map +1 -1
  82. package/dist/heatmap/index.js +4 -4
  83. package/dist/heatmap/index.js.map +1 -1
  84. package/dist/helper/view/index.d.ts +2 -2
  85. package/dist/helper/view/index.js +4 -5
  86. package/dist/helper/view/index.js.map +1 -1
  87. package/dist/helper/view/utils.js +1 -1
  88. package/dist/helper/view/utils.js.map +1 -1
  89. package/dist/index.d.ts +7 -4
  90. package/dist/index.js +7 -4
  91. package/dist/index.js.map +1 -1
  92. package/dist/line/curve.d.ts +2 -2
  93. package/dist/line/curve.js +3 -3
  94. package/dist/line/curve.js.map +1 -1
  95. package/dist/line/index.d.ts +16 -0
  96. package/dist/line/index.js +62 -1
  97. package/dist/line/index.js.map +1 -1
  98. package/dist/line/round-curve.d.ts +1 -1
  99. package/dist/line/round-curve.js +5 -5
  100. package/dist/line/round-curve.js.map +1 -1
  101. package/dist/material/fakeGlowMaterial/index.js +3 -3
  102. package/dist/material/fakeGlowMaterial/index.js.map +1 -1
  103. package/dist/material/finirMaterialMaterial/index.d.ts +1 -1
  104. package/dist/material/finirMaterialMaterial/index.js +3 -3
  105. package/dist/material/finirMaterialMaterial/index.js.map +1 -1
  106. package/dist/material/pristineGridMaterial/index.d.ts +1 -1
  107. package/dist/material/pristineGridMaterial/index.js +3 -3
  108. package/dist/material/pristineGridMaterial/index.js.map +1 -1
  109. package/dist/poi/Poi.d.ts +10 -6
  110. package/dist/poi/Poi.js +52 -35
  111. package/dist/poi/Poi.js.map +1 -1
  112. package/dist/poi/{2D → disable/2D}/index.js +5 -6
  113. package/dist/poi/disable/2D/index.js.map +1 -0
  114. package/dist/poi/{3D → disable/3D}/index.js +6 -6
  115. package/dist/poi/disable/3D/index.js.map +1 -0
  116. package/dist/poi/{3D → disable/3D}/index1.d.ts +3 -3
  117. package/dist/poi/{3D → disable/3D}/index1.js +7 -6
  118. package/dist/poi/disable/3D/index1.js.map +1 -0
  119. package/dist/poi/disable/3D/type.js +6 -0
  120. package/dist/poi/disable/3D/type.js.map +1 -0
  121. package/dist/poi/{Base.js → disable/Base.js} +3 -3
  122. package/dist/poi/disable/Base.js.map +1 -0
  123. package/dist/poi/{Sprite → disable/Sprite}/index.js +6 -6
  124. package/dist/poi/disable/Sprite/index.js.map +1 -0
  125. package/dist/poi/disable/Sprite/index2.js +188 -0
  126. package/dist/poi/disable/Sprite/index2.js.map +1 -0
  127. package/dist/poi/disable/utils/canvas.js +68 -0
  128. package/dist/poi/disable/utils/canvas.js.map +1 -0
  129. package/dist/poi/{utils → disable/utils}/element.js +5 -6
  130. package/dist/poi/disable/utils/element.js.map +1 -0
  131. package/dist/poi/{utils → disable/utils}/type.d.ts +3 -3
  132. package/dist/poi/{utils → disable/utils}/type.js +3 -3
  133. package/dist/poi/disable/utils/type.js.map +1 -0
  134. package/dist/poi/index.d.ts +6 -5
  135. package/dist/poi/index.js +6 -5
  136. package/dist/poi/index.js.map +1 -1
  137. package/dist/poi/plane/index.d.ts +21 -0
  138. package/dist/poi/plane/index.js +127 -0
  139. package/dist/poi/plane/index.js.map +1 -0
  140. package/dist/postEffects/addACESFilmicToneMappingPass.js.map +1 -1
  141. package/dist/postEffects/addBrightnessContrastPass.js.map +1 -1
  142. package/dist/postEffects/bloomPass.d.ts +1 -1
  143. package/dist/postEffects/bloomPass.js.map +1 -1
  144. package/dist/postEffects/bloomSelect.d.ts +10 -1
  145. package/dist/postEffects/bloomSelect.js +14 -6
  146. package/dist/postEffects/bloomSelect.js.map +1 -1
  147. package/dist/postEffects/colorifyPass.js +1 -1
  148. package/dist/postEffects/colorifyPass.js.map +1 -1
  149. package/dist/postEffects/index.d.ts +1 -1
  150. package/dist/postEffects/index.js +3 -2
  151. package/dist/postEffects/index.js.map +1 -1
  152. package/dist/postEffects/outlinePass.d.ts +1 -1
  153. package/dist/postEffects/outlinePass.js +5 -5
  154. package/dist/postEffects/outlinePass.js.map +1 -1
  155. package/dist/postEffects/postprocessing.d.ts +2 -0
  156. package/dist/postEffects/postprocessing.js +55 -0
  157. package/dist/postEffects/postprocessing.js.map +1 -0
  158. package/dist/postEffects/saoPass.d.ts +6 -0
  159. package/dist/postEffects/saoPass.js +26 -0
  160. package/dist/postEffects/saoPass.js.map +1 -0
  161. package/dist/postEffects/shader/colorify.d.ts +1 -1
  162. package/dist/postEffects/shader/gammaCorrectionShader.d.ts +1 -1
  163. package/dist/postEffects/shader/mapping.d.ts +1 -1
  164. package/dist/postEffects/shader/thermalMaging.d.ts +1 -1
  165. package/dist/scene/grow/grow.js +3 -4
  166. package/dist/scene/grow/grow.js.map +1 -1
  167. package/dist/scene/grow/style_down.js +3 -3
  168. package/dist/scene/grow/style_down.js.map +1 -1
  169. package/dist/scene/grow/style_up.js +3 -3
  170. package/dist/scene/grow/style_up.js.map +1 -1
  171. package/dist/scene/grow/type.js +5 -5
  172. package/dist/scene/grow/type.js.map +1 -1
  173. package/dist/utils/index.d.ts +1 -1
  174. package/dist/utils/index.js.map +1 -1
  175. package/dist/weather/index.js +12 -11
  176. package/dist/weather/index.js.map +1 -1
  177. package/dist/weather/objects/CloudMesh.js +5 -5
  178. package/dist/weather/objects/CloudMesh.js.map +1 -1
  179. package/dist/weather/objects/Fog2DMesh.js +5 -5
  180. package/dist/weather/objects/Fog2DMesh.js.map +1 -1
  181. package/dist/weather/objects/RainMesh.js +5 -5
  182. package/dist/weather/objects/RainMesh.js.map +1 -1
  183. package/dist/weather/objects/SkyMesh.js +3 -3
  184. package/dist/weather/objects/SkyMesh.js.map +1 -1
  185. package/dist/weather/objects/SnowMesh.js +4 -4
  186. package/dist/weather/objects/SnowMesh.js.map +1 -1
  187. package/dist/weather/shaders/RainPlane.d.ts +2 -2
  188. package/dist/weather/shaders/cloud.d.ts +2 -2
  189. package/dist/weather/shaders/snow.d.ts +2 -2
  190. package/dist/weather/utils/constant.d.ts +1 -1
  191. package/dist/weather/utils/constant.js +9 -10
  192. package/dist/weather/utils/constant.js.map +1 -1
  193. package/dist/widget/icon.js +3 -3
  194. package/dist/widget/icon.js.map +1 -1
  195. package/dist/widget/image.js +3 -3
  196. package/dist/widget/image.js.map +1 -1
  197. package/dist/widget/label.js +5 -5
  198. package/dist/widget/label.js.map +1 -1
  199. package/package.json +8 -6
  200. package/dist/poi/2D/index.js.map +0 -1
  201. package/dist/poi/3D/index.js.map +0 -1
  202. package/dist/poi/3D/index1.js.map +0 -1
  203. package/dist/poi/3D/type.js +0 -6
  204. package/dist/poi/3D/type.js.map +0 -1
  205. package/dist/poi/Base.js.map +0 -1
  206. package/dist/poi/Sprite/index.js.map +0 -1
  207. package/dist/poi/Sprite/index2.js +0 -184
  208. package/dist/poi/Sprite/index2.js.map +0 -1
  209. package/dist/poi/utils/canvas.js +0 -68
  210. package/dist/poi/utils/canvas.js.map +0 -1
  211. package/dist/poi/utils/element.js.map +0 -1
  212. package/dist/poi/utils/type.js.map +0 -1
  213. /package/dist/poi/{2D → disable/2D}/index.d.ts +0 -0
  214. /package/dist/poi/{3D → disable/3D}/index.d.ts +0 -0
  215. /package/dist/poi/{3D → disable/3D}/type.d.ts +0 -0
  216. /package/dist/poi/{Base.d.ts → disable/Base.d.ts} +0 -0
  217. /package/dist/poi/{Sprite → disable/Sprite}/index.d.ts +0 -0
  218. /package/dist/poi/{Sprite → disable/Sprite}/index2.d.ts +0 -0
  219. /package/dist/poi/{utils → disable/utils}/canvas.d.ts +0 -0
  220. /package/dist/poi/{utils → disable/utils}/element.d.ts +0 -0
@@ -1,5 +1,4 @@
1
1
  import { Color, Layers, MeshBasicMaterial, ShaderMaterial, SpriteMaterial, Vector2, lib, use, utils } from '@anov/3d-core';
2
- import ColorifyShader from "./shader/colorify";
3
2
  var EffectComposer = lib.EffectComposer,
4
3
  RenderPass = lib.RenderPass,
5
4
  UnrealBloomPass = lib.UnrealBloomPass,
@@ -8,6 +7,16 @@ var EffectComposer = lib.EffectComposer,
8
7
  CopyShader = lib.CopyShader,
9
8
  FXAAShader = lib.FXAAShader;
10
9
  var storeManagement = utils.storeManagement;
10
+ /**
11
+ * @file createBloomSelectedTool
12
+ * todo 待优化
13
+ */
14
+
15
+ /**
16
+ * createBloomSelectedTool
17
+ * @param highParams
18
+ * @returns
19
+ */
11
20
  var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
12
21
  var _use$useScene = use.useScene(),
13
22
  scene = _use$useScene.scene,
@@ -36,10 +45,6 @@ var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
36
45
  bloomComposer.addPass(bloomPass);
37
46
  var effectCopy = new ShaderPass(CopyShader);
38
47
  effectCopy.renderToScreen = true;
39
- var colorify = new ShaderPass(ColorifyShader);
40
- colorify.enabled = true;
41
- colorify.uniforms.color.value = new Color('#000');
42
- colorify.uniforms.alpha.value = 0.2;
43
48
  var effectFXAA = new ShaderPass(FXAAShader);
44
49
  effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight);
45
50
  var mixPass = new ShaderPass(new ShaderMaterial({
@@ -61,7 +66,6 @@ var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
61
66
  composer.addPass(mixPass);
62
67
  composer.addPass(gammaCorrectionShader);
63
68
  composer.addPass(effectCopy);
64
- composer.addPass(colorify);
65
69
  var materials = {};
66
70
  var darkMaterial = new MeshBasicMaterial({
67
71
  color: 'black'
@@ -71,6 +75,8 @@ var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
71
75
  * 性能消耗太大了
72
76
  */
73
77
  var cleanBloomBefore = use.useframeAfter(function () {
78
+ 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;
74
80
  scene.traverse(function (obj) {
75
81
  if (!obj.visible) return;
76
82
  if (obj.type === 'SpritePoi') {
@@ -87,6 +93,7 @@ var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
87
93
  });
88
94
  }
89
95
  }
96
+ if (scene.background) scene.background = new Color('#000');
90
97
  if (obj.isMesh && bloomLayer.test(obj.layers) === false) {
91
98
  materials[obj.uuid] = obj.material;
92
99
  obj.material = darkMaterial;
@@ -100,6 +107,7 @@ var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
100
107
  delete materials[obj.uuid];
101
108
  }
102
109
  });
110
+ if (old) scene.background = old;
103
111
  composer.render();
104
112
  });
105
113
  var bloomSelected = function bloomSelected(object3dArray) {
@@ -1 +1 @@
1
- {"version":3,"names":["Color","Layers","MeshBasicMaterial","ShaderMaterial","SpriteMaterial","Vector2","lib","use","utils","ColorifyShader","EffectComposer","RenderPass","UnrealBloomPass","ShaderPass","GammaCorrectionShader","CopyShader","FXAAShader","storeManagement","createBloomSelectedTool","highParams","useScene","scene","camera","renderer","strength","radius","threshold","composer","get","Error","isNeedRender","BLOOM_SCENE","bloomLayer","set","renderScene","bloomPass","window","innerWidth","innerHeight","bloomComposer","renderToScreen","addPass","effectCopy","colorify","enabled","uniforms","color","value","alpha","effectFXAA","resolution","mixPass","baseTexture","bloomTexture","renderTarget2","texture","vertexShader","fragmentShader","defines","needsSwap","gammaCorrectionShader","materials","darkMaterial","cleanBloomBefore","useframeAfter","traverse","obj","visible","type","material","map","transparent","opacity","depthTest","uuid","isMesh","test","layers","render","bloomSelected","object3dArray","forEach","object3d","enable","child","clean"],"sources":["../../src/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'\nimport ColorifyShader from './shader/colorify'\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\nconst 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 colorify = new ShaderPass(ColorifyShader)\n colorify.enabled = true\n\n colorify.uniforms.color.value = new Color('#000')\n colorify.uniforms.alpha.value = 0.2\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 composer.addPass(colorify)\n\n const materials = {} as any\n const darkMaterial = new MeshBasicMaterial({ color: 'black' })\n\n /**\n * 性能消耗太大了\n */\n const cleanBloomBefore = use.useframeAfter(() => {\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\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 (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 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\nexport default createBloomSelectedTool"],"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","_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/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 */\nconst 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\nexport default createBloomSelectedTool"],"mappings":"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"}
@@ -17,8 +17,8 @@ var addColorifyPass = function addColorifyPass(color) {
17
17
  colorify.enabled = true;
18
18
  colorify.uniforms.color.value = color;
19
19
  colorify.uniforms.alpha.value = alpha;
20
- composer.addPass(effectCopy);
21
20
  composer.addPass(colorify);
21
+ composer.addPass(effectCopy);
22
22
  return {
23
23
  clean: function clean() {
24
24
  composer.removePass(effectCopy);
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","ColorifyShader","storeManagement","CopyShader","ShaderPass","addColorifyPass","color","alpha","useScene","scene","camera","composer","get","Error","effectCopy","renderToScreen","colorify","enabled","uniforms","value","addPass","clean","removePass","setColor"],"sources":["../../src/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(effectCopy)\n composer.addPass(colorify)\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,eAAe,CAAIC,KAAY,EAAkB;EAAA,IAAhBC,KAAK,uEAAG,GAAG;EAChD,oBAA0BR,GAAG,CAACS,QAAQ,EAAE;IAAhCC,KAAK,iBAALA,KAAK;IAAEC,MAAM,iBAANA,MAAM;EACrB,IAAMC,QAAQ,GAAGT,eAAe,CAACU,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,IAAIV,UAAU,CAACD,UAAU,CAAC;EAC7CW,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhC,IAAMC,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,CAACN,UAAU,CAAC;EAC5BH,QAAQ,CAACS,OAAO,CAACJ,QAAQ,CAAC;EAE1B,OAAO;IACLK,KAAK,EAAE,iBAAM;MACXV,QAAQ,CAACW,UAAU,CAACR,UAAU,CAAC;MAC/BH,QAAQ,CAACW,UAAU,CAACN,QAAQ,CAAC;IAC/B,CAAC;IACDO,QAAQ,EAAE,kBAACjB,KAAY,EAAK;MAC1BU,QAAQ,CAACE,QAAQ,CAACZ,KAAK,CAACa,KAAK,GAAGb,KAAK;IACvC;EACF,CAAC;AACH,CAAC;AAED,eAAeD,eAAe"}
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/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,6 +1,6 @@
1
1
  import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core';
2
2
  import { lib } from '@anov/3d-core';
3
- declare type InitPostEffectsOptions = {
3
+ type InitPostEffectsOptions = {
4
4
  type: 'main' | 'sub';
5
5
  beforehooks?: () => void;
6
6
  afterhooks?: () => void;
@@ -16,8 +16,6 @@ var clean;
16
16
  * @returns
17
17
  */
18
18
  export var initPostEffects = function initPostEffects(scene, renderer, camera, options) {
19
- var composer = new EffectComposer(renderer);
20
- var renderPass = new RenderPass(scene, camera);
21
19
  var _ref = options || {
22
20
  type: 'main'
23
21
  },
@@ -26,12 +24,15 @@ export var initPostEffects = function initPostEffects(scene, renderer, camera, o
26
24
  afterhooks = _ref.afterhooks,
27
25
  _ref$renderToScreen = _ref.renderToScreen,
28
26
  renderToScreen = _ref$renderToScreen === void 0 ? true : _ref$renderToScreen;
27
+ var composer = new EffectComposer(renderer);
28
+ var renderPass = new RenderPass(scene, camera);
29
29
  var func = type === 'main' ? useComposerFrame : useSubComposerFrame;
30
30
  clean && clean();
31
31
  storeManagement.set('composer', composer);
32
32
  storeManagement.set('renderPass', renderPass);
33
33
  composer.addPass(renderPass);
34
34
  composer.renderToScreen = renderToScreen;
35
+
35
36
  // @ts-ignore
36
37
  composer.isNeedRender = true;
37
38
  var cleanEffectsframe = func(function () {
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","composer","renderPass","type","beforehooks","afterhooks","renderToScreen","func","set","addPass","isNeedRender","cleanEffectsframe","render","delete"],"sources":["../../src/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 composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n\n const { type, beforehooks, afterhooks, renderToScreen = true } = options || { type: 'main' }\n\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 // @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}"],"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,eAAe,CAC1BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACdC,OAAgC,EAC7B;EACH,IAAMC,QAAQ,GAAG,IAAIX,cAAc,CAACQ,QAAQ,CAAC;EAC7C,IAAMI,UAAU,GAAG,IAAIX,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAEhD,WAAiEC,OAAO,IAAI;MAAEG,IAAI,EAAE;IAAO,CAAC;IAApFA,IAAI,QAAJA,IAAI;IAAEC,WAAW,QAAXA,WAAW;IAAEC,UAAU,QAAVA,UAAU;IAAA,2BAAEC,cAAc;IAAdA,cAAc,oCAAG,IAAI;EAE5D,IAAMC,IAAI,GAAGJ,IAAI,KAAK,MAAM,GAAGT,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,EAAE;EAEhBH,eAAe,CAACgB,GAAG,CAAC,UAAU,EAAEP,QAAQ,CAAC;EACzCT,eAAe,CAACgB,GAAG,CAAC,YAAY,EAAEN,UAAU,CAAC;EAE7CD,QAAQ,CAACQ,OAAO,CAACP,UAAU,CAAC;EAC5BD,QAAQ,CAACK,cAAc,GAAGA,cAAc;EACxC;EACAL,QAAQ,CAACS,YAAY,GAAG,IAAI;EAE5B,IAAMC,iBAAiB,GAAGJ,IAAI,CAAE,YAAM;IACpCH,WAAW,IAAIA,WAAW,EAAE;IAC5B;IACAH,QAAQ,CAACS,YAAY,IAAIT,QAAQ,CAACW,MAAM,EAAE;IAC1CP,UAAU,IAAIA,UAAU,EAAE;EAC5B,CAAC,CAAC;EAEFV,KAAK,GAAG,iBAAM;IACZH,eAAe,CAACqB,MAAM,CAAC,UAAU,CAAC;IAClCrB,eAAe,CAACqB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,EAAE;EACrB,CAAC;EAED,OAAO;IACLV,QAAQ,EAARA,QAAQ;IACRN,KAAK,EAALA;EACF,CAAC;AACH,CAAC"}
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/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}"],"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Object3D } from '@anov/3d-core';
2
- declare type HighParamsType = {
2
+ type HighParamsType = {
3
3
  edgeStrength?: number;
4
4
  edgeGlow?: number;
5
5
  edgeThickness?: number;
@@ -1,9 +1,9 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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 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; }
3
+ 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; }
4
4
  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; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ 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); }
7
7
  import { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core';
8
8
  var storeManagement = utils.storeManagement;
9
9
  var ShaderPass = lib.ShaderPass,
@@ -1 +1 @@
1
- {"version":3,"names":["OutlinePassExtend","Vector2","lib","use","utils","storeManagement","ShaderPass","FXAAShader","GammaCorrectionShader","useScene","createHighSelectedTool","highParams","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","lastHighParams","scene","camera","composer","get","Error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects"],"sources":["../../src/postEffects/outlinePass.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core'\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, FXAAShader, GammaCorrectionShader } = lib\nconst { useScene } = use\n\n/**\n *\n * @param highParams\n * @returns\n */\nconst createHighSelectedTool = (highParams?: HighParamsType) => {\n const baseHighParams = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: 'red',\n hiddenEdgeColor: 'red',\n }\n\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 throw new Error('composer is not defined, please initPostEffects first')\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\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 // todo bugfix\n // const effectFXAA = new ShaderPass(FXAAShader)\n // effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n // effectFXAA.renderToScreen = true\n // composer.addPass(effectFXAA)\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport default createHighSelectedTool\n"],"mappings":";;;;;;AACA,SAASA,iBAAiB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAW3E,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,UAAU,GAAwCJ,GAAG,CAArDI,UAAU;EAAEC,UAAU,GAA4BL,GAAG,CAAzCK,UAAU;EAAEC,qBAAqB,GAAKN,GAAG,CAA7BM,qBAAqB;AACrD,IAAQC,QAAQ,GAAKN,GAAG,CAAhBM,QAAQ;;AAEhB;AACA;AACA;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,CAAIC,UAA2B,EAAK;EAC9D,IAAMC,cAAc,GAAG;IACrBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,CAAC;IACXC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE,KAAK;IACvBC,eAAe,EAAE;EACnB,CAAC;EAED,IAAMC,cAAc,mCACfN,cAAc,GACdD,UAAU,CACd;EAED,gBAA0BF,QAAQ,EAAE;IAA5BU,KAAK,aAALA,KAAK;IAAEC,MAAM,aAANA,MAAM;EACrB,IAAMC,QAAQ,GAAGhB,eAAe,CAACiB,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,WAAW,GAAG,IAAIxB,iBAAiB,CAAC,IAAIC,OAAO,CAACwB,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;EAE5GI,WAAW,CAACX,YAAY,GAAGK,cAAc,CAACL,YAAY;EACtDW,WAAW,CAACV,QAAQ,GAAGI,cAAc,CAACJ,QAAQ;EAC9CU,WAAW,CAACT,aAAa,GAAGG,cAAc,CAACH,aAAa;EACxDG,cAAc,CAACU,WAAW,KAAKJ,WAAW,CAACI,WAAW,GAAGV,cAAc,CAACU,WAAW,CAAC;EACpFJ,WAAW,CAACR,gBAAgB,CAACa,GAAG,CAACX,cAAc,CAACF,gBAAgB,CAAC;EAEjEK,QAAQ,CAACS,OAAO,CAACN,WAAW,CAAC;EAE7B,IAAMO,qBAAqB,GAAG,IAAIzB,UAAU,CAACE,qBAAqB,CAAC;EAEnE,IAAI,CAACH,eAAe,CAACiB,GAAG,CAAU,6BAA6B,CAAC,EAAE;IAChED,QAAQ,CAACS,OAAO,CAACC,qBAAqB,CAAC;IACvC1B,eAAe,CAACwB,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,UAACG,aAAyB,EAAK;IACpCR,WAAW,CAACS,eAAe,GAAGD,aAAa;EAC7C,CAAC;AACH,CAAC;AAED,eAAetB,sBAAsB"}
1
+ {"version":3,"names":["OutlinePassExtend","Vector2","lib","use","utils","storeManagement","ShaderPass","FXAAShader","GammaCorrectionShader","useScene","createHighSelectedTool","highParams","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","lastHighParams","_objectSpread","_useScene","scene","camera","composer","get","Error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects"],"sources":["../../src/postEffects/outlinePass.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core'\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, FXAAShader, GammaCorrectionShader } = lib\nconst { useScene } = use\n\n/**\n *\n * @param highParams\n * @returns\n */\nconst createHighSelectedTool = (highParams?: HighParamsType) => {\n const baseHighParams = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: 'red',\n hiddenEdgeColor: 'red',\n }\n\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 throw new Error('composer is not defined, please initPostEffects first')\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\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 // todo bugfix\n // const effectFXAA = new ShaderPass(FXAAShader)\n // effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n // effectFXAA.renderToScreen = true\n // composer.addPass(effectFXAA)\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport default createHighSelectedTool\n"],"mappings":";;;;;;AACA,SAASA,iBAAiB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAW3E,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,UAAU,GAAwCJ,GAAG,CAArDI,UAAU;EAAEC,UAAU,GAA4BL,GAAG,CAAzCK,UAAU;EAAEC,qBAAqB,GAAKN,GAAG,CAA7BM,qBAAqB;AACrD,IAAQC,QAAQ,GAAKN,GAAG,CAAhBM,QAAQ;;AAEhB;AACA;AACA;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,UAA2B,EAAK;EAC9D,IAAMC,cAAc,GAAG;IACrBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,CAAC;IACXC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE,KAAK;IACvBC,eAAe,EAAE;EACnB,CAAC;EAED,IAAMC,cAAc,GAAAC,aAAA,CAAAA,aAAA,KACfP,cAAc,GACdD,UAAU,CACd;EAED,IAAAS,SAAA,GAA0BX,QAAQ,CAAC,CAAC;IAA5BY,KAAK,GAAAD,SAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,SAAA,CAANE,MAAM;EACrB,IAAMC,QAAQ,GAAGlB,eAAe,CAACmB,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,WAAW,GAAG,IAAI1B,iBAAiB,CAAC,IAAIC,OAAO,CAAC0B,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;EAE5GI,WAAW,CAACb,YAAY,GAAGK,cAAc,CAACL,YAAY;EACtDa,WAAW,CAACZ,QAAQ,GAAGI,cAAc,CAACJ,QAAQ;EAC9CY,WAAW,CAACX,aAAa,GAAGG,cAAc,CAACH,aAAa;EACxDG,cAAc,CAACY,WAAW,KAAKJ,WAAW,CAACI,WAAW,GAAGZ,cAAc,CAACY,WAAW,CAAC;EACpFJ,WAAW,CAACV,gBAAgB,CAACe,GAAG,CAACb,cAAc,CAACF,gBAAgB,CAAC;EAEjEO,QAAQ,CAACS,OAAO,CAACN,WAAW,CAAC;EAE7B,IAAMO,qBAAqB,GAAG,IAAI3B,UAAU,CAACE,qBAAqB,CAAC;EAEnE,IAAI,CAACH,eAAe,CAACmB,GAAG,CAAU,6BAA6B,CAAC,EAAE;IAChED,QAAQ,CAACS,OAAO,CAACC,qBAAqB,CAAC;IACvC5B,eAAe,CAAC0B,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,UAACG,aAAyB,EAAK;IACpCR,WAAW,CAACS,eAAe,GAAGD,aAAa;EAC7C,CAAC;AACH,CAAC;AAED,eAAexB,sBAAsB"}
@@ -0,0 +1,2 @@
1
+ import { type Camera, type Scene, type WebGLRenderer } from '@anov/3d-core';
2
+ export declare const initPostEffectsV2: (scene: Scene, renderer: WebGLRenderer, camera: Camera) => void;
@@ -0,0 +1,55 @@
1
+ import { use } from '@anov/3d-core';
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);
6
+ composer.addPass(new RenderPass(scene, camera));
7
+ var normalPass = new NormalPass(scene, camera);
8
+ var depthDownsamplingPass = new DepthDownsamplingPass({
9
+ normalBuffer: normalPass.texture,
10
+ resolutionScale: 0.5
11
+ });
12
+ var normalDepthBuffer = depthDownsamplingPass.texture;
13
+ var smaaEffect = new SMAAEffect({
14
+ preset: SMAAPreset.MEDIUM,
15
+ edgeDetectionMode: EdgeDetectionMode.COLOR,
16
+ predicationMode: PredicationMode.DEPTH
17
+ });
18
+ smaaEffect.edgeDetectionMaterial.setEdgeDetectionThreshold(0.01);
19
+ var ssaoEffect = new SSAOEffect(camera, normalPass.texture, {
20
+ blendFunction: BlendFunction.MULTIPLY,
21
+ distanceScaling: true,
22
+ depthAwareUpsampling: true,
23
+ normalDepthBuffer: normalDepthBuffer,
24
+ samples: 9,
25
+ rings: 7,
26
+ distanceThreshold: 0.02,
27
+ // Render up to a distance of ~20 world units
28
+ distanceFalloff: 0.0025,
29
+ // with an additional ~2.5 units of falloff.
30
+ rangeThreshold: 0.0003,
31
+ // Occlusion proximity of ~0.3 world units
32
+ rangeFalloff: 0.0001,
33
+ // with ~0.1 units of falloff.
34
+ luminanceInfluence: 0.7,
35
+ minRadiusScale: 0.33,
36
+ radius: 0.1,
37
+ intensity: 1.33,
38
+ bias: 0.025,
39
+ fade: 0.01,
40
+ color: null,
41
+ resolutionScale: 0.5
42
+ });
43
+ var textureEffect = new TextureEffect({
44
+ blendFunction: BlendFunction.SKIP,
45
+ texture: depthDownsamplingPass.texture
46
+ });
47
+ var effectPass = new EffectPass(camera, smaaEffect, ssaoEffect, textureEffect);
48
+ composer.addPass(normalPass);
49
+ composer.addPass(depthDownsamplingPass);
50
+ composer.addPass(effectPass);
51
+ useComposerFrame(function () {
52
+ composer.render();
53
+ });
54
+ };
55
+ //# sourceMappingURL=postprocessing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["use","BlendFunction","DepthDownsamplingPass","EdgeDetectionMode","EffectComposer","EffectPass","NormalPass","PredicationMode","RenderPass","SMAAEffect","SMAAPreset","SSAOEffect","TextureEffect","useComposerFrame","initPostEffectsV2","scene","renderer","camera","composer","addPass","normalPass","depthDownsamplingPass","normalBuffer","texture","resolutionScale","normalDepthBuffer","smaaEffect","preset","MEDIUM","edgeDetectionMode","COLOR","predicationMode","DEPTH","edgeDetectionMaterial","setEdgeDetectionThreshold","ssaoEffect","blendFunction","MULTIPLY","distanceScaling","depthAwareUpsampling","samples","rings","distanceThreshold","distanceFalloff","rangeThreshold","rangeFalloff","luminanceInfluence","minRadiusScale","radius","intensity","bias","fade","color","textureEffect","SKIP","effectPass","render"],"sources":["../../src/postEffects/postprocessing.ts"],"sourcesContent":["import { type Camera, type Scene, type WebGLRenderer, use } from '@anov/3d-core'\nimport { BlendFunction, DepthDownsamplingPass, EdgeDetectionMode, EffectComposer, EffectPass, NormalPass, PredicationMode, RenderPass, SMAAEffect, SMAAPreset, SSAOEffect, TextureEffect } from 'postprocessing'\n\nconst { useComposerFrame } = use\n\nexport const initPostEffectsV2 = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n) => {\n const composer = new EffectComposer(renderer)\n composer.addPass(new RenderPass(scene, camera))\n\n const normalPass = new NormalPass(scene, camera)\n const depthDownsamplingPass = new DepthDownsamplingPass({\n normalBuffer: normalPass.texture,\n resolutionScale: 0.5,\n })\n\n const normalDepthBuffer = depthDownsamplingPass.texture\n\n const smaaEffect = new SMAAEffect({\n preset: SMAAPreset.MEDIUM,\n edgeDetectionMode: EdgeDetectionMode.COLOR,\n predicationMode: PredicationMode.DEPTH,\n })\n\n smaaEffect.edgeDetectionMaterial.setEdgeDetectionThreshold(0.01)\n\n const ssaoEffect = new SSAOEffect(camera, normalPass.texture, {\n blendFunction: BlendFunction.MULTIPLY,\n distanceScaling: true,\n depthAwareUpsampling: true,\n normalDepthBuffer,\n samples: 9,\n rings: 7,\n distanceThreshold: 0.02, // Render up to a distance of ~20 world units\n distanceFalloff: 0.0025, // with an additional ~2.5 units of falloff.\n rangeThreshold: 0.0003, // Occlusion proximity of ~0.3 world units\n rangeFalloff: 0.0001, // with ~0.1 units of falloff.\n luminanceInfluence: 0.7,\n minRadiusScale: 0.33,\n radius: 0.1,\n intensity: 1.33,\n bias: 0.025,\n fade: 0.01,\n color: null,\n resolutionScale: 0.5,\n })\n\n const textureEffect = new TextureEffect({\n blendFunction: BlendFunction.SKIP,\n texture: depthDownsamplingPass.texture,\n })\n\n const effectPass = new EffectPass(camera, smaaEffect, ssaoEffect, textureEffect)\n\n composer.addPass(normalPass)\n composer.addPass(depthDownsamplingPass)\n composer.addPass(effectPass)\n\n useComposerFrame(() => {\n composer.render()\n })\n}"],"mappings":"AAAA,SAAsDA,GAAG,QAAQ,eAAe;AAChF,SAASC,aAAa,EAAEC,qBAAqB,EAAEC,iBAAiB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAAEC,aAAa,QAAQ,gBAAgB;AAEhN,IAAQC,gBAAgB,GAAKb,GAAG,CAAxBa,gBAAgB;AAExB,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACX;EACH,IAAMC,QAAQ,GAAG,IAAId,cAAc,CAACY,QAAQ,CAAC;EAC7CE,QAAQ,CAACC,OAAO,CAAC,IAAIX,UAAU,CAACO,KAAK,EAAEE,MAAM,CAAC,CAAC;EAE/C,IAAMG,UAAU,GAAG,IAAId,UAAU,CAACS,KAAK,EAAEE,MAAM,CAAC;EAChD,IAAMI,qBAAqB,GAAG,IAAInB,qBAAqB,CAAC;IACtDoB,YAAY,EAAEF,UAAU,CAACG,OAAO;IAChCC,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,IAAMC,iBAAiB,GAAGJ,qBAAqB,CAACE,OAAO;EAEvD,IAAMG,UAAU,GAAG,IAAIjB,UAAU,CAAC;IAChCkB,MAAM,EAAEjB,UAAU,CAACkB,MAAM;IACzBC,iBAAiB,EAAE1B,iBAAiB,CAAC2B,KAAK;IAC1CC,eAAe,EAAExB,eAAe,CAACyB;EACnC,CAAC,CAAC;EAEFN,UAAU,CAACO,qBAAqB,CAACC,yBAAyB,CAAC,IAAI,CAAC;EAEhE,IAAMC,UAAU,GAAG,IAAIxB,UAAU,CAACM,MAAM,EAAEG,UAAU,CAACG,OAAO,EAAE;IAC5Da,aAAa,EAAEnC,aAAa,CAACoC,QAAQ;IACrCC,eAAe,EAAE,IAAI;IACrBC,oBAAoB,EAAE,IAAI;IAC1Bd,iBAAiB,EAAjBA,iBAAiB;IACjBe,OAAO,EAAE,CAAC;IACVC,KAAK,EAAE,CAAC;IACRC,iBAAiB,EAAE,IAAI;IAAE;IACzBC,eAAe,EAAE,MAAM;IAAE;IACzBC,cAAc,EAAE,MAAM;IAAE;IACxBC,YAAY,EAAE,MAAM;IAAE;IACtBC,kBAAkB,EAAE,GAAG;IACvBC,cAAc,EAAE,IAAI;IACpBC,MAAM,EAAE,GAAG;IACXC,SAAS,EAAE,IAAI;IACfC,IAAI,EAAE,KAAK;IACXC,IAAI,EAAE,IAAI;IACVC,KAAK,EAAE,IAAI;IACX5B,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,IAAM6B,aAAa,GAAG,IAAIzC,aAAa,CAAC;IACtCwB,aAAa,EAAEnC,aAAa,CAACqD,IAAI;IACjC/B,OAAO,EAAEF,qBAAqB,CAACE;EACjC,CAAC,CAAC;EAEF,IAAMgC,UAAU,GAAG,IAAIlD,UAAU,CAACY,MAAM,EAAES,UAAU,EAAES,UAAU,EAAEkB,aAAa,CAAC;EAEhFnC,QAAQ,CAACC,OAAO,CAACC,UAAU,CAAC;EAC5BF,QAAQ,CAACC,OAAO,CAACE,qBAAqB,CAAC;EACvCH,QAAQ,CAACC,OAAO,CAACoC,UAAU,CAAC;EAE5B1C,gBAAgB,CAAC,YAAM;IACrBK,QAAQ,CAACsC,MAAM,CAAC,CAAC;EACnB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * add ssao 环境光遮蔽
3
+ * @returns
4
+ */
5
+ declare const addSAOPass: () => () => void;
6
+ export default addSAOPass;
@@ -0,0 +1,26 @@
1
+ import { OutputPass, lib, use, utils } from '@anov/3d-core';
2
+ var storeManagement = utils.storeManagement;
3
+ var SAOPass = lib.SAOPass;
4
+
5
+ /**
6
+ * add ssao 环境光遮蔽
7
+ * @returns
8
+ */
9
+ var addSAOPass = function addSAOPass() {
10
+ var _use$useScene = use.useScene(),
11
+ scene = _use$useScene.scene,
12
+ camera = _use$useScene.camera;
13
+ var composer = storeManagement.get('composer');
14
+ if (!scene || !camera) throw new Error('scene or camera is not defined,');
15
+ if (!composer) throw new Error('composer is not defined, please initPostEffects first');
16
+ var saoPass = new SAOPass(scene, camera);
17
+ composer.addPass(saoPass);
18
+ var outputPass = new OutputPass();
19
+ composer.addPass(outputPass);
20
+ return function () {
21
+ composer.removePass(saoPass);
22
+ composer.removePass(outputPass);
23
+ };
24
+ };
25
+ export default addSAOPass;
26
+ //# sourceMappingURL=saoPass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutputPass","lib","use","utils","storeManagement","SAOPass","addSAOPass","_use$useScene","useScene","scene","camera","composer","get","Error","saoPass","addPass","outputPass","removePass"],"sources":["../../src/postEffects/saoPass.ts"],"sourcesContent":["import { OutputPass, lib, use, utils } from '@anov/3d-core'\n\nconst { storeManagement } = utils\nconst { SAOPass } = lib\n\n/**\n * add ssao 环境光遮蔽\n * @returns\n */\nconst addSAOPass = () => {\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 saoPass = new SAOPass(scene, camera)\n composer.addPass(saoPass)\n\n const outputPass = new OutputPass()\n composer.addPass(outputPass)\n\n return () => {\n composer.removePass(saoPass)\n composer.removePass(outputPass)\n }\n}\n\nexport default addSAOPass\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE3D,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,OAAO,GAAKJ,GAAG,CAAfI,OAAO;;AAEf;AACA;AACA;AACA;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACvB,IAAAC,aAAA,GAA0BL,GAAG,CAACM,QAAQ,CAAC,CAAC;IAAhCC,KAAK,GAAAF,aAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;EACrB,IAAMC,QAAQ,GAAGP,eAAe,CAACQ,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,OAAO,GAAG,IAAIT,OAAO,CAACI,KAAK,EAAEC,MAAM,CAAC;EAC1CC,QAAQ,CAACI,OAAO,CAACD,OAAO,CAAC;EAEzB,IAAME,UAAU,GAAG,IAAIhB,UAAU,CAAC,CAAC;EACnCW,QAAQ,CAACI,OAAO,CAACC,UAAU,CAAC;EAE5B,OAAO,YAAM;IACXL,QAAQ,CAACM,UAAU,CAACH,OAAO,CAAC;IAC5BH,QAAQ,CAACM,UAAU,CAACD,UAAU,CAAC;EACjC,CAAC;AACH,CAAC;AAED,eAAeV,UAAU"}
@@ -2,7 +2,7 @@ import { Color } from '@anov/3d-core';
2
2
  declare const ColorifyShader: {
3
3
  uniforms: {
4
4
  tDiffuse: {
5
- value: null;
5
+ value: any;
6
6
  };
7
7
  color: {
8
8
  value: Color;
@@ -6,7 +6,7 @@ declare const GammaCorrectionShader: {
6
6
  name: string;
7
7
  uniforms: {
8
8
  tDiffuse: {
9
- value: null;
9
+ value: any;
10
10
  };
11
11
  };
12
12
  vertexShader: string;
@@ -7,7 +7,7 @@ declare const ACESFilmicToneMappingShader: {
7
7
  name: string;
8
8
  uniforms: {
9
9
  tDiffuse: {
10
- value: null;
10
+ value: any;
11
11
  };
12
12
  exposure: {
13
13
  value: number;
@@ -2,7 +2,7 @@ import { Vector2, Vector3 } from '@anov/3d-core';
2
2
  declare const thermalMagingShader: {
3
3
  uniforms: {
4
4
  tDiffuse: {
5
- value: null;
5
+ value: any;
6
6
  };
7
7
  iResolution: {
8
8
  value: Vector2;
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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
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
5
  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; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
8
  import { Box3, Object3D, Vector3, use } from '@anov/3d-core';
9
9
  import { EEaseType, ESceneGrowType } from "./type";
10
10
  import { GrowStyleDown, GrowStyleUp } from "./growStyle";
@@ -77,7 +77,6 @@ export var Grow = /*#__PURE__*/function () {
77
77
  // 可选,初始化UP/DOWN起始旋转角度,默认true
78
78
  isScale: true // 可选,初始化UP/DOWN起始缩放大小,默认true
79
79
  };
80
-
81
80
  Object.assign(this.option, opt);
82
81
  // ------- 1.初始化目标对象 --------
83
82
  this.objs.length = 0;
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","Object3D","Vector3","use","EEaseType","ESceneGrowType","GrowStyleDown","GrowStyleUp","Grow","opt","objs","option","growStyle","init","callback","onGrowInStart","getTimeLine","eventCallback","onGrowInCompleted","in","onGrowOutStart","onGrowOutCompleted","out","tag","type","Up","time","gapTime","ease","SineInOut","center","scale","distance","isRotate","isScale","Object","assign","length","useScene","scene","traverseVisible","object","push","userData","Array","isArray","includes","boundingBox","i","expandByObject","getCenter","Down","onGrowInitCompleted"],"sources":["../../../src/scene/grow/grow.ts"],"sourcesContent":["import { Box3, Object3D, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\nimport { EEaseType, ESceneGrowType } from './type'\nimport { GrowStyleDown, GrowStyleUp } from './growStyle'\n\n// 生长动画对象\nexport class Grow {\n private objs: Array<Object3D>\n private option: GrowOption\n private growStyle: IGrowStyle\n\n constructor(opt?: GrowOption) {\n this.objs = []\n this.option = {}\n // @ts-ignore\n this.growStyle = null\n this.init(opt || {})\n }\n\n // 生长\n in(callback: () => void) {\n // 入场事件\n this.option.onGrowInStart && this.option.onGrowInStart()\n\n this.growStyle.getTimeLine().eventCallback('onComplete', () => {\n this.option.onGrowInCompleted && this.option.onGrowInCompleted()\n callback && callback()\n })\n\n this.growStyle.in()\n }\n\n // 消退\n out(callback: () => void) {\n // 出场事件\n this.option.onGrowOutStart && this.option.onGrowOutStart()\n\n this.growStyle.getTimeLine().eventCallback('onReverseComplete', () => {\n this.option.onGrowOutCompleted && this.option.onGrowOutCompleted()\n\n callback && callback()\n })\n\n this.growStyle.out()\n }\n\n // 初始化\n init(opt: GrowOption) {\n this.option = {\n tag: '*', // 可选,进场对象Tag, 默认 \"*\" 所有可见MESH对象,\n type: ESceneGrowType.Up, // 可选,进场动画类型,默认 ESceneGrowType.Up向上生长\n time: 0.5, // 可选,单对象进场时间,默认0.5秒\n gapTime: 0.2, // 可选,多个对象之间间隔事件,默认0.2秒\n ease: EEaseType.SineInOut, // 可选,默认缓入缓出\n center: null, // 可选,生长中心位置,默认包围盒中心点\n scale: 1, // 可选,倍速,默认为1。\n distance: 1000, // 可选,初始化UP/DOWN起始距离,默认1000\n isRotate: true, // 可选,初始化UP/DOWN起始旋转角度,默认true\n isScale: true, // 可选,初始化UP/DOWN起始缩放大小,默认true\n }\n Object.assign(this.option, opt)\n // ------- 1.初始化目标对象 --------\n this.objs.length = 0\n // 获取所有对象\n if (this.option.tag === '*') {\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D)\n this.objs.push(object)\n })\n }\n else { // 获取指定tag对象\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D && object.userData.tag && Array.isArray(object.userData.tag) && object.userData.tag.includes(this.option.tag))\n this.objs.push(object)\n })\n }\n\n // ------- 2.中心点 ------------\n if (!this.option.center) {\n const boundingBox = new Box3()\n\n // 将每个物体的边界框扩展到包围盒中\n for (let i = 0; i < this.objs.length; i++) {\n const object = this.objs[i]\n boundingBox.expandByObject(object)\n }\n // 计算包围盒的中心点\n const center = new Vector3()\n this.option.center = boundingBox.getCenter(center)\n }\n\n // ------- 2.初始化目标对象 生长前状态 --------\n switch (this.option.type) {\n case ESceneGrowType.Up:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n case ESceneGrowType.Down:\n this.growStyle = new GrowStyleDown(this.objs, this.option)\n break\n default:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n }\n this.growStyle.init()\n this.option.onGrowInitCompleted && this.option.onGrowInitCompleted()\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","Object3D","Vector3","use","EEaseType","ESceneGrowType","GrowStyleDown","GrowStyleUp","Grow","opt","_classCallCheck","_defineProperty","objs","option","growStyle","init","_createClass","key","value","_in","callback","_this","onGrowInStart","getTimeLine","eventCallback","onGrowInCompleted","in","out","_this2","onGrowOutStart","onGrowOutCompleted","_this3","tag","type","Up","time","gapTime","ease","SineInOut","center","scale","distance","isRotate","isScale","Object","assign","length","useScene","scene","traverseVisible","object","push","userData","Array","isArray","includes","boundingBox","i","expandByObject","getCenter","Down","onGrowInitCompleted"],"sources":["../../../src/scene/grow/grow.ts"],"sourcesContent":["import { Box3, Object3D, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\nimport { EEaseType, ESceneGrowType } from './type'\nimport { GrowStyleDown, GrowStyleUp } from './growStyle'\n\n// 生长动画对象\nexport class Grow {\n private objs: Array<Object3D>\n private option: GrowOption\n private growStyle: IGrowStyle\n\n constructor(opt?: GrowOption) {\n this.objs = []\n this.option = {}\n // @ts-ignore\n this.growStyle = null\n this.init(opt || {})\n }\n\n // 生长\n in(callback: () => void) {\n // 入场事件\n this.option.onGrowInStart && this.option.onGrowInStart()\n\n this.growStyle.getTimeLine().eventCallback('onComplete', () => {\n this.option.onGrowInCompleted && this.option.onGrowInCompleted()\n callback && callback()\n })\n\n this.growStyle.in()\n }\n\n // 消退\n out(callback: () => void) {\n // 出场事件\n this.option.onGrowOutStart && this.option.onGrowOutStart()\n\n this.growStyle.getTimeLine().eventCallback('onReverseComplete', () => {\n this.option.onGrowOutCompleted && this.option.onGrowOutCompleted()\n\n callback && callback()\n })\n\n this.growStyle.out()\n }\n\n // 初始化\n init(opt: GrowOption) {\n this.option = {\n tag: '*', // 可选,进场对象Tag, 默认 \"*\" 所有可见MESH对象,\n type: ESceneGrowType.Up, // 可选,进场动画类型,默认 ESceneGrowType.Up向上生长\n time: 0.5, // 可选,单对象进场时间,默认0.5秒\n gapTime: 0.2, // 可选,多个对象之间间隔事件,默认0.2秒\n ease: EEaseType.SineInOut, // 可选,默认缓入缓出\n center: null, // 可选,生长中心位置,默认包围盒中心点\n scale: 1, // 可选,倍速,默认为1。\n distance: 1000, // 可选,初始化UP/DOWN起始距离,默认1000\n isRotate: true, // 可选,初始化UP/DOWN起始旋转角度,默认true\n isScale: true, // 可选,初始化UP/DOWN起始缩放大小,默认true\n }\n Object.assign(this.option, opt)\n // ------- 1.初始化目标对象 --------\n this.objs.length = 0\n // 获取所有对象\n if (this.option.tag === '*') {\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D)\n this.objs.push(object)\n })\n }\n else { // 获取指定tag对象\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D && object.userData.tag && Array.isArray(object.userData.tag) && object.userData.tag.includes(this.option.tag))\n this.objs.push(object)\n })\n }\n\n // ------- 2.中心点 ------------\n if (!this.option.center) {\n const boundingBox = new Box3()\n\n // 将每个物体的边界框扩展到包围盒中\n for (let i = 0; i < this.objs.length; i++) {\n const object = this.objs[i]\n boundingBox.expandByObject(object)\n }\n // 计算包围盒的中心点\n const center = new Vector3()\n this.option.center = boundingBox.getCenter(center)\n }\n\n // ------- 2.初始化目标对象 生长前状态 --------\n switch (this.option.type) {\n case ESceneGrowType.Up:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n case ESceneGrowType.Down:\n this.growStyle = new GrowStyleDown(this.objs, this.option)\n break\n default:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n }\n this.growStyle.init()\n this.option.onGrowInitCompleted && this.option.onGrowInitCompleted()\n }\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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
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
5
  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; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
8
  import { MathUtils, Vector3, gsap } from '@anov/3d-core';
9
9
  // 向下掉落
10
10
  export var GrowStyleDown = /*#__PURE__*/function () {
@@ -1 +1 @@
1
- {"version":3,"names":["MathUtils","Vector3","gsap","GrowStyleDown","objs","opt","_objs","_opt","_tl","maxDistance","timeline","max","gapTime","time","Array","isArray","center","fromArray","map","obj","distance","Math","abs","position","distanceTo","userData","growDistance","growY","y","growDelay","lerp","isRotate","rotateY","degToRad","isScale","scale","set","x","z","clear","add","to","duration","ease","delay","rotation","play","timeScale","reverse"],"sources":["../../../src/scene/grow/style_down.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { MathUtils, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\n\n// 向下掉落\nexport class GrowStyleDown implements IGrowStyle {\n private _objs: Array<Object3D>\n private _opt: GrowOption\n private _tl: gsap.core.Timeline\n private maxDistance: number\n\n constructor(objs: Array<Object3D>, opt: GrowOption) {\n this._objs = objs\n this._opt = opt\n this._tl = null// gsap.timeline()\n this.maxDistance = 0\n }\n\n // 对象初始化\n init(): void {\n this._tl = gsap.timeline()\n\n const max = this._opt.gapTime + this._opt.time\n // 统一为Vector3\n if (Array.isArray(this._opt.center))\n this._opt.center = new Vector3().fromArray(this._opt.center as number[])\n // 找到对象最远距离\n this._objs.map((obj) => {\n const distance = Math.abs(obj.position.distanceTo(this._opt.center as Vector3))\n obj.userData.growDistance = distance\n obj.userData.growY = obj.position.y\n if (distance > this.maxDistance)\n this.maxDistance = distance\n })\n\n this._objs.map((obj) => {\n // 计算排序延迟\n obj.userData.growDelay = MathUtils.lerp(0, max, obj.userData.growDistance / this.maxDistance)\n // 距离\n obj.position.y += this._opt.distance\n // 旋转\n this._opt.isRotate && obj.rotateY(MathUtils.degToRad(270))\n // 缩放\n this._opt.isScale && obj.scale.set(obj.scale.x * 0.1, obj.scale.y * 0.1, obj.scale.z * 0.1)\n })\n }\n\n in(): void {\n this._tl.clear()\n\n this._objs.map((obj) => {\n this._tl.add(gsap.to(obj.position, { y: obj.position.y - this._opt.distance, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isRotate)\n this._tl.add(gsap.to(obj.rotation, { y: 0, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isScale)\n this._tl.add(gsap.to(obj.scale, { x: 1, y: 1, z: 1, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n })\n this._tl.play(0, false)\n }\n\n out(): void {\n this._tl.timeScale(this._opt.scale).reverse()\n }\n\n getTimeLine(): gsap.core.Timeline {\n return this._tl\n }\n}"],"mappings":"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"}
1
+ {"version":3,"names":["MathUtils","Vector3","gsap","GrowStyleDown","objs","opt","_classCallCheck","_defineProperty","_objs","_opt","_tl","maxDistance","_createClass","key","value","init","_this","timeline","max","gapTime","time","Array","isArray","center","fromArray","map","obj","distance","Math","abs","position","distanceTo","userData","growDistance","growY","y","growDelay","lerp","isRotate","rotateY","degToRad","isScale","scale","set","x","z","_in","_this2","clear","add","to","duration","ease","delay","rotation","play","out","timeScale","reverse","getTimeLine"],"sources":["../../../src/scene/grow/style_down.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { MathUtils, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\n\n// 向下掉落\nexport class GrowStyleDown implements IGrowStyle {\n private _objs: Array<Object3D>\n private _opt: GrowOption\n private _tl: gsap.core.Timeline\n private maxDistance: number\n\n constructor(objs: Array<Object3D>, opt: GrowOption) {\n this._objs = objs\n this._opt = opt\n this._tl = null// gsap.timeline()\n this.maxDistance = 0\n }\n\n // 对象初始化\n init(): void {\n this._tl = gsap.timeline()\n\n const max = this._opt.gapTime + this._opt.time\n // 统一为Vector3\n if (Array.isArray(this._opt.center))\n this._opt.center = new Vector3().fromArray(this._opt.center as number[])\n // 找到对象最远距离\n this._objs.map((obj) => {\n const distance = Math.abs(obj.position.distanceTo(this._opt.center as Vector3))\n obj.userData.growDistance = distance\n obj.userData.growY = obj.position.y\n if (distance > this.maxDistance)\n this.maxDistance = distance\n })\n\n this._objs.map((obj) => {\n // 计算排序延迟\n obj.userData.growDelay = MathUtils.lerp(0, max, obj.userData.growDistance / this.maxDistance)\n // 距离\n obj.position.y += this._opt.distance\n // 旋转\n this._opt.isRotate && obj.rotateY(MathUtils.degToRad(270))\n // 缩放\n this._opt.isScale && obj.scale.set(obj.scale.x * 0.1, obj.scale.y * 0.1, obj.scale.z * 0.1)\n })\n }\n\n in(): void {\n this._tl.clear()\n\n this._objs.map((obj) => {\n this._tl.add(gsap.to(obj.position, { y: obj.position.y - this._opt.distance, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isRotate)\n this._tl.add(gsap.to(obj.rotation, { y: 0, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isScale)\n this._tl.add(gsap.to(obj.scale, { x: 1, y: 1, z: 1, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n })\n this._tl.play(0, false)\n }\n\n out(): void {\n this._tl.timeScale(this._opt.scale).reverse()\n }\n\n getTimeLine(): gsap.core.Timeline {\n return this._tl\n }\n}"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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
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
5
  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; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
8
  import { MathUtils, Vector3, gsap } from '@anov/3d-core';
9
9
  // 向上生长
10
10
  export var GrowStyleUp = /*#__PURE__*/function () {