@anov/3d-ability 0.0.166 → 0.0.168
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.
- package/dist/business/Animation/motion/index.d.ts +2 -3
- package/dist/business/Animation/motion/index.js +1 -6
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Area/Fence/FenceBase.d.ts +2 -2
- package/dist/business/Area/Fence/FenceBase.js +1 -1
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +1 -1
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.d.ts +2 -2
- package/dist/business/Area/FillArea/FillAreaBase.js +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/index.d.ts +1 -2
- package/dist/business/Area/index.js +2 -2
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Base/ObjectLayer.d.ts +2 -4
- package/dist/business/Base/ObjectLayer.js +11 -7
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.d.ts +1 -1
- package/dist/business/Batch/index.js +2 -2
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.d.ts +1 -1
- package/dist/business/Box/index.js +2 -2
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Box/interface.js.map +1 -1
- package/dist/business/Box/types.js.map +1 -1
- package/dist/business/Cylinder/index.d.ts +1 -1
- package/dist/business/Cylinder/index.js +2 -2
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Cylinder/interface.d.ts +1 -1
- package/dist/business/Cylinder/interface.js.map +1 -1
- package/dist/business/Cylinder/types.js.map +1 -1
- package/dist/business/Flyline/index.d.ts +2 -2
- package/dist/business/Flyline/index.js +8 -8
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.d.ts +1 -1
- package/dist/business/Flyline/line/ArcLine.js +3 -3
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.d.ts +59 -3
- package/dist/business/HeatMap/HeatMap.js +95 -7
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/InfoPanel/index.d.ts +4 -3
- package/dist/business/InfoPanel/index.js +19 -13
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/InfoPanel/type.js.map +1 -1
- package/dist/business/Line/index.d.ts +3 -3
- package/dist/business/Line/index.js +7 -8
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Line/interface.d.ts +4 -4
- package/dist/business/Line/interface.js.map +1 -1
- package/dist/business/Line/types.js.map +1 -1
- package/dist/business/Mark/index.d.ts +1 -2
- package/dist/business/Mark/index.js +3 -3
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +3 -5
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +10 -14
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/index.js.map +1 -1
- package/dist/business/Plane/index.d.ts +2 -3
- package/dist/business/Plane/index.js +2 -2
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Plane/interface.d.ts +5 -5
- package/dist/business/Plane/interface.js.map +1 -1
- package/dist/business/Plane/types.js.map +1 -1
- package/dist/business/Poi/index.d.ts +3 -2
- package/dist/business/Poi/index.js +54 -25
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.d.ts +1 -2
- package/dist/business/Poi/link/Cylinder.js +3 -3
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.d.ts +1 -2
- package/dist/business/Poi/link/Pyramid.js +2 -2
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.d.ts +3 -3
- package/dist/business/Poi/link/index.js +2 -2
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.d.ts +3 -3
- package/dist/business/Poi/panel/index.js +6 -7
- package/dist/business/Poi/panel/index.js.map +1 -1
- package/dist/business/Poi/panel/interfaces.js.map +1 -1
- package/dist/business/Poi/panel/utils.d.ts +1 -1
- package/dist/business/Poi/panel/utils.js +3 -3
- package/dist/business/Poi/panel/utils.js.map +1 -1
- package/dist/business/Poi/particle/DoubleCircle.d.ts +1 -2
- package/dist/business/Poi/particle/DoubleCircle.js +2 -3
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.d.ts +1 -2
- package/dist/business/Poi/particle/DynamicCircle.js +2 -3
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.d.ts +1 -2
- package/dist/business/Poi/particle/SingleCircle.js +2 -3
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.d.ts +2 -2
- package/dist/business/Poi/particle/index.js +2 -2
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/title/Border.d.ts +1 -2
- package/dist/business/Poi/title/Border.js +2 -2
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.d.ts +1 -2
- package/dist/business/Poi/title/Ellipse.js +2 -2
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.d.ts +2 -3
- package/dist/business/Poi/title/index.js +2 -2
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Sphere/index.d.ts +2 -2
- package/dist/business/Sphere/index.js +2 -2
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Sphere/interface.js.map +1 -1
- package/dist/business/Sphere/types.js.map +1 -1
- package/dist/business/Spline/index.d.ts +1 -2
- package/dist/business/Spline/index.js +28 -14
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.d.ts +2 -2
- package/dist/business/SplitBuilding/index.js +2 -2
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.d.ts +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +5 -6
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.d.ts +2 -2
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +3 -3
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/base.d.ts +4 -4
- package/dist/business/TrafficComponents/base.js +6 -6
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/index.d.ts +2 -4
- package/dist/business/TrafficComponents/index.js +2 -2
- package/dist/business/TrafficComponents/index.js.map +1 -1
- package/dist/business/Utils/defineProps.js +3 -3
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/VideoPanel/index.d.ts +4 -4
- package/dist/business/VideoPanel/index.js +13 -11
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/VideoPanel/type.d.ts +8 -8
- package/dist/business/VideoPanel/type.js.map +1 -1
- package/dist/business/Water/index.d.ts +1 -3
- package/dist/business/Water/index.js +5 -5
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/index.d.ts +18 -21
- package/dist/business/index.js +18 -18
- package/dist/business/index.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.d.ts +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +4 -4
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/index.d.ts +1 -2
- package/dist/core/Camera/index.js +1 -1
- package/dist/core/Camera/index.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.d.ts +2 -3
- package/dist/core/Controls/FirstViewControl/index.js +2 -4
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.d.ts +2 -3
- package/dist/core/Controls/ThirdViewControl/index.js +3 -6
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.d.ts +2 -4
- package/dist/core/Controls/ThirdViewControl/player/camera.js +2 -5
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.d.ts +2 -4
- package/dist/core/Controls/ThirdViewControl/player.js +2 -6
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.d.ts +3 -4
- package/dist/core/Controls/base.js +3 -5
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/index.d.ts +1 -2
- package/dist/core/Curve/index.js +1 -1
- package/dist/core/Curve/index.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/index.d.ts +3 -5
- package/dist/core/Material/index.js +3 -3
- package/dist/core/Material/index.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.d.ts +1 -2
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +4 -4
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.d.ts +1 -2
- package/dist/core/PostEffects/addBrightnessContrastPass.js +4 -4
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.d.ts +1 -2
- package/dist/core/PostEffects/bloomPass.js +5 -6
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.d.ts +2 -2
- package/dist/core/PostEffects/bloomSelect.js +6 -7
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.d.ts +2 -2
- package/dist/core/PostEffects/colorifyPass.js +4 -4
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.d.ts +13 -4
- package/dist/core/PostEffects/index.js +20 -14
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.d.ts +2 -2
- package/dist/core/PostEffects/outlinePass.js +5 -4
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.d.ts +2 -2
- package/dist/core/PostEffects/postprocessing.js +2 -2
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.d.ts +1 -2
- package/dist/core/PostEffects/saoPass.js +5 -4
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.d.ts +1 -3
- package/dist/core/SceneEffect/grow/grow.js +3 -5
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.d.ts +1 -3
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +4 -6
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/color/index.d.ts +0 -3
- package/dist/core/WeatherSystem/color/index.js +14 -9
- package/dist/core/WeatherSystem/color/index.js.map +1 -1
- package/dist/core/WeatherSystem/controller/ColorController.d.ts +1 -3
- package/dist/core/WeatherSystem/controller/ColorController.js +3 -5
- package/dist/core/WeatherSystem/controller/ColorController.js.map +1 -1
- package/dist/core/WeatherSystem/controller/HDRController.d.ts +1 -3
- package/dist/core/WeatherSystem/controller/HDRController.js +3 -5
- package/dist/core/WeatherSystem/controller/HDRController.js.map +1 -1
- package/dist/core/WeatherSystem/controller/SkyController.d.ts +1 -3
- package/dist/core/WeatherSystem/controller/SkyController.js +2 -4
- package/dist/core/WeatherSystem/controller/SkyController.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.d.ts +2 -4
- package/dist/core/WeatherSystem/hdr/index.js +11 -12
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.d.ts +2 -3
- package/dist/core/WeatherSystem/index.js +4 -7
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.d.ts +1 -2
- package/dist/core/WeatherSystem/objects/rain/index.js +3 -3
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.d.ts +1 -3
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +5 -7
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.d.ts +1 -3
- package/dist/core/WeatherSystem/objects/rain/plane.js +4 -6
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.d.ts +1 -3
- package/dist/core/WeatherSystem/objects/rain/point.js +0 -3
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.d.ts +2 -3
- package/dist/core/WeatherSystem/weather/index.js +5 -7
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/index.d.ts +8 -13
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Color
|
|
2
|
-
declare const addColorifyPass: (color: Color, alpha
|
|
1
|
+
import type { Color } from '@anov/3d-core';
|
|
2
|
+
declare const addColorifyPass: (color: Color, alpha?: number) => {
|
|
3
3
|
clean: () => void;
|
|
4
4
|
setColor: (color: Color) => void;
|
|
5
5
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { lib, use } from '@anov/3d-core';
|
|
1
|
+
import { lib, use, utils } from '@anov/3d-core';
|
|
2
2
|
import ColorifyShader from "./shader/colorify";
|
|
3
|
+
var storeManagement = utils.storeManagement;
|
|
3
4
|
var CopyShader = lib.CopyShader,
|
|
4
5
|
ShaderPass = lib.ShaderPass;
|
|
5
6
|
var addColorifyPass = function addColorifyPass(color) {
|
|
6
7
|
var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.5;
|
|
7
|
-
var
|
|
8
|
-
var _use$useScene = use.useScene(sceneControl),
|
|
8
|
+
var _use$useScene = use.useScene(),
|
|
9
9
|
scene = _use$useScene.scene,
|
|
10
10
|
camera = _use$useScene.camera;
|
|
11
|
-
var composer =
|
|
11
|
+
var composer = storeManagement.get('composer');
|
|
12
12
|
if (!scene || !camera) throw new Error('scene or camera is not defined,');
|
|
13
13
|
if (!composer) throw new Error('composer is not defined, please initPostEffects first');
|
|
14
14
|
var effectCopy = new ShaderPass(CopyShader);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["lib","use","ColorifyShader","CopyShader","ShaderPass","addColorifyPass","color","alpha","arguments","length","undefined","
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import type { Camera, Scene,
|
|
1
|
+
import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core';
|
|
2
2
|
import { lib } from '@anov/3d-core';
|
|
3
3
|
type InitPostEffectsOptions = {
|
|
4
4
|
type: 'main' | 'sub';
|
|
@@ -6,9 +6,18 @@ type InitPostEffectsOptions = {
|
|
|
6
6
|
afterhooks?: () => void;
|
|
7
7
|
renderToScreen?: boolean;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* init post effects
|
|
11
|
+
* @param scene
|
|
12
|
+
* @param renderer
|
|
13
|
+
* @param camera
|
|
14
|
+
* @param beforehooks composer render before hook
|
|
15
|
+
* @param afterhooks composer render after hook
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export declare const initPostEffects: (scene: Scene, renderer: WebGLRenderer, camera: Camera, options?: InitPostEffectsOptions) => {
|
|
10
19
|
composer: lib.EffectComposer<import("@anov/3d-core").WebGLRenderTarget<import("@anov/3d-core").Texture>>;
|
|
11
20
|
clean: () => void;
|
|
12
21
|
};
|
|
13
|
-
export
|
|
14
|
-
export
|
|
22
|
+
export * from './outlinePass';
|
|
23
|
+
export * from './bloomSelect';
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import { lib, use } from '@anov/3d-core';
|
|
1
|
+
import { lib, use, utils } from '@anov/3d-core';
|
|
2
2
|
var EffectComposer = lib.EffectComposer,
|
|
3
3
|
RenderPass = lib.RenderPass;
|
|
4
|
+
var storeManagement = utils.storeManagement;
|
|
4
5
|
var useSubComposerFrame = use.useSubComposerFrame,
|
|
5
6
|
useComposerFrame = use.useComposerFrame;
|
|
6
7
|
var clean;
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* init post effects
|
|
11
|
+
* @param scene
|
|
12
|
+
* @param renderer
|
|
13
|
+
* @param camera
|
|
14
|
+
* @param beforehooks composer render before hook
|
|
15
|
+
* @param afterhooks composer render after hook
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export var initPostEffects = function initPostEffects(scene, renderer, camera, options) {
|
|
8
19
|
var _ref = options || {
|
|
9
20
|
type: 'main'
|
|
10
21
|
},
|
|
@@ -17,27 +28,22 @@ export var initPostEffects = function initPostEffects(scene, renderer, camera, o
|
|
|
17
28
|
var renderPass = new RenderPass(scene, camera);
|
|
18
29
|
var func = type === 'main' ? useComposerFrame : useSubComposerFrame;
|
|
19
30
|
clean && clean();
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
storeManagement.set('composer', composer);
|
|
32
|
+
storeManagement.set('renderPass', renderPass);
|
|
22
33
|
composer.addPass(renderPass);
|
|
23
34
|
composer.renderToScreen = renderToScreen;
|
|
24
35
|
|
|
25
36
|
// @ts-ignore
|
|
26
37
|
composer.isNeedRender = true;
|
|
27
|
-
var cleanEffectsframe =
|
|
28
|
-
beforehooks && beforehooks();
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
composer.isNeedRender && composer.render();
|
|
31
|
-
afterhooks && afterhooks();
|
|
32
|
-
}) : func(function () {
|
|
38
|
+
var cleanEffectsframe = func(function () {
|
|
33
39
|
beforehooks && beforehooks();
|
|
34
40
|
// @ts-ignore
|
|
35
41
|
composer.isNeedRender && composer.render();
|
|
36
42
|
afterhooks && afterhooks();
|
|
37
43
|
});
|
|
38
44
|
clean = function clean() {
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
storeManagement.delete('composer');
|
|
46
|
+
storeManagement.delete('renderPass');
|
|
41
47
|
cleanEffectsframe();
|
|
42
48
|
};
|
|
43
49
|
return {
|
|
@@ -45,6 +51,6 @@ export var initPostEffects = function initPostEffects(scene, renderer, camera, o
|
|
|
45
51
|
clean: clean
|
|
46
52
|
};
|
|
47
53
|
};
|
|
48
|
-
export
|
|
49
|
-
export
|
|
54
|
+
export * from "./outlinePass";
|
|
55
|
+
export * from "./bloomSelect";
|
|
50
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["lib","use","EffectComposer","RenderPass","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import type { Camera, Object3D, Scene
|
|
1
|
+
import type { Camera, Object3D, Scene } from '@anov/3d-core';
|
|
2
2
|
import { EffectPass } from 'postprocessing';
|
|
3
3
|
type HighParamsType = {
|
|
4
4
|
edgeStrength?: number;
|
|
@@ -13,7 +13,7 @@ type HighParamsType = {
|
|
|
13
13
|
* @param highParams
|
|
14
14
|
* @returns
|
|
15
15
|
*/
|
|
16
|
-
export declare const createHighSelectedTool: (highParams
|
|
16
|
+
export declare const createHighSelectedTool: (highParams?: HighParamsType) => (object3dArray: Object3D[]) => void;
|
|
17
17
|
export declare class OutlinePass extends EffectPass {
|
|
18
18
|
private outlinePass;
|
|
19
19
|
constructor(scene: Scene, camera: Camera);
|
|
@@ -14,8 +14,9 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
14
14
|
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
15
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
16
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); }
|
|
17
|
-
import { OutlinePassExtend, OutputPass, Vector2, lib, use } from '@anov/3d-core';
|
|
17
|
+
import { OutlinePassExtend, OutputPass, Vector2, lib, use, utils } from '@anov/3d-core';
|
|
18
18
|
import { EffectPass } from 'postprocessing';
|
|
19
|
+
var storeManagement = utils.storeManagement;
|
|
19
20
|
var ShaderPass = lib.ShaderPass,
|
|
20
21
|
GammaCorrectionShader = lib.GammaCorrectionShader;
|
|
21
22
|
var useScene = use.useScene;
|
|
@@ -32,12 +33,12 @@ var baseHighParams = {
|
|
|
32
33
|
* @param highParams
|
|
33
34
|
* @returns
|
|
34
35
|
*/
|
|
35
|
-
export var createHighSelectedTool = function createHighSelectedTool(highParams
|
|
36
|
+
export var createHighSelectedTool = function createHighSelectedTool(highParams) {
|
|
36
37
|
var lastHighParams = _objectSpread(_objectSpread({}, baseHighParams), highParams);
|
|
37
|
-
var _useScene = useScene(
|
|
38
|
+
var _useScene = useScene(),
|
|
38
39
|
scene = _useScene.scene,
|
|
39
40
|
camera = _useScene.camera;
|
|
40
|
-
var composer =
|
|
41
|
+
var composer = storeManagement.get('composer');
|
|
41
42
|
if (!scene || !camera) throw new Error('scene or camera is not defined,');
|
|
42
43
|
if (!composer) {
|
|
43
44
|
console.error('composer is not defined, please initPostEffects first');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OutlinePassExtend","OutputPass","Vector2","lib","use","EffectPass","ShaderPass","GammaCorrectionShader","useScene","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","createHighSelectedTool","highParams","
|
|
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,2 +1,2 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const initPostEffectsV2: (scene: Scene, renderer: WebGLRenderer, camera: Camera
|
|
1
|
+
import { type Camera, type Scene, type WebGLRenderer } from '@anov/3d-core';
|
|
2
|
+
export declare const initPostEffectsV2: (scene: Scene, renderer: WebGLRenderer, camera: Camera) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
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
3
|
var useComposerFrame = use.useComposerFrame;
|
|
4
|
-
export var initPostEffectsV2 = function initPostEffectsV2(scene, renderer, camera
|
|
4
|
+
export var initPostEffectsV2 = function initPostEffectsV2(scene, renderer, camera) {
|
|
5
5
|
var composer = new EffectComposer(renderer);
|
|
6
6
|
composer.addPass(new RenderPass(scene, camera));
|
|
7
7
|
var normalPass = new NormalPass(scene, camera);
|
|
@@ -48,7 +48,7 @@ export var initPostEffectsV2 = function initPostEffectsV2(scene, renderer, camer
|
|
|
48
48
|
composer.addPass(normalPass);
|
|
49
49
|
composer.addPass(depthDownsamplingPass);
|
|
50
50
|
composer.addPass(effectPass);
|
|
51
|
-
useComposerFrame(
|
|
51
|
+
useComposerFrame(function () {
|
|
52
52
|
composer.render();
|
|
53
53
|
});
|
|
54
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["use","BlendFunction","DepthDownsamplingPass","EdgeDetectionMode","EffectComposer","EffectPass","NormalPass","PredicationMode","RenderPass","SMAAEffect","SMAAPreset","SSAOEffect","TextureEffect","useComposerFrame","initPostEffectsV2","scene","renderer","camera","
|
|
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/core/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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { OutputPass, lib, use } from '@anov/3d-core';
|
|
1
|
+
import { OutputPass, lib, use, utils } from '@anov/3d-core';
|
|
2
|
+
var storeManagement = utils.storeManagement;
|
|
2
3
|
var SAOPass = lib.SAOPass;
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* add ssao 环境光遮蔽
|
|
6
7
|
* @returns
|
|
7
8
|
*/
|
|
8
|
-
var addSAOPass = function addSAOPass(
|
|
9
|
-
var _use$useScene = use.useScene(
|
|
9
|
+
var addSAOPass = function addSAOPass() {
|
|
10
|
+
var _use$useScene = use.useScene(),
|
|
10
11
|
scene = _use$useScene.scene,
|
|
11
12
|
camera = _use$useScene.camera;
|
|
12
|
-
var composer =
|
|
13
|
+
var composer = storeManagement.get('composer');
|
|
13
14
|
if (!scene || !camera) throw new Error('scene or camera is not defined,');
|
|
14
15
|
if (!composer) throw new Error('composer is not defined, please initPostEffects first');
|
|
15
16
|
var saoPass = new SAOPass(scene, camera);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OutputPass","lib","use","
|
|
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/core/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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { SceneControl } from '@anov/3d-core';
|
|
2
1
|
import type { GrowOption } from './type';
|
|
3
2
|
export declare class Grow {
|
|
4
3
|
private objs;
|
|
5
4
|
private option;
|
|
6
5
|
private growStyle;
|
|
7
|
-
|
|
8
|
-
constructor(opt: GrowOption | undefined, sceneControl: SceneControl);
|
|
6
|
+
constructor(opt?: GrowOption);
|
|
9
7
|
in(callback: () => void): void;
|
|
10
8
|
out(callback: () => void): void;
|
|
11
9
|
init(opt: GrowOption): void;
|
|
@@ -11,17 +11,15 @@ import { GrowStyleDown, GrowStyleUp } from "./growStyle";
|
|
|
11
11
|
|
|
12
12
|
// 生长动画对象
|
|
13
13
|
export var Grow = /*#__PURE__*/function () {
|
|
14
|
-
function Grow(opt
|
|
14
|
+
function Grow(opt) {
|
|
15
15
|
_classCallCheck(this, Grow);
|
|
16
16
|
_defineProperty(this, "objs", void 0);
|
|
17
17
|
_defineProperty(this, "option", void 0);
|
|
18
18
|
_defineProperty(this, "growStyle", void 0);
|
|
19
|
-
_defineProperty(this, "sceneControl", void 0);
|
|
20
19
|
this.objs = [];
|
|
21
20
|
this.option = {};
|
|
22
21
|
// @ts-ignore
|
|
23
22
|
this.growStyle = null;
|
|
24
|
-
this.sceneControl = sceneControl;
|
|
25
23
|
this.init(opt || {});
|
|
26
24
|
}
|
|
27
25
|
|
|
@@ -84,12 +82,12 @@ export var Grow = /*#__PURE__*/function () {
|
|
|
84
82
|
this.objs.length = 0;
|
|
85
83
|
// 获取所有对象
|
|
86
84
|
if (this.option.tag === '*') {
|
|
87
|
-
use.useScene(
|
|
85
|
+
use.useScene().scene.traverseVisible(function (object) {
|
|
88
86
|
if (object instanceof Object3D) _this3.objs.push(object);
|
|
89
87
|
});
|
|
90
88
|
} else {
|
|
91
89
|
// 获取指定tag对象
|
|
92
|
-
use.useScene(
|
|
90
|
+
use.useScene().scene.traverseVisible(function (object) {
|
|
93
91
|
if (object instanceof Object3D && object.userData.tag && Array.isArray(object.userData.tag) && object.userData.tag.includes(_this3.option.tag)) _this3.objs.push(object);
|
|
94
92
|
});
|
|
95
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Box3","Object3D","Vector3","use","EEaseType","ESceneGrowType","GrowStyleDown","GrowStyleUp","Grow","opt","
|
|
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/core/SceneEffect/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,4 +1,3 @@
|
|
|
1
|
-
import type { SceneControl } from '@anov/3d-core';
|
|
2
1
|
import { Object3D } from '@anov/3d-core';
|
|
3
2
|
import { SkySystem } from './sky';
|
|
4
3
|
import { WeatherSystem as WeatherLayer } from './weather';
|
|
@@ -12,12 +11,11 @@ export declare class DynamicWeatherSystem extends Object3D {
|
|
|
12
11
|
skyLayer: SkySystem;
|
|
13
12
|
weatherLayer: WeatherLayer;
|
|
14
13
|
private _weatherRoot;
|
|
15
|
-
private sceneControl;
|
|
16
14
|
get time(): string;
|
|
17
15
|
set time(time: string);
|
|
18
16
|
get weather(): string;
|
|
19
17
|
set weather(weather: string);
|
|
20
|
-
constructor(
|
|
18
|
+
constructor();
|
|
21
19
|
setTime(time: string): void;
|
|
22
20
|
setWeather(weather: string): void;
|
|
23
21
|
}
|
|
@@ -25,7 +25,7 @@ import { handleTimeString } from "./utils/math";
|
|
|
25
25
|
export var DynamicWeatherSystem = /*#__PURE__*/function (_Object3D) {
|
|
26
26
|
_inherits(DynamicWeatherSystem, _Object3D);
|
|
27
27
|
var _super = _createSuper(DynamicWeatherSystem);
|
|
28
|
-
function DynamicWeatherSystem(
|
|
28
|
+
function DynamicWeatherSystem() {
|
|
29
29
|
var _this;
|
|
30
30
|
_classCallCheck(this, DynamicWeatherSystem);
|
|
31
31
|
_this = _super.call(this);
|
|
@@ -34,16 +34,14 @@ export var DynamicWeatherSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
34
34
|
_defineProperty(_assertThisInitialized(_this), "skyLayer", void 0);
|
|
35
35
|
_defineProperty(_assertThisInitialized(_this), "weatherLayer", void 0);
|
|
36
36
|
_defineProperty(_assertThisInitialized(_this), "_weatherRoot", new Object3D());
|
|
37
|
-
_defineProperty(_assertThisInitialized(_this), "sceneControl", void 0);
|
|
38
|
-
_this.sceneControl = sceneControl;
|
|
39
37
|
_this.skyLayer = new SkySystem();
|
|
40
|
-
_this.weatherLayer = new WeatherLayer(
|
|
38
|
+
_this.weatherLayer = new WeatherLayer();
|
|
41
39
|
_this.add(_this.skyLayer);
|
|
42
40
|
_this.add(_this.weatherLayer);
|
|
43
41
|
_this.skyLayer.setTime(handleTimeString(_this._time));
|
|
44
42
|
_this.weatherLayer.setWeather(EWeatherType.Sunny, _this._time.split(':').map(Number)[0]);
|
|
45
|
-
use.useframe(
|
|
46
|
-
var _use$useScene = use.useScene(
|
|
43
|
+
use.useframe(function () {
|
|
44
|
+
var _use$useScene = use.useScene(),
|
|
47
45
|
camera = _use$useScene.camera;
|
|
48
46
|
|
|
49
47
|
// 假设天空中心在 (0,0,0),你可以改成其他场景中心点
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object3D","Vector3","use","EWeatherType","SkySystem","WeatherSystem","WeatherLayer","handleTimeString","DynamicWeatherSystem","_Object3D","_inherits","_super","_createSuper","
|
|
1
|
+
{"version":3,"names":["Object3D","Vector3","use","EWeatherType","SkySystem","WeatherSystem","WeatherLayer","handleTimeString","DynamicWeatherSystem","_Object3D","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","skyLayer","weatherLayer","add","setTime","_time","setWeather","Sunny","split","map","Number","useframe","_use$useScene","useScene","camera","skyCenter","distance","position","distanceTo","minDistance","maxDistance","_weatherRoot","lerp","scale","setScalar","_createClass","key","get","set","time","_weather","weather","value"],"sources":["../../../src/core/WeatherSystem/DynamicWeatherSystem.ts"],"sourcesContent":["import { MathUtils, Object3D, Vector3, use } from '@anov/3d-core'\nimport { EWeatherType } from './utils/type'\nimport { SkySystem } from './sky'\nimport { WeatherSystem as WeatherLayer } from './weather'\nimport { handleTimeString } from './utils/math'\n\n/**\n * 天气时间系统\n * base version\n */\nexport class DynamicWeatherSystem extends Object3D {\n private _time = '08:00'\n private _weather: string\n\n public skyLayer: SkySystem\n public weatherLayer: WeatherLayer\n private _weatherRoot: Object3D = new Object3D()\n\n public get time() {\n return this._time\n }\n\n public set time(time: string) {\n this.setTime(time)\n }\n\n public get weather() {\n return this._weather\n }\n\n public set weather(weather: string) {\n this.setWeather(weather)\n }\n\n constructor() {\n super()\n\n this.skyLayer = new SkySystem()\n this.weatherLayer = new WeatherLayer()\n\n this.add(this.skyLayer)\n this.add(this.weatherLayer)\n\n this.skyLayer.setTime(handleTimeString(this._time))\n this.weatherLayer.setWeather(EWeatherType.Sunny, this._time.split(':').map(Number)[0])\n use.useframe(() => {\n const { camera } = use.useScene()\n\n // 假设天空中心在 (0,0,0),你可以改成其他场景中心点\n const skyCenter = new Vector3(0, 0, 0)\n const distance = camera.position.distanceTo(skyCenter)\n\n const minDistance = 10 // 太近不显示\n const maxDistance = 8500 // 太远不显示\n\n // this.skyLayer.updateSky(camera)\n // 根据距离决定显示\n if (distance > maxDistance) {\n this._weatherRoot.position.lerp(camera.position, 0.3)\n const scale = distance * 0.000135\n this.weatherLayer.scale.setScalar(scale)\n }\n else {\n this.weatherLayer.scale.setScalar(1)\n this.skyLayer.scale.setScalar(1)\n }\n })\n }\n\n setTime(time: string) {\n this._time = time\n\n this.skyLayer.setTime(handleTimeString(time))\n this.weatherLayer.setTime(time.split(':').map(Number)[0])\n }\n\n setWeather(weather: string) {\n this._weather = weather\n this.weatherLayer.setWeather(weather, this._time.split(':').map(Number)[0])\n }\n}"],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import type { SceneControl } from '@anov/3d-core';
|
|
2
1
|
import { Object3D } from '@anov/3d-core';
|
|
3
2
|
export declare class ColorSky extends Object3D {
|
|
4
3
|
private _color;
|
|
5
4
|
private _alpha;
|
|
6
5
|
private _intensity;
|
|
7
|
-
private sceneControl?;
|
|
8
|
-
constructor(sceneControl?: SceneControl);
|
|
9
6
|
get color(): string | number;
|
|
10
7
|
get alpha(): number;
|
|
11
8
|
get intensity(): number;
|
|
@@ -12,19 +12,20 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
12
12
|
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; }
|
|
13
13
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
14
|
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); }
|
|
15
|
-
import {
|
|
15
|
+
import { use, Object3D, Color } from '@anov/3d-core';
|
|
16
16
|
export var ColorSky = /*#__PURE__*/function (_Object3D) {
|
|
17
17
|
_inherits(ColorSky, _Object3D);
|
|
18
18
|
var _super = _createSuper(ColorSky);
|
|
19
|
-
function ColorSky(
|
|
19
|
+
function ColorSky() {
|
|
20
20
|
var _this;
|
|
21
21
|
_classCallCheck(this, ColorSky);
|
|
22
|
-
|
|
22
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
23
|
+
args[_key] = arguments[_key];
|
|
24
|
+
}
|
|
25
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
23
26
|
_defineProperty(_assertThisInitialized(_this), "_color", void 0);
|
|
24
27
|
_defineProperty(_assertThisInitialized(_this), "_alpha", void 0);
|
|
25
28
|
_defineProperty(_assertThisInitialized(_this), "_intensity", 100);
|
|
26
|
-
_defineProperty(_assertThisInitialized(_this), "sceneControl", void 0);
|
|
27
|
-
_this.sceneControl = sceneControl;
|
|
28
29
|
return _this;
|
|
29
30
|
}
|
|
30
31
|
_createClass(ColorSky, [{
|
|
@@ -54,13 +55,17 @@ export var ColorSky = /*#__PURE__*/function (_Object3D) {
|
|
|
54
55
|
}, {
|
|
55
56
|
key: "apply",
|
|
56
57
|
value: function apply(color, alpha, intensity) {
|
|
57
|
-
var _use$useScene = use.useScene(
|
|
58
|
+
var _use$useScene = use.useScene(),
|
|
58
59
|
scene = _use$useScene.scene,
|
|
59
60
|
renderer = _use$useScene.renderer;
|
|
60
61
|
|
|
61
62
|
// 只在参数存在时更新属性值
|
|
62
|
-
if (color !== undefined)
|
|
63
|
-
|
|
63
|
+
if (color !== undefined) {
|
|
64
|
+
this._color = color;
|
|
65
|
+
}
|
|
66
|
+
if (alpha !== undefined) {
|
|
67
|
+
this._alpha = Math.max(0, Math.min(1, alpha));
|
|
68
|
+
}
|
|
64
69
|
if (intensity !== undefined) {
|
|
65
70
|
this._intensity = intensity;
|
|
66
71
|
this.setIntensity(intensity);
|
|
@@ -91,7 +96,7 @@ export var ColorSky = /*#__PURE__*/function (_Object3D) {
|
|
|
91
96
|
}, {
|
|
92
97
|
key: "setIntensity",
|
|
93
98
|
value: function setIntensity(value) {
|
|
94
|
-
|
|
99
|
+
if (this._intensity === value) return;
|
|
95
100
|
// const c = new Color(this._color).multiplyScalar(value / 100)
|
|
96
101
|
// const { scene, renderer } = use.useScene()
|
|
97
102
|
// renderer.setClearColor(c, this._alpha)
|