@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.
Files changed (78) hide show
  1. package/dist/camera/index.js +31 -31
  2. package/dist/camera/index.js.map +1 -1
  3. package/dist/environment/sky/index.d.ts +15 -5
  4. package/dist/environment/sky/index.js +26 -20
  5. package/dist/environment/sky/index.js.map +1 -1
  6. package/dist/environment/skyv2/config.d.ts +32 -0
  7. package/dist/environment/skyv2/config.js +50 -0
  8. package/dist/environment/skyv2/config.js.map +1 -0
  9. package/dist/environment/skyv2/index.d.ts +14 -0
  10. package/dist/environment/skyv2/index.js +140 -0
  11. package/dist/environment/skyv2/index.js.map +1 -0
  12. package/dist/environment/skyv2/shader/cloud/frag.d.ts +2 -0
  13. package/dist/environment/skyv2/shader/cloud/frag.js +3 -0
  14. package/dist/environment/skyv2/shader/cloud/frag.js.map +1 -0
  15. package/dist/environment/skyv2/shader/cloud/vert.d.ts +2 -0
  16. package/dist/environment/skyv2/shader/cloud/vert.js +3 -0
  17. package/dist/environment/skyv2/shader/cloud/vert.js.map +1 -0
  18. package/dist/environment/skyv2/shader/sky/frag.d.ts +2 -0
  19. package/dist/environment/skyv2/shader/sky/frag.js +3 -0
  20. package/dist/environment/skyv2/shader/sky/frag.js.map +1 -0
  21. package/dist/environment/skyv2/type.d.ts +14 -0
  22. package/dist/environment/skyv2/type.js +26 -0
  23. package/dist/environment/skyv2/type.js.map +1 -0
  24. package/dist/index.d.ts +6 -3
  25. package/dist/index.js +6 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/material/fakeGlowMaterial/index.d.ts +17 -0
  28. package/dist/material/fakeGlowMaterial/index.js +57 -0
  29. package/dist/material/fakeGlowMaterial/index.js.map +1 -0
  30. package/dist/material/fakeGlowMaterial/shader/fragmentShader.d.ts +2 -0
  31. package/dist/material/fakeGlowMaterial/shader/fragmentShader.js +3 -0
  32. package/dist/material/fakeGlowMaterial/shader/fragmentShader.js.map +1 -0
  33. package/dist/material/fakeGlowMaterial/shader/vertexShader.d.ts +2 -0
  34. package/dist/material/fakeGlowMaterial/shader/vertexShader.js +3 -0
  35. package/dist/material/fakeGlowMaterial/shader/vertexShader.js.map +1 -0
  36. package/dist/poi/Sprite/index.js +1 -1
  37. package/dist/poi/Sprite/index.js.map +1 -1
  38. package/dist/postEffects/bloomSelect.js +40 -6
  39. package/dist/postEffects/bloomSelect.js.map +1 -1
  40. package/dist/postEffects/outlinePass.js.map +1 -1
  41. package/dist/weather/index.d.ts +36 -0
  42. package/dist/weather/index.js +273 -5
  43. package/dist/weather/index.js.map +1 -1
  44. package/dist/weather/objects/CloudMesh.d.ts +22 -0
  45. package/dist/weather/objects/CloudMesh.js +122 -0
  46. package/dist/weather/objects/CloudMesh.js.map +1 -0
  47. package/dist/weather/{fog2DMesh.d.ts → objects/Fog2DMesh.d.ts} +6 -7
  48. package/dist/weather/objects/Fog2DMesh.js +94 -0
  49. package/dist/weather/objects/Fog2DMesh.js.map +1 -0
  50. package/dist/weather/objects/SkyMesh.d.ts +7 -0
  51. package/dist/weather/{fog2DMesh.js → objects/SkyMesh.js} +19 -55
  52. package/dist/weather/objects/SkyMesh.js.map +1 -0
  53. package/dist/weather/objects/SnowMesh.d.ts +17 -0
  54. package/dist/weather/objects/SnowMesh.js +163 -0
  55. package/dist/weather/objects/SnowMesh.js.map +1 -0
  56. package/dist/weather/shaders/cloud.d.ts +37 -0
  57. package/dist/weather/shaders/cloud.js +38 -0
  58. package/dist/weather/shaders/cloud.js.map +1 -0
  59. package/dist/weather/shaders/fog.d.ts +16 -0
  60. package/dist/weather/shaders/fog.js +17 -0
  61. package/dist/weather/shaders/fog.js.map +1 -0
  62. package/dist/weather/shaders/sky.d.ts +6 -0
  63. package/dist/weather/shaders/sky.js +7 -0
  64. package/dist/weather/shaders/sky.js.map +1 -0
  65. package/dist/weather/shaders/snow.d.ts +28 -0
  66. package/dist/weather/shaders/snow.js +33 -0
  67. package/dist/weather/shaders/snow.js.map +1 -0
  68. package/dist/weather/utils/constant.d.ts +38 -0
  69. package/dist/weather/utils/constant.js +25 -0
  70. package/dist/weather/utils/constant.js.map +1 -0
  71. package/dist/weather/utils/type.d.ts +11 -0
  72. package/dist/weather/utils/type.js +23 -0
  73. package/dist/weather/utils/type.js.map +1 -0
  74. package/package.json +3 -3
  75. package/dist/weather/fog2DMesh.js.map +0 -1
  76. package/dist/weather/glsl/fog.d.ts +0 -2
  77. package/dist/weather/glsl/fog.js +0 -3
  78. package/dist/weather/glsl/fog.js.map +0 -1
@@ -0,0 +1,140 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ 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; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
+ import { ModelLoader, ShaderMaterial } from '@anov/3d-core';
12
+ import { Fog2DMesh } from "../../";
13
+ import { CloudShaderConfig } from "./config";
14
+ import vert from "./shader/cloud/vert";
15
+ import cloudFrag from "./shader/cloud/frag";
16
+ import skyFrag from "./shader/sky/frag";
17
+ var cloudMaterial = new ShaderMaterial({
18
+ uniforms: CloudShaderConfig,
19
+ vertexShader: vert,
20
+ fragmentShader: cloudFrag,
21
+ side: 2,
22
+ transparent: true,
23
+ depthWrite: false
24
+ });
25
+ var skyMaterial = new ShaderMaterial({
26
+ vertexShader: vert,
27
+ fragmentShader: skyFrag,
28
+ side: 2,
29
+ transparent: true,
30
+ depthWrite: false
31
+ });
32
+ var load = new ModelLoader();
33
+ var Sky = /*#__PURE__*/function () {
34
+ function Sky() {
35
+ var _this = this;
36
+ _classCallCheck(this, Sky);
37
+ _defineProperty(this, "fog2d", null);
38
+ _defineProperty(this, "sky", null);
39
+ _defineProperty(this, "cloud", null);
40
+ _defineProperty(this, "scene", null);
41
+ _defineProperty(this, "setWeatherStrategy", {
42
+ Clear_Skies: function Clear_Skies() {
43
+ _this.scene.renderer.toneMappingExposure = 0.75;
44
+ CloudShaderConfig.cloudDensity.value = 0.05;
45
+ CloudShaderConfig.cloudDensity2.value = 2.0;
46
+ CloudShaderConfig.cloudalpha.value = 3.0;
47
+ CloudShaderConfig.cloudscale.value = 8.0;
48
+ CloudShaderConfig.speed.value = 0.2;
49
+ CloudShaderConfig.color.value = [0.9, 0.9, 0.9];
50
+ CloudShaderConfig.flash.value = 0.0;
51
+ _this.fog2d.setColor([0.9, 0.9, 0.9]);
52
+ _this.fog2d.setAlpha(0.0);
53
+ },
54
+ Cloudy: function Cloudy() {
55
+ _this.scene.renderer.toneMappingExposure = 0.505;
56
+ CloudShaderConfig.cloudDensity.value = 0.02;
57
+ CloudShaderConfig.cloudDensity2.value = 1.6;
58
+ CloudShaderConfig.cloudalpha.value = 0.8;
59
+ CloudShaderConfig.cloudscale.value = 8.0;
60
+ CloudShaderConfig.speed.value = 0.3;
61
+ CloudShaderConfig.color.value = [0.9, 0.9, 0.9];
62
+ CloudShaderConfig.flash.value = 0.0;
63
+ _this.fog2d.setColor([0.9, 0.9, 0.9]);
64
+ _this.fog2d.setAlpha(0.0);
65
+ },
66
+ Foggy: function Foggy() {
67
+ _this.scene.renderer.toneMappingExposure = 0.6;
68
+ CloudShaderConfig.cloudDensity.value = 0.01;
69
+ CloudShaderConfig.cloudDensity2.value = 2.0;
70
+ CloudShaderConfig.cloudalpha.value = 2.0;
71
+ CloudShaderConfig.cloudscale.value = 8.0;
72
+ CloudShaderConfig.speed.value = 0.2;
73
+ CloudShaderConfig.color.value = [0.9, 0.9, 0.9];
74
+ CloudShaderConfig.flash.value = 0.0;
75
+ _this.fog2d.setColor([0.9, 0.9, 0.9]);
76
+ _this.fog2d.setAlpha(0.4);
77
+ },
78
+ Overcast: function Overcast() {},
79
+ Sand_Dust_Calm: function Sand_Dust_Calm() {},
80
+ Snow: function Snow() {}
81
+ });
82
+ }
83
+ _createClass(Sky, [{
84
+ key: "init",
85
+ value: function () {
86
+ var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(scene) {
87
+ var gltf, sky, cloud, fog2d;
88
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
89
+ while (1) switch (_context.prev = _context.next) {
90
+ case 0:
91
+ _context.next = 2;
92
+ return load.loadGLTF('./skySphereMesh.glb', false, true, './draco/');
93
+ case 2:
94
+ _context.next = 4;
95
+ return _context.sent;
96
+ case 4:
97
+ gltf = _context.sent;
98
+ sky = gltf.scene;
99
+ cloud = gltf.scene.clone(); // @ts-ignore
100
+ sky.children[0].material = skyMaterial;
101
+ sky.scale.set(1000, 1000, 1000);
102
+
103
+ // @ts-ignore
104
+ cloud.children[0].material = cloudMaterial;
105
+ cloud.scale.set(997, 997, 997);
106
+ scene.add(sky);
107
+ scene.add(cloud);
108
+ sky.renderOrder = -1;
109
+ fog2d = new Fog2DMesh();
110
+ scene.add(fog2d);
111
+ this.fog2d = fog2d;
112
+ this.sky = sky;
113
+ this.cloud = cloud;
114
+ this.scene = scene;
115
+ return _context.abrupt("return", gltf);
116
+ case 21:
117
+ case "end":
118
+ return _context.stop();
119
+ }
120
+ }, _callee, this);
121
+ }));
122
+ function init(_x) {
123
+ return _init.apply(this, arguments);
124
+ }
125
+ return init;
126
+ }()
127
+ }, {
128
+ key: "setScale",
129
+ value: function setScale() {}
130
+ }, {
131
+ key: "setWeather",
132
+ value: function setWeather(weatherType) {
133
+ // @ts-ignore
134
+ this.setWeatherStrategy[weatherType]();
135
+ }
136
+ }]);
137
+ return Sky;
138
+ }();
139
+ export default Sky;
140
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ModelLoader","ShaderMaterial","Fog2DMesh","CloudShaderConfig","vert","cloudFrag","skyFrag","cloudMaterial","uniforms","vertexShader","fragmentShader","side","transparent","depthWrite","skyMaterial","load","Sky","Clear_Skies","scene","renderer","toneMappingExposure","cloudDensity","value","cloudDensity2","cloudalpha","cloudscale","speed","color","flash","fog2d","setColor","setAlpha","Cloudy","Foggy","Overcast","Sand_Dust_Calm","Snow","loadGLTF","gltf","sky","cloud","clone","children","material","scale","set","add","renderOrder","weatherType","setWeatherStrategy"],"sources":["../../../src/environment/skyv2/index.ts"],"sourcesContent":["import type { Group, Scene, SceneControl } from '@anov/3d-core'\nimport { ModelLoader, ShaderMaterial } from '@anov/3d-core'\nimport { Fog2DMesh } from '../../'\nimport { CloudShaderConfig } from './config'\nimport vert from './shader/cloud/vert'\nimport cloudFrag from './shader/cloud/frag'\nimport skyFrag from './shader/sky/frag'\n\nconst cloudMaterial = new ShaderMaterial({\n uniforms: CloudShaderConfig,\n vertexShader: vert,\n fragmentShader: cloudFrag,\n side: 2,\n transparent: true,\n depthWrite: false,\n})\n\nconst skyMaterial = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: skyFrag,\n side: 2,\n transparent: true,\n depthWrite: false,\n})\n\nconst load = new ModelLoader()\n\nclass Sky {\n fog2d: Fog2DMesh | null = null\n sky: Group | null = null\n cloud: Group | null = null\n scene: SceneControl | null = null\n\n constructor() {}\n\n async init(scene: SceneControl) {\n const gltf = await (await load.loadGLTF('./skySphereMesh.glb', false, true, './draco/')) as any\n\n const sky = gltf.scene\n const cloud = gltf.scene.clone()\n\n // @ts-ignore\n sky.children[0].material = skyMaterial\n sky.scale.set(1000, 1000, 1000)\n\n // @ts-ignore\n cloud.children[0].material = cloudMaterial\n cloud.scale.set(997, 997, 997)\n\n scene.add(sky)\n scene.add(cloud)\n\n sky.renderOrder = -1\n\n const fog2d = new Fog2DMesh()\n scene.add(fog2d)\n\n this.fog2d = fog2d\n this.sky = sky\n this.cloud = cloud\n this.scene = scene\n\n return gltf\n }\n\n setScale() {}\n\n private setWeatherStrategy = {\n Clear_Skies: () => {\n this.scene!.renderer!.toneMappingExposure = 0.75\n CloudShaderConfig.cloudDensity.value = 0.05\n CloudShaderConfig.cloudDensity2.value = 2.0\n CloudShaderConfig.cloudalpha.value = 3.0\n CloudShaderConfig.cloudscale.value = 8.0\n CloudShaderConfig.speed.value = 0.2\n CloudShaderConfig.color.value = [0.9, 0.9, 0.9]\n CloudShaderConfig.flash.value = 0.0\n\n this.fog2d!.setColor([0.9, 0.9, 0.9])\n this.fog2d!.setAlpha(0.0)\n },\n Cloudy: () => {\n this.scene!.renderer!.toneMappingExposure = 0.505\n CloudShaderConfig.cloudDensity.value = 0.02\n CloudShaderConfig.cloudDensity2.value = 1.6\n CloudShaderConfig.cloudalpha.value = 0.8\n CloudShaderConfig.cloudscale.value = 8.0\n CloudShaderConfig.speed.value = 0.3\n CloudShaderConfig.color.value = [0.9, 0.9, 0.9]\n CloudShaderConfig.flash.value = 0.0\n\n this.fog2d!.setColor([0.9, 0.9, 0.9])\n this.fog2d!.setAlpha(0.0)\n },\n\n Foggy: () => {\n this.scene!.renderer!.toneMappingExposure = 0.6\n CloudShaderConfig.cloudDensity.value = 0.01\n CloudShaderConfig.cloudDensity2.value = 2.0\n CloudShaderConfig.cloudalpha.value = 2.0\n CloudShaderConfig.cloudscale.value = 8.0\n CloudShaderConfig.speed.value = 0.2\n CloudShaderConfig.color.value = [0.9, 0.9, 0.9]\n CloudShaderConfig.flash.value = 0.0\n\n this.fog2d!.setColor([0.9, 0.9, 0.9])\n this.fog2d!.setAlpha(0.4)\n },\n Overcast: () => {},\n Sand_Dust_Calm: () => {},\n Snow: () => {},\n }\n\n setWeather(weatherType: string) {\n // @ts-ignore\n this.setWeatherStrategy[weatherType]()\n }\n}\n\nexport default Sky"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAASA,WAAW,EAAEC,cAAc,QAAQ,eAAe;AAC3D,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,OAAOC,IAAI;AACX,OAAOC,SAAS;AAChB,OAAOC,OAAO;AAEd,IAAMC,aAAa,GAAG,IAAIN,cAAc,CAAC;EACvCO,QAAQ,EAAEL,iBAAiB;EAC3BM,YAAY,EAAEL,IAAI;EAClBM,cAAc,EAAEL,SAAS;EACzBM,IAAI,EAAE,CAAC;EACPC,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,IAAMC,WAAW,GAAG,IAAIb,cAAc,CAAC;EACrCQ,YAAY,EAAEL,IAAI;EAClBM,cAAc,EAAEJ,OAAO;EACvBK,IAAI,EAAE,CAAC;EACPC,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,IAAME,IAAI,GAAG,IAAIf,WAAW,EAAE;AAAA,IAExBgB,GAAG;EAMP,eAAc;IAAA;IAAA;IAAA,+BALY,IAAI;IAAA,6BACV,IAAI;IAAA,+BACF,IAAI;IAAA,+BACG,IAAI;IAAA,4CAoCJ;MAC3BC,WAAW,EAAE,uBAAM;QACjB,KAAI,CAACC,KAAK,CAAEC,QAAQ,CAAEC,mBAAmB,GAAG,IAAI;QAChDjB,iBAAiB,CAACkB,YAAY,CAACC,KAAK,GAAG,IAAI;QAC3CnB,iBAAiB,CAACoB,aAAa,CAACD,KAAK,GAAG,GAAG;QAC3CnB,iBAAiB,CAACqB,UAAU,CAACF,KAAK,GAAG,GAAG;QACxCnB,iBAAiB,CAACsB,UAAU,CAACH,KAAK,GAAG,GAAG;QACxCnB,iBAAiB,CAACuB,KAAK,CAACJ,KAAK,GAAG,GAAG;QACnCnB,iBAAiB,CAACwB,KAAK,CAACL,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC/CnB,iBAAiB,CAACyB,KAAK,CAACN,KAAK,GAAG,GAAG;QAEnC,KAAI,CAACO,KAAK,CAAEC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,KAAI,CAACD,KAAK,CAAEE,QAAQ,CAAC,GAAG,CAAC;MAC3B,CAAC;MACDC,MAAM,EAAE,kBAAM;QACZ,KAAI,CAACd,KAAK,CAAEC,QAAQ,CAAEC,mBAAmB,GAAG,KAAK;QACjDjB,iBAAiB,CAACkB,YAAY,CAACC,KAAK,GAAG,IAAI;QAC3CnB,iBAAiB,CAACoB,aAAa,CAACD,KAAK,GAAG,GAAG;QAC3CnB,iBAAiB,CAACqB,UAAU,CAACF,KAAK,GAAG,GAAG;QACxCnB,iBAAiB,CAACsB,UAAU,CAACH,KAAK,GAAG,GAAG;QACxCnB,iBAAiB,CAACuB,KAAK,CAACJ,KAAK,GAAG,GAAG;QACnCnB,iBAAiB,CAACwB,KAAK,CAACL,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC/CnB,iBAAiB,CAACyB,KAAK,CAACN,KAAK,GAAG,GAAG;QAEnC,KAAI,CAACO,KAAK,CAAEC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,KAAI,CAACD,KAAK,CAAEE,QAAQ,CAAC,GAAG,CAAC;MAC3B,CAAC;MAEDE,KAAK,EAAE,iBAAM;QACX,KAAI,CAACf,KAAK,CAAEC,QAAQ,CAAEC,mBAAmB,GAAG,GAAG;QAC/CjB,iBAAiB,CAACkB,YAAY,CAACC,KAAK,GAAG,IAAI;QAC3CnB,iBAAiB,CAACoB,aAAa,CAACD,KAAK,GAAG,GAAG;QAC3CnB,iBAAiB,CAACqB,UAAU,CAACF,KAAK,GAAG,GAAG;QACxCnB,iBAAiB,CAACsB,UAAU,CAACH,KAAK,GAAG,GAAG;QACxCnB,iBAAiB,CAACuB,KAAK,CAACJ,KAAK,GAAG,GAAG;QACnCnB,iBAAiB,CAACwB,KAAK,CAACL,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC/CnB,iBAAiB,CAACyB,KAAK,CAACN,KAAK,GAAG,GAAG;QAEnC,KAAI,CAACO,KAAK,CAAEC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,KAAI,CAACD,KAAK,CAAEE,QAAQ,CAAC,GAAG,CAAC;MAC3B,CAAC;MACDG,QAAQ,EAAE,oBAAM,CAAC,CAAC;MAClBC,cAAc,EAAE,0BAAM,CAAC,CAAC;MACxBC,IAAI,EAAE,gBAAM,CAAC;IACf,CAAC;EA9Ec;EAAC;IAAA;IAAA;MAAA,uEAEhB,iBAAWlB,KAAmB;QAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACFH,IAAI,CAACsB,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;YAAA;cAAA;cAAA;YAAA;cAAjFC,IAAI;cAEJC,GAAG,GAAGD,IAAI,CAACpB,KAAK;cAChBsB,KAAK,GAAGF,IAAI,CAACpB,KAAK,CAACuB,KAAK,EAAE,EAEhC;cACAF,GAAG,CAACG,QAAQ,CAAC,CAAC,CAAC,CAACC,QAAQ,GAAG7B,WAAW;cACtCyB,GAAG,CAACK,KAAK,CAACC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;;cAE/B;cACAL,KAAK,CAACE,QAAQ,CAAC,CAAC,CAAC,CAACC,QAAQ,GAAGpC,aAAa;cAC1CiC,KAAK,CAACI,KAAK,CAACC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;cAE9B3B,KAAK,CAAC4B,GAAG,CAACP,GAAG,CAAC;cACdrB,KAAK,CAAC4B,GAAG,CAACN,KAAK,CAAC;cAEhBD,GAAG,CAACQ,WAAW,GAAG,CAAC,CAAC;cAEdlB,KAAK,GAAG,IAAI3B,SAAS,EAAE;cAC7BgB,KAAK,CAAC4B,GAAG,CAACjB,KAAK,CAAC;cAEhB,IAAI,CAACA,KAAK,GAAGA,KAAK;cAClB,IAAI,CAACU,GAAG,GAAGA,GAAG;cACd,IAAI,CAACC,KAAK,GAAGA,KAAK;cAClB,IAAI,CAACtB,KAAK,GAAGA,KAAK;cAAA,iCAEXoB,IAAI;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACZ;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,oBAAW,CAAC;EAAC;IAAA;IAAA,OAgDb,oBAAWU,WAAmB,EAAE;MAC9B;MACA,IAAI,CAACC,kBAAkB,CAACD,WAAW,CAAC,EAAE;IACxC;EAAC;EAAA;AAAA;AAGH,eAAehC,GAAG"}
@@ -0,0 +1,2 @@
1
+ declare const frag = "\nuniform float iTime;\nuniform float cloudDensity;\nuniform float cloudDensity2;\nuniform float cloudalpha;\nuniform float cloudscale;\nuniform float speed;\nuniform float flash;\n// float log;\nuniform vec3 color;\n\nuniform sampler2D texture1;\nuniform sampler2D texture2;\nuniform sampler2D BackTex1;\n\nvarying highp vec2 vUv;\n\nvec3 colorfix(vec3 color) {\n return vec3(color.r * 0.1, color.g * 0.1, color.b * 0.1);//0.00392\n}\n// -----------------------------------------------\nfloat distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n}\nfloat Zsin(float x) {\n float y = abs(fract(x * 0.3) - 0.5) * 2.;\n return y;\n}\n// -----------------------------------------------\n\n// -----------------------------------------------\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n uv -= vec2(.5);\n vec2 uvR = mat2(cos(iTime * speed), -sin(iTime * speed), sin(iTime * speed), cos(iTime * speed)) * uv;///\u65CB\u8F6C\u77E9\u9635\n // vec2 uvR= vUv;\n vec2 uvR_m = mat2(cos(iTime * 0.8 * speed), -sin(iTime * 0.8 * speed), sin(iTime * 0.8 * speed), cos(iTime * 0.8 * speed)) * uv;///\u65CB\u8F6C\u77E9\u9635\n uvR *= (sin(iTime) * 0.2 + 1.);\n vec3 T1 = texture(texture1, uvR_m * cloudscale).rgb;\n vec3 T2 = texture(texture2, uvR * cloudscale * 0.2).rgb;\n vec3 T1base = vec3(pow(T1.x, cloudDensity) * 10.);\n vec3 T2noise = vec3(pow(T2.x, cloudDensity));\n vec3 T2noiseS = vec3(pow(T2.x, 5.)) * vec3(0.1, 0.5, 0.8) * clamp((Zsin(iTime * 50.) * 100. - 99.), 0., 1.) * flash;\n float sphere = pow(distanceTo(vec2(0.5, 0.5), vUv), 9.) * 1000.;/////\u753B\u5706\u57082\n\n fragColor = vec4(T1base * T2noise * colorfix(color) + T2noiseS, pow(T1.x, cloudalpha) * cloudDensity2 * pow(T2.x, cloudalpha) - sphere);\n\n}\n\nvoid main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n}\n";
2
+ export default frag;
@@ -0,0 +1,3 @@
1
+ var frag = /* glsl */"\nuniform float iTime;\nuniform float cloudDensity;\nuniform float cloudDensity2;\nuniform float cloudalpha;\nuniform float cloudscale;\nuniform float speed;\nuniform float flash;\n// float log;\nuniform vec3 color;\n\nuniform sampler2D texture1;\nuniform sampler2D texture2;\nuniform sampler2D BackTex1;\n\nvarying highp vec2 vUv;\n\nvec3 colorfix(vec3 color) {\n return vec3(color.r * 0.1, color.g * 0.1, color.b * 0.1);//0.00392\n}\n// -----------------------------------------------\nfloat distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n}\nfloat Zsin(float x) {\n float y = abs(fract(x * 0.3) - 0.5) * 2.;\n return y;\n}\n// -----------------------------------------------\n\n// -----------------------------------------------\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n uv -= vec2(.5);\n vec2 uvR = mat2(cos(iTime * speed), -sin(iTime * speed), sin(iTime * speed), cos(iTime * speed)) * uv;///\u65CB\u8F6C\u77E9\u9635\n // vec2 uvR= vUv;\n vec2 uvR_m = mat2(cos(iTime * 0.8 * speed), -sin(iTime * 0.8 * speed), sin(iTime * 0.8 * speed), cos(iTime * 0.8 * speed)) * uv;///\u65CB\u8F6C\u77E9\u9635\n uvR *= (sin(iTime) * 0.2 + 1.);\n vec3 T1 = texture(texture1, uvR_m * cloudscale).rgb;\n vec3 T2 = texture(texture2, uvR * cloudscale * 0.2).rgb;\n vec3 T1base = vec3(pow(T1.x, cloudDensity) * 10.);\n vec3 T2noise = vec3(pow(T2.x, cloudDensity));\n vec3 T2noiseS = vec3(pow(T2.x, 5.)) * vec3(0.1, 0.5, 0.8) * clamp((Zsin(iTime * 50.) * 100. - 99.), 0., 1.) * flash;\n float sphere = pow(distanceTo(vec2(0.5, 0.5), vUv), 9.) * 1000.;/////\u753B\u5706\u57082\n\n fragColor = vec4(T1base * T2noise * colorfix(color) + T2noiseS, pow(T1.x, cloudalpha) * cloudDensity2 * pow(T2.x, cloudalpha) - sphere);\n\n}\n\nvoid main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n}\n";
2
+ export default frag;
3
+ //# sourceMappingURL=frag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["frag"],"sources":["../../../../../src/environment/skyv2/shader/cloud/frag.ts"],"sourcesContent":["const frag = /* glsl */ `\nuniform float iTime;\nuniform float cloudDensity;\nuniform float cloudDensity2;\nuniform float cloudalpha;\nuniform float cloudscale;\nuniform float speed;\nuniform float flash;\n// float log;\nuniform vec3 color;\n\nuniform sampler2D texture1;\nuniform sampler2D texture2;\nuniform sampler2D BackTex1;\n\nvarying highp vec2 vUv;\n\nvec3 colorfix(vec3 color) {\n return vec3(color.r * 0.1, color.g * 0.1, color.b * 0.1);//0.00392\n}\n// -----------------------------------------------\nfloat distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n}\nfloat Zsin(float x) {\n float y = abs(fract(x * 0.3) - 0.5) * 2.;\n return y;\n}\n// -----------------------------------------------\n\n// -----------------------------------------------\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n uv -= vec2(.5);\n vec2 uvR = mat2(cos(iTime * speed), -sin(iTime * speed), sin(iTime * speed), cos(iTime * speed)) * uv;///旋转矩阵\n // vec2 uvR= vUv;\n vec2 uvR_m = mat2(cos(iTime * 0.8 * speed), -sin(iTime * 0.8 * speed), sin(iTime * 0.8 * speed), cos(iTime * 0.8 * speed)) * uv;///旋转矩阵\n uvR *= (sin(iTime) * 0.2 + 1.);\n vec3 T1 = texture(texture1, uvR_m * cloudscale).rgb;\n vec3 T2 = texture(texture2, uvR * cloudscale * 0.2).rgb;\n vec3 T1base = vec3(pow(T1.x, cloudDensity) * 10.);\n vec3 T2noise = vec3(pow(T2.x, cloudDensity));\n vec3 T2noiseS = vec3(pow(T2.x, 5.)) * vec3(0.1, 0.5, 0.8) * clamp((Zsin(iTime * 50.) * 100. - 99.), 0., 1.) * flash;\n float sphere = pow(distanceTo(vec2(0.5, 0.5), vUv), 9.) * 1000.;/////画圆圈2\n\n fragColor = vec4(T1base * T2noise * colorfix(color) + T2noiseS, pow(T1.x, cloudalpha) * cloudDensity2 * pow(T2.x, cloudalpha) - sphere);\n\n}\n\nvoid main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n}\n`\n\nexport default frag"],"mappings":"AAAA,IAAMA,IAAI,GAAG,s9DAyDZ;AAED,eAAeA,IAAI"}
@@ -0,0 +1,2 @@
1
+ declare const vert = "\nvarying highp vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
2
+ export default vert;
@@ -0,0 +1,3 @@
1
+ var vert = /* glsl */"\nvarying highp vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
2
+ export default vert;
3
+ //# sourceMappingURL=vert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vert"],"sources":["../../../../../src/environment/skyv2/shader/cloud/vert.ts"],"sourcesContent":["const vert = /* glsl */ `\nvarying highp vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`\n\nexport default vert"],"mappings":"AAAA,IAAMA,IAAI,GAAG,uJAOZ;AAED,eAAeA,IAAI"}
@@ -0,0 +1,2 @@
1
+ declare const frag = "\nvarying vec2 vUv;\n\nfloat distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n}\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n\n float sphere1 = pow(distanceTo(vec2(0.5, 0.5), vUv), 1.) * 2.;\n\n fragColor = skyColor1;\n fragColor = mix(skyColor1, skyColor2, sphere1);\n\n}\n\nvoid main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n}\n";
2
+ export default frag;
@@ -0,0 +1,3 @@
1
+ var frag = /* glsl */"\nvarying vec2 vUv;\n\nfloat distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n}\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n\n float sphere1 = pow(distanceTo(vec2(0.5, 0.5), vUv), 1.) * 2.;\n\n fragColor = skyColor1;\n fragColor = mix(skyColor1, skyColor2, sphere1);\n\n}\n\nvoid main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n}\n";
2
+ export default frag;
3
+ //# sourceMappingURL=frag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["frag"],"sources":["../../../../../src/environment/skyv2/shader/sky/frag.ts"],"sourcesContent":["const frag = /* glsl */`\nvarying vec2 vUv;\n\nfloat distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n}\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n\n float sphere1 = pow(distanceTo(vec2(0.5, 0.5), vUv), 1.) * 2.;\n\n fragColor = skyColor1;\n fragColor = mix(skyColor1, skyColor2, sphere1);\n\n}\n\nvoid main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n}\n`\n\nexport default frag"],"mappings":"AAAA,IAAMA,IAAI,GAAG,4pBAwBZ;AAED,eAAeA,IAAI"}
@@ -0,0 +1,14 @@
1
+ export declare const EWeatherType: {
2
+ Clear_Skies: string;
3
+ Cloudy: string;
4
+ Foggy: string;
5
+ Overcast: string;
6
+ Rain: string;
7
+ Rain_Light: string;
8
+ Rain_Thunderstorm: string;
9
+ Sand_Dust_Calm: string;
10
+ Sand_Dust_Storm: string;
11
+ Snow: string;
12
+ Snow_Blizzard: string;
13
+ Snow_Light: string;
14
+ };
@@ -0,0 +1,26 @@
1
+ export var EWeatherType = {
2
+ Clear_Skies: 'Clear_Skies',
3
+ // 晴天
4
+ Cloudy: 'Cloudy',
5
+ // 多云
6
+ Foggy: 'Foggy',
7
+ // 有雾
8
+ Overcast: 'Overcast',
9
+ // 阴天
10
+ Rain: 'Rain',
11
+ // 雨
12
+ Rain_Light: 'Rain_Light',
13
+ // 小雨
14
+ Rain_Thunderstorm: 'Rain_Thunderstorm',
15
+ // 强雷阵雨
16
+ Sand_Dust_Calm: 'Sand_Dust_Calm',
17
+ // 沙尘暴
18
+ Sand_Dust_Storm: 'Sand_Dust_Storm',
19
+ // 强沙尘暴
20
+ Snow: 'Snow',
21
+ // 下雪
22
+ Snow_Blizzard: 'Snow_Blizzard',
23
+ // 暴雪
24
+ Snow_Light: 'Snow_Light' // 小雪
25
+ };
26
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EWeatherType","Clear_Skies","Cloudy","Foggy","Overcast","Rain","Rain_Light","Rain_Thunderstorm","Sand_Dust_Calm","Sand_Dust_Storm","Snow","Snow_Blizzard","Snow_Light"],"sources":["../../../src/environment/skyv2/type.ts"],"sourcesContent":["export const EWeatherType = {\n Clear_Skies: 'Clear_Skies', // 晴天\n Cloudy: 'Cloudy', // 多云\n Foggy: 'Foggy', // 有雾\n Overcast: 'Overcast', // 阴天\n Rain: 'Rain', // 雨\n Rain_Light: 'Rain_Light', // 小雨\n Rain_Thunderstorm: 'Rain_Thunderstorm', // 强雷阵雨\n Sand_Dust_Calm: 'Sand_Dust_Calm', // 沙尘暴\n Sand_Dust_Storm: 'Sand_Dust_Storm', // 强沙尘暴\n Snow: 'Snow', // 下雪\n Snow_Blizzard: 'Snow_Blizzard', // 暴雪\n Snow_Light: 'Snow_Light', // 小雪\n}"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG;EAC1BC,WAAW,EAAE,aAAa;EAAE;EAC5BC,MAAM,EAAE,QAAQ;EAAE;EAClBC,KAAK,EAAE,OAAO;EAAE;EAChBC,QAAQ,EAAE,UAAU;EAAE;EACtBC,IAAI,EAAE,MAAM;EAAE;EACdC,UAAU,EAAE,YAAY;EAAE;EAC1BC,iBAAiB,EAAE,mBAAmB;EAAE;EACxCC,cAAc,EAAE,gBAAgB;EAAE;EAClCC,eAAe,EAAE,iBAAiB;EAAE;EACpCC,IAAI,EAAE,MAAM;EAAE;EACdC,aAAa,EAAE,eAAe;EAAE;EAChCC,UAAU,EAAE,YAAY,CAAE;AAC5B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -16,13 +16,16 @@ import HeatMap from './heatmap/index';
16
16
  import SkyBox from './environment/skyBox';
17
17
  import Camera from './camera/index';
18
18
  import { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve';
19
- import Fog2DMesh from './weather/fog2DMesh';
19
+ import Fog2DMesh from './weather/objects/Fog2DMesh';
20
20
  import addColorifyPass from './postEffects/colorifyPass';
21
21
  import addBloom from './postEffects/bloomPass';
22
22
  import addBrightnessContrastPass from './postEffects/addBrightnessContrastPass';
23
23
  import addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass';
24
24
  import createBloomSelectedTool from './postEffects/bloomSelect';
25
+ import FakeGlowMaterial from './material/fakeGlowMaterial';
26
+ import Sky from './environment/skyv2';
27
+ import Weather from './weather';
25
28
  export * from './scene';
26
29
  export { SceneControl, // todo remove
27
- createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects, // effect
28
- createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, };
30
+ createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, SkyBox, Fog2DMesh, Sky, Weather, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, FakeGlowMaterial, GridMaterial, initPostEffects, // effect
31
+ createHighSelectedTool, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, };
package/dist/index.js CHANGED
@@ -16,16 +16,19 @@ import HeatMap from "./heatmap/index";
16
16
  import SkyBox from "./environment/skyBox";
17
17
  import Camera from "./camera/index";
18
18
  import { RoundLineGeometry, createRoundLineWallMesh } from "./line/round-curve";
19
- import Fog2DMesh from "./weather/fog2DMesh";
19
+ import Fog2DMesh from "./weather/objects/Fog2DMesh";
20
20
  import addColorifyPass from "./postEffects/colorifyPass";
21
21
  import addBloom from "./postEffects/bloomPass";
22
22
  import addBrightnessContrastPass from "./postEffects/addBrightnessContrastPass";
23
23
  import addMappingExposurePass from "./postEffects/addACESFilmicToneMappingPass";
24
24
  import createBloomSelectedTool from "./postEffects/bloomSelect";
25
+ import FakeGlowMaterial from "./material/fakeGlowMaterial";
26
+ import Sky from "./environment/skyv2";
27
+ import Weather from "./weather";
25
28
  export * from "./scene";
26
29
  export { SceneControl,
27
30
  // todo remove
28
- createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects,
31
+ createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, SkyBox, Fog2DMesh, Sky, Weather, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, FakeGlowMaterial, GridMaterial, initPostEffects,
29
32
  // effect
30
- createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool };
33
+ createHighSelectedTool, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh };
31
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloom","addBrightnessContrastPass","addMappingExposurePass","createBloomSelectedTool"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloom from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\nimport createBloomSelectedTool from './postEffects/bloomSelect'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n HeatMap,\n initPostEffects, // effect\n createHighSelectedTool,\n GridMaterial,\n SkyBox,\n ViewHelper,\n Camera,\n RoundLineGeometry,\n createRoundLineWallMesh,\n Fog2DMesh,\n addColorifyPass,\n addBloom,\n addBrightnessContrastPass,\n addMappingExposurePass,\n createBloomSelectedTool,\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,QAAQ;AACf,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAC7B,OAAOC,uBAAuB;AAE9B;AAEA,SACE3B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EACdE,OAAO,EACPd,eAAe;AAAE;AACjBC,sBAAsB,EACtBE,YAAY,EACZY,MAAM,EACNX,UAAU,EACVY,MAAM,EACNC,iBAAiB,EACjBC,uBAAuB,EACvBC,SAAS,EACTC,eAAe,EACfC,QAAQ,EACRC,yBAAyB,EACzBC,sBAAsB,EACtBC,uBAAuB"}
1
+ {"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloom","addBrightnessContrastPass","addMappingExposurePass","createBloomSelectedTool","FakeGlowMaterial","Sky","Weather"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/objects/Fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloom from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\nimport createBloomSelectedTool from './postEffects/bloomSelect'\nimport FakeGlowMaterial from './material/fakeGlowMaterial'\nimport Sky from './environment/skyv2'\nimport Weather from './weather'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n SkyBox,\n Fog2DMesh,\n Sky,\n Weather,\n\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n\n HeatMap,\n\n FakeGlowMaterial,\n GridMaterial,\n\n initPostEffects, // effect\n createHighSelectedTool,\n addColorifyPass,\n addBloom,\n addBrightnessContrastPass,\n addMappingExposurePass,\n createBloomSelectedTool,\n\n ViewHelper,\n Camera,\n\n RoundLineGeometry,\n createRoundLineWallMesh,\n\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,QAAQ;AACf,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAC7B,OAAOC,uBAAuB;AAC9B,OAAOC,gBAAgB;AACvB,OAAOC,GAAG;AACV,OAAOC,OAAO;AAEd;AAEA,SACE9B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJM,MAAM,EACNI,SAAS,EACTO,GAAG,EACHC,OAAO,EAEPjB,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EAEdE,OAAO,EAEPW,gBAAgB,EAChBtB,YAAY,EAEZH,eAAe;AAAE;AACjBC,sBAAsB,EACtBmB,eAAe,EACfC,QAAQ,EACRC,yBAAyB,EACzBC,sBAAsB,EACtBC,uBAAuB,EAEvBpB,UAAU,EACVY,MAAM,EAENC,iBAAiB,EACjBC,uBAAuB"}
@@ -0,0 +1,17 @@
1
+ import { ShaderMaterial } from '@anov/3d-core';
2
+ declare class FakeGlowMaterial extends ShaderMaterial {
3
+ /**
4
+ * Create a FakeGlowMaterial.
5
+ *
6
+ * @param {Object} parameters - The parameters to configure the material.
7
+ * @param {number} [parameters.falloff=0.1] - The falloff factor for the glow effect.
8
+ * @param {number} [parameters.glowInternalRadius=6.0] - The internal radius for the glow effect.
9
+ * @param {Color} [parameters.glowColor=new Color('#00d5ff')] - The color of the glow effect.
10
+ * @param {number} [parameters.glowSharpness=0.5] - The sharpness of the glow effect.
11
+ * @param {number} [parameters.opacity=1.0] - The opacity of the hologram.
12
+ * @param {number} [parameters.side=THREE.FrontSide] - The rendering side. Use `THREE.FrontSide`, `THREE.BackSide`, or `THREE.DoubleSide`.
13
+ * @param {boolean} [parameters.depthTest=false] - Enable or disable depth testing.
14
+ */
15
+ constructor(parameters?: any);
16
+ }
17
+ export default FakeGlowMaterial;
@@ -0,0 +1,57 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
5
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
8
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
11
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
14
+ import { AdditiveBlending, Color, DoubleSide, ShaderMaterial, Uniform } from '@anov/3d-core';
15
+ import vertexShader from "./shader/vertexShader";
16
+ import fragmentShader from "./shader/fragmentShader";
17
+ var FakeGlowMaterial = /*#__PURE__*/function (_ShaderMaterial) {
18
+ _inherits(FakeGlowMaterial, _ShaderMaterial);
19
+ var _super = _createSuper(FakeGlowMaterial);
20
+ /**
21
+ * Create a FakeGlowMaterial.
22
+ *
23
+ * @param {Object} parameters - The parameters to configure the material.
24
+ * @param {number} [parameters.falloff=0.1] - The falloff factor for the glow effect.
25
+ * @param {number} [parameters.glowInternalRadius=6.0] - The internal radius for the glow effect.
26
+ * @param {Color} [parameters.glowColor=new Color('#00d5ff')] - The color of the glow effect.
27
+ * @param {number} [parameters.glowSharpness=0.5] - The sharpness of the glow effect.
28
+ * @param {number} [parameters.opacity=1.0] - The opacity of the hologram.
29
+ * @param {number} [parameters.side=THREE.FrontSide] - The rendering side. Use `THREE.FrontSide`, `THREE.BackSide`, or `THREE.DoubleSide`.
30
+ * @param {boolean} [parameters.depthTest=false] - Enable or disable depth testing.
31
+ */
32
+
33
+ function FakeGlowMaterial() {
34
+ var _this;
35
+ var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
+ _classCallCheck(this, FakeGlowMaterial);
37
+ _this = _super.call(this);
38
+ _this.vertexShader = vertexShader;
39
+ _this.fragmentShader = fragmentShader;
40
+ _this.uniforms = {
41
+ opacity: new Uniform(parameters.opacity !== undefined ? parameters.opacity : 1.0),
42
+ glowInternalRadius: new Uniform(parameters.glowInternalRadius !== undefined ? parameters.glowInternalRadius : 6.0),
43
+ glowSharpness: new Uniform(parameters.glowSharpness !== undefined ? parameters.glowSharpness : 0.5),
44
+ falloff: new Uniform(parameters.falloff !== undefined ? parameters.falloff : 0.1),
45
+ glowColor: new Uniform(parameters.glowColor !== undefined ? new Color(parameters.glowColor) : new Color('#00d5ff'))
46
+ };
47
+ _this.setValues(parameters);
48
+ _this.depthTest = parameters.depthTest !== undefined ? parameters.depthTest : false;
49
+ _this.blending = parameters.blendMode !== undefined ? parameters.blendMode : AdditiveBlending;
50
+ _this.transparent = true;
51
+ _this.side = parameters.side !== undefined ? parameters.side : DoubleSide;
52
+ return _this;
53
+ }
54
+ return _createClass(FakeGlowMaterial);
55
+ }(ShaderMaterial);
56
+ export default FakeGlowMaterial;
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdditiveBlending","Color","DoubleSide","ShaderMaterial","Uniform","vertexShader","fragmentShader","FakeGlowMaterial","parameters","uniforms","opacity","undefined","glowInternalRadius","glowSharpness","falloff","glowColor","setValues","depthTest","blending","blendMode","transparent","side"],"sources":["../../../src/material/fakeGlowMaterial/index.ts"],"sourcesContent":["import { AdditiveBlending, BackSide, Color, DoubleSide, FrontSide, ShaderMaterial, Uniform } from '@anov/3d-core'\nimport vertexShader from './shader/vertexShader'\nimport fragmentShader from './shader/fragmentShader'\n\nclass FakeGlowMaterial extends ShaderMaterial {\n /**\n * Create a FakeGlowMaterial.\n *\n * @param {Object} parameters - The parameters to configure the material.\n * @param {number} [parameters.falloff=0.1] - The falloff factor for the glow effect.\n * @param {number} [parameters.glowInternalRadius=6.0] - The internal radius for the glow effect.\n * @param {Color} [parameters.glowColor=new Color('#00d5ff')] - The color of the glow effect.\n * @param {number} [parameters.glowSharpness=0.5] - The sharpness of the glow effect.\n * @param {number} [parameters.opacity=1.0] - The opacity of the hologram.\n * @param {number} [parameters.side=THREE.FrontSide] - The rendering side. Use `THREE.FrontSide`, `THREE.BackSide`, or `THREE.DoubleSide`.\n * @param {boolean} [parameters.depthTest=false] - Enable or disable depth testing.\n */\n\n constructor(parameters: any = {}) {\n super()\n\n this.vertexShader = vertexShader\n this.fragmentShader = fragmentShader\n\n this.uniforms = {\n\n opacity: new Uniform(parameters.opacity !== undefined ? parameters.opacity : 1.0),\n glowInternalRadius: new Uniform(parameters.glowInternalRadius !== undefined ? parameters.glowInternalRadius : 6.0),\n glowSharpness: new Uniform(parameters.glowSharpness !== undefined ? parameters.glowSharpness : 0.5),\n falloff: new Uniform(parameters.falloff !== undefined ? parameters.falloff : 0.1),\n glowColor: new Uniform(parameters.glowColor !== undefined ? new Color(parameters.glowColor) : new Color('#00d5ff')),\n\n }\n\n this.setValues(parameters)\n this.depthTest = parameters.depthTest !== undefined ? parameters.depthTest : false\n this.blending = parameters.blendMode !== undefined ? parameters.blendMode : AdditiveBlending\n this.transparent = true\n this.side = parameters.side !== undefined ? parameters.side : DoubleSide\n }\n}\n\nexport default FakeGlowMaterial"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,gBAAgB,EAAYC,KAAK,EAAEC,UAAU,EAAaC,cAAc,EAAEC,OAAO,QAAQ,eAAe;AACjH,OAAOC,YAAY;AACnB,OAAOC,cAAc;AAA+B,IAE9CC,gBAAgB;EAAA;EAAA;EACpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEE,4BAAkC;IAAA;IAAA,IAAtBC,UAAe,uEAAG,CAAC,CAAC;IAAA;IAC9B;IAEA,MAAKH,YAAY,GAAGA,YAAY;IAChC,MAAKC,cAAc,GAAGA,cAAc;IAEpC,MAAKG,QAAQ,GAAG;MAEdC,OAAO,EAAE,IAAIN,OAAO,CAACI,UAAU,CAACE,OAAO,KAAKC,SAAS,GAAGH,UAAU,CAACE,OAAO,GAAG,GAAG,CAAC;MACjFE,kBAAkB,EAAE,IAAIR,OAAO,CAACI,UAAU,CAACI,kBAAkB,KAAKD,SAAS,GAAGH,UAAU,CAACI,kBAAkB,GAAG,GAAG,CAAC;MAClHC,aAAa,EAAE,IAAIT,OAAO,CAACI,UAAU,CAACK,aAAa,KAAKF,SAAS,GAAGH,UAAU,CAACK,aAAa,GAAG,GAAG,CAAC;MACnGC,OAAO,EAAE,IAAIV,OAAO,CAACI,UAAU,CAACM,OAAO,KAAKH,SAAS,GAAGH,UAAU,CAACM,OAAO,GAAG,GAAG,CAAC;MACjFC,SAAS,EAAE,IAAIX,OAAO,CAACI,UAAU,CAACO,SAAS,KAAKJ,SAAS,GAAG,IAAIV,KAAK,CAACO,UAAU,CAACO,SAAS,CAAC,GAAG,IAAId,KAAK,CAAC,SAAS,CAAC;IAEpH,CAAC;IAED,MAAKe,SAAS,CAACR,UAAU,CAAC;IAC1B,MAAKS,SAAS,GAAGT,UAAU,CAACS,SAAS,KAAKN,SAAS,GAAGH,UAAU,CAACS,SAAS,GAAG,KAAK;IAClF,MAAKC,QAAQ,GAAGV,UAAU,CAACW,SAAS,KAAKR,SAAS,GAAGH,UAAU,CAACW,SAAS,GAAGnB,gBAAgB;IAC5F,MAAKoB,WAAW,GAAG,IAAI;IACvB,MAAKC,IAAI,GAAGb,UAAU,CAACa,IAAI,KAAKV,SAAS,GAAGH,UAAU,CAACa,IAAI,GAAGnB,UAAU;IAAA;EAC1E;EAAC;AAAA,EAnC4BC,cAAc;AAsC7C,eAAeI,gBAAgB"}
@@ -0,0 +1,2 @@
1
+ declare const fragmentShader = "\n uniform vec3 glowColor;\n uniform float falloff;\n uniform float glowSharpness;\n uniform float glowInternalRadius;\n uniform float opacity;\n\n varying vec3 vPosition;\n varying vec3 vNormal;\n\n void main()\n {\n \n vec3 normal = normalize(vNormal);\n if(!gl_FrontFacing)\n normal *= - 1.0;\n\n vec3 viewDirection = normalize(cameraPosition - vPosition);\n float fresnel = dot(viewDirection, normal);\n fresnel = pow(fresnel, glowInternalRadius + 0.1);\n\n float falloff = smoothstep(0., falloff, fresnel);\n float fakeGlow = fresnel;\n fakeGlow += fresnel * glowSharpness;\n fakeGlow *= falloff;\n\n gl_FragColor = vec4(clamp(glowColor * fresnel, 0., 1.0), clamp(fakeGlow, 0., opacity));\n\n #include <tonemapping_fragment>\n #include <colorspace_fragment>\n }\n";
2
+ export default fragmentShader;
@@ -0,0 +1,3 @@
1
+ var fragmentShader = /* glsl */"\n uniform vec3 glowColor;\n uniform float falloff;\n uniform float glowSharpness;\n uniform float glowInternalRadius;\n uniform float opacity;\n\n varying vec3 vPosition;\n varying vec3 vNormal;\n\n void main()\n {\n \n vec3 normal = normalize(vNormal);\n if(!gl_FrontFacing)\n normal *= - 1.0;\n\n vec3 viewDirection = normalize(cameraPosition - vPosition);\n float fresnel = dot(viewDirection, normal);\n fresnel = pow(fresnel, glowInternalRadius + 0.1);\n\n float falloff = smoothstep(0., falloff, fresnel);\n float fakeGlow = fresnel;\n fakeGlow += fresnel * glowSharpness;\n fakeGlow *= falloff;\n\n gl_FragColor = vec4(clamp(glowColor * fresnel, 0., 1.0), clamp(fakeGlow, 0., opacity));\n\n #include <tonemapping_fragment>\n #include <colorspace_fragment>\n }\n";
2
+ export default fragmentShader;
3
+ //# sourceMappingURL=fragmentShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fragmentShader"],"sources":["../../../../src/material/fakeGlowMaterial/shader/fragmentShader.ts"],"sourcesContent":["const fragmentShader = /* glsl */`\n uniform vec3 glowColor;\n uniform float falloff;\n uniform float glowSharpness;\n uniform float glowInternalRadius;\n uniform float opacity;\n\n varying vec3 vPosition;\n varying vec3 vNormal;\n\n void main()\n {\n \n vec3 normal = normalize(vNormal);\n if(!gl_FrontFacing)\n normal *= - 1.0;\n\n vec3 viewDirection = normalize(cameraPosition - vPosition);\n float fresnel = dot(viewDirection, normal);\n fresnel = pow(fresnel, glowInternalRadius + 0.1);\n\n float falloff = smoothstep(0., falloff, fresnel);\n float fakeGlow = fresnel;\n fakeGlow += fresnel * glowSharpness;\n fakeGlow *= falloff;\n\n gl_FragColor = vec4(clamp(glowColor * fresnel, 0., 1.0), clamp(fakeGlow, 0., opacity));\n\n #include <tonemapping_fragment>\n #include <colorspace_fragment>\n }\n`\n\nexport default fragmentShader"],"mappings":"AAAA,IAAMA,cAAc,GAAG,i6BA+BtB;AAED,eAAeA,cAAc"}
@@ -0,0 +1,2 @@
1
+ declare const vertexShader = "\n varying vec3 vPosition;\n varying vec3 vNormal;\n\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n vec4 modelNormal = modelMatrix * vec4(normal, 0.0);\n vPosition = modelPosition.xyz;\n vNormal = modelNormal.xyz;\n\n }\n";
2
+ export default vertexShader;
@@ -0,0 +1,3 @@
1
+ var vertexShader = /* glsl */"\n varying vec3 vPosition;\n varying vec3 vNormal;\n\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n vec4 modelNormal = modelMatrix * vec4(normal, 0.0);\n vPosition = modelPosition.xyz;\n vNormal = modelNormal.xyz;\n\n }\n";
2
+ export default vertexShader;
3
+ //# sourceMappingURL=vertexShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vertexShader"],"sources":["../../../../src/material/fakeGlowMaterial/shader/vertexShader.ts"],"sourcesContent":["const vertexShader = /* glsl */`\n varying vec3 vPosition;\n varying vec3 vNormal;\n\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n vec4 modelNormal = modelMatrix * vec4(normal, 0.0);\n vPosition = modelPosition.xyz;\n vNormal = modelNormal.xyz;\n\n }\n`\n\nexport default vertexShader"],"mappings":"AAAA,IAAMA,YAAY,GAAG,wXAYpB;AAED,eAAeA,YAAY"}
@@ -49,7 +49,7 @@ var SpritePoi = /*#__PURE__*/function (_Poi) {
49
49
  _this.data = data;
50
50
  _this.option = option;
51
51
  _this.isSprite = true;
52
- _this.type = 'Sprite';
52
+ _this.type = 'SpritePoi';
53
53
  _this.geometry = _this.getGeometry();
54
54
  _this.option.animation && _this.setAnimation(_this.option.animation);
55
55
  // 创建Sprite
@@ -1 +1 @@
1
- {"version":3,"names":["BufferGeometry","InterleavedBuffer","InterleavedBufferAttribute","Matrix4","SpriteMaterial","TextureLoader","Triangle","Vector2","Vector3","sRGBEncoding","utils","gsap","EAnimationType","Poi","_default","animation","type","grow","duration","_viewWorldMatrix","createDomTexture","SpritePoi","data","option","isSprite","geometry","getGeometry","setAnimation","setMaterial","play","_geometry","float32Array","Float32Array","interleavedBuffer","setIndex","setAttribute","width","height","center","visible","initMaterial","HTMLElement","element","texture","load","encoding","isFadeOrAppearAnimation","some","item","fadeIn","opacity","needsUpdate","material","map","transparent","depthTest","Array","isArray","hasExecuted","isGrow","scale","onAfterRender","forEach","to","repeat","ease","initScale","fromArray","clone","setScalar","x","y","z","copy","cb","raycaster","intersects","camera","console","error","_worldScale","_mvPosition","setFromMatrixScale","matrixWorld","modelViewMatrix","multiplyMatrices","matrixWorldInverse","setFromMatrixPosition","isPerspectiveCamera","sizeAttenuation","multiplyScalar","rotation","sin","cos","Math","_vA","_vB","_vC","_uvA","_uvB","_uvC","transformVertex","set","_intersectPoint","intersect","ray","intersectTriangle","distance","origin","distanceTo","near","far","push","point","uv","getInterpolation","face","object","vertexPosition","mvPosition","_alignedPosition","_rotatedPosition","subVectors","addScalar","multiply","undefined","applyMatrix4"],"sources":["../../../src/poi/Sprite/index.ts"],"sourcesContent":["import type { PerspectiveCamera, Raycaster } from '@anov/3d-core'\nimport { BufferGeometry, InterleavedBuffer, InterleavedBufferAttribute, Matrix4, SpriteMaterial, TextureLoader, Triangle, Vector2, Vector3, sRGBEncoding, utils } from '@anov/3d-core'\nimport gsap from 'gsap'\nimport { EAnimationType } from '../utils/type'\nimport type { IAnimation, IOption } from '../utils/type'\nimport Poi from '../Poi'\n\nconst _default = {\n animation: {\n type: EAnimationType.grow,\n duration: 0.3,\n },\n}\n\nconst _viewWorldMatrix = new Matrix4()\nconst { createDomTexture } = utils\n\nclass SpritePoi extends Poi {\n geometry!: BufferGeometry\n center!: Vector2\n material!: SpriteMaterial\n isSprite: boolean\n type: string\n\n data!: any\n option!: IOption\n animation: Array<any> = []\n\n constructor(data: any, option: IOption) {\n super(data, option)\n this.data = data\n this.option = option\n\n this.isSprite = true\n this.type = 'Sprite'\n\n this.geometry = this.getGeometry()\n this.option.animation && this.setAnimation(this.option.animation)\n // 创建Sprite\n this.setMaterial()\n\n // 执行动画\n this.play()\n }\n\n private getGeometry() {\n const _geometry = new BufferGeometry()\n const float32Array = new Float32Array([\n -0.5, -0.5, 0, 0, 0,\n 0.5, -0.5, 0, 1, 0,\n 0.5, 0.5, 0, 1, 1,\n -0.5, 0.5, 0, 0, 1,\n ])\n\n const interleavedBuffer = new InterleavedBuffer(float32Array, 5)\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3])\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false))\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false))\n\n return _geometry\n }\n\n private setMaterial() {\n const { width, height } = this.option as {\n animation: IAnimation\n width: number\n height: number\n }\n // 精灵的锚点\n this.center = new Vector2(0.5, 0)\n\n this.visible = false\n // 异步生成材质\n const initMaterial = async () => {\n let texture\n // 直接传递DOM元素\n if (this.data instanceof HTMLElement) {\n const element: HTMLElement = this.data\n texture = await createDomTexture(element, { width, height })\n }\n else if (typeof this.data === 'string') {\n texture = new TextureLoader().load(this.data)\n }\n\n if (texture) {\n texture.encoding = sRGBEncoding // 将纹理的编码设置为sRGB\n // 判断条件\n\n const isFadeOrAppearAnimation = this.animation.some((item) => {\n if (item.type === EAnimationType.fadeIn)\n return true\n })\n // 根据条件设置 opacity 的值\n const opacity = isFadeOrAppearAnimation ? 0 : 1\n\n texture.needsUpdate = true\n this.material = new SpriteMaterial({\n map: texture,\n transparent: true, // 设置为透明材质\n opacity,\n depthTest: false,\n })\n this.visible = true\n }\n }\n initMaterial()\n }\n\n // 设置动画属性\n setAnimation(animation: object | Array<any>) {\n if (!animation)\n return\n if (Array.isArray(animation))\n this.animation = animation\n else\n this.animation = [animation]\n }\n\n // 播放动画\n play() {\n let hasExecuted = false\n let isGrow = false\n const { scale } = this.option\n // 执行渐显、打印内容等操作\n this.onAfterRender = () => {\n if (hasExecuted)\n return\n this.animation.forEach((item) => {\n switch (item.type) {\n case EAnimationType.fadeIn:\n gsap.to(this.material, {\n opacity: 1,\n ...item,\n repeat: 0,\n ease: 'none',\n })\n break\n case EAnimationType.grow:\n isGrow = true\n const initScale = scale ? new Vector3().fromArray(scale) : this.scale.clone()\n this.scale.setScalar(0)\n gsap.to(this.scale, {\n x: initScale.x,\n y: initScale.y,\n z: initScale.z,\n ...item,\n repeat: 0,\n ease: 'power2.out',\n })\n break\n }\n })\n if (!isGrow && scale)\n this.scale.copy(new Vector3().fromArray(scale))\n\n hasExecuted = true\n }\n }\n\n addEventListener(type: string, cb: any) {\n super.addEventListener(type, cb)\n return () => super.removeEventListener(type, cb)\n }\n\n raycast(raycaster: Raycaster, intersects: any) {\n if (raycaster.camera === null)\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.')\n\n const _worldScale = /* @__PURE__ */ new Vector3()\n const _mvPosition = /* @__PURE__ */ new Vector3()\n _worldScale.setFromMatrixScale(this.matrixWorld)\n\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld)\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld)\n\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix)\n\n if ((raycaster.camera as PerspectiveCamera & { isPerspectiveCamera: boolean }).isPerspectiveCamera && this.material.sizeAttenuation === false)\n\n _worldScale.multiplyScalar(-_mvPosition.z)\n\n const rotation = this.material.rotation\n let sin, cos\n\n if (rotation !== 0) {\n cos = Math.cos(rotation)\n sin = Math.sin(rotation)\n }\n\n const center = this.center\n const _vA = /* @__PURE__ */ new Vector3()\n const _vB = /* @__PURE__ */ new Vector3()\n const _vC = /* @__PURE__ */ new Vector3()\n\n const _uvA = /* @__PURE__ */ new Vector2()\n const _uvB = /* @__PURE__ */ new Vector2()\n const _uvC = /* @__PURE__ */ new Vector2()\n transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n\n _uvA.set(0, 0)\n _uvB.set(1, 0)\n _uvC.set(1, 1)\n\n const _intersectPoint = /* @__PURE__ */ new Vector3()\n // check first triangle\n let intersect = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint)\n\n if (intersect === null) {\n // check second triangle\n transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n _uvB.set(0, 1)\n\n intersect = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint)\n if (intersect === null)\n\n return\n }\n\n const distance = raycaster.ray.origin.distanceTo(_intersectPoint)\n\n if (distance < raycaster.near || distance > raycaster.far)\n return\n\n intersects.push({\n distance,\n point: _intersectPoint.clone(),\n uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n face: null,\n object: this,\n\n })\n }\n}\n\nfunction transformVertex(vertexPosition: Vector3, mvPosition: Vector3, center: Vector2, scale: Vector3, sin: number | undefined, cos: number | undefined) {\n const _alignedPosition = /* @__PURE__ */ new Vector2()\n const _rotatedPosition = /* @__PURE__ */ new Vector2()\n // compute position in camera space\n _alignedPosition.subVectors(new Vector2(vertexPosition.x, vertexPosition.y), center).addScalar(0.5).multiply(new Vector2(scale.x, scale.y))\n\n // to check if rotation is not zero\n if (sin !== undefined && cos !== undefined) {\n _rotatedPosition.x = (cos * _alignedPosition.x) - (sin * _alignedPosition.y)\n _rotatedPosition.y = (sin * _alignedPosition.x) + (cos * _alignedPosition.y)\n }\n else {\n _rotatedPosition.copy(_alignedPosition)\n }\n\n vertexPosition.copy(mvPosition)\n vertexPosition.x += _rotatedPosition.x\n vertexPosition.y += _rotatedPosition.y\n\n // transform to world space\n vertexPosition.applyMatrix4(_viewWorldMatrix)\n}\n\nexport default SpritePoi"],"mappings":"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"}
1
+ {"version":3,"names":["BufferGeometry","InterleavedBuffer","InterleavedBufferAttribute","Matrix4","SpriteMaterial","TextureLoader","Triangle","Vector2","Vector3","sRGBEncoding","utils","gsap","EAnimationType","Poi","_default","animation","type","grow","duration","_viewWorldMatrix","createDomTexture","SpritePoi","data","option","isSprite","geometry","getGeometry","setAnimation","setMaterial","play","_geometry","float32Array","Float32Array","interleavedBuffer","setIndex","setAttribute","width","height","center","visible","initMaterial","HTMLElement","element","texture","load","encoding","isFadeOrAppearAnimation","some","item","fadeIn","opacity","needsUpdate","material","map","transparent","depthTest","Array","isArray","hasExecuted","isGrow","scale","onAfterRender","forEach","to","repeat","ease","initScale","fromArray","clone","setScalar","x","y","z","copy","cb","raycaster","intersects","camera","console","error","_worldScale","_mvPosition","setFromMatrixScale","matrixWorld","modelViewMatrix","multiplyMatrices","matrixWorldInverse","setFromMatrixPosition","isPerspectiveCamera","sizeAttenuation","multiplyScalar","rotation","sin","cos","Math","_vA","_vB","_vC","_uvA","_uvB","_uvC","transformVertex","set","_intersectPoint","intersect","ray","intersectTriangle","distance","origin","distanceTo","near","far","push","point","uv","getInterpolation","face","object","vertexPosition","mvPosition","_alignedPosition","_rotatedPosition","subVectors","addScalar","multiply","undefined","applyMatrix4"],"sources":["../../../src/poi/Sprite/index.ts"],"sourcesContent":["import type { PerspectiveCamera, Raycaster } from '@anov/3d-core'\nimport { BufferGeometry, InterleavedBuffer, InterleavedBufferAttribute, Matrix4, Sprite, SpriteMaterial, TextureLoader, Triangle, Vector2, Vector3, sRGBEncoding, utils } from '@anov/3d-core'\nimport gsap from 'gsap'\nimport { EAnimationType } from '../utils/type'\nimport type { IAnimation, IOption } from '../utils/type'\nimport Poi from '../Poi'\n\nconst _default = {\n animation: {\n type: EAnimationType.grow,\n duration: 0.3,\n },\n}\n\nconst _viewWorldMatrix = new Matrix4()\nconst { createDomTexture } = utils\n\nclass SpritePoi extends Poi {\n geometry!: BufferGeometry\n center!: Vector2\n material!: SpriteMaterial\n isSprite: boolean\n type: string\n\n data!: any\n option!: IOption\n animation: Array<any> = []\n\n constructor(data: any, option: IOption) {\n super(data, option)\n this.data = data\n this.option = option\n\n this.isSprite = true\n this.type = 'SpritePoi'\n\n this.geometry = this.getGeometry()\n this.option.animation && this.setAnimation(this.option.animation)\n // 创建Sprite\n this.setMaterial()\n\n // 执行动画\n this.play()\n }\n\n private getGeometry() {\n const _geometry = new BufferGeometry()\n const float32Array = new Float32Array([\n -0.5, -0.5, 0, 0, 0,\n 0.5, -0.5, 0, 1, 0,\n 0.5, 0.5, 0, 1, 1,\n -0.5, 0.5, 0, 0, 1,\n ])\n\n const interleavedBuffer = new InterleavedBuffer(float32Array, 5)\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3])\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false))\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false))\n\n return _geometry\n }\n\n private setMaterial() {\n const { width, height } = this.option as {\n animation: IAnimation\n width: number\n height: number\n }\n // 精灵的锚点\n this.center = new Vector2(0.5, 0)\n\n this.visible = false\n // 异步生成材质\n const initMaterial = async () => {\n let texture\n // 直接传递DOM元素\n if (this.data instanceof HTMLElement) {\n const element: HTMLElement = this.data\n texture = await createDomTexture(element, { width, height })\n }\n else if (typeof this.data === 'string') {\n texture = new TextureLoader().load(this.data)\n }\n\n if (texture) {\n texture.encoding = sRGBEncoding // 将纹理的编码设置为sRGB\n // 判断条件\n\n const isFadeOrAppearAnimation = this.animation.some((item) => {\n if (item.type === EAnimationType.fadeIn)\n return true\n })\n // 根据条件设置 opacity 的值\n const opacity = isFadeOrAppearAnimation ? 0 : 1\n\n texture.needsUpdate = true\n this.material = new SpriteMaterial({\n map: texture,\n transparent: true, // 设置为透明材质\n opacity,\n depthTest: false,\n })\n this.visible = true\n }\n }\n initMaterial()\n }\n\n // 设置动画属性\n setAnimation(animation: object | Array<any>) {\n if (!animation)\n return\n if (Array.isArray(animation))\n this.animation = animation\n else\n this.animation = [animation]\n }\n\n // 播放动画\n play() {\n let hasExecuted = false\n let isGrow = false\n const { scale } = this.option\n // 执行渐显、打印内容等操作\n this.onAfterRender = () => {\n if (hasExecuted)\n return\n this.animation.forEach((item) => {\n switch (item.type) {\n case EAnimationType.fadeIn:\n gsap.to(this.material, {\n opacity: 1,\n ...item,\n repeat: 0,\n ease: 'none',\n })\n break\n case EAnimationType.grow:\n isGrow = true\n const initScale = scale ? new Vector3().fromArray(scale) : this.scale.clone()\n this.scale.setScalar(0)\n gsap.to(this.scale, {\n x: initScale.x,\n y: initScale.y,\n z: initScale.z,\n ...item,\n repeat: 0,\n ease: 'power2.out',\n })\n break\n }\n })\n if (!isGrow && scale)\n this.scale.copy(new Vector3().fromArray(scale))\n\n hasExecuted = true\n }\n }\n\n addEventListener(type: string, cb: any) {\n super.addEventListener(type, cb)\n return () => super.removeEventListener(type, cb)\n }\n\n raycast(raycaster: Raycaster, intersects: any) {\n if (raycaster.camera === null)\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.')\n\n const _worldScale = /* @__PURE__ */ new Vector3()\n const _mvPosition = /* @__PURE__ */ new Vector3()\n _worldScale.setFromMatrixScale(this.matrixWorld)\n\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld)\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld)\n\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix)\n\n if ((raycaster.camera as PerspectiveCamera & { isPerspectiveCamera: boolean }).isPerspectiveCamera && this.material.sizeAttenuation === false)\n\n _worldScale.multiplyScalar(-_mvPosition.z)\n\n const rotation = this.material.rotation\n let sin, cos\n\n if (rotation !== 0) {\n cos = Math.cos(rotation)\n sin = Math.sin(rotation)\n }\n\n const center = this.center\n const _vA = /* @__PURE__ */ new Vector3()\n const _vB = /* @__PURE__ */ new Vector3()\n const _vC = /* @__PURE__ */ new Vector3()\n\n const _uvA = /* @__PURE__ */ new Vector2()\n const _uvB = /* @__PURE__ */ new Vector2()\n const _uvC = /* @__PURE__ */ new Vector2()\n transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n\n _uvA.set(0, 0)\n _uvB.set(1, 0)\n _uvC.set(1, 1)\n\n const _intersectPoint = /* @__PURE__ */ new Vector3()\n // check first triangle\n let intersect = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint)\n\n if (intersect === null) {\n // check second triangle\n transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n _uvB.set(0, 1)\n\n intersect = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint)\n if (intersect === null)\n\n return\n }\n\n const distance = raycaster.ray.origin.distanceTo(_intersectPoint)\n\n if (distance < raycaster.near || distance > raycaster.far)\n return\n\n intersects.push({\n distance,\n point: _intersectPoint.clone(),\n uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n face: null,\n object: this,\n\n })\n }\n}\n\nfunction transformVertex(vertexPosition: Vector3, mvPosition: Vector3, center: Vector2, scale: Vector3, sin: number | undefined, cos: number | undefined) {\n const _alignedPosition = /* @__PURE__ */ new Vector2()\n const _rotatedPosition = /* @__PURE__ */ new Vector2()\n // compute position in camera space\n _alignedPosition.subVectors(new Vector2(vertexPosition.x, vertexPosition.y), center).addScalar(0.5).multiply(new Vector2(scale.x, scale.y))\n\n // to check if rotation is not zero\n if (sin !== undefined && cos !== undefined) {\n _rotatedPosition.x = (cos * _alignedPosition.x) - (sin * _alignedPosition.y)\n _rotatedPosition.y = (sin * _alignedPosition.x) + (cos * _alignedPosition.y)\n }\n else {\n _rotatedPosition.copy(_alignedPosition)\n }\n\n vertexPosition.copy(mvPosition)\n vertexPosition.x += _rotatedPosition.x\n vertexPosition.y += _rotatedPosition.y\n\n // transform to world space\n vertexPosition.applyMatrix4(_viewWorldMatrix)\n}\n\nexport default SpritePoi"],"mappings":"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"}