news 2026/3/26 6:45:03

Cesium快速入门21:Primitive材质类型与设置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cesium快速入门21:Primitive材质类型与设置

这节课,我们继续啃Primitive 的材质(Material)
上节只用了一个最基础的'Color'类型,今天把官方常备的“布料”全部铺开:图片、漫反射、网格、水面……
学会套路后,想换哪件换哪件,全程零着色器。


一、套路三步走

  1. 选类型:'Image''DiffuseMap''Grid''Water'

  2. 填参数:每个类型都有一堆 uniforms,照着文档键值对往里扔。

  3. 把材质实例塞给 Appearance,再挂到 Primitive 上——收工。


二、贴图材质:把 logo 铺到地球上

/* 1. 图片材质:水平竖直各重复 1 次,整幅图刚好铺满矩形 */ const ImgMaterial = new Cesium.Material.fromType('Image', { image: './imgs/logo.png', repeat: new Cesium.Cartesian2(1, 1) });

要让纹理正常显示,得把顶点格式改成支持 UV 的格式:

  • 椭球体 →EllipsoidSurfaceAppearance.VERTEX_FORMAT

  • 矩形 → 同样用EllipsoidSurfaceAppearance.VERTEX_FORMAT

/* 椭球体示例 */ new Cesium.EllipsoidGeometry({ radii: new Cesium.Cartesian3(5000, 5000, 10000), vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT }) /* 矩形示例 */ new Cesium.RectangleGeometry({ rectangle: Cesium.Rectangle.fromDegrees(113.3, 23.0, 113.4, 23.2), height: 0, extrudedHeight: 500, vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT })

UV 对不上就会花屏或全白,改完格式立刻正常。
性能小贴士:大批量“贴地”模型尽量用EllipsoidSurfaceAppearance,顶点属性预计算,帧率更稳。


三、漫反射贴图:跟图片材质几乎同名

/* 漫反射贴图,参数更少,只留图片路径即可 */ const diffuseMapMaterial = new Cesium.Material.fromType('DiffuseMap', { image: './imgs/logo.png' });

效果跟Image类似,但内部走的是 PBR 漫反射通道,后面想加高光、法线时更统一。


四、网格材质:自带“豆腐块”线条

const gridMaterial1 = new Cesium.Material.fromType('Grid', { color: Cesium.Color.YELLOW, // 线条颜色 cellAlpha: 0.2, // 格子填充透明度 lineCount: new Cesium.Cartesian2(8, 8), // 横竖各 8 条线 lineThickness: new Cesium.Cartesian2(2.0, 2.0) // 线宽(像素) });

参数一目了然:

  • lineCount越大格子越小;

  • lineThickness越粗越“黑客帝国”。


五、水面材质:一波三折的动效

const waterMaterial = new Cesium.Material.fromType('Water', { baseWaterColor: Cesium.Color.BLUE.withAlpha(0.5), // 水体基色 specularIntensity: 0.5, // 镜面反射强度 normalMap: './Assets/Textures/waterNormals.jpg' // 法线贴图(Cesium 自带) });

只要路径指到 Cesium 官方资源包的waterNormals.jpg,就能立刻看到:

  • 波纹自动滚动;

  • 颜色、波速、波纹大小、反射强度都能在参数里调。
    想再“青”一点?改baseWaterColor即可。


六、常用材质速查表

类型关键参数示例适合场景
Colorcolor快速纯色
Imageimage, repeatlogo、照片贴图
DiffuseMapimagePBR 流程的漫反射贴图
Gridcolor, lineCount, cellAlpha地块、棋盘、调试
WaterbaseWaterColor, normalMap海面、湖面、动态水面

七、下节预告

官方布料不够用?
下节课我们直接上手自定义 Material + Fabric 语法,自己写 uniform、写 shader,让水面闪金光、让地面冒火焰,全程可控。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/19 17:27:48

AutoGPT在服装搭配建议系统中的风格迁移应用

AutoGPT在服装搭配建议系统中的风格迁移应用 在当今个性化消费日益增长的时代,用户不再满足于“你喜欢什么就推荐什么”的静态推荐模式。尤其是在时尚领域,一套真正打动人心的穿搭建议,不仅要契合场合、气候与身材,更要捕捉到某种…

作者头像 李华
网站建设 2026/3/23 23:08:13

全模态效率革命:Lumina-DiMOO以2倍速生成重新定义AI生产力

全模态效率革命:Lumina-DiMOO以2倍速生成重新定义AI生产力 【免费下载链接】Lumina-DiMOO 项目地址: https://ai.gitcode.com/hf_mirrors/Alpha-VLLM/Lumina-DiMOO 导语 上海AI实验室联合7家科研机构推出的Lumina-DiMOO模型,凭借统一离散扩散架…

作者头像 李华
网站建设 2026/3/23 20:06:24

Java 线程池ThreadPoolExecutor的工作原理

Java 线程池是基于池化思想的线程管理机制,核心目的是复用线程、控制并发数、降低线程创建 / 销毁的开销,同时提供任务排队、拒绝策略、线程监控等能力。它的实现核心在java.util.concurrent包中的ThreadPoolExecutor类(以及其封装类如Executors创建的线程池),下面从核心组…

作者头像 李华
网站建设 2026/3/24 19:24:24

正度科技【地图编辑软件】-AGV小车参数设置-电机参数设置

1-AGV机械数据 点击菜单【AGV小车】->【小车参数设置】,弹出"参数设置对话框",第一个标签就是【AGV机械数据】,可以为多种运动模型参数设置参数,如 差速AGV多舵轮AGV单舵轮AGV我们以差速模型为例,驱动参数…

作者头像 李华
网站建设 2026/3/24 12:51:20

11、50个Python实用技巧大揭秘

50个Python实用技巧大揭秘 一、Python简介 Python是一种编程语言,能让你更高效地工作,更有效地集成系统。如今,它是开源领域最受欢迎的编程语言之一,从各种配置工具到XML解析,随处可见它的身影。下面为你介绍50个实用的Python技巧,助你提升编程体验。 二、Python基础操…

作者头像 李华
网站建设 2026/3/23 7:45:17

ERNIE 4.5-VL:4240亿参数异构MoE架构如何重塑多模态AI产业格局

ERNIE 4.5-VL:4240亿参数异构MoE架构如何重塑多模态AI产业格局 【免费下载链接】ERNIE-4.5-VL-424B-A47B-Base-Paddle 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-VL-424B-A47B-Base-Paddle 导语 百度最新开源的ERNIE 4.5-VL-424B-A47B…

作者头像 李华