用cesium本身添加水纹效果

2023-12-27 16:40
文章标签 效果 水纹 cesium 本身

本文主要是介绍用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. var worldRectangle = viewer.scene.primitives.add(new Cesium.Primitive({
  17. geometryInstances : new Cesium.GeometryInstance({
  18. geometry : new Cesium.RectangleGeometry({
  19. rectangle : Cesium.Rectangle.fromDegrees(-180, -90, 180.0, 90.0),
  20. vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT
  21. })
  22. }),
  23. appearance : new Cesium.EllipsoidSurfaceAppearance({
  24. aboveGround : true
  25. }),
  26. show : true
  27. }));
  28. 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. var djk_Polygon = viewer.scene.primitives.add(new Cesium.Primitive({
  15. geometryInstances : new Cesium.GeometryInstance({
  16. geometry : new Cesium.PolygonGeometry({
  17. polygonHierarchy : new Cesium.PolygonHierarchy(
  18. Cesium.Cartesian3.fromDegreesArray([
  19. 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
  20. ])
  21. ),
  22. vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT
  23. })
  24. }),
  25. appearance : new Cesium.EllipsoidSurfaceAppearance({
  26. aboveGround : true
  27. }),
  28. show : true
  29. }));
  30. applydjk_WaterMaterial(djk_Polygon, scene);

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

转载于:https://www.cnblogs.com/yanan-boke/p/9337214.html

这篇关于用cesium本身添加水纹效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/543765

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

使用Python实现生命之轮Wheel of life效果

《使用Python实现生命之轮Wheeloflife效果》生命之轮Wheeloflife这一概念最初由SuccessMotivation®Institute,Inc.的创始人PaulJ.Meyer... 最近看一个生命之轮的视频,让我们珍惜时间,因为一生是有限的。使用python创建生命倒计时图表,珍惜时间

防近视护眼台灯什么牌子好?五款防近视效果好的护眼台灯推荐

在家里,灯具是属于离不开的家具,每个大大小小的地方都需要的照亮,所以一盏好灯是必不可少的,每个发挥着作用。而护眼台灯就起了一个保护眼睛,预防近视的作用。可以保护我们在学习,阅读的时候提供一个合适的光线环境,保护我们的眼睛。防近视护眼台灯什么牌子好?那我们怎么选择一个优秀的护眼台灯也是很重要,才能起到最大的护眼效果。下面五款防近视效果好的护眼台灯推荐: 一:六个推荐防近视效果好的护眼台灯的

【Godot4.3】多边形的斜线填充效果基础实现

概述 图案(Pattern)填充是一个非常常见的效果。其中又以斜线填充最为简单。本篇就探讨在Godot4.3中如何使用Geometry2D和CanvasItem的绘图函数实现斜线填充效果。 基础思路 Geometry2D类提供了多边形和多边形以及多边形与折线的布尔运算。按照自然的思路,多边形的斜线填充应该属于“多边形与折线的布尔运算”范畴。 第一个问题是如何获得斜线,这条斜线应该满足什么样

UniApp实现漂亮的音乐歌词滚动播放效果

在现代的音乐播放应用中,歌词的展示和滚动播放已经成为了一个非常常见的功能。今天,我们将通过UniApp来实现一个漂亮的歌词滚动播放功能。我们将使用UniApp提供的组件和API来完成这个任务。 页面结构 在页面的模板部分,我们需要创建一个音频播放器和歌词展示区域。使用<scroll-view>组件来实现歌词的滚动效果。 <template><view class="audio-co

Nuxt3入门:过渡效果(第5节)

你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。 Nuxt 利用 Vue 的 <Transition> 组件在页面和布局之间应用过渡效果。 一、页面过渡效果 你可以启用页面过渡效果,以便对所有页面应用自动过渡效果。 nuxt.config.js export default defineNuxtConfig({app: {pageTransition: {name: 'fade',mode