supermap iclient3d for cesium场景加载雨雪效果,并加载相应材质

首先新建一个文件夹来存放材质,我选择src/assets/MaterialJson

snow.json,复制粘贴,雨雪用一个就行了

{"material": {"id": "DA82AFCB-129A-4E66-995A-9F519894F58D","cullMode": "none","alphaMode": "opaque","alphaCutoff": 0.009999999776482582,"vertexShaderName": "","fragmentShaderName": "","pbrMetallicRoughness": {"emissiveFactor": { "x": 0.0, "y": 0.0, "z": 0.0 },"emissiveTextureIndex": -1,"emissiveTextureCoordIndex": -1,"emissiveTextureMotion": {"OffsetSpeedU": 0.0,"OffsetSpeedV": 0.0,"OffsetPeriod": 0.0,"TilingSpeedU": 1.0,"TilingSpeedV": 1.0,"TilingPeriod": 0.0},"normalTextureIndex": -1,"normalTextureCoordIndex": 0,"normalTextureScale": 0.1,"occlusionTextureIndex": -1,"occlusionTextureCoordIndex": -1,"occlusionTextureStrength": 1.0,"baseColor": { "x": 1.0, "y": 1.0, "z": 1.0, "w": 1.0 },"baseColorTextureIndex": -1,"baseColorTextureCoordIndex": 0,"baseColorTextureMotion": {"OffsetSpeedU": 0.0,"OffsetSpeedV": 0.0,"OffsetPeriod": 0.0,"TilingSpeedU": 1.0,"TilingSpeedV": 1.0,"TilingPeriod": 0.0},"metallicRoughnessTextureIndex": 1,"metallicRoughnessTextureCoordIndex": 0,"metallicFactor": 0.1,"roughnessFactor": 1.0,"snowEffect": {"snowMaskTextureIndex": 4,"snowNormalTextureIndex": 5,"snow_coverage": 0.32}},"textureunitstates": [{"textureunitstate": {"id": "M_Brick_Clay_Old_BaseTexMap","url": "M_Brick_Clay_Old_BaseTexMap.png","addressmode": { "u": 0, "v": 0, "w": 0 },"filteringoption": 0,"filtermin": 2,"filtermax": 2,"texmodmatrix": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0]}},{"textureunitstate": {"id": "M_Brick_Clay_Old_MetallicRoughMap","url": "M_Brick_Clay_Old_MetallicRoughMap.png","addressmode": { "u": 0, "v": 0, "w": 0 },"filteringoption": 0,"filtermin": 2,"filtermax": 2,"texmodmatrix": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0]}},{"textureunitstate": {"id": "M_Brick_Clay_Old_NormalMap","url": "M_Brick_Clay_Old_NormalMap.png","addressmode": { "u": 0, "v": 0, "w": 0 },"filteringoption": 0,"filtermin": 2,"filtermax": 2,"texmodmatrix": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0]}},{"textureunitstate": {"id": "M_Brick_Clay_Old_Ripple","url": "Ripple_Sheet.png","addressmode": { "u": 0, "v": 0, "w": 0 },"filteringoption": 0,"filtermin": 2,"filtermax": 2,"texmodmatrix": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0]}},{"textureunitstate": {"id": "Snow_masks","url": "Snow_masks.png","addressmode": { "u": 0, "v": 0, "w": 0 },"filteringoption": 0,"filtermin": 2,"filtermax": 2,"texmodmatrix": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0]}},{"textureunitstate": {"id": "Snow_normal","url": "Snow_normal.png","addressmode": { "u": 0, "v": 0, "w": 0 },"filteringoption": 0,"filtermin": 2,"filtermax": 2,"texmodmatrix": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0]}}]}
}

然后需要加载一个三维模型,我就用iserver里面的CBD演示,

有这五个图层,等会就把树换下材质

选择树

let treeLayer = scene.layers.find("Tree@CBD") 
//设置材质
treeLayer.setPBRMaterialFromJSON(snow)

开启雪模式

        viewer.scene.postProcessStages.rain.enabled = falseviewer.scene.postProcessStages.snow.enabled = trueviewer.scene.postProcessStages.snow.uniforms.density = 10;viewer.scene.postProcessStages.snow.uniforms.angle = 0;viewer.scene.postProcessStages.snow.uniforms.speed = 3;

可以看到树都是白白的

开启雨

         viewer.scene.postProcessStages.rain.enabled = trueviewer.scene.postProcessStages.snow.enabled = falseviewer.scene.postProcessStages.rain.uniforms.angle = 6;viewer.scene.postProcessStages.rain.uniforms.speed = 6;

完整代码

