@anov/3d-ability 0.0.103 → 0.0.105

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.
@@ -1,2 +1,2 @@
1
1
  export declare const heightVertexShader = "\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uHeight;\n uniform sampler2D map;\n\n void main() {\n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = worldPosition.xyz;\n float h = texture2D(map, vUv).a * uHeight;\n // gl_Position = projectionMatrix * viewMatrix * vec4(worldPosition.x, worldPosition.y, h, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position.x, position.y, position.z, 1.0);\n }\n";
2
- export declare const heightFragmentShader = "\n uniform sampler2D map;\n uniform float granularity;\n uniform float threshold;\n uniform vec2 uRange;\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uOpacity;\n uniform bool isPixel;\n\n \nvec4 createPixelGraphEffect(sampler2D map, vec2 vUv, float granularity, float threshold, vec2 range, vec3 worldPos) {\n vec2 pixelSize = vec2(1.0) / granularity;\n vec2 cell = floor(vUv / pixelSize);\n vec2 cellUv = fract(vUv / pixelSize);\n\n vec4 texColor = texture2D(map, (cell + 0.5) * pixelSize);\n\n vec2 pointCenter = vec2(0.5, 0.5);\n vec2 rotatedUv = cellUv - pointCenter;\n vec2 rotated = vec2(\n (rotatedUv.x - rotatedUv.y) * 0.7071067811865476,\n (rotatedUv.x + rotatedUv.y) * 0.7071067811865476\n );\n\n float dist = abs(rotated.x) + abs(rotated.y);\n\n float intensity = (texColor.r + texColor.g + texColor.b) / 3.0;\n float pointSize = 0.3 * smoothstep(0.0, threshold, intensity);\n\n if (dist > pointSize || intensity < 0.05) {\n discard;\n }\n\n return texColor;\n}\n\n\n void main() {\n vec4 texColor = isPixel ? \n createPixelGraphEffect(map, vUv, granularity, threshold, uRange, vWorldPosition) : \n texture2D(map, vUv);\n \n float a = texColor.a * uOpacity;\n gl_FragColor = texColor;\n gl_FragColor.a = min(a, 1.0); \n\n if(vWorldPosition.x < uRange.x || vWorldPosition.x > uRange.y || \n vWorldPosition.z < uRange.x || vWorldPosition.z > uRange.y) {\n discard;\n }\n }\n";
2
+ export declare const heightFragmentShader = "\n uniform sampler2D map;\n uniform float granularity;\n uniform float threshold;\n uniform vec2 uRange;\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uOpacity;\n uniform bool isPixel;\n\n \nvec4 createPixelGraphEffect(sampler2D map, vec2 vUv, float granularity, float threshold, vec2 range, vec3 worldPos) {\n vec2 pixelSize = vec2(1.0) / granularity;\n vec2 cell = floor(vUv / pixelSize);\n vec2 cellUv = fract(vUv / pixelSize);\n\n vec4 texColor = texture2D(map, (cell + 0.5) * pixelSize);\n\n vec2 pointCenter = vec2(0.5, 0.5);\n vec2 rotatedUv = cellUv - pointCenter;\n vec2 rotated = vec2(\n (rotatedUv.x - rotatedUv.y) * 0.7071067811865476,\n (rotatedUv.x + rotatedUv.y) * 0.7071067811865476\n );\n\n float dist = abs(rotated.x) + abs(rotated.y);\n\n float intensity = (texColor.r + texColor.g + texColor.b) / 3.0;\n float pointSize = 0.3 * smoothstep(0.0, threshold, intensity);\n\n if (dist > pointSize || intensity < 0.05) {\n discard;\n }\n\n return texColor;\n}\n\n\n void main() {\n vec4 texColor = isPixel ? \n createPixelGraphEffect(map, vUv, granularity, threshold, uRange, vWorldPosition) : \n texture2D(map, vUv);\n \n float a = texColor.a * uOpacity;\n gl_FragColor = texColor;\n gl_FragColor.a = min(a, 1.0); \n\n // if(vWorldPosition.x < uRange.x || vWorldPosition.x > uRange.y || \n // vWorldPosition.z < uRange.x || vWorldPosition.z > uRange.y) {\n // discard;\n // }\n }\n";
@@ -1,4 +1,4 @@
1
1
  export var heightVertexShader = /* glsl */"\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uHeight;\n uniform sampler2D map;\n\n void main() {\n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = worldPosition.xyz;\n float h = texture2D(map, vUv).a * uHeight;\n // gl_Position = projectionMatrix * viewMatrix * vec4(worldPosition.x, worldPosition.y, h, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position.x, position.y, position.z, 1.0);\n }\n";
2
2
  var pixelGraphFunc = /* glsl */"\nvec4 createPixelGraphEffect(sampler2D map, vec2 vUv, float granularity, float threshold, vec2 range, vec3 worldPos) {\n vec2 pixelSize = vec2(1.0) / granularity;\n vec2 cell = floor(vUv / pixelSize);\n vec2 cellUv = fract(vUv / pixelSize);\n\n vec4 texColor = texture2D(map, (cell + 0.5) * pixelSize);\n\n vec2 pointCenter = vec2(0.5, 0.5);\n vec2 rotatedUv = cellUv - pointCenter;\n vec2 rotated = vec2(\n (rotatedUv.x - rotatedUv.y) * 0.7071067811865476,\n (rotatedUv.x + rotatedUv.y) * 0.7071067811865476\n );\n\n float dist = abs(rotated.x) + abs(rotated.y);\n\n float intensity = (texColor.r + texColor.g + texColor.b) / 3.0;\n float pointSize = 0.3 * smoothstep(0.0, threshold, intensity);\n\n if (dist > pointSize || intensity < 0.05) {\n discard;\n }\n\n return texColor;\n}\n";
