首页 > 其他分享 >Mapbox 与 Babylon.js 可视化 glsl 特效篇(十八)

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

时间:2022-12-09 19:55:31浏览次数:59  
标签:glsl noise float mapbox 0.5 js vec2 Mapbox babylonjs

我决定不从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 = `
  • precision highp float;
  • uniform float iTime;
  • const vec2 iResolution = vec2(1.0,1.0);
  • varying vec2 vUv;
  • const mat2 m = mat2( 0.80, 0.60, -0.60, 0.80 );
  • floatnoise( in vec2 p )
  • {
  • return sin(p.x)*sin(p.y);
  • }
  • floatfbm4( vec2 p )
  • {
  • float f = 0.0;
  • f += 0.5000*noise( p ); p = m*p*2.02;
  • f += 0.2500*noise( p ); p = m*p*2.03;
  • f += 0.1250*noise( p ); p = m*p*2.01;
  • f += 0.0625*noise( p );
  • return f/0.9375;
  • }
  • floatfbm6( vec2 p )
  • {
  • float f = 0.0;
  • f += 0.500000*(0.5+0.5*noise( p )); p = m*p*2.02;
  • f += 0.250000*(0.5+0.5*noise( p )); p = m*p*2.03;
  • f += 0.125000*(0.5+0.5*noise( p )); p = m*p*2.01;
  • f += 0.062500*(0.5+0.5*noise( p )); p = m*p*2.04;
  • f += 0.031250*(0.5+0.5*noise( p )); p = m*p*2.01;
  • f += 0.015625*(0.5+0.5*noise( p ));
  • return f/0.96875;
  • }
https://xiaozhuanlan.com/topic/3516924087

标签:glsl,noise,float,mapbox,0.5,js,vec2,Mapbox,babylonjs
From: https://www.cnblogs.com/haibalai/p/16969846.html

相关文章

  • Mapbox 与 Babylon.js 可视化 glsl 特效篇(二十)
    我决定不从Babylonjs基础来讲了直接整合mapbox与babylonjs可视化来讲我整合一个类库后续不断更新中npmi@haibalai/mapbox-babylonjs 初始化mapbox-babylonjs......
  • Mapbox 与 Babylon.js 可视化 glsl 特效篇(十九)
    我决定不从Babylonjs基础来讲了直接整合mapbox与babylonjs可视化来讲我整合一个类库后续不断更新中npmi@haibalai/mapbox-babylonjs 初始化mapbox-babylonjs......
  • 原生js实现复制功能
    h5新增了execCommand函数,就可以直接实现复制功能了,再也不用复制插件了,示例代码如下:<!DOCTYPEhtml><html><head><metacharset="utf-8"><metacontent="wi......
  • day35-JSON&Ajax03
    JSON&Ajax034.jQuery的Ajax请求原生Ajax请求问题分析:编写原生的Ajax要写很多的代码,还要考虑浏览器兼容问题,使用不方便在实际工作中,一般使用JavaScript的框架(比如jquer......
  • nodejs 图片加水印
    nodejs图片加水印varimages=require('images');//等待加水印的图片varsourceImg=images("./image.png");//水印图片宽高最大为200pxvarwatermarkImg=ima......
  • JS——bool(布尔)
    在编程中,有时只能如果只需要两个值之一的数据类型是,可以使用YES/NO,ON/OFF,TRUE/FALSE,所以使用布尔数据类型就很适合。通常JavaScript布尔是由字面量创建的原始值,但布尔......
  • JS高程8.1.1属性的类型笔记
    1.对象概念:对象是一组属性的无序集合。2.对象属性的类型:(1)数据属性:数据属性包含一个保存数据值的位置。值会从这个位置读取,也会写入到这个位置。数据属性有四个特性描述它......
  • FusionCharts Free-使用JS加载-flash图表
    使用JS加载 这个JS类文件就在FusionChartsFree>JSClass文件夹下,我们把它拷贝到c:FusionChartsFusionCharts下面。现在,我们把原来的Chart.html复制一份,命名为JSCh......
  • JS 前端自适应打印
    第一种打印:首先是安装npminstall--savehtml2canvas然后在utils包importhtml2canvasfrom"html2canvas";//打印类属性、方法定义/*eslint-disable......
  • JS——Math(数学&随机方法)
    Math对象方法与其他全局对象不同,Math对象没有构造函数。方法和属性是静态的可以在不首先创建Math对象的情况下使用所有方法和属性(常量)方法描述abs(x)返回x......