Cesium添加水面

var viewer = new Cesium.Viewer(‘cesiumContainer’);
var waterPrimitive = new Cesium.Primitive({

    //show:false,// 默认隐藏<br/>
    allowPicking:false,<br/>
    geometryInstances : new Cesium.GeometryInstance({<br/>
        geometry : new Cesium.PolygonGeometry({<br/>
            polygonHierarchy : new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArrayHeights(waterFace)),//waterFace是一个组成多边形顶点数组[lon,lat,alt]<br/>
            //extrudedHeight: 0,//注释掉此属性可以只显示水面<br/>
            perPositionHeight : true//注释掉此属性水面就贴地了<br/>
        })<br/>
    }),<br/>
    // 可以设置内置的水面shader<br/>
    appearance : new Cesium.EllipsoidSurfaceAppearance({<br/>
        material : new Cesium.Material({<br/>
            fabric : {<br/>
                type : &#39;Water&#39;,<br/>
                uniforms : {<br/>
                    //baseWaterColor:new Cesium.Color(0.0, 0.0, 1.0, 0.5),<br/>
                    //blendColor: new Cesium.Color(0.0, 0.0, 1.0, 0.5),<br/>
                    //specularMap: &#39;gray.jpg&#39;,<br/>
                    normalMap: &#39;waterNormals.jpg&#39;,<br/>
                    frequency: 1000.0,<br/>
                    animationSpeed: 0.01,<br/>
                    amplitude: 10.0<br/>
                }<br/>
            }<br/>
        }),<br/>
        fragmentShaderSource:&#39;varying vec3 v_positionMC;\nvarying vec3 v_positionEC;\nvarying vec2 v_st;\nvoid main()\n{\nczm_materialInput materialInput;\nvec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)));\n#ifdef FACE_FORWARD\nnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n#endif\nmaterialInput.s = v_st.s;\nmaterialInput.st = v_st;\nmaterialInput.str = vec3(v_st, 0.0);\nmaterialInput.normalEC = normalEC;\nmaterialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC);\nvec3 positionToEyeEC = -v_positionEC;\nmaterialInput.positionToEyeEC = positionToEyeEC;\nczm_material material = czm_getMaterial(materialInput);\n#ifdef FLAT\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#else\ngl_FragColor = czm_phong(normalize(positionToEyeEC), material);\<br/>
                            gl_FragColor.a=0.5;\n#endif\n}\n&#39;//重写shader,修改水面的透明度<br/>
    })<br/>
});<br/>water=viewer.scene.primitives.add(waterPrimitive);