Cesium 与 Babylon.js 可视化 glsl 特效篇(四十五)
我决定不从Babylonjs 基础来讲了 直接整合cesium与babylonjs可视化来讲
我整合一个类库 后续不断更新中
- npm i @haibalai/cesium-babylonjs
初始化cesium -babylonjs 类库, map 是cesium 的viewer对象
- import { BabylonMapManager } from "@haibalai/cesium-babylonjs";
- BabylonMapManager.init(map);
添加特效
- import { BabylonMapManager } from "@haibalai/cesium-babylonjs";
- const fragmentShader =
- `
- #extension GL_OES_standard_derivatives : enable
- #ifdef GL_ES
- precision lowp float;
- #endif
- uniform float time;
- vec2 resolution = vec2(1.0,1.0);
- varying vec2 vUv;
- constfloat count = 7.0;
- floatHash(vec2 p, infloat s)
- {
- vec3 p2 = vec3(p.xy, 27.0 * abs(sin(s)));
- return fract(sin(dot(p2, vec3(27.1, 61.7, 12.4)))*273758.5453123);
- }
- floatnoise(in vec2 p, infloat s)
- {
- vec2 i = floor(p);
- vec2 f = fract(p);
- f *= f * (3.0 - 2.0*f);
- return mix(mix(Hash(i + vec2(0., 0.), s), Hash(i + vec2(1., 0.), s), f.x),
- mix(Hash(i + vec2(0., 1.), s), Hash(i + vec2(1., 1.), s), f.x),
- f.y) * s;
- }
- floatfbm(vec2 p)
- {
- float v = 0.0;
- v += noise(p*1., 0.35);