news 2026/1/19 7:26:06

Cesium快速入门20:Primitive的外观设置Appearance

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cesium快速入门20:Primitive的外观设置Appearance

前面我们学会了用 Entity 换皮肤;今天轮到Primitive——自己捏几何体后,再给它穿什么样的“外衣”。
在 Cesium 里,这件外衣叫Appearance(外观)。
它决定“像素怎么画、用什么材质、要不要光照”等所有渲染细节。
上回我们图省事,用了PerInstanceColorAppearance,直接拿实例颜色当颜料。
其实官方还备了好几套“成衣”,下面挑最常用的 3 件挨个试穿。


一、PerInstanceColorAppearance:每个实例自带颜色

特点

  • 不额外设置材质,颜色从GeometryInstance.attributes.color里取;

  • 最快、最省,适合做“海量同色不同区”的批量绘制。
    (上节课已用过,这里不再贴代码)


二、EllipsoidSurfaceAppearance:专为“贴地”模型优化

假设你的几何体永远和地球椭球面平行(道路、地块、水域),就可以用它。
内部会预计算顶点属性,省内存、提性能,还能统一套一张材质。

/* 1. 先准备一张纯色材质(后续可换图片、法线、高光等) */ const material = new Cesium.Material.fromType('Color', { color: Cesium.Color.PURPLE.withAlpha(0.5) }); /* 2. 再创建“椭球表面外观” */ const ellipsoidAppearance = new Cesium.EllipsoidSurfaceAppearance({ material: material }); /* 3. 最后把外观塞给 Primitive(其余代码不变) */ const primitive = new Cesium.Primitive({ geometryInstances: [yourInstances], // 你的实例数组 appearance: ellipsoidAppearance });

效果与纯色PerInstanceColorAppearance看起来一样,但背后省了一次材质分支,大批量贴地矩形时帧率更稳。


三、MaterialAppearance:最通用的“基类”外观

不想受任何“贴地”限制,就用它——所有自定义材质的入口
同样一张纯色材质,写法几乎照抄:

const materialAppearance = new Cesium.MaterialAppearance({ material: Cesium.Material.fromType('Color', { color: Cesium.Color.RED.withAlpha(0.5) }) });

换图、换漫反射、换高光、后期自己写着色器,都靠这个口子。


四、Entity vs Primitive 材质小提醒

  • Entity 世界里,材质属性叫***MaterialProperty(带 Property)。

  • Primitive 世界里,材质类叫Material(不带 Property)。
    两者不要混用,否则运行时会毫不客气地抛异常。


五、Material 自带“布料”大全

Cesium.Material.fromType('xxx', {...})的 xxx 可选值包括但不限于:

  • Color —— 纯色

  • Image —— 贴图

  • DiffuseMap —— 漫反射贴图

  • SpecularMap —— 高光贴图

  • Checkerboard —— 棋盘格

  • Stripe —— 条纹

  • Grid —— 网格

  • PolylineArrow —— 箭头线(配合线几何体)

  • PolylineGlow —— 发光飞线
    ……

下节课我们挑几个常用类型,现场换图、换高光、换法线,看看怎么把 Primitive 玩出 Entity 做不出的高级感。


小结

  1. Primitive 想“穿外衣”→ 先选 Appearance(EllipsoidSurface / Material / PerInstanceColor)。

  2. 再在外衣里塞 Material(不是 MaterialProperty!)。

  3. 大批量贴地模型优先用 EllipsoidSurfaceAppearance,能省内存。

  4. 想自由发挥就用 MaterialAppearance,它是通往自定义着色器的必经之路。

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

14、充分利用语言的完整工具集

充分利用语言的完整工具集 在配置管理中,我们常常需要高效地管理和分配资源。Puppet 提供了一系列强大的功能,让我们可以更灵活地处理各种资源。下面将详细介绍 Puppet 中的资源标签、资源导出与导入、资源参数覆盖以及资源默认值等重要特性。 资源标签的使用 Puppet 会隐…

作者头像 李华
网站建设 2025/12/14 0:56:13

AI算力:驱动智能时代多元计算与高效调度的基础

各行各业正被人工智能发展浪潮以前所未有的力道进行重塑,而且支撑其运作的底层基础是算力。换种通俗易懂的说法,AI算力是指用来执行人工智能算法,对海量数据予以处理以及解析所需要的计算能力。它不是一项简单的硬件指标,而是包含…

作者头像 李华
网站建设 2025/12/14 0:56:12

AI知识库的构建:从数据采集、处理到高效检索的全流程解析

AI知识库的搭建以及运用属于一项具备系统性的工程项目,它的关键之处在于怎样以高效且精准地把领域方面的知识给予人工智能系统,从而让其拥有专业领域范畴内的认知以及推理能力。这个进程一般被称作“知识库投喂”或者“知识灌注”,它并非仅仅…

作者头像 李华
网站建设 2026/1/16 7:33:06

Git工作流程指南: 基础 Git 操作

基础 Git 操作 仓库初始化 # 创建新的仓库 git init# 克隆已经存在的仓库 git clone <repository_URL>文件操作 # 将文件添加到暂存区&#xff08;Staging Area&#xff09; git add <file_name> # 添加单个文件 git add . …

作者头像 李华
网站建设 2026/1/16 18:27:47

Modelsim联合高云ip仿真流程

一、改变工作器件库打开modelsim&#xff0c;调整工作器件库&#xff1a;modelsim --> File --> Change Directory --> 选择modelsim的安装目录C:\modeltech64_10.7&#xff08;我装在C盘&#xff09;&#xff0c;点击选择文件夹&#xff0c;如下图。二、创建libirary…

作者头像 李华
网站建设 2026/1/18 7:55:11

69.学习复盘-21天核心知识点梳理与记忆技巧-附思维导图

69 学习复盘:21 天核心知识点梳理与记忆技巧 你好,欢迎来到第 69 讲,也是我们整个课程的倒数第三讲。 在过去的 20 多天里,我们一起经历了一段信息量巨大、充满挑战但也收获满满的 DDD 学习之旅。我们从最基础的概念,一路走到了复杂的企业级案例和面试技巧。 在即将结束…

作者头像 李华