@anov/3d-ability 0.0.118 → 0.0.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/business/HeatMap/HeatMap.js +7 -4
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +1 -1
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.d.ts +2 -2
- package/dist/business/MaterialSwitch/shader/realFade.js +2 -2
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Poi/title/index.d.ts +1 -1
- package/dist/business/Poi/title/index.js +15 -7
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +2 -1
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +2 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +3 -2
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.d.ts +1 -0
- package/dist/core/Material/SurfaceMaterial/index.js +17 -10
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.d.ts +2 -0
- package/dist/core/WeatherSystem/objects/rain/index.js +7 -0
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.d.ts +21 -0
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +218 -0
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -0
- package/dist/core/WeatherSystem/objects/sky/outline.js +2 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/package.json +4 -4
|
@@ -492,12 +492,15 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
|
|
|
492
492
|
}, {
|
|
493
493
|
key: "removeFromParent",
|
|
494
494
|
value: function removeFromParent() {
|
|
495
|
-
var _this$_attachmentMesh;
|
|
496
495
|
_get(_getPrototypeOf(HeatMap.prototype), "removeFromParent", this).call(this);
|
|
497
|
-
|
|
496
|
+
// todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系
|
|
497
|
+
if (this.parent) {
|
|
498
|
+
var _this$_attachmentMesh;
|
|
499
|
+
use.useScene().domElement.parentElement.removeChild(this._canvasBox);
|
|
498
500
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
+
// @ts-ignore
|
|
502
|
+
(_this$_attachmentMesh = this._attachmentMesh) === null || _this$_attachmentMesh === void 0 || _this$_attachmentMesh.material.dispose();
|
|
503
|
+
}
|
|
501
504
|
return this;
|
|
502
505
|
}
|
|
503
506
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CanvasTexture","DoubleSide","Mesh","NearestFilter","Object3D","PlaneGeometry","ShaderMaterial","Vector2","use","h","Supercluster","heightFragmentShader","heightVertexShader","defaultGradient","HeatMap","_Object3D","_inherits","_super","_createSuper","options","_options$radius","_options$height","_options$isPixel","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_colorMap","colorMap","_radius","radius","_height","height","_isPixel","isPixel","_range","range","_createClass","key","get","Math","max","apply","_toConsumableArray","data","map","item","value","_url","initSupercluster","_supercluster","minZoom","maxZoom","setSuperclusterData","featuresPoints","type","properties","geometry","coordinates","x","z","console","log","length","load","getZoomLevel","camera","minHeight","maxHeight","min","position","y","getSuperclusterData","_this$calDataMaxMin","calDataMaxMin","zoom","useScene","clusters","getClusters","_this2","maxX","minX","maxZ","minZ","abs","ceil","maxRadius","_item$radius","concat","width","realShowWidth","realShowHeight","realShowMax","generateAsitePoints","_this3","_item$radius2","boundaryPoints","isBoundary","_this$calDataMaxMin2","coordinate3DTransformation","_this4","_this$newOrigin","newOrigin","_item$radius3","_objectSpread","coordinateTransformation","_this5","hanldeData","_this$calDataMaxMin3","resolutionScale","calResolutionScale","result","_item$radius4","floor","createHeatmapTool","heatmap","create","container","_canvasBox","gradient","maxOpacity","minOpacity","createCanvas","canvasBox","document","createElement","style","top","right","domElement","parentElement","appendChild","_this$calDataMaxMin4","maxY","scale","createAttachmentMesh","_attachmentMesh","remove","_this$calDataMaxMin5","canvas","_heatmap","_renderer","texture","minFilter","magFilter","toDataURL","threshold","shaderMaterial","uniforms","granularity","uOpacity","uHeight","uRange","vertexShader","fragmentShader","transparent","side","depthTest","mesh","_this$newOrigin2","rotation","PI","set","renderOrder","add","setData","_this$_range$max","_this$_range","_this$_range$min","_this$_range2","_this$generateAsitePo","heatmapData","removeChild","filter","defaultMax","removeFromParent","_this$_attachmentMesh","_get","_getPrototypeOf","prototype","material","dispose"],"sources":["../../../src/business/HeatMap/HeatMap.ts"],"sourcesContent":["import type { PerspectiveCamera } from '@anov/3d-core'\nimport { CanvasTexture, DoubleSide, Mesh, NearestFilter, Object3D, PlaneGeometry, ShaderMaterial, Vector2, use } from '@anov/3d-core'\nimport h from 'anov-heat-map'\nimport type { AnyProps } from 'supercluster'\nimport Supercluster from 'supercluster'\nimport { heightFragmentShader, heightVertexShader } from './shader'\nimport type { HeatMapData, HeatMapnterface } from './index'\n\ntype RangeType = {\n min: number\n max: number\n}\n\ntype HeatMapOptions = {\n colorMap?: {\n [key: number]: string\n }\n max?: number\n radius?: number\n height?: number\n isPixel?: boolean\n range?: RangeType\n}\n\nconst defaultGradient = { 0.25: 'rgb(0,0,255)', 0.55: 'rgb(0,255,0)', 0.85: 'yellow', 1.0: 'rgb(255,0,0)' }\n\n/**\n * 区域热力图\n */\n\nclass HeatMap extends Object3D implements HeatMapnterface {\n public data: HeatMapData[] = []\n\n private _height: number\n private _radius: number\n private _heatmap: any\n private _url: string\n private _colorMap: {\n [key: number]: string\n }\n\n private _isPixel: boolean\n private _canvasBox: HTMLDivElement | undefined\n private _attachmentMesh: Mesh | undefined\n private _supercluster: Supercluster\n private _range: RangeType | undefined\n\n private get defaultMax() {\n return Math.max(...this.data.map(item => item.value))\n }\n\n public get url() {\n return this._url\n }\n\n constructor(options: HeatMapOptions) {\n super()\n\n this._colorMap = options.colorMap || defaultGradient\n this._radius = options.radius ?? 40\n this._height = options.height ?? 70\n this._isPixel = options.isPixel ?? false\n this._range = options.range\n\n // this.initSupercluster()\n }\n\n private initSupercluster() {\n this._supercluster = new Supercluster({\n radius: 40,\n minZoom: 1,\n maxZoom: 16,\n })\n }\n\n /**\n * set supercluster data\n */\n private setSuperclusterData() {\n const featuresPoints = this.data.map((item) => {\n return {\n type: 'Feature',\n properties: {},\n geometry: {\n type: 'Point',\n coordinates: [item.x, item.z],\n },\n }\n })\n\n console.log('正在加载点数据到supercluster:', featuresPoints.length)\n this._supercluster.load(featuresPoints as Supercluster.PointFeature<AnyProps>[])\n }\n\n /**\n * get zoom level\n * @param camera\n * @returns\n */\n private getZoomLevel(camera: PerspectiveCamera) {\n const minZoom = 10\n const maxZoom = 16\n const minHeight = 10\n const maxHeight = 1000\n\n return Math.max(minZoom, Math.min(maxZoom,\n ((maxHeight - camera.position.y) / (maxHeight - minHeight)) * (maxZoom - minZoom) + minZoom,\n ))\n }\n\n /**\n * get supercluster data\n * @returns\n */\n private getSuperclusterData() {\n const { max } = this.calDataMaxMin()\n const zoom = this.getZoomLevel(use.useScene().camera)\n const clusters = this._supercluster.getClusters([-max, -max, max, max], zoom)\n\n console.log('当前缩放级别:', zoom, '输入点数量:', this.data.length, '聚类后点数量:', clusters.length)\n\n return clusters\n }\n\n /**\n * calculate data max and min\n * @returns\n */\n private calDataMaxMin() {\n const maxX = Math.max(...this.data.map(item => item.x))\n const minX = Math.min(...this.data.map(item => item.x))\n const maxZ = Math.max(...this.data.map(item => item.z))\n const minZ = Math.min(...this.data.map(item => item.z))\n\n const max = Math.max(Math.abs(Math.ceil(maxX)), Math.abs(Math.ceil(minX)), Math.abs(Math.ceil(maxZ)), Math.abs(Math.ceil(minZ)), 60)\n const maxRadius = Math.max(...this.data.map(item => item.radius ?? this._radius), this._radius)\n\n const width = max * 2\n const height = max * 2\n\n const realShowWidth = maxX - minX\n const realShowHeight = maxZ - minZ\n\n const realShowMax = Math.max(Math.ceil(realShowWidth), Math.ceil(realShowHeight), 60)\n\n return { width, height, max, minX, minZ, maxX, maxZ, realShowMax, realShowWidth, realShowHeight, maxRadius }\n }\n\n /**\n * generateAsitePoints\n * @param data\n */\n private generateAsitePoints(data: HeatMapData[]) {\n const maxX = Math.max(...data.map(item => item.x))\n const minX = Math.min(...data.map(item => item.x))\n const maxZ = Math.max(...data.map(item => item.z))\n const minZ = Math.min(...data.map(item => item.z))\n\n const maxRadius = 2 * Math.max(...data.map(item => item.radius ?? this._radius), this._radius)\n\n const boundaryPoints = [\n { x: minX - maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: minX - maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n ]\n\n return { boundaryPoints, maxRadius }\n }\n\n /**\n * generate new origin\n * @returns\n */\n private get newOrigin() {\n // need to consider one point and multiple points\n const { minX, minZ, maxX, maxZ } = this.calDataMaxMin()\n\n return {\n x: (maxX + minX) / 2,\n z: (maxZ + minZ) / 2,\n }\n }\n\n /**\n * coordinate 3D transformation\n * @param data\n * @returns\n */\n private coordinate3DTransformation(data: HeatMapData[]) {\n const { x, z } = this.newOrigin\n return data.map(item => ({\n ...item,\n x: item.x - x,\n z: item.z - z,\n radius: item.radius ?? this._radius,\n }))\n }\n\n /**\n * coordinate transformation, to canvas coordinate\n * @param data\n * @returns\n */\n private coordinateTransformation(data: HeatMapData[]) {\n const hanldeData = this.coordinate3DTransformation(data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const resolutionScale = this.calResolutionScale()\n\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width) * resolutionScale,\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height) * resolutionScale,\n value: item.value,\n radius: (item.radius ?? this._radius) * resolutionScale * 2,\n // @ts-ignore\n isBoundary: item?.isBoundary,\n }))\n\n // console.log('原始', data, realShowWidth, realShowHeight)\n // console.log('newOrigin', this.newOrigin)\n // console.log('hanldeData', hanldeData)\n // console.log('结果', result)\n // console.log('resolutionScale', resolutionScale, realShowWidth, realShowHeight, realShowWidth * resolutionScale, realShowHeight * resolutionScale)\n\n return result\n }\n\n /**\n * generate heatmap texture\n * @param canvasBox\n * @returns\n */\n private createHeatmapTool() {\n const heatmap = h.create({\n container: this._canvasBox,\n radius: this._radius,\n gradient: this._colorMap,\n maxOpacity: 1,\n minOpacity: 0,\n })\n\n return heatmap\n }\n\n /**\n * create heatmap container canvas\n * @returns\n */\n private createCanvas(width: number, height: number) {\n const canvasBox = document.createElement('div')\n\n canvasBox.style.width = `${width}px`\n canvasBox.style.height = `${height}px`\n canvasBox.style.top = '0'\n canvasBox.style.right = '0'\n\n use.useScene().domElement.parentElement.appendChild(canvasBox)\n\n return canvasBox\n }\n\n /**\n * calculate resolution scale\n * @param width\n * @returns\n */\n private calResolutionScale() {\n const hanldeData = this.coordinate3DTransformation(this.data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width),\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height),\n value: item.value,\n radius: item.radius * 2,\n }))\n\n const maxRadius = Math.max(...result.map(item => item.radius))\n const maxX = Math.max(...result.map(item => item.x))\n const maxY = Math.max(...result.map(item => item.y))\n const max = Math.max(maxX, maxY)\n\n if (max <= 1000) {\n const scale = (1000 - max) / 1000 * 15 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n if (max <= 5000) {\n const scale = (5000 - max) / 5000 * 5 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n return 1\n }\n\n /**\n * create attachment mesh\n */\n private createAttachmentMesh() {\n if (this._attachmentMesh)\n this.remove(this._attachmentMesh)\n\n const { realShowMax, max, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const canvas = this._heatmap._renderer.canvas\n const texture = new CanvasTexture(canvas)\n\n texture.minFilter = NearestFilter\n texture.magFilter = NearestFilter\n\n this._url = canvas.toDataURL('image/png')\n\n const threshold = (0.3 / 1000 * realShowMax)\n const shaderMaterial = new ShaderMaterial({\n uniforms: {\n map: { value: texture },\n granularity: { value: realShowMax / 3 < 300 ? 300 : realShowMax / 3 },\n threshold: { value: threshold > 0.6 ? 0.6 : threshold < 0.25 ? 0.25 : threshold },\n uOpacity: { value: 2.0 },\n uHeight: { value: this._height },\n isPixel: { value: this._isPixel },\n uRange: { value: new Vector2(-max, max) },\n\n },\n vertexShader: heightVertexShader,\n fragmentShader: heightFragmentShader,\n transparent: true,\n side: DoubleSide,\n depthTest: false,\n })\n\n const mesh = new Mesh(new PlaneGeometry(realShowWidth, realShowHeight, 500, 500), shaderMaterial)\n const { x, z } = this.newOrigin\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(x, 0, z)\n mesh.renderOrder = 1000\n\n this._attachmentMesh = mesh\n this.add(mesh)\n }\n\n /**\n * set heatmap data\n * @param data\n */\n public setData(data: HeatMapData[]) {\n const { boundaryPoints } = this.generateAsitePoints(data)\n this.data = [...boundaryPoints, ...data]\n\n const heatmapData = this.coordinateTransformation(this.data)\n this._canvasBox && use.useScene().domElement.parentElement.removeChild(this._canvasBox)\n this._canvasBox = this.createCanvas(Math.max(...heatmapData.map(item => item.x)), Math.max(...heatmapData.map(item => item.y)))\n this._heatmap = this.createHeatmapTool()\n\n this._heatmap.setData({\n data: heatmapData.filter(item => !item.isBoundary),\n max: this._range?.max ?? this.defaultMax,\n min: this._range?.min ?? 0,\n })\n\n this.createAttachmentMesh()\n\n // 聚类暂时不实现\n // this.setSuperclusterData()\n // use.useScene().orbitControls.addEventListener('change', () => {\n // const clusters = this.getSuperclusterData()\n // console.log(clusters)\n // })\n }\n\n override removeFromParent(): this {\n super.removeFromParent()\n use.useScene().domElement.parentElement.removeChild(this._canvasBox)\n\n // @ts-ignore\n this._attachmentMesh?.material.dispose()\n\n return this\n }\n}\n\nexport default HeatMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["CanvasTexture","DoubleSide","Mesh","NearestFilter","Object3D","PlaneGeometry","ShaderMaterial","Vector2","use","h","Supercluster","heightFragmentShader","heightVertexShader","defaultGradient","HeatMap","_Object3D","_inherits","_super","_createSuper","options","_options$radius","_options$height","_options$isPixel","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_colorMap","colorMap","_radius","radius","_height","height","_isPixel","isPixel","_range","range","_createClass","key","get","Math","max","apply","_toConsumableArray","data","map","item","value","_url","initSupercluster","_supercluster","minZoom","maxZoom","setSuperclusterData","featuresPoints","type","properties","geometry","coordinates","x","z","console","log","length","load","getZoomLevel","camera","minHeight","maxHeight","min","position","y","getSuperclusterData","_this$calDataMaxMin","calDataMaxMin","zoom","useScene","clusters","getClusters","_this2","maxX","minX","maxZ","minZ","abs","ceil","maxRadius","_item$radius","concat","width","realShowWidth","realShowHeight","realShowMax","generateAsitePoints","_this3","_item$radius2","boundaryPoints","isBoundary","_this$calDataMaxMin2","coordinate3DTransformation","_this4","_this$newOrigin","newOrigin","_item$radius3","_objectSpread","coordinateTransformation","_this5","hanldeData","_this$calDataMaxMin3","resolutionScale","calResolutionScale","result","_item$radius4","floor","createHeatmapTool","heatmap","create","container","_canvasBox","gradient","maxOpacity","minOpacity","createCanvas","canvasBox","document","createElement","style","top","right","domElement","parentElement","appendChild","_this$calDataMaxMin4","maxY","scale","createAttachmentMesh","_attachmentMesh","remove","_this$calDataMaxMin5","canvas","_heatmap","_renderer","texture","minFilter","magFilter","toDataURL","threshold","shaderMaterial","uniforms","granularity","uOpacity","uHeight","uRange","vertexShader","fragmentShader","transparent","side","depthTest","mesh","_this$newOrigin2","rotation","PI","set","renderOrder","add","setData","_this$_range$max","_this$_range","_this$_range$min","_this$_range2","_this$generateAsitePo","heatmapData","removeChild","filter","defaultMax","removeFromParent","_get","_getPrototypeOf","prototype","parent","_this$_attachmentMesh","material","dispose"],"sources":["../../../src/business/HeatMap/HeatMap.ts"],"sourcesContent":["import type { PerspectiveCamera } from '@anov/3d-core'\nimport { CanvasTexture, DoubleSide, Mesh, NearestFilter, Object3D, PlaneGeometry, ShaderMaterial, Vector2, use } from '@anov/3d-core'\nimport h from 'anov-heat-map'\nimport type { AnyProps } from 'supercluster'\nimport Supercluster from 'supercluster'\nimport { heightFragmentShader, heightVertexShader } from './shader'\nimport type { HeatMapData, HeatMapnterface } from './index'\n\ntype RangeType = {\n min: number\n max: number\n}\n\ntype HeatMapOptions = {\n colorMap?: {\n [key: number]: string\n }\n max?: number\n radius?: number\n height?: number\n isPixel?: boolean\n range?: RangeType\n}\n\nconst defaultGradient = { 0.25: 'rgb(0,0,255)', 0.55: 'rgb(0,255,0)', 0.85: 'yellow', 1.0: 'rgb(255,0,0)' }\n\n/**\n * 区域热力图\n */\n\nclass HeatMap extends Object3D implements HeatMapnterface {\n public data: HeatMapData[] = []\n\n private _height: number\n private _radius: number\n private _heatmap: any\n private _url: string\n private _colorMap: {\n [key: number]: string\n }\n\n private _isPixel: boolean\n private _canvasBox: HTMLDivElement | undefined\n private _attachmentMesh: Mesh | undefined\n private _supercluster: Supercluster\n private _range: RangeType | undefined\n\n private get defaultMax() {\n return Math.max(...this.data.map(item => item.value))\n }\n\n public get url() {\n return this._url\n }\n\n constructor(options: HeatMapOptions) {\n super()\n\n this._colorMap = options.colorMap || defaultGradient\n this._radius = options.radius ?? 40\n this._height = options.height ?? 70\n this._isPixel = options.isPixel ?? false\n this._range = options.range\n\n // this.initSupercluster()\n }\n\n private initSupercluster() {\n this._supercluster = new Supercluster({\n radius: 40,\n minZoom: 1,\n maxZoom: 16,\n })\n }\n\n /**\n * set supercluster data\n */\n private setSuperclusterData() {\n const featuresPoints = this.data.map((item) => {\n return {\n type: 'Feature',\n properties: {},\n geometry: {\n type: 'Point',\n coordinates: [item.x, item.z],\n },\n }\n })\n\n console.log('正在加载点数据到supercluster:', featuresPoints.length)\n this._supercluster.load(featuresPoints as Supercluster.PointFeature<AnyProps>[])\n }\n\n /**\n * get zoom level\n * @param camera\n * @returns\n */\n private getZoomLevel(camera: PerspectiveCamera) {\n const minZoom = 10\n const maxZoom = 16\n const minHeight = 10\n const maxHeight = 1000\n\n return Math.max(minZoom, Math.min(maxZoom,\n ((maxHeight - camera.position.y) / (maxHeight - minHeight)) * (maxZoom - minZoom) + minZoom,\n ))\n }\n\n /**\n * get supercluster data\n * @returns\n */\n private getSuperclusterData() {\n const { max } = this.calDataMaxMin()\n const zoom = this.getZoomLevel(use.useScene().camera)\n const clusters = this._supercluster.getClusters([-max, -max, max, max], zoom)\n\n console.log('当前缩放级别:', zoom, '输入点数量:', this.data.length, '聚类后点数量:', clusters.length)\n\n return clusters\n }\n\n /**\n * calculate data max and min\n * @returns\n */\n private calDataMaxMin() {\n const maxX = Math.max(...this.data.map(item => item.x))\n const minX = Math.min(...this.data.map(item => item.x))\n const maxZ = Math.max(...this.data.map(item => item.z))\n const minZ = Math.min(...this.data.map(item => item.z))\n\n const max = Math.max(Math.abs(Math.ceil(maxX)), Math.abs(Math.ceil(minX)), Math.abs(Math.ceil(maxZ)), Math.abs(Math.ceil(minZ)), 60)\n const maxRadius = Math.max(...this.data.map(item => item.radius ?? this._radius), this._radius)\n\n const width = max * 2\n const height = max * 2\n\n const realShowWidth = maxX - minX\n const realShowHeight = maxZ - minZ\n\n const realShowMax = Math.max(Math.ceil(realShowWidth), Math.ceil(realShowHeight), 60)\n\n return { width, height, max, minX, minZ, maxX, maxZ, realShowMax, realShowWidth, realShowHeight, maxRadius }\n }\n\n /**\n * generateAsitePoints\n * @param data\n */\n private generateAsitePoints(data: HeatMapData[]) {\n const maxX = Math.max(...data.map(item => item.x))\n const minX = Math.min(...data.map(item => item.x))\n const maxZ = Math.max(...data.map(item => item.z))\n const minZ = Math.min(...data.map(item => item.z))\n\n const maxRadius = 2 * Math.max(...data.map(item => item.radius ?? this._radius), this._radius)\n\n const boundaryPoints = [\n { x: minX - maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: minX - maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n ]\n\n return { boundaryPoints, maxRadius }\n }\n\n /**\n * generate new origin\n * @returns\n */\n private get newOrigin() {\n // need to consider one point and multiple points\n const { minX, minZ, maxX, maxZ } = this.calDataMaxMin()\n\n return {\n x: (maxX + minX) / 2,\n z: (maxZ + minZ) / 2,\n }\n }\n\n /**\n * coordinate 3D transformation\n * @param data\n * @returns\n */\n private coordinate3DTransformation(data: HeatMapData[]) {\n const { x, z } = this.newOrigin\n return data.map(item => ({\n ...item,\n x: item.x - x,\n z: item.z - z,\n radius: item.radius ?? this._radius,\n }))\n }\n\n /**\n * coordinate transformation, to canvas coordinate\n * @param data\n * @returns\n */\n private coordinateTransformation(data: HeatMapData[]) {\n const hanldeData = this.coordinate3DTransformation(data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const resolutionScale = this.calResolutionScale()\n\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width) * resolutionScale,\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height) * resolutionScale,\n value: item.value,\n radius: (item.radius ?? this._radius) * resolutionScale * 2,\n // @ts-ignore\n isBoundary: item?.isBoundary,\n }))\n\n // console.log('原始', data, realShowWidth, realShowHeight)\n // console.log('newOrigin', this.newOrigin)\n // console.log('hanldeData', hanldeData)\n // console.log('结果', result)\n // console.log('resolutionScale', resolutionScale, realShowWidth, realShowHeight, realShowWidth * resolutionScale, realShowHeight * resolutionScale)\n\n return result\n }\n\n /**\n * generate heatmap texture\n * @param canvasBox\n * @returns\n */\n private createHeatmapTool() {\n const heatmap = h.create({\n container: this._canvasBox,\n radius: this._radius,\n gradient: this._colorMap,\n maxOpacity: 1,\n minOpacity: 0,\n })\n\n return heatmap\n }\n\n /**\n * create heatmap container canvas\n * @returns\n */\n private createCanvas(width: number, height: number) {\n const canvasBox = document.createElement('div')\n\n canvasBox.style.width = `${width}px`\n canvasBox.style.height = `${height}px`\n canvasBox.style.top = '0'\n canvasBox.style.right = '0'\n\n use.useScene().domElement.parentElement.appendChild(canvasBox)\n\n return canvasBox\n }\n\n /**\n * calculate resolution scale\n * @param width\n * @returns\n */\n private calResolutionScale() {\n const hanldeData = this.coordinate3DTransformation(this.data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width),\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height),\n value: item.value,\n radius: item.radius * 2,\n }))\n\n const maxRadius = Math.max(...result.map(item => item.radius))\n const maxX = Math.max(...result.map(item => item.x))\n const maxY = Math.max(...result.map(item => item.y))\n const max = Math.max(maxX, maxY)\n\n if (max <= 1000) {\n const scale = (1000 - max) / 1000 * 15 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n if (max <= 5000) {\n const scale = (5000 - max) / 5000 * 5 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n return 1\n }\n\n /**\n * create attachment mesh\n */\n private createAttachmentMesh() {\n if (this._attachmentMesh)\n this.remove(this._attachmentMesh)\n\n const { realShowMax, max, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const canvas = this._heatmap._renderer.canvas\n const texture = new CanvasTexture(canvas)\n\n texture.minFilter = NearestFilter\n texture.magFilter = NearestFilter\n\n this._url = canvas.toDataURL('image/png')\n\n const threshold = (0.3 / 1000 * realShowMax)\n const shaderMaterial = new ShaderMaterial({\n uniforms: {\n map: { value: texture },\n granularity: { value: realShowMax / 3 < 300 ? 300 : realShowMax / 3 },\n threshold: { value: threshold > 0.6 ? 0.6 : threshold < 0.25 ? 0.25 : threshold },\n uOpacity: { value: 2.0 },\n uHeight: { value: this._height },\n isPixel: { value: this._isPixel },\n uRange: { value: new Vector2(-max, max) },\n\n },\n vertexShader: heightVertexShader,\n fragmentShader: heightFragmentShader,\n transparent: true,\n side: DoubleSide,\n depthTest: false,\n })\n\n const mesh = new Mesh(new PlaneGeometry(realShowWidth, realShowHeight, 500, 500), shaderMaterial)\n const { x, z } = this.newOrigin\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(x, 0, z)\n mesh.renderOrder = 1000\n\n this._attachmentMesh = mesh\n this.add(mesh)\n }\n\n /**\n * set heatmap data\n * @param data\n */\n public setData(data: HeatMapData[]) {\n const { boundaryPoints } = this.generateAsitePoints(data)\n this.data = [...boundaryPoints, ...data]\n\n const heatmapData = this.coordinateTransformation(this.data)\n this._canvasBox && use.useScene().domElement.parentElement.removeChild(this._canvasBox)\n this._canvasBox = this.createCanvas(Math.max(...heatmapData.map(item => item.x)), Math.max(...heatmapData.map(item => item.y)))\n this._heatmap = this.createHeatmapTool()\n\n this._heatmap.setData({\n data: heatmapData.filter(item => !item.isBoundary),\n max: this._range?.max ?? this.defaultMax,\n min: this._range?.min ?? 0,\n })\n\n this.createAttachmentMesh()\n\n // 聚类暂时不实现\n // this.setSuperclusterData()\n // use.useScene().orbitControls.addEventListener('change', () => {\n // const clusters = this.getSuperclusterData()\n // console.log(clusters)\n // })\n }\n\n override removeFromParent(): this {\n super.removeFromParent()\n // todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系\n if (this.parent) {\n use.useScene().domElement.parentElement.removeChild(this._canvasBox)\n\n // @ts-ignore\n this._attachmentMesh?.material.dispose()\n }\n\n return this\n }\n}\n\nexport default HeatMap"],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ var injectBaseFinir = function injectBaseFinir(shader) {
|
|
|
23
23
|
shader.uniforms.rimPower = {
|
|
24
24
|
value: power
|
|
25
25
|
};
|
|
26
|
-
shader.fragmentShader = /* glsl */"\n uniform vec3 rimColor;\n uniform float rimPower;\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n ".concat(shader.fragmentShader.replace('#include <dithering_fragment>', "\n #include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal,
|
|
26
|
+
shader.fragmentShader = /* glsl */"\n uniform vec3 rimColor;\n uniform float rimPower;\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n varying vec3 vViewDirection;\n ".concat(shader.fragmentShader.replace('#include <dithering_fragment>', "\n #include <dithering_fragment>\n vec3 viewDir = normalize(vViewDirection);\n float dotNV = 1.0-saturate( dot( normal, viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor; \n ".concat(fragmentShader)), "\n ");
|
|
27
27
|
};
|
|
28
28
|
var modifyTheMaterial = function modifyTheMaterial(material, baseOption, shaderOption) {
|
|
29
29
|
var transparent = baseOption.transparent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","Color","MeshStandardMaterial","ShaderMaterial","frag","frag_pre","ver","ver_pre","fragFinal","verFinal","ground","SwitchType","finirColor","lowFinirColor","heightTransitionEffect","injectBaseFinir","shader","power","arguments","length","undefined","color","fragmentShader","uniforms","rimColor","value","rimPower","concat","replace","modifyTheMaterial","material","baseOption","shaderOption","transparent","depthTest","depthWrite","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","_baseOption$alphaTest","alphaTest","blending","vertexShader","preVertexShader","preFragmentShader","callback","onBeforeCompile","_objectSpread","needsUpdate","conversionRealFade","type","newMaterial","clone","progress","objSize","maxSize","center","isFadeIn","injectToFrameFade","object","traverse","child","isMesh","userData","originalMaterial","Frame","side","addOpacity","isFrameFadeIn","injectToRealFade","isRealFadeIn","injectToBaseWrite","Pure","isPureFadeIn","injectToFinirMaterial","Fresnel","isFresnelFadeIn","injectToGround","time","isApi","inject","isSweepAway","u_interval","u_slice_height","u_height","height","finirheightTransitionEffect","u_time","u_speed","finirlowEffect"],"sources":["../../../src/business/MaterialSwitch/inject.ts"],"sourcesContent":["import { AdditiveBlending, Color, MeshStandardMaterial, ShaderMaterial, use } from '@anov/3d-core'\nimport type { Material, Mesh, Object3D, Vector3 } from '@anov/3d-core'\nimport { frag, frag_pre, ver, ver_pre } from './shader/realFade'\nimport { frag as fragFinal, ver as verFinal } from './shader/finalFade'\nimport { ground } from './shader/ground'\nimport { SwitchType } from './MaterialSwitchSystem'\n\nconst finirColor = new Color('#2A78D9')\nconst lowFinirColor = new Color('#15407A') // 矮楼finir\n\nconst heightTransitionEffect = /* glsl */`\n float normalDotY = abs(dot(normal, vec3(0.0, 1.0, 0.0)));\n\n if (normalDotY < 0.8) {\n float interval = u_interval;\n float slice_height = u_slice_height;\n float y_pos = vWorldPosition.y + u_height;\n float section = floor(y_pos / interval);\n float section_start = section * interval;\n\n if (y_pos >= section_start && y_pos < section_start + slice_height) {\n float heightDelta = (y_pos - section_start) / slice_height; // 归一化高度 0-1\n vec4 sliceColor = vec4(0.0, 0.2, 0.5, 1.0);\n float mixFactor = smoothstep(0.0, 1.0, heightDelta);\n gl_FragColor = mix(sliceColor, gl_FragColor, mixFactor);\n }\n }\n `\n\nconst injectBaseFinir = (shader, power = 0.7, color = finirColor, fragmentShader = '') => {\n shader.uniforms.rimColor = { value: color }\n shader.uniforms.rimPower = { value: power }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor; \n ${fragmentShader}`,\n )}\n `\n}\n\ntype BaseOption = {\n transparent: boolean\n depthTest: boolean\n depthWrite: boolean\n polygonOffset: boolean\n polygonOffsetFactor: number\n polygonOffsetUnits: number\n alphaTest: number\n blending?: number\n}\n\ntype ShaderOption = {\n uniforms: Record<string, { value: any }>\n vertexShader: string\n fragmentShader: string\n preVertexShader: string\n preFragmentShader: string\n callback?: (shader: ShaderMaterial) => void\n}\n\nconst modifyTheMaterial = (material, baseOption: BaseOption, shaderOption: ShaderOption) => {\n const { transparent, depthTest, depthWrite, polygonOffset, polygonOffsetFactor, polygonOffsetUnits, alphaTest = 0.05, blending } = baseOption\n const { uniforms, vertexShader, fragmentShader, preVertexShader, preFragmentShader, callback } = shaderOption\n\n material.transparent = transparent\n material.depthTest = depthTest\n material.depthWrite = depthWrite\n material.polygonOffset = polygonOffset\n material.polygonOffsetFactor = polygonOffsetFactor\n material.polygonOffsetUnits = polygonOffsetUnits\n material.alphaTest = alphaTest\n blending && (material.blending = blending)\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n ...uniforms,\n }\n\n shader.vertexShader = preVertexShader + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', vertexShader,\n )\n shader.fragmentShader = preFragmentShader + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', fragmentShader,\n )\n\n callback && callback(shader)\n }\n\n material.needsUpdate = true\n}\n\nconst conversionRealFade = (material: Material, type: 'Fresnel' | 'Frame' | 'Pure', uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n center: uniforms.center,\n isFadeIn: uniforms[`is${type}FadeIn`],\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n return newMaterial\n}\n\n/**\n * inject to final fade\n * @param object\n * @param maxSize\n * @param uniforms\n */\nexport const injectToFrameFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFrameFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n child.material = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Frame, uniforms as any)\n child.material.side = 2\n child.material.transparent = true\n child.material.depthTest = true\n child.material.depthWrite = true\n child.material.blending = AdditiveBlending\n child.material.polygonOffset = true\n child.material.polygonOffsetFactor = 0\n child.material.polygonOffsetUnits = 0\n child.material.alphaTest = 0.35\n\n child.material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n center: uniforms.center,\n addOpacity: { value: 0.7 },\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFrameFadeIn,\n }\n shader.vertexShader = verFinal\n shader.fragmentShader = fragFinal\n }\n\n child.material.needsUpdate = true\n }\n })\n}\n\n/**\n * inject to real fade\n * @param object\n * @param uniforms\n */\nexport const injectToRealFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n (child as Mesh).userData.originalMaterial = child.material\n const newMaterial = child.material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isRealFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to base write\n * @param object\n * @param uniforms\n */\nexport const injectToBaseWrite = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isPureFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Pure, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#fff') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 2,\n polygonOffsetUnits: 2,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isPureFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.3, new Color('#fff'))\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to finir material\n * @param object\n * @param uniforms\n */\nexport const injectToFinirMaterial = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Fresnel, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#000') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader)\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\nexport const injectToGround = (\n object: Mesh,\n type: 'Real' | 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; time: { value: number }; isApi: { value: boolean } },\n) => {\n object.material = new ShaderMaterial({\n uniforms: {\n ...ground.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n time: uniforms.time,\n isApi: uniforms.isApi,\n },\n vertexShader: ground.vertexShader,\n fragmentShader: ground.fragmentShader,\n transparent: true,\n side: 2,\n depthTest: true,\n depthWrite: false,\n polygonOffset: true,\n polygonOffsetFactor: 5,\n polygonOffsetUnits: 5,\n alphaTest: 0.05,\n })\n\n object.material.needsUpdate = true\n}\n\nexport const inject = (\n material: Material,\n type: 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; height: { value: number } },\n isSweepAway = false,\n) => {\n material.transparent = true\n material.depthTest = true\n material.depthWrite = true\n material.alphaTest = 0.05\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n shader.fragmentShader = /* glsl */`\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n \n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + `${isSweepAway ? heightTransitionEffect : ''}`,\n )}\n `\n }\n\n material.needsUpdate = true\n\n return material\n}\n\nexport const finirheightTransitionEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 3\n newMaterial.polygonOffsetUnits = 3\n newMaterial.alphaTest = 0.05\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n injectBaseFinir(shader, 0.7, finirColor, heightTransitionEffect)\n }\n\n newMaterial.needsUpdate = true\n\n return newMaterial\n}\n\nexport const finirlowEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.7, lowFinirColor)\n },\n })\n\n return newMaterial\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Color","MeshStandardMaterial","ShaderMaterial","frag","frag_pre","ver","ver_pre","fragFinal","verFinal","ground","SwitchType","finirColor","lowFinirColor","heightTransitionEffect","injectBaseFinir","shader","power","arguments","length","undefined","color","fragmentShader","uniforms","rimColor","value","rimPower","concat","replace","modifyTheMaterial","material","baseOption","shaderOption","transparent","depthTest","depthWrite","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","_baseOption$alphaTest","alphaTest","blending","vertexShader","preVertexShader","preFragmentShader","callback","onBeforeCompile","_objectSpread","needsUpdate","conversionRealFade","type","newMaterial","clone","progress","objSize","maxSize","center","isFadeIn","injectToFrameFade","object","traverse","child","isMesh","userData","originalMaterial","Frame","side","addOpacity","isFrameFadeIn","injectToRealFade","isRealFadeIn","injectToBaseWrite","Pure","isPureFadeIn","injectToFinirMaterial","Fresnel","isFresnelFadeIn","injectToGround","time","isApi","inject","isSweepAway","u_interval","u_slice_height","u_height","height","finirheightTransitionEffect","u_time","u_speed","finirlowEffect"],"sources":["../../../src/business/MaterialSwitch/inject.ts"],"sourcesContent":["import { AdditiveBlending, Color, MeshStandardMaterial, ShaderMaterial, use } from '@anov/3d-core'\nimport type { Material, Mesh, Object3D, Vector3 } from '@anov/3d-core'\nimport { frag, frag_pre, ver, ver_pre } from './shader/realFade'\nimport { frag as fragFinal, ver as verFinal } from './shader/finalFade'\nimport { ground } from './shader/ground'\nimport { SwitchType } from './MaterialSwitchSystem'\n\nconst finirColor = new Color('#2A78D9')\nconst lowFinirColor = new Color('#15407A') // 矮楼finir\n\nconst heightTransitionEffect = /* glsl */`\n float normalDotY = abs(dot(normal, vec3(0.0, 1.0, 0.0)));\n\n if (normalDotY < 0.8) {\n float interval = u_interval;\n float slice_height = u_slice_height;\n float y_pos = vWorldPosition.y + u_height;\n float section = floor(y_pos / interval);\n float section_start = section * interval;\n\n if (y_pos >= section_start && y_pos < section_start + slice_height) {\n float heightDelta = (y_pos - section_start) / slice_height; // 归一化高度 0-1\n vec4 sliceColor = vec4(0.0, 0.2, 0.5, 1.0);\n float mixFactor = smoothstep(0.0, 1.0, heightDelta);\n gl_FragColor = mix(sliceColor, gl_FragColor, mixFactor);\n }\n }\n `\n\nconst injectBaseFinir = (shader, power = 0.7, color = finirColor, fragmentShader = '') => {\n shader.uniforms.rimColor = { value: color }\n shader.uniforms.rimPower = { value: power }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n varying vec3 vViewDirection;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n vec3 viewDir = normalize(vViewDirection);\n float dotNV = 1.0-saturate( dot( normal, viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor; \n ${fragmentShader}`,\n )}\n `\n}\n\ntype BaseOption = {\n transparent: boolean\n depthTest: boolean\n depthWrite: boolean\n polygonOffset: boolean\n polygonOffsetFactor: number\n polygonOffsetUnits: number\n alphaTest: number\n blending?: number\n}\n\ntype ShaderOption = {\n uniforms: Record<string, { value: any }>\n vertexShader: string\n fragmentShader: string\n preVertexShader: string\n preFragmentShader: string\n callback?: (shader: ShaderMaterial) => void\n}\n\nconst modifyTheMaterial = (material, baseOption: BaseOption, shaderOption: ShaderOption) => {\n const { transparent, depthTest, depthWrite, polygonOffset, polygonOffsetFactor, polygonOffsetUnits, alphaTest = 0.05, blending } = baseOption\n const { uniforms, vertexShader, fragmentShader, preVertexShader, preFragmentShader, callback } = shaderOption\n\n material.transparent = transparent\n material.depthTest = depthTest\n material.depthWrite = depthWrite\n material.polygonOffset = polygonOffset\n material.polygonOffsetFactor = polygonOffsetFactor\n material.polygonOffsetUnits = polygonOffsetUnits\n material.alphaTest = alphaTest\n blending && (material.blending = blending)\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n ...uniforms,\n }\n\n shader.vertexShader = preVertexShader + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', vertexShader,\n )\n shader.fragmentShader = preFragmentShader + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', fragmentShader,\n )\n\n callback && callback(shader)\n }\n\n material.needsUpdate = true\n}\n\nconst conversionRealFade = (material: Material, type: 'Fresnel' | 'Frame' | 'Pure', uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n center: uniforms.center,\n isFadeIn: uniforms[`is${type}FadeIn`],\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n return newMaterial\n}\n\n/**\n * inject to final fade\n * @param object\n * @param maxSize\n * @param uniforms\n */\nexport const injectToFrameFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFrameFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n child.material = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Frame, uniforms as any)\n child.material.side = 2\n child.material.transparent = true\n child.material.depthTest = true\n child.material.depthWrite = true\n child.material.blending = AdditiveBlending\n child.material.polygonOffset = true\n child.material.polygonOffsetFactor = 0\n child.material.polygonOffsetUnits = 0\n child.material.alphaTest = 0.35\n\n child.material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n center: uniforms.center,\n addOpacity: { value: 0.7 },\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFrameFadeIn,\n }\n shader.vertexShader = verFinal\n shader.fragmentShader = fragFinal\n }\n\n child.material.needsUpdate = true\n }\n })\n}\n\n/**\n * inject to real fade\n * @param object\n * @param uniforms\n */\nexport const injectToRealFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n (child as Mesh).userData.originalMaterial = child.material\n const newMaterial = child.material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isRealFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to base write\n * @param object\n * @param uniforms\n */\nexport const injectToBaseWrite = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isPureFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Pure, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#fff') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 2,\n polygonOffsetUnits: 2,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isPureFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.3, new Color('#fff'))\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to finir material\n * @param object\n * @param uniforms\n */\nexport const injectToFinirMaterial = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Fresnel, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#000') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader)\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\nexport const injectToGround = (\n object: Mesh,\n type: 'Real' | 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; time: { value: number }; isApi: { value: boolean } },\n) => {\n object.material = new ShaderMaterial({\n uniforms: {\n ...ground.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n time: uniforms.time,\n isApi: uniforms.isApi,\n },\n vertexShader: ground.vertexShader,\n fragmentShader: ground.fragmentShader,\n transparent: true,\n side: 2,\n depthTest: true,\n depthWrite: false,\n polygonOffset: true,\n polygonOffsetFactor: 5,\n polygonOffsetUnits: 5,\n alphaTest: 0.05,\n })\n\n object.material.needsUpdate = true\n}\n\nexport const inject = (\n material: Material,\n type: 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; height: { value: number } },\n isSweepAway = false,\n) => {\n material.transparent = true\n material.depthTest = true\n material.depthWrite = true\n material.alphaTest = 0.05\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n shader.fragmentShader = /* glsl */`\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n \n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + `${isSweepAway ? heightTransitionEffect : ''}`,\n )}\n `\n }\n\n material.needsUpdate = true\n\n return material\n}\n\nexport const finirheightTransitionEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 3\n newMaterial.polygonOffsetUnits = 3\n newMaterial.alphaTest = 0.05\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n injectBaseFinir(shader, 0.7, finirColor, heightTransitionEffect)\n }\n\n newMaterial.needsUpdate = true\n\n return newMaterial\n}\n\nexport const finirlowEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.7, lowFinirColor)\n },\n })\n\n return newMaterial\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const ver_pre = "\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\n";
|
|
2
|
-
export declare const ver = "\n#include <begin_vertex>\n\nvec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\nvWorldPosition = worldPosition1.xyz;\n";
|
|
1
|
+
export declare const ver_pre = "\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewDirection;\n";
|
|
2
|
+
export declare const ver = "\n#include <begin_vertex>\n\nvec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\nvWorldPosition = worldPosition1.xyz;\n // \u8BA1\u7B97\u89C6\u7EBF\u65B9\u5411\uFF08\u4ECE\u9876\u70B9\u6307\u5411\u76F8\u673A\uFF09\nvViewDirection = normalize(cameraPosition - worldPosition1.xyz);\n";
|
|
3
3
|
export declare const frag_pre = "\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nuniform float progress;\nuniform float objSize;\nuniform bool isFadeIn;\nuniform vec3 center;\n";
|
|
4
4
|
export declare const frag = "\n#include <map_fragment>\nvec3 myWorldPosition = vWorldPosition / objSize;\n\nif (progress == 0.0) {\n diffuseColor.w = 0.0;\n} else if (progress == 1.0) {\n \n} else{\nif (isFadeIn) {\n float circle1 = step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circle2 = step(distance(center / objSize, myWorldPosition), progress);\n\n diffuseColor.xyz += vec3(circle2 - circle1) * 3.;\n diffuseColor.w *= circle2;\n} else {\n float circle = step(distance(center / objSize, myWorldPosition), progress);\n diffuseColor.w *= step(circle, 0.);\n}\n}\n\n";
|
|
5
5
|
declare const RealFadeObjS: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export var ver_pre = /* glsl */"\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\n";
|
|
2
|
-
export var ver = /* glsl */"\n#include <begin_vertex>\n\nvec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\nvWorldPosition = worldPosition1.xyz;\n";
|
|
1
|
+
export var ver_pre = /* glsl */"\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewDirection;\n";
|
|
2
|
+
export var ver = /* glsl */"\n#include <begin_vertex>\n\nvec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\nvWorldPosition = worldPosition1.xyz;\n // \u8BA1\u7B97\u89C6\u7EBF\u65B9\u5411\uFF08\u4ECE\u9876\u70B9\u6307\u5411\u76F8\u673A\uFF09\nvViewDirection = normalize(cameraPosition - worldPosition1.xyz);\n";
|
|
3
3
|
export var frag_pre = /* glsl */"\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nuniform float progress;\nuniform float objSize;\nuniform bool isFadeIn;\nuniform vec3 center;\n";
|
|
4
4
|
export var frag = /* glsl */"\n#include <map_fragment>\nvec3 myWorldPosition = vWorldPosition / objSize;\n\nif (progress == 0.0) {\n diffuseColor.w = 0.0;\n} else if (progress == 1.0) {\n \n} else{\nif (isFadeIn) {\n float circle1 = step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circle2 = step(distance(center / objSize, myWorldPosition), progress);\n\n diffuseColor.xyz += vec3(circle2 - circle1) * 3.;\n diffuseColor.w *= circle2;\n} else {\n float circle = step(distance(center / objSize, myWorldPosition), progress);\n diffuseColor.w *= step(circle, 0.);\n}\n}\n\n";
|
|
5
5
|
var RealFadeObjS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ver_pre","ver","frag_pre","frag","RealFadeObjS"],"sources":["../../../../src/business/MaterialSwitch/shader/realFade.ts"],"sourcesContent":["export const ver_pre = /* glsl */ `\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\n`\n\nexport const ver = /* glsl */ `\n#include <begin_vertex>\n\nvec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\nvWorldPosition = worldPosition1.xyz;\n`\n\nexport const frag_pre = /* glsl */ `\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nuniform float progress;\nuniform float objSize;\nuniform bool isFadeIn;\nuniform vec3 center;\n`\n\nexport const frag = /* glsl */ `\n#include <map_fragment>\nvec3 myWorldPosition = vWorldPosition / objSize;\n\nif (progress == 0.0) {\n diffuseColor.w = 0.0;\n} else if (progress == 1.0) {\n \n} else{\nif (isFadeIn) {\n float circle1 = step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circle2 = step(distance(center / objSize, myWorldPosition), progress);\n\n diffuseColor.xyz += vec3(circle2 - circle1) * 3.;\n diffuseColor.w *= circle2;\n} else {\n float circle = step(distance(center / objSize, myWorldPosition), progress);\n diffuseColor.w *= step(circle, 0.);\n}\n}\n\n`\n\nconst RealFadeObjS = { ver_pre, ver, frag_pre, frag }\n\nexport default RealFadeObjS"],"mappings":"AAAA,OAAO,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"names":["ver_pre","ver","frag_pre","frag","RealFadeObjS"],"sources":["../../../../src/business/MaterialSwitch/shader/realFade.ts"],"sourcesContent":["export const ver_pre = /* glsl */ `\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewDirection;\n`\n\nexport const ver = /* glsl */ `\n#include <begin_vertex>\n\nvec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\nvWorldPosition = worldPosition1.xyz;\n // 计算视线方向(从顶点指向相机)\nvViewDirection = normalize(cameraPosition - worldPosition1.xyz);\n`\n\nexport const frag_pre = /* glsl */ `\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nuniform float progress;\nuniform float objSize;\nuniform bool isFadeIn;\nuniform vec3 center;\n`\n\nexport const frag = /* glsl */ `\n#include <map_fragment>\nvec3 myWorldPosition = vWorldPosition / objSize;\n\nif (progress == 0.0) {\n diffuseColor.w = 0.0;\n} else if (progress == 1.0) {\n \n} else{\nif (isFadeIn) {\n float circle1 = step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circle2 = step(distance(center / objSize, myWorldPosition), progress);\n\n diffuseColor.xyz += vec3(circle2 - circle1) * 3.;\n diffuseColor.w *= circle2;\n} else {\n float circle = step(distance(center / objSize, myWorldPosition), progress);\n diffuseColor.w *= step(circle, 0.);\n}\n}\n\n`\n\nconst RealFadeObjS = { ver_pre, ver, frag_pre, frag }\n\nexport default RealFadeObjS"],"mappings":"AAAA,OAAO,IAAMA,OAAO,GAAG,mGAItB;AAED,OAAO,IAAMC,GAAG,GAAG,8SAOlB;AAED,OAAO,IAAMC,QAAQ,GAAG,oKAOvB;AAED,OAAO,IAAMC,IAAI,GAAG,6lBAqBnB;AAED,IAAMC,YAAY,GAAG;EAAEJ,OAAO,EAAPA,OAAO;EAAEC,GAAG,EAAHA,GAAG;EAAEC,QAAQ,EAARA,QAAQ;EAAEC,IAAI,EAAJA;AAAK,CAAC;AAErD,eAAeC,YAAY"}
|
|
@@ -20,7 +20,7 @@ export default class TitleMesh extends ObjectLayer {
|
|
|
20
20
|
private _debouncedUpdate;
|
|
21
21
|
constructor(option: TextOption);
|
|
22
22
|
get ready(): Promise<boolean>;
|
|
23
|
-
get mesh():
|
|
23
|
+
get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
|
|
24
24
|
get value(): string;
|
|
25
25
|
set value(newValue: string);
|
|
26
26
|
get fontSize(): number;
|
|
@@ -21,7 +21,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
21
21
|
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 e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
22
22
|
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); } }
|
|
23
23
|
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); }); }; }
|
|
24
|
-
import { DoubleSide, Group, Mesh, MeshBasicMaterial, PlaneGeometry,
|
|
24
|
+
import { DoubleSide, Group, Mesh, MeshBasicMaterial, NearestFilter, PlaneGeometry, SRGBColorSpace, TextureLoader } from '@anov/3d-core';
|
|
25
25
|
import debounce from 'lodash/debounce';
|
|
26
26
|
import { createTextCanvas } from "../tools";
|
|
27
27
|
import ObjectLayer from "../../Base/ObjectLayer";
|
|
@@ -236,7 +236,7 @@ var TitleMesh = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
236
236
|
width: canvasW / 100,
|
|
237
237
|
height: canvasH / 100,
|
|
238
238
|
source: texture,
|
|
239
|
-
offset: [0, 0, 0],
|
|
239
|
+
offset: [0, 0, 0.001],
|
|
240
240
|
color: this._color
|
|
241
241
|
});
|
|
242
242
|
this.add(group);
|
|
@@ -280,16 +280,24 @@ var TitleMesh = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
280
280
|
color = _ref.color,
|
|
281
281
|
offset = _ref.offset;
|
|
282
282
|
var texture = typeof source == 'string' ? new TextureLoader().load(source) : source;
|
|
283
|
-
texture.
|
|
283
|
+
texture.colorSpace = SRGBColorSpace;
|
|
284
|
+
texture.magFilter = NearestFilter; // 或 LinearFilter
|
|
285
|
+
texture.minFilter = NearestFilter; // 避免mipmap混合
|
|
286
|
+
texture.generateMipmaps = false; // 禁用mipmap生成
|
|
287
|
+
|
|
284
288
|
var meshBasicMaterial = new MeshBasicMaterial({
|
|
285
289
|
map: texture,
|
|
286
290
|
transparent: true,
|
|
291
|
+
alphaTest: 0.5,
|
|
287
292
|
side: DoubleSide,
|
|
288
|
-
color: color
|
|
293
|
+
color: color,
|
|
294
|
+
depthWrite: true,
|
|
295
|
+
depthTest: true,
|
|
296
|
+
polygonOffset: true,
|
|
297
|
+
// 解决深度冲突
|
|
298
|
+
polygonOffsetFactor: -1,
|
|
299
|
+
polygonOffsetUnits: -1
|
|
289
300
|
});
|
|
290
|
-
// meshBasicMaterial.depthWrite = false
|
|
291
|
-
// meshBasicMaterial.depthTest = false
|
|
292
|
-
|
|
293
301
|
var mesh = new Mesh(new PlaneGeometry(width, height), meshBasicMaterial);
|
|
294
302
|
// mesh.renderOrder = 1000
|
|
295
303
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","DoubleSide","Group","Mesh","MeshBasicMaterial","PlaneGeometry","TextureLoader","sRGBEncoding","debounce","createTextCanvas","ObjectLayer","StrategyManage","border","_border","_callee","_callee$","_context","default","ellipse","_ellipse","_callee2","_callee2$","_context2","MIN_WIDTH","TitleMesh","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","_defineProperty","_assertThisInitialized","Set","fontSize","color","fontWeight","offset","bgUrl","uri","_value","_fontSize","_color","_fontWeight","_offset","_bgUrl","_uri","_debouncedUpdate","performUpdate","bind","_createClass","get","_readyPromise","_mesh","set","newValue","update","addReloadListener","callback","_listeners","add","removeReloadListener","delete","setupAnimation","destroy","cancel","clear","remove","removeFromParent","init","_createTextCanvas","canvasW","width","canvasH","height","texture","Math","max","_padding","group","initBackground","source","initText","cb","mesh","createPanel","_ref","load","encoding","meshBasicMaterial","map","transparent","side","position","fromArray","concat","_toConsumableArray"],"sources":["../../../../src/business/Poi/title/index.ts"],"sourcesContent":["import { DoubleSide, Group, Mesh, MeshBasicMaterial, MeshPhysicalMaterial, MeshStandardMaterial, PlaneGeometry, TextureLoader, sRGBEncoding } from '@anov/3d-core'\nimport debounce from 'lodash/debounce'\nimport type { TextOption } from '../types'\nimport { createTextCanvas } from '../tools'\nimport ObjectLayer from '../../Base/ObjectLayer'\n\nexport const StrategyManage = {\n border: async () => (await import('./Border')).default,\n ellipse: async () => (await import('./Ellipse')).default,\n}\n\nconst MIN_WIDTH = 1.2\nexport default class TitleMesh extends ObjectLayer {\n private _readyPromise: Promise<boolean>\n private _mesh: Group | Mesh\n private _listeners = new Set()\n\n _padding: [number, number]\n _bgUrl: string\n private _value: string\n private _fontSize: number\n private _color: string\n private _fontWeight: string\n private _offset: [number, number]\n private _uri: string\n private _debouncedUpdate: Function & { cancel: Function }\n\n constructor(option: TextOption) {\n super()\n const { value, fontSize, color, fontWeight, offset, bgUrl, uri } = option\n this._value = value\n this._fontSize = fontSize\n this._color = color\n this._fontWeight = fontWeight\n this._offset = offset\n if (bgUrl)\n this._bgUrl = bgUrl\n this._uri = uri\n this._debouncedUpdate = debounce(this.performUpdate.bind(this), 300)\n }\n\n public get ready() {\n return this._readyPromise\n }\n\n public get mesh() {\n return this._mesh\n }\n\n public get value(): string {\n return this._value\n }\n\n public set value(newValue: string) {\n if (this._value === newValue)\n return\n this._value = newValue\n this.update()\n }\n\n public get fontSize(): number {\n return this._fontSize\n }\n\n public set fontSize(newValue: number) {\n if (this._fontSize === newValue)\n return\n this._fontSize = newValue\n this.update()\n }\n\n public get color(): string {\n return this._color\n }\n\n public set color(newValue: string) {\n if (this._color === newValue)\n return\n this._color = newValue\n this.update()\n }\n\n public get fontWeight(): string {\n return this._fontWeight\n }\n\n public set fontWeight(newValue: string) {\n if (this._fontWeight === newValue)\n return\n this._fontWeight = newValue\n this.update()\n }\n\n public get offset(): [number, number] {\n return this._offset\n }\n\n public set offset(newValue: [number, number]) {\n this._offset = newValue\n this.update()\n }\n\n public get bgUrl(): string {\n return this._bgUrl\n }\n\n public set bgUrl(newValue: string) {\n if (this._bgUrl === newValue)\n return\n this._bgUrl = newValue\n this.update()\n }\n\n public get uri(): string {\n return this._uri\n }\n\n public set uri(newValue: string) {\n if (this._uri === newValue)\n return\n this._uri = newValue\n this.update()\n }\n\n // 注册监听\n public addReloadListener(callback) {\n this._listeners.add(callback)\n }\n\n // 移除监听\n public removeReloadListener(callback) {\n this._listeners.delete(callback)\n }\n\n public setupAnimation() {}\n\n // 销毁\n public destroy() {\n this._debouncedUpdate.cancel()\n this._listeners.clear()\n this._mesh.remove()\n this._mesh.removeFromParent()\n }\n\n init() {\n const { width: canvasW, height: canvasH, texture } = createTextCanvas({\n fontSize: this._fontSize,\n color: this._color,\n fontWeight: this._fontWeight,\n value: this._value,\n })\n // 转化为场景中的尺寸,并增加左右上下边距\n const width = Math.max(canvasW / 100 + this._padding[1] * 2, MIN_WIDTH)\n const height = canvasH / 100 + this._padding[0] * 2\n\n const group = new Group()\n this.initBackground(group, { width, height, source: this._bgUrl, offset: [0, 0, 0] })\n this.initText(group, { width: canvasW / 100, height: canvasH / 100, source: texture, offset: [0, 0, 0], color: this._color })\n this.add(group)\n this._mesh = group\n }\n\n // Update method with debounce\n private update(): void {\n this._debouncedUpdate()\n }\n\n private performUpdate(): void {\n this._mesh.remove()\n this._mesh.removeFromParent()\n this.init()\n this._listeners.forEach((cb: Function) => {\n cb()\n })\n }\n\n private initBackground(group: Group, option) {\n const mesh = this.createPanel(option)\n group.add(mesh)\n }\n\n private initText(group: Group, option) {\n const mesh = this.createPanel(option)\n group.add(mesh)\n }\n\n private createPanel({ width, height, source, color, offset }) {\n const texture = (typeof source == 'string') ? new TextureLoader().load(source) : source\n texture.encoding = sRGBEncoding\n\n const meshBasicMaterial = new MeshBasicMaterial({ map: texture, transparent: true, side: DoubleSide, color })\n // meshBasicMaterial.depthWrite = false\n // meshBasicMaterial.depthTest = false\n\n const mesh = new Mesh(\n new PlaneGeometry(width, height),\n meshBasicMaterial,\n )\n // mesh.renderOrder = 1000\n\n // this._scale && mesh.scale.fromArray(scale)\n offset && mesh.position.fromArray([...offset, 0])\n return mesh\n }\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","DoubleSide","Group","Mesh","MeshBasicMaterial","NearestFilter","PlaneGeometry","SRGBColorSpace","TextureLoader","debounce","createTextCanvas","ObjectLayer","StrategyManage","border","_border","_callee","_callee$","_context","default","ellipse","_ellipse","_callee2","_callee2$","_context2","MIN_WIDTH","TitleMesh","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","_defineProperty","_assertThisInitialized","Set","fontSize","color","fontWeight","offset","bgUrl","uri","_value","_fontSize","_color","_fontWeight","_offset","_bgUrl","_uri","_debouncedUpdate","performUpdate","bind","_createClass","get","_readyPromise","_mesh","set","newValue","update","addReloadListener","callback","_listeners","add","removeReloadListener","delete","setupAnimation","destroy","cancel","clear","remove","removeFromParent","init","_createTextCanvas","canvasW","width","canvasH","height","texture","Math","max","_padding","group","initBackground","source","initText","cb","mesh","createPanel","_ref","load","colorSpace","magFilter","minFilter","generateMipmaps","meshBasicMaterial","map","transparent","alphaTest","side","depthWrite","depthTest","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","position","fromArray","concat","_toConsumableArray"],"sources":["../../../../src/business/Poi/title/index.ts"],"sourcesContent":["import { DoubleSide, Group, Mesh, MeshBasicMaterial, NearestFilter, PlaneGeometry, SRGBColorSpace, TextureLoader } from '@anov/3d-core'\nimport debounce from 'lodash/debounce'\nimport type { TextOption } from '../types'\nimport { createTextCanvas } from '../tools'\nimport ObjectLayer from '../../Base/ObjectLayer'\n\nexport const StrategyManage = {\n border: async () => (await import('./Border')).default,\n ellipse: async () => (await import('./Ellipse')).default,\n}\n\nconst MIN_WIDTH = 1.2\nexport default class TitleMesh extends ObjectLayer {\n private _readyPromise: Promise<boolean>\n private _mesh: Group | Mesh\n private _listeners = new Set()\n\n _padding: [number, number]\n _bgUrl: string\n private _value: string\n private _fontSize: number\n private _color: string\n private _fontWeight: string\n private _offset: [number, number]\n private _uri: string\n private _debouncedUpdate: Function & { cancel: Function }\n\n constructor(option: TextOption) {\n super()\n const { value, fontSize, color, fontWeight, offset, bgUrl, uri } = option\n this._value = value\n this._fontSize = fontSize\n this._color = color\n this._fontWeight = fontWeight\n this._offset = offset\n if (bgUrl)\n this._bgUrl = bgUrl\n this._uri = uri\n this._debouncedUpdate = debounce(this.performUpdate.bind(this), 300)\n }\n\n public get ready() {\n return this._readyPromise\n }\n\n public get mesh() {\n return this._mesh\n }\n\n public get value(): string {\n return this._value\n }\n\n public set value(newValue: string) {\n if (this._value === newValue)\n return\n this._value = newValue\n this.update()\n }\n\n public get fontSize(): number {\n return this._fontSize\n }\n\n public set fontSize(newValue: number) {\n if (this._fontSize === newValue)\n return\n this._fontSize = newValue\n this.update()\n }\n\n public get color(): string {\n return this._color\n }\n\n public set color(newValue: string) {\n if (this._color === newValue)\n return\n this._color = newValue\n this.update()\n }\n\n public get fontWeight(): string {\n return this._fontWeight\n }\n\n public set fontWeight(newValue: string) {\n if (this._fontWeight === newValue)\n return\n this._fontWeight = newValue\n this.update()\n }\n\n public get offset(): [number, number] {\n return this._offset\n }\n\n public set offset(newValue: [number, number]) {\n this._offset = newValue\n this.update()\n }\n\n public get bgUrl(): string {\n return this._bgUrl\n }\n\n public set bgUrl(newValue: string) {\n if (this._bgUrl === newValue)\n return\n this._bgUrl = newValue\n this.update()\n }\n\n public get uri(): string {\n return this._uri\n }\n\n public set uri(newValue: string) {\n if (this._uri === newValue)\n return\n this._uri = newValue\n this.update()\n }\n\n // 注册监听\n public addReloadListener(callback) {\n this._listeners.add(callback)\n }\n\n // 移除监听\n public removeReloadListener(callback) {\n this._listeners.delete(callback)\n }\n\n public setupAnimation() {}\n\n // 销毁\n public destroy() {\n this._debouncedUpdate.cancel()\n this._listeners.clear()\n this._mesh.remove()\n this._mesh.removeFromParent()\n }\n\n init() {\n const { width: canvasW, height: canvasH, texture } = createTextCanvas({\n fontSize: this._fontSize,\n color: this._color,\n fontWeight: this._fontWeight,\n value: this._value,\n })\n // 转化为场景中的尺寸,并增加左右上下边距\n const width = Math.max(canvasW / 100 + this._padding[1] * 2, MIN_WIDTH)\n const height = canvasH / 100 + this._padding[0] * 2\n\n const group = new Group()\n this.initBackground(group, { width, height, source: this._bgUrl, offset: [0, 0, 0] })\n this.initText(group, { width: canvasW / 100, height: canvasH / 100, source: texture, offset: [0, 0, 0.001], color: this._color })\n this.add(group)\n this._mesh = group\n }\n\n // Update method with debounce\n private update(): void {\n this._debouncedUpdate()\n }\n\n private performUpdate(): void {\n this._mesh.remove()\n this._mesh.removeFromParent()\n this.init()\n this._listeners.forEach((cb: Function) => {\n cb()\n })\n }\n\n private initBackground(group: Group, option) {\n const mesh = this.createPanel(option)\n group.add(mesh)\n }\n\n private initText(group: Group, option) {\n const mesh = this.createPanel(option)\n group.add(mesh)\n }\n\n private createPanel({ width, height, source, color, offset }) {\n const texture = (typeof source == 'string') ? new TextureLoader().load(source) : source\n texture.colorSpace = SRGBColorSpace\n texture.magFilter = NearestFilter // 或 LinearFilter\n texture.minFilter = NearestFilter // 避免mipmap混合\n texture.generateMipmaps = false // 禁用mipmap生成\n\n const meshBasicMaterial = new MeshBasicMaterial({\n map: texture,\n transparent: true,\n alphaTest: 0.5,\n side: DoubleSide,\n color,\n depthWrite: true,\n depthTest: true,\n polygonOffset: true, // 解决深度冲突\n polygonOffsetFactor: -1,\n polygonOffsetUnits: -1,\n })\n\n const mesh = new Mesh(\n new PlaneGeometry(width, height),\n meshBasicMaterial,\n )\n // mesh.renderOrder = 1000\n\n // this._scale && mesh.scale.fromArray(scale)\n offset && mesh.position.fromArray([...offset, 0])\n return mesh\n }\n}"],"mappings":"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"}
|
|
@@ -324,7 +324,8 @@ export var RealismTraffic = (_class = /*#__PURE__*/function (_BaseTraffic) {
|
|
|
324
324
|
}, {
|
|
325
325
|
key: "removeFromParent",
|
|
326
326
|
value: function removeFromParent() {
|
|
327
|
-
|
|
327
|
+
// todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系
|
|
328
|
+
this.parent && this._control.forEach(function (control) {
|
|
328
329
|
control.remove();
|
|
329
330
|
});
|
|
330
331
|
return _get(_getPrototypeOf(RealismTraffic.prototype), "removeFromParent", this).call(this);
|