cesium根据geojson 加载水面材质

        
            var dataSourcePromise1 = Cesium.GeoJsonDataSource.load(ypWater);

            dataSourcePromise1.then(function (dataSource) {
                // viewer.dataSources.add(dataSource);

                let instances = [];
                let entitys = dataSource.entities.values;

                entitys.forEach((e) => {
                    let geometry = new Cesium.GeometryInstance({
                        geometry: new Cesium.PolygonGeometry({
                            polygonHierarchy: new Cesium.PolygonHierarchy(
                                e.polygon.hierarchy.getValue().positions
                            ),
                            extrudedHeight: 0,
                            height: 0,
                            vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
                        }),
                        attributes: {
                            color: Cesium.ColorGeometryInstanceAttribute.fromColor(
                                Cesium.Color.fromRandom({
                                    alpha: 0.8,
                                })
                            ),
                        },
                    });
                    instances.push(geometry);
                });
                let imgwater = require('@/assets/water.png')
                let primitive = new Cesium.Primitive({
                    geometryInstances: instances, //合并
                    //某些外观允许每个几何图形实例分别指定某个属性
                    appearance: new Cesium.EllipsoidSurfaceAppearance({
                        aboveGround: true, //在椭球面上
                        material: new Cesium.Material({
                            fabric: {
                                type: "Water",
                                uniforms: {
                                    normalMap: imgwater,
                                    frequency: 8000.0, // 控制波数的数字。
                                    animationSpeed: 0.02, // 控制水的动画速度的数字。
                                    amplitude: 5.0, // 控制水波振幅的数字。
                                    specularIntensity: 0.8, // 控制镜面反射强度的数字。
                                },
                            },
                        }),
                    }),
                });
                viewer.scene.primitives.add(primitive);

                // viewer.zoomTo(primitive)
            })

材质图片下面这张

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Muzi0.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值