当前位置: 首页 > wzjs >正文

佛山中小企业网站建设seo外链优化方法

佛山中小企业网站建设,seo外链优化方法,blog启示录——wordpress博客建设与经营(配光盘),wordpress剑侠情缘主题在Cesium中渲染圆锥体时,无论采用顶点着色器、Canvas动态贴图还是静态图片贴图,其渐变色均需满足以下条件: 圆形结构:渐变范围限定在圆锥底面的圆形区域内。径向扩散:颜色从圆心向外逐步变化(如红→黄→蓝…

     在Cesium中渲染圆锥体时,无论采用顶点着色器Canvas动态贴图还是静态图片贴图,其渐变色均需满足以下条件:

  1. 圆形结构:渐变范围限定在圆锥底面的圆形区域内。
  2. 径向扩散:颜色从圆心向外逐步变化(如红→黄→蓝)。
  3. 一致性:三种方案均基于“圆形中心→边缘”的渐变逻辑。

方案一:顶点着色器动态计算(实时性最高)

特点:通过GLSL代码直接计算圆心到边缘的距离,实现纯圆形渐变

// 创建圆锥几何体(底面为圆形)
const coneGeometry = Cesium.CylinderGeometry.createGeometry(new Cesium.CylinderGeometry({length: 200000,topRadius: 0,bottomRadius: 100000, // 底面半径vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,})
);// 自定义着色器:基于UV距离计算圆形渐变
const material = new Cesium.Material({fabric: {type: 'RadialGradientCone',source: `czm_material czm_getMaterial(czm_materialInput materialInput) {czm_material material = czm_getDefaultMaterial(materialInput);// 计算当前像素到圆心的距离(UV坐标系中)vec2 st = materialInput.st;vec2 center = vec2(0.5, 0.5); // 圆心位置float distance = length(st - center); // 径向距离// 归一化到 [0,1],确保渐变从中心向外扩展float normalizedDistance = clamp(distance / 0.5, 0.0, 1.0);// 圆形渐变逻辑(红→黄→蓝)if (normalizedDistance < 0.33) {material.diffuse = vec3(1.0, 0.0, 0.0); // 红色} else if (normalizedDistance < 0.66) {material.diffuse = vec3(1.0, 1.0, 0.0); // 黄色} else {material.diffuse = vec3(0.0, 0.0, 1.0); // 蓝色}// 透明度随距离增加而降低material.alpha = 1.0 - normalizedDistance * 0.5;return material;}`,uniforms: {},},
});// 应用到Primitive
const geometryInstance = new Cesium.GeometryInstance({ geometry: coneGeometry });
const primitive = new Cesium.Primitive({geometryInstances: geometryInstance,appearance: new Cesium.MaterialAppearance({material: material,closed: true,}),
});
viewer.scene.primitives.add(primitive);

关键点

  • length(st - center):确保渐变方向从圆心向外。
  • clamp(distance / 0.5, 0.0, 1.0):限制渐变范围在圆形区域内。
  • 实时性:适合动态属性(如风速、温度)驱动的渐变。

方案二:Canvas动态生成径向渐变贴图(灵活性高)

特点:通过Canvas绘制径向渐变圆形纹理,贴合圆锥底面。

// 1. 创建Canvas并绘制圆形径向渐变
const canvas = document.createElement('canvas');
canvas.width = 256;
canvas.height = 256;
const ctx = canvas.getContext('2d');// 定义径向渐变(圆心→边缘)
const gradient = ctx.createRadialGradient(128, 128, 0, 128, 128, 128);
gradient.addColorStop(0, 'red');
gradient.addColorStop(0.5, 'yellow');
gradient.addColorStop(1, 'blue');
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, 256, 256);// 2. 将Canvas转换为ImageResource
const imageResource = new Cesium.ImageResource({source: canvas,
});// 3. 创建贴图材质(圆形渐变)
const imageMaterial = new Cesium.Material({fabric: {type: 'ImageRadialGradient',source: `czm_material czm_getMaterial(czm_materialInput materialInput) {czm_material material = czm_getDefaultMaterial(materialInput);vec2 st = materialInput.st;vec4 color = texture(imageMap, st);material.diffuse = color.rgb;material.alpha = color.a;return material;}`,uniforms: {imageMap: imageResource,},},
});// 应用到Primitive
const geometryInstance = new Cesium.GeometryInstance({ geometry: coneGeometry });
const primitive = new Cesium.Primitive({geometryInstances: geometryInstance,appearance: new Cesium.MaterialAppearance({material: imageMaterial,closed: true,}),
});
viewer.scene.primitives.add(primitive);

关键点

  • createRadialGradient:Canvas API原生支持径向渐变。
  • 贴图适配:需确保圆锥底面UV映射为正方形区域(避免拉伸)。
  • 灵活性:可动态调整Canvas渐变参数(如颜色分段)。

方案三:静态图片贴图(性能最优)

特点:预加载圆形渐变图片,适合固定渐变逻辑。

// 1. 准备静态圆形渐变图片(如 gradient.png)
const imageMaterial = new Cesium.Material({fabric: {type: 'StaticRadialGradient',source: `czm_material czm_getMaterial(czm_materialInput materialInput) {czm_material material = czm_getDefaultMaterial(materialInput);vec2 st = materialInput.st;vec4 color = texture(staticMap, st);material.diffuse = color.rgb;material.alpha = color.a;return material;}`,uniforms: {staticMap: 'path/to/gradient.png', // 需预先绘制圆形渐变},},
});// 应用到Primitive
const geometryInstance = new Cesium.GeometryInstance({ geometry: coneGeometry });
const primitive = new Cesium.Primitive({geometryInstances: geometryInstance,appearance: new Cesium.MaterialAppearance({material: imageMaterial,closed: true,}),
});
viewer.scene.primitives.add(primitive);

关键点

  • 图片设计:需手动绘制或生成圆形径向渐变(如Photoshop或程序生成)。
  • 性能优势:无需运行时计算,适合大规模渲染。

三种方案对比与选择建议
方案渐变类型实时性灵活性性能适用场景
顶点着色器✅ 圆形径向✅ 高✅ 高✅ 高动态属性驱动、实时变化
Canvas动态贴图✅ 圆形径向⚠ 中✅ 高⚠ 中复杂渐变、交互式调整
静态图片贴图✅ 圆形径向❌ 低❌ 低✅ 高固定渐变、大规模渲染

总结

三种方案均通过圆形结构+径向扩散实现渐变色,区别在于:

  • 顶点着色器:实时计算,适合动态数据。
  • Canvas贴图:灵活定制,适合复杂渐变。
  • 静态贴图:性能最佳,适合固定逻辑。

最终选择建议

  • 需要实时响应属性变化 → 使用顶点着色器。
  • 需要复杂渐变设计 → 使用Canvas动态生成贴图。
  • 需要极致性能 → 使用静态图片贴图。

http://www.dtcms.com/wzjs/151766.html

相关文章:

  • 精简wordpress头部信息seo怎么弄
  • 阿里云空间可以做网站吗怎么进行网络推广
  • 织梦网站优化识图找图
  • 企业网站做凭安认证有用吗window优化大师
  • 软件开发赚钱吗seo技术教学视频
  • 找人做seo要给网站程序最近爆发什么病毒感染
  • 网站建设下载今天最新新闻摘抄
  • 江西求做网站百度搜索广告价格
  • 深圳最大的公司排名移投界seo
  • 能够给上市公司做网站意味着什么网站seo视频教程
  • 取消网站备案厦门网络推广哪家强
  • 西安网站制作官网seo怎么做
  • 吴江住房建设局网站西安网络推广外包公司
  • 怎么查看网站虚拟空间关键词快速排名seo怎么优化
  • 企业电子商务的网站的建设方式磁力搜索神器
  • 网站精品案例成都seo
  • 在线图片制作工具大全东营优化路网
  • 布吉做棋牌网站建设哪家技术好百度搜索引擎关键词
  • 常德网站公司汽车网络营销策划方案
  • 米拓模板网站建设专业营销推广团队
  • 网站的背景图怎么做的宁波seo整体优化
  • 用摄像头直播网站怎么做海外推广解决方案
  • 网站效果图可以做动态的嘛百度收录批量查询
  • 淘宝做的网站靠谱吗自己做网站建设
  • 外贸公司的网站建设产品推广渠道有哪些方式
  • 做单位网站的公司站长查询
  • 建设物流网站的规划迅速上排名网站优化
  • 网站开发使用的技术百度一下官网页
  • 房地产公司网站源码seo网站推广软件 快排
  • 微信小程序纪念币微商城是真的吗seo工作内容