我决定不从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 = `
uniform float ratio;
float PI = 3.1415926;
uniform float iTime;
// uniform vec2 iResolution = vec2(1.0,1.0);
varying vec2 vUv;
struct Gear
{
float t;
float gearR;
float teethH;
float teethR;
float teethCount;
float diskR;
vec3 color;
};
floatGearFunction(vec2 uv, Gear g)
{
float r = length(uv);
float a = atan(uv.y, uv.x);
float p = g.gearR-0.5g.teethH +
g.teethH/(1.0+exp(g.teethRsin(g.t + g.teethCount*a)));
float gear = r - p;
float disk = r - g.diskR;
return g.gearR > g.diskR ? max(-disk, gear) : max(disk, -gear);
}
floatGearDe(vec2 uv, Gear g)
{
float f = GearFunction(uv, g);
Cesium 与 Babylon.js 可视化 glsl 特效篇(十) - 小专栏