用途:本技能面向 CesiumJS(版本基线 1.144,ES 模块导入)的材质、着色器与后期处理,覆盖 Primitive 表面外观、GLSL 注入和屏幕空间特效。
材质系统:Material 通过 Fabric JSON 描述外观并编译为 GLSL,由 MaterialAppearance 或 PolylineMaterialAppearance 消费。内置类型包括表面类(Color、Image、DiffuseMap、AlphaMap、SpecularMap、EmissionMap、BumpMap、NormalMap)、图案类(Grid、Stripe、Checkerboard、Dot)、特效类(Water、RimLighting、Fade)、地形类(ElevationContour、ElevationRamp)与折线类(PolylineArrow、PolylineDash、PolylineGlow、PolylineOutline)。创建可用 Material.fromType()(内置类型优先,避免重编译)或完整 Fabric 写法,纹理材质用 await Material.fromTypeAsync() 避免默认白纹理闪烁。自 1.144 起 Texture.defaultColor 可改占位色。可用 source 写内联 GLSL,uniforms 按名访问;也可用 materials 与 components 组合子材质。注意 Fabric 材质用于 Primitive,不要使用不存在的实体构造器如 WaterMaterialProperty。
CustomShader 集成:向 Model、Cesium3DTileset、VoxelPrimitive 注入 GLSL,可访问顶点属性、feature ID 与 EXT_structural_metadata;着色器编写细节见 cesiumjs-custom-shader 技能。
ImageBasedLighting:控制 Model 与 Cesium3DTileset 的 PBR 光照,imageBasedLightingFactor 缩放漫反射与镜面反射,漫反射来自 9 个 sphericalHarmonicCoefficients,镜面来自 specularEnvironmentMaps(KTX2 立方体贴图)。
后期处理:通过 viewer.scene.postProcessStages 管理。PostProcessStageLibrary 提供泛光、模糊、景深、边缘检测、剪影、黑白、亮度、夜视、镜头光晕等工厂函数,需 add() 加入;集合内置 bloom、ambientOcclusion、fxaa 无需 add,tonemapper 默认 PBR_NEUTRAL,还提供曝光。可自定义 PostProcessStage(输出 out_FragColor,uniform 可为每帧重算的函数),配合 czm_selected() 与 stage.selected 做要素高亮;也可用 PostProcessStageComposite 组合效果。
混合与性能:BlendingState 提供 DISABLED、ALPHA_BLEND、PRE_MULTIPLIED_ALPHA_BLEND、ADDITIVE_BLEND 预设。建议内置类型用 fromType、纹理用 fromTypeAsync、降低 textureScale、关闭未用舞台、合并效果并减少舞台数量。
限制:本资料未提供收费、价格与平台信息。