Shihuidev (#911)

* feat: 增加着色器的拾取计算控制、完善 arcmini

* feat: 完善 enableShaderPick/disableShaderPick 功能

* style: lint style

* feat: 补充调用高德地图公交线路查询 demo

* style: lint style

* feat: 优化弧线的纹理动画

* style: lint style

* feat: 去除greatCircle 的纹理动画优化

* feat: 扩展点图层圆柱效果

* feat: 增加几何体的径向渐变配置

* style: lint style

* fix: 修复bug 图层触发的事件跟图层设置的zIndex无关,只跟插入图层先后顺序有关

* style: lint style

* feat: 补全挤出几何体拾取颜色的光照配置

* style: lint style

* fix: 修复圆柱 cull 问题 mapbox amap 不同

* feat: 图层销毁时的内存泄漏

* style: lint style

* feat: 平面弧线新增弧线偏移量的数据映射能力

* style: lint style

* fix: 修复重复销毁bug

* style: lint style

* feat: 修复 texture 重复销毁问题

* style: lint style

* fix: 修复图层叠加模式下的拾取失效问题

* style: lint style

* fix: 修复纹理贴图在 zoom 大于 12 时存在的问题

* fix: 修复水波点颜色偏暗

* feat: 优化点图层的渲染效果,叠加渲染效果

* style: lint style

* fix: 修复 layer contextmenu 事件丢失

* fix: 修复 map 类型 resize 失效

* style: lint style

* feat: 增加瓦片地图的请求节流

* style: lint style

* feat: 优化热力图在 radius 数值比较大时热力点边缘发生裁剪的现象

* style: lint style

* fix: 修复resize 后 picking shiqu 拾取失败的问题

* feat: 优化 marker/popup 在容器边缘的表现

* feat: 增加 setEnableRender 方法

* style: lint style

* feat: 增加城市图层扫光特效

* style: lint style

* feat: 补全拾取色混合配置

* style: lint style

* feat: 增加高德地图的面积大小点

* style: lint style

* feat: 点优化边缘锯齿

* fix: 修复pointLayer stroke 变暗问题

* fix: 修复混合导致的拾取错误

* feat: add simple point 1.0

* style: lint style

* feat: simple point support stroke

* style: lint style

* feat: 优化 simple point 边缘的锯齿

* style: lint style

* feat: add point cylinder raising animate

* style: lint style

* feat: 优化点图层 icon 在小尺寸下的锯齿问题

* style: lint style

* feat: 修复 layer destroy 报错、未清理、未重绘、补充触发 destroy 事件

* fix: 修复 marker 在 cluster getMakers 失效

* style: lint style

* feat: 清除 marker layer cluster fix

* style: lint style

* fix: 修复 markerLayer hide show 方法缺少 cluster 模式下的控制

* style: lint style

* feat: 取消在 shape 方法执行后的暴力更新

* style: lint style

* feat: 增加图层保底颜色设置

* style: lint style

* feat: 将兜底颜色改为 bottomColor

* fix: color bottom

* style: lint style

* feat: 修改颜色兜底判断逻辑

* style: lint style

* feat: add tnpm dist-tag

* feat: 增加line border 边框

* style: lint style

* feat: 增加 layer 重复销毁过滤

* style: lint style

* feat: 新增 wall 图层

* style: lint style

* feat: add image minimap

* style: lint style
This commit is contained in:
YiQianYao 2022-01-04 15:11:53 +08:00 committed by GitHub
parent 231b006667
commit 20eee04de2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 32 deletions

View File

@ -32,6 +32,8 @@ export default class IconService extends EventEmitter implements IIconService {
this.iconData = [];
this.iconMap = {};
this.canvas = $window.document.createElement('canvas');
this.canvas.width = 128;
this.canvas.height = 128;
this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D;
}

View File

@ -175,10 +175,12 @@ export default class ImageModel extends BaseModel {
this.texture = createTexture2D({
data: this.iconService.getCanvas(),
mag: gl.LINEAR,
min: gl.LINEAR,
// min: gl.LINEAR,
min: gl.LINEAR_MIPMAP_LINEAR,
premultiplyAlpha: false,
width: 1024,
height: this.iconService.canvasHeight || 128,
mipmap: true,
});
};
}

