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

Cesium快速入门18:Entity材质设置

前面的课程里,我们先后讲了 Entity(实体)和 Primitive(图元)这两种“物体”。
它们都能贴材质,只不过用法有简有繁。
今天先集中火力把Entity 的材质系统撸一遍,看看 Cesium 到底给我们备好了哪些“现成布料”,以及怎么换布料。


一、Entity 材质入口:material 属性

以矩形为例,只要在配置项里写一行material: ...就能换皮肤。
既可以直给颜色,也能塞一个正式的 MaterialProperty 对象。

rectangle: { coordinates: Cesium.Rectangle.fromDegrees(...), material: Cesium.Color.RED.withAlpha(0.5) // 直接写颜色,底层会自动包成 ColorMaterialProperty }

二、MaterialProperty 是什么?

MaterialProperty是所有材质属性的“老祖宗”,一个抽象基类,不能直接 new。
它只规定派生类必须实现哪些方法和属性。
我们真正用的是它的那群“子子孙孙”——
名字统一以***MaterialProperty结尾,随手一搜就能找到。


三、官方常备“布料”清单

下面 4 种最常用,无需自己写着色器,直接配参数即可。

  • 纯色布料(ColorMaterialProperty)

    和直接写颜色等效,写不写都行。

const material = new Cesium.ColorMaterialProperty( Cesium.Color.RED.withAlpha(0.5) );
  • 棋盘格(CheckerboardMaterialProperty)

    黑白格子,可改颜色、可改密度。

const material = new Cesium.CheckerboardMaterialProperty({ evenColor: Cesium.Color.WHITE, // 偶数格 oddColor: Cesium.Color.BLACK, // 奇数格 repeat: new Cesium.Cartesian2(4, 4) // 横向、纵向各重复 4 次 });
  • 条纹布(StripeMaterialProperty)

    横条 or 竖条,随你挑。

const stripMaterial = new Cesium.StripeMaterialProperty({ evenColor: Cesium.Color.WHITE, oddColor: Cesium.Color.BLACK, repeat: 32, // 条纹数量 offset: 0.0, // 起始偏移 orientation: Cesium.StripeOrientation.HORIZONTAL // 或 VERTICAL });
  • 网格布(GridMaterialProperty)

    把面切成“豆腐块”,适合画地块、棋盘。

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

四、把布料穿到矩形上

无论哪种材质,最后都交给material字段即可。

const redRectangle = viewer.entities.add({ name: "Red translucent rectangle", rectangle: { coordinates: Cesium.Rectangle.fromDegrees(114.0, 23.4, 114.4, 23.6), extrudedHeight: 30000.0, // 挤出高度,单位米 material: material, // 上面任意一种材质 }, });

小结一句话

Entity 换皮肤 = 找***MaterialProperty→ 配参数 → 扔给material。
官方给的“布料”不够炫?后面我们教你亲手写着色器,想怎么酷就怎么酷。

http://www.cnnetsun.cn/news/28050.html

相关文章:

  • 第十章 for循环
  • WebRTC 是什么?能做什么?(概览篇)
  • Dubbo学习(三):深入 Remoting
  • AI设计新突破:QWEN溶图LoRA模型助力品牌视觉创作升级
  • 突破实时视频生成瓶颈:Krea Realtime 14B模型革新文本到视频技术
  • 【项目实战】Vercel 是一个让你的网站“瞬间上线”的云平台。Vercel 现在确实是技术圈的“当红炸子鸡”,尤其是在个人博客和前端开发领域。
  • Day28~实现strlen、strcpy、strncpy、strcat、strncat
  • 空洞骑士模组管理大师课:5个关键技巧让Scarab成为你的游戏管家
  • 实用方法:轻松实现NCM文件格式转换的完整解析
  • C++课后习题训练记录Day49
  • LeetCode 189. 旋转数组 | 三步反转最优解全拆解
  • downkyi视频下载:告别卡顿与画质损失的终极解决方案
  • 教你如何玩转DPDK开发中的KNI与内核交互,让网络速度翻倍!
  • Openresty驱动下的高性能Web网关实战
  • 百度网盘下载工具终极指南:快速突破限速的完整教程
  • C语言实现hashmap(附带源码)
  • jsonnet介绍和使用
  • 喜马拉雅音频数据采集:API接口分析与加密音频链接解密实战
  • 角色影像生成新纪元:Pony V7-Base引领AI创作革命
  • 论文格式修改排名:9大平台+在线一键优化
  • 论文写作效率低?十大AI生成平台,AIGC降重+赶due不熬夜
  • 文献引用规范考核要点解析与实践指南
  • 文献综述写作期末指南:方法、结构与常见问题解析
  • 期末文献研究论文的撰写方法与实践路径探讨
  • 基于 HID 协议的扩展功能指令定义方案
  • 模拟IC设计:集成电路与运算放大器大观
  • 6、Oracle数据库管理:文件与目录操作全解析
  • 12、Oracle数据库Linux服务器软件管理全攻略
  • 某聘新版AST解混淆(青春版)
  • 基于Spring Boot框架和vue的的诗词鉴赏与交流网站的设计与实现_96fdvu1s