Advanced Tutorial

Custom geometry and appearances

进阶高级40-60 分钟

当 Entity 不够用时,就会进入这部分。它更靠近底层几何和渲染能力,适合定制化要求高的项目。

Overview

为什么要学它

高层 API 能解决大部分问题,但总会遇到需要自定义几何体、材质、形状或体积表达的时候。这个主题是通往更底层控制的入口。

Who Needs It

适合谁

  • 做专业可视化效果的高级开发者。
  • 需要独特几何表达的行业项目。
  • 已经遇到 Entity 上限的团队。

Starter Code

Primitive 骨架思路

const geometry = new GeometryInstance({
  geometry: new BoxGeometry({
    maximum: new Cartesian3(10, 10, 20),
    minimum: new Cartesian3(-10, -10, 0),
  }),
});

viewer.scene.primitives.add(
  new Primitive({
    geometryInstances: geometry,
    appearance: new PerInstanceColorAppearance(),
  }),
);

Project Advice

什么时候该进入这一层

默认图元做不到 先确认 Entity 真的不够用,而不是过早下潜。
效果要求很明确 如果只是“想自定义一点”,通常不值得直接进入 Primitive 层。
要预留调试时间 自定义几何的调试成本远高于普通业务展示。

Study Focus

学习重点

  • 理解 Entity 和 Primitive 的边界。
  • 知道如何构建自定义 geometry。
  • 理解 appearance 如何影响最终渲染效果。

Good For

适合的任务

  • 专业行业符号体。
  • 定制网格与体积效果。
  • 特殊材质和外观控制。

Warnings

现实中的难点

  • 一旦进入底层,自定义能力变强,但调试成本也急剧上升。
  • 几何构造错误比普通业务代码更难排查。
  • 复杂外观必须尽早做性能验证。

Rule

实战建议

先用最简单的几何和单色外观跑通,再逐步增加复杂度,不要一开始同时改 geometry、appearance 和交互。