用cesium本身添加水纹效果

参考网站:https://blog.csdn.net/XLSMN/article/details/78752669

1、首先来看一下整体效果

2、具体方法如下:

首先,你必须有两张很重要的图片,你可以从我这里保存为本地

3.具体代码如下

  1. var scene=viewer.scene;

  2.  

    function applyWaterMaterial(primitive, scene) {

  3.  

    primitive.appearance.material = new Cesium.Material({

  4.  

    fabric : {

  5.  

    type : ‘Water‘,

  6.  

    uniforms : {

  7.  

    specularMap:‘images/earthspec1k.jpg‘,

  8.  

    normalMap:‘images/waterNormals.jpg‘,

  9.  

    frequency: 10000.0,

  10.  

    animationSpeed: 0.01,

  11.  

    amplitude: 1.0

  12.  

    }

  13.  

    }

  14.  

    });

  15.  

    }

  16.  

  17.  

    var worldRectangle = viewer.scene.primitives.add(new Cesium.Primitive({

  18.  

    geometryInstances : new Cesium.GeometryInstance({

  19.  

    geometry : new Cesium.RectangleGeometry({

  20.  

    rectangle : Cesium.Rectangle.fromDegrees(-180, -90, 180.0, 90.0),

  21.  

    vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT

  22.  

    })

  23.  

    }),

  24.  

    appearance : new Cesium.EllipsoidSurfaceAppearance({

  25.  

    aboveGround : true

  26.  

    }),

  27.  

    show : true

  28.  

    }));

  29.  

  30.  

    applyWaterMaterial(worldRectangle, scene);

以上是全球动态水的加载,当然可以针对某片区域水域进行动态水的加载(只需要将上边的矩形换成你要加载动态水区域的边界一系列坐标值)

  1. function applydjk_WaterMaterial(primitive, scene) {

  2.  

    primitive.appearance.material = new Cesium.Material({

  3.  

    fabric : {

  4.  

    type : ‘Water‘,

  5.  

    uniforms : {

  6.  

    normalMap:‘images/waterNormals.jpg‘,

  7.  

    frequency: 10000.0,

  8.  

    animationSpeed: 0.01,

  9.  

    amplitude: 50

  10.  

    }

  11.  

    }

  12.  

    });

  13.  

    }

  14.  

  15.  

    var djk_Polygon = viewer.scene.primitives.add(new Cesium.Primitive({

  16.  

    geometryInstances : new Cesium.GeometryInstance({

  17.  

    geometry : new Cesium.PolygonGeometry({

  18.  

    polygonHierarchy : new Cesium.PolygonHierarchy(

  19.  

    Cesium.Cartesian3.fromDegreesArray([

  20.  

    111.48894522023063,32.55843610413914,111.48869238776277,32.55602570974643,111.49004745721604,32.5548361448687,111.49250635559537,32.5526581917131,111.49401017612676,32.55129837476868,111.49557557543416,32.549965127681524,111.49805874806115,32.550219820173126,111.49881935514881,32.550823388219456,111.49893286824275,32.55195597852755,111.4983164393889,32.5535655841798,111.49817521853979,32.554570336381104,111.49914284747027,32.55554277243855,111.49967950821859,32.555814392110264,111.50062151969038,32.556517275179836,111.50149914222958,32.55731250438687,111.50207800636986,32.55757396515373,111.50386396090245,32.55781206769338,111.50391371888884,32.559650818164926,111.50077307397399,32.56013340913413,111.49625702141412,32.560250133340446,111.49171532588734,32.560183453792156,111.48920373670329,32.56015020231049,111.48844043918616,32.55981856869106,111.48743657311691,32.55945303779285,111.48760383414758,32.55863069835514,111.48812831262538,32.55837951411848

  21.  

    ])

  22.  

    ),

  23.  

    vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT

  24.  

    })

  25.  

    }),

  26.  

    appearance : new Cesium.EllipsoidSurfaceAppearance({

  27.  

    aboveGround : true

  28.  

    }),

  29.  

    show : true

  30.  

    }));

  31.  

    applydjk_WaterMaterial(djk_Polygon, scene);

当然,有时获取一系列区域的坐标值数量较多,手动去采集比较麻烦,耗时耗力,推荐一种方法,到Goole earth中画面,然后生成kml文件,里边就包含了你所画区域的边界坐标。(具体做法,可问度娘)

原文地址:https://www.cnblogs.com/yanan-boke/p/9337214.html

时间: 2024-10-13 19:34:12

用cesium本身添加水纹效果的相关文章

布局添加动画效果

1. 布局添加动画效果 ① 视图 五个按钮 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&q

街机扫描线之为图片添加扫描效果

为图片添加一些额外效果,会使图片更耐看一些,下面来看看如何为一张普通图片添加扫描效果. 首先是下载软件,可到软件主页下载:街机扫描线_v10(正式版) 看一下制作先后的对比图: 原图效果: 制作后加入了扫描效果的效果图: 用街机扫描线制作这种效果图只需简单的几步操作即可完成,貌似用PS做这种效果图也可以做出来,但是会很复杂.下面说一下制作方法. 1.用任意看图软件或浏览器打开一张需要制作扫描效果的图片,也可直接在网页上制作. 2.下载 街机扫描线 之后解压到任意目录,运行 街机扫描线_v10(正

WinForm实现类似QQ停靠,显示隐藏过程添加特效效果

原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右下角会显示一个窗体,一般情况下该窗体会隐藏停靠在右边,只露出很小部分,当鼠标移动到这个很小部分时,窗体全部显示,显示过程是从右边滑动到左边,当鼠标离开窗体时,窗体需要隐藏在右边,只露出很小部分,隐藏过程是从左边滑动到右边. 实现此类效果我碰到的连个难点是:1.如何判断鼠标离开了窗体?2.窗体显示隐藏

给日志添加&ldquo;复制&rdquo;效果

给日志添加如上效果的实现方法: 在日志编辑页面,源代码中,添加如下代码,包裹住 目标内容style1: <div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"></span></div>                     要复制的内容here-</d

cocos2d-x 精灵添加描边效果

学习cocos2d-x 以来一直对里面的shader部分感兴趣,今天正好花了点时间来研究一下精灵的描边效果. 主要参考了子龙山人大神的TestCpp里面例子并结合自己的理解,实现相对比较简单.主要是根据引擎内部自带的shader相关代码来实现的. 好了废话不多说看代码: 1.首先需要打开CCShaderCache.cpp文件修改里面部分代码,添加我们描边的效果. 在此枚举值里面加入:kShaderType_LabelOutline 2.然后在 voidShaderCache::loadDefau

为UIView视图切换添加动画效果

我们定义了一个动画类来实现视图切换的动画效果,这个类只包含一个类方法,可直接调用,具体代码如下: 头文件: + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 #import <Foundation/Foundation.h> @interface ViewAnimation : NSObject /*============================页面切换的方法==============================     View1 表示当前页面     Vi

元素添加外发光效果

.put { -webkit-transition:border linear .2s,-webkit-box-shadow linear .2s; outline:none; border-color:rgba(241,39,242,.6); -webkit-box-shadow:0 0 8px rgba(241,39,232,.3); } rgba:同rgb,后面.6=0.6=alpha,取值0-1 元素添加外发光效果

在 Windows Phone 中,为 Grid 添加 Tilt 效果

在 Windows Phone 中,Tilt 效果是比较经典的效果,我们可以很简单的为按钮等控件添加这样的效果(使用 Windows Phone Toolkit 的Tilt 效果),但是,如果我们想要让一个 Grid 也具有 Tilt 效果的话,如果直接这么写是不会起作用的: <Grid x:Name="GridGame" toolkit:TiltEffect.IsTiltEnabled="True"> 为什么给按钮这样写是可以的,而Grid就失效了呢?

支持添加文字效果或点击事件功能

源码WPAttributedMarkup, WPAttributedMarkup能给Label中某关键字添加文字效果或点击事件.Label中的某个关键字词可以改变字体的特性如颜色.加粗,下划线等,也可以为某个关键字词添加点击事件.<ignore_js_op> 使用方法: 通过创建不同的style的字典后就可以对label的属性进行设置,示例如下: // Example using fonts and colours NSDictionary* style1 = @{@"body&qu