/*
* @Descripttion:
* @version: 1.0
* @Author: tanzheng
* @Date: 2024-1-23 15:30:42
*/
/**
*
* 封装天气场景
* 雾
*/
class Fog{
constructor(viewer){
}
//创建雾
createFog(){
this.collection = viewer.scene.postProcessStages;
this._fog = new Cesium.PostProcessStage({
name: 'czm_fog',
fragmentShader: this.getFog(),
uniforms:{
vfog:function () {
return 0.5;
}
}
});
this.collection.add(this._fog);
viewer.scene.skyAtmosphere.hueShift = -0.8;
viewer.scene.skyAtmosphere.saturationShift = -0.7;
viewer.scene.skyAtmosphere.brightnessShift = -0.33;
viewer.scene.fog.density = 0.001;
viewer.scene.fog.minimumBrightness = 0.8;
}
//获得雪的shader
getFog(){
var fs= `
uniform sampler2D colorTexture;
uniform sampler2D depthTexture;
varying vec2 v_textureCoordinates;
uniform float vfog;
void main(void)
{
vec4 origcolor=texture2D(colorTexture, v_textureCoordinates);
vec4 fogcolor=vec4(0.8,0.8,0.8,0.5);
float depth = czm_readDepth(depthTexture, v_textureCoordinates);
vec4 depthcolor=texture2D(depthTexture, v_textureCoordinates);
float f=(depthcolor.r-0.22)/vfog;
if(f<0.0) f=0.0;
else if(f>0.3) f=0.3;
gl_FragColor = mix(origcolor,fogcolor,f);
}
`
return fs;
}
//清除雪
clearFog(){
viewer.scene.postProcessStages.remove(this._fog);
}
}
相关推荐
告别粒子闪烁!用Cesium PostProcessStage实现稳定雨雪雾天气(附完整Shader代码)
本文详细介绍了如何利用Cesium的PostProcessStage技术实现稳定的雨雪雾天气效果,彻底解决传统粒子系统带来的闪烁问题。通过完整的Shader代码和参数调优指南,开发者可以轻松集成高性能的天气效果到三维地理可视化项目中,提升场景真实感。
cesium 实现雾霾效果
【代码】cesium 实现雾霾效果。
Cesium天气特效实战:从Shader原理到封装可复用的Rain/Snow/Fog类库
本文深入探讨了Cesium框架下天气特效的实现,从Shader原理到封装可复用的Rain/Snow/Fog类库。通过对比粒子系统与后处理Shader方案,详细解析了噪声算法在雨雪雾效果中的应用,并提供了工程化封装的最佳实践,帮助开发者打造高性能、可配置的三维天气特效。
Cesium实现高度雾
Cesium实现高度雾
Cesium3Dtilesets 使用customShader的解读以及泛光效果示例
光带原理在旋转弹跳四棱锥这篇文章里早已经阐述过,但还是有不少靓仔靓女可能会感到疑惑,在3Dtilesets里怎么使用?为啥我在网上看到的为数不多的代码示例我看不懂?是由于没理解透彻导致的。借此机会,提供一个小示例,从头到尾的应用一下。 ...
Cesium天气特效实战:如何用Shader代码打造可调节的雨雪雾效果(附完整代码)
本文详细介绍了在Cesium三维地理信息平台中,利用GLSL Shader代码实现可动态调节的天气特效。通过后处理技术,文章拆解了参数化的雨、雪、雾效果实现原理,并提供了完整的代码示例,帮助开发者打造高度定制、性能可控的动态天气系统。
Cesium动态天气效果实战:参数化雨雪雾模拟
本文详细介绍了如何在Cesium三维场景中实现参数化的动态天气效果模拟。通过利用Cesium的PostProcessStage后处理技术,结合自定义Shader着色器,开发者可以灵活控制雨、雪、雾等天气效果的强度、密度、速度及范围,从而为三维可视化项目增添沉浸感和真实感。文章提供了完整的实战代码和参数解析,帮助用户打造可交互的“天气控制台”。
[cesium] | 建筑光效 | 基于3dtileset的建筑物效果插件 | 支持自定义着色器
说明 之前写了一篇关于建筑物效果实现的博客,后面有不少网友私信我,这里把代码封装了一下上传到GitHub上 ,有需要的自行提取。 无需修改源码,引入即可使用,可以的收藏一下。 后续会更新一些其他效果和分析功能。 使用 // 特效 默认开启 Cesium.TILE_EFFECT_STAYE = true; // 片元着色器 默认 可以自定义 Cesium.TILE_FS_BODY = ` float stc_pl = fract(czm_frame
告别粒子闪烁!用Cesium PostProcessStage实现稳定雨雪雾天气特效(附完整Shader代码)
本文深入解析了Cesium中利用PostProcessStage和Shader技术实现稳定雨雪雾天气特效的全屏后处理方案。通过对比粒子系统的局限性,详细介绍了Shader代码实现、工程化封装及性能优化策略,帮助开发者解决视角移动时的粒子闪烁问题,提升三维场景的视觉连贯性和沉浸感。
别再被粒子系统坑了!用Cesium PostProcessStage实现稳定全屏雨雪雾效果(附完整Shader代码)
本文详细介绍了如何利用Cesium的PostProcessStage技术实现稳定的全屏雨雪雾天气效果,相比传统的粒子系统方案,PostProcessStage具有视角稳定、性能高效等优势。文章提供了完整的Shader代码实现,包括雪景、降雨和雾效的深度解析,帮助开发者突破粒子系统局限,打造沉浸式三维地理可视化体验。
第44节:cesium 大雾效果(cesium自带)(含源码+视频)
cesium 大雾效果(cesium自带)
Cesium粒子效果之雨、雪、雾
Cesium粒子效果之雨、雪、雾 功能简介 气象粒子效果新增 气象粒子效果移除 组件封装 原理介绍 对Cesium的粒子效果理论理解刚入门,如果有表述不正确欢迎指正。 以下代码快主要是利用Cesium的PostProcessStage,创建特定的glsl格式的着色器,着色器具体代码来源于网络整理,整体以验证可用。 代码 /*** * 粒子效果:雨、雪、雾 */ function addPostProcessStage(viewer,name,type){ let stage = getStage(
天空之雾 - Cesium中的3D天气效果
总结起来,通过使用Cesium的雾化器功能,我们可以轻松地为场景添加天空之雾效果。通过调整雾化的浓度和屏幕空间误差因子,我们可以实现不同条件下的逼真雾化效果。在实际应用中,你可能还需要结合其他的效果来增强天空之雾的真实感。例如,你可以使用Cesium的光照模型来调整雾化效果的颜色和强度,以使其与周围环境相匹配。以上代码只是一个简单的示例,你可以根据自己的需求调整雾化效果的参数。例如,你可以根据不同的天气条件设置不同的浓度值,以达到更加逼真的效果。属性来调整雾化的屏幕空间误差因子,数值越大雾化效果越明显。
Cesium实现雨、闪电、雪、雾天气效果
基于 Cesium 的三维地理信息场景,集成了天气效果后处理、3D 模型加载、水域渲染等功能。
基于Cesium带参数可微调的雨雪雾天气效果
Cesium中的天气效果,虽然没有UE中的真实,细腻,但在一定程度上也可以反映现实及某一时刻的天气状态,而大部分基于Cesium开源的天气实现,并没有参数调整,比如雨下的角度、雨点大小、速度等;本文提供了天气一些效果参数的传入,可以进行一定程度的微调。
基于Cesium的开关闸放水粒子效果
在数字孪生应用中,水利是非常重要的应用场景,在基于Cesium中,利用粒子效果来表现闸站开关闸放水的效果也是经常涉及到,放水效果,可以在整体的场景中,一眼体现闸门的开关闸状态,并且可以基于粒子效果的参数,视觉上体现开度情况,更加真实的体现实际的闸门控制状态。如关闸效果中,并不是简单的直接循环删除所有闸口的粒子对象,关闸效果是逐渐放水减小的过程,到无放水的时候,再删除粒子对象,这样视觉效果比较真实舒服。 衍生改变粒子效果的贴图、颜色、角度(偏转角、俯仰角、翻滚角),可以用粒子效果来表现喷泉、火、雾等效果。
Cesium深入浅出之插件封装
引子 一年多了,吭哧吭哧写了很多Cesium的代码,也做了不少Cesium插件,不过都是按照自定的格式封装的,突然想到Cesium也是有自己的插件格式的吧?我隐约记得在哪里看到过有个叫Mixin的东西,好像cesium-navigation插件就是用它来封装的。于是乎,翻了翻API,又了查看Cesium源码,发现Cesium中确实有类似的封装,基本可以确定这个模式没跑,那就开整吧。 预期效果 无图不欢,先上效果图,这是我封装的一个简易的地图选项插件。 实现原理 基本原理就是上面提到的Mixin
详细教程:如何使用elasticsearch 8.x进行向量搜索
大模型的热度使得向量数据库和embedding也成了ai领域的热门话题,有别于从头开始训练一个大模型或基于基础模型进行微调的方式,embedding检索相关上下文是对大模型进行定制的各种方法中成本最低、技术实现最便捷的方式。从技术实现的角度,
402



被折叠的 条评论
为什么被折叠?



