我决定不从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 = `
- constfloat ratio = 1.0;
- float PI = 3.1415926;
- uniform float iTime;
- const vec2 iResolution = vec2(1.0,1.0);
- varying vec2 vUv;
- vec2 rotate(vec2 p, float rad) {
- mat2 m = mat2(cos(rad), sin(rad), -sin(rad), cos(rad));
- return m * p;
- }
- vec2 translate(vec2 p, vec2 diff) {
- return p - diff;
- }
- vec2 scale(vec2 p, float r) {
- return p*r;
- }
- floatcircle(float pre, vec2 p, float r1, float r2, float power) {
- float leng = length(p);
- float d = min(abs(leng-r1), abs(leng-r2));
- if (r1<leng && leng<r2) pre /= exp(d)/r2;
- float res = power / d;
- return clamp(pre + res, 0.0, 1.0);
- }
- floatrectangle(float pre, vec2 p, vec2 half1, vec2 half2, float power) {
- p = abs(p);
- if ((half1.x<p.x || half1.y<p.y) && (p.x<half
Cesium 与 Babylon.js 可视化 glsl 特效篇(七) - 小专栏
标签:glsl,rad,babylonjs,1.0,float,js,cesium,vec2,Cesium From: https://www.cnblogs.com/haibalai/p/17217414.html