earthsdk之tileset样式调整

earthsdk之tileset样式调整

 
            // 注意shader中写浮点数是,一定要带小数点,否则会报错,比如0需要写成0.0,1要写成1.0
            float _baseHeight = 0.0; // 物体的基础高度,需要修改成一个合适的建筑基础高度
            float _heightRange = 60.0; // 高亮的范围(_baseHeight ~ _baseHeight + _heightRange) 默认是 0-60米
            float _glowRange = 300.0; // 光环的移动范围(高度)

            // 建筑基础色
            float vtxf_height = v_stcVertex.z - _baseHeight;
            float vtxf_a11 = fract(czm_frameNumber / 120.0) * 3.14159265 * 2.0;
            float vtxf_a12 = (vtxf_height+50.0) / _heightRange + sin(vtxf_a11) * 0.1;    // +50.0可以将渐变下移,遮挡住渐变的黑色部分
            gl_FragColor *= vec4(vtxf_a12, vtxf_a12, vtxf_a12, 1.0);                          // vtxf_a12改为1.0可直接将渐变样式取消改为白色
            // gl_FragColor *= vec4(1.0, 1.0, 1.0, 1.0);

            // 动态光环
            float vtxf_a13 = fract(czm_frameNumber / 360.0);
            float vtxf_h = clamp(vtxf_height / _glowRange, 0.0, 1.0);
            vtxf_a13 = abs(vtxf_a13 - 0.5) * 2.0;
            float vtxf_diff = step(0.005, abs(vtxf_h - vtxf_a13));
            gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - vtxf_diff);

 

 

钻研不易,转载请注明出处。。。。。。

 

posted @ 2022-06-07 11:44  莫小龙  阅读(241)  评论(0编辑  收藏  举报