3
- export var heightFragmentShader = /* glsl */"\n uniform sampler2D map;\n uniform float granularity;\n uniform float threshold;\n uniform vec2 uRange;\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uOpacity;\n uniform bool isPixel;\n\n ".concat(pixelGraphFunc, "\n\n void main() {\n vec4 texColor = isPixel ? \n createPixelGraphEffect(map, vUv, granularity, threshold, uRange, vWorldPosition) : \n texture2D(map, vUv);\n \n float a = texColor.a * uOpacity;\n gl_FragColor = texColor;\n gl_FragColor.a = min(a, 1.0); \n\n if(vWorldPosition.x < uRange.x || vWorldPosition.x > uRange.y || \n vWorldPosition.z < uRange.x || vWorldPosition.z > uRange.y) {\n discard;\n }\n }\n");
3
+ export var heightFragmentShader = /* glsl */"\n uniform sampler2D map;\n uniform float granularity;\n uniform float threshold;\n uniform vec2 uRange;\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uOpacity;\n uniform bool isPixel;\n\n ".concat(pixelGraphFunc, "\n\n void main() {\n vec4 texColor = isPixel ? \n createPixelGraphEffect(map, vUv, granularity, threshold, uRange, vWorldPosition) : \n texture2D(map, vUv);\n \n float a = texColor.a * uOpacity;\n gl_FragColor = texColor;\n gl_FragColor.a = min(a, 1.0); \n\n // if(vWorldPosition.x < uRange.x || vWorldPosition.x > uRange.y || \n // vWorldPosition.z < uRange.x || vWorldPosition.z > uRange.y) {\n // discard;\n // }\n }\n");
4
4
  //# sourceMappingURL=shader.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["heightVertexShader","pixelGraphFunc","heightFragmentShader","concat"],"sources":["../../../src/business/HeatMap/shader.ts"],"sourcesContent":["export const heightVertexShader = /* glsl */ `\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uHeight;\n uniform sampler2D map;\n\n void main() {\n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = worldPosition.xyz;\n float h = texture2D(map, vUv).a * uHeight;\n // gl_Position = projectionMatrix * viewMatrix * vec4(worldPosition.x, worldPosition.y, h, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position.x, position.y, position.z, 1.0);\n }\n`\n\nconst pixelGraphFunc = /* glsl */ `\nvec4 createPixelGraphEffect(sampler2D map, vec2 vUv, float granularity, float threshold, vec2 range, vec3 worldPos) {\n vec2 pixelSize = vec2(1.0) / granularity;\n vec2 cell = floor(vUv / pixelSize);\n vec2 cellUv = fract(vUv / pixelSize);\n\n vec4 texColor = texture2D(map, (cell + 0.5) * pixelSize);\n\n vec2 pointCenter = vec2(0.5, 0.5);\n vec2 rotatedUv = cellUv - pointCenter;\n vec2 rotated = vec2(\n (rotatedUv.x - rotatedUv.y) * 0.7071067811865476,\n (rotatedUv.x + rotatedUv.y) * 0.7071067811865476\n );\n\n float dist = abs(rotated.x) + abs(rotated.y);\n\n float intensity = (texColor.r + texColor.g + texColor.b) / 3.0;\n float pointSize = 0.3 * smoothstep(0.0, threshold, intensity);\n\n if (dist > pointSize || intensity < 0.05) {\n discard;\n }\n\n return texColor;\n}\n`\n\nexport const heightFragmentShader = /* glsl */ `\n uniform sampler2D map;\n uniform float granularity;\n uniform float threshold;\n uniform vec2 uRange;\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uOpacity;\n uniform bool isPixel;\n\n ${pixelGraphFunc}\n\n void main() {\n vec4 texColor = isPixel ? \n createPixelGraphEffect(map, vUv, granularity, threshold, uRange, vWorldPosition) : \n texture2D(map, vUv);\n \n float a = texColor.a * uOpacity;\n gl_FragColor = texColor;\n gl_FragColor.a = min(a, 1.0); \n\n if(vWorldPosition.x < uRange.x || vWorldPosition.x > uRange.y || \n vWorldPosition.z < uRange.x || vWorldPosition.z > uRange.y) {\n discard;\n }\n }\n`\n"],"mappings":"AAAA,OAAO,IAAMA,kBAAkB,GAAG,kgBAcjC;AAED,IAAMC,cAAc,GAAG,u1BA0BtB;AAED,OAAO,IAAMC,oBAAoB,GAAG,wOAAAC,MAAA,CAUhCF,cAAc,weAgBjB"}
1
+ {"version":3,"names":["heightVertexShader","pixelGraphFunc","heightFragmentShader","concat"],"sources":["../../../src/business/HeatMap/shader.ts"],"sourcesContent":["export const heightVertexShader = /* glsl */ `\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uHeight;\n uniform sampler2D map;\n\n void main() {\n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = worldPosition.xyz;\n float h = texture2D(map, vUv).a * uHeight;\n // gl_Position = projectionMatrix * viewMatrix * vec4(worldPosition.x, worldPosition.y, h, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position.x, position.y, position.z, 1.0);\n }\n`\n\nconst pixelGraphFunc = /* glsl */ `\nvec4 createPixelGraphEffect(sampler2D map, vec2 vUv, float granularity, float threshold, vec2 range, vec3 worldPos) {\n vec2 pixelSize = vec2(1.0) / granularity;\n vec2 cell = floor(vUv / pixelSize);\n vec2 cellUv = fract(vUv / pixelSize);\n\n vec4 texColor = texture2D(map, (cell + 0.5) * pixelSize);\n\n vec2 pointCenter = vec2(0.5, 0.5);\n vec2 rotatedUv = cellUv - pointCenter;\n vec2 rotated = vec2(\n (rotatedUv.x - rotatedUv.y) * 0.7071067811865476,\n (rotatedUv.x + rotatedUv.y) * 0.7071067811865476\n );\n\n float dist = abs(rotated.x) + abs(rotated.y);\n\n float intensity = (texColor.r + texColor.g + texColor.b) / 3.0;\n float pointSize = 0.3 * smoothstep(0.0, threshold, intensity);\n\n if (dist > pointSize || intensity < 0.05) {\n discard;\n }\n\n return texColor;\n}\n`\n\nexport const heightFragmentShader = /* glsl */ `\n uniform sampler2D map;\n uniform float granularity;\n uniform float threshold;\n uniform vec2 uRange;\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float uOpacity;\n uniform bool isPixel;\n\n ${pixelGraphFunc}\n\n void main() {\n vec4 texColor = isPixel ? \n createPixelGraphEffect(map, vUv, granularity, threshold, uRange, vWorldPosition) : \n texture2D(map, vUv);\n \n float a = texColor.a * uOpacity;\n gl_FragColor = texColor;\n gl_FragColor.a = min(a, 1.0); \n\n // if(vWorldPosition.x < uRange.x || vWorldPosition.x > uRange.y || \n // vWorldPosition.z < uRange.x || vWorldPosition.z > uRange.y) {\n // discard;\n // }\n }\n`\n"],"mappings":"AAAA,OAAO,IAAMA,kBAAkB,GAAG,kgBAcjC;AAED,IAAMC,cAAc,GAAG,u1BA0BtB;AAED,OAAO,IAAMC,oBAAoB,GAAG,wOAAAC,MAAA,CAUhCF,cAAc,ofAgBjB"}
@@ -133,7 +133,7 @@ var Mark = /*#__PURE__*/function (_ObjectLayer) {
133
133
 
134
134
  // 气泡
135
135
  _context.next = 7;
136
- return BubbleStrategy.doubleCircle();
136
+ return BubbleStrategy.dynamicCircle();
137
137
  case 7:
138
138
  BubbleClass = _context.sent;
139
139
  this._bubbleMesh = new BubbleClass(_objectSpread({
@@ -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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","obj","_toPrimitive","String","toPrimitive","Number","Box3","Color","Group","LoaderModule","MeshBasicMaterial","ShaderMaterial","utils","_","StrategyManage","BubbleStrategy","ObjectLayer","SOURCE_BASE_PATH","ELevel","EMarkAnimationType","KeyframeAnimation","TanhaoShader","DEFAULT_OPTION","uri","level","animation","Rotate","Bounce","duration","enable","bubble","visible","radius","color","COLORS","MODEL_URI","concat","load","Mark","_ObjectLayer","_super","option","_this","param","mergeWith","cloneDeep","arrayMergeCustomizer","_param$level","Low","_uri","_animation","_level","Math","max","min","_bubble","getColor","_readyPromise","init","get","set","setMeshLevel","_init","_callee","_this2","group","BubbleClass","_callee$","_context","loadModel","_markMesh","add","doubleCircle","_bubbleMesh","_mesh","setModelPosition","_animationController","createProxy","_this$getBoxSize","getBoxSize","height","position","setY","_utils$storeManagemen","loadGLTF","url","autoBackward","isCache","draco","dracoPath","storeManagement","onLoad","gltf","scene","onError","vertexShader","fragmentShader","panelMaterial","uniforms","transparent","side","depthTest","depthWrite","borderMaterial","traverse","object","mesh","material","_update","_callee2","delta","_this$_animationContr","_callee2$","_context2","ready","update","_x","_play","_callee3","_callee3$","_context3","play","_x2","_stop","_callee4","_callee4$","_context4","_x3","_Box3$setFromObject","setFromObject","width","x","dispose","destroy"],"sources":["../../../src/business/Mark/index.ts"],"sourcesContent":["import type { Material, Mesh } from '@anov/3d-core'\nimport { Box3, Color, Group, LoaderModule, MeshBasicMaterial, ShaderMaterial, utils } from '@anov/3d-core'\nimport _ from 'lodash'\nimport { StrategyManage as BubbleStrategy } from '../Poi/particle/index'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type DoubleCircleMesh from '../Poi/particle/DoubleCircle'\nimport { SOURCE_BASE_PATH } from '../Utils/constant'\nimport type { Option } from './type'\nimport { ELevel } from './type'\nimport type { AnimationOption } from './KeyframeAnimation'\nimport { EMarkAnimationType, KeyframeAnimation } from './KeyframeAnimation'\nimport TanhaoShader from './shader/tanhao'\n\nconst DEFAULT_OPTION = {\n uri: '', // 统一资源标识符,既可以是code也是可以资源路径\n level: 0,\n animation: {\n type: [EMarkAnimationType.Rotate, EMarkAnimationType.Bounce], // 动画类型:\"pulse\"(脉冲)、\"flash\"(闪烁)、\"bounce\"(弹跳),默认\"pulse\"\n duration: 1,\n enable: true,\n },\n bubble: {\n uri: '',\n visible: true,\n radius: 0.5,\n color: '',\n },\n}\n\nconst COLORS = ['#538FFF', '#FFA753', '#FF6353']\nconst MODEL_URI = `${SOURCE_BASE_PATH}/models/mark.glb`\nconst load = new LoaderModule()\n\nclass Mark extends ObjectLayer {\n private _uri: string\n private _level: ELevel\n private _animation: Option['animation']\n private _bubble: Option['bubble']\n\n private _readyPromise: Promise<boolean>\n private _mesh: Group\n private _markMesh: Group\n private _bubbleMesh: DoubleCircleMesh\n // 动画相关参数\n private _animationController: KeyframeAnimation\n\n public get ready() {\n return this._readyPromise\n }\n\n public get uri(): string {\n return this._uri\n }\n\n public set uri(value: string) {\n this._uri = value\n }\n\n public get animation(): AnimationOption {\n return this._animation\n }\n\n public get level(): ELevel {\n return this._level\n }\n\n public set level(value: ELevel) {\n if (this._level === value)\n return\n this._level = Math.max(0, Math.min(value, 3))\n this.setMeshLevel()\n this.bubble.color = this.getColor()\n }\n\n public get bubble(): Option['bubble'] {\n return this._bubble\n }\n\n public set bubble(value: Option['bubble']) {\n this._bubble = value\n }\n\n constructor(option: Option) {\n super()\n\n const param = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option, this.arrayMergeCustomizer)\n const { uri, animation, level = ELevel.Low, bubble } = param\n this._uri = uri\n this._animation = animation\n this._level = Math.max(0, Math.min(level, 3))\n this._bubble = bubble\n if (!bubble.color)\n this._bubble.color = this.getColor()\n\n this._readyPromise = this.init()\n }\n\n // 动画设置\n private async init() {\n const group = new Group()\n this._markMesh = await this.loadModel(MODEL_URI) as Group\n group.add(this._markMesh)\n\n // 气泡\n const BubbleClass = await BubbleStrategy.doubleCircle()\n this._bubbleMesh = new BubbleClass({ radius: 0.5, ...this.bubble })\n group.add(this._bubbleMesh)\n\n this._mesh = group\n this.add(this._mesh)\n\n this.setMeshLevel()\n this.setModelPosition()\n\n this._animationController = new KeyframeAnimation(this._markMesh, this._animation)\n\n this._bubble = this.createProxy(this._bubble, this._bubbleMesh)\n this._animation = this.createProxy(this._animation, null, (key, value) => {\n this._animationController[key] = value\n })\n return true\n }\n\n private setModelPosition() {\n if (this.bubble.visible !== false) {\n const { height } = this.getBoxSize(this._markMesh)\n this._markMesh.position.setY(height * 0.5)\n }\n else { this._markMesh.position.setY(0) }\n }\n\n private loadModel(uri: string) {\n return new Promise((resolve, reject) => {\n load.loadGLTF({\n url: uri,\n autoBackward: false,\n isCache: true,\n draco: true,\n dracoPath: utils.storeManagement.get('decoderPath') ?? './draco/',\n onLoad: (gltf) => {\n resolve(gltf.scene)\n },\n onError: () => {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(null)\n },\n })\n })\n }\n\n private setMeshLevel() {\n const { vertexShader, fragmentShader } = TanhaoShader\n const panelMaterial = new ShaderMaterial({\n uniforms: {\n color: { value: new Color(this.getColor()) },\n },\n vertexShader,\n fragmentShader,\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: true,\n depthWrite: false,\n\n })\n const borderMaterial = new MeshBasicMaterial({ color: this.getColor() })\n\n this._markMesh.traverse((object) => {\n if (object.type === 'Mesh') {\n const mesh = object as Mesh\n if (mesh.name === 'Mesh') // TODO:等确定命名规范\n mesh.material = borderMaterial\n if (mesh.name === 'Mesh_1')\n mesh.material = panelMaterial\n // // 处理材质数组\n // if (Array.isArray(mesh.material)) {\n // // 如果是多材质对象\n // (mesh.material as Material[]).forEach((material) => {\n // (material as MeshBasicMaterial).color.set(this.getColor())\n // })\n // }\n // else {\n // // 单一材质\n // (mesh.material as MeshBasicMaterial).color.set(this.getColor())\n // }\n }\n })\n }\n\n private getColor() {\n return COLORS[this.level]\n }\n\n // 更新动画混合器\n public async update(delta: number) {\n await this.ready\n this._animationController?.update(delta)\n }\n\n // 播放动画\n public async play(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.play(type)\n }\n\n // 播放动画\n public async stop(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.stop(type)\n }\n\n private getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n // 销毁资源\n public dispose() {\n if (this._animationController) {\n this._animationController.destroy()\n this._animationController = null\n }\n }\n}\n\nexport { Mark, EMarkAnimationType }\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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","obj","_toPrimitive","String","toPrimitive","Number","Box3","Color","Group","LoaderModule","MeshBasicMaterial","ShaderMaterial","utils","_","StrategyManage","BubbleStrategy","ObjectLayer","SOURCE_BASE_PATH","ELevel","EMarkAnimationType","KeyframeAnimation","TanhaoShader","DEFAULT_OPTION","uri","level","animation","Rotate","Bounce","duration","enable","bubble","visible","radius","color","COLORS","MODEL_URI","concat","load","Mark","_ObjectLayer","_super","option","_this","param","mergeWith","cloneDeep","arrayMergeCustomizer","_param$level","Low","_uri","_animation","_level","Math","max","min","_bubble","getColor","_readyPromise","init","get","set","setMeshLevel","_init","_callee","_this2","group","BubbleClass","_callee$","_context","loadModel","_markMesh","add","dynamicCircle","_bubbleMesh","_mesh","setModelPosition","_animationController","createProxy","_this$getBoxSize","getBoxSize","height","position","setY","_utils$storeManagemen","loadGLTF","url","autoBackward","isCache","draco","dracoPath","storeManagement","onLoad","gltf","scene","onError","vertexShader","fragmentShader","panelMaterial","uniforms","transparent","side","depthTest","depthWrite","borderMaterial","traverse","object","mesh","material","_update","_callee2","delta","_this$_animationContr","_callee2$","_context2","ready","update","_x","_play","_callee3","_callee3$","_context3","play","_x2","_stop","_callee4","_callee4$","_context4","_x3","_Box3$setFromObject","setFromObject","width","x","dispose","destroy"],"sources":["../../../src/business/Mark/index.ts"],"sourcesContent":["import type { Material, Mesh } from '@anov/3d-core'\nimport { Box3, Color, Group, LoaderModule, MeshBasicMaterial, ShaderMaterial, utils } from '@anov/3d-core'\nimport _ from 'lodash'\nimport { StrategyManage as BubbleStrategy } from '../Poi/particle/index'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type DynamicCircle from '../Poi/particle/DynamicCircle'\nimport { SOURCE_BASE_PATH } from '../Utils/constant'\nimport type { Option } from './type'\nimport { ELevel } from './type'\nimport type { AnimationOption } from './KeyframeAnimation'\nimport { EMarkAnimationType, KeyframeAnimation } from './KeyframeAnimation'\nimport TanhaoShader from './shader/tanhao'\n\nconst DEFAULT_OPTION = {\n uri: '', // 统一资源标识符,既可以是code也是可以资源路径\n level: 0,\n animation: {\n type: [EMarkAnimationType.Rotate, EMarkAnimationType.Bounce], // 动画类型:\"pulse\"(脉冲)、\"flash\"(闪烁)、\"bounce\"(弹跳),默认\"pulse\"\n duration: 1,\n enable: true,\n },\n bubble: {\n uri: '',\n visible: true,\n radius: 0.5,\n color: '',\n },\n}\n\nconst COLORS = ['#538FFF', '#FFA753', '#FF6353']\nconst MODEL_URI = `${SOURCE_BASE_PATH}/models/mark.glb`\nconst load = new LoaderModule()\n\nclass Mark extends ObjectLayer {\n private _uri: string\n private _level: ELevel\n private _animation: Option['animation']\n private _bubble: Option['bubble']\n\n private _readyPromise: Promise<boolean>\n private _mesh: Group\n private _markMesh: Group\n private _bubbleMesh: DynamicCircle\n // 动画相关参数\n private _animationController: KeyframeAnimation\n\n public get ready() {\n return this._readyPromise\n }\n\n public get uri(): string {\n return this._uri\n }\n\n public set uri(value: string) {\n this._uri = value\n }\n\n public get animation(): AnimationOption {\n return this._animation\n }\n\n public get level(): ELevel {\n return this._level\n }\n\n public set level(value: ELevel) {\n if (this._level === value)\n return\n this._level = Math.max(0, Math.min(value, 3))\n this.setMeshLevel()\n this.bubble.color = this.getColor()\n }\n\n public get bubble(): Option['bubble'] {\n return this._bubble\n }\n\n public set bubble(value: Option['bubble']) {\n this._bubble = value\n }\n\n constructor(option: Option) {\n super()\n\n const param = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option, this.arrayMergeCustomizer)\n const { uri, animation, level = ELevel.Low, bubble } = param\n this._uri = uri\n this._animation = animation\n this._level = Math.max(0, Math.min(level, 3))\n this._bubble = bubble\n if (!bubble.color)\n this._bubble.color = this.getColor()\n\n this._readyPromise = this.init()\n }\n\n // 动画设置\n private async init() {\n const group = new Group()\n this._markMesh = await this.loadModel(MODEL_URI) as Group\n group.add(this._markMesh)\n\n // 气泡\n const BubbleClass = await BubbleStrategy.dynamicCircle()\n this._bubbleMesh = new BubbleClass({ radius: 0.5, ...this.bubble })\n group.add(this._bubbleMesh)\n\n this._mesh = group\n this.add(this._mesh)\n\n this.setMeshLevel()\n this.setModelPosition()\n\n this._animationController = new KeyframeAnimation(this._markMesh, this._animation)\n\n this._bubble = this.createProxy(this._bubble, this._bubbleMesh)\n this._animation = this.createProxy(this._animation, null, (key, value) => {\n this._animationController[key] = value\n })\n return true\n }\n\n private setModelPosition() {\n if (this.bubble.visible !== false) {\n const { height } = this.getBoxSize(this._markMesh)\n this._markMesh.position.setY(height * 0.5)\n }\n else { this._markMesh.position.setY(0) }\n }\n\n private loadModel(uri: string) {\n return new Promise((resolve, reject) => {\n load.loadGLTF({\n url: uri,\n autoBackward: false,\n isCache: true,\n draco: true,\n dracoPath: utils.storeManagement.get('decoderPath') ?? './draco/',\n onLoad: (gltf) => {\n resolve(gltf.scene)\n },\n onError: () => {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(null)\n },\n })\n })\n }\n\n private setMeshLevel() {\n const { vertexShader, fragmentShader } = TanhaoShader\n const panelMaterial = new ShaderMaterial({\n uniforms: {\n color: { value: new Color(this.getColor()) },\n },\n vertexShader,\n fragmentShader,\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: true,\n depthWrite: false,\n\n })\n const borderMaterial = new MeshBasicMaterial({ color: this.getColor() })\n\n this._markMesh.traverse((object) => {\n if (object.type === 'Mesh') {\n const mesh = object as Mesh\n if (mesh.name === 'Mesh') // TODO:等确定命名规范\n mesh.material = borderMaterial\n if (mesh.name === 'Mesh_1')\n mesh.material = panelMaterial\n // // 处理材质数组\n // if (Array.isArray(mesh.material)) {\n // // 如果是多材质对象\n // (mesh.material as Material[]).forEach((material) => {\n // (material as MeshBasicMaterial).color.set(this.getColor())\n // })\n // }\n // else {\n // // 单一材质\n // (mesh.material as MeshBasicMaterial).color.set(this.getColor())\n // }\n }\n })\n }\n\n private getColor() {\n return COLORS[this.level]\n }\n\n // 更新动画混合器\n public async update(delta: number) {\n await this.ready\n this._animationController?.update(delta)\n }\n\n // 播放动画\n public async play(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.play(type)\n }\n\n // 播放动画\n public async stop(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.stop(type)\n }\n\n private getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n // 销毁资源\n public dispose() {\n if (this._animationController) {\n this._animationController.destroy()\n this._animationController = null\n }\n }\n}\n\nexport { Mark, EMarkAnimationType }\n"],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { Color, RepeatWrapping, ShaderChunk, TextureLoader, Vector4 } from '@anov/3d-core';
2
+ import { demo03, demo04, main } from "./groundBase64";
2
3
  var TEXTURE_BASE_PATH = './';
3
4
  var TEXTURE_REPEAT_COUNT = 5000;
4
5
  var MASK_TEXTURE_REPEAT = 10;
5
6
  var DEFAULT_GROUND_COLOR = '#096ddb';
6
7
  var DEFAULT_MASK_COLOR = '#ffffff';
7
8
  var textureLoader = new TextureLoader();
8
- var groundBaseTexture = textureLoader.load("".concat(TEXTURE_BASE_PATH, "demo03.jpg"));
9
- var groundMaskTexture = textureLoader.load("".concat(TEXTURE_BASE_PATH, "demo04.jpg"));
10
- var groundPlaneTexture = textureLoader.load("".concat(TEXTURE_BASE_PATH, "test04.jpg"));
9
+ var groundBaseTexture = textureLoader.load(demo03);
10
+ var groundMaskTexture = textureLoader.load(demo04);
11
+ var groundPlaneTexture = textureLoader.load(main);
11
12
  var configureTexture = function configureTexture(texture, repeatX, repeatY) {
12
13
  texture.wrapS = RepeatWrapping;
13
14
  texture.wrapT = RepeatWrapping;
@@ -59,7 +60,7 @@ export var uniforms = {
59
60
  var vertexShader = /* glsl */"\n ".concat(ShaderChunk.logdepthbuf_pars_vertex, "\n \n bool isPerspectiveMatrix(mat4) {\n return true;\n }\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition.xyz;\n ").concat(ShaderChunk.logdepthbuf_vertex, "\n }\n");
60
61
 
61
62
  // Fragment shader
62
- var fragmentShader = /* glsl */"\n ".concat(ShaderChunk.logdepthbuf_pars_fragment, " \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n uniform float time;\n uniform float progress;\n uniform float objSize;\n uniform bool isFadeIn;\n uniform vec4 center;\n uniform bool isApi;\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vec4 highlightColor = vec4(0.0, 0.6, 1.0, 1.0);\n vec3 baseColor = vec3(0.2);\n vec4 outputColor = vec4(baseColor, 1.0);\n \n // todo \u540E\u671F\u9700\u8981\u6839\u636E\u5927\u5C0F\u81EA\u52A8\u8C03\u6574\n vec2 mainTextureUV = vUv * 30.0;\n vec4 baseTexture = texture2D(_Texture, mainTextureUV);\n vec4 planeTexture = texture2D(_TexturePlane, mainTextureUV);\n \n vec2 maskScale = vec2(_MaskUV) * 3.0;\n vec2 maskUV = vUv * maskScale;\n vec2 animatedMaskUV = vec2(time, time) + maskUV;\n \n outputColor.rgb = (\n (planeTexture * 0.1) +\n (_Color * baseTexture.r * _ColorS) +\n (highlightColor * (baseTexture.r * texture2D(_TextureMask, animatedMaskUV).r) * _ColorMaskS * 10.0)\n ).rgb;\n\n if (isApi) {\n outputColor.rgb = mix(vec3(0.0), outputColor.rgb, 0.1);\n }\n \n outputColor.a = 1.0;\n\n vec3 myWorldPosition = vPosition / objSize;\n if (isFadeIn) {\n float circle1 = step(distance(center.xyz / objSize, myWorldPosition), progress - 0.02);\n float circle2 = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.rgb += vec3(circle2 - circle1) * 3.;\n outputColor.a = outputColor.a * circle2;\n } else {\n float circle = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.a *= step(circle, 0.);\n }\n \n gl_FragColor = outputColor;\n ").concat(ShaderChunk.logdepthbuf_fragment, "\n }\n");
63
+ var fragmentShader = /* glsl */"\n ".concat(ShaderChunk.logdepthbuf_pars_fragment, " \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n uniform float time;\n uniform float progress;\n uniform float objSize;\n uniform bool isFadeIn;\n uniform vec4 center;\n uniform bool isApi;\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vec4 highlightColor = vec4(0.0, 0.6, 1.0, 1.0);\n vec3 baseColor = vec3(0.2);\n vec4 outputColor = vec4(baseColor, 1.0);\n \n // todo \u540E\u671F\u9700\u8981\u6839\u636E\u5927\u5C0F\u81EA\u52A8\u8C03\u6574\n // vec2 mainTextureUV = vUv * 20.0;\n vec4 baseTexture = texture2D(_Texture, vUv * 25.0);\n vec4 planeTexture = texture2D(_TexturePlane, vUv * 15.0);\n \n vec2 maskScale = vec2(_MaskUV) * 20.0;\n vec2 maskUV = vUv * maskScale;\n vec2 animatedMaskUV = vec2(time, time) + maskUV;\n \n outputColor.rgb = (\n (planeTexture * 0.09) +\n (_Color * baseTexture.r * _ColorS) +\n (highlightColor * (baseTexture.r * texture2D(_TextureMask, animatedMaskUV).r) * _ColorMaskS * 10.0)\n ).rgb;\n\n if (isApi) {\n outputColor.rgb = mix(vec3(0.0), outputColor.rgb, 0.1);\n }\n \n outputColor.a = 1.0;\n\n vec3 myWorldPosition = vPosition / objSize;\n if (isFadeIn) {\n float circle1 = step(distance(center.xyz / objSize, myWorldPosition), progress - 0.02);\n float circle2 = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.rgb += vec3(circle2 - circle1) * 3.;\n outputColor.a = outputColor.a * circle2;\n } else {\n float circle = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.a *= step(circle, 0.);\n }\n \n gl_FragColor = outputColor;\n ").concat(ShaderChunk.logdepthbuf_fragment, "\n }\n");
63
64
  export var ground = {
64
65
  vertexShader: vertexShader,
65
66
  fragmentShader: fragmentShader,
@@ -1 +1 @@
1
- {"version":3,"names":["Color","RepeatWrapping","ShaderChunk","TextureLoader","Vector4","TEXTURE_BASE_PATH","TEXTURE_REPEAT_COUNT","MASK_TEXTURE_REPEAT","DEFAULT_GROUND_COLOR","DEFAULT_MASK_COLOR","textureLoader","groundBaseTexture","load","concat","groundMaskTexture","groundPlaneTexture","configureTexture","texture","repeatX","repeatY","wrapS","wrapT","repeat","set","uniforms","_Texture","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","time","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","ground"],"sources":["../../../../src/business/MaterialSwitch/shader/ground.ts"],"sourcesContent":["import type { Mesh, ShaderMaterial } from '@anov/3d-core'\nimport { Color, LoaderModule, RepeatWrapping, ShaderChunk, TextureLoader, Vector4, utils } from '@anov/3d-core'\n\nconst TEXTURE_BASE_PATH = './'\nconst TEXTURE_REPEAT_COUNT = 5000\nconst MASK_TEXTURE_REPEAT = 10\nconst DEFAULT_GROUND_COLOR = '#096ddb'\nconst DEFAULT_MASK_COLOR = '#ffffff'\n\nconst textureLoader = new TextureLoader()\n\nconst groundBaseTexture = textureLoader.load(`${TEXTURE_BASE_PATH}demo03.jpg`)\nconst groundMaskTexture = textureLoader.load(`${TEXTURE_BASE_PATH}demo04.jpg`)\nconst groundPlaneTexture = textureLoader.load(`${TEXTURE_BASE_PATH}test04.jpg`)\n\nconst configureTexture = (texture: THREE.Texture, repeatX: number, repeatY: number) => {\n texture.wrapS = RepeatWrapping\n texture.wrapT = RepeatWrapping\n texture.repeat.set(repeatX, repeatY)\n}\n\nconfigureTexture(groundBaseTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT)\nconfigureTexture(groundMaskTexture, MASK_TEXTURE_REPEAT, MASK_TEXTURE_REPEAT)\nconfigureTexture(groundPlaneTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT)\n\nexport const uniforms = {\n _Texture: { value: groundBaseTexture },\n _Texture_ST: { value: new Vector4() },\n _Color: {\n value: new Vector4(\n new Color(DEFAULT_GROUND_COLOR).r,\n new Color(DEFAULT_GROUND_COLOR).g,\n new Color(DEFAULT_GROUND_COLOR).b,\n 0.5,\n ),\n },\n _ColorS: { value: 1 },\n _TextureMask: { value: groundMaskTexture },\n _TexturePlane: { value: groundPlaneTexture },\n _MaskUV: { value: 1 },\n _ColorMask: {\n value: new Vector4(\n new Color(DEFAULT_MASK_COLOR).r,\n new Color(DEFAULT_MASK_COLOR).g,\n new Color(DEFAULT_MASK_COLOR).b,\n 1,\n ),\n },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n time: { value: 1.0 },\n}\n\n// Vertex shader\nconst vertexShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_vertex}\n \n bool isPerspectiveMatrix(mat4) {\n return true;\n }\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n uniform float time;\n uniform float progress;\n uniform float objSize;\n uniform bool isFadeIn;\n uniform vec4 center;\n uniform bool isApi;\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vec4 highlightColor = vec4(0.0, 0.6, 1.0, 1.0);\n vec3 baseColor = vec3(0.2);\n vec4 outputColor = vec4(baseColor, 1.0);\n \n // todo 后期需要根据大小自动调整\n vec2 mainTextureUV = vUv * 30.0;\n vec4 baseTexture = texture2D(_Texture, mainTextureUV);\n vec4 planeTexture = texture2D(_TexturePlane, mainTextureUV);\n \n vec2 maskScale = vec2(_MaskUV) * 3.0;\n vec2 maskUV = vUv * maskScale;\n vec2 animatedMaskUV = vec2(time, time) + maskUV;\n \n outputColor.rgb = (\n (planeTexture * 0.1) +\n (_Color * baseTexture.r * _ColorS) +\n (highlightColor * (baseTexture.r * texture2D(_TextureMask, animatedMaskUV).r) * _ColorMaskS * 10.0)\n ).rgb;\n\n if (isApi) {\n outputColor.rgb = mix(vec3(0.0), outputColor.rgb, 0.1);\n }\n \n outputColor.a = 1.0;\n\n vec3 myWorldPosition = vPosition / objSize;\n if (isFadeIn) {\n float circle1 = step(distance(center.xyz / objSize, myWorldPosition), progress - 0.02);\n float circle2 = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.rgb += vec3(circle2 - circle1) * 3.;\n outputColor.a = outputColor.a * circle2;\n } else {\n float circle = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.a *= step(circle, 0.);\n }\n \n gl_FragColor = outputColor;\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const ground = { vertexShader, fragmentShader, uniforms }"],"mappings":"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"}
1
+ {"version":3,"names":["Color","RepeatWrapping","ShaderChunk","TextureLoader","Vector4","demo03","demo04","main","TEXTURE_BASE_PATH","TEXTURE_REPEAT_COUNT","MASK_TEXTURE_REPEAT","DEFAULT_GROUND_COLOR","DEFAULT_MASK_COLOR","textureLoader","groundBaseTexture","load","groundMaskTexture","groundPlaneTexture","configureTexture","texture","repeatX","repeatY","wrapS","wrapT","repeat","set","uniforms","_Texture","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","time","vertexShader","concat","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","ground"],"sources":["../../../../src/business/MaterialSwitch/shader/ground.ts"],"sourcesContent":["import type { Mesh, ShaderMaterial } from '@anov/3d-core'\nimport { Color, LoaderModule, RepeatWrapping, ShaderChunk, TextureLoader, Vector4, utils } from '@anov/3d-core'\nimport { demo03, demo04, main } from './groundBase64'\n\nconst TEXTURE_BASE_PATH = './'\nconst TEXTURE_REPEAT_COUNT = 5000\nconst MASK_TEXTURE_REPEAT = 10\nconst DEFAULT_GROUND_COLOR = '#096ddb'\nconst DEFAULT_MASK_COLOR = '#ffffff'\n\nconst textureLoader = new TextureLoader()\n\nconst groundBaseTexture = textureLoader.load(demo03)\nconst groundMaskTexture = textureLoader.load(demo04)\nconst groundPlaneTexture = textureLoader.load(main)\n\nconst configureTexture = (texture: THREE.Texture, repeatX: number, repeatY: number) => {\n texture.wrapS = RepeatWrapping\n texture.wrapT = RepeatWrapping\n texture.repeat.set(repeatX, repeatY)\n}\n\nconfigureTexture(groundBaseTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT)\nconfigureTexture(groundMaskTexture, MASK_TEXTURE_REPEAT, MASK_TEXTURE_REPEAT)\nconfigureTexture(groundPlaneTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT)\n\nexport const uniforms = {\n _Texture: { value: groundBaseTexture },\n _Texture_ST: { value: new Vector4() },\n _Color: {\n value: new Vector4(\n new Color(DEFAULT_GROUND_COLOR).r,\n new Color(DEFAULT_GROUND_COLOR).g,\n new Color(DEFAULT_GROUND_COLOR).b,\n 0.5,\n ),\n },\n _ColorS: { value: 1 },\n _TextureMask: { value: groundMaskTexture },\n _TexturePlane: { value: groundPlaneTexture },\n _MaskUV: { value: 1 },\n _ColorMask: {\n value: new Vector4(\n new Color(DEFAULT_MASK_COLOR).r,\n new Color(DEFAULT_MASK_COLOR).g,\n new Color(DEFAULT_MASK_COLOR).b,\n 1,\n ),\n },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n time: { value: 1.0 },\n}\n\n// Vertex shader\nconst vertexShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_vertex}\n \n bool isPerspectiveMatrix(mat4) {\n return true;\n }\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n uniform float time;\n uniform float progress;\n uniform float objSize;\n uniform bool isFadeIn;\n uniform vec4 center;\n uniform bool isApi;\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vec4 highlightColor = vec4(0.0, 0.6, 1.0, 1.0);\n vec3 baseColor = vec3(0.2);\n vec4 outputColor = vec4(baseColor, 1.0);\n \n // todo 后期需要根据大小自动调整\n // vec2 mainTextureUV = vUv * 20.0;\n vec4 baseTexture = texture2D(_Texture, vUv * 25.0);\n vec4 planeTexture = texture2D(_TexturePlane, vUv * 15.0);\n \n vec2 maskScale = vec2(_MaskUV) * 20.0;\n vec2 maskUV = vUv * maskScale;\n vec2 animatedMaskUV = vec2(time, time) + maskUV;\n \n outputColor.rgb = (\n (planeTexture * 0.09) +\n (_Color * baseTexture.r * _ColorS) +\n (highlightColor * (baseTexture.r * texture2D(_TextureMask, animatedMaskUV).r) * _ColorMaskS * 10.0)\n ).rgb;\n\n if (isApi) {\n outputColor.rgb = mix(vec3(0.0), outputColor.rgb, 0.1);\n }\n \n outputColor.a = 1.0;\n\n vec3 myWorldPosition = vPosition / objSize;\n if (isFadeIn) {\n float circle1 = step(distance(center.xyz / objSize, myWorldPosition), progress - 0.02);\n float circle2 = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.rgb += vec3(circle2 - circle1) * 3.;\n outputColor.a = outputColor.a * circle2;\n } else {\n float circle = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.a *= step(circle, 0.);\n }\n \n gl_FragColor = outputColor;\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const ground = { vertexShader, fragmentShader, uniforms }"],"mappings":"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"}