Cesium - 将滤色器应用于 ImageryLayer

Cesium - Applying color filter to ImageryLayer

有人试过这样做吗?据我从文档中可以看出,似乎没有用于实现此目的的内置函数。有谁知道这是否可能?这可能是作者可能打算添加到平台的功能吗?

ImageryLayer documentation 显示了如何控制亮度、对比度、色调、饱和度和伽玛校正。

要获得纯色地球仪,您可以像这样删除图像层:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false
});

var globe = viewer.scene.globe;
globe.imageryLayers.removeAll();
globe.baseColor = Cesium.Color.LIGHTSLATEGRAY;

A "minimalist map"(正如您在评论中提到的)是您可能需要从自定义图像提供商处获得的东西。您可能想查看 Stamen Maps 以获取一些示例。特别要注意的是,他们的 "Toner" 地图有许多子品种,可以在 Cesium 中选择任何一个。

例如,要试用 "Toner Background" 版本,您可以使用:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false,
    imageryProvider: Cesium.createOpenStreetMapImageryProvider({
        url : 'https://stamen-tiles.a.ssl.fastly.net/toner-background/',
        credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
    })
});

编辑: @EmmanuelBuckski (OP) 采纳了这个想法 运行 ,将上述两种技术混合在一起产生了一个看起来非常好的结果!看看:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false
});

var globe = viewer.scene.globe;
globe.imageryLayers.removeAll();
globe.baseColor = Cesium.Color.fromCssColorString('#f3f3f3');

var tonerLayer = globe.imageryLayers.addImageryProvider(
    Cesium.createOpenStreetMapImageryProvider({
        url : 'https://stamen-tiles.a.ssl.fastly.net/toner-background/',
        credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
    })
);
tonerLayer.alpha = 0.1;