View File

@ -16,40 +16,42 @@ void main(){
vec4 textureColor;
// Y = 0.299R + 0.587G + 0.114B // 亮度提取
if(size < 13.0) { // 尺寸过小时使用 bloom 卷积模糊采样
float h = 1.0/ 512.0;
vec4 color11 = texture2D( u_texture, vec2( pos.x - 1.0 * h, pos.y + 1.0 * h) );
vec4 color12 = texture2D( u_texture, vec2( pos.x - 0.0 * h, pos.y + 1.0 * h) );
vec4 color13 = texture2D( u_texture, vec2( pos.x + 1.0 * h, pos.y + 1.0 * h) );
// if(size < 13.0) { // 尺寸过小时使用 bloom 卷积模糊采样
// float h = 1.0/ 512.0;
// vec4 color11 = texture2D( u_texture, vec2( pos.x - 1.0 * h, pos.y + 1.0 * h) );
// vec4 color12 = texture2D( u_texture, vec2( pos.x - 0.0 * h, pos.y + 1.0 * h) );
// vec4 color13 = texture2D( u_texture, vec2( pos.x + 1.0 * h, pos.y + 1.0 * h) );
vec4 color21 = texture2D( u_texture, vec2( pos.x - 1.0 * h, pos.y) );
vec4 color22 = texture2D( u_texture, vec2( pos.x , pos.y) );
vec4 color23 = texture2D( u_texture, vec2( pos.x + 1.0 * h, pos.y) );
// vec4 color21 = texture2D( u_texture, vec2( pos.x - 1.0 * h, pos.y) );
// vec4 color22 = texture2D( u_texture, vec2( pos.x , pos.y) );
// vec4 color23 = texture2D( u_texture, vec2( pos.x + 1.0 * h, pos.y) );
vec4 color31 = texture2D( u_texture, vec2( pos.x - 1.0 * h, pos.y-1.0*h) );
vec4 color32 = texture2D( u_texture, vec2( pos.x - 0.0 * h, pos.y-1.0*h) );
vec4 color33 = texture2D( u_texture, vec2( pos.x + 1.0 * h, pos.y-1.0*h) );
// vec4 color31 = texture2D( u_texture, vec2( pos.x - 1.0 * h, pos.y-1.0*h) );
// vec4 color32 = texture2D( u_texture, vec2( pos.x - 0.0 * h, pos.y-1.0*h) );
// vec4 color33 = texture2D( u_texture, vec2( pos.x + 1.0 * h, pos.y-1.0*h) );
vec4 bloomPixels = (
1.0*color11 +
1.0*color12 +
1.0*color13 +
1.0*color21 +
1.0*color21 +
2.0*color22 +
1.0*color23 +
1.0*color31 +
1.0*color32 +
1.0*color33
)/10.0;
// luma 去除黑点
float bloomluma = 0.299 * bloomPixels.r + 0.587 * bloomPixels.g + 0.114 * bloomPixels.b;
// 弥补透明度
bloomPixels.a *= bloomluma * 1.5;
textureColor = bloomPixels;
} else {
textureColor = texture2D(u_texture, pos);
}
// vec4 bloomPixels = (
// 1.0*color11 +
// 1.0*color12 +
// 1.0*color13 +
// 1.0*color21 +
// 1.0*color21 +
// 2.0*color22 +
// 1.0*color23 +
// 1.0*color31 +
// 1.0*color32 +
// 1.0*color33
// )/10.0;
// // luma 去除黑点
// float bloomluma = 0.299 * bloomPixels.r + 0.587 * bloomPixels.g + 0.114 * bloomPixels.b;
// // 弥补透明度
// bloomPixels.a *= bloomluma * 1.5;
// textureColor = bloomPixels;
// } else {
// textureColor = texture2D(u_texture, pos);
// }
textureColor = texture2D(u_texture, pos);
if(all(lessThan(v_color, vec4(1.0+0.00001))) && all(greaterThan(v_color, vec4(1.0-0.00001))) || v_color==vec4(1.0)){