我决定不从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§;
vec2 f = fract§;
f = f * (3.0 - 2.0f);
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(p1., 0.35);
Cesium 与 Babylon.js 可视化 glsl 特效篇(四十五) - 小专栏