Cesium添加全球水材质

Cesium添加全球水材质

实现效果

全球水面

全球水面放大

材质贴图

earthspec1k.jpg
在这里插入图片描述
waterNormals.jpg在这里插入图片描述

关键代码

let worldRectangle;

function createPrimitives(scene) {
	worldRectangle = scene.primitives.add(
      new Cesium.Primitive({
        geometryInstances: new Cesium.GeometryInstance({
          geometry: new Cesium.RectangleGeometry({
            rectangle: Cesium.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0),
            vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
          }),
        }),
        appearance: new Cesium.EllipsoidSurfaceAppearance({
          aboveGround: false,
          material: new Cesium.Material({
            fabric: {
              type: 'Water',
              uniforms: {
                specularMap: '../images/earthspec1k.jpg',
                normalMap: Cesium.buildModuleUrl('Assets/Textures/waterNormals.jpg'),
                frequency: 10000.0,
                animationSpeed: 0.01,
                amplitude: 1.0,
              },
            },
          }),
        }),
        show: true,
      }),
    )
}

createPrimitives();
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 简洁易用3D场景创建和控制工具python源码+项目说明(适用于科研、多智能体强化学习领域的3D演示、娱乐等).zip 一个基于ThreeJs+Python的项目,提供了一个简洁易用的Python接口,用于创建和控制3D场景的可视化工具。它适用于**科研**、多智能体强化学习领域的3D演示、娱乐等应用。vhmap具有以下特点: 简化的Python接口;客户端渲染,流畅的帧率;占用服务端资源极少;基于ThreeJs,支持拖动和手机触屏;支持透视和投影两种视图切换;支持回放;使用zlib压缩数据流,网络带宽需求小。 通过以上特点,vhmap为用户提供了一个简单高效、具有交互性的3D可视化解决方案。 ## 面向场景和特点 面向场景: - 科研,尤其是多智能体强化学习领域 - 3D演示 - 娱乐 应用特点: - Python接口简化到极致 - 渲染在客户端,自动插帧,纵享丝滑帧率 - 服务端依赖少 - 占用服务端资源极少 - 基于ThreeJs,支持拖动,支持手机触屏 - 支持透视和投影两种视图的切换 - 支持回放 - 使用zlib压缩数据流,网络带宽需求小 ## 安装 ```shell pip install vhmap>=4 ``` ## 20行代码-展示VHMAP的简单、丝滑 实现下图,仅需要20行python代码(含初始化) <div align="center"> <img src="md_imgs/动画x7.gif" width="700" > </div> 界面功能、操作介绍: - 鼠标右键平移,左键旋转,滚轮缩放 - 支持触屏,如果你笔记本或手机有触控屏幕 - 左上角显示渲染刷新率 - play fps:每秒播放多少关键帧(小于渲染刷新率,则插帧;大于渲染刷新率,则超出部分无效) - pause:暂停 - next frame:暂停并切换下一帧 - previous frame:暂停并切换上一帧 - loop to start:播放完所有数据,回到第一帧 - ppt step:以极慢极慢的速度播放一帧,方便录屏,按下后会卡顿几秒 - use orthcam:切换透视视图(物体近大远小)/投影视图(工程制图学过没), - P.S. 第一次切换到投影视图时,需要用鼠标滚轮放大画面 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
Cesium是一个用于创建地球上三维可视化的开源JavaScript库。它提供了丰富的功能和工具,可以在浏览器中展示地理空间数据。在Cesium添加图钉可以用于标记地球上的特定位置或者添加自定义的标记。 要在Cesium添加图钉,可以按照以下步骤进行操作: 1. 创建一个Cesium Viewer对象,用于显示地球场景。 2. 创建一个Entity对象,用于表示图钉的属性和位置。 3. 将Entity对象添加到Viewer的entities集合中,以便在地球上显示。 4. 可选:可以为图钉添加自定义的样式、标签、描述等属性。 下面是一个简单的示例代码,演示如何在Cesium添加一个图钉: ```javascript // 创建Cesium Viewer对象 var viewer = new Cesium.Viewer('cesiumContainer'); // 创建一个Entity对象 var pinEntity = viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), billboard: { image: 'path/to/pin.png', verticalOrigin: Cesium.VerticalOrigin.BOTTOM } }); // 可选:为图钉添加标签和描述 pinEntity.label = { text: 'My Pin', showBackground: true, font: '14px sans-serif', horizontalOrigin: Cesium.HorizontalOrigin.CENTER, verticalOrigin: Cesium.VerticalOrigin.BOTTOM, pixelOffset: new Cesium.Cartesian2(0, -20) }; pinEntity.description = 'This is a custom pin on the map.'; // 设置地球视角 viewer.zoomTo(pinEntity); ``` 这段代码创建了一个Cesium Viewer对象,并在地球上添加了一个图钉。图钉使用一个图片作为标记,并设置了位置和其他属性。你可以根据需要自定义图钉的样式和属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值