Mapbox 与 Babylon.js 可视化 glsl 特效篇(一)

我决定不从Babylonjs 基础来讲了 直接整合mapbox与babylonjs可视化来讲

我整合一个类库 后续不断更新中

npm i @haibalai/mapbox-babylonjs

初始化mapbox-babylonjs 类库, map 是mapbox.gl 的map 对象

import { BabylonMapManager } from “@haibalai/mapbox-babylonjs”;
BabylonMapManager.init(map);

添加特效

import { BabylonMapManager } from “@haibalai/mapbox-babylonjs”;
const fragmentShader = `
uniform float iTime;
constfloat PI = 3.14159265359;
floatrandom(float p){
return fract(sin§ * 10000.0);
}
floatnoise(vec2 p){
float t = iTime / 2000.0;
if(t > 1.0) t -= floor(t);
return random(p.x * 14. + p.y * sin(t) * 0.5);
}
vec2 sw(vec2 p){
return vec2(floor(p.x), floor(p.y));
}
vec2 se(vec2 p){
return vec2(ceil(p.x), floor(p.y));
}
vec2 nw(vec2 p){
return vec2(floor(p.x), ceil(p.y));
}
vec2 ne(vec2 p){
return vec2(ceil(p.x), ceil(p.y));
}
floatsmoothNoise(vec2 p){
vec2 inter = smoothstep(0.0, 1.0, fract§);
float s = mix(noise(sw§), noise(se§), inter.x);
float n = mix(noise(nw§), noise(ne§), inter.x);
return mix(s, n, inter.y);
}
mat2 rotate (infloat theta){
float c = cos(theta);
float s = sin(theta);
return mat2(c, -s, s, c);
}
floatcirc(vec2 p){
float r = length§;
r = log(sqrt®);
return abs(mod(4.0 * r, PI * 2.0) - PI) * 3.0 + 0.2;
}
Mapbox 与 Babylon.js 可视化 glsl 特效篇(一) - 小专栏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值