Vue3+Cesium流动管线效果核心源码免费分享(第60篇)
let geometry = new PolylineVolumeGeometry({polylinePositions: positions,vertexFormat: VertexFormat.POSITION_NORMAL_AND_ST,shapePositions: computeCirclePositions(100.0),cornerType: CornerType.MITERED,})
pipelinePrimitive = viewer?.scene.primitives.add(new Primitive({geometryInstances: new GeometryInstance({geometry: geometry,}),appearance: new MaterialAppearance({material: new Material({fabric: {uniforms: {color: Color.fromCssColorString('#22ffff'),percentage: 0.085,offset: 0.0,},source: `uniform vec4 color;uniform float percentage;uniform float offset;czm_material czm_getMaterial(czm_materialInput materialInput){czm_material material = czm_getDefaultMaterial(materialInput);vec2 st = materialInput.st;material.diffuse = color.rgb;material.alpha = 1.0-mod((1.0-st.s)+offset,percentage)*(1.0/percentage);return material;}`,},})}),}))
preUpdate),持续更新材质中的纹理偏移量(offset),使贴图沿管线方向循环移动,从而模拟水流、电流等介质的定向流动动画。偏移量每次递增0.001,达到1.0后归零循环,数值大小直接控制流速快慢viewer?.scene.preUpdate.addEventListener(function () {var offset = pipelinePrimitive?.appearance.material.uniforms.offsetoffset += 0.001if (offset > 1.0) {offset = 0.0}pipelinePrimitive!.appearance.material.uniforms.offset = offset;})

夜雨聆风