@anov/3d-ability 0.0.12 → 0.0.14
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/camera/index.js +31 -31
- package/dist/camera/index.js.map +1 -1
- package/dist/environment/sky/index.d.ts +15 -5
- package/dist/environment/sky/index.js +26 -20
- package/dist/environment/sky/index.js.map +1 -1
- package/dist/environment/skyv2/config.d.ts +32 -0
- package/dist/environment/skyv2/config.js +50 -0
- package/dist/environment/skyv2/config.js.map +1 -0
- package/dist/environment/skyv2/index.d.ts +14 -0
- package/dist/environment/skyv2/index.js +140 -0
- package/dist/environment/skyv2/index.js.map +1 -0
- package/dist/environment/skyv2/shader/cloud/frag.d.ts +2 -0
- package/dist/environment/skyv2/shader/cloud/frag.js +3 -0
- package/dist/environment/skyv2/shader/cloud/frag.js.map +1 -0
- package/dist/environment/skyv2/shader/cloud/vert.d.ts +2 -0
- package/dist/environment/skyv2/shader/cloud/vert.js +3 -0
- package/dist/environment/skyv2/shader/cloud/vert.js.map +1 -0
- package/dist/environment/skyv2/shader/sky/frag.d.ts +2 -0
- package/dist/environment/skyv2/shader/sky/frag.js +3 -0
- package/dist/environment/skyv2/shader/sky/frag.js.map +1 -0
- package/dist/environment/skyv2/type.d.ts +14 -0
- package/dist/environment/skyv2/type.js +26 -0
- package/dist/environment/skyv2/type.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/material/fakeGlowMaterial/index.d.ts +17 -0
- package/dist/material/fakeGlowMaterial/index.js +57 -0
- package/dist/material/fakeGlowMaterial/index.js.map +1 -0
- package/dist/material/fakeGlowMaterial/shader/fragmentShader.d.ts +2 -0
- package/dist/material/fakeGlowMaterial/shader/fragmentShader.js +3 -0
- package/dist/material/fakeGlowMaterial/shader/fragmentShader.js.map +1 -0
- package/dist/material/fakeGlowMaterial/shader/vertexShader.d.ts +2 -0
- package/dist/material/fakeGlowMaterial/shader/vertexShader.js +3 -0
- package/dist/material/fakeGlowMaterial/shader/vertexShader.js.map +1 -0
- package/dist/poi/Sprite/index.js +1 -1
- package/dist/poi/Sprite/index.js.map +1 -1
- package/dist/postEffects/bloomSelect.js +40 -6
- package/dist/postEffects/bloomSelect.js.map +1 -1
- package/dist/postEffects/outlinePass.js.map +1 -1
- package/dist/weather/index.d.ts +36 -0
- package/dist/weather/index.js +273 -5
- package/dist/weather/index.js.map +1 -1
- package/dist/weather/objects/CloudMesh.d.ts +22 -0
- package/dist/weather/objects/CloudMesh.js +122 -0
- package/dist/weather/objects/CloudMesh.js.map +1 -0
- package/dist/weather/{fog2DMesh.d.ts → objects/Fog2DMesh.d.ts} +6 -7
- package/dist/weather/objects/Fog2DMesh.js +94 -0
- package/dist/weather/objects/Fog2DMesh.js.map +1 -0
- package/dist/weather/objects/SkyMesh.d.ts +7 -0
- package/dist/weather/{fog2DMesh.js → objects/SkyMesh.js} +19 -55
- package/dist/weather/objects/SkyMesh.js.map +1 -0
- package/dist/weather/objects/SnowMesh.d.ts +17 -0
- package/dist/weather/objects/SnowMesh.js +163 -0
- package/dist/weather/objects/SnowMesh.js.map +1 -0
- package/dist/weather/shaders/cloud.d.ts +37 -0
- package/dist/weather/shaders/cloud.js +38 -0
- package/dist/weather/shaders/cloud.js.map +1 -0
- package/dist/weather/shaders/fog.d.ts +16 -0
- package/dist/weather/shaders/fog.js +17 -0
- package/dist/weather/shaders/fog.js.map +1 -0
- package/dist/weather/shaders/sky.d.ts +6 -0
- package/dist/weather/shaders/sky.js +7 -0
- package/dist/weather/shaders/sky.js.map +1 -0
- package/dist/weather/shaders/snow.d.ts +28 -0
- package/dist/weather/shaders/snow.js +33 -0
- package/dist/weather/shaders/snow.js.map +1 -0
- package/dist/weather/utils/constant.d.ts +38 -0
- package/dist/weather/utils/constant.js +25 -0
- package/dist/weather/utils/constant.js.map +1 -0
- package/dist/weather/utils/type.d.ts +11 -0
- package/dist/weather/utils/type.js +23 -0
- package/dist/weather/utils/type.js.map +1 -0
- package/package.json +3 -3
- package/dist/weather/fog2DMesh.js.map +0 -1
- package/dist/weather/glsl/fog.d.ts +0 -2
- package/dist/weather/glsl/fog.js +0 -3
- package/dist/weather/glsl/fog.js.map +0 -1
package/dist/camera/index.js
CHANGED
|
@@ -88,10 +88,10 @@ var Camera = /*#__PURE__*/function () {
|
|
|
88
88
|
}, {
|
|
89
89
|
key: "handleChanged",
|
|
90
90
|
value: function handleChanged() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
})
|
|
91
|
+
// this.controls.addEventListener('change', () => {
|
|
92
|
+
// // if (this.isTransitionPeriod)
|
|
93
|
+
// // this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)
|
|
94
|
+
// })
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
/**
|
|
@@ -101,7 +101,7 @@ var Camera = /*#__PURE__*/function () {
|
|
|
101
101
|
}, {
|
|
102
102
|
key: "focus",
|
|
103
103
|
value: function focus(params) {
|
|
104
|
-
var
|
|
104
|
+
var _this = this;
|
|
105
105
|
return new Promise(function (res) {
|
|
106
106
|
var position = params.target,
|
|
107
107
|
pitch = params.pitch,
|
|
@@ -115,14 +115,14 @@ var Camera = /*#__PURE__*/function () {
|
|
|
115
115
|
var _params$isTrigger2;
|
|
116
116
|
var position = _ref2.position,
|
|
117
117
|
lookat = _ref2.lookat;
|
|
118
|
-
|
|
118
|
+
_this.isTrigger = (_params$isTrigger2 = params.isTrigger) !== null && _params$isTrigger2 !== void 0 ? _params$isTrigger2 : true;
|
|
119
119
|
},
|
|
120
120
|
onComplate: function onComplate() {
|
|
121
121
|
var _params$duration;
|
|
122
|
-
|
|
122
|
+
_this.isTrigger = false;
|
|
123
123
|
res({
|
|
124
|
-
position:
|
|
125
|
-
target:
|
|
124
|
+
position: _this.camera.position.toArray(),
|
|
125
|
+
target: _this.controls.target.toArray(),
|
|
126
126
|
duration: (_params$duration = params.duration) !== null && _params$duration !== void 0 ? _params$duration : 0,
|
|
127
127
|
userInput: true,
|
|
128
128
|
pitch: pitch !== null && pitch !== void 0 ? pitch : 40
|
|
@@ -132,15 +132,15 @@ var Camera = /*#__PURE__*/function () {
|
|
|
132
132
|
};
|
|
133
133
|
if (Array.isArray(position[0])) {
|
|
134
134
|
var currentPos = position;
|
|
135
|
-
var
|
|
136
|
-
lastPosition =
|
|
137
|
-
lastLookat =
|
|
138
|
-
|
|
135
|
+
var _this$caclCurrentPos = _this.caclCurrentPos(currentPos, 0),
|
|
136
|
+
lastPosition = _this$caclCurrentPos.lastPosition,
|
|
137
|
+
lastLookat = _this$caclCurrentPos.lastLookat;
|
|
138
|
+
_this.moveCameraTo(lastPosition, lastLookat, pitch, moveOptions());
|
|
139
139
|
} else {
|
|
140
140
|
var _currentPos = position;
|
|
141
|
-
var _lastPosition =
|
|
142
|
-
var _lastLookat =
|
|
143
|
-
|
|
141
|
+
var _lastPosition = _this.caclSingleCoordinate(_this.controls.target, _this.camera.position, new Vector3().fromArray(_currentPos));
|
|
142
|
+
var _lastLookat = _this.caclTargetByPitch(0, new Vector3().fromArray(_currentPos), _lastPosition);
|
|
143
|
+
_this.moveCameraTo(_lastPosition, _lastLookat, pitch, moveOptions());
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
146
|
}
|
|
@@ -152,24 +152,24 @@ var Camera = /*#__PURE__*/function () {
|
|
|
152
152
|
}, {
|
|
153
153
|
key: "set",
|
|
154
154
|
value: function set(params) {
|
|
155
|
-
var
|
|
155
|
+
var _this2 = this;
|
|
156
156
|
return new Promise(function (res, _) {
|
|
157
157
|
var _params$isTrigger3, _ref3;
|
|
158
|
-
|
|
158
|
+
_this2.moveCameraTo(new Vector3(params.position[0], params.position[1], params.position[2]), new Vector3(params.target[0], params.target[1], params.target[2]), 0, {
|
|
159
159
|
isTrigger: (_params$isTrigger3 = params.isTrigger) !== null && _params$isTrigger3 !== void 0 ? _params$isTrigger3 : true,
|
|
160
160
|
duration: (_ref3 = params.duration && params.duration * 1000) !== null && _ref3 !== void 0 ? _ref3 : 1000,
|
|
161
161
|
onUpdate: function onUpdate(_ref4) {
|
|
162
162
|
var _params$isTrigger4;
|
|
163
163
|
var position = _ref4.position,
|
|
164
164
|
lookat = _ref4.lookat;
|
|
165
|
-
|
|
165
|
+
_this2.isTrigger = (_params$isTrigger4 = params.isTrigger) !== null && _params$isTrigger4 !== void 0 ? _params$isTrigger4 : true;
|
|
166
166
|
},
|
|
167
167
|
onComplate: function onComplate() {
|
|
168
168
|
var _params$duration2;
|
|
169
|
-
|
|
169
|
+
_this2.isTrigger = false;
|
|
170
170
|
res({
|
|
171
|
-
position:
|
|
172
|
-
target:
|
|
171
|
+
position: _this2.camera.position.toArray(),
|
|
172
|
+
target: _this2.controls.target.toArray(),
|
|
173
173
|
isTrigger: true,
|
|
174
174
|
duration: (_params$duration2 = params.duration) !== null && _params$duration2 !== void 0 ? _params$duration2 : 0,
|
|
175
175
|
userInput: true
|
|
@@ -201,7 +201,7 @@ var Camera = /*#__PURE__*/function () {
|
|
|
201
201
|
}, {
|
|
202
202
|
key: "moveCameraTo",
|
|
203
203
|
value: function moveCameraTo(position, target) {
|
|
204
|
-
var
|
|
204
|
+
var _this3 = this;
|
|
205
205
|
var pitch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
206
206
|
var options = arguments.length > 3 ? arguments[3] : undefined;
|
|
207
207
|
var currentPoition = this.camera.position.clone();
|
|
@@ -212,7 +212,7 @@ var Camera = /*#__PURE__*/function () {
|
|
|
212
212
|
this.controls.target.copy(target);
|
|
213
213
|
requestAnimationFrame(function () {
|
|
214
214
|
(options === null || options === void 0 ? void 0 : options.onComplate) && options.onComplate();
|
|
215
|
-
|
|
215
|
+
_this3.sceneControl.renderer.render(_this3.sceneControl.scene, _this3.sceneControl.camera);
|
|
216
216
|
});
|
|
217
217
|
return;
|
|
218
218
|
}
|
|
@@ -227,18 +227,18 @@ var Camera = /*#__PURE__*/function () {
|
|
|
227
227
|
p: -this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)
|
|
228
228
|
}, (options === null || options === void 0 ? void 0 : options.duration) || 1000).onStart(function () {
|
|
229
229
|
(options === null || options === void 0 ? void 0 : options.onStart) && options.onStart();
|
|
230
|
-
|
|
231
|
-
|
|
230
|
+
_this3.controls.enabled = false;
|
|
231
|
+
_this3.isTransitionPeriod = true;
|
|
232
232
|
}).easing(TWEEN.Easing.Quadratic.InOut).onUpdate(function (_ref5) {
|
|
233
233
|
var t = _ref5.t,
|
|
234
234
|
lookat = _ref5.lookat,
|
|
235
235
|
p = _ref5.p;
|
|
236
|
-
|
|
236
|
+
_this3.controls.target.copy(lookat);
|
|
237
237
|
if (pitch)
|
|
238
238
|
// @ts-ignore
|
|
239
|
-
|
|
239
|
+
_this3.camera.rotationParent.x = p;
|
|
240
240
|
var currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t);
|
|
241
|
-
|
|
241
|
+
_this3.camera.position.copy(currentPosition);
|
|
242
242
|
(options === null || options === void 0 ? void 0 : options.onUpdate) && options.onUpdate({
|
|
243
243
|
position: currentPosition,
|
|
244
244
|
lookat: lookat
|
|
@@ -247,9 +247,9 @@ var Camera = /*#__PURE__*/function () {
|
|
|
247
247
|
requestAnimationFrame(function () {
|
|
248
248
|
(options === null || options === void 0 ? void 0 : options.onComplate) && options.onComplate();
|
|
249
249
|
});
|
|
250
|
-
|
|
250
|
+
_this3.controls.enabled = true;
|
|
251
251
|
setTimeout(function () {
|
|
252
|
-
|
|
252
|
+
_this3.isTransitionPeriod = false;
|
|
253
253
|
});
|
|
254
254
|
}).start();
|
|
255
255
|
}
|
package/dist/camera/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Box3","MathUtils","TWEEN","Vector3","Camera","camera","controls","sceneControl","isTrigger","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","renderer","render","scene","params","Promise","res","duration","moveOptions","onUpdate","lookat","onComplate","toArray","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../src/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n this.isTrigger = true\n this.camera = sceneControl.camera!\n this.controls = sceneControl.controls!\n this.sceneControl = sceneControl\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (this.isTransitionPeriod)\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Box3","MathUtils","TWEEN","Vector3","Camera","camera","controls","sceneControl","isTrigger","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","params","Promise","res","duration","moveOptions","onUpdate","lookat","onComplate","toArray","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","isTransitionPeriod","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../src/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n this.isTrigger = true\n this.camera = sceneControl.camera!\n this.controls = sceneControl.controls!\n this.sceneControl = sceneControl\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n // this.controls.addEventListener('change', () => {\n // // if (this.isTransitionPeriod)\n // // this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n // })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":";;;;;;;AACA,SAASA,IAAI,EAAEC,SAAS,EAAEC,KAAK,EAAEC,OAAO,QAAQ,eAAe;AAAA,IAWzDC,MAAM;EAQV,gBAAYC,MAAyB,EAAEC,QAAuB,EAAEC,YAA0B,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,4CAJ/D,KAAK;IAAA,mCACd,IAAI;IAAA;IAItB,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB,IAAI,CAACH,MAAM,GAAGE,YAAY,CAACF,MAAO;IAClC,IAAI,CAACC,QAAQ,GAAGC,YAAY,CAACD,QAAS;IACtC,IAAI,CAACC,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACE,aAAa,EAAE;EACtB;;EAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,wBAAuBC,UAA0B,EAAEC,KAAa,EAAE;MAChE,IAAMC,GAAG,GAAG,IAAIZ,IAAI,EAAE;MAEtBY,GAAG,CAACC,aAAa,CAACH,UAAU,CAACI,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAI,IAAIZ,OAAO,CAACY,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;MAAA,EAAC,CAAC;MAEjF,IAAMC,MAAM,GAAGJ,GAAG,CAACK,SAAS,CAAC,IAAId,OAAO,EAAE,CAAC;MAC3C,IAAMe,IAAI,GAAGN,GAAG,CAACO,OAAO,CAAC,IAAIhB,OAAO,EAAE,CAAC;MACvC,IAAMiB,YAAY,GAAGF,IAAI,CAACG,MAAM,EAAE,GAAG,GAAG;MAExC,IAAMC,WAAW,GAAGF,YAAY,GAAGG,IAAI,CAACC,GAAG,CAAC,IAAI,CAACnB,MAAM,CAACoB,GAAG,GAAG,CAAC,GAAGF,IAAI,CAACG,EAAE,GAAG,GAAG,CAAC;MAChF,IAAMC,sBAAsB,GAAGL,WAAW;MAC1C,IAAMM,eAAe,GAAI,IAAI,CAACvB,MAAM,CAACwB,QAAQ,CAACC,KAAK,EAAE,CAAEC,GAAG,CAAC,IAAI,CAACzB,QAAQ,CAAC0B,MAAM,CAAC,CAACC,SAAS,EAAE,EAAC;;MAE7F,IAAMC,YAAY,GAAGN,eAAe,CAACO,cAAc,CAACR,sBAAsB,CAAC,CAACS,GAAG,CAACpB,MAAM,CAAC;MACvF,IAAMqB,UAAU,GAAG,IAAI,CAACC,iBAAiB,CAAC3B,KAAK,EAAEK,MAAM,EAAEkB,YAAY,CAAC;MAEtE,OAAO;QACLA,YAAY,EAAZA,YAAY;QACZG,UAAU,EAAVA;MACF,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,2BAA0B1B,KAAa,EAAEqB,MAAe,EAAEH,QAAiB,EAAE;MAC3E,IAAMD,eAAe,GAAG,IAAIzB,OAAO,EAAE,CAACoC,UAAU,CAACP,MAAM,EAAEH,QAAQ,CAAC;MAClE,IAAMW,QAAQ,GAAG,IAAIrC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACrC,IAAMsC,cAAc,GAAG,IAAItC,OAAO,EAAE,CAACuC,YAAY,CAACd,eAAe,EAAEY,QAAQ,CAAC,CAACP,SAAS,EAAE;MAExFL,eAAe,CAACe,cAAc,CAACF,cAAc,EAAExC,SAAS,CAAC2C,QAAQ,CAACjC,KAAK,CAAC,CAAC;MAEzE,IAAMkC,QAAQ,GAAGhB,QAAQ,CAACiB,UAAU,CAACd,MAAM,CAAC;MAC5C,IAAMe,SAAS,GAAGlB,QAAQ,CAACC,KAAK,EAAE,CAACM,GAAG,CAACR,eAAe,CAACK,SAAS,EAAE,CAACE,cAAc,CAACU,QAAQ,CAAC,CAAC;MAE5F,OAAOE,SAAS;IAClB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,8BAA6BC,UAAmB,EAAEC,YAAqB,EAAEC,UAAmB,EAAE;MAC5F,IAAMtB,eAAe,GAAGsB,UAAU,CAACpB,KAAK,EAAE,CAACC,GAAG,CAACiB,UAAU,CAAC,CAACf,SAAS,EAAE;MACtE,OAAOL,eAAe,CAACO,cAAc,CAACe,UAAU,CAACJ,UAAU,CAACE,UAAU,CAAC,CAAC,CAACZ,GAAG,CAACa,YAAY,CAAC;IAC5F;;IAEA;AACF;AACA;EAFE;IAAA;IAAA,OAGA,yBAAwB;MACtB;MACA;MACA;MACA;IAAA;;IAGF;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,eAAME,MAAyG,EAAE;MAAA;MAC/G,OAAO,IAAIC,OAAO,CAAC,UAACC,GAAG,EAAK;QAC1B,IAAgBxB,QAAQ,GAAsBsB,MAAM,CAA5CnB,MAAM;UAAYrB,KAAK,GAAewC,MAAM,CAA1BxC,KAAK;UAAE2C,QAAQ,GAAKH,MAAM,CAAnBG,QAAQ;QACzC,IAAMC,WAAW,GAAG,SAAdA,WAAW;UAAA;UAAA,OAAU;YACzBD,QAAQ,UAAGA,QAAQ,IAAIA,QAAQ,GAAG,IAAI,uCAAK,IAAI;YAC/C9C,SAAS,uBAAE2C,MAAM,CAAC3C,SAAS,iEAAI,IAAI;YACnCgD,QAAQ,EAAE,yBAA0B;cAAA;cAAA,IAAvB3B,QAAQ,SAARA,QAAQ;gBAAE4B,MAAM,SAANA,MAAM;cAC3B,KAAI,CAACjD,SAAS,yBAAG2C,MAAM,CAAC3C,SAAS,mEAAI,IAAI;YAC3C,CAAC;YACDkD,UAAU,EAAE,sBAAM;cAAA;cAChB,KAAI,CAAClD,SAAS,GAAG,KAAK;cAEtB6C,GAAG,CAAC;gBACFxB,QAAQ,EAAE,KAAI,CAACxB,MAAM,CAACwB,QAAQ,CAAC8B,OAAO,EAAE;gBACxC3B,MAAM,EAAE,KAAI,CAAC1B,QAAQ,CAAC0B,MAAM,CAAC2B,OAAO,EAAE;gBACtCL,QAAQ,sBAAEH,MAAM,CAACG,QAAQ,+DAAI,CAAC;gBAC9BM,SAAS,EAAE,IAAI;gBACfjD,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI;cAClB,CAAC,CAAC;YACJ;UACF,CAAC;QAAA,CAA8B;QAE/B,IAAIkD,KAAK,CAACC,OAAO,CAACjC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;UAC9B,IAAMnB,UAAU,GAAGmB,QAA0B;UAC7C,2BAAqC,KAAI,CAACkC,cAAc,CAACrD,UAAU,EAAE,CAAC,CAAC;YAA/DwB,YAAY,wBAAZA,YAAY;YAAEG,UAAU,wBAAVA,UAAU;UAEhC,KAAI,CAAC2B,YAAY,CACf9B,YAAY,EACZG,UAAU,EACV1B,KAAK,EACL4C,WAAW,EAAE,CACd;QACH,CAAC,MACI;UACH,IAAM7C,WAAU,GAAGmB,QAAwB;UAC3C,IAAMK,aAAY,GAAG,KAAI,CAAC+B,oBAAoB,CAAC,KAAI,CAAC3D,QAAQ,CAAC0B,MAAM,EAAE,KAAI,CAAC3B,MAAM,CAACwB,QAAQ,EAAE,IAAI1B,OAAO,EAAE,CAAC+D,SAAS,CAACxD,WAAU,CAAC,CAAC;UAC/H,IAAM2B,WAAU,GAAG,KAAI,CAACC,iBAAiB,CAAC,CAAC,EAAE,IAAInC,OAAO,EAAE,CAAC+D,SAAS,CAACxD,WAAU,CAAC,EAAEwB,aAAY,CAAC;UAE/F,KAAI,CAAC8B,YAAY,CACf9B,aAAY,EACZG,WAAU,EACV1B,KAAK,EACL4C,WAAW,EAAE,CACd;QACH;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,aAAIJ,MAAgG,EAAE;MAAA;MACpG,OAAO,IAAIC,OAAO,CAAC,UAACC,GAAG,EAAEc,CAAC,EAAK;QAAA;QAC7B,MAAI,CAACH,YAAY,CACf,IAAI7D,OAAO,CAACgD,MAAM,CAACtB,QAAQ,CAAC,CAAC,CAAC,EAAEsB,MAAM,CAACtB,QAAQ,CAAC,CAAC,CAAC,EAAEsB,MAAM,CAACtB,QAAQ,CAAC,CAAC,CAAC,CAAC,EACvE,IAAI1B,OAAO,CAACgD,MAAM,CAACnB,MAAM,CAAC,CAAC,CAAC,EAAEmB,MAAM,CAACnB,MAAM,CAAC,CAAC,CAAC,EAAEmB,MAAM,CAACnB,MAAM,CAAC,CAAC,CAAC,CAAC,EACjE,CAAC,EACD;UACExB,SAAS,wBAAE2C,MAAM,CAAC3C,SAAS,mEAAI,IAAI;UACnC8C,QAAQ,WAAGH,MAAM,CAACG,QAAQ,IAAIH,MAAM,CAACG,QAAQ,GAAG,IAAI,yCAAK,IAAI;UAC7DE,QAAQ,EAAE,yBAA0B;YAAA;YAAA,IAAvB3B,QAAQ,SAARA,QAAQ;cAAE4B,MAAM,SAANA,MAAM;YAC3B,MAAI,CAACjD,SAAS,yBAAG2C,MAAM,CAAC3C,SAAS,mEAAI,IAAI;UAC3C,CAAC;UACDkD,UAAU,EAAE,sBAAM;YAAA;YAChB,MAAI,CAAClD,SAAS,GAAG,KAAK;YAEtB6C,GAAG,CAAC;cACFxB,QAAQ,EAAE,MAAI,CAACxB,MAAM,CAACwB,QAAQ,CAAC8B,OAAO,EAAE;cACxC3B,MAAM,EAAE,MAAI,CAAC1B,QAAQ,CAAC0B,MAAM,CAAC2B,OAAO,EAAE;cACtCnD,SAAS,EAAE,IAAI;cACf8C,QAAQ,uBAAEH,MAAM,CAACG,QAAQ,iEAAI,CAAC;cAC9BM,SAAS,EAAE;YACb,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACN,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,eAAM;MACJ,OAAO;QACL/B,QAAQ,EAAE,CAAC,IAAI,CAACxB,MAAM,CAACwB,QAAQ,CAACuC,CAAC,EAAE,IAAI,CAAC/D,MAAM,CAACwB,QAAQ,CAACwC,CAAC,EAAE,IAAI,CAAChE,MAAM,CAACwB,QAAQ,CAACyC,CAAC,CAAC;QAClFtC,MAAM,EAAE,CAAC,IAAI,CAAC1B,QAAQ,CAAC0B,MAAM,CAACoC,CAAC,EAAE,IAAI,CAAC9D,QAAQ,CAAC0B,MAAM,CAACqC,CAAC,EAAE,IAAI,CAAC/D,QAAQ,CAAC0B,MAAM,CAACsC,CAAC;MACjF,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,sBAAqBzC,QAAiB,EAAEG,MAAe,EAAkD;MAAA;MAAA,IAAhDrB,KAAK,uEAAG,CAAC;MAAA,IAAE4D,OAAmC;MACrG,IAAMC,cAAc,GAAG,IAAI,CAACnE,MAAM,CAACwB,QAAQ,CAACC,KAAK,EAAE;MACnD,IAAM2C,4BAA4B,GAAG,IAAItE,OAAO,EAAE;MAElD,IAAI,CAAAoE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEjB,QAAQ,MAAK,CAAC,EAAE;QAC3B,IAAI,CAAC9C,SAAS,GAAG,CAAC+D,OAAO,CAAC/D,SAAS;QACnC,IAAI,CAACH,MAAM,CAACwB,QAAQ,CAAC6C,IAAI,CAAC7C,QAAQ,CAAC;QACnC,IAAI,CAACvB,QAAQ,CAAC0B,MAAM,CAAC0C,IAAI,CAAC1C,MAAM,CAAC;QAEjC2C,qBAAqB,CAAC,YAAM;UAC1B,CAAAJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEb,UAAU,KAAIa,OAAO,CAACb,UAAU,EAAE;UAC3C,MAAI,CAACnD,YAAY,CAACqE,QAAQ,CAAEC,MAAM,CAAC,MAAI,CAACtE,YAAY,CAACuE,KAAK,EAAG,MAAI,CAACvE,YAAY,CAACF,MAAM,CAAE;QACzF,CAAC,CAAC;QAEF;MACF;MAEA,IAAI,IAAI,CAAC0E,KAAK,EACZ,IAAI,CAACA,KAAK,CAACC,IAAI,EAAE;MAEnB,IAAI,CAACD,KAAK,GAAG,IAAI7E,KAAK,CAAC+E,KAAK,CAAC;QAAEC,CAAC,EAAE,CAAC;QAAEzB,MAAM,EAAE,IAAI,CAACnD,QAAQ,CAAC0B,MAAM,CAACF,KAAK,EAAE;QAAEqD,CAAC,EAAE;MAAE,CAAC,CAAC,CAACC,EAAE,CAAC;QAAEF,CAAC,EAAE,CAAC;QAAEzB,MAAM,EAAEzB,MAAM;QAAEmD,CAAC,EAAG,CAAC,IAAI,CAAC9E,MAAM,CAACgF,QAAQ,CAACjB,CAAC,IAAIzD,KAAK,GAAGV,SAAS,CAAC2C,QAAQ,CAAC,CAACjC,KAAK,CAAC,GAAG,CAAC;MAAG,CAAC,EAAE,CAAA4D,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEjB,QAAQ,KAAI,IAAI,CAAC,CAChNgC,OAAO,CAAC,YAAM;QACb,CAAAf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEe,OAAO,KAAIf,OAAO,CAACe,OAAO,EAAE;QACrC,MAAI,CAAChF,QAAQ,CAACiF,OAAO,GAAG,KAAK;QAC7B,MAAI,CAACC,kBAAkB,GAAG,IAAI;MAChC,CAAC,CAAC,CACDC,MAAM,CAACvF,KAAK,CAACwF,MAAM,CAACC,SAAS,CAACC,KAAK,CAAC,CACpCpC,QAAQ,CAAC,iBAAsB;QAAA,IAAnB0B,CAAC,SAADA,CAAC;UAAEzB,MAAM,SAANA,MAAM;UAAE0B,CAAC,SAADA,CAAC;QACvB,MAAI,CAAC7E,QAAQ,CAAC0B,MAAM,CAAC0C,IAAI,CAACjB,MAAM,CAAC;QAEjC,IAAI9C,KAAK;UACP;UACA,MAAI,CAACN,MAAM,CAACwF,cAAc,CAACzB,CAAC,GAAGe,CAAC;QAElC,IAAMW,eAAe,GAAGrB,4BAA4B,CAACsB,WAAW,CAACvB,cAAc,EAAE3C,QAAQ,EAAEqD,CAAC,CAAC;QAC7F,MAAI,CAAC7E,MAAM,CAACwB,QAAQ,CAAC6C,IAAI,CAACoB,eAAe,CAAC;QAC1C,CAAAvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEf,QAAQ,KAAIe,OAAO,CAACf,QAAQ,CAAC;UAAE3B,QAAQ,EAAEiE,eAAe;UAAErC,MAAM,EAANA;QAAO,CAAC,CAAC;MAC9E,CAAC,CAAC,CACDuC,UAAU,CAAC,YAAM;QAChBrB,qBAAqB,CAAC,YAAM;UAC1B,CAAAJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEb,UAAU,KAAIa,OAAO,CAACb,UAAU,EAAE;QAC7C,CAAC,CAAC;QAEF,MAAI,CAACpD,QAAQ,CAACiF,OAAO,GAAG,IAAI;QAE5BU,UAAU,CAAC,YAAM;UACf,MAAI,CAACT,kBAAkB,GAAG,KAAK;QACjC,CAAC,CAAC;MACJ,CAAC,CAAC,CACDU,KAAK,EAAE;IACZ;EAAC;EAAA;AAAA;AAGH,eAAe9F,MAAM"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import { Group, Vector3 } from '@anov/3d-core';
|
|
1
|
+
import { Group, Vector3, lib } from '@anov/3d-core';
|
|
2
2
|
/**
|
|
3
|
-
* create sky system
|
|
3
|
+
* create sky system, main time
|
|
4
4
|
* @param date
|
|
5
5
|
* @param latitude
|
|
6
6
|
* @param longitude
|
|
7
|
+
* @param sunRadius default 300 sun radius
|
|
7
8
|
* @returns
|
|
8
9
|
*/
|
|
9
|
-
declare const createSkySystem: (date: Date, latitude: number, longitude: number, sunRadius?: number) =>
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
declare const createSkySystem: (date: Date, latitude: number, longitude: number, sunRadius?: number) => {
|
|
11
|
+
setDate: (currentDate?: Date) => Vector3;
|
|
12
|
+
skyGroup: Group & {
|
|
13
|
+
sunPosition: Vector3;
|
|
14
|
+
};
|
|
15
|
+
sky: lib.Sky;
|
|
16
|
+
skyControl: {
|
|
17
|
+
disabled: () => void;
|
|
18
|
+
disabledSun: () => void;
|
|
19
|
+
enabledSun: () => void;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
12
22
|
export default createSkySystem;
|
|
@@ -14,8 +14,6 @@ var Sky = lib.Sky;
|
|
|
14
14
|
var initsSkySystem = function initsSkySystem(options) {
|
|
15
15
|
var sky = new Sky();
|
|
16
16
|
var position = new Vector3();
|
|
17
|
-
var _use$useScene = use.useScene(),
|
|
18
|
-
renderer = _use$useScene.renderer;
|
|
19
17
|
sky.scale.setScalar(450000);
|
|
20
18
|
var effectController = {
|
|
21
19
|
turbidity: 10,
|
|
@@ -46,10 +44,10 @@ var initsSkySystem = function initsSkySystem(options) {
|
|
|
46
44
|
var initSunLight = function initSunLight(options) {
|
|
47
45
|
var _opts$mapSize, _opts$mapSize2;
|
|
48
46
|
var opts = options || {};
|
|
49
|
-
var sunLight = new DirectionalLight(getLastValue(opts.color, 'white'), getLastValue(opts.intensity,
|
|
47
|
+
var sunLight = new DirectionalLight(getLastValue(opts.color, 'white'), getLastValue(opts.intensity, 8));
|
|
50
48
|
sunLight.castShadow = true;
|
|
51
49
|
sunLight.shadow.bias = getLastValue(opts.bias, -0.005);
|
|
52
|
-
sunLight.shadow.mapSize.set(getLastValue((_opts$mapSize = opts.mapSize) === null || _opts$mapSize === void 0 ? void 0 : _opts$mapSize[0], 1024
|
|
50
|
+
sunLight.shadow.mapSize.set(getLastValue((_opts$mapSize = opts.mapSize) === null || _opts$mapSize === void 0 ? void 0 : _opts$mapSize[0], 1024), getLastValue((_opts$mapSize2 = opts.mapSize) === null || _opts$mapSize2 === void 0 ? void 0 : _opts$mapSize2[1], 1024));
|
|
53
51
|
var cam = sunLight.shadow.camera;
|
|
54
52
|
cam.near = getLastValue(opts.near, 1);
|
|
55
53
|
cam.far = getLastValue(opts.far, 10000);
|
|
@@ -61,17 +59,18 @@ var initSunLight = function initSunLight(options) {
|
|
|
61
59
|
};
|
|
62
60
|
|
|
63
61
|
/**
|
|
64
|
-
* create sky system
|
|
62
|
+
* create sky system, main time
|
|
65
63
|
* @param date
|
|
66
64
|
* @param latitude
|
|
67
65
|
* @param longitude
|
|
66
|
+
* @param sunRadius default 300 sun radius
|
|
68
67
|
* @returns
|
|
69
68
|
*/
|
|
70
69
|
var createSkySystem = function createSkySystem(date, latitude, longitude) {
|
|
71
70
|
var sunRadius = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 300;
|
|
72
|
-
var _use$
|
|
73
|
-
renderer = _use$
|
|
74
|
-
scene = _use$
|
|
71
|
+
var _use$useScene = use.useScene(),
|
|
72
|
+
renderer = _use$useScene.renderer,
|
|
73
|
+
scene = _use$useScene.scene;
|
|
75
74
|
sunRadius = 300;
|
|
76
75
|
if (!renderer && !scene) throw new Error('renderer or scene is not exist');
|
|
77
76
|
var _initsSkySystem = initsSkySystem(),
|
|
@@ -81,12 +80,9 @@ var createSkySystem = function createSkySystem(date, latitude, longitude) {
|
|
|
81
80
|
uniforms = _initsSkySystem2[2];
|
|
82
81
|
var sunLight = initSunLight();
|
|
83
82
|
var skyGroup = new Group();
|
|
84
|
-
|
|
85
|
-
// TODO: 工厂案例临时释
|
|
86
|
-
// scene!.add(sky)
|
|
83
|
+
scene.add(sky);
|
|
87
84
|
skyGroup.add(sunLight);
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
scene.add(skyGroup);
|
|
90
86
|
var move = function move(altitude, azimuth) {
|
|
91
87
|
position.setFromSphericalCoords(sunRadius, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth);
|
|
92
88
|
uniforms.sunPosition.value.copy(position);
|
|
@@ -102,19 +98,29 @@ var createSkySystem = function createSkySystem(date, latitude, longitude) {
|
|
|
102
98
|
altitude = _getSunPosition.altitude,
|
|
103
99
|
azimuth = _getSunPosition.azimuth;
|
|
104
100
|
move(altitude, azimuth);
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* set date
|
|
108
|
-
* @param currentDate
|
|
109
|
-
* @returns
|
|
110
|
-
*/
|
|
111
101
|
var setDate = function setDate(currentDate) {
|
|
112
102
|
var _getSunPosition2 = getSunPosition(currentDate || date, latitude, longitude),
|
|
113
103
|
altitude = _getSunPosition2.altitude,
|
|
114
104
|
azimuth = _getSunPosition2.azimuth;
|
|
115
105
|
return move(altitude, azimuth);
|
|
116
106
|
};
|
|
117
|
-
|
|
107
|
+
var skyControl = {
|
|
108
|
+
disabled: function disabled() {},
|
|
109
|
+
disabledSun: function disabledSun() {
|
|
110
|
+
sunLight.visible = false;
|
|
111
|
+
sky.visible = false;
|
|
112
|
+
},
|
|
113
|
+
enabledSun: function enabledSun() {
|
|
114
|
+
sunLight.visible = true;
|
|
115
|
+
sky.visible = true;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
setDate: setDate,
|
|
120
|
+
skyGroup: skyGroup,
|
|
121
|
+
sky: sky,
|
|
122
|
+
skyControl: skyControl
|
|
123
|
+
};
|
|
118
124
|
};
|
|
119
125
|
export default createSkySystem;
|
|
120
126
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DirectionalLight","Group","MathUtils","Vector3","lib","use","getLastValue","getSunPosition","Sky","initsSkySystem","options","sky","position","
|
|
1
|
+
{"version":3,"names":["DirectionalLight","Group","MathUtils","Vector3","lib","use","getLastValue","getSunPosition","Sky","initsSkySystem","options","sky","position","scale","setScalar","effectController","turbidity","rayleigh","mieCoefficient","mieDirectionalG","elevation","azimuth","exposure","uniforms","material","value","phi","degToRad","theta","setFromSphericalCoords","sunPosition","copy","initSunLight","opts","sunLight","color","intensity","castShadow","shadow","bias","mapSize","set","cam","camera","near","far","left","right","top","bottom","createSkySystem","date","latitude","longitude","sunRadius","useScene","renderer","scene","Error","skyGroup","add","move","altitude","radToDeg","x","Math","cos","z","sin","y","setDate","currentDate","skyControl","disabled","disabledSun","visible","enabledSun"],"sources":["../../../src/environment/sky/index.ts"],"sourcesContent":["import { DirectionalLight, Group, MathUtils, Vector3, lib, use } from '@anov/3d-core'\nimport { getLastValue } from '../../utils'\nimport { getSunPosition } from '../sun'\n\nconst Sky = lib.Sky\n\ntype SkySystemOption = {\n scalarCoefficient?: number\n turbidity?: number\n rayleigh?: number\n mieCoefficient?: number\n mieDirectionalG?: number\n elevation?: number\n azimuth?: number\n exposure?: number\n}\n\n/**\n * 天空盒 shader\n */\nconst initsSkySystem = (options?: SkySystemOption) => {\n const sky = new Sky()\n const position = new Vector3()\n\n sky.scale.setScalar(450000)\n\n const effectController = {\n turbidity: 10,\n rayleigh: 3,\n mieCoefficient: 0.005,\n mieDirectionalG: 0.7,\n elevation: 2,\n azimuth: 180,\n exposure: 0.1,\n }\n // @ts-ignore\n const uniforms = sky.material.uniforms\n uniforms.turbidity.value = effectController.turbidity\n uniforms.rayleigh.value = effectController.rayleigh\n uniforms.mieCoefficient.value = effectController.mieCoefficient\n uniforms.mieDirectionalG.value = effectController.mieDirectionalG\n\n const phi = MathUtils.degToRad(90 - effectController.elevation)\n const theta = MathUtils.degToRad(effectController.azimuth)\n\n position.setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(position)\n\n return [sky, position, uniforms] as [typeof sky, typeof position, typeof uniforms]\n}\n\ntype SunLightOption = {\n color?: string\n intensity?: number\n bias?: number\n mapSize?: [number, number]\n\n near?: number\n far?: number\n left?: number\n right?: number\n top?: number\n bottom?: number\n}\n\n/**\n * create sun light\n * @param options\n * @returns\n */\nconst initSunLight = (options?: SunLightOption) => {\n const opts = options || {}\n\n const sunLight = new DirectionalLight(getLastValue(opts.color, 'white'), getLastValue(opts.intensity, 8))\n sunLight.castShadow = true\n\n sunLight.shadow.bias = getLastValue(opts.bias, -0.005)\n sunLight.shadow.mapSize.set(getLastValue(opts.mapSize?.[0], 1024), getLastValue(opts.mapSize?.[1], 1024))\n\n const cam = sunLight.shadow.camera\n cam.near = getLastValue(opts.near, 1)\n cam.far = getLastValue(opts.far, 10000)\n cam.left = getLastValue(opts.left, -1000)\n cam.right = getLastValue(opts.right, 1000)\n cam.top = getLastValue(opts.top, 1000)\n cam.bottom = getLastValue(opts.bottom, -1000)\n\n return sunLight\n}\n\n/**\n * create sky system, main time\n * @param date\n * @param latitude\n * @param longitude\n * @param sunRadius default 300 sun radius\n * @returns\n */\nconst createSkySystem = (date: Date, latitude: number, longitude: number, sunRadius = 300) => {\n const { renderer, scene } = use.useScene()\n\n sunRadius = 300\n\n if (!renderer && !scene)\n throw new Error('renderer or scene is not exist')\n\n const [sky, position, uniforms] = initsSkySystem()\n const sunLight = initSunLight()\n const skyGroup = new Group() as (Group & { sunPosition: Vector3 })\n\n scene!.add(sky)\n skyGroup.add(sunLight)\n scene!.add(skyGroup)\n\n const move = (altitude: number, azimuth: number) => {\n position.setFromSphericalCoords(sunRadius, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth)\n uniforms.sunPosition.value.copy(position)\n\n const x = sunRadius * (Math.cos(altitude)) * (Math.cos(azimuth))\n const z = sunRadius * (Math.cos(altitude)) * (Math.sin(azimuth))\n const y = sunRadius * (Math.sin(altitude))\n\n const sunPosition = new Vector3(x, y, z)\n skyGroup.sunPosition = sunPosition\n skyGroup.position.copy(position)\n\n return sunPosition\n }\n\n const { altitude, azimuth } = getSunPosition(date, latitude, longitude)\n move(altitude, azimuth)\n\n const setDate = (currentDate?: Date) => {\n const { altitude, azimuth } = getSunPosition(currentDate || date, latitude, longitude)\n return move(altitude, azimuth)\n }\n\n const skyControl = {\n disabled: () => {},\n disabledSun: () => {\n sunLight.visible = false\n sky.visible = false\n },\n enabledSun: () => {\n sunLight.visible = true\n sky.visible = true\n },\n }\n\n return {\n setDate,\n skyGroup,\n sky,\n skyControl,\n }\n}\n\nexport default createSkySystem\n"],"mappings":";;;;;;AAAA,SAASA,gBAAgB,EAAEC,KAAK,EAAEC,SAAS,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,QAAQ,eAAe;AACrF,SAASC,YAAY;AACrB,SAASC,cAAc;AAEvB,IAAMC,GAAG,GAAGJ,GAAG,CAACI,GAAG;AAanB;AACA;AACA;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CAAIC,OAAyB,EAAK;EACpD,IAAMC,GAAG,GAAG,IAAIH,GAAG,EAAE;EACrB,IAAMI,QAAQ,GAAG,IAAIT,OAAO,EAAE;EAE9BQ,GAAG,CAACE,KAAK,CAACC,SAAS,CAAC,MAAM,CAAC;EAE3B,IAAMC,gBAAgB,GAAG;IACvBC,SAAS,EAAE,EAAE;IACbC,QAAQ,EAAE,CAAC;IACXC,cAAc,EAAE,KAAK;IACrBC,eAAe,EAAE,GAAG;IACpBC,SAAS,EAAE,CAAC;IACZC,OAAO,EAAE,GAAG;IACZC,QAAQ,EAAE;EACZ,CAAC;EACD;EACA,IAAMC,QAAQ,GAAGZ,GAAG,CAACa,QAAQ,CAACD,QAAQ;EACtCA,QAAQ,CAACP,SAAS,CAACS,KAAK,GAAGV,gBAAgB,CAACC,SAAS;EACrDO,QAAQ,CAACN,QAAQ,CAACQ,KAAK,GAAGV,gBAAgB,CAACE,QAAQ;EACnDM,QAAQ,CAACL,cAAc,CAACO,KAAK,GAAGV,gBAAgB,CAACG,cAAc;EAC/DK,QAAQ,CAACJ,eAAe,CAACM,KAAK,GAAGV,gBAAgB,CAACI,eAAe;EAEjE,IAAMO,GAAG,GAAGxB,SAAS,CAACyB,QAAQ,CAAC,EAAE,GAAGZ,gBAAgB,CAACK,SAAS,CAAC;EAC/D,IAAMQ,KAAK,GAAG1B,SAAS,CAACyB,QAAQ,CAACZ,gBAAgB,CAACM,OAAO,CAAC;EAE1DT,QAAQ,CAACiB,sBAAsB,CAAC,CAAC,EAAEH,GAAG,EAAEE,KAAK,CAAC;EAC9CL,QAAQ,CAACO,WAAW,CAACL,KAAK,CAACM,IAAI,CAACnB,QAAQ,CAAC;EAEzC,OAAO,CAACD,GAAG,EAAEC,QAAQ,EAAEW,QAAQ,CAAC;AAClC,CAAC;AAgBD;AACA;AACA;AACA;AACA;AACA,IAAMS,YAAY,GAAG,SAAfA,YAAY,CAAItB,OAAwB,EAAK;EAAA;EACjD,IAAMuB,IAAI,GAAGvB,OAAO,IAAI,CAAC,CAAC;EAE1B,IAAMwB,QAAQ,GAAG,IAAIlC,gBAAgB,CAACM,YAAY,CAAC2B,IAAI,CAACE,KAAK,EAAE,OAAO,CAAC,EAAE7B,YAAY,CAAC2B,IAAI,CAACG,SAAS,EAAE,CAAC,CAAC,CAAC;EACzGF,QAAQ,CAACG,UAAU,GAAG,IAAI;EAE1BH,QAAQ,CAACI,MAAM,CAACC,IAAI,GAAGjC,YAAY,CAAC2B,IAAI,CAACM,IAAI,EAAE,CAAC,KAAK,CAAC;EACtDL,QAAQ,CAACI,MAAM,CAACE,OAAO,CAACC,GAAG,CAACnC,YAAY,kBAAC2B,IAAI,CAACO,OAAO,kDAAZ,cAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAElC,YAAY,mBAAC2B,IAAI,CAACO,OAAO,mDAAZ,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;EAEzG,IAAME,GAAG,GAAGR,QAAQ,CAACI,MAAM,CAACK,MAAM;EAClCD,GAAG,CAACE,IAAI,GAAGtC,YAAY,CAAC2B,IAAI,CAACW,IAAI,EAAE,CAAC,CAAC;EACrCF,GAAG,CAACG,GAAG,GAAGvC,YAAY,CAAC2B,IAAI,CAACY,GAAG,EAAE,KAAK,CAAC;EACvCH,GAAG,CAACI,IAAI,GAAGxC,YAAY,CAAC2B,IAAI,CAACa,IAAI,EAAE,CAAC,IAAI,CAAC;EACzCJ,GAAG,CAACK,KAAK,GAAGzC,YAAY,CAAC2B,IAAI,CAACc,KAAK,EAAE,IAAI,CAAC;EAC1CL,GAAG,CAACM,GAAG,GAAG1C,YAAY,CAAC2B,IAAI,CAACe,GAAG,EAAE,IAAI,CAAC;EACtCN,GAAG,CAACO,MAAM,GAAG3C,YAAY,CAAC2B,IAAI,CAACgB,MAAM,EAAE,CAAC,IAAI,CAAC;EAE7C,OAAOf,QAAQ;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMgB,eAAe,GAAG,SAAlBA,eAAe,CAAIC,IAAU,EAAEC,QAAgB,EAAEC,SAAiB,EAAsB;EAAA,IAApBC,SAAS,uEAAG,GAAG;EACvF,oBAA4BjD,GAAG,CAACkD,QAAQ,EAAE;IAAlCC,QAAQ,iBAARA,QAAQ;IAAEC,KAAK,iBAALA,KAAK;EAEvBH,SAAS,GAAG,GAAG;EAEf,IAAI,CAACE,QAAQ,IAAI,CAACC,KAAK,EACrB,MAAM,IAAIC,KAAK,CAAC,gCAAgC,CAAC;EAEnD,sBAAkCjD,cAAc,EAAE;IAAA;IAA3CE,GAAG;IAAEC,QAAQ;IAAEW,QAAQ;EAC9B,IAAMW,QAAQ,GAAGF,YAAY,EAAE;EAC/B,IAAM2B,QAAQ,GAAG,IAAI1D,KAAK,EAAwC;EAElEwD,KAAK,CAAEG,GAAG,CAACjD,GAAG,CAAC;EACfgD,QAAQ,CAACC,GAAG,CAAC1B,QAAQ,CAAC;EACtBuB,KAAK,CAAEG,GAAG,CAACD,QAAQ,CAAC;EAEpB,IAAME,IAAI,GAAG,SAAPA,IAAI,CAAIC,QAAgB,EAAEzC,OAAe,EAAK;IAClDT,QAAQ,CAACiB,sBAAsB,CAACyB,SAAS,EAAEpD,SAAS,CAACyB,QAAQ,CAAC,EAAE,GAAGzB,SAAS,CAAC6D,QAAQ,CAACD,QAAQ,CAAC,CAAC,EAAEzC,OAAO,CAAC;IAC1GE,QAAQ,CAACO,WAAW,CAACL,KAAK,CAACM,IAAI,CAACnB,QAAQ,CAAC;IAEzC,IAAMoD,CAAC,GAAGV,SAAS,GAAIW,IAAI,CAACC,GAAG,CAACJ,QAAQ,CAAE,GAAIG,IAAI,CAACC,GAAG,CAAC7C,OAAO,CAAE;IAChE,IAAM8C,CAAC,GAAGb,SAAS,GAAIW,IAAI,CAACC,GAAG,CAACJ,QAAQ,CAAE,GAAIG,IAAI,CAACG,GAAG,CAAC/C,OAAO,CAAE;IAChE,IAAMgD,CAAC,GAAGf,SAAS,GAAIW,IAAI,CAACG,GAAG,CAACN,QAAQ,CAAE;IAE1C,IAAMhC,WAAW,GAAG,IAAI3B,OAAO,CAAC6D,CAAC,EAAEK,CAAC,EAAEF,CAAC,CAAC;IACxCR,QAAQ,CAAC7B,WAAW,GAAGA,WAAW;IAClC6B,QAAQ,CAAC/C,QAAQ,CAACmB,IAAI,CAACnB,QAAQ,CAAC;IAEhC,OAAOkB,WAAW;EACpB,CAAC;EAED,sBAA8BvB,cAAc,CAAC4C,IAAI,EAAEC,QAAQ,EAAEC,SAAS,CAAC;IAA/DS,QAAQ,mBAARA,QAAQ;IAAEzC,OAAO,mBAAPA,OAAO;EACzBwC,IAAI,CAACC,QAAQ,EAAEzC,OAAO,CAAC;EAEvB,IAAMiD,OAAO,GAAG,SAAVA,OAAO,CAAIC,WAAkB,EAAK;IACtC,uBAA8BhE,cAAc,CAACgE,WAAW,IAAIpB,IAAI,EAAEC,QAAQ,EAAEC,SAAS,CAAC;MAA9ES,QAAQ,oBAARA,QAAQ;MAAEzC,OAAO,oBAAPA,OAAO;IACzB,OAAOwC,IAAI,CAACC,QAAQ,EAAEzC,OAAO,CAAC;EAChC,CAAC;EAED,IAAMmD,UAAU,GAAG;IACjBC,QAAQ,EAAE,oBAAM,CAAC,CAAC;IAClBC,WAAW,EAAE,uBAAM;MACjBxC,QAAQ,CAACyC,OAAO,GAAG,KAAK;MACxBhE,GAAG,CAACgE,OAAO,GAAG,KAAK;IACrB,CAAC;IACDC,UAAU,EAAE,sBAAM;MAChB1C,QAAQ,CAACyC,OAAO,GAAG,IAAI;MACvBhE,GAAG,CAACgE,OAAO,GAAG,IAAI;IACpB;EACF,CAAC;EAED,OAAO;IACLL,OAAO,EAAPA,OAAO;IACPX,QAAQ,EAARA,QAAQ;IACRhD,GAAG,EAAHA,GAAG;IACH6D,UAAU,EAAVA;EACF,CAAC;AACH,CAAC;AAED,eAAetB,eAAe"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const CloudShaderConfig: {
|
|
2
|
+
texture1: {
|
|
3
|
+
value: null;
|
|
4
|
+
};
|
|
5
|
+
texture2: {
|
|
6
|
+
value: null;
|
|
7
|
+
};
|
|
8
|
+
iTime: {
|
|
9
|
+
value: number;
|
|
10
|
+
};
|
|
11
|
+
cloudDensity: {
|
|
12
|
+
value: number;
|
|
13
|
+
};
|
|
14
|
+
cloudDensity2: {
|
|
15
|
+
value: number;
|
|
16
|
+
};
|
|
17
|
+
cloudalpha: {
|
|
18
|
+
value: number;
|
|
19
|
+
};
|
|
20
|
+
cloudscale: {
|
|
21
|
+
value: number;
|
|
22
|
+
};
|
|
23
|
+
speed: {
|
|
24
|
+
value: number;
|
|
25
|
+
};
|
|
26
|
+
color: {
|
|
27
|
+
value: number[];
|
|
28
|
+
};
|
|
29
|
+
flash: {
|
|
30
|
+
value: number;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
|
|
3
|
+
import { RepeatWrapping, TextureLoader } from '@anov/3d-core';
|
|
4
|
+
var textureLoader = new TextureLoader();
|
|
5
|
+
|
|
6
|
+
// 默认配置
|
|
7
|
+
export var CloudShaderConfig = {
|
|
8
|
+
texture1: {
|
|
9
|
+
value: null
|
|
10
|
+
},
|
|
11
|
+
texture2: {
|
|
12
|
+
value: null
|
|
13
|
+
},
|
|
14
|
+
iTime: {
|
|
15
|
+
value: 0
|
|
16
|
+
},
|
|
17
|
+
cloudDensity: {
|
|
18
|
+
value: 0.01
|
|
19
|
+
},
|
|
20
|
+
cloudDensity2: {
|
|
21
|
+
value: 1
|
|
22
|
+
},
|
|
23
|
+
cloudalpha: {
|
|
24
|
+
value: 1
|
|
25
|
+
},
|
|
26
|
+
cloudscale: {
|
|
27
|
+
value: 8.0
|
|
28
|
+
},
|
|
29
|
+
speed: {
|
|
30
|
+
value: 0.5
|
|
31
|
+
},
|
|
32
|
+
color: {
|
|
33
|
+
value: [0.9, 0.9, 0.9]
|
|
34
|
+
},
|
|
35
|
+
flash: {
|
|
36
|
+
value: 11.3
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
CloudShaderConfig.texture1.value = textureLoader.load('./T_soft_smoke.png');
|
|
40
|
+
CloudShaderConfig.texture2.value = textureLoader.load('./T_TileNoise.png');
|
|
41
|
+
CloudShaderConfig.texture1.value.wrapS = CloudShaderConfig.texture1.value.wrapT = RepeatWrapping;
|
|
42
|
+
CloudShaderConfig.texture2.value.wrapS = CloudShaderConfig.texture2.value.wrapT = RepeatWrapping;
|
|
43
|
+
CloudShaderConfig.cloudDensity.value = 0.02;
|
|
44
|
+
CloudShaderConfig.cloudDensity2.value = 1.6;
|
|
45
|
+
CloudShaderConfig.cloudalpha.value = 0.8;
|
|
46
|
+
CloudShaderConfig.cloudscale.value = 8.0;
|
|
47
|
+
CloudShaderConfig.speed.value = 0.3;
|
|
48
|
+
CloudShaderConfig.color.value = [0.9, 0.9, 0.9];
|
|
49
|
+
CloudShaderConfig.flash.value = 0.3;
|
|
50
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RepeatWrapping","TextureLoader","textureLoader","CloudShaderConfig","texture1","value","texture2","iTime","cloudDensity","cloudDensity2","cloudalpha","cloudscale","speed","color","flash","load","wrapS","wrapT"],"sources":["../../../src/environment/skyv2/config.ts"],"sourcesContent":["// @ts-nocheck\n\nimport { RepeatWrapping, TextureLoader } from '@anov/3d-core'\n\nconst textureLoader = new TextureLoader()\n\n// 默认配置\nexport const CloudShaderConfig = {\n texture1: { value: null },\n texture2: { value: null },\n iTime: { value: 0 },\n\n cloudDensity: { value: 0.01 },\n cloudDensity2: { value: 1 },\n cloudalpha: { value: 1 },\n cloudscale: { value: 8.0 },\n speed: { value: 0.5 },\n color: { value: [0.9, 0.9, 0.9] },\n flash: { value: 11.3 },\n}\n\nCloudShaderConfig.texture1.value = textureLoader.load('./T_soft_smoke.png')\nCloudShaderConfig.texture2.value = textureLoader.load('./T_TileNoise.png')\nCloudShaderConfig.texture1.value.wrapS = CloudShaderConfig.texture1.value.wrapT = RepeatWrapping\nCloudShaderConfig.texture2.value.wrapS = CloudShaderConfig.texture2.value.wrapT = RepeatWrapping\n\nCloudShaderConfig.cloudDensity.value = 0.02\nCloudShaderConfig.cloudDensity2.value = 1.6\nCloudShaderConfig.cloudalpha.value = 0.8\nCloudShaderConfig.cloudscale.value = 8.0\nCloudShaderConfig.speed.value = 0.3\nCloudShaderConfig.color.value = [0.9, 0.9, 0.9]\nCloudShaderConfig.flash.value = 0.3"],"mappings":"AAAA;;AAEA,SAASA,cAAc,EAAEC,aAAa,QAAQ,eAAe;AAE7D,IAAMC,aAAa,GAAG,IAAID,aAAa,EAAE;;AAEzC;AACA,OAAO,IAAME,iBAAiB,GAAG;EAC/BC,QAAQ,EAAE;IAAEC,KAAK,EAAE;EAAK,CAAC;EACzBC,QAAQ,EAAE;IAAED,KAAK,EAAE;EAAK,CAAC;EACzBE,KAAK,EAAE;IAAEF,KAAK,EAAE;EAAE,CAAC;EAEnBG,YAAY,EAAE;IAAEH,KAAK,EAAE;EAAK,CAAC;EAC7BI,aAAa,EAAE;IAAEJ,KAAK,EAAE;EAAE,CAAC;EAC3BK,UAAU,EAAE;IAAEL,KAAK,EAAE;EAAE,CAAC;EACxBM,UAAU,EAAE;IAAEN,KAAK,EAAE;EAAI,CAAC;EAC1BO,KAAK,EAAE;IAAEP,KAAK,EAAE;EAAI,CAAC;EACrBQ,KAAK,EAAE;IAAER,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;EAAE,CAAC;EACjCS,KAAK,EAAE;IAAET,KAAK,EAAE;EAAK;AACvB,CAAC;AAEDF,iBAAiB,CAACC,QAAQ,CAACC,KAAK,GAAGH,aAAa,CAACa,IAAI,CAAC,oBAAoB,CAAC;AAC3EZ,iBAAiB,CAACG,QAAQ,CAACD,KAAK,GAAGH,aAAa,CAACa,IAAI,CAAC,mBAAmB,CAAC;AAC1EZ,iBAAiB,CAACC,QAAQ,CAACC,KAAK,CAACW,KAAK,GAAGb,iBAAiB,CAACC,QAAQ,CAACC,KAAK,CAACY,KAAK,GAAGjB,cAAc;AAChGG,iBAAiB,CAACG,QAAQ,CAACD,KAAK,CAACW,KAAK,GAAGb,iBAAiB,CAACG,QAAQ,CAACD,KAAK,CAACY,KAAK,GAAGjB,cAAc;AAEhGG,iBAAiB,CAACK,YAAY,CAACH,KAAK,GAAG,IAAI;AAC3CF,iBAAiB,CAACM,aAAa,CAACJ,KAAK,GAAG,GAAG;AAC3CF,iBAAiB,CAACO,UAAU,CAACL,KAAK,GAAG,GAAG;AACxCF,iBAAiB,CAACQ,UAAU,CAACN,KAAK,GAAG,GAAG;AACxCF,iBAAiB,CAACS,KAAK,CAACP,KAAK,GAAG,GAAG;AACnCF,iBAAiB,CAACU,KAAK,CAACR,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/CF,iBAAiB,CAACW,KAAK,CAACT,KAAK,GAAG,GAAG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Group, SceneControl } from '@anov/3d-core';
|
|
2
|
+
import { Fog2DMesh } from '../../';
|
|
3
|
+
declare class Sky {
|
|
4
|
+
fog2d: Fog2DMesh | null;
|
|
5
|
+
sky: Group | null;
|
|
6
|
+
cloud: Group | null;
|
|
7
|
+
scene: SceneControl | null;
|
|
8
|
+
constructor();
|
|
9
|
+
init(scene: SceneControl): Promise<any>;
|
|
10
|
+
setScale(): void;
|
|
11
|
+
private setWeatherStrategy;
|
|
12
|
+
setWeather(weatherType: string): void;
|
|
13
|
+
}
|
|
14
|
+
export default Sky;
|