earthsdk三维建筑扫光效果修改

earthsdk三维建筑扫光效果修改

earthsdk三维建筑的渐变和扫光效果是通过shader实现的。shader代码如下:

addTileset(earth) {
            var fsBody = `
                    float vtxf_a11 = fract(czm_frameNumber / 120.0) * 3.14159265 * 2.0;
                    float vtxf_a12 = v_elevationPos.z / 60.0 + sin(vtxf_a11) * 0.1;
                    gl_FragColor *= vec4(vtxf_a12, vtxf_a12, vtxf_a12, 1.0);


                    float vtxf_a13 = fract(czm_frameNumber / 360.0);
                    float vtxf_h = clamp(v_elevationPos.z / 300.0, 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);
                    `
            let xbsjStyle = `var style = {
                    color: "vec4(0, 0.5, 1.0,1)"
                }`
            let tileset = {
                ref: 'tileset',
                czmObject: {
                    xbsjType: 'Tileset',
                    name: '白模测试',
                    url: '/Tileset/tileset.json',
                    xbsjStyle: xbsjStyle,
                    xbsjClippingPlanes: {},
                    xbsjCustomShader: {
                        fsBody: fsBody
                    }
                }
            }
            earth.sceneTree.root.children.push(tileset)
        }

在此记录对该效果的部分修改:

1.去掉渐变效果

删除以下三行代码:

float vtxf_a11 = fract(czm_frameNumber / 120.0) * 3.14159265 * 2.0;
float vtxf_a12 = v_elevationPos.z / 60.0 + sin(vtxf_a11) * 0.1;
gl_FragColor *= vec4(vtxf_a12, vtxf_a12, vtxf_a12, 1.0);

2.去掉扫光效果

删除以下5行代码:

float vtxf_a13 = fract(czm_frameNumber / 360.0);
float vtxf_h = clamp(v_elevationPos.z / 300.0, 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);

3.修改扫光颜色

修改以下代码,并修改vec(1.0,0.0,0.0)的值

// gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - vtxf_diff);
gl_FragColor.rgb += vec(1.0,0.0,0.0) * (1.0 - vtxf_diff);

效果如下:

 

 

 

 

 

 

 

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

 

posted @ 2022-03-11 16:09  莫小龙  阅读(532)  评论(0编辑  收藏  举报