<!-- 拖动滑块控制球体属性 -->
<template><div class="PartOneBox"><div id="cesiumContainer"></div><button style="border:1px solid red;padding:5px;" @click="type=!type">点我晴雪天切换</button></div>
</template><script setup lang='ts'>
import { ref, reactive,onMounted, watchEffect} from 'vue'
import snow from "../assets/MaterialJson/snow.json"
//true是雨天,false雪天
let type=ref(true)
let scene:any={}
let viewer:any={}onMounted(()=>
{viewer = new Cesium.Viewer('cesiumContainer')scene = viewer.scene//设置时间,会影响光线var utc=Cesium.JulianDate.fromDate(new Date("2024/08/26 9:30:00"))viewer.clock.currentTime=Cesium.JulianDate.addHours(utc,8,new Cesium.JulianDate())var labelImagery = new Cesium.TiandituImageryProvider({mapStyle: Cesium.TiandituMapsStyle["IMG_C"],//天地图全球中文注记服务token: "这是你的,你需要申请,也可以不加载底图" //由天地图官网申请的密钥})viewer.imageryLayers.addImageryProvider(labelImagery)//加载里面全部模型,也可以单个加载但不是用这个APIscene.open("http://localhost:8090/iserver/services/3D-CBD/rest/realspace")})watchEffect(()=>
{if(type.value)
{if(scene.layers)
{let treeLayer = scene.layers.find("Tree@CBD") treeLayer.removePBRMaterial()viewer.scene.postProcessStages.rain.enabled = falseviewer.scene.postProcessStages.snow.enabled = trueviewer.scene.postProcessStages.snow.uniforms.density = 10;viewer.scene.postProcessStages.snow.uniforms.angle = 0;viewer.scene.postProcessStages.snow.uniforms.speed = 3;treeLayer.setPBRMaterialFromJSON(snow)
}
}
else
{let treeLayer = scene.layers.find("Tree@CBD") treeLayer.removePBRMaterial()     viewer.scene.postProcessStages.rain.enabled = trueviewer.scene.postProcessStages.snow.enabled = falseviewer.scene.postProcessStages.rain.uniforms.angle = 6;viewer.scene.postProcessStages.rain.uniforms.speed = 6;treeLayer.setPBRMaterialFromJSON(snow)
}})</script><style scoped lang='scss'>
.PartOneBox
{width:1200px;height:1000px;margin:50px auto;position:relative;.cesiumContainer{width:100%;height:100%;}
}</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424779.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV结构分析与形状描述符(19)查找二维点集的最小面积外接旋转矩形函数minAreaRect()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 找到一个包围输入的二维点集的最小面积旋转矩形。 该函数计算并返回指定点集的最小面积边界矩形&#xff08;可能是旋转的&#xff09;。开发者…

prompt实用技巧-AI+Mermaid【酷炫钉钉文档】

AI 新技能&#xff0c;最近 chatGPTo1 发布后模型能力出现了新的跨越&#xff0c;之前模型的一本正经的胡说八道幻想模式&#xff0c;让AI 对待理科推理明显弱于文案的 AGI 的生成。 prompt engineer 工程师程序员的福音 prompt 内容如下&#xff0c; 按照以上格式生成创建公…

2024年华为9月4日秋招笔试真题题解

2024年华为0904秋招笔试真题 二叉树消消乐好友推荐系统维修工力扣上类似的题--K站中转内最便宜的航班 二叉树消消乐 题目描述 给定原始二叉树和参照二叉树(输入的二叉树均为满二叉树&#xff0c;二叉树节点的值范围为[1,1000]&#xff0c;二叉树的深度不超过1000)&#xff0c…

【信创】Linux上图形化多ping工具--gping的编译安装与打包 _ 统信 _ 麒麟 _ 方德

原文链接&#xff1a;【信创】图形化多ping工具gping的编译安装与打包 | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在Linux操作系统上使用gping的文章。gping是一款非常实用的命令行工具&#xff0c;它将传统的ping命令进行了可视化改进…

『功能项目』切换职业面板【48】

我们打开上一篇47技能冷却蒙版的项目&#xff0c; 本章要做的事情是切换职业UI面板的功能 首先双击打开Canvas预制体在左上主角面板信息中新建一个button按钮 重命名&#xff08;父物体是按钮Button&#xff0c;子物体Image即可&#xff09; 创建一个Image 设计一下布局 复制三…

窗口嵌入桌面背景层(vb.net,高考倒计时特供版)

开发思路 根据系统生成高考倒计时的具体时间&#xff0c;附加江苏省省统考的时间生成算法&#xff0c;并且用户可以根据实际情况调整前后30天&#xff0c;具有丰富多彩的图片库和强大的自定义功能&#xff0c;效果图见P3 目前程序处于正式版的1.4版本&#xff0c;本程序由本作…

supermap Iclient3d for cesium加载地形并夸大地形

先看效果图 这是没有夸张之前的都江堰 这是夸大五倍后的都江堰 下面展示代码 主要就是加载supermaponline的skt地形然后夸大 <template><div class"PartOneBox"><div id"cesiumContainer"></div></div> </template>…

个人随想-向量数据库,你到底应该选择谁?

随着大模型的新起&#xff0c;vectorstore这1、2年也非常的火。从以前只能用chroma到现在几十种向量数据库&#xff0c;选都选不过来。 以我接触过的很多公司来说&#xff0c;他们去选择向量数据库的时候&#xff0c;很多都和迷茫&#xff0c;不知道应该选择哪个向量数据库&am…

自动驾驶自动泊车场景应用总结

自动泊车技术是当前智能驾驶技术的一个重要分支,其目标是通过车辆自身的感知、决策和控制系统,实现车辆在有限空间内的自主泊车操作。目前自动泊车可分为半自动泊车、全自动泊车、记忆泊车、自主代客泊车四种产品形态,其中, 根据搭载传感器和使用场景的不同,全自动泊车又可…

文本到3D生成

文本到3D生成是一种通过文本描述直接创建三维数字模型的技术。这种技术能够将语言描述转换成可视化的三维模型&#xff0c;使得内容创作者和设计师可以直接从概念阶段跳转到三维可视化&#xff0c;大大加快创作流程并提供更直观的设计和修改过程。 该技术的核心应用之一是基于…

无人直播好帮手,视频指定词语消音,消除违禁词,直播视频录制,音视频分离,分段

1.视频消音功能 一键删除或者静音视频中的词语 2.直播视频录制功能 可同时录制多个平台,多个主播,没有数量限制 3.音视频转码 支持多种音视频格式转换 4.视频频分离 分离视频中的音频和视频 5.视频合并分割 合并和按时间分割视屏 目前正在测试中…如有需要可以先使…

Netty笔记07-粘包与半包(上)

文章目录 前言1. 粘包造成粘包的原因解决粘包的方法 2. 半包造成半包的原因解决半包的方法 粘包现象服务端代码示例客户端代码示例 半包现象现象分析粘包半包滑动窗口MSS 限制Nagle 算法 前言 粘包和半包问题是网络编程中常见的问题&#xff0c;特别是在TCP协议中。通过合理的设…

[Postman]接口自动化测试入门

文章大多用作个人学习分享&#xff0c;如果大家觉得有不足或错漏的地方欢迎评论指出或补充 此文章将完整的走一遍一个web页面的接口测试流程 大致路径为&#xff1a; 创建集合->调用接口登录获取token->保存token->带着token去完成其他接口的自动化测试->断言-&g…

✔2848. 与车相交的点

代码实现&#xff1a; 方法一&#xff1a;哈希表 #define fmax(a, b) ((a) > (b) ? (a) : (b))int numberOfPoints(int **nums, int numsSize, int *numsColSize) {int hash[101] {0};int max 0;for (int i 0; i < numsSize; i) {max fmax(max, nums[i][1]);for …

【人工智能】AI创业的前沿思考 | 从垂直领域到通用智能模型AGI的崛起

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

Golang协程泄漏定位和排查

Golang协程泄漏定位和排查 1 场景&#xff1a;无缓冲channel写阻塞2 排查和定位思路2.1 Golang pprof2.2 协程数监控2.3 操作系统内存泄漏 参考 1 场景&#xff1a;无缓冲channel写阻塞 package mainimport ("log""net/http"_ "net/http/pprof"…

PPT中的图形与图片:插入、调整与格式设置技术详解

目录 引言 一、图形与图片的插入 1. 插入图形 2. 插入图片 二、图形与图片的调整 1. 调整大小与位置 2. 裁剪与旋转 3. 图形与图片的合并与组合 三、图片格式与布局设置 1. 图片格式设置 2. 图片布局设置 示例案例&#xff1a;制作产品展示PPT 四、结论 引言 在现…

【OJ刷题】双指针问题4

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;OJ刷题入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1…

(CVPR-2022)感知优先的扩散模型训练

感知优先的扩散模型训练 Paper Title&#xff1a;Perception Prioritized Training of Diffusion Models Paper是首尔国立大学数据科学与人工智能实验室发表在CVPR 2022的工作 论文地址 Code地址 Abstract 扩散模型通过优化相应损失项的加权和&#xff08;即去噪得分匹配损失&…

IEEE 754浮点数表示

浮点数组成 以单精度浮点数(32位)为例说明&#xff1a; 十进制浮点数组成&#xff1a; 十进制基数(base)为10 二进制浮点数组成&#xff1a; 二进制基数(base)为2 以IEEE 754标准表示十进制数&#xff1a; ( 7.625 ) 10 (7.625)_{10} (7.625)10​&#xff0c;先将其转成…