Cesium Appearance API 介绍

作为一名GIS研究生,WebGIS 技术无疑是我们必学的核心之一。说到WebGIS,要提的就是 Cesium —— 这个让3D地球可视化变得简单又强大的工具。为了帮助大家更好地理解和使用 Cesium,我决定把我自己在学习 Cesium 文档过程中的一些心得和收获分享给大家。大家一起交流,一起进步!

 

在 Cesium 中,Appearance 是一个非常重要的类,用于定义如何渲染几何图形的外观。它负责提供完整的 GLSL 顶点着色器和片段着色器代码,以及渲染状态,这些都决定了一个原始图形(Primitive)如何被渲染出来。简单来说,Appearance 就是图形的“外表”,它让原始几何体不仅仅是一个点、线或面,而是拥有了颜色、纹理、透明度等可视化效果。

Appearance 的作用

Appearance 允许开发者通过设置材质、着色器源代码、渲染状态等,控制几何图形的渲染效果。比如,决定一个模型是透明的还是不透明的,或者它是否应该有某种特殊的材质效果。

核心属性

  1. translucent (boolean)

    • 描述:决定几何体是否应该是透明的。默认为 true,即几何体默认是透明的。在透明的情况下,renderState 会启用 alpha 混合。
    • 用法:如果设置为 false,则表示该几何体不需要透明效果。
  2. closed (boolean)

    • 描述:决定几何体是否为封闭的(例如一个球体)。如果设置为 truerenderState 会启用背面剔除。
    • 用法:当几何体是封闭的,通常需要对背面的面进行剔除以提高渲染效率。
  3. material (Material)

    • 描述:材质决定了几何体的片段颜色。材质是动态可变的,可以在渲染过程中修改。
    • 用法:材质可以是单色、纹理、渐变等类型,用来影响几何体的外观。
  4. vertexShaderSource (string)

    • 描述:可选的 GLSL 顶点着色器源代码。开发者可以通过它来重写默认的顶点着色器。
    • 用法:如果需要自定义顶点着色器,可以通过这个属性提供自定义的 GLSL 代码。
  5. fragmentShaderSource (string)

    • 描述:可选的 GLSL 片段着色器源代码。开发者可以通过它来重写默认的片段着色器。
    • 用法:如果需要自定义片段着色器效果,可以通过这个属性提供自定义的 GLSL 代码。
  6. renderState (object)

    • 描述:渲染状态,用于覆盖默认的 WebGL 渲染状态。
    • 用法:通过调整渲染状态,开发者可以定制深度测试、混合模式等渲染设置。

核心方法

  1. getFragmentShaderSource() (string)

    • 描述:生成完整的 GLSL 片段着色器源代码,考虑到 fragmentShaderSourcematerial 的设置。
    • 返回值:返回生成的完整 GLSL 片段着色器源代码。
  2. getRenderState() (object)

    • 描述:创建渲染状态,这个方法返回一个可以用于渲染的状态对象。
    • 返回值:返回渲染状态对象。
  3. isTranslucent() (boolean)

    • 描述:判断几何体是否为透明的,取决于 translucentmaterial.isTranslucent 的设置。
    • 返回值:如果几何体是透明的,返回 true,否则返回 false

使用场景

Appearance 类在 Cesium 中应用非常广泛,主要用于控制几何体的外观,尤其是在自定义渲染效果时。在展示一个城市的 3D 模型时,你可能希望给建筑物设置不同的材质效果,让建筑物根据不同的光照条件显示不同的效果;或者在某些特定的场景中,可能需要使用透明效果来显示地球的表面水体等。

 

图上为cesium一个官方DEMO,感兴趣的可以看看 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值