美文网首页开源
Cesium绘制双实线

Cesium绘制双实线

作者: 周五蛋碎一地 | 来源:发表于2023-02-14 17:39 被阅读0次

最近有个项目要用到道路的双实线,于是研究了一下Polyline的用法,发现在现有的PolylineGlowMaterial基础上稍微改动一下就可以用,把中间发光区域alpha设置为0就可以了,使用的时候taperPower设置为1,或者直接不要都可以。

czm_material czm_getMaterial(czm_materialInput materialInput)
{
    czm_material material = czm_getDefaultMaterial(materialInput);

    vec2 st = materialInput.st;
    float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5);

    if (taperPower <= 0.99999) {
        glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5));
    }

    vec4 fragColor;
    fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb);
    if(glow - 1.0 > 0.0) {
        fragColor.a = 0.0; 
    } else {
        fragColor.a = color.a;
    }
    fragColor = czm_gammaCorrect(fragColor);

    material.emission = fragColor.rgb;
    material.alpha = fragColor.a;

    return material;
}

也可以用纹理坐标直接计算,直接设置alpha为0,或者直接discard都可以。

czm_material czm_getMaterial(czm_materialInput materialInput)
{
    czm_material material = czm_getDefaultMaterial(materialInput);
    vec2 st = materialInput.st;
    vec4 fragColor = color;
    if(st.t < 0.5 + intervalRatio * 0.5 && st.t > 0.5 - intervalRatio * 0.5) {
        fragColor.a = 0.0; 
    } else {
        fragColor.a = color.a;
    }
    fragColor = czm_gammaCorrect(fragColor);

    material.emission = fragColor.rgb;
    material.alpha = fragColor.a;

    return material;
}

效果如下:


不要压线!不要压线!不要压线!

相关文章

  • Cesium绘制双实线

    最近有个项目要用到道路的双实线,于是研究了一下Polyline的用法,发现在现有的PolylineGlowMate...

  • 双实线

    我有驾照,但是从来不敢在城市里开车。一来我对驾驶没有强烈的兴趣,二是因为对其他的司机没有信心。 除了上下班,周末购...

  • 双实线

    我站在这迎来送往, 却听不到一丝声响。 飘雪的夜, 街灯才是搭档。

  • 人生的双实线

    “这次是两辆车都有责任,这本来就是双实线,你们又同时压线超车,速度太快才发生这样的事,好在人没事!”交警看完现场后...

  • Cesium heatmap绘制。

    首先先下载 cesium heatmap包。(站在巨人的肩膀上)https://www.npmjs.com/pac...

  • cesium 绘制geojson

  • Android高德之旅(8)绘制线

    废话 绘制线会比绘制点稍微复杂点,抛开一些复杂的属性不谈,主要分为三类:实线、虚线、纹理。绘制线在自定义地图中是非...

  • Cesium 绘制对象Entity

  • Cesium 绘制漫游路径

  • 【Cesium 基础】Entity API

    相关示例 Cesium 提供绘制Entity的API接口如下,详情参看[1][2] 更多entity使用 Enti...

网友评论

    本文标题:Cesium绘制双实线

    本文链接:https://www.haomeiwen.com/subject/cyiekdtx.html