From 09136611f4521c5ecb892a7ddf67a8e680e74429 Mon Sep 17 00:00:00 2001 From: lvisei Date: Tue, 30 Apr 2024 15:07:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Mapbox/Maplibre=2020=20=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E4=BB=A5=E4=B8=8A=E6=95=B0=E6=8D=AE=E5=81=8F=E7=A7=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#2416)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip: data shake case * fix: fix line data offset in mapbox * refactor: 完成点线面图层属性索引重构 * refactor: 完成 citybuliding\earth\geometry\heatmap 图层属性索引重构 * refactor: 完成 image/ raster/wind 图层属性索引重构 * refactor: 标记最大索引 * chore: remove log * fix: line layer data shake * wip: point shape * wip: line simpleline * wip: pont billboard * wip: point shape * wip: wall shape * wip: raster layer * wip: polygon * test: update case * wip: extrude shape * refactor: 自定义开启双精度属性 * chore: fetch time * chore(CI): update snapshots (#2428) * chore: turn up fetch time * chore(CI): update snapshots (#2429) * chore: add changeset --------- Co-authored-by: lvisei <26923747+lvisei@users.noreply.github.com> --- .changeset/slimy-starfishes-joke.md | 9 + __tests__/integration/gallery.spec.ts | 6 +- __tests__/integration/line.spec.ts | 22 +- __tests__/integration/point.spec.ts | 13 +- __tests__/integration/polygon.spec.ts | 6 +- .../snapshots/Gallery_variFlight.png | Bin 0 -> 228929 bytes __tests__/integration/snapshots/Line_arc.png | Bin 20343 -> 18234 bytes .../integration/snapshots/Line_arc3D.png | Bin 0 -> 45917 bytes .../integration/snapshots/Line_normal.png | Bin 0 -> 16936 bytes .../integration/snapshots/Line_simple.png | Bin 0 -> 16628 bytes __tests__/integration/snapshots/Line_wall.png | Bin 0 -> 165232 bytes .../integration/snapshots/Mask_single.png | Bin 17496 -> 18013 bytes .../integration/snapshots/Point_billboard.png | Bin 17674 -> 17661 bytes .../integration/snapshots/Point_column.png | Bin 22319 -> 26475 bytes .../integration/snapshots/Point_fill.png | Bin 24145 -> 24022 bytes .../snapshots/Point_fill_image.png | Bin 18385 -> 20779 bytes .../integration/snapshots/Point_text.png | Bin 53355 -> 53507 bytes .../integration/snapshots/Polygon_extrude.png | Bin 42404 -> 55873 bytes .../snapshots/Polygon_extrusion.png | Bin 0 -> 29794 bytes .../integration/snapshots/Polygon_fill.png | Bin 100982 -> 26363 bytes examples/demos/gallery/index.ts | 1 + .../arc_plane.ts => gallery/vari-flight.ts} | 0 examples/demos/line/arc-3d.ts | 44 ++++ examples/demos/line/arc.ts | 48 +---- examples/demos/line/greatcircle.ts | 51 +++++ examples/demos/line/index.ts | 4 +- examples/demos/line/normal.ts | 1 - examples/demos/line/simple.ts | 73 +++++++ examples/demos/line/wall.ts | 1 + examples/demos/point/column.ts | 2 +- examples/demos/point/dot.ts | 53 +++++ examples/demos/point/fill.ts | 5 +- examples/demos/point/fill_image.ts | 4 +- examples/demos/point/image.ts | 16 +- examples/demos/point/index.ts | 2 + examples/demos/point/radar.ts | 31 +++ examples/demos/polygon/extrude-city.ts | 36 ++++ examples/demos/polygon/extrude.ts | 17 -- examples/demos/polygon/extrusion.ts | 45 ++++ examples/demos/polygon/fill-linear.ts | 61 ++++++ examples/demos/polygon/fill.ts | 73 +++---- examples/demos/polygon/index.ts | 3 + examples/demos/raster/image_coord.ts | 29 +-- .../core/src/services/layer/ILayerService.ts | 6 +- packages/core/src/services/renderer/IModel.ts | 11 +- .../services/shader/IShaderModuleService.ts | 18 +- .../services/shader/ShaderModuleService.ts | 93 ++++---- packages/core/src/shaders/picking.vert.glsl | 2 +- packages/core/src/shaders/projection.glsl | 201 +++++++++++------- .../layers/src/citybuliding/models/build.ts | 18 +- .../src/citybuliding/shaders/build_frag.glsl | 12 +- .../src/citybuliding/shaders/build_vert.glsl | 12 +- packages/layers/src/core/BaseLayer.ts | 2 + packages/layers/src/core/BaseModel.ts | 186 ++++++++++------ .../layers/src/core/CommonStyleAttribute.ts | 86 +++----- .../layers/src/earth/models/atmosphere.ts | 51 +++-- packages/layers/src/earth/models/base.ts | 50 +++-- .../layers/src/earth/models/bloomsphere.ts | 50 +++-- .../shaders/atmosphere/atmosphere_vert.glsl | 12 +- .../src/earth/shaders/base/base_vert.glsl | 6 +- .../shaders/bloomshpere/bloomsphere_vert.glsl | 9 +- .../layers/src/geometry/models/billboard.ts | 14 +- packages/layers/src/geometry/models/plane.ts | 11 +- packages/layers/src/geometry/models/sprite.ts | 1 + .../src/geometry/shaders/billboard_vert.glsl | 6 +- .../src/geometry/shaders/plane_vert.glsl | 10 +- .../src/geometry/shaders/sprite_vert.glsl | 14 +- packages/layers/src/heatmap/models/grid.ts | 10 +- packages/layers/src/heatmap/models/grid3d.ts | 17 +- packages/layers/src/heatmap/models/heatmap.ts | 23 +- packages/layers/src/heatmap/models/hexagon.ts | 9 +- .../src/heatmap/shaders/grid/grid_vert.glsl | 84 ++++---- .../heatmap/shaders/grid3d/grid_3d_vert.glsl | 18 +- .../shaders/heatmap/heatmap_3d_vert.glsl | 35 +-- .../heatmap/heatmap_framebuffer_vert.glsl | 7 +- .../heatmap/shaders/heatmap/heatmap_vert.glsl | 7 +- .../heatmap/shaders/hexagon/hexagon_vert.glsl | 10 +- packages/layers/src/image/models/image.ts | 14 +- .../layers/src/image/shaders/image_vert.glsl | 14 +- packages/layers/src/line/models/arc.ts | 67 +++++- packages/layers/src/line/models/arc_3d.ts | 64 +++++- packages/layers/src/line/models/flow.ts | 48 ++++- .../layers/src/line/models/great_circle.ts | 43 +++- packages/layers/src/line/models/line.ts | 25 ++- .../layers/src/line/models/simple_line.ts | 58 ++--- packages/layers/src/line/models/wall.ts | 67 ++---- .../src/line/shaders/arc/line_arc_vert.glsl | 113 +++++----- .../line/shaders/arc3d/line_arc_3d_vert.glsl | 23 +- .../src/line/shaders/flow/flow_line_vert.glsl | 81 +++---- .../line_arc_great_circle_vert.glsl | 21 +- .../src/line/shaders/line/line_vert.glsl | 23 +- .../line/shaders/simple/simpleline_vert.glsl | 11 +- .../src/line/shaders/wall/wall_vert.glsl | 67 +++--- packages/layers/src/mask/models/fill.ts | 1 + .../layers/src/mask/shaders/mask_vert.glsl | 2 +- .../layers/src/plugins/PixelPickingPlugin.ts | 4 +- .../plugins/RegisterStyleAttributePlugin.ts | 29 +-- .../src/point/models/billboard_point.ts | 14 +- .../layers/src/point/models/earthExtrude.ts | 17 +- packages/layers/src/point/models/earthFill.ts | 18 +- packages/layers/src/point/models/extrude.ts | 32 ++- packages/layers/src/point/models/fill.ts | 20 +- packages/layers/src/point/models/fillImage.ts | 21 +- packages/layers/src/point/models/image.ts | 17 +- packages/layers/src/point/models/normal.ts | 14 +- packages/layers/src/point/models/radar.ts | 18 +- packages/layers/src/point/models/text.ts | 23 +- .../billboard/billboard_point_vert.glsl | 17 +- .../earthExtrude/earthExtrude_vert.glsl | 32 ++- .../shaders/earthFill/earthFill_vert.glsl | 12 +- .../point/shaders/extrude/extrude_vert.glsl | 76 ++++--- .../src/point/shaders/fill/fill_vert.glsl | 24 +-- .../shaders/fillImage/fillImage_vert.glsl | 16 +- .../src/point/shaders/image/image_vert.glsl | 29 +-- .../src/point/shaders/normal/normal_vert.glsl | 9 +- .../src/point/shaders/radar/radar_vert.glsl | 20 +- .../src/point/shaders/text/text_vert.glsl | 17 +- packages/layers/src/polygon/models/extrude.ts | 30 ++- .../layers/src/polygon/models/extrusion.ts | 38 +++- packages/layers/src/polygon/models/fill.ts | 15 +- packages/layers/src/polygon/models/ocean.ts | 11 +- packages/layers/src/polygon/models/water.ts | 12 +- .../polygon_extrude_picklight_vert.glsl | 32 +-- .../shaders/extrude/polygon_extrude_vert.glsl | 42 ++-- .../extrude/polygon_extrudetex_vert.glsl | 34 +-- .../extrusion/polygon_extrusion_vert.glsl | 14 +- .../shaders/fill/fill_linear_vert.glsl | 11 +- .../src/polygon/shaders/fill/fill_vert.glsl | 17 +- .../src/polygon/shaders/ocean/ocean_vert.glsl | 4 +- .../shaders/water/polygon_water_vert.glsl | 8 +- packages/layers/src/raster/index.ts | 3 +- packages/layers/src/raster/models/raster.ts | 14 +- .../layers/src/raster/models/rasterRgb.ts | 14 +- .../src/raster/models/rasterTerrainRgb.ts | 14 +- .../raster/shaders/raster/raster_2d_vert.glsl | 12 +- .../raster/shaders/rgb/raster_rgb_vert.glsl | 22 +- .../shaders/terrain/terrain_rgb_vert.glsl | 4 +- packages/layers/src/wind/models/wind.ts | 9 + .../layers/src/wind/shaders/wind_vert.glsl | 5 +- packages/utils/src/index.ts | 6 +- packages/utils/src/math.ts | 9 + 141 files changed, 2117 insertions(+), 1241 deletions(-) create mode 100644 .changeset/slimy-starfishes-joke.md create mode 100644 __tests__/integration/snapshots/Gallery_variFlight.png create mode 100644 __tests__/integration/snapshots/Line_arc3D.png create mode 100644 __tests__/integration/snapshots/Line_normal.png create mode 100644 __tests__/integration/snapshots/Line_simple.png create mode 100644 __tests__/integration/snapshots/Line_wall.png create mode 100644 __tests__/integration/snapshots/Polygon_extrusion.png rename examples/demos/{line/arc_plane.ts => gallery/vari-flight.ts} (100%) create mode 100644 examples/demos/line/arc-3d.ts create mode 100644 examples/demos/line/greatcircle.ts create mode 100644 examples/demos/line/simple.ts create mode 100644 examples/demos/point/dot.ts create mode 100644 examples/demos/point/radar.ts create mode 100644 examples/demos/polygon/extrude-city.ts create mode 100644 examples/demos/polygon/extrusion.ts create mode 100644 examples/demos/polygon/fill-linear.ts diff --git a/.changeset/slimy-starfishes-joke.md b/.changeset/slimy-starfishes-joke.md new file mode 100644 index 00000000000..031f4444f98 --- /dev/null +++ b/.changeset/slimy-starfishes-joke.md @@ -0,0 +1,9 @@ +--- +'@antv/l7-layers': patch +'@antv/l7-core': patch +'@antv/l7-maps': patch +--- + +fix: Mapbox/Maplibre 20 层级以上数据偏移问题 +fix: 修复点图层部分 shape 中心点计算有误 +fix: 修复立体面图层光照计算有误 diff --git a/__tests__/integration/gallery.spec.ts b/__tests__/integration/gallery.spec.ts index b968cb37a5b..3277097fff0 100644 --- a/__tests__/integration/gallery.spec.ts +++ b/__tests__/integration/gallery.spec.ts @@ -3,7 +3,11 @@ import { generateCanvasTestCases } from './utils/generator'; const TEST_CASES = [ { name: 'fujian', - sleepTime: 500, + sleepTime: 1000, + }, + { + name: 'variFlight', + sleepTime: 2000, }, ]; diff --git a/__tests__/integration/line.spec.ts b/__tests__/integration/line.spec.ts index b6fc370d030..bb563d84ad4 100644 --- a/__tests__/integration/line.spec.ts +++ b/__tests__/integration/line.spec.ts @@ -2,19 +2,31 @@ import { generateCanvasTestCases } from './utils/generator'; const TEST_CASES = [ { - name: 'arc', - sleepTime: 500, + name: 'simple', + }, + { + name: 'normal', }, { - name: 'arc_plane', + name: 'dash', + snapshots: false, sleepTime: 500, }, + { + name: 'wall', + sleepTime: 1000, + }, { name: 'arc', - sleepTime: 600, + sleepTime: 500, }, { - name: 'dash', + name: 'arc3D', + sleepTime: 500, + }, + { + name: 'greatcircle', + snapshots: false, sleepTime: 500, }, { diff --git a/__tests__/integration/point.spec.ts b/__tests__/integration/point.spec.ts index 4bbf6df00bc..426d3070af9 100644 --- a/__tests__/integration/point.spec.ts +++ b/__tests__/integration/point.spec.ts @@ -9,14 +9,19 @@ const TEST_CASES = [ sleepTime: 200, }, { - name: 'fill_image', + name: 'dot', + snapshots: false, }, { name: 'fill', }, - // { - // name: 'image', - // }, + { + name: 'fill_image', + }, + { + name: 'image', + snapshots: false, + }, { name: 'text', }, diff --git a/__tests__/integration/polygon.spec.ts b/__tests__/integration/polygon.spec.ts index 2c0f0dca77c..ccbce8a5537 100644 --- a/__tests__/integration/polygon.spec.ts +++ b/__tests__/integration/polygon.spec.ts @@ -3,7 +3,11 @@ import { generateCanvasTestCases } from './utils/generator'; const TEST_CASES = [ { name: 'extrude', - sleepTime: 200, + sleepTime: 500, + }, + { + name: 'extrusion', + sleepTime: 1000, }, { name: 'fill', diff --git a/__tests__/integration/snapshots/Gallery_variFlight.png b/__tests__/integration/snapshots/Gallery_variFlight.png new file mode 100644 index 0000000000000000000000000000000000000000..2ede15514214eb12be07e7a2ebd3528d47c9e3f5 GIT binary patch literal 228929 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�WU{C@d(u0QQP-gi+5j6gmy`t+m@AlNji|GE97mT5>G`Uaww18&S1BW zf1{O=u2jL7TKr=Vjy}v&SZ=gCS11Mm1G@X&xFT;y*r7YO>s{=BoN1RNvF-(Z*laGt zq=Ws#(6?9E=F{!m=OY@1Yz0tY`wUj*Y zDQF4E+I2YVHm;4;r5f+IjqloeCnUlt@6O^#;l&nDODZP4K8Qa6-j6rR_VkjF`oGCD z9&v>26r_|}Vf(oHW8rle@b*f|jXtSh2mJx<3nW(b4n^S(ad9;RBZTv40RbGK9dx}H zY#TY#$7Ab=3t0k22`IPq*a}OiZ(Nm;I;|+obXmmkH(k|iERjYdvDc$}pU$-9KUOwn zM8yABvC=k!wlC3~Wzf2JfXztTpPqGM$(KZimUlC=f_|>X{<91q*Ww4S3+4lOn-JM9 z^zE@N&Ab21{@!2dOI&CQXIY?=sl2WHX5V}=-WKwLl2#+QR0HJ?B)`yM@%Ne2)}K&F z@S@$WuXyM9pQPEw%zsQ+xdS+lK?5Y$Hb`Tgmgf0{Qwp$E*M0@;XKp5^+UTF9< zJ0v*<{RN2~7R}oEVBSAZBqZ#Q!v#}nUmc5~g-&=7V1zKFUg9FWdorG$L~)sVKh8Kq``7h>58Lcy5MMy=RKu-fMhXQzj?)dY<^i$S zQ6}$uO!TA;^Qeom6B~tDB!9>3?4@TpH?|gQaIv!rx6_nB_@Hh)bQA7bOk&3 zvJ9g>cY^$D?Oc;s-5d8-uCaL^&i6kg{!wv`maohZqrTAiI8lca8ekc)-8!3iNa; z!x3A{K>NVUv=;?FbLyj0S-avVm!?yE?*iQt15pPZT__YYlbnE{2}6gTh5PRnNbn}> z)Ih_!{G`cyTnbzsjQepS5qXR7%J0_YGL>To=oKyYnG%~4SzE*^F>jqBIo!fS`9N`n zz#&~#vk3c18yTz1@pz09DOEVstI#8iRW@Y7=pMnty!6}#@VI^m-#OjFeu9YO0OKF( z{Tu`~fquB_Ap?SJs{%V4XB57SKlT^Rw;(9#)E^4Ps4$5Bt6oyY;}qu)a%4%VWCo4$ zsdk^6*_QgeK9QCEWcnmsuFqUbst%HA{j6&GCz&v-R|`L4NLi_3_)md3PY1VT-UR-t zi)1ZOq%_&}ZmCDi->7$Y4lAfNE|Z%1F8!Mbo;J4wiGxfL{CHGqmU)XSN#fZP4{Aze z)lGrx0qoM=Xg7KEUra3cAS3o?UTTAFBSWo4c^4cyCGm}mCN9gzT4;Ja=q9TvbriP< z!t{byA+*G%Ls6XBHO-rQ( zs#rsC(2%lkZOi8C2nF4>=Y!?&{lQEzOo=f81lSv~vOoLhp8B{W&63mk*wvgjUJ=@h ziwW}@1h%nKv0`CI!&tH@TIg`sg9c7g2EF3>?0X$d7k$cZarJWgBx#)_S>aAWUih;r;rr>G|Ip|hMI*j5+own&frtsU8wJxd{!d>ZwJ&|11@O+ zqOuvU;JdUOz{s*J>6)J*24IBQVF~668}AJZCGZm0?dc!ZoGaEaPo;uk4~#7A5}4Oj z9H*V}265i}q=voEL8gh&8Pc%K!1dFyv@#rZMj5QsY$uiG4&f|`(yp=nNr-((-NFMS zM9zLvP>+44Bhs;h9-tdQDKtE;RO>c-I-)^tMX@0!CL83vB8%pg19MnJ%XX1IIo0);Mmp2xWYpZdw(EaQ!muJw zd^!!5H2+VzSCQXn&TVTIA15}o(}`^Athe+&^0A(@vw;lkrU+)e6RdE7ZP#B!eJUKA zAs%x#jRCdvlN8x7eDh#Xz%Y&C?7=a2tAI$%zDkaVkqKyL_;*CG(zHWt=cek@q6)o* zLXZ>mF!nwp9r+W-RmkS$68Fl>1{@(Uv8U6@_rD*kNKMSsb5_8Y$am~l4%$>OMCLM_ z1|+)b)QV1vez+TW`(V@n--AIT*oYo?>}83f^3LtbNWLU^cz}QQ2 zCG2fmT5ajEzMT1P@$eYI_jl4pLt?0Oj&tiDk?x+% zwŽ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 literal 0 HcmV?d00001 diff --git a/__tests__/integration/snapshots/Line_arc.png b/__tests__/integration/snapshots/Line_arc.png index 2412d3c6c24154971ebcae7cf417d21c206b9eb1..f75c6c228cd474992f1c2045834510fbbecdc32d 100644 GIT binary patch literal 18234 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 BbAA8- literal 20343 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≶9#t=8c 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 literal 0 HcmV?d00001 diff --git a/__tests__/integration/snapshots/Line_simple.png b/__tests__/integration/snapshots/Line_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..fff985902609b6179c760e43d4975733d1e43da1 GIT binary patch literal 16628 zcmeHud05le)^1u)v8SS(9$OU=sC7VPQbrL->_I_gsv;nRfC>Z!L7BslU~RE#5fK3y zqask5B?2;|RHgtyka<)HVV=Si2+3VL3CO+od%j!$ywCITM-qPQVeK`%>s@Py+dmuV zZ2V^XHy8|N zZuec!4sE=iwC4fFyT3LZ(Ed7bGT}>~!?)bJ{p%=Y6q%HLJ^^l6Vu|(Xmf9n*IfnZr zdG71_Bh~0LMm9wlz13&^ytxvx5Paw_e5AeC=CzD~}?tO2J#)@?fcLl0*zm&qV;7ztu`QnH@y5Y9xL!}Js z7N+``Rfa?b+`?;-21a_pcy*N&IfhP+NTN+uNRkcxK5lNiULnr>YqMd0wRA>J25EUj zFZPHsKIXc1@mzKWeUw5optRMn7-Vv8AzhaBW^3_%tO$0&rtZi{YNsnzmbKVY5*KQS zRhuAjmlQomTm8n}$kaIB@kl(`U!`ZETy?r@f~Y!j#nF*UkFburbWd$B9DBag%}}mr zrXls*iy!On@GRm~N+WTYev6Idx{mI-96x4sPmM*-Vsob-v$oB%21XBOtS8IF#l^)rj~*^#Rd^U_EIofXxs$jwM(A1UjsOG5sdiq|%4xHYPBo+K zExRRRh{xl*xtw|YU%!8=wlqpn#Mi~t#A&K;*eX}^#rhrh~Z6d}RP^Nd-@eiD>NTh{kFK3Rh7H6TUssPxrZwq~+QV zH6-xtHG2lH5bVIF5Jsba<{U z^39Z^?TbQ`Gg8#W?W&zEqQ*%{o~k}uPeQ9P77 zPTrJc|3F@RpOod)mKEdKewncF;TH4M0F6w>P7vn{C?@gmDjC@MJiRET{Ug#;1%Dr3 zUy6yTsp%rps-4+DSmDCQy971(M3*_2`2+FcF#5gX+u+Wz&shj*`cD z#zP~6s(b3=k3{?jwal_?PfGaDymLBXXlR(6T>a{LUsmxgN#bD|cF74l9TIE{u0VU9 z6c^Rq-QDR%(===OR%b_uq5rT^q^7T@T;b#!4OV}sD30j&*f{J9P(th1^2G}mt@O{g zuxMNsj-i8FJe{Z)`M@zfZ?Ca2eKUFC7;!emn*MsdWDNp?zF-^{$NnIq=+v4CAw)g_ zZl%&s=Ca5}-yL@@S)LOXRoFe^Gxc_>qFwbvr`#@27MaT=4LrJZuj;q0R*!Tf2=M30 z*XtEs`zt#=TF$dtNXsoUW?8$fm)cvvGJlTPi-TMN+@Fno|KT8R2cIzk;XK#EIG723 zZK~XB(&7;=PdXGEt7%r0udbf*xkn2`gfjw4O2^Pnk)Cdy!dvQ z&6$^0w6A#tBGtdl&Ba&V-+ALka#E61Y;5e%@NjisuspT(#V&=5e`TUAg-wE-ev~h) z4>L~jp+GnZ3EkbP75FSZeir~)n{&ZfmiJWS^O5vFcBm<#@i$LL>f5}%(`1&NEY(*& zwqsk3XE#gV?8Q@cX_M4VFrd`tY$CbIBNiWL7IMAMbJNRTREsW0XfSK;py|TeK{FIO z)w*V`!$s0zPlrp1e^l*OBjXMTsmD#rA4Et9%x5Tdb;_bg+#Mc=35y?5k}rC>7frsY zA4$ydnT>*Dtv9a%*J)^LXwUrbi;@7*b?Y>uGpLiZ;afG6#G1qztP3279!r5Nxa&OdcyA-UM z^*q+CPEC#e&WV*P#4K${=- zDV~VA_U50FN|(>5+=6kc5dG(@f{W(brKQMzu4s_Z9j#4jyL(u5URfQ^1$O5pS(Q4| zu@in$c4mnsK|9nG7-SMr`;Tqk=A>#1-A1CSF>4eRJ%-;ST#r0-N!z|QDvT;$qJfg0 zcCbY3bEBjI$P_i^047zc#Zy5VoQ1xj!NJP)kY6m_-yOf~;zE-i8XvFg%yV-?S&HuN z<;BpoUOY2i$gGpGF4ll(S|_=1G*Le~{E61Bfy8L%>hDc0L!{!ofAp^dh<)!7yG}&o zAjQ76I?Img3L(O1cg&~_Qtf`!M!_egq)1nYds)gAjAngzJj8{_j7I8ZhGqEeX-qPt zH5%e#lapOvf3>y0Op42n%PT-)1KV~MvO(@e+Lhm22=0e;g7#}g2l{6O4o_hFljh4M+M^6 z(q|~44FETbDpz2;I5TAS;^OgEh3%rhZV%EnNj(=bl2L+%{8H2U;u4cCPf`QBlEM&; zxKwekHkicjLy49V<7QAi9hT7#a8-?<1;Gl^y;arnd=FXKvAG{@N@caT6o;dvlQ-Ay zs7PclK!Vzw2e6AE2&vx88c^DQzAK{3t49-@#w*Tmx{6&zW}m!=<1F~G`y^>7y|UR1 z91j}f?;SZnn$aOW)Q%7NUfRUAIn^w0w%J1Q%KJb40P1S-SZ3sC375lj(_-n2LIobP zK{%z>8?er`$A6waO_evau&}@`z6-W@JoDZ0;rzN?!5R;8L8}BFylV$-4|}=~e7iJI z+_Uupt6vHi$zn3_G|l-MMVdw^`uy>)+h`Bh;pa*AtZ6!niQ_W;7Rn?IAi=v*Eo76IA&<87(Lf&z7v(-v!D)D+i? zyZ?-we5$X4@%yfOl`k(hx*>t!!0HBIN*H|2kN0eg|jy+k(s&%Og z(UFKO;VzZX{wWo6-!uz?FowioAsPOB{_dBgzRvC378Lv-cxb~_Ov>kww% z=`icOiWU7igTb7A^Icxn&FvR%iBHE%F7HDzy|sAqH^fSYj9NTAfhDlVdN@~s$>z&g ziGQSYCVmRbKBe8+h@bKa#Es&s!C$g)bt1Xx^@T;(Ugmr@DZ4P;T`FPMSLM z_~xc+BSTHds3vxfz!v5pUS%v_9h5druQ5k2Nd2P)6UD$wdb52&j>fL8Sm32#Gg76N zh~`5qHA0?N8M3Pp|L*B=R&#D~7_zI*j_b$D{}2tuc6D{JnlgxCJeEEOHp{d_97yfs z@4FhBo5N3r?xk~-1F?H+iC9vQ2NGP+e={Sz%p@rANLJFPoUD^)t2LOrg6vIrl3+nQAj&q*Uy~ zr~7#1eo+HhI!ZCk_N|#0+8i^AcsOu=!pC$`W2RmUMNZ&Gu`K}BRt2D?)D$2yj^7^- zft)EzUg~7H0-0q%`9eFs^*q8lEM&iZcOcC?-FK$Nqg6q|yZ1(n|6H5e@SpM10JXNY zQOaf`{h@|+PmkYKfJ6ttVc}Aw?6?sq9a?xJio_(`@(`l?W{zN71j%3|ag`En^Llii zoSdAP>*b=XK^{XzH1htZdxAF>p3zMiCXuFS!po$%CdRBf@ZxQ{=`*=s%71$yk z;A==8=>6VeIMML^#J>Y5$cu+i#8x&vfE4OpZhUkCR=48)dvrynd z-ikn#1L$HVBi6HhKj55Y9AF2~GXNp%y-nL9A$xN*qQM>CTa`{aTes?$fx_J)4htMk#b+nk-$%tlSlBd)}*? zfH%;beZK?BkVthe=W)oCJZwXiKMH5brPhiw#>OatkysI=sz9hF2a;3Ls}ZQf!DJ!E zE>JJq2As=twd2fMbCpM;!Ie>o7vwS5hG)QjwKb87OaLi)7@Id$E~W^l?}QXDiuLnu zh7>;F{*Z*J?Xcl2{D9H_2Qa?b=Dbf|C?U8D3_JJajafdFI_XmnO zpCIFw8*#OZK>b2O4UX)GdY}@y4)6_}A#T|{{nf`ie~7EAK}~c*$Dx2|tE9r8&&hDl*&P$k4OY5nzEo0r!ERMwp#RXOH4>R2p%PGGhis zC}MZ1=x9kal-(FT+~poh^LekXFf6Lvt$hw*xc1>q3~_PD ztVg-UGIX=S;hkb50LLT*_bAOG*oOTSp(U&5W|#(gNeh4;U^RlW{d5|MzGN@6_z z2lPx0S`L(pZ|{s|mTlq%dnC!k=A0A2K*r=E;`S(>r-3Q|dZQ0z zK`Y;}e}V2yOusYU7IW{&@SnokUR@rhg8E{mF(rGUDcM-m$t2DEdzCcpZPyHN%QNWg zyaILGhAlFcsPFOaUC3)27>HEb`f@w^w9?L+vnv8zL)qk2&EJT?aBOe`vrg+Cp|LEXOsEjTjUn!5g?H0|9uZBXK2`Vw5@n?)X{sC(X zWr5OOqL<7msNw+O8x6`RP(j`>$%I!?RcBimg%OHZh%Wv8+cJfV$1H%wK@o|#+_$^h z0YB@}04Nike%z(~a?emLo5iF+Zv{VC{{#U5c%RKJio76`$^&%DajE#-4#=T0SA!BM< zvp;S{MG9i0P{>3oJDMPBiD;fbs%Q}2G$!g(0ob9E@Y~Z@5ln;Rgl!?|EC}*W<}&(W(MD}p!G>bivXA1f9FSkNWbAg<`s>N z6W%%WZ!K9kP6T|Qqjn2sN&wDq9PRV(}VHB z_T1%p8Z;y$($mu+=h#C&G%NNaSe^Xu3Hfq7uUoru5LjwK_iXwONa}>~JccW93X~lq zk9b@G-ylwhl2OCS0K6CRcGR{!e!3r6P-T;;b*xu0Gqw##GgFE*Erm+iqWSJ<)b?91 z>30of${lcmA-CBkQwFMnYgKztg<&^0+Qu3(Bt-%JJIG|vXh0bo9h6`z_HI;%-X-GE-v?sSDqTa>pFu)K7WN7r*0vk6Z zFHMx-{DJ&IAS?LH3?gpI%cocXYE~|3DR)K<7z8RzP$$(N;f9k+W757msMa(jBM?UP z|DBFxEU)7U28e@B_fFK(L<-5gfT%Lc#8?E}z*Qr#OXCGDuuvA4vy^0L7A~sp=>*e? z5r>4nA}M0NkfF(XD^Co84qs|E)L{eAGBPBidJ@dt1}Pnhit6Gaqi{Rm8<0)-ryT?) zZk}SAQP;z+?dh+;ajrLKLq|6OXyeF%J3k&j{S3+#9@+DUX$sIE_TwHF>=hfRCBuK@)c@^#|!h&A3Hs-6kdI~%yKwW&&9 zwd z75Ueq()J*~AzkZgAn0X|xeo81j)Lb5QBZ>jLVJh_rXSFpAQ&zJ?WNQmkp>(Zazj)D zXb;L2TV&4N_W&_2@z%vcA4V5pQP1)?uiFcCTGC7#iM#9uv>UGlzVFuM(SjOkD4tMG zUg3qyNxYB^nw-rbX_{L5dmsk@;tZ9exEXLFtEymt5%v(7bD0R;0DAx%zSp@i>S}T9 zGMp{M9WuriS@VZx6ni^=#OY9Qg2~hnM+bZifpQ|S#Tg#(S`SeB@GcNuUAq7zMT9tc z6E%bKMzg354oV6@Y)~GgLGOzBBG_LBn7VJX7a~%q|BF}=w46|>g}etfq@WXogBSn| zMD=qDWYZdB)AM17r9j8m0&q|eDL=}>V z#^lk(vRlw*!MNy&!U6%r_mE_Ai^i@J;&Y%VLl<9PbU)HYqN_ZHgc0SKUWKXxsLc@4 zke5gCZmkz?(b-HI&tcFN8zN=~(5*5$jbq+?2w+=T*3iJ7dUw z2y{}puRMqfeZT3cV3G!p(JeM*0HFS{?a+^?t%y+G(ydmx4VbhW^alHZGNUqIkucql zvKll#c);0|V!FOHlYf2pv#~L%X^_XT47o!%Is)WpCqo;6W1xcij&yn@1a52(TrKes z7zMYmBvxbVdH2(D`GZd_U90xw4JW6dt2KnvBjiI*Cd(*9Q=dFG)5>*GTHUMH!2Ud7;m}kD$0Cbg?oa{GW&{K8Xl*F3djRZU`ppLUXEcQA(D7r><(AZ5PKph0G*Fj?{2&Uw z63Ca$9)nMA*+YX4U7IX|siD{u^7aTqwsR`IEfx0&9iGM+r8R(!p+AdHK-!hy)@o4FLvepH^b?PsfnpN+>*y+L5V!L1v=AnM zV=Nf|55X-LfJ*>Ju!z%Tc-X2mY=7qL7nlIqHCoObdSCnOPiR$Iocg3Mo5tkmlSrbR zUlmFRjL&{yBYl>?x|8$j>aB&m!V-dqj>uZC6ZpsWmR;i-Hw^_M zT&c!bn5^pJKcEYtB!MopVEjREfs!+xebW5FSAvJ~$h&U}RGC@)Nijzq|Kyt*l2Pk4 zUvAY@z8vS)RK@k?0=;12m=2nJv5$Uona9ffol2Y2V5hVc{t7u(b^$k@@IQk$BHK0# z^kuQeI!8xRctQlE86p!4G?nSG|C6SiH2M46j38%E)8#9|NxT}fPG?0a%gE;}$b6+Z z_#<~b!k6l(<62)U;xF|WA%)F|K%O#U#@Cz>Qq|-YfdVGiXl2rz zAHAi$XN0yr;tdG+Lf}P0!E59Yix(_)3m#^^5G>WZMk|v(f~87%@?`L}xb4-dD;~VY z7kHhyKvcaoqIUl&81D_^kCOO46>wt>2plCn=iB%OBIYv!*WI=a3}~@pzzn3vK^MMr zWzxYs0r~>($w4s$OCxN=M4#f%a8d&iY>fC|6(GxF{QU1Jl_m}pjF^H5LRn}xo1gb3!-BAf?bxMy45LFC0tgw(kIoH={On8f6 z<91}9*8(54ie9ykFqSu<)I<;+R_8%E+x`$Jr)=#~CW57^(bhHslgWRI6?iC+hgpp&5GmhWpYJuh*XZ8-H2;}JfkJ67AFe0A;Y->Y zwMMZHcKkh^kRgty@Eyv=5daN-c-h#-k)L)-n-f8EPO>YDth$xWHU2E`AiYK;4hS=aMY2HH=sV0RC;FxHhYW!r0|en>tkzt!Ml&I(`^oGlvR%t zJUmg2N#oNJn+^OBwRyZIlON^sQ3$?a0_)ERI8M&XHF|N{F7Tm~=)C&;#R6nMVPx8K zo(gO*g7tOLQcgaCS)Z5}xQhT8T4Ru?(E^GPt^3JcFe(BQs@zgIIwGKRm{uR8r4tb0kbPD z<+H7$Bm_yqGW^rbpggn!=fWENhlQt+Vs7xY5TN>0xPFnZd;m^FI|6R-5hb8y4KZ0w zAH3wTg7r3+R@`kDxOjo4_uY3(#mq0+gc4?*x4p)_v6eaSO*xyT?sYvg$Uhl%HFr#< zAR(b($L@2#Zuw{0KO9`@zcKlEQ695%lj;vQ<|NWFJ6~`7GUxGC-=B_)oNBz9Bta^63*@k`7#^+izkxJ1_(48~dKs|AO_ z@CV&Lz`09xbiYF9cQE-oZwrH;=IQ*M3IF@j3l2l8+iHEr^o7Bdc}JHHpe2t|KI5%a z$0+yVj1amuX*WTym?-1Vc*ExBCp=R{t;hQGZ_w=e)W7pK`L0=ZPti{>K0pO(40yBu zoVV3I~s?aQFn?*U^+xKI84$`BgQY{tW%RI=wpW=g*jiL@(g1yc$=GQ(*cTj@Zjsam3QD=bxckBp}%0nqt?P1~GI^ z^lIrWdiFPc!uj~>VdXyKlxPP~OMpew>S6!upv7STAbf7Z>--?JI-PZLze8ZLvQ~5nF}>9H)3)T#n76X+(i4kQ$P^fiPF`rB=@%|HTq|C- zE_WLU)AI>1%;45^mgx>-#tG%p2fIySCrMmmC18I!ZnOIyT?NEgs0|1 zGTz@`Q>QzIHr$lmSwPx*=~6ramzthVXECg*=u}fz?z$xfMfFIrSWP!D(|qi4!?J5zz!z0=d6En^<0<%2?|0-AP`am1-E7buGwGr&d>=($>+T ze8@KKsaY5pBTV*o!67sy_SEp(G3vPw zWaph~-@n%zxEEJhAyJGItCNYP*4Lj%Ote>=pR;Ilr44lE$PLZkYLpyL8p-b*1atlo z9E{Jrq~kM0&woP1_4P$F7lW-0$}4!3!0Qw)x3@IOMA6ql)`eq+%V3j3{MZ{znMN7Q zEw(HtVzOyfSxNLv#e>ZmdvL@fYBRs}_ilAn+)!a)=jwU@A3awI&~W=QbN^8oFGuQh-+8EU8>q-Z-qjh z?*SOVbR;i_A@!HWHqd1MJcZ@v$}xf_x$x{x>rT_oU~fH(y*tE@B?AN z#nxZeOx*WiJc(|-_g35~pRnjivU>9r{R* z!TRqsGE!7qYz}ei!B#e3y_uSkLC-b~w!iqnw!A`zIUwd185LC(_~Z$ZIJq1_@x7ws zIocW3S1~}rPZSO1Th){DBM{`6zuf(DX^vlDx$T2-vD{@b_{ zi}9>F(vI2^?#47fU7kkiuAij0Y=e#5S^RDD6v z9q%Ch5bXDHN@KG3iJqRG?L_esbBN}LrBYMWTy3$zoa)VL?7>TIlM7O~FnPbJTsNO7 zC(p6%wih^KPLHDEYNvh+HM7(Ry?t9&R9w84&3;!?V=!Q#4s++naQCSZa`5E@BRGd1 zvQe)=a%UioJ4XM*d3-vSdoZd|N4kyZGTl0{X9*jzgZ&?aA~RNbi8z(@w)$sWt}T&s z%zl29n(cVrUBu!V+Ha<4@|9z zhj4`DFeh(1ox!Z}Dhbn%k5*7Ff^UdhR=>TwRY6lT8a&L+>BHGX{2V}tqZ-i(t4Jwu zlaiH}XN*Q}h>UBCj@Rj_DfVv^-Ol^(TukT5u#ST-;;9U7ovWPu9_yvP7nTL#{m)CH z+1aGn^c26b;0lW0Uc&HvgkpXIwHCaC@z+!%TIsEkR2IPW?Ch+JOpV=0^VOl*K-ak% zR;R;-4`UiLlN^ny{t8O5r?P3f48C#Dd%W#Ph^DWX9c$WE#WLT0zamAQStTWs)G}gc z@2RkX>4NuT9#aXrXE*geQg1x2`ni#m!l6UqFJ8RsJXx{D00y}{kdwM6NsZGqLUmz) zdYWrAmepdaK;ZhsElKVo^bHXe6ylsD`mBovV+jcSe#Xgjygls0hY*>XlGw<$s?N(&1~PW8^Jfj@AW1) zp;Wk^m4?fYnGNfg=K5(kN>>e|PZu>tQmS0I@94rC8R0cFa^>h~k(q@Bb%Q+npnS=U zpB0hC0!RpU{lI4F(MGGDhw7SHSkq`AmUGj>!Z{=rQjW56^w5x|nVDHt9z{2@vuM}E ztuW~nlQDM^3dHGr4X%@No>r=-(4aQOL0ps_tMb=k4e6GlfEax?8%uAIK z25>Ibi%tE56fFYVD}A68-{LAQcRnBfH(0tY&rzWwxRyR#oiN&!t1f0h#zy4j? zkD$tk;v8ktv|&ZVd0k)=?B7VQVl1)`di~g_=nF|Q>mV+oXx_kXemu4<)1xC?V>y=L zI(X@pA_eaP=!I8MDcYl|h{eX~Mi|(Zz19+8)HDng&b*OsV~KSb8MkR>@5(6h*)1(C zEh;Kn1wp@qIPyjR6^n1Aia zn(ZlhfLk_=Z<~zZR=Ik1kz{j|M;^e?{#sRH4E(ExZA<#iJZE=zrH-7dRnqd@ealaX zDp$AHMS>a0>QQ&M((K&btyTUA3bG#`%XOU{J_Sfjp~uxeeSt8_7^DWktjgY{ge!GmC0R<`W4P{WX*4G&)_uiz(e$%n-5o3$MU z><=w+&rGXYHS=VFo-9rDM0+((h|qg0<{0_lTnLu6qqSA(Pl9px#f**T#-r;BhGu;t zyC~|p!@AZSCt@72glut0qmu@qj4UKXmQ=l5o0BD QH1XtdgJbFcvH9hH0gd7RX#fBK literal 0 HcmV?d00001 diff --git a/__tests__/integration/snapshots/Line_wall.png b/__tests__/integration/snapshots/Line_wall.png new file mode 100644 index 0000000000000000000000000000000000000000..b8cb5d2977e834e12bd5dde8399e9331f218c217 GIT binary patch literal 165232 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%0DW4W}_P>&qfD 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 z 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 diff --git a/__tests__/integration/snapshots/Point_fill.png b/__tests__/integration/snapshots/Point_fill.png index 60e86af5c67e80310f0eb7d97f3530d3a6cd17e2..9476a02278c0e6cc6c6e593760a62769dec431fc 100644 GIT binary patch literal 24022 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 diff --git a/__tests__/integration/snapshots/Point_fill_image.png b/__tests__/integration/snapshots/Point_fill_image.png index 58aadff76fc76579772a83eee97f01c6d9a7bd62..00501406244d816163e76c3919299b636a0e705c 100644 GIT binary patch literal 20779 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 S5_#e(4#!>pUjFUbfBX;iX~G-; literal 18385 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 diff --git a/__tests__/integration/snapshots/Point_text.png b/__tests__/integration/snapshots/Point_text.png index ef40ffe2bbf6cef4fa3fd3923d028baa80b940d7..bdc90d76062c60722353122704c756eb8c28419d 100644 GIT binary patch literal 53507 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 diff --git a/__tests__/integration/snapshots/Polygon_extrude.png b/__tests__/integration/snapshots/Polygon_extrude.png index 731383adf13198090815f2ebf5d138732e34d5aa..ec1075d93db3625df169de251955122539fc149b 100644 GIT binary patch literal 55873 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�t} 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 z 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%0AUMRe>qd+BCBb0 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 literal 42404 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 Tv(0FB2zT?koOssNJCFY#L%aS; diff --git a/__tests__/integration/snapshots/Polygon_extrusion.png b/__tests__/integration/snapshots/Polygon_extrusion.png new file mode 100644 index 0000000000000000000000000000000000000000..c97b2a1beb779e9dbab75d1a5affd840f70696c9 GIT binary patch literal 29794 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 literal 0 HcmV?d00001 diff --git a/__tests__/integration/snapshots/Polygon_fill.png b/__tests__/integration/snapshots/Polygon_fill.png index d4fc874e3b7003bc1c72159d03b000a34fc1e7ad..92421e443cf0e9ebbbb2377c058864ea0e6053ab 100644 GIT binary patch literal 26363 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 literal 100982 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¬*EdHlVnpZ=`n7 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 diff --git a/examples/demos/gallery/index.ts b/examples/demos/gallery/index.ts index d6077164542..0b9bb2f8e1d 100644 --- a/examples/demos/gallery/index.ts +++ b/examples/demos/gallery/index.ts @@ -1 +1,2 @@ export { MapRender as fujian } from './fujian'; +export { MapRender as variFlight } from './vari-flight'; diff --git a/examples/demos/line/arc_plane.ts b/examples/demos/gallery/vari-flight.ts similarity index 100% rename from examples/demos/line/arc_plane.ts rename to examples/demos/gallery/vari-flight.ts diff --git a/examples/demos/line/arc-3d.ts b/examples/demos/line/arc-3d.ts new file mode 100644 index 00000000000..dc4b158cd88 --- /dev/null +++ b/examples/demos/line/arc-3d.ts @@ -0,0 +1,44 @@ +import { LineLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'dark', + center: [104.34278, 41.12554], + zoom: 2.94888, + pitch: 0, + }), + }); + + scene.on('loaded', () => { + fetch('https://gw.alipayobjects.com/os/bmw-prod/e495c407-953b-44cc-8f77-87b9cf257578.json') + .then((res) => res.json()) + .then((data) => { + const layer = new LineLayer({}) + .source(data, { + parser: { + type: 'json', + x: 'from_lon', + y: 'from_lat', + x1: 'to_lon', + y1: 'to_lat', + }, + }) + .size(2) + .shape('arc3d') + .color('#FF7C6A') + .style({ + segmentNumber: 15, + opacity: 0.8, + }); + scene.addLayer(layer); + if (window['screenshot']) { + window['screenshot'](); + } + }); + }); +} diff --git a/examples/demos/line/arc.ts b/examples/demos/line/arc.ts index 2a79d00e2cd..b583b4201fb 100644 --- a/examples/demos/line/arc.ts +++ b/examples/demos/line/arc.ts @@ -25,7 +25,7 @@ export function MapRender(options: RenderDemoOptions) { type: 'MultiLineString', coordinates: [ [ - [116.371436, 39.942372], + [116.43, 39.97], [121.467025, 31.2327], ], ], @@ -55,8 +55,6 @@ export function MapRender(options: RenderDemoOptions) { const source = new Source(geoData); const source2 = new Source(geoData2); - // scene.on('zoom', e => console.log(e)) - const layer = new LineLayer({ blend: 'normal', autoFit: true }) .source(source) .size(2) @@ -83,55 +81,17 @@ export function MapRender(options: RenderDemoOptions) { const point = new PointLayer({ blend: 'normal', zIndex: 1 }) .source( [ - { - lng: 116.43, - lat: 39.97, - }, - { - lng: 108.39, - lat: 22.91, - }, + { lng: 116.43, lat: 39.97 }, + { lng: 108.39, lat: 22.91 }, ], { - parser: { - type: 'json', - x: 'lng', - y: 'lat', - }, + parser: { type: 'json', x: 'lng', y: 'lat' }, }, ) .shape('circle') .size(10) .color('blue'); - const point2 = new PointLayer({ blend: 'normal', zIndex: 1 }) - .source( - [ - { - lng: 116.43, - lat: 39.97, - }, - { - lng: 108.39, - lat: 22.91, - }, - ], - { - parser: { - type: 'json', - x: 'lng', - y: 'lat', - }, - }, - ) - .shape('circle') - .size(100000) - .color('blue') - .style({ - opacity: 0.5, - unit: 'meter', - }); scene.addLayer(point); - scene.addLayer(point2); scene.addLayer(layer); scene.addLayer(layer2); diff --git a/examples/demos/line/greatcircle.ts b/examples/demos/line/greatcircle.ts new file mode 100644 index 00000000000..5336d7d3c97 --- /dev/null +++ b/examples/demos/line/greatcircle.ts @@ -0,0 +1,51 @@ +import { LineLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'light', + center: [107.77791556935472, 35.443286920228644], + zoom: 2.9142882493605033, + }), + }); + + scene.on('loaded', () => { + fetch('https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt') + .then((res) => res.text()) + .then((data) => { + const layer = new LineLayer({ + blend: 'normal', + }) + .source(data, { + parser: { + type: 'csv', + x: 'lng1', + y: 'lat1', + x1: 'lng2', + y1: 'lat2', + }, + }) + .size(1) + .shape('greatcircle') + // .animate({ + // enable: true, + // interval: 0.1, + // trailLength: 0.5, + // duration: 2, + // }) + .color('#8C1EB2') + .style({ + opacity: 0.8, + }); + scene.addLayer(layer); + }); + }); + + if (window['screenshot']) { + window['screenshot'](); + } +} diff --git a/examples/demos/line/index.ts b/examples/demos/line/index.ts index 35487ecf8b1..6478c742566 100644 --- a/examples/demos/line/index.ts +++ b/examples/demos/line/index.ts @@ -1,6 +1,8 @@ export { MapRender as arc } from './arc'; -export { MapRender as arc_plane } from './arc_plane'; +export { MapRender as arc3D } from './arc-3d'; export { MapRender as dash } from './dash'; export { MapRender as flow } from './flow'; +export { MapRender as greatcircle } from './greatcircle'; export { MapRender as normal } from './normal'; +export { MapRender as simple } from './simple'; export { MapRender as wall } from './wall'; diff --git a/examples/demos/line/normal.ts b/examples/demos/line/normal.ts index b203300ecb9..92294cd0d23 100644 --- a/examples/demos/line/normal.ts +++ b/examples/demos/line/normal.ts @@ -12,7 +12,6 @@ export function MapRender(options: RenderDemoOptions) { zoom: 14.83, }), }); - console.log(111); const geoData = { type: 'FeatureCollection', features: [ diff --git a/examples/demos/line/simple.ts b/examples/demos/line/simple.ts new file mode 100644 index 00000000000..c2227ed80cc --- /dev/null +++ b/examples/demos/line/simple.ts @@ -0,0 +1,73 @@ +import { LineLayer, Scene, Source } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'light', + center: [121.434765, 31.256735], + zoom: 14.83, + }), + }); + const geoData = { + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: { + offset: 0.3, + }, + geometry: { + type: 'MultiLineString', + coordinates: [ + [ + [99.228515625, 37.43997405227057], + [100.72265625, 27.994401411046148], + [110, 27.994401411046148], + [110, 25], + [100, 25], + ], + [ + [108.544921875, 37.71859032558816], + [112.412109375, 32.84267363195431], + [115, 32.84267363195431], + [115, 35], + ], + ], + }, + }, + { + type: 'Feature', + properties: { + offset: 0.8, + }, + geometry: { + type: 'MultiLineString', + coordinates: [ + [ + [110, 30], + [120, 30], + [120, 40], + ], + ], + }, + }, + ], + }; + const source = new Source(geoData); + const layer = new LineLayer({ autoFit: true }) + .source(source) + .size(1) + .shape('simple') + .color('#f00'); + + scene.on('loaded', () => { + scene.addLayer(layer); + if (window['screenshot']) { + window['screenshot'](); + } + }); +} diff --git a/examples/demos/line/wall.ts b/examples/demos/line/wall.ts index 8faa3377eeb..008e2880a9e 100644 --- a/examples/demos/line/wall.ts +++ b/examples/demos/line/wall.ts @@ -10,6 +10,7 @@ export function MapRender(options: RenderDemoOptions) { style: 'light', center: [121.434765, 31.256735], zoom: 14.83, + pitch: 45, }), }); fetch('https://gw.alipayobjects.com/os/bmw-prod/ec5351c9-d22b-4918-ad6c-1838064d3a64.json') diff --git a/examples/demos/point/column.ts b/examples/demos/point/column.ts index 6f0ddaba6b3..35d50109d14 100644 --- a/examples/demos/point/column.ts +++ b/examples/demos/point/column.ts @@ -10,7 +10,7 @@ export function MapRender(options: RenderDemoOptions) { style: 'light', center: [121.400257, 31.25287], zoom: 14.55, - rotation: 134.9507, + pitch: 45, }), }); diff --git a/examples/demos/point/dot.ts b/examples/demos/point/dot.ts new file mode 100644 index 00000000000..b2f413c441b --- /dev/null +++ b/examples/demos/point/dot.ts @@ -0,0 +1,53 @@ +import { PointLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'light', + center: [116.417463, 40.015175], + zoom: 8, + minZoom: 5, + }), + }); + scene.on('loaded', () => { + fetch('https://gw.alipayobjects.com/os/antfincdn/8Ps2h%24qgmk/traffic_110000.csv') + .then((res) => res.text()) + .then((data) => { + const colors = ['#c57f34', '#cbfddf', '#edea70', '#8cc9f1', '#2c7bb6']; + const pointLayer = new PointLayer({}) + .source(data, { + parser: { + type: 'csv', + y: 'lat', + x: 'lng', + }, + }) + .shape('dot') + .size(0.5) + .color('type', (type) => { + switch (parseInt(type)) { + case 3: + return colors[0]; + case 4: + return colors[1]; + case 41: + return colors[2]; + case 5: + return colors[3]; + default: + return colors[4]; + } + }); + + scene.addLayer(pointLayer); + + if (window['screenshot']) { + window['screenshot'](); + } + }); + }); +} diff --git a/examples/demos/point/fill.ts b/examples/demos/point/fill.ts index 3043ba8136d..fc10834dbd9 100644 --- a/examples/demos/point/fill.ts +++ b/examples/demos/point/fill.ts @@ -41,7 +41,10 @@ export function MapRender(options: RenderDemoOptions) { .select(true) .color('name', ['#5B8FF9', '#5CCEA1', '#5D7092', '#F6BD16', '#E86452']) .style({ - opacity: 1, + opacity: { + field: 'unit_price', + value: () => 1, + }, strokeWidth: 2, }); diff --git a/examples/demos/point/fill_image.ts b/examples/demos/point/fill_image.ts index 8b8bdb5fe6a..1553161e7c6 100644 --- a/examples/demos/point/fill_image.ts +++ b/examples/demos/point/fill_image.ts @@ -9,7 +9,7 @@ export function MapRender(options: RenderDemoOptions) { map: new allMap[options.map]({ style: 'light', center: [120, 30], - pitch: 60, + pitch: 0, zoom: 14, }), }); @@ -46,7 +46,7 @@ export function MapRender(options: RenderDemoOptions) { .source( [ { - lng: 120, + lng: 120.01, lat: 30, name: 'marker', }, diff --git a/examples/demos/point/image.ts b/examples/demos/point/image.ts index d159ae2b460..7e627384702 100644 --- a/examples/demos/point/image.ts +++ b/examples/demos/point/image.ts @@ -38,22 +38,8 @@ export function MapRender(options: RenderDemoOptions) { }) .shape('name', ['00', '01', '02']) .size(10); - const imageLayerText = new PointLayer() - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude', - }, - }) - .shape('name', 'text') - .color('#f00') - .size(25) - .style({ - textOffset: [0, 20], - }); + scene.addLayer(imageLayer); - scene.addLayer(imageLayerText); if (window['screenshot']) { window['screenshot'](); diff --git a/examples/demos/point/index.ts b/examples/demos/point/index.ts index 3684a2fc28b..2ddd2a7a1ea 100644 --- a/examples/demos/point/index.ts +++ b/examples/demos/point/index.ts @@ -1,6 +1,8 @@ export { MapRender as billboard } from './billboard'; export { MapRender as column } from './column'; +export { MapRender as dot } from './dot'; export { MapRender as fill } from './fill'; export { MapRender as fill_image } from './fill_image'; export { MapRender as image } from './image'; +export { MapRender as radar } from './radar'; export { MapRender as text } from './text'; diff --git a/examples/demos/point/radar.ts b/examples/demos/point/radar.ts new file mode 100644 index 00000000000..4e9f1deff74 --- /dev/null +++ b/examples/demos/point/radar.ts @@ -0,0 +1,31 @@ +import { PointLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'light', + center: [120, 30], + zoom: 13, + }), + }); + + const layer = new PointLayer() + .source([{ lng: 120, lat: 30 }], { + parser: { type: 'json', x: 'lng', y: 'lat' }, + }) + .shape('radar') + .size(100) + .color('#d00') + .style({ + speed: 5, + }) + .animate(true); + + scene.on('loaded', () => { + scene.addLayer(layer); + }); +} diff --git a/examples/demos/polygon/extrude-city.ts b/examples/demos/polygon/extrude-city.ts new file mode 100644 index 00000000000..9a07d09cdd0 --- /dev/null +++ b/examples/demos/polygon/extrude-city.ts @@ -0,0 +1,36 @@ +import { PolygonLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'dark', + center: [121.434765, 31.256735], + zoom: 14.83, + pitch: 45, + }), + }); + scene.on('loaded', () => { + fetch('https://gw.alipayobjects.com/os/basement_prod/972566c5-a2b9-4a7e-8da1-bae9d0eb0117.json') + .then((res) => res.json()) + .then((data) => { + const layer = new PolygonLayer({ autoFit: true }) + .source(data) + .shape('extrude') + .size('h20', [100, 120, 160, 200, 260, 500]) + .color('h20', [ + '#816CAD', + '#A67FB5', + '#C997C7', + '#DEB8D4', + '#F5D4E6', + '#FAE4F1', + '#FFF3FC', + ]); + scene.addLayer(layer); + }); + }); +} diff --git a/examples/demos/polygon/extrude.ts b/examples/demos/polygon/extrude.ts index 09725a3b85b..c577f63e4c8 100644 --- a/examples/demos/polygon/extrude.ts +++ b/examples/demos/polygon/extrude.ts @@ -13,22 +13,6 @@ export function MapRender(options: RenderDemoOptions) { pitch: 45, }), }); - - const colors = [ - '#87CEFA', - '#00BFFF', - - '#7FFFAA', - '#00FF7F', - '#32CD32', - - '#F0E68C', - '#FFD700', - - '#FF7F50', - '#FF6347', - '#FF0000', - ]; scene.on('loaded', () => { fetch('https://gw.alipayobjects.com/os/bmw-prod/94763191-2816-4c1a-8d0d-8bcf4181056a.json') .then((res) => res.json()) @@ -45,7 +29,6 @@ export function MapRender(options: RenderDemoOptions) { .color('count', ['#f2f0f7', '#dadaeb', '#bcbddc', '#9e9ac8', '#756bb1', '#54278f']) .style({ pickLight: true, - opacity: 1, }); scene.addLayer(filllayer); diff --git a/examples/demos/polygon/extrusion.ts b/examples/demos/polygon/extrusion.ts new file mode 100644 index 00000000000..e8797087edf --- /dev/null +++ b/examples/demos/polygon/extrusion.ts @@ -0,0 +1,45 @@ +import { PolygonLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: ['MapLibre', 'Mapbox'].includes(options.map) + ? 'https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json' + : 'normal', + center: [120, 29.732983], + zoom: 6.2, + pitch: 30, + }), + }); + + scene.on('loaded', () => { + fetch( + 'https://mdn.alipayobjects.com/afts/file/A*CGKZTL6s_ywAAAAAAAAAAAAADrd2AQ/indoor-3d-map.json', + ) + .then((res) => res.json()) + .then((data) => { + const provincelayerSide = new PolygonLayer({ + autoFit: true, + }) + .source(data) + .size('height') + .shape('extrusion') + .color('color') + .style({ + extrusionBase: { + field: 'base_height', + }, + opacity: 1.0, + }); + scene.addLayer(provincelayerSide); + }); + }); + + if (window['screenshot']) { + window['screenshot'](); + } +} diff --git a/examples/demos/polygon/fill-linear.ts b/examples/demos/polygon/fill-linear.ts new file mode 100644 index 00000000000..44f7d99db1a --- /dev/null +++ b/examples/demos/polygon/fill-linear.ts @@ -0,0 +1,61 @@ +import { PolygonLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap[options.map]({ + style: 'light', + center: [121.434765, 31.256735], + zoom: 14.83, + }), + }); + + const data = { + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: { + testOpacity: 0.8, + }, + geometry: { + type: 'Polygon', + coordinates: [ + [ + [113.8623046875, 30.031055426540206], + [116.3232421875, 30.031055426540206], + [116.3232421875, 31.090574094954192], + [113.8623046875, 31.090574094954192], + [113.8623046875, 30.031055426540206], + ], + ], + }, + }, + ], + }; + + const layer = new PolygonLayer({ + autoFit: true, + }) + .source(data) + .shape('fill') + .color('red') + .active(true) + .style({ + opacity: 0.5, + opacityLinear: { + enable: true, + dir: 'in', + }, + }); + + scene.on('loaded', () => { + scene.addLayer(layer); + if (window['screenshot']) { + window['screenshot'](); + } + }); +} diff --git a/examples/demos/polygon/fill.ts b/examples/demos/polygon/fill.ts index 44f7d99db1a..3f1f04f3089 100644 --- a/examples/demos/polygon/fill.ts +++ b/examples/demos/polygon/fill.ts @@ -8,54 +8,39 @@ export function MapRender(options: RenderDemoOptions) { renderer: options.renderer, map: new allMap[options.map]({ style: 'light', - center: [121.434765, 31.256735], - zoom: 14.83, + center: [-96, 37.8], + zoom: 3, }), }); - const data = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: { - testOpacity: 0.8, - }, - geometry: { - type: 'Polygon', - coordinates: [ - [ - [113.8623046875, 30.031055426540206], - [116.3232421875, 30.031055426540206], - [116.3232421875, 31.090574094954192], - [113.8623046875, 31.090574094954192], - [113.8623046875, 30.031055426540206], - ], - ], - }, - }, - ], - }; + scene.on('loaded', () => { + fetch('https://gw.alipayobjects.com/os/basement_prod/d36ad90e-3902-4742-b8a2-d93f7e5dafa2.json') + .then((res) => res.json()) + .then((data) => { + const color = [ + 'rgb(255,255,217)', + 'rgb(237,248,177)', + 'rgb(199,233,180)', + 'rgb(127,205,187)', + 'rgb(65,182,196)', + 'rgb(29,145,192)', + 'rgb(34,94,168)', + 'rgb(12,44,132)', + ]; + const layer = new PolygonLayer({}) + .source(data) + .scale('density', { + type: 'quantile', + }) + .color('density', color) + .shape('fill') + .active(true); - const layer = new PolygonLayer({ - autoFit: true, - }) - .source(data) - .shape('fill') - .color('red') - .active(true) - .style({ - opacity: 0.5, - opacityLinear: { - enable: true, - dir: 'in', - }, - }); + scene.addLayer(layer); - scene.on('loaded', () => { - scene.addLayer(layer); - if (window['screenshot']) { - window['screenshot'](); - } + if (window['screenshot']) { + window['screenshot'](); + } + }); }); } diff --git a/examples/demos/polygon/index.ts b/examples/demos/polygon/index.ts index acecf274f9e..4618ddaf912 100644 --- a/examples/demos/polygon/index.ts +++ b/examples/demos/polygon/index.ts @@ -1,5 +1,8 @@ export { MapRender as extrude } from './extrude'; +export { MapRender as extrudeCity } from './extrude-city'; +export { MapRender as extrusion } from './extrusion'; export { MapRender as fill } from './fill'; +export { MapRender as fillLinear } from './fill-linear'; export { MapRender as ocean } from './ocean'; export { MapRender as texture } from './texture'; export { MapRender as water } from './water'; diff --git a/examples/demos/raster/image_coord.ts b/examples/demos/raster/image_coord.ts index 37ca975dd5b..c6270678a98 100644 --- a/examples/demos/raster/image_coord.ts +++ b/examples/demos/raster/image_coord.ts @@ -1,4 +1,4 @@ -import { ImageLayer, PolygonLayer, Scene } from '@antv/l7'; +import { ImageLayer, Scene } from '@antv/l7'; import * as allMap from '@antv/l7-maps'; import type { RenderDemoOptions } from '../../types'; @@ -13,32 +13,6 @@ export function MapRender(options: RenderDemoOptions) { }), }); scene.on('loaded', () => { - const fill = new PolygonLayer() - .source({ - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Polygon', - coordinates: [ - [ - [-80.425, 46.437], - [-71.516, 46.437], - [-71.516, 37.936], - [-80.425, 37.936], - [-80.425, 46.437], - ], - ], - }, - }, - ], - }) - .shape('line') - .color('red') - .size(1) - .style({ opacity: 1 }); const layer = new ImageLayer({ autoFit: true, }); @@ -58,7 +32,6 @@ export function MapRender(options: RenderDemoOptions) { }, ); scene.addLayer(layer); - scene.addLayer(fill); if (window['screenshot']) { window['screenshot'](); } diff --git a/packages/core/src/services/layer/ILayerService.ts b/packages/core/src/services/layer/ILayerService.ts index 738a1c4c033..2ba0695a571 100644 --- a/packages/core/src/services/layer/ILayerService.ts +++ b/packages/core/src/services/layer/ILayerService.ts @@ -1,4 +1,3 @@ -// @ts-ignore import type { AsyncSeriesBailHook, AsyncWaterfallHook, @@ -29,6 +28,7 @@ import type { import type { IRendererService } from '../renderer/IRendererService'; import type { ITexture2D } from '../renderer/ITexture2D'; import type { IUniform } from '../renderer/IUniform'; +import type { ShaderDefine, ShaderInject } from '../shader/IShaderModuleService'; import type { IParseDataItem, ISource, ISourceCFG, ITransform } from '../source/ISourceService'; import type { IAnimateOption, @@ -73,6 +73,10 @@ export interface ILayerModelInitializationOptions { moduleName: string; vertexShader: string; fragmentShader: string; + /** Code injections */ + inject?: ShaderInject; + /** Defines to be injected */ + defines?: Record; triangulation: Triangulation; styleOption?: unknown; workerEnabled?: boolean; diff --git a/packages/core/src/services/renderer/IModel.ts b/packages/core/src/services/renderer/IModel.ts index 9a256e96eac..8d0c9f6d3d8 100644 --- a/packages/core/src/services/renderer/IModel.ts +++ b/packages/core/src/services/renderer/IModel.ts @@ -128,14 +128,7 @@ type BlendingFunctionSeparate = Partial<{ | gl.SRC_ALPHA_SATURATE; dstAlpha: number; }>; -export type injectType = - | 'vs:#decl' - | 'vs:#main-start' - | 'vs:#main-end' - | 'fs:#decl' - | 'fs:#main-start' - | 'fs:#main-end'; -export type IInject = Partial>; + export interface IModelInitializationOptions { /** * 该 model 是否支持拾取 @@ -147,8 +140,6 @@ export interface IModelInitializationOptions { vs: string; fs: string; - inject?: IInject; - uniforms?: { [key: string]: IUniform; }; diff --git a/packages/core/src/services/shader/IShaderModuleService.ts b/packages/core/src/services/shader/IShaderModuleService.ts index 35f97be07d0..deef199bb38 100644 --- a/packages/core/src/services/shader/IShaderModuleService.ts +++ b/packages/core/src/services/shader/IShaderModuleService.ts @@ -1,6 +1,17 @@ -import type { IInject } from '../renderer/IModel'; import type { IUniform } from '../renderer/IUniform'; +export type ShaderInjectType = + | 'vs:#decl' + | 'vs:#main-start' + | 'vs:#main-end' + | 'fs:#decl' + | 'fs:#main-start' + | 'fs:#main-end'; + +export type ShaderInject = Partial>; + +export type ShaderDefine = string | number | boolean; + /** * 提供 ShaderModule 管理服务 */ @@ -11,7 +22,10 @@ export interface IModuleParams { uniforms?: { [key: string]: IUniform; }; - inject?: IInject; + /** Code injections */ + inject?: ShaderInject; + /** Defines to be injected */ + defines?: Record; } export interface IShaderModuleService { diff --git a/packages/core/src/services/shader/ShaderModuleService.ts b/packages/core/src/services/shader/ShaderModuleService.ts index 4954bb9de40..bf43bbb7878 100644 --- a/packages/core/src/services/shader/ShaderModuleService.ts +++ b/packages/core/src/services/shader/ShaderModuleService.ts @@ -1,6 +1,6 @@ import { lodashUtil } from '@antv/l7-utils'; import { extractUniforms } from '../../utils/shader-module'; -import type { IModuleParams, IShaderModuleService } from './IShaderModuleService'; +import type { IModuleParams, IShaderModuleService, ShaderDefine } from './IShaderModuleService'; const { uniq } = lodashUtil; import common from '../../shaders/common.glsl'; @@ -15,6 +15,7 @@ import projection from '../../shaders/projection.glsl'; import rotation_2d from '../../shaders/rotation_2d.glsl'; import scene_uniforms from '../../shaders/scene_uniforms.glsl'; import sdf2d from '../../shaders/sdf_2d.glsl'; + const precisionRegExp = /precision\s+(high|low|medium)p\s+float/; const globalDefaultprecision = '#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n#endif\n'; @@ -29,14 +30,8 @@ export default class ShaderModuleService implements IShaderModuleService { this.destroy(); this.registerModule('common', { vs: common, fs: common }); this.registerModule('decode', { vs: decode, fs: '' }); - this.registerModule('scene_uniforms', { - vs: scene_uniforms, - fs: scene_uniforms, - }); - this.registerModule('picking_uniforms', { - vs: picking_uniforms, - fs: picking_uniforms, - }); + this.registerModule('scene_uniforms', { vs: scene_uniforms, fs: scene_uniforms }); + this.registerModule('picking_uniforms', { vs: picking_uniforms, fs: picking_uniforms }); this.registerModule('projection', { vs: projection, fs: projection }); this.registerModule('project', { vs: project, fs: '' }); @@ -55,11 +50,13 @@ export default class ShaderModuleService implements IShaderModuleService { moduleParams.vs = moduleParams.vs.replace(/\r\n/g, '\n'); // 将所有的\r\n替换为\n moduleParams.fs = moduleParams.fs.replace(/\r\n/g, '\n'); // 将所有的\r\n替换为\n - const { vs, fs, uniforms: declaredUniforms, inject } = moduleParams; + const { vs, fs, uniforms: declaredUniforms, defines, inject } = moduleParams; const { content: extractedVS, uniforms: vsUniforms } = extractUniforms(vs); const { content: extractedFS, uniforms: fsUniforms } = extractUniforms(fs); + this.rawContentCache[moduleName] = { fs: extractedFS, + defines, inject, uniforms: { ...vsUniforms, @@ -69,10 +66,7 @@ export default class ShaderModuleService implements IShaderModuleService { vs: extractedVS, }; } - public destroy() { - this.moduleCache = {}; - this.rawContentCache = {}; - } + public getModule(moduleName: string): IModuleParams { // TODO: cache module // if (this.moduleCache[moduleName]) { @@ -81,27 +75,36 @@ export default class ShaderModuleService implements IShaderModuleService { let rawVS = this.rawContentCache[moduleName].vs; let rawFS = this.rawContentCache[moduleName].fs; - const inject = this.rawContentCache[moduleName].inject; + const { defines = {}, inject = {} } = this.rawContentCache[moduleName]; + let declaredUniforms = {}; - if (inject?.['vs:#decl']) { - // 头部注入 - rawVS = inject?.['vs:#decl'] + rawVS; - declaredUniforms = extractUniforms(inject?.['vs:#decl']).uniforms; + + // vs 头部注入 + if (inject['vs:#decl']) { + rawVS = inject['vs:#decl'] + rawVS; + declaredUniforms = extractUniforms(inject['vs:#decl']).uniforms; } - if (inject?.['vs:#main-start']) { - // main + + // vs main + if (inject['vs:#main-start']) { rawVS = rawVS.replace(REGEX_START_OF_MAIN, (match: string) => { - return match + inject?.['vs:#main-start']; + return match + inject['vs:#main-start']; }); } - if (inject?.['fs:#decl']) { - // 头部注入 - rawFS = inject?.['fs:#decl'] + rawFS; + + // fs 头部注入 + if (inject['fs:#decl']) { + rawFS = inject['fs:#decl'] + rawFS; } + const injectDefines = getInjectDefines(defines); + + // 注入定义的宏 + rawVS = injectDefines + rawVS; + const { content: vs, includeList: vsIncludeList } = this.processModule(rawVS, [], 'vs'); const { content: fs, includeList: fsIncludeList } = this.processModule(rawFS, [], 'fs'); - let compiledFs = ''; + // TODO: extract uniforms and their default values from GLSL const uniforms: { [key: string]: any; @@ -121,25 +124,28 @@ export default class ShaderModuleService implements IShaderModuleService { * set default precision for fragment shader * https://stackoverflow.com/questions/28540290/why-it-is-necessary-to-set-precision-for-the-fragment-shader */ - if (!precisionRegExp.test(fs)) { - compiledFs = compiledFs + globalDefaultprecision; - } - compiledFs = compiledFs + fs; - - let compiledVs = ''; - if (!precisionRegExp.test(vs)) { - compiledVs = compiledVs + globalDefaultprecision; - } - compiledVs = compiledVs + vs; + const compiledVs = (precisionRegExp.test(fs) ? '' : globalDefaultprecision) + vs; + const compiledFs = (precisionRegExp.test(fs) ? '' : globalDefaultprecision) + fs; this.moduleCache[moduleName] = { + vs: compiledVs.trim(), fs: compiledFs.trim(), uniforms, - vs: compiledVs.trim(), }; + return this.moduleCache[moduleName]; } + public destroy() { + this.moduleCache = {}; + this.rawContentCache = {}; + } + + /** + * + * 解析定义的内联模块 + * like: #pragma include "projection" + */ private processModule( rawContent: string, includeList: string[], @@ -169,11 +175,12 @@ export default class ShaderModuleService implements IShaderModuleService { includeList, }; } +} - private injectDefines(defines: Record) { - const defineStr = Object.keys(defines).reduce((prev, cur) => { - return prev + `#define ${cur.toUpperCase()} ${defines[cur]};\n`; - }, '\n'); - return defineStr; - } +/** Generates defines from an object of key value pairs */ +function getInjectDefines(defines: Record) { + const defineStr = Object.keys(defines).reduce((prev, cur) => { + return prev + `#define ${cur.toUpperCase()} ${defines[cur]}\n`; + }, '\n'); + return defineStr; } diff --git a/packages/core/src/shaders/picking.vert.glsl b/packages/core/src/shaders/picking.vert.glsl index c987c7b7c6a..f58bc32f540 100644 --- a/packages/core/src/shaders/picking.vert.glsl +++ b/packages/core/src/shaders/picking.vert.glsl @@ -1,4 +1,4 @@ -layout(location = 3) in vec3 a_PickingColor; +layout(location = ATTRIBUTE_LOCATION_PICKING_COLOR) in vec3 a_PickingColor; out vec4 v_PickingResult; #pragma include "picking_uniforms" diff --git a/packages/core/src/shaders/projection.glsl b/packages/core/src/shaders/projection.glsl index 5181d927356..04b2a906cce 100644 --- a/packages/core/src/shaders/projection.glsl +++ b/packages/core/src/shaders/projection.glsl @@ -1,41 +1,39 @@ -#define TILE_SIZE 512.0 -#define PI 3.1415926536 -#define WORLD_SCALE TILE_SIZE / (PI * 2.0) -#define EARTH_CIRCUMFERENCE 40.03e6 - -#define COORDINATE_SYSTEM_LNGLAT 1.0 // mapbox -#define COORDINATE_SYSTEM_LNGLAT_OFFSET 2.0 // mapbox offset -#define COORDINATE_SYSTEM_VECTOR_TILE 3.0 -#define COORDINATE_SYSTEM_IDENTITY 4.0 -#define COORDINATE_SYSTEM_P20 5.0 // amap -#define COORDINATE_SYSTEM_P20_OFFSET 6.0 // amap offset -#define COORDINATE_SYSTEM_METER_OFFSET 7.0 - -#define COORDINATE_SYSTEM_P20_2 8.0 // amap2.0 +#define TILE_SIZE (512.0) +#define PI (3.1415926536) +#define WORLD_SCALE (TILE_SIZE / (PI * 2.0)) +#define EARTH_CIRCUMFERENCE (40.03e6) + +#define COORDINATE_SYSTEM_LNGLAT (1.0) // mapbox +#define COORDINATE_SYSTEM_LNGLAT_OFFSET (2.0) // mapbox offset +#define COORDINATE_SYSTEM_VECTOR_TILE (3.0) +#define COORDINATE_SYSTEM_IDENTITY (4.0) +#define COORDINATE_SYSTEM_P20 (5.0) // amap +#define COORDINATE_SYSTEM_P20_OFFSET (6.0) // amap offset +#define COORDINATE_SYSTEM_METER_OFFSET (7.0) + +#define COORDINATE_SYSTEM_P20_2 (8.0) // amap2.0 #pragma include "scene_uniforms" +const vec2 ZERO_64_XY_LOW = vec2(0.0, 0.0); // web mercator coords -> world coords vec2 project_mercator(vec2 lnglat) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.0 + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + // gaode2.0 return lnglat; } float x = lnglat.x; - return vec2( - radians(x) + PI, - PI - log(tan(PI * 0.25 + radians(lnglat.y) * 0.5)) - ); + return vec2(radians(x) + PI, PI - log(tan(PI * 0.25 + radians(lnglat.y) * 0.5))); } float project_scale(float meters) { return meters * u_PixelsPerMeter.z; } - // offset coords -> world coords vec4 project_offset(vec4 offset) { float dy = offset.y; - dy = clamp(dy, -1., 1.); + dy = clamp(dy, -1.0, 1.0); vec3 pixels_per_unit = u_PixelsPerDegree + u_PixelsPerDegree2 * dy; return vec4(offset.xyz * pixels_per_unit, offset.w); } @@ -46,8 +44,11 @@ vec3 project_normal(vec3 normal) { } vec3 project_offset_normal(vec3 vector) { - if (u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && u_CoordinateSystem >COORDINATE_SYSTEM_LNGLAT - 0.01 - || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + if ( + u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && + u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01 || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { // normals generated by the polygon tesselator are in lnglat offsets instead of meters return normalize(vector * u_PixelsPerDegree); } @@ -56,11 +57,15 @@ vec3 project_offset_normal(vec3 vector) { // || u_CoordinateSystem < COORDINATE_SYSTEM_P20_OFFSET + 0.01 && u_CoordinateSystem >COORDINATE_SYSTEM_P20_OFFSET - 0.01 // reverse Y vec3 reverse_offset_normal(vec3 vector) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 ||u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET ) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_P20 || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { return vector * vec3(1.0, -1.0, 1.0); } - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.0 + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + // gaode2.0 return vector; } return vector; @@ -70,10 +75,16 @@ vec4 project_mvt_offset_position(vec4 position) { float a = COORDINATE_SYSTEM_LNGLAT_OFFSET; float b = COORDINATE_SYSTEM_P20_OFFSET; float c = COORDINATE_SYSTEM_LNGLAT; - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { return project_offset(vec4(0.0, 0.0, position.z, position.w)); } - if (u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && u_CoordinateSystem >COORDINATE_SYSTEM_LNGLAT - 0.01) { + if ( + u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && + u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01 + ) { return vec4( project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale, project_scale(position.z), @@ -83,17 +94,25 @@ vec4 project_mvt_offset_position(vec4 position) { return position; } -vec4 project_position(vec4 position) { +vec4 project_position(vec4 position, vec2 position64xyLow) { float a = COORDINATE_SYSTEM_LNGLAT_OFFSET; float b = COORDINATE_SYSTEM_P20_OFFSET; float c = COORDINATE_SYSTEM_LNGLAT; - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET - || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { + // Subtract high part of 64 bit value. Convert remainder to float32, preserving precision. float X = position.x - u_ViewportCenter.x; float Y = position.y - u_ViewportCenter.y; - return project_offset(vec4(X, Y, position.z, position.w)); + return project_offset( + vec4(X + position64xyLow.x, Y + position64xyLow.y, position.z, position.w) + ); } - if (u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && u_CoordinateSystem >COORDINATE_SYSTEM_LNGLAT - 0.01) { + if ( + u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && + u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01 + ) { return vec4( project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale, project_scale(position.z), @@ -102,14 +121,14 @@ vec4 project_position(vec4 position) { } if (u_CoordinateSystem == COORDINATE_SYSTEM_P20) { return vec4( - (project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale - vec2(215440491., 106744817.)) * vec2(1., -1.), + (project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale - vec2(215440491.0, 106744817.0)) * + vec2(1.0, -1.0), project_scale(position.z), position.w ); } // if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { - // return vec4( // position.xy, @@ -119,113 +138,139 @@ vec4 project_position(vec4 position) { return position; // TODO: 瓦片坐标系 & 常规世界坐标系 + +} + +vec4 project_position(vec4 position) { + return project_position(position, ZERO_64_XY_LOW); } + vec2 project_pixel_size_to_clipspace(vec2 pixels) { vec2 offset = pixels / u_ViewportSize * u_DevicePixelRatio * 2.0; return offset * u_FocalDistance; } - - float project_pixel_allmap(float pixel) { - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { return pixel * pow(2.0, u_Zoom); } - return pixel * u_FocalDistance ; + return pixel * u_FocalDistance; } // 适配纹理贴图的等像素大小 float project_pixel_texture(float pixel) { // mapbox zoom > 12 - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - return pixel * pow(0.5, u_Zoom) * u_FocalDistance ; + if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + return pixel * pow(0.5, u_Zoom) * u_FocalDistance; } // amap2 zoom > 12 - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { - return pixel * pow(2.0, (19.0 - 3.0 - u_Zoom))* u_FocalDistance ; + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + return pixel * pow(2.0, 19.0 - 3.0 - u_Zoom) * u_FocalDistance; } // amap zoom > 12 if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { - return pixel * pow(0.5, u_Zoom)* u_FocalDistance ; + return pixel * pow(0.5, u_Zoom) * u_FocalDistance; } // amap zoom < 12 if (u_CoordinateSystem == COORDINATE_SYSTEM_P20) { - return pixel * pow(2.0, (20.0 - u_Zoom))* u_FocalDistance ; + return pixel * pow(2.0, 20.0 - u_Zoom) * u_FocalDistance; } - return pixel * 2.0 * u_FocalDistance;; + return pixel * 2.0 * u_FocalDistance; + ; } // 在不论什么底图下需要统一处理的时候使用 float project_float_pixel(float pixel) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { // mapbox P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - u_Zoom) * u_FocalDistance; } - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_P20 || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { // amap P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)); + return pixel * pow(2.0, 19.0 - u_Zoom); } - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // amap2 P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - return pixel * pow(2.0, (19.0 - 3.0 - u_Zoom))* u_FocalDistance ; + return pixel * pow(2.0, 19.0 - 3.0 - u_Zoom) * u_FocalDistance; } return pixel * u_FocalDistance; } // Project meter into the unit of pixel which used in the camera world space float project_float_meter(float meter) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { // Since the zoom level uniform is updated by mapservice and it's alread been subtracted by 1 // Not sure if we are supposed to do that again - return meter; - } else { + return meter; + } else { return project_float_pixel(meter); } // TODO: change the following code to make adaptations for amap // return u_FocalDistance * TILE_SIZE * pow(2.0, u_Zoom) * meter / EARTH_CIRCUMFERENCE; + } float project_pixel(float pixel) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_P20 || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { // amap P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - u_Zoom) * u_FocalDistance; } - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // amap2 P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - return pixel * pow(2.0, (19.0 - 3.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - 3.0 - u_Zoom) * u_FocalDistance; } return pixel * u_FocalDistance; } vec2 project_pixel(vec2 pixel) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_P20 || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { // P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - u_Zoom) * u_FocalDistance; } - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - return pixel * pow(2.0, (19.0 - 3.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - 3.0 - u_Zoom) * u_FocalDistance; } - return pixel * -1. * u_FocalDistance; + return pixel * -1.0 * u_FocalDistance; } vec3 project_pixel(vec3 pixel) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_P20 || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { // P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - u_Zoom) * u_FocalDistance; } - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - return pixel * pow(2.0, (19.0 - 3.0 - u_Zoom)) * u_FocalDistance ; + return pixel * pow(2.0, 19.0 - 3.0 - u_Zoom) * u_FocalDistance; } - return pixel * -1. * u_FocalDistance; + return pixel * -1.0 * u_FocalDistance; } vec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || - u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { // Needs to be divided with project_uCommonUnitsPerMeter position.w *= u_PixelsPerMeter.z; } @@ -245,22 +290,24 @@ vec4 project_common_position_to_clipspace(vec4 position) { vec4 unproject_clipspace_to_position(vec4 clipspacePos, mat4 u_InverseViewProjectionMatrix) { vec4 pos = u_InverseViewProjectionMatrix * (clipspacePos - u_ViewportCenterProjection); - if (u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || - u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { // Needs to be divided with project_uCommonUnitsPerMeter - pos.w = pos.w / u_PixelsPerMeter.z; + pos.w = pos.w / u_PixelsPerMeter.z; } return pos; } - -bool isEqual( float a, float b) { - return a< b + 0.001 && a > b - 0.001; +bool isEqual(float a, float b) { + return a < b + 0.001 && a > b - 0.001; } // 支持 GaodeV2、Mapbox vec4 project_common_position_to_clipspace_v2(vec4 position) { - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + // gaode2.x return u_Mvp * position; } else { return project_common_position_to_clipspace(position); diff --git a/packages/layers/src/citybuliding/models/build.ts b/packages/layers/src/citybuliding/models/build.ts index 3f55013a333..e4fe1c46e97 100644 --- a/packages/layers/src/citybuliding/models/build.ts +++ b/packages/layers/src/citybuliding/models/build.ts @@ -2,12 +2,21 @@ import type { IEncodeFeature, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { ICityBuildLayerStyleOptions } from '../../core/interface'; import { PolygonExtrudeTriangulation } from '../../core/triangulation'; import buildFrag from '../shaders/build_frag.glsl'; import buildVert from '../shaders/build_vert.glsl'; + export default class CityBuildModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + NORMAL: 10, + UV: 11, + }); + } + private cityCenter: [number, number]; private cityMinSize: number; protected getCommonUniformsInfo(): { @@ -85,6 +94,7 @@ export default class CityBuildModel extends BaseModel { fragmentShader: buildFrag, triangulation: PolygonExtrudeTriangulation, depth: { enable: true }, + defines: this.getDefines(), inject: this.getInject(), cull: { enable: true, @@ -101,7 +111,7 @@ export default class CityBuildModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -126,7 +136,7 @@ export default class CityBuildModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -145,7 +155,7 @@ export default class CityBuildModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/citybuliding/shaders/build_frag.glsl b/packages/layers/src/citybuliding/shaders/build_frag.glsl index 669b88e9ebb..aa135fd1926 100644 --- a/packages/layers/src/citybuliding/shaders/build_frag.glsl +++ b/packages/layers/src/citybuliding/shaders/build_frag.glsl @@ -1,16 +1,16 @@ precision highp float; layout(std140) uniform commonUniforms { - vec4 u_baseColor : [ 1.0, 0, 0, 1.0 ]; - vec4 u_brightColor : [ 1.0, 0, 0, 1.0 ]; - vec4 u_windowColor : [ 1.0, 0, 0, 1.0 ]; + vec4 u_baseColor: [ 1.0, 0, 0, 1.0 ]; + vec4 u_brightColor: [ 1.0, 0, 0, 1.0 ]; + vec4 u_windowColor: [ 1.0, 0, 0, 1.0 ]; vec4 u_circleSweepColor; vec2 u_cityCenter; float u_circleSweep; float u_cityMinSize; float u_circleSweepSpeed; float u_opacity: 1.0; - float u_near : 0; - float u_far : 1; + float u_near: 0; + float u_far: 1; float u_time; }; in vec4 v_Color; @@ -114,7 +114,7 @@ void main() { float r = fract(((v_worldDis/u_cityMinSize) - u_time * u_circleSweepSpeed) * 2.0); outputColor.rgb += r * r * u_circleSweepColor.rgb; } - + outputColor.a *= u_opacity; outputColor = filterColor(outputColor); } diff --git a/packages/layers/src/citybuliding/shaders/build_vert.glsl b/packages/layers/src/citybuliding/shaders/build_vert.glsl index 54118f530e9..49d26460651 100644 --- a/packages/layers/src/citybuliding/shaders/build_vert.glsl +++ b/packages/layers/src/citybuliding/shaders/build_vert.glsl @@ -4,11 +4,11 @@ precision highp float; #define diffuseRatio 0.3 #define specularRatio 0.2 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; out vec2 v_texCoord; out vec4 v_Color; @@ -46,7 +46,7 @@ void main() { } v_worldDis = length(a_Position.xy + lnglatscale - u_cityCenter); } - + if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0)); } else { diff --git a/packages/layers/src/core/BaseLayer.ts b/packages/layers/src/core/BaseLayer.ts index 64d552f13e1..d4cc3dca8b7 100644 --- a/packages/layers/src/core/BaseLayer.ts +++ b/packages/layers/src/core/BaseLayer.ts @@ -1174,6 +1174,7 @@ export default class BaseLayer moduleName, vertexShader, fragmentShader, + defines, inject, triangulation, styleOption, @@ -1183,6 +1184,7 @@ export default class BaseLayer this.shaderModuleService.registerModule(moduleName, { vs: vertexShader, fs: fragmentShader, + defines, inject, }); const { vs, fs, uniforms } = this.shaderModuleService.getModule(moduleName); diff --git a/packages/layers/src/core/BaseModel.ts b/packages/layers/src/core/BaseModel.ts index a9ec7c5efef..d1c3b7e71c1 100644 --- a/packages/layers/src/core/BaseModel.ts +++ b/packages/layers/src/core/BaseModel.ts @@ -5,10 +5,10 @@ import type { IBuffer, ICameraService, IElements, + IEncodeFeature, IFontService, IGlobalConfigService, IIconService, - IInject, ILayer, ILayerConfig, ILayerModel, @@ -17,20 +17,22 @@ import type { IModel, IModelUniform, IPickingService, - IRendererService, IRenderOptions, + IRendererService, IShaderModuleService, IStencilOptions, IStyleAttributeService, ITexture2D, ITexture2DInitializationOptions, + ShaderDefine, + ShaderInject, Triangulation, } from '@antv/l7-core'; -import { BlendType, MaskOperation, StencilType } from '@antv/l7-core'; -import { rgb2arr } from '@antv/l7-utils'; +import { AttributeType, BlendType, MaskOperation, StencilType, gl } from '@antv/l7-core'; +import { fp64LowPart, rgb2arr } from '@antv/l7-utils'; import { BlendTypes } from '../utils/blend'; import { getStencil, getStencilMask } from '../utils/stencil'; -import { getCommonStyleAttributeOptions, ShaderLocation } from './CommonStyleAttribute'; +import { COMMON_ATTRIBUTE_LOCATION, getCommonStyleAttributeOptions } from './CommonStyleAttribute'; import { DefaultUniformStyleType, DefaultUniformStyleValue } from './constant'; import { MultipleOfFourNumber } from './utils'; export type styleSingle = @@ -51,20 +53,22 @@ export interface ICellProperty { count: number; } -const shaderLocationMap: Record = { - opacity: ShaderLocation.OPACITY, - stroke: ShaderLocation.STROKE, - offsets: ShaderLocation.OFFSETS, - rotation: ShaderLocation.ROTATION, - extrusionBase: ShaderLocation.EXTRUSION_BASE, - thetaOffset: 15, -}; +type AttributeLayoutLocationType = typeof COMMON_ATTRIBUTE_LOCATION & Record; + +// 属性索引宏定义前缀,使用命名空间避免 define 名称重复情况 +const DEFINE_ATTRIBUTE_LOCATION_PREFIX = 'ATTRIBUTE_LOCATION_'; // eslint-disable-next-line @typescript-eslint/no-unused-vars export default class BaseModel implements ILayerModel { public triangulation: Triangulation; public uniformBuffers: IBuffer[] = []; public textures: ITexture2D[] = []; + /** + * Attribute Layout Location in Shader + */ + protected get attributeLocation(): AttributeLayoutLocationType { + return { ...COMMON_ATTRIBUTE_LOCATION }; + } // style texture data mapping public createTexture2D: (options: ITexture2DInitializationOptions) => ITexture2D; @@ -229,60 +233,26 @@ export default class BaseModel implements ILayerMod } } - // 动态注入参与数据映射的uniform - protected getInject(): IInject { - const encodeStyleAttribute = this.layer.encodeStyleAttribute; - let str = ''; - // a_Position = 0 - // a_Color = 1 - // a_PickingColor = 2 - - const uniforms: string[] = []; - // 支持数据映射的类型 - this.layer.enableShaderEncodeStyles.forEach((key: string) => { - if (encodeStyleAttribute[key]) { - // 配置了数据映射的类型 - str += `#define USE_ATTRIBUTE_${key.toUpperCase()} 0.0; \n\n`; - } else { - uniforms.push(` ${DefaultUniformStyleType[key]} u_${key};`); - } - let location = shaderLocationMap[key]; - if (!location && key === 'THETA_OFFSET') { - location = 15; - } - str += ` - #ifdef USE_ATTRIBUTE_${key.toUpperCase()} - layout(location = ${shaderLocationMap[key]}) in ${ - DefaultUniformStyleType[key] - } a_${key.charAt(0).toUpperCase() + key.slice(1)}; - #endif\n - `; - }); - const attributeUniforms = uniforms.length - ? ` -layout(std140) uniform AttributeUniforms { -${uniforms.join('\n')} -}; - ` - : ''; - str += attributeUniforms; + protected getInject(): ShaderInject { + const shaderInject = getDynamicStyleInject( + this.layer.enableShaderEncodeStyles, + this.layer.encodeStyleAttribute, + ); - let innerStr = ''; - this.layer.enableShaderEncodeStyles.forEach((key) => { - innerStr += `\n - #ifdef USE_ATTRIBUTE_${key.toUpperCase()} - ${DefaultUniformStyleType[key]} ${key} = a_${key.charAt(0).toUpperCase() + key.slice(1)}; - #else - ${DefaultUniformStyleType[key]} ${key} = u_${key}; - #endif\n - `; - }); + return shaderInject; + } - return { - 'vs:#decl': str, - 'fs:#decl': attributeUniforms, - 'vs:#main-start': innerStr, - }; + protected getDefines(): Record { + // define atribute Layout Location + const atributeLocationDefines = Object.keys(this.attributeLocation).reduce< + Record + >((result, key) => { + const normalizedKey = DEFINE_ATTRIBUTE_LOCATION_PREFIX + key; + result[normalizedKey] = this.attributeLocation[key]; + return result; + }, {}); + + return { ...atributeLocationDefines }; } // 获取数据映射样式 @@ -304,19 +274,41 @@ ${uniforms.join('\n')} }); return options; } + // 注册数据映射样式 protected registerStyleAttribute() { Object.keys(this.layer.encodeStyleAttribute).forEach((key) => { const options = getCommonStyleAttributeOptions(key); if (options) { this.styleAttributeService.registerStyleAttribute(options); - - if (options.descriptor) { - options.descriptor.shaderLocation = shaderLocationMap[key]; - } } }); } + + /** + * 注册 Position 属性 64 位地位部分,当经纬度数据开启双精度浮点数使用, + * 避免大于 20层级以上出现数据偏移 + */ + protected registerPosition64LowAttribute(enable64bitPosition = true) { + // save low part for enabled double precision POSITION attribute + this.styleAttributeService.registerStyleAttribute({ + name: 'position64Low', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Position64Low', + shaderLocation: this.attributeLocation.POSITION_64LOW, + buffer: { + data: [], + type: gl.FLOAT, + }, + size: 2, + update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { + return enable64bitPosition ? [fp64LowPart(vertex[0]), fp64LowPart(vertex[1])] : [0, 0]; + }, + }, + }); + } + public updateEncodeAttribute(type: string, flag: boolean) { this.encodeStyleAttribute[type] = flag; } @@ -389,3 +381,59 @@ ${uniforms.join('\n')} }); } } + +/** + * 获取动态注入参与数据映射 uniform/attribute + */ +function getDynamicStyleInject( + shaderEncodeStyles: string[], + styleAttribute: Record, +): ShaderInject { + const uniforms: string[] = []; + let vsDeclInjection = ''; + + // 支持数据映射的类型 + shaderEncodeStyles.forEach((key) => { + const upperCaseKey = key.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase(); + const shaderDefineName = DEFINE_ATTRIBUTE_LOCATION_PREFIX + upperCaseKey; + + if (styleAttribute[key]) { + // 配置了数据映射的类型 + vsDeclInjection += `#define USE_ATTRIBUTE_${upperCaseKey} 0.0 \n`; + } else { + uniforms.push(` ${DefaultUniformStyleType[key]} u_${key};`); + } + + vsDeclInjection += ` +#ifdef USE_ATTRIBUTE_${upperCaseKey} +layout(location = ${shaderDefineName}) in ${DefaultUniformStyleType[key]} a_${key.charAt(0).toUpperCase() + key.slice(1)}; +#endif \n`; + }); + + const fsDeclInjection = uniforms.length + ? ` +layout(std140) uniform AttributeUniforms { + ${uniforms.join('\n')} +};\n` + : ''; + + vsDeclInjection += fsDeclInjection; + + let vsMainInjection = ''; + shaderEncodeStyles.forEach((key) => { + const upperCaseKey = key.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase(); + vsMainInjection += ` + #ifdef USE_ATTRIBUTE_${upperCaseKey} + ${DefaultUniformStyleType[key]} ${key} = a_${key.charAt(0).toUpperCase() + key.slice(1)}; + #else + ${DefaultUniformStyleType[key]} ${key} = u_${key}; + #endif + `; + }); + + return { + 'vs:#decl': vsDeclInjection, + 'fs:#decl': fsDeclInjection, + 'vs:#main-start': vsMainInjection, + }; +} diff --git a/packages/layers/src/core/CommonStyleAttribute.ts b/packages/layers/src/core/CommonStyleAttribute.ts index c45fdba95ab..0e49ea74fcf 100644 --- a/packages/layers/src/core/CommonStyleAttribute.ts +++ b/packages/layers/src/core/CommonStyleAttribute.ts @@ -1,24 +1,26 @@ import type { IEncodeFeature, IStyleAttribute } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; -export enum ShaderLocation { - POSITION = 0, - COLOR, - VERTEX_ID, - PICKING_COLOR, - STROKE, - OPACITY, - OFFSETS, - ROTATION, - EXTRUSION_BASE, - SIZE, - SHAPE, - EXTRUDE, - MAX, - NORMAL, - UV, - LINEAR, // Polygon Linear -} +/** + * Attribute Layout Location in Shader + */ +export const COMMON_ATTRIBUTE_LOCATION = { + // common attribute in RegisterStyleAttributePlugin + POSITION: 0, + // low part for double precision POSITION attribute + POSITION_64LOW: 1, + COLOR: 2, + PICKING_COLOR: 3, + + // common style attribute + STROKE: 4, + OPACITY: 5, + OFFSETS: 6, + ROTATION: 7, + + // last index + MAX: 8, +} as const; export function getCommonStyleAttributeOptions(name: string): Partial | undefined { switch (name) { @@ -29,7 +31,7 @@ export function getCommonStyleAttributeOptions(name: string): Partial { - const { extrusionBase: op = 0 } = feature; - return [op]; - }, - }, - }; case 'offsets': return { name: 'offsets', type: AttributeType.Attribute, descriptor: { name: 'a_Offsets', - shaderLocation: ShaderLocation.OFFSETS, + shaderLocation: COMMON_ATTRIBUTE_LOCATION.OFFSETS, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -122,26 +104,6 @@ export function getCommonStyleAttributeOptions(name: string): Partial { - const { thetaOffset: op = 1 } = feature; - return [op]; - }, - }, - }; default: return undefined; } diff --git a/packages/layers/src/earth/models/atmosphere.ts b/packages/layers/src/earth/models/atmosphere.ts index bca23db6e0d..038343287d9 100644 --- a/packages/layers/src/earth/models/atmosphere.ts +++ b/packages/layers/src/earth/models/atmosphere.ts @@ -2,16 +2,24 @@ import type { IEncodeFeature, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { lodashUtil } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import { earthTriangulation } from '../../core/triangulation'; import atmoSphereFrag from '../shaders/atmosphere/atmosphere_frag.glsl'; import atmoSphereVert from '../shaders/atmosphere/atmosphere_vert.glsl'; + interface IAtmoSphereLayerStyleOptions { opacity: number; } const { isNumber } = lodashUtil; export default class EarthAtomSphereModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + NORMAL: 9, + UV: 10, + }); + } + protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -41,6 +49,7 @@ export default class EarthAtomSphereModel extends BaseModel { moduleName: 'earthAtmoSphere', vertexShader: atmoSphereVert, fragmentShader: atmoSphereFrag, + defines: this.getDefines(), triangulation: earthTriangulation, depth: { enable: false }, blend: this.getBlend(), @@ -50,31 +59,31 @@ export default class EarthAtomSphereModel extends BaseModel { protected registerBuiltinAttributes() { // point layer size; - this.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, - buffer: { - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: (feature: IEncodeFeature) => { - const { size = 1 } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); + // this.styleAttributeService.registerStyleAttribute({ + // name: 'size', + // type: AttributeType.Attribute, + // descriptor: { + // name: 'a_Size', + // shaderLocation: this.attributeLocation.SIZE, + // buffer: { + // usage: gl.DYNAMIC_DRAW, + // data: [], + // type: gl.FLOAT, + // }, + // size: 1, + // update: (feature: IEncodeFeature) => { + // const { size = 1 } = feature; + // return Array.isArray(size) ? [size[0]] : [size as number]; + // }, + // }, + // }); this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -98,7 +107,7 @@ export default class EarthAtomSphereModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/earth/models/base.ts b/packages/layers/src/earth/models/base.ts index 1c43ffc09ed..7685a4fbcef 100644 --- a/packages/layers/src/earth/models/base.ts +++ b/packages/layers/src/earth/models/base.ts @@ -4,11 +4,18 @@ import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; import { earthTriangulation } from '../../core/triangulation'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import baseFrag from '../shaders/base/base_frag.glsl'; import baseVert from '../shaders/base/base_vert.glsl'; export default class BaseEarthModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + NORMAL: 9, + UV: 10, + }); + } + protected texture: ITexture2D; // T: 当前的地球时间 - 控制太阳的方位 private earthTime: number = 3.4; @@ -95,6 +102,7 @@ export default class BaseEarthModel extends BaseModel { moduleName: 'earthBase', vertexShader: baseVert, fragmentShader: baseFrag, + defines: this.getDefines(), triangulation: earthTriangulation, depth: { enable: true }, blend: this.getBlend(), @@ -103,31 +111,31 @@ export default class BaseEarthModel extends BaseModel { } protected registerBuiltinAttributes() { - this.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, - buffer: { - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: (feature: IEncodeFeature) => { - const { size = 1 } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); + // this.styleAttributeService.registerStyleAttribute({ + // name: 'size', + // type: AttributeType.Attribute, + // descriptor: { + // name: 'a_Size', + // shaderLocation: this.attributeLocation.SIZE, + // buffer: { + // usage: gl.DYNAMIC_DRAW, + // data: [], + // type: gl.FLOAT, + // }, + // size: 1, + // update: (feature: IEncodeFeature) => { + // const { size = 1 } = feature; + // return Array.isArray(size) ? [size[0]] : [size as number]; + // }, + // }, + // }); this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -151,7 +159,7 @@ export default class BaseEarthModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/earth/models/bloomsphere.ts b/packages/layers/src/earth/models/bloomsphere.ts index 01736058c1a..b189c6e7e10 100644 --- a/packages/layers/src/earth/models/bloomsphere.ts +++ b/packages/layers/src/earth/models/bloomsphere.ts @@ -3,7 +3,6 @@ import { AttributeType, gl } from '@antv/l7-core'; import { lodashUtil } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import { earthOuterTriangulation } from '../../core/triangulation'; import bloomSphereFrag from '../shaders/bloomshpere/bloomsphere_frag.glsl'; import bloomSphereVert from '../shaders/bloomshpere/bloomsphere_vert.glsl'; @@ -12,6 +11,14 @@ interface IBloomLayerStyleOptions { } const { isNumber } = lodashUtil; export default class EarthBloomSphereModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + NORMAL: 9, + UV: 10, + }); + } + protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -41,6 +48,7 @@ export default class EarthBloomSphereModel extends BaseModel { moduleName: 'earthBloom', vertexShader: bloomSphereVert, fragmentShader: bloomSphereFrag, + defines: this.getDefines(), triangulation: earthOuterTriangulation, depth: { enable: false }, blend: this.getBlend(), @@ -49,31 +57,31 @@ export default class EarthBloomSphereModel extends BaseModel { } protected registerBuiltinAttributes() { - this.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, - buffer: { - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: (feature: IEncodeFeature) => { - const { size = 1 } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); + // this.styleAttributeService.registerStyleAttribute({ + // name: 'size', + // type: AttributeType.Attribute, + // descriptor: { + // name: 'a_Size', + // shaderLocation: this.attributeLocation.SIZE, + // buffer: { + // usage: gl.DYNAMIC_DRAW, + // data: [], + // type: gl.FLOAT, + // }, + // size: 1, + // update: (feature: IEncodeFeature) => { + // const { size = 1 } = feature; + // return Array.isArray(size) ? [size[0]] : [size as number]; + // }, + // }, + // }); this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -97,7 +105,7 @@ export default class EarthBloomSphereModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/earth/shaders/atmosphere/atmosphere_vert.glsl b/packages/layers/src/earth/shaders/atmosphere/atmosphere_vert.glsl index fa995a18ba9..712e89fb9bb 100644 --- a/packages/layers/src/earth/shaders/atmosphere/atmosphere_vert.glsl +++ b/packages/layers/src/earth/shaders/atmosphere/atmosphere_vert.glsl @@ -1,10 +1,12 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) vec4 a_Color; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; + layout(std140) uniform commonUniforms { float u_opacity; }; + #pragma include "scene_uniforms" out vec3 vVertexNormal; out vec4 v_Color; @@ -12,7 +14,7 @@ out float v_offset; void main() { float EARTH_RADIUS = 100.0; - + v_Color = a_Color; v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0); diff --git a/packages/layers/src/earth/shaders/base/base_vert.glsl b/packages/layers/src/earth/shaders/base/base_vert.glsl index 0837a31ad1d..bd49df4ce50 100644 --- a/packages/layers/src/earth/shaders/base/base_vert.glsl +++ b/packages/layers/src/earth/shaders/base/base_vert.glsl @@ -1,7 +1,7 @@ // attribute vec4 a_Color; -layout(location = 0) in vec3 a_Position; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; // attribute vec2 a_Extrude; // attribute float a_Size; diff --git a/packages/layers/src/earth/shaders/bloomshpere/bloomsphere_vert.glsl b/packages/layers/src/earth/shaders/bloomshpere/bloomsphere_vert.glsl index f2ea5ad3bd9..401ebf9ecc6 100644 --- a/packages/layers/src/earth/shaders/bloomshpere/bloomsphere_vert.glsl +++ b/packages/layers/src/earth/shaders/bloomshpere/bloomsphere_vert.glsl @@ -1,7 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) vec4 a_Color; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; + layout(std140) uniform commonUniforms { float u_opacity; }; diff --git a/packages/layers/src/geometry/models/billboard.ts b/packages/layers/src/geometry/models/billboard.ts index b6d00311ef8..eaccf3b459c 100644 --- a/packages/layers/src/geometry/models/billboard.ts +++ b/packages/layers/src/geometry/models/billboard.ts @@ -1,12 +1,19 @@ import type { IEncodeFeature, IModel, IModelUniform, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IGeometryLayerStyleOptions } from '../../core/interface'; import planeFrag from '../shaders/billboard_frag.glsl'; import planeVert from '../shaders/billboard_vert.glsl'; export default class BillBoardModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + EXTRUDE: 9, + UV: 10, + }); + } + protected texture: ITexture2D; private radian: number = 0; // 旋转的弧度 @@ -97,6 +104,7 @@ export default class BillBoardModel extends BaseModel { vertexShader: planeVert, fragmentShader: planeFrag, triangulation: this.planeGeometryTriangulation, + defines: this.getDefines(), inject: this.getInject(), primitive: gl.TRIANGLES, depth: { enable: true }, @@ -136,7 +144,7 @@ export default class BillBoardModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Extrude', - shaderLocation: ShaderLocation.EXTRUDE, + shaderLocation: this.attributeLocation.EXTRUDE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -160,7 +168,7 @@ export default class BillBoardModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/geometry/models/plane.ts b/packages/layers/src/geometry/models/plane.ts index 5f6610d0130..b744e09795e 100644 --- a/packages/layers/src/geometry/models/plane.ts +++ b/packages/layers/src/geometry/models/plane.ts @@ -8,12 +8,18 @@ import type { import { AttributeType, gl } from '@antv/l7-core'; // import { mat4, vec3 } from 'gl-matrix'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IGeometryLayerStyleOptions } from '../../core/interface'; import planeFrag from '../shaders/plane_frag.glsl'; import planeVert from '../shaders/plane_vert.glsl'; export default class PlaneModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 10, + }); + } + protected texture: ITexture2D; protected terrainImage: HTMLImageElement; protected terrainImageLoaded: boolean = false; @@ -165,6 +171,7 @@ export default class PlaneModel extends BaseModel { vertexShader: planeVert, fragmentShader: planeFrag, triangulation: this.planeGeometryTriangulation, + defines: this.getDefines(), inject: this.getInject(), primitive: gl.TRIANGLES, depth: { enable: true }, @@ -356,7 +363,7 @@ export default class PlaneModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/geometry/models/sprite.ts b/packages/layers/src/geometry/models/sprite.ts index a43b5f555ca..80717378163 100644 --- a/packages/layers/src/geometry/models/sprite.ts +++ b/packages/layers/src/geometry/models/sprite.ts @@ -193,6 +193,7 @@ export default class SpriteModel extends BaseModel { vertexShader: spriteVert, fragmentShader: spriteFrag, triangulation: this.planeGeometryTriangulation, + defines: this.getDefines(), inject: this.getInject(), primitive: gl.POINTS, depth: { enable: false }, diff --git a/packages/layers/src/geometry/shaders/billboard_vert.glsl b/packages/layers/src/geometry/shaders/billboard_vert.glsl index 6d58e418dc1..4265e9d2c9a 100644 --- a/packages/layers/src/geometry/shaders/billboard_vert.glsl +++ b/packages/layers/src/geometry/shaders/billboard_vert.glsl @@ -1,6 +1,6 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 11) in vec3 a_Extrude; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec2 u_size; diff --git a/packages/layers/src/geometry/shaders/plane_vert.glsl b/packages/layers/src/geometry/shaders/plane_vert.glsl index 03b752467c2..0777afcc463 100644 --- a/packages/layers/src/geometry/shaders/plane_vert.glsl +++ b/packages/layers/src/geometry/shaders/plane_vert.glsl @@ -1,7 +1,7 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec3 a_Color; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec3 a_Color; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { float u_opacity; @@ -18,14 +18,14 @@ out float v_clip; void main() { v_Color = a_Color; v_uv = a_Uv; - + vec4 project_pos = project_position(vec4(a_Position, 1.0)); v_clip = 1.0; if(a_Position.z < u_terrainClipHeight) { v_clip = 0.0; } - + gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy, a_Position.z, 1.0)); setPickingColor(a_PickingColor); diff --git a/packages/layers/src/geometry/shaders/sprite_vert.glsl b/packages/layers/src/geometry/shaders/sprite_vert.glsl index 77e8fbbdaa7..09001ede1ff 100644 --- a/packages/layers/src/geometry/shaders/sprite_vert.glsl +++ b/packages/layers/src/geometry/shaders/sprite_vert.glsl @@ -1,5 +1,5 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec3 a_Color; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec3 a_Color; layout(std140) uniform commonUniforms { float u_opacity; @@ -12,12 +12,12 @@ out float v_d; #pragma include "projection" void main() { - v_Color = a_Color.xyz; - - vec4 project_pos = project_position(vec4(a_Position, 1.0)); + v_Color = a_Color.xyz; - v_d = a_Position.z; + vec4 project_pos = project_position(vec4(a_Position, 1.0)); + + v_d = a_Position.z; gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy, a_Position.z, 1.0)); -gl_PointSize = pow((u_Zoom - 1.0), 2.0) * u_Scale; + gl_PointSize = pow(u_Zoom - 1.0, 2.0) * u_Scale; } diff --git a/packages/layers/src/heatmap/models/grid.ts b/packages/layers/src/heatmap/models/grid.ts index db72882ceac..c4a2ea48b3f 100644 --- a/packages/layers/src/heatmap/models/grid.ts +++ b/packages/layers/src/heatmap/models/grid.ts @@ -6,6 +6,13 @@ import { HeatmapGridTriangulation } from '../../core/triangulation'; import grid_frag from '../shaders/grid/grid_frag.glsl'; import grid_vert from '../shaders/grid/grid_vert.glsl'; export default class GridModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + POS: 9, + }); + } + public getUninforms(): IModelUniform { const commoninfo = this.getCommonUniformsInfo(); const attributeInfo = this.getUniformsBufferInfo(this.getStyleAttribute()); @@ -43,6 +50,7 @@ export default class GridModel extends BaseModel { moduleName: 'heatmapGrid', vertexShader: grid_vert, fragmentShader: grid_frag, + defines: this.getDefines(), triangulation: HeatmapGridTriangulation, primitive: gl.TRIANGLES, depth: { enable: false }, @@ -54,7 +62,7 @@ export default class GridModel extends BaseModel { name: 'pos', // 顶点经纬度位置 type: AttributeType.Attribute, descriptor: { - shaderLocation: 10, + shaderLocation: this.attributeLocation.POS, name: 'a_Pos', buffer: { usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/heatmap/models/grid3d.ts b/packages/layers/src/heatmap/models/grid3d.ts index c78be6b780c..9c99aba116a 100644 --- a/packages/layers/src/heatmap/models/grid3d.ts +++ b/packages/layers/src/heatmap/models/grid3d.ts @@ -1,12 +1,20 @@ import type { IEncodeFeature, IModel, IModelUniform } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IHeatMapLayerStyleOptions } from '../../core/interface'; import { PointExtrudeTriangulation } from '../../core/triangulation'; import grid_3d_frag from '../shaders/grid3d/grid_3d_frag.glsl'; import grid_3d_vert from '../shaders/grid3d/grid_3d_vert.glsl'; export default class Grid3DModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + POS: 10, + NORMAL: 11, + }); + } + public getUninforms(): IModelUniform { const commoninfo = this.getCommonUniformsInfo(); const attributeInfo = this.getUniformsBufferInfo(this.getStyleAttribute()); @@ -44,6 +52,7 @@ export default class Grid3DModel extends BaseModel { moduleName: 'heatmapGrid3d', vertexShader: grid_3d_vert, fragmentShader: grid_3d_frag, + defines: this.getDefines(), triangulation: PointExtrudeTriangulation, primitive: gl.TRIANGLES, depth: { enable: true }, @@ -55,7 +64,7 @@ export default class Grid3DModel extends BaseModel { name: 'size', type: AttributeType.Attribute, descriptor: { - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, name: 'a_Size', buffer: { usage: gl.DYNAMIC_DRAW, @@ -75,7 +84,7 @@ export default class Grid3DModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -98,7 +107,7 @@ export default class Grid3DModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Pos', - shaderLocation: 10, + shaderLocation: this.attributeLocation.POS, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/heatmap/models/heatmap.ts b/packages/layers/src/heatmap/models/heatmap.ts index bd8f53a53e7..e71aff7e58f 100644 --- a/packages/layers/src/heatmap/models/heatmap.ts +++ b/packages/layers/src/heatmap/models/heatmap.ts @@ -21,13 +21,21 @@ import heatmap_3d_vert from '../shaders/heatmap/heatmap_3d_vert.glsl'; import heatmap_frag from '../shaders/heatmap/heatmap_frag.glsl'; import heatmap_vert from '../shaders/heatmap/heatmap_vert.glsl'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import heatmap_framebuffer_frag from '../shaders/heatmap/heatmap_framebuffer_frag.glsl'; import heatmap_framebuffer_vert from '../shaders/heatmap/heatmap_framebuffer_vert.glsl'; import { heatMap3DTriangulation } from '../triangulation'; const { isEqual } = lodashUtil; export default class HeatMapModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + UV: 10, + DIR: 11, + }); + } + protected texture: ITexture2D; protected colorTexture: ITexture2D; protected heatmapFramerBuffer: IFramebuffer; @@ -112,7 +120,7 @@ export default class HeatMapModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Dir', - shaderLocation: 10, + shaderLocation: this.attributeLocation.DIR, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -130,7 +138,7 @@ export default class HeatMapModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -159,6 +167,7 @@ export default class HeatMapModel extends BaseModel { vertexShader: heatmap_framebuffer_vert, fragmentShader: heatmap_framebuffer_frag, triangulation: HeatmapTriangulation, + defines: this.getDefines(), depth: { enable: false, @@ -192,7 +201,7 @@ export default class HeatMapModel extends BaseModel { uniformBuffers: [...this.colorModelUniformBuffer, ...this.rendererService.uniformBuffers], attributes: { a_Position: createAttribute({ - shaderLocation: ShaderLocation.POSITION, + shaderLocation: this.attributeLocation.POSITION, buffer: createBuffer({ data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0], type: gl.FLOAT, @@ -200,7 +209,7 @@ export default class HeatMapModel extends BaseModel { size: 3, }), a_Uv: createAttribute({ - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: createBuffer({ data: [0, 1, 1, 1, 0, 0, 1, 0], type: gl.FLOAT, @@ -344,7 +353,7 @@ export default class HeatMapModel extends BaseModel { fs, attributes: { a_Position: createAttribute({ - shaderLocation: ShaderLocation.POSITION, + shaderLocation: this.attributeLocation.POSITION, buffer: createBuffer({ data: triangulation.vertices, type: gl.FLOAT, @@ -352,7 +361,7 @@ export default class HeatMapModel extends BaseModel { size: 3, }), a_Uv: createAttribute({ - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: createBuffer({ data: triangulation.uvs, type: gl.FLOAT, diff --git a/packages/layers/src/heatmap/models/hexagon.ts b/packages/layers/src/heatmap/models/hexagon.ts index c29e6d2eaf3..0dffacfd142 100644 --- a/packages/layers/src/heatmap/models/hexagon.ts +++ b/packages/layers/src/heatmap/models/hexagon.ts @@ -7,6 +7,13 @@ import hexagon_frag from '../shaders/hexagon/hexagon_frag.glsl'; import hexagon_vert from '../shaders/hexagon/hexagon_vert.glsl'; export default class HexagonModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + POS: 9, + }); + } + public getUninforms(): IModelUniform { const commoninfo = this.getCommonUniformsInfo(); const attributeInfo = this.getUniformsBufferInfo(this.getStyleAttribute()); @@ -56,7 +63,7 @@ export default class HexagonModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Pos', - shaderLocation: 10, + shaderLocation: this.attributeLocation.POS, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/heatmap/shaders/grid/grid_vert.glsl b/packages/layers/src/heatmap/shaders/grid/grid_vert.glsl index 35f949391dd..1bd0f22a1bf 100644 --- a/packages/layers/src/heatmap/shaders/grid/grid_vert.glsl +++ b/packages/layers/src/heatmap/shaders/grid/grid_vert.glsl @@ -1,42 +1,42 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 10) in vec3 a_Pos; - -layout(std140) uniform commonUniforms { - vec2 u_radius; - float u_opacity; - float u_coverage; - float u_angle; -}; - - -out vec4 v_color; - - -#pragma include "projection" -#pragma include "project" -#pragma include "picking" - -void main() { - v_color = a_Color; - v_color.a *= u_opacity; - - mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); - vec2 offset = a_Position.xy * u_radius * rotationMatrix * u_coverage ; - // vec2 lnglat = unProjectFlat(a_Pos.xy + offset); - // vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); - // gl_Position = project_common_position_to_clipspace(project_pos); - - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x - vec2 lnglat = unProjectFlat(a_Pos.xy + offset); - vec2 customLnglat = customProject(lnglat) - u_sceneCenterMercator; // 将经纬度转换为高德2.0需要的平面坐标 - vec4 project_pos = project_position(vec4(customLnglat, 0, 1.0)); - gl_Position = u_Mvp * (project_pos); - } else { - vec2 lnglat = unProjectFlat(a_Pos.xy + offset); - vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(project_pos); - } - - setPickingColor(a_PickingColor); -} +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; + +layout(std140) uniform commonUniforms { + vec2 u_radius; + float u_opacity; + float u_coverage; + float u_angle; +}; + + +out vec4 v_color; + + +#pragma include "projection" +#pragma include "project" +#pragma include "picking" + +void main() { + v_color = a_Color; + v_color.a *= u_opacity; + + mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); + vec2 offset = a_Position.xy * u_radius * rotationMatrix * u_coverage ; + // vec2 lnglat = unProjectFlat(a_Pos.xy + offset); + // vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); + // gl_Position = project_common_position_to_clipspace(project_pos); + + if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x + vec2 lnglat = unProjectFlat(a_Pos.xy + offset); + vec2 customLnglat = customProject(lnglat) - u_sceneCenterMercator; // 将经纬度转换为高德2.0需要的平面坐标 + vec4 project_pos = project_position(vec4(customLnglat, 0, 1.0)); + gl_Position = u_Mvp * (project_pos); + } else { + vec2 lnglat = unProjectFlat(a_Pos.xy + offset); + vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); + gl_Position = project_common_position_to_clipspace(project_pos); + } + + setPickingColor(a_PickingColor); +} diff --git a/packages/layers/src/heatmap/shaders/grid3d/grid_3d_vert.glsl b/packages/layers/src/heatmap/shaders/grid3d/grid_3d_vert.glsl index 8225f654cea..c44045311c1 100644 --- a/packages/layers/src/heatmap/shaders/grid3d/grid_3d_vert.glsl +++ b/packages/layers/src/heatmap/shaders/grid3d/grid_3d_vert.glsl @@ -1,8 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 10) in vec3 a_Pos; -layout(location = 13) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniforms { vec2 u_radius; @@ -23,22 +23,22 @@ void main() { vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage)); if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x - + vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // 经纬度 vec2 customLnglat = customProject(lnglat) - u_sceneCenterMercator; // 将经纬度转换为高德2.0需要的平面坐标 vec4 project_pos = project_position(vec4(customLnglat, a_Position.z * a_Size, 1.0)); float lightWeight = calc_lighting(project_pos); v_color =vec4(a_Color.rgb*lightWeight, a_Color.w * u_opacity); - + gl_Position = u_Mvp * vec4(customLnglat , a_Position.z * a_Size, 1.0); } else { vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // 实际的经纬度 vec4 project_pos = project_position(vec4(lnglat, a_Position.z * a_Size, 1.0)); - + float lightWeight = calc_lighting(project_pos); v_color =vec4(a_Color.rgb*lightWeight, a_Color.w); - + gl_Position = project_common_position_to_clipspace(project_pos); } diff --git a/packages/layers/src/heatmap/shaders/heatmap/heatmap_3d_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap/heatmap_3d_vert.glsl index c523b491008..4c4741e74d3 100644 --- a/packages/layers/src/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +++ b/packages/layers/src/heatmap/shaders/heatmap/heatmap_3d_vert.glsl @@ -1,5 +1,5 @@ layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_Uv; +layout(location = 10) in vec2 a_Uv; layout(std140) uniform commonUniforms { mat4 u_ViewProjectionMatrixUncentered; @@ -17,13 +17,16 @@ out vec2 v_texCoord; out float v_intensity; vec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) { - float t2 = t * t; - float one_minus_t = 1.0 - t; - float one_minus_t2 = one_minus_t * one_minus_t; - return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t); + float t2 = t * t; + float one_minus_t = 1.0 - t; + float one_minus_t2 = one_minus_t * one_minus_t; + return P0 * one_minus_t2 * one_minus_t + + P1 * 3.0 * t * one_minus_t2 + + P2 * 3.0 * t2 * one_minus_t + + P3 * t2 * t; } -vec2 toBezier(float t, vec4 p){ - return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0)); +vec2 toBezier(float t, vec4 p) { + return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0)); } #pragma include "projection" @@ -35,22 +38,22 @@ void main() { vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); // 将原本 0 -> 1 的 uv 转换为 -1 -> 1 的标准坐标空间(NDC) vec4 p1 = vec4(pos, 0.0, 1.0); // x/y 平面上的点(z == 0)可以认为是三维上的点被投影到平面后的点 - vec4 p2 = vec4(pos, 1.0, 1.0); // 平行于x/y平面、z==1 的平面上的点 + vec4 p2 = vec4(pos, 1.0, 1.0); // 平行于x/y平面、z==1 的平面上的点 - vec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // 根据视图投影矩阵的逆矩阵平面上的反算出三维空间中的点(p1平面上的点) - vec4 inverseP2 = u_InverseViewProjectionMatrix * p2; + vec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // 根据视图投影矩阵的逆矩阵平面上的反算出三维空间中的点(p1平面上的点) + vec4 inverseP2 = u_InverseViewProjectionMatrix * p2; inverseP1 = inverseP1 / inverseP1.w; // 归一化操作(归一化后为世界坐标) - inverseP2 = inverseP2 / inverseP2.w; + inverseP2 = inverseP2 / inverseP2.w; - float zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ?? - vec4 position = inverseP1 + zPos * (inverseP2 - inverseP1); + float zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ?? + vec4 position = inverseP1 + zPos * (inverseP2 - inverseP1); - vec4 b= vec4(0.5000, 0.0, 1.0, 0.5000); + vec4 b = vec4(0.5, 0.0, 1.0, 0.5); float fh; v_intensity = texture(SAMPLER_2D(u_texture), v_texCoord).r; fh = toBezier(v_intensity, b).y; - gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.), 1.0); - + gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.0), 1.0); + } diff --git a/packages/layers/src/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl index ea8a6600662..5d54c26c785 100644 --- a/packages/layers/src/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +++ b/packages/layers/src/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl @@ -1,7 +1,6 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 9) in float a_Size; -layout(location = 10) in vec2 a_Dir; - +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_DIR) in vec2 a_Dir; layout(std140) uniform commonUniforms { float u_radius; diff --git a/packages/layers/src/heatmap/shaders/heatmap/heatmap_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap/heatmap_vert.glsl index 88fc5038451..c0073fec6a5 100644 --- a/packages/layers/src/heatmap/shaders/heatmap/heatmap_vert.glsl +++ b/packages/layers/src/heatmap/shaders/heatmap/heatmap_vert.glsl @@ -1,6 +1,5 @@ - layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_Uv; +layout(location = 10) in vec2 a_Uv; layout(std140) uniform commonUniforms { float u_opacity; @@ -15,8 +14,8 @@ out vec2 v_texCoord; void main() { v_texCoord = a_Uv; #ifdef VIEWPORT_ORIGIN_TL - v_texCoord.y = 1.0 - v_texCoord.y; + v_texCoord.y = 1.0 - v_texCoord.y; #endif - gl_Position = vec4(a_Position.xy, 0, 1.); + gl_Position = vec4(a_Position.xy, 0, 1.0); } diff --git a/packages/layers/src/heatmap/shaders/hexagon/hexagon_vert.glsl b/packages/layers/src/heatmap/shaders/hexagon/hexagon_vert.glsl index cc7fef95a30..d2a9c48994c 100644 --- a/packages/layers/src/heatmap/shaders/hexagon/hexagon_vert.glsl +++ b/packages/layers/src/heatmap/shaders/hexagon/hexagon_vert.glsl @@ -1,6 +1,6 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 10) in vec3 a_Pos; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; layout(std140) uniform commonUniforms { vec2 u_radius; @@ -19,11 +19,11 @@ out vec4 v_color; void main() { v_color = a_Color; v_color.a *= u_opacity; - + mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage)); vec2 lnglat = unProjectFlat(a_Pos.xy + offset); - + // vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0)); if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x diff --git a/packages/layers/src/image/models/image.ts b/packages/layers/src/image/models/image.ts index 1ffb93f3232..2bb19300f37 100644 --- a/packages/layers/src/image/models/image.ts +++ b/packages/layers/src/image/models/image.ts @@ -2,13 +2,19 @@ import type { IEncodeFeature, IModel, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { defaultValue } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IImageLayerStyleOptions } from '../../core/interface'; import { RasterImageTriangulation } from '../../core/triangulation'; import ImageFrag from '../shaders/image_frag.glsl'; import ImageVert from '../shaders/image_vert.glsl'; + export default class ImageModel extends BaseModel { protected texture: ITexture2D; + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } protected getCommonUniformsInfo(): { uniformsArray: number[]; @@ -61,6 +67,7 @@ export default class ImageModel extends BaseModel { moduleName: 'rasterImage', vertexShader: ImageVert, fragmentShader: ImageFrag, + defines: this.getDefines(), triangulation: RasterImageTriangulation, primitive: gl.TRIANGLES, blend: { @@ -74,12 +81,15 @@ export default class ImageModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/image/shaders/image_vert.glsl b/packages/layers/src/image/shaders/image_vert.glsl index dd48895f0c8..67009b615cf 100644 --- a/packages/layers/src/image/shaders/image_vert.glsl +++ b/packages/layers/src/image/shaders/image_vert.glsl @@ -1,5 +1,6 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { float u_opacity:1.0; @@ -11,9 +12,10 @@ layout(std140) uniform commonUniforms { out vec2 v_texCoord; #pragma include "projection" + void main() { - v_texCoord = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy,0., 1.0)); - + v_texCoord = a_Uv; + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); + gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy, 0.0, 1.0)); + } diff --git a/packages/layers/src/line/models/arc.ts b/packages/layers/src/line/models/arc.ts index b6d4c60d9ea..5dd07e127a4 100644 --- a/packages/layers/src/line/models/arc.ts +++ b/packages/layers/src/line/models/arc.ts @@ -6,9 +6,8 @@ import type { ITexture2D, } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; -import { rgb2arr } from '@antv/l7-utils'; +import { fp64LowPart, rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { ILineLayerStyleOptions } from '../../core/interface'; import { LineArcTriangulation } from '../../core/triangulation'; import arc_line_frag from '../shaders/arc/line_arc_frag.glsl'; @@ -19,6 +18,16 @@ const lineStyleObj: { [key: string]: number } = { dash: 1.0, }; export default class ArcModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + INSTANCE: 10, + INSTANCE_64LOW: 11, + UV: 12, + THETA_OFFSET: 13, + }); + } protected texture: ITexture2D; protected getCommonUniformsInfo(): { uniformsArray: number[]; @@ -120,6 +129,7 @@ export default class ArcModel extends BaseModel { moduleName: 'lineArc2d' + type, vertexShader: vert, fragmentShader: frag, + defines: this.getDefines(), inject: this.getInject(), triangulation: LineArcTriangulation, depth: { enable: false }, @@ -134,7 +144,7 @@ export default class ArcModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -149,12 +159,13 @@ export default class ArcModel extends BaseModel { }, }); + // 弧线起始点信息 this.styleAttributeService.registerStyleAttribute({ - name: 'instance', // 弧线起始点信息 + name: 'instance', type: AttributeType.Attribute, descriptor: { name: 'a_Instance', - shaderLocation: 12, + shaderLocation: this.attributeLocation.INSTANCE, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -167,14 +178,37 @@ export default class ArcModel extends BaseModel { }, }); + // save low part for enabled double precision INSTANCE attribute + this.styleAttributeService.registerStyleAttribute({ + name: 'instance64Low', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Instance64Low', + shaderLocation: this.attributeLocation.INSTANCE_64LOW, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 4, + update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { + return [ + fp64LowPart(vertex[3]), + fp64LowPart(vertex[4]), + fp64LowPart(vertex[5]), + fp64LowPart(vertex[6]), + ]; + }, + }, + }); + this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_iconMapUV', - shaderLocation: 14, + shaderLocation: this.attributeLocation.UV, buffer: { - // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, data: [], type: gl.FLOAT, @@ -188,6 +222,25 @@ export default class ArcModel extends BaseModel { }, }, }); + + this.styleAttributeService.registerStyleAttribute({ + name: 'thetaOffset', + type: AttributeType.Attribute, + descriptor: { + name: 'a_ThetaOffset', + shaderLocation: this.attributeLocation.THETA_OFFSET, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: (feature: IEncodeFeature) => { + const { thetaOffset: op = 1 } = feature; + return [op]; + }, + }, + }); } private updateTexture = () => { diff --git a/packages/layers/src/line/models/arc_3d.ts b/packages/layers/src/line/models/arc_3d.ts index 8d9547bbd78..11145b879f4 100644 --- a/packages/layers/src/line/models/arc_3d.ts +++ b/packages/layers/src/line/models/arc_3d.ts @@ -6,13 +6,12 @@ import type { ITexture2D, } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; -import { rgb2arr } from '@antv/l7-utils'; +import { fp64LowPart, rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; import type { ILineLayerStyleOptions } from '../../core/interface'; import { LineArcTriangulation } from '../../core/triangulation'; import { EARTH_RADIUS } from '../../earth/utils'; // arc3d line layer -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import arc3d_line_frag from '../shaders/arc3d/line_arc_3d_frag.glsl'; import arc3d_line_vert from '../shaders/arc3d/line_arc_3d_vert.glsl'; @@ -21,6 +20,16 @@ const lineStyleObj: { [key: string]: number } = { dash: 1.0, }; export default class Arc3DModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + INSTANCE: 10, + INSTANCE_64LOW: 11, + UV: 12, + THETA_OFFSET: 13, + }); + } protected texture: ITexture2D; // public enableShaderEncodeStyles = ['opacity']; protected getCommonUniformsInfo(): { @@ -117,6 +126,7 @@ export default class Arc3DModel extends BaseModel { moduleName: 'lineArc3d' + type, vertexShader: vert, fragmentShader: frag, + defines: this.getDefines(), inject: this.getInject(), triangulation: LineArcTriangulation, styleOption: { segmentNumber }, @@ -129,9 +139,8 @@ export default class Arc3DModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { - // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, data: [], type: gl.FLOAT, @@ -149,7 +158,7 @@ export default class Arc3DModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Instance', - shaderLocation: 12, + shaderLocation: this.attributeLocation.INSTANCE, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -162,12 +171,36 @@ export default class Arc3DModel extends BaseModel { }, }); + // save low part for enabled double precision INSTANCE attribute + this.styleAttributeService.registerStyleAttribute({ + name: 'instance64Low', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Instance64Low', + shaderLocation: this.attributeLocation.INSTANCE_64LOW, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 4, + update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { + return [ + fp64LowPart(vertex[3]), + fp64LowPart(vertex[4]), + fp64LowPart(vertex[5]), + fp64LowPart(vertex[6]), + ]; + }, + }, + }); + this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_iconMapUV', - shaderLocation: 14, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -182,6 +215,25 @@ export default class Arc3DModel extends BaseModel { }, }, }); + + this.styleAttributeService.registerStyleAttribute({ + name: 'thetaOffset', + type: AttributeType.Attribute, + descriptor: { + name: 'a_ThetaOffset', + shaderLocation: this.attributeLocation.THETA_OFFSET, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: (feature: IEncodeFeature) => { + const { thetaOffset: op = 1 } = feature; + return [op]; + }, + }, + }); } private updateTexture = () => { diff --git a/packages/layers/src/line/models/flow.ts b/packages/layers/src/line/models/flow.ts index 65e12c121d6..da0134e2b46 100644 --- a/packages/layers/src/line/models/flow.ts +++ b/packages/layers/src/line/models/flow.ts @@ -1,15 +1,22 @@ import type { IEncodeFeature, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; +import { fp64LowPart } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; import type { IFlowLineStyleOptions } from '../../core/interface'; import { FlowLineTriangulation } from '../../core/line_trangluation'; import flow_line_frag from '../shaders/flow/flow_line_frag.glsl'; - -// linear simple line shader - -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import flow_line_vert from '../shaders/flow/flow_line_vert.glsl'; + export default class FlowLineModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + INSTANCE: 10, + INSTANCE_64LOW: 11, + NORMAL: 12, + }); + } protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -40,6 +47,7 @@ export default class FlowLineModel extends BaseModel { moduleName: 'flow_line', vertexShader: flow_line_vert, fragmentShader: flow_line_frag, + defines: this.getDefines(), inject: this.getInject(), triangulation: FlowLineTriangulation, styleOption: (this.layer.getLayerConfig() as IFlowLineStyleOptions).symbol, @@ -56,7 +64,7 @@ export default class FlowLineModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', // 宽度 - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -70,12 +78,13 @@ export default class FlowLineModel extends BaseModel { }, }, }); + this.styleAttributeService.registerStyleAttribute({ name: 'instance', // 弧线起始点信息 type: AttributeType.Attribute, descriptor: { name: 'a_Instance', - shaderLocation: 12, + shaderLocation: this.attributeLocation.INSTANCE, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -88,14 +97,37 @@ export default class FlowLineModel extends BaseModel { }, }); + // save low part for enabled double precision INSTANCE attribute + this.styleAttributeService.registerStyleAttribute({ + name: 'instance64Low', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Instance64Low', + shaderLocation: this.attributeLocation.INSTANCE_64LOW, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 4, + update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { + return [ + fp64LowPart(vertex[3]), + fp64LowPart(vertex[4]), + fp64LowPart(vertex[5]), + fp64LowPart(vertex[6]), + ]; + }, + }, + }); + this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { - // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, data: [], type: gl.FLOAT, diff --git a/packages/layers/src/line/models/great_circle.ts b/packages/layers/src/line/models/great_circle.ts index 4b8c7824920..6ba7ceec769 100644 --- a/packages/layers/src/line/models/great_circle.ts +++ b/packages/layers/src/line/models/great_circle.ts @@ -6,9 +6,8 @@ import type { ITexture2D, } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; -import { rgb2arr } from '@antv/l7-utils'; +import { fp64LowPart, rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { ILineLayerStyleOptions } from '../../core/interface'; import { LineArcTriangulation } from '../../core/triangulation'; import line_arc_frag from '../shaders/greatCircle/line_arc_great_circle_frag.glsl'; @@ -19,6 +18,15 @@ const lineStyleObj: { [key: string]: number } = { }; export default class GreatCircleModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + INSTANCE: 10, + INSTANCE_64LOW: 11, + UV: 12, + }); + } protected texture: ITexture2D; protected getCommonUniformsInfo(): { uniformsArray: number[]; @@ -107,6 +115,7 @@ export default class GreatCircleModel extends BaseModel { fragmentShader: line_arc_frag, triangulation: LineArcTriangulation, styleOption: { segmentNumber }, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: false }, }); @@ -118,7 +127,7 @@ export default class GreatCircleModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -138,7 +147,7 @@ export default class GreatCircleModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Instance', - shaderLocation: 12, + shaderLocation: this.attributeLocation.INSTANCE, buffer: { usage: gl.STATIC_DRAW, data: [], @@ -151,12 +160,36 @@ export default class GreatCircleModel extends BaseModel { }, }); + // save low part for enabled double precision INSTANCE attribute + this.styleAttributeService.registerStyleAttribute({ + name: 'instance64Low', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Instance64Low', + shaderLocation: this.attributeLocation.INSTANCE_64LOW, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 4, + update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { + return [ + fp64LowPart(vertex[3]), + fp64LowPart(vertex[4]), + fp64LowPart(vertex[5]), + fp64LowPart(vertex[6]), + ]; + }, + }, + }); + this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_iconMapUV', - shaderLocation: 14, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/line/models/line.ts b/packages/layers/src/line/models/line.ts index 4e107fb87a9..d70db29c773 100644 --- a/packages/layers/src/line/models/line.ts +++ b/packages/layers/src/line/models/line.ts @@ -12,11 +12,20 @@ import type { ILineLayerStyleOptions } from '../../core/interface'; import { LinearDir, TextureBlend } from '../../core/interface'; import { LineTriangulation } from '../../core/triangulation'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import line_frag from '../shaders/line/line_frag.glsl'; import line_vert from '../shaders/line/line_vert.glsl'; export default class LineModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + DISTANCE_INDEX: 10, + NORMAL: 11, + UV: 12, + }); + } + private textureEventFlag: boolean = false; protected texture: ITexture2D = this.createTexture2D({ data: new Uint8Array([0, 0, 0, 0]), @@ -121,6 +130,7 @@ export default class LineModel extends BaseModel { vertexShader: vert, fragmentShader: frag, triangulation: LineTriangulation, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: depth }, }); @@ -138,13 +148,17 @@ export default class LineModel extends BaseModel { type: '', }; } + protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'distanceAndIndex', type: AttributeType.Attribute, descriptor: { name: 'a_DistanceAndIndexAndMiter', - shaderLocation: 10, + shaderLocation: this.attributeLocation.DISTANCE_INDEX, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -172,7 +186,7 @@ export default class LineModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -187,13 +201,12 @@ export default class LineModel extends BaseModel { }, }); - // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'normal_total_distance', type: AttributeType.Attribute, descriptor: { name: 'a_Normal_Total_Distance', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -218,7 +231,7 @@ export default class LineModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_iconMapUV', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/line/models/simple_line.ts b/packages/layers/src/line/models/simple_line.ts index 10e174458f5..415604a3308 100644 --- a/packages/layers/src/line/models/simple_line.ts +++ b/packages/layers/src/line/models/simple_line.ts @@ -2,12 +2,18 @@ import type { IEncodeFeature, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { ILineLayerStyleOptions } from '../../core/interface'; import { SimpleLineTriangulation } from '../../core/triangulation'; import simple_line_frag from '../shaders/simple/simpleline_frag.glsl'; import simple_line_vert from '../shaders/simple/simpleline_vert.glsl'; + export default class SimpleLineModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + }); + } protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -70,6 +76,7 @@ export default class SimpleLineModel extends BaseModel { vertexShader: vert, fragmentShader: frag, triangulation: SimpleLineTriangulation, + defines: this.getDefines(), inject: this.getInject(), primitive: gl.LINES, depth: { enable: false }, @@ -79,57 +86,16 @@ export default class SimpleLineModel extends BaseModel { return [model]; } protected registerBuiltinAttributes() { - // this.styleAttributeService.registerStyleAttribute({ - // name: 'distance', - // type: AttributeType.Attribute, - // descriptor: { - // name: 'a_Distance', - // shaderLocation: 14, - // buffer: { - // // give the WebGL driver a hint that this buffer may change - // usage: gl.STATIC_DRAW, - // data: [], - // type: gl.FLOAT, - // }, - // size: 1, - // update: ( - // feature: IEncodeFeature, - // featureIdx: number, - // vertex: number[], - // ) => { - // return [vertex[3]]; - // }, - // }, - // }); - // this.styleAttributeService.registerStyleAttribute({ - // name: 'total_distance', - // type: AttributeType.Attribute, - // descriptor: { - // name: 'a_Total_Distance', - // shaderLocation: 13,//枚举不够了,先固定写值吧,在shader中location也成一致的并且不与其他的重复就行了 - // buffer: { - // // give the WebGL driver a hint that this buffer may change - // usage: gl.STATIC_DRAW, - // data: [], - // type: gl.FLOAT, - // }, - // size: 1, - // update: ( - // feature: IEncodeFeature, - // featureIdx: number, - // vertex: number[], - // ) => { - // return [vertex[5]]; - // }, - // }, - // }); + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + //size.x,size,y,distance,totalDistance this.styleAttributeService.registerStyleAttribute({ name: 'sizeDistanceAndTotalDistance', type: AttributeType.Attribute, descriptor: { name: 'a_SizeDistanceAndTotalDistance', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.STATIC_DRAW, data: [], diff --git a/packages/layers/src/line/models/wall.ts b/packages/layers/src/line/models/wall.ts index f2c72c08043..c63173add01 100644 --- a/packages/layers/src/line/models/wall.ts +++ b/packages/layers/src/line/models/wall.ts @@ -8,12 +8,20 @@ import type { import { AttributeType, gl } from '@antv/l7-core'; import { rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { ILineLayerStyleOptions } from '../../core/interface'; import { LineTriangulation } from '../../core/triangulation'; import line_frag from '../shaders/wall/wall_frag.glsl'; import line_vert from '../shaders/wall/wall_vert.glsl'; export default class LineWallModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + NORMAL: 12, + UV: 13, + DISTANCE_MITER_TOTAL: 15, + }); + } protected texture: ITexture2D; protected getCommonUniformsInfo(): { uniformsArray: number[]; @@ -89,6 +97,7 @@ export default class LineWallModel extends BaseModel { vertexShader: line_vert, fragmentShader: line_frag, triangulation: LineTriangulation, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: false }, blend: this.getBlend(), @@ -96,49 +105,15 @@ export default class LineWallModel extends BaseModel { return [model]; } protected registerBuiltinAttributes() { - this.styleAttributeService.registerStyleAttribute({ - name: 'distance', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Distance', - shaderLocation: 15, - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { - return [vertex[3]]; - }, - }, - }); - this.styleAttributeService.registerStyleAttribute({ - name: 'total_distance', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Total_Distance', - shaderLocation: 11, - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { - return [vertex[5]]; - }, - }, - }); + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); this.styleAttributeService.registerStyleAttribute({ name: 'size', type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -153,13 +128,12 @@ export default class LineWallModel extends BaseModel { }, }); - // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -181,20 +155,21 @@ export default class LineWallModel extends BaseModel { }); this.styleAttributeService.registerStyleAttribute({ - name: 'miter', + name: 'distanceAndTotalAndMiter', type: AttributeType.Attribute, descriptor: { - name: 'a_Miter', - shaderLocation: 10, + name: 'a_Distance_Total_Miter', + shaderLocation: this.attributeLocation.DISTANCE_MITER_TOTAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, data: [], type: gl.FLOAT, }, - size: 1, + size: 3, update: (feature: IEncodeFeature, featureIdx: number, vertex: number[]) => { - return [vertex[4]]; + // [distance, miter, total_distance] + return [vertex[3], vertex[4], vertex[5]]; }, }, }); @@ -204,7 +179,7 @@ export default class LineWallModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_iconMapUV', - shaderLocation: 14, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/line/shaders/arc/line_arc_vert.glsl b/packages/layers/src/line/shaders/arc/line_arc_vert.glsl index 3fb503ee43e..179cf1cd7d6 100644 --- a/packages/layers/src/line/shaders/arc/line_arc_vert.glsl +++ b/packages/layers/src/line/shaders/arc/line_arc_vert.glsl @@ -1,10 +1,12 @@ -#define Animate 0.0 -#define LineTexture 1.0 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 12) in vec4 a_Instance; -layout(location = 14) in vec2 a_iconMapUV; +#define Animate (0.0) +#define LineTexture (1.0) + +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; +layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; @@ -22,6 +24,7 @@ layout(std140) uniform commonUniorm { float u_time; float u_linearColor: 0.0; }; + out vec4 v_color; out vec2 v_iconMapUV; out vec4 v_lineData; @@ -29,13 +32,12 @@ out vec4 v_lineData; out vec4 v_dash_array; out float v_distance_ratio; - #pragma include "projection" #pragma include "project" #pragma include "picking" float bezier3(vec3 arr, float t) { - float ut = 1. - t; + float ut = 1.0 - t; return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t; } vec2 midPoint(vec2 source, vec2 target, float arcThetaOffset) { @@ -45,10 +47,12 @@ vec2 midPoint(vec2 source, vec2 target, float arcThetaOffset) { float thetaOffset = arcThetaOffset; float r2 = r / 2.0 / cos(thetaOffset); float theta2 = theta + thetaOffset; - vec2 mid = vec2(r2*cos(theta2) + source.x, r2*sin(theta2) + source.y); - if(u_lineDir == 1.0) { // 正向 + vec2 mid = vec2(r2 * cos(theta2) + source.x, r2 * sin(theta2) + source.y); + if (u_lineDir == 1.0) { + // 正向 return mid; - } else { // 逆向 + } else { + // 逆向 // (mid + vmin)/2 = (s + t)/2 vec2 vmid = source + target - mid; return vmid; @@ -56,23 +60,23 @@ vec2 midPoint(vec2 source, vec2 target, float arcThetaOffset) { // return mid; } float getSegmentRatio(float index) { - // dash: index / (segmentNumber - 1.); - // normal: smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); - return smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); - // return index / (segmentNumber - 1.); + // dash: index / (segmentNumber - 1.); + // normal: smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); + return smoothstep(0.0, 1.0, index / (segmentNumber - 1.0)); + // return index / (segmentNumber - 1.); } -vec2 interpolate (vec2 source, vec2 target, float t, float arcThetaOffset) { +vec2 interpolate(vec2 source, vec2 target, float t, float arcThetaOffset) { // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation vec2 mid = midPoint(source, target, arcThetaOffset); vec3 x = vec3(source.x, mid.x, target.x); vec3 y = vec3(source.y, mid.y, target.y); - return vec2(bezier3(x ,t), bezier3(y,t)); + return vec2(bezier3(x, t), bezier3(y, t)); } vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0; return offset; } @@ -80,35 +84,33 @@ vec2 getNormal(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + return reverse_offset_normal(vec3(dir_screenspace, 1.0)).xy * sign(offset_direction); } void main() { //vs中计算渐变色 - if(u_linearColor==1.0){ + if (u_linearColor == 1.0) { float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置 - v_color = mix(u_sourceColor, u_targetColor, d_segmentIndex/segmentNumber); - } - else{ + v_color = mix(u_sourceColor, u_targetColor, d_segmentIndex / segmentNumber); + } else { v_color = a_Color; } v_color.a = v_color.a * opacity; - vec2 source = a_Instance.rg; // 起始点 - vec2 target = a_Instance.ba; // 终点 - - + vec2 source_world = a_Instance.rg; // 起始点 + vec2 target_world = a_Instance.ba; // 终点 float segmentIndex = a_Position.x; float segmentRatio = getSegmentRatio(segmentIndex); //计算dashArray和distanceRatio 输出到片元 - vec2 s = source; - vec2 t = target; - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x - s = unProjCustomCoord(source); - t = unProjCustomCoord(target); + vec2 s = source_world; + vec2 t = target_world; + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + // gaode2.x + s = unProjCustomCoord(source_world); + t = unProjCustomCoord(target_world); } float total_Distance = pixelDistance(s, t) / 2.0 * PI; v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / total_Distance; @@ -117,48 +119,57 @@ void main() { float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); float d_distance_ratio; - - if(u_animate.x == Animate) { - d_distance_ratio = segmentIndex / segmentNumber; - if(u_lineDir != 1.0) { - d_distance_ratio = 1.0 - d_distance_ratio; - } + + if (u_animate.x == Animate) { + d_distance_ratio = segmentIndex / segmentNumber; + if (u_lineDir != 1.0) { + d_distance_ratio = 1.0 - d_distance_ratio; + } } v_lineData.b = d_distance_ratio; - vec4 curr = project_position(vec4(interpolate(source, target, segmentRatio, thetaOffset), 0.0, 1.0)); - vec4 next = project_position(vec4(interpolate(source, target, nextSegmentRatio, thetaOffset), 0.0, 1.0)); + vec4 source = project_position(vec4(source_world, 0, 1.), a_Instance64Low.xy); + vec4 target = project_position(vec4(target_world, 0, 1.), a_Instance64Low.zw); - - vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); + vec2 currPos = interpolate(source.xy, target.xy, segmentRatio, thetaOffset); + vec2 nextPos = interpolate(source.xy, target.xy, nextSegmentRatio, thetaOffset); + vec2 offset = project_pixel( + getExtrusionOffset((nextPos.xy - currPos.xy) * indexDir, a_Position.y) + ); float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置 v_lineData.r = d_segmentIndex; - if(LineTexture == u_line_texture) { // 开启贴图模式 + if (LineTexture == u_line_texture) { + // 开启贴图模式 - float arcDistrance = length(source - target); // 起始点和终点的距离 - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20) { // amap + float arcDistrance = length(source_world - target_world); // 起始点和终点的距离 + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20) { + // amap arcDistrance *= 1000000.0; } - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { // mapbox + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + // mapbox // arcDistrance *= 8.0; arcDistrance = project_pixel_allmap(arcDistrance); } v_iconMapUV = a_iconMapUV; float pixelLen = project_pixel_texture(u_icon_step); // 贴图沿弧线方向的长度 - 随地图缩放改变 - float texCount = floor(arcDistrance/pixelLen); // 贴图在弧线上重复的数量 + float texCount = floor(arcDistrance / pixelLen); // 贴图在弧线上重复的数量 v_lineData.g = texCount; float lineOffsetWidth = length(offset + offset * sign(a_Position.y)); // 线横向偏移的距离 float linePixelSize = project_pixel(a_Size); // 定点位置偏移 - v_lineData.a = lineOffsetWidth/linePixelSize; // 线图层贴图部分的 v 坐标值 + v_lineData.a = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值 } - gl_Position = project_common_position_to_clipspace_v2(vec4(curr.xy + offset, 0, 1.0)); + gl_Position = project_common_position_to_clipspace_v2(vec4(currPos.xy + offset, 0, 1.0)); setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/line/shaders/arc3d/line_arc_3d_vert.glsl b/packages/layers/src/line/shaders/arc3d/line_arc_3d_vert.glsl index 045397d18c1..734e75e65c4 100644 --- a/packages/layers/src/line/shaders/arc3d/line_arc_3d_vert.glsl +++ b/packages/layers/src/line/shaders/arc3d/line_arc_3d_vert.glsl @@ -2,11 +2,12 @@ #define LineTypeDash 1.0 #define Animate 0.0 #define LineTexture 1.0 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 12) in vec4 a_Instance; -layout(location = 14) in vec2 a_iconMapUV; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; +layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { @@ -107,8 +108,8 @@ void main() { v_color = a_Color; } v_color.a = v_color.a * opacity; - vec2 source = project_position(vec4(a_Instance.rg, 0, 0)).xy; - vec2 target = project_position(vec4(a_Instance.ba, 0, 0)).xy; + vec2 source = project_position(vec4(a_Instance.rg, 0, 0), a_Instance64Low.xy).xy; + vec2 target = project_position(vec4(a_Instance.ba, 0, 0), a_Instance64Low.zw).xy; float segmentIndex = a_Position.x; float segmentRatio = getSegmentRatio(segmentIndex); float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); @@ -118,7 +119,7 @@ void main() { d_distance_ratio = segmentIndex / segmentNumber; vec2 s = source; vec2 t = target; - + if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x s = unProjCustomCoord(source); t = unProjCustomCoord(target); @@ -139,7 +140,7 @@ void main() { v_segmentIndex = a_Position.x; - if(LineTexture == u_line_texture && u_line_type != LineTypeDash) { // 开启贴图模式 + if(LineTexture == u_line_texture && u_line_type != LineTypeDash) { // 开启贴图模式 float arcDistrance = length(source - target); float pixelLen = project_pixel_texture(u_icon_step); @@ -173,10 +174,10 @@ void main() { float lineHeight = u_global_height * (-4.0*segmentRatio*segmentRatio + 4.0 * segmentRatio) * lnglatLength; // 地球点位 vec3 globalPoint = normalize(mix(startLngLat, endLngLat, segmentRatio)) * (globalRadius + lineHeight) + lnglatOffset * a_Size; - + gl_Position = u_ViewProjectionMatrix * vec4(globalPoint, 1.0); } - + setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/line/shaders/flow/flow_line_vert.glsl b/packages/layers/src/line/shaders/flow/flow_line_vert.glsl index 705205c9232..ea1c391a316 100644 --- a/packages/layers/src/line/shaders/flow/flow_line_vert.glsl +++ b/packages/layers/src/line/shaders/flow/flow_line_vert.glsl @@ -1,8 +1,9 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in vec2 a_Size; -layout(location = 12) in vec4 a_Instance; -layout(location = 13) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size; +layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; +layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniorm { float u_gap_width: 1.0; @@ -17,78 +18,82 @@ layout(std140) uniform commonUniorm { out vec4 v_color; vec2 project_pixel_offset(vec2 offsets) { - - vec2 data = project_pixel(offsets); - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + vec2 data = project_pixel(offsets); + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 return data; } - return vec2(data.x, -data.y);; + return vec2(data.x, -data.y); + ; } vec2 line_dir(vec2 target, vec2 source) { - - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - return normalize(target - source); + return normalize(target - source); } return normalize(ProjectFlat(target) - ProjectFlat(source)); } float flag_gap() { - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - return 1.; + return 1.0; } - return -1.; + return -1.0; } - void main() { - -// 透明度计算 - vec2 source = a_Instance.rg; // 起始点 - vec2 target = a_Instance.ba; // 终点 - vec2 flowlineDir = line_dir(target,source); + // 透明度计算 + vec2 source_world = a_Instance.rg; // 起点 + vec2 target_world = a_Instance.ba; // 终点 + vec2 flowlineDir = line_dir(target_world, source_world); vec2 perpendicularDir = vec2(-flowlineDir.y, flowlineDir.x); // mapbox || 高德 - - vec2 position = mix(source, target, a_Position.x); - - float lengthCommon = length(project_position(vec4(target,0,1)) - project_position(vec4(source,0,1))); // + + vec2 position = mix(source_world, target_world, a_Position.x); + vec2 position64Low = mix(a_Instance64Low.rg, a_Instance64Low.ba, a_Position.x); + + float lengthCommon = length( + project_position(vec4(target_world, 0, 1)) - project_position(vec4(source_world, 0, 1)) + ); vec2 offsetDistances = a_Size.x * project_pixel_offset(vec2(a_Position.y, a_Position.z)); // Mapbox || 高德 - vec2 limitedOffsetDistances = clamp( - offsetDistances, - project_pixel(-lengthCommon*.2), project_pixel(lengthCommon*.2) + vec2 limitedOffsetDistances = clamp( + offsetDistances, + project_pixel(-lengthCommon * 0.2), + project_pixel(lengthCommon * 0.2) ); - float startOffsetCommon = project_pixel(offsets[0]); float endOffsetCommon = project_pixel(offsets[1]); float endpointOffset = mix( - clamp(startOffsetCommon, 0.0, lengthCommon*.2), - -clamp(endOffsetCommon, 0.0, lengthCommon*.2), + clamp(startOffsetCommon, 0.0, lengthCommon * 0.2), + -clamp(endOffsetCommon, 0.0, lengthCommon * 0.2), a_Position.x ); - vec2 normalsCommon = u_stroke_width * project_pixel_offset(vec2(a_Normal.x, a_Normal.y)); // mapbox || 高德 + vec2 normalsCommon = u_stroke_width * project_pixel_offset(vec2(a_Normal.x, a_Normal.y)); // mapbox || 高德 float gapCommon = flag_gap() * project_pixel(u_gap_width); vec3 offsetCommon = vec3( flowlineDir * (limitedOffsetDistances[1] + normalsCommon.y + endpointOffset * 1.05) - - perpendicularDir * (limitedOffsetDistances[0] + gapCommon + normalsCommon.x), + perpendicularDir * (limitedOffsetDistances[0] + gapCommon + normalsCommon.x), 0.0 ); - vec4 project_pos = project_position(vec4(position.xy, 0, 1.0)); + vec4 project_pos = project_position(vec4(position.xy, 0, 1.0), position64Low); vec4 fillColor = vec4(a_Color.rgb, a_Color.a * opacity); - v_color = mix(fillColor, vec4(u_stroke.xyz, u_stroke.w * fillColor.w * u_stroke_opacity), a_Normal.z); - - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy + offsetCommon.xy, 0., 1.0)); - + v_color = mix( + fillColor, + vec4(u_stroke.xyz, u_stroke.w * fillColor.w * u_stroke_opacity), + a_Normal.z + ); + gl_Position = project_common_position_to_clipspace_v2( + vec4(project_pos.xy + offsetCommon.xy, 0.0, 1.0) + ); setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/line/shaders/greatCircle/line_arc_great_circle_vert.glsl b/packages/layers/src/line/shaders/greatCircle/line_arc_great_circle_vert.glsl index ffbac484068..51c94dfd0e0 100644 --- a/packages/layers/src/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +++ b/packages/layers/src/line/shaders/greatCircle/line_arc_great_circle_vert.glsl @@ -3,11 +3,12 @@ #define Animate 0.0 #define LineTexture 1.0 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 12) in vec4 a_Instance; -layout(location = 14) in vec2 a_iconMapUV; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; +layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; @@ -137,7 +138,7 @@ void main() { v_distance_ratio = segmentIndex / segmentNumber; vec2 s = source; vec2 t = target; - + if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x s = unProjCustomCoord(source); t = unProjCustomCoord(target); @@ -153,15 +154,17 @@ void main() { float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); v_distance_ratio = segmentIndex / segmentNumber; - vec4 curr = project_position(vec4(degrees(interpolate(source, target, angularDist, segmentRatio)), 0.0, 1.0)); - vec4 next = project_position(vec4(degrees(interpolate(source, target, angularDist, nextSegmentRatio)), 0.0, 1.0)); + + vec4 curr = project_position(vec4(degrees(interpolate(source, target, angularDist, segmentRatio)), 0.0, 1.0), a_Instance64Low.xy); + vec4 next = project_position(vec4(degrees(interpolate(source, target, angularDist, nextSegmentRatio)), 0.0, 1.0), a_Instance64Low.zw); + // v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); // vec4 project_pos = project_position(vec4(curr.xy, 0, 1.0)); // gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, curr.z, 1.0)); v_line_data.g = a_Position.x; // 该顶点在弧线上的分段排序 - if(LineTexture == u_line_texture) { // 开启贴图模式 + if(LineTexture == u_line_texture) { // 开启贴图模式 // float mapZoomScale = u_CoordinateSystem !== COORDINATE_SYSTEM_P20_2?10000000.0:1.0; float d_arcDistrance = length(source - target); if(u_CoordinateSystem == COORDINATE_SYSTEM_P20) { // amap diff --git a/packages/layers/src/line/shaders/line/line_vert.glsl b/packages/layers/src/line/shaders/line/line_vert.glsl index 552de2af110..3be1ddda021 100644 --- a/packages/layers/src/line/shaders/line/line_vert.glsl +++ b/packages/layers/src/line/shaders/line/line_vert.glsl @@ -1,12 +1,13 @@ #define Animate 0.0 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in vec2 a_Size; -layout(location = 10) in vec3 a_DistanceAndIndexAndMiter; -layout(location = 13) in vec4 a_Normal_Total_Distance; -layout(location = 14) in vec2 a_iconMapUV; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size; +layout(location = ATTRIBUTE_LOCATION_DISTANCE_INDEX) in vec3 a_DistanceAndIndexAndMiter; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec4 a_Normal_Total_Distance; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; @@ -62,21 +63,21 @@ void main() { v_stroke = stroke; vec3 size = a_Miter * setPickingSize(a_Size.x) * reverse_offset_normal(a_Normal); - + vec2 offset = project_pixel(size.xy); float lineDistance = a_DistanceAndIndex.x; float currentLinePointRatio = lineDistance / a_Total_Distance; - + float lineOffsetWidth = length(offset + offset * sign(a_Miter)); // 线横向偏移的距离(向两侧偏移的和) float linePixelSize = project_pixel(a_Size.x) * 2.0; // 定点位置偏移,按地图等级缩放后的距离 单侧 * 2 float texV = lineOffsetWidth/linePixelSize; // 线图层贴图部分的 v 坐标值 - + v_texture_data = vec4(currentLinePointRatio, lineDistance, d_texPixelLen, texV); // 设置数据集的参数 - vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); + vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low); // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, a_Size.y, 1.0)); @@ -101,7 +102,7 @@ void main() { if(u_heightfixed > 0.0) { lineHeight *= mapboxZoomScale; } - + } else { // amap h += u_raisingHeight; diff --git a/packages/layers/src/line/shaders/simple/simpleline_vert.glsl b/packages/layers/src/line/shaders/simple/simpleline_vert.glsl index ceba6107a6b..2e528c183a4 100644 --- a/packages/layers/src/line/shaders/simple/simpleline_vert.glsl +++ b/packages/layers/src/line/shaders/simple/simpleline_vert.glsl @@ -1,6 +1,7 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in vec4 a_SizeDistanceAndTotalDistance; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in vec4 a_SizeDistanceAndTotalDistance; layout(std140) uniform commonUniorm { vec4 u_sourceColor; @@ -21,10 +22,10 @@ void main() { //dash输出 v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_SizeDistanceAndTotalDistance.a; - v_color = a_Color; + v_color = a_Color; v_distanceScale = a_SizeDistanceAndTotalDistance.b / a_SizeDistanceAndTotalDistance.a; v_color.a = v_color.a * opacity; - vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); + vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low); float h = float(a_Position.z) * u_vertexScale; // 线顶点的高度 - 兼容不存在第三个数值的情况 diff --git a/packages/layers/src/line/shaders/wall/wall_vert.glsl b/packages/layers/src/line/shaders/wall/wall_vert.glsl index 83c9eb92558..7d2e69ca57e 100644 --- a/packages/layers/src/line/shaders/wall/wall_vert.glsl +++ b/packages/layers/src/line/shaders/wall/wall_vert.glsl @@ -1,14 +1,11 @@ #define Animate 0.0 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in vec2 a_Size; -layout(location = 10) in float a_Miter; -layout(location = 11) in float a_Total_Distance; -layout(location = 12) in vec4 a_Instance; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec2 a_iconMapUV; -layout(location = 15) in float a_Distance; - +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; +layout(location = ATTRIBUTE_LOCATION_DISTANCE_MITER_TOTAL) in vec3 a_Distance_Total_Miter; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; @@ -35,61 +32,67 @@ out float v_radio; out vec4 v_dataset; void main() { - + float a_Distance = a_Distance_Total_Miter.x; + float a_Miter = a_Distance_Total_Miter.y; + float a_Total_Distance = a_Distance_Total_Miter.z; float d_distance_ratio; // 当前点位距离占线总长的比例 - float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 + float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 v_iconMapUV = a_iconMapUV; - if(u_heightfixed < 1.0) { // 高度随 zoom 调整 + if (u_heightfixed < 1.0) { + // 高度随 zoom 调整 d_texPixelLen = project_pixel(u_icon_step); } else { d_texPixelLen = u_icon_step; } - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { d_texPixelLen *= 10.0; } - if(u_animate.x == Animate || u_linearColor == 1.0) { - d_distance_ratio = a_Distance / a_Total_Distance; + if (u_animate.x == Animate || u_linearColor == 1.0) { + d_distance_ratio = a_Distance / a_Total_Distance; } - float miter = (a_Miter + 1.0)/2.0; + float miter = (a_Miter + 1.0) / 2.0; // 设置数据集的参数 v_dataset[0] = d_distance_ratio; // 当前点位距离占线总长的比例 - v_dataset[1] = a_Distance; // 当前顶点的距离 - v_dataset[2] = d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 - v_dataset[3] = miter; // 线图层贴图部分的 v 坐标值 0 - 1 + v_dataset[1] = a_Distance; // 当前顶点的距离 + v_dataset[2] = d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 + v_dataset[3] = miter; // 线图层贴图部分的 v 坐标值 0 - 1 - vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); + vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low); - float originSize = a_Size.x; // 固定高度 - if(u_heightfixed < 1.0) { - originSize = project_float_meter(a_Size.x); // 高度随 zoom 调整 + float originSize = a_Size.x; // 固定高度 + if (u_heightfixed < 1.0) { + originSize = project_float_meter(a_Size.x); // 高度随 zoom 调整 } - float wallHeight = originSize * miter; float lightWeight = calc_lighting(vec4(project_pos.xy, wallHeight, 1.0)); v_blur = min(project_float_pixel(2.0) / originSize, 0.05); v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity); - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x - gl_Position = u_Mvp * (vec4(project_pos.xy, wallHeight, 1.0)); + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + // gaode2.x + gl_Position = u_Mvp * vec4(project_pos.xy, wallHeight, 1.0); } else { -// 兼容 mapbox 在线高度上的效果表现基本一致 - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + // 兼容 mapbox 在线高度上的效果表现基本一致 + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { // mapbox // 保持高度相对不变 float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); - if(u_heightfixed > 0.0) { + if (u_heightfixed > 0.0) { wallHeight *= mapboxZoomScale; } - + } else { // lineHeight 顶点偏移高度 - if(u_heightfixed < 1.0) { + if (u_heightfixed < 1.0) { wallHeight *= pow(2.0, 20.0 - u_Zoom); } } diff --git a/packages/layers/src/mask/models/fill.ts b/packages/layers/src/mask/models/fill.ts index 43687b43fbb..740e139fe50 100644 --- a/packages/layers/src/mask/models/fill.ts +++ b/packages/layers/src/mask/models/fill.ts @@ -40,6 +40,7 @@ export default class MaskModel extends BaseModel { moduleName: 'mask', vertexShader: mask_vert, fragmentShader: mask_frag, + defines: this.getDefines(), triangulation: polygonTriangulation, depth: { enable: false }, pick: false, diff --git a/packages/layers/src/mask/shaders/mask_vert.glsl b/packages/layers/src/mask/shaders/mask_vert.glsl index 4a6b6b749b9..8f964590a76 100644 --- a/packages/layers/src/mask/shaders/mask_vert.glsl +++ b/packages/layers/src/mask/shaders/mask_vert.glsl @@ -1,4 +1,4 @@ -layout(location = 0) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(std140) uniform commonUniorm { vec4 u_color; diff --git a/packages/layers/src/plugins/PixelPickingPlugin.ts b/packages/layers/src/plugins/PixelPickingPlugin.ts index 49096ff25ab..f032261fcba 100644 --- a/packages/layers/src/plugins/PixelPickingPlugin.ts +++ b/packages/layers/src/plugins/PixelPickingPlugin.ts @@ -1,7 +1,7 @@ import type { IEncodeFeature, ILayer, ILayerPlugin, L7Container } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { decodePickingColor, encodePickingColor, lodashUtil, rgb2arr } from '@antv/l7-utils'; -import { ShaderLocation } from '../core/CommonStyleAttribute'; +import { COMMON_ATTRIBUTE_LOCATION } from '../core/CommonStyleAttribute'; const { isNumber } = lodashUtil; const PickingStage = { @@ -67,7 +67,7 @@ export default class PixelPickingPlugin implements ILayerPlugin { type: AttributeType.Attribute, descriptor: { name: 'a_PickingColor', - shaderLocation: ShaderLocation.PICKING_COLOR, + shaderLocation: COMMON_ATTRIBUTE_LOCATION.PICKING_COLOR, buffer: { data: [], type: gl.FLOAT, diff --git a/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts b/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts index d253cee420e..5c81f7a47ae 100644 --- a/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts +++ b/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts @@ -6,7 +6,7 @@ import type { L7Container, } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; -import { ShaderLocation } from '../core/CommonStyleAttribute'; +import { COMMON_ATTRIBUTE_LOCATION } from '../core/CommonStyleAttribute'; import { isTileGroup } from '../tile/utils/utils'; /** @@ -34,7 +34,6 @@ export default class RegisterStyleAttributePlugin implements ILayerPlugin { this.registerPositionAttribute(styleAttributeService); // this.registerFilterAttribute(styleAttributeService);//数据层数据过滤 this.registerColorAttribute(styleAttributeService); - this.registerVertexIdAttribute(styleAttributeService); } private registerPositionAttribute(styleAttributeService: IStyleAttributeService) { @@ -43,7 +42,7 @@ export default class RegisterStyleAttributePlugin implements ILayerPlugin { type: AttributeType.Attribute, descriptor: { name: 'a_Position', - shaderLocation: ShaderLocation.POSITION, + shaderLocation: COMMON_ATTRIBUTE_LOCATION.POSITION, buffer: { data: [], type: gl.FLOAT, @@ -64,7 +63,7 @@ export default class RegisterStyleAttributePlugin implements ILayerPlugin { type: AttributeType.Attribute, descriptor: { name: 'a_Color', - shaderLocation: ShaderLocation.COLOR, + shaderLocation: COMMON_ATTRIBUTE_LOCATION.COLOR, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -79,26 +78,4 @@ export default class RegisterStyleAttributePlugin implements ILayerPlugin { }, }); } - - private registerVertexIdAttribute(styleAttributeService: IStyleAttributeService) { - styleAttributeService.registerStyleAttribute({ - // 统一注册每个顶点的唯一编号(目前用于样式的数据映射计算使用) - name: 'vertexId', - type: AttributeType.Attribute, - descriptor: { - name: 'a_vertexId', - shaderLocation: ShaderLocation.VERTEX_ID, - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: (feature: IEncodeFeature, featureIdx: number) => { - return [featureIdx]; - }, - }, - }); - } } diff --git a/packages/layers/src/point/models/billboard_point.ts b/packages/layers/src/point/models/billboard_point.ts index c4023aabf01..41898a6de40 100644 --- a/packages/layers/src/point/models/billboard_point.ts +++ b/packages/layers/src/point/models/billboard_point.ts @@ -4,7 +4,6 @@ import BaseModel from '../../core/BaseModel'; import type { IPointLayerStyleOptions } from '../../core/interface'; import { rgb2arr } from '@antv/l7-utils'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import simplePointFrag from '../shaders/billboard/billboard_point_frag.glsl'; import simplePointVert from '../shaders/billboard/billboard_point_vert.glsl'; @@ -18,6 +17,13 @@ export function PointTriangulation(feature: IEncodeFeature) { } export default class SimplePointModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + }); + } + public getDefaultStyle(): Partial { return { blend: 'additive', @@ -58,6 +64,7 @@ export default class SimplePointModel extends BaseModel { moduleName: 'pointSimple', vertexShader: simplePointVert, fragmentShader: simplePointFrag, + defines: this.getDefines(), inject: this.getInject(), triangulation: PointTriangulation, depth: { enable: false }, @@ -67,12 +74,15 @@ export default class SimplePointModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'size', type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/point/models/earthExtrude.ts b/packages/layers/src/point/models/earthExtrude.ts index 6d1ca237d10..57b3db3c657 100644 --- a/packages/layers/src/point/models/earthExtrude.ts +++ b/packages/layers/src/point/models/earthExtrude.ts @@ -2,7 +2,6 @@ import type { IEncodeFeature, ILayerConfig, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { calculateCentroid, getCullFace, lodashUtil, rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPointLayerStyleOptions } from '../../core/interface'; import { PointExtrudeTriangulation } from '../../core/triangulation'; import { lglt2xyz } from '../../earth/utils'; @@ -10,6 +9,15 @@ import pointExtrudeFrag from '../shaders/earthExtrude/earthExtrude_frag.glsl'; import pointExtrudeVert from '../shaders/earthExtrude/earthExtrude_vert.glsl'; const { isNumber } = lodashUtil; export default class ExtrudeModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + POS: 10, + NORMAL: 11, + }); + } + private raiseCount: number = 0; private raiseRepeat: number = 0; @@ -102,6 +110,7 @@ export default class ExtrudeModel extends BaseModel { fragmentShader: pointExtrudeFrag, triangulation: PointExtrudeTriangulation, depth: { enable: true }, + defines: this.getDefines(), inject: this.getInject(), cull: { enable: true, @@ -118,7 +127,7 @@ export default class ExtrudeModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -149,7 +158,7 @@ export default class ExtrudeModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -173,7 +182,7 @@ export default class ExtrudeModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Pos', - shaderLocation: 15, + shaderLocation: this.attributeLocation.POS, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/point/models/earthFill.ts b/packages/layers/src/point/models/earthFill.ts index e036c529d87..680162545f0 100644 --- a/packages/layers/src/point/models/earthFill.ts +++ b/packages/layers/src/point/models/earthFill.ts @@ -8,8 +8,17 @@ import pointFillFrag from '../shaders/earthFill/earthFill_frag.glsl'; import pointFillVert from '../shaders/earthFill/earthFill_vert.glsl'; import { mat4, vec3 } from 'gl-matrix'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; + export default class FillModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + SHAPE: 10, + EXTRUDE: 11, + }); + } + protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -45,6 +54,7 @@ export default class FillModel extends BaseModel { vertexShader: pointFillVert, fragmentShader: pointFillFrag, triangulation: GlobelPointFillTriangulation, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: true }, blend: this.getBlend(), @@ -62,7 +72,7 @@ export default class FillModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Extrude', - shaderLocation: ShaderLocation.EXTRUDE, + shaderLocation: this.attributeLocation.EXTRUDE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -117,7 +127,7 @@ export default class FillModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -138,7 +148,7 @@ export default class FillModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Shape', - shaderLocation: ShaderLocation.SHAPE, + shaderLocation: this.attributeLocation.SHAPE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/point/models/extrude.ts b/packages/layers/src/point/models/extrude.ts index a229b493992..a58602691b6 100644 --- a/packages/layers/src/point/models/extrude.ts +++ b/packages/layers/src/point/models/extrude.ts @@ -1,14 +1,22 @@ import type { IEncodeFeature, ILayerConfig, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; -import { calculateCentroid, getCullFace, rgb2arr } from '@antv/l7-utils'; +import { calculateCentroid, fp64LowPart, getCullFace, rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPointLayerStyleOptions } from '../../core/interface'; import { PointExtrudeTriangulation } from '../../core/triangulation'; import pointExtrudeFrag from '../shaders/extrude/extrude_frag.glsl'; import pointExtrudeVert from '../shaders/extrude/extrude_vert.glsl'; export default class ExtrudeModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + EXTRUDE: 10, + NORMAL: 11, + }); + } + private raiseCount: number = 0; private raiseRepeat: number = 0; protected getCommonUniformsInfo(): { @@ -102,6 +110,7 @@ export default class ExtrudeModel extends BaseModel { vertexShader: pointExtrudeVert, fragmentShader: pointExtrudeFrag, triangulation: PointExtrudeTriangulation, + defines: this.getDefines(), inject: this.getInject(), cull: { enable: true, @@ -120,7 +129,7 @@ export default class ExtrudeModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -145,13 +154,12 @@ export default class ExtrudeModel extends BaseModel { }, }); - // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -170,22 +178,30 @@ export default class ExtrudeModel extends BaseModel { }, }, }); + this.styleAttributeService.registerStyleAttribute({ name: 'extrude', type: AttributeType.Attribute, descriptor: { name: 'a_Extrude', - shaderLocation: ShaderLocation.EXTRUDE, + shaderLocation: this.attributeLocation.EXTRUDE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, data: [], type: gl.FLOAT, }, - size: 3, + size: 4, update: (feature: IEncodeFeature) => { const coordinates = calculateCentroid(feature.coordinates); - return [coordinates[0], coordinates[1], 0]; + // [lng, lat, lowLng, lowLat] + // low part for enabled double precision + return [ + coordinates[0], + coordinates[1], + fp64LowPart(coordinates[0]), + fp64LowPart(coordinates[1]), + ]; }, }, }); diff --git a/packages/layers/src/point/models/fill.ts b/packages/layers/src/point/models/fill.ts index 9ba7c5ce114..ad2c5537a25 100644 --- a/packages/layers/src/point/models/fill.ts +++ b/packages/layers/src/point/models/fill.ts @@ -9,7 +9,6 @@ import type { } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import { PointFillTriangulation } from '../../core/triangulation'; import pointFillFrag from '../shaders/fill/fill_frag.glsl'; @@ -19,6 +18,15 @@ import type { IPointLayerStyleOptions } from '../../core/interface'; import { SizeUnitType } from '../../core/interface'; export default class FillModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + SHAPE: 10, + EXTRUDE: 11, + }); + } + protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -83,6 +91,7 @@ export default class FillModel extends BaseModel { moduleName: type, vertexShader: vert, fragmentShader: frag, + defines: this.getDefines(), inject: this.getInject(), triangulation: PointFillTriangulation, depth: { enable: false }, @@ -114,12 +123,15 @@ export default class FillModel extends BaseModel { // 注册 Style 参与数据映射的内置属性 const shape2d = this.layer.getLayerConfig().shape2d as string[]; + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'extrude', type: AttributeType.Attribute, descriptor: { name: 'a_Extrude', - shaderLocation: ShaderLocation.EXTRUDE, + shaderLocation: this.attributeLocation.EXTRUDE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -146,7 +158,7 @@ export default class FillModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -167,7 +179,7 @@ export default class FillModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Shape', - shaderLocation: ShaderLocation.SHAPE, + shaderLocation: this.attributeLocation.SHAPE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/point/models/fillImage.ts b/packages/layers/src/point/models/fillImage.ts index 94757d4aeca..b2bbd364e6e 100644 --- a/packages/layers/src/point/models/fillImage.ts +++ b/packages/layers/src/point/models/fillImage.ts @@ -5,12 +5,19 @@ import BaseModel from '../../core/BaseModel'; import type { IPointLayerStyleOptions } from '../../core/interface'; import { SizeUnitType } from '../../core/interface'; import { PointFillTriangulation } from '../../core/triangulation'; -// static pointLayer shader - not support animate -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import pointFillFrag from '../shaders/fillImage/fillImage_frag.glsl'; import pointFillVert from '../shaders/fillImage/fillImage_vert.glsl'; export default class FillImageModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + EXTRUDE: 10, + UV: 11, + }); + } + private meter2coord: number = 1; private texture: ITexture2D; private isMeter: boolean = false; @@ -73,6 +80,7 @@ export default class FillImageModel extends BaseModel { fragmentShader: pointFillFrag, triangulation: PointFillTriangulation, depth: { enable: false }, + defines: this.getDefines(), inject: this.getInject(), cull: { enable: true, @@ -89,12 +97,15 @@ export default class FillImageModel extends BaseModel { // overwrite baseModel func protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -116,7 +127,7 @@ export default class FillImageModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Extrude', - shaderLocation: ShaderLocation.EXTRUDE, + shaderLocation: this.attributeLocation.EXTRUDE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -144,7 +155,7 @@ export default class FillImageModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/point/models/image.ts b/packages/layers/src/point/models/image.ts index 613c3a62560..f7d7b97bdc6 100644 --- a/packages/layers/src/point/models/image.ts +++ b/packages/layers/src/point/models/image.ts @@ -1,12 +1,19 @@ import type { IEncodeFeature, IModel, IModelUniform, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPointLayerStyleOptions } from '../../core/interface'; import { PointImageTriangulation } from '../../core/triangulation'; import pointImageFrag from '../shaders/image/image_frag.glsl'; import pointImageVert from '../shaders/image/image_vert.glsl'; export default class ImageModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + UV: 10, + }); + } + private texture: ITexture2D; public getUninforms(): IModelUniform { @@ -63,6 +70,7 @@ export default class ImageModel extends BaseModel { vertexShader: pointImageVert, fragmentShader: pointImageFrag, triangulation: PointImageTriangulation, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: false }, primitive: gl.POINTS, @@ -71,13 +79,16 @@ export default class ImageModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'size', type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -98,7 +109,7 @@ export default class ImageModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/point/models/normal.ts b/packages/layers/src/point/models/normal.ts index 87cde43147d..b5d00a7ff37 100644 --- a/packages/layers/src/point/models/normal.ts +++ b/packages/layers/src/point/models/normal.ts @@ -1,7 +1,6 @@ import type { IEncodeFeature, IModel } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPointLayerStyleOptions } from '../../core/interface'; import normalFrag from '../shaders/normal/normal_frag.glsl'; import normalVert from '../shaders/normal/normal_vert.glsl'; @@ -16,6 +15,13 @@ export function PointTriangulation(feature: IEncodeFeature) { } export default class NormalModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + }); + } + public getDefaultStyle(): Partial { return { blend: 'additive', @@ -45,6 +51,7 @@ export default class NormalModel extends BaseModel { vertexShader: normalVert, fragmentShader: normalFrag, triangulation: PointTriangulation, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: false }, primitive: gl.POINTS, @@ -58,12 +65,15 @@ export default class NormalModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'size', type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/point/models/radar.ts b/packages/layers/src/point/models/radar.ts index aa557c4286c..2ebd0c71be0 100644 --- a/packages/layers/src/point/models/radar.ts +++ b/packages/layers/src/point/models/radar.ts @@ -11,12 +11,18 @@ import BaseModel from '../../core/BaseModel'; import type { IPointLayerStyleOptions } from '../../core/interface'; import { SizeUnitType } from '../../core/interface'; import { PointFillTriangulation } from '../../core/triangulation'; - -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import pointFillFrag from '../shaders/radar/radar_frag.glsl'; import pointFillVert from '../shaders/radar/radar_vert.glsl'; export default class RadarModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + EXTRUDE: 10, + }); + } + protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; @@ -64,6 +70,7 @@ export default class RadarModel extends BaseModel { vertexShader: pointFillVert, fragmentShader: pointFillFrag, triangulation: PointFillTriangulation, + defines: this.getDefines(), inject: this.getInject(), depth: { enable: false }, }); @@ -75,12 +82,15 @@ export default class RadarModel extends BaseModel { return [option.enable ? 0 : 1.0, option.speed || 1, option.rings || 3, 0]; } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'extrude', type: AttributeType.Attribute, descriptor: { name: 'a_Extrude', - shaderLocation: ShaderLocation.EXTRUDE, + shaderLocation: this.attributeLocation.EXTRUDE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -106,7 +116,7 @@ export default class RadarModel extends BaseModel { name: 'size', type: AttributeType.Attribute, descriptor: { - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, name: 'a_Size', buffer: { // give the WebGL driver a hint that this buffer may change diff --git a/packages/layers/src/point/models/text.ts b/packages/layers/src/point/models/text.ts index 3007b21d39f..3bd1b7e7a4c 100644 --- a/packages/layers/src/point/models/text.ts +++ b/packages/layers/src/point/models/text.ts @@ -8,7 +8,6 @@ import type { import { AttributeType, gl } from '@antv/l7-core'; import { boundsContains, calculateCentroid, lodashUtil, padBounds, rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPointLayerStyleOptions } from '../../core/interface'; import CollisionIndex from '../../utils/collision-index'; import type { IGlyphQuad } from '../../utils/symbol-layout'; @@ -73,6 +72,15 @@ export function TextTrianglation(feature: IEncodeFeature) { } export default class TextModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + TEXT_OFFSETS: 10, + UV: 11, + }); + } + public glyphInfo: IEncodeFeature[]; public glyphInfoMap: { [key: string]: { @@ -154,6 +162,7 @@ export default class TextModel extends BaseModel { moduleName: 'pointText', vertexShader: textVert, fragmentShader: textFrag, + defines: this.getDefines(), inject: this.getInject(), triangulation: TextTrianglation.bind(this), depth: { enable: false }, @@ -215,11 +224,14 @@ export default class TextModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 20层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'textOffsets', type: AttributeType.Attribute, descriptor: { - shaderLocation: 10, + shaderLocation: this.attributeLocation.TEXT_OFFSETS, name: 'a_textOffsets', // 文字偏移量 buffer: { // give the WebGL driver a hint that this buffer may change @@ -233,12 +245,13 @@ export default class TextModel extends BaseModel { }, }, }); + this.styleAttributeService.registerStyleAttribute({ name: 'textUv', type: AttributeType.Attribute, descriptor: { name: 'a_tex', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -250,13 +263,14 @@ export default class TextModel extends BaseModel { }, }, }); + // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'size', type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, @@ -509,6 +523,7 @@ export default class TextModel extends BaseModel { vertexShader: textVert, fragmentShader: textFrag, triangulation: TextTrianglation.bind(this), + defines: this.getDefines(), inject: this.getInject(), depth: { enable: false }, }); diff --git a/packages/layers/src/point/shaders/billboard/billboard_point_vert.glsl b/packages/layers/src/point/shaders/billboard/billboard_point_vert.glsl index a0503b62142..72606138261 100644 --- a/packages/layers/src/point/shaders/billboard/billboard_point_vert.glsl +++ b/packages/layers/src/point/shaders/billboard/billboard_point_vert.glsl @@ -1,7 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(std140) uniform commonUniorm { vec4 u_stroke_color; @@ -21,16 +22,16 @@ void main() { v_color = vec4(a_Color.xyz, a_Color.w * opacity); v_blur = 1.0 - max(2.0/a_Size, 0.05); v_innerRadius = max((a_Size - u_stroke_width) / a_Size, 0.0); - + vec2 offset = project_pixel(u_offsets); - + if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x gl_Position = u_Mvp * vec4(a_Position.xy + offset, a_Position.z, 1.0); - } else { // else - vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.); + } else { + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy+offset),project_pos.z,project_pos.w)); } - + gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/point/shaders/earthExtrude/earthExtrude_vert.glsl b/packages/layers/src/point/shaders/earthExtrude/earthExtrude_vert.glsl index 65e94bbdb9a..8009a2c3988 100644 --- a/packages/layers/src/point/shaders/earthExtrude/earthExtrude_vert.glsl +++ b/packages/layers/src/point/shaders/earthExtrude/earthExtrude_vert.glsl @@ -5,13 +5,11 @@ precision highp float; #define diffuseRatio 0.3 #define specularRatio 0.2 - -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in vec3 a_Size; -layout(location = 11) in vec3 a_Pos; -layout(location = 13) in vec3 a_Normal; - +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in vec3 a_Size; +layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniform { vec4 u_sourceColor; @@ -42,7 +40,7 @@ float getYRadian(float x, float z) { } else if(x > 0.0 && z <= 0.0){ return atan(-z/x) + pi/2.0; } else if(x <= 0.0 && z <= 0.0) { - return pi + atan(x/z); //atan(x/z) + + return pi + atan(x/z); //atan(x/z) + } else { return atan(z/-x) + pi*3.0/2.0; } @@ -62,7 +60,7 @@ void main() { vec3 offset = size; // 控制圆柱体的大小 - 从标准单位圆柱体进行偏移 if(u_heightfixed < 1.0) { // 圆柱体不固定高度 - + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { // P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 offset = offset * pow(2.0, (19.0 - u_Zoom)); @@ -98,7 +96,7 @@ void main() { } v_color.a *= u_opacity; - + // 在地球模式下,将原本垂直于 xy 平面的圆柱调整姿态到适应圆的角度 //旋转矩阵mx,创建绕x轴旋转矩阵 float r = sqrt(a_Pos.z*a_Pos.z + a_Pos.x*a_Pos.x); @@ -106,9 +104,9 @@ void main() { float xcos = cos(xRadian);//求解旋转角度余弦值 float xsin = sin(xRadian);//求解旋转角度正弦值 mat4 mx = mat4( - 1,0,0,0, - 0,xcos,-xsin,0, - 0,xsin,xcos,0, + 1,0,0,0, + 0,xcos,-xsin,0, + 0,xsin,xcos,0, 0,0,0,1); //旋转矩阵my,创建绕y轴旋转矩阵 @@ -116,13 +114,13 @@ void main() { float ycos = cos(yRadian);//求解旋转角度余弦值 float ysin = sin(yRadian);//求解旋转角度正弦值 mat4 my = mat4( - ycos,0,-ysin,0, - 0,1,0,0, - ysin,0,ycos,0, + ycos,0,-ysin,0, + 0,1,0,0, + ysin,0,ycos,0, 0,0,0,1); gl_Position = u_ViewProjectionMatrix * vec4(( my * mx * vec4(a_Position * a_Size, 1.0)).xyz + a_Pos, 1.0); - + setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/point/shaders/earthFill/earthFill_vert.glsl b/packages/layers/src/point/shaders/earthFill/earthFill_vert.glsl index 68fecdd3837..f312a0b4076 100644 --- a/packages/layers/src/point/shaders/earthFill/earthFill_vert.glsl +++ b/packages/layers/src/point/shaders/earthFill/earthFill_vert.glsl @@ -1,8 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 10) in float a_Shape; -layout(location = 11) in vec3 a_Extrude; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_SHAPE) in float a_Shape; +layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(std140) uniform commonUniform { float u_additive; @@ -43,4 +43,4 @@ void main() { gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1 + vec3(u_offsets,0.0), 1.0); setPickingColor(a_PickingColor); -} \ No newline at end of file +} diff --git a/packages/layers/src/point/shaders/extrude/extrude_vert.glsl b/packages/layers/src/point/shaders/extrude/extrude_vert.glsl index bf62e62a267..9633779d4a3 100644 --- a/packages/layers/src/point/shaders/extrude/extrude_vert.glsl +++ b/packages/layers/src/point/shaders/extrude/extrude_vert.glsl @@ -1,10 +1,10 @@ -#define pi 3.1415926535 +#define pi (3.1415926535) -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in vec3 a_Size; -layout(location = 11) in vec3 a_Extrude; -layout(location = 13) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in vec3 a_Size; +layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec4 a_Extrude; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniforms { float u_pickLight; @@ -25,46 +25,53 @@ out float v_lightWeight; #pragma include "picking" float getYRadian(float x, float z) { - if(x > 0.0 && z > 0.0) { - return atan(x/z); - } else if(x > 0.0 && z <= 0.0){ - return atan(-z/x) + pi/2.0; - } else if(x <= 0.0 && z <= 0.0) { - return pi + atan(x/z); //atan(x/z) + + if (x > 0.0 && z > 0.0) { + return atan(x / z); + } else if (x > 0.0 && z <= 0.0) { + return atan(-z / x) + pi / 2.0; + } else if (x <= 0.0 && z <= 0.0) { + return pi + atan(x / z); //atan(x/z) + } else { - return atan(z/-x) + pi*3.0/2.0; + return atan(z / -x) + pi * 3.0 / 2.0; } } float getXRadian(float y, float r) { - return atan(y/r); + return atan(y / r); } void main() { - - vec3 size = a_Size * a_Position; vec3 offset = size; // 控制圆柱体的大小 - 从标准单位圆柱体进行偏移 - if(u_heightfixed < 1.0) { // 圆柱体不固定高度 - - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { + if (u_heightfixed < 1.0) { + // 圆柱体不固定高度 + + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_P20 || + u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET + ) { // P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - offset = offset * pow(2.0, (19.0 - u_Zoom)); + offset = offset * pow(2.0, 19.0 - u_Zoom); } - if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // P20_2 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减3 - offset = offset * pow(2.0, (19.0 - 3.0 - u_Zoom)); + offset = offset * pow(2.0, 19.0 - 3.0 - u_Zoom); } - } else {// 圆柱体固定高度 ( 处理 mapbox ) - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - offset *= 4.0/pow(2.0, 21.0 - u_Zoom); + } else { + // 圆柱体固定高度 ( 处理 mapbox ) + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + offset *= 4.0 / pow(2.0, 21.0 - u_Zoom); } } - - vec4 project_pos = project_position(vec4(a_Extrude.xy, 0., 1.0)); + vec2 positions = a_Extrude.xy; + vec2 positions64Low = a_Extrude.zw; + vec4 project_pos = project_position(vec4(positions, 0.0, 1.0), positions64Low); // u_r 控制圆柱的生长 vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0); @@ -72,7 +79,8 @@ void main() { // // 圆柱光照效果 float lightWeight = 1.0; - if(u_lightEnable > 0.0) { // 取消三元表达式,增强健壮性 + if (u_lightEnable > 0.0) { + // 取消三元表达式,增强健壮性 lightWeight = calc_lighting(pos); } @@ -80,19 +88,19 @@ void main() { v_color = a_Color; - // 设置圆柱的底色 - if(u_linearColor == 1.0) { // 使用渐变颜色 + // 设置圆柱的底色 + if (u_linearColor == 1.0) { + // 使用渐变颜色 v_color = mix(u_sourceColor, u_targetColor, a_Position.z); - v_color.a = v_color.a * opacity; + v_color.a = v_color.a * opacity; } else { v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity); } - if(u_opacitylinear > 0.0) { - v_color.a *= u_opacitylinear_dir > 0.0 ? (1.0 - a_Position.z): a_Position.z; + if (u_opacitylinear > 0.0) { + v_color.a *= u_opacitylinear_dir > 0.0 ? 1.0 - a_Position.z : a_Position.z; } - gl_Position = project_common_position_to_clipspace_v2(pos); setPickingColor(a_PickingColor); diff --git a/packages/layers/src/point/shaders/fill/fill_vert.glsl b/packages/layers/src/point/shaders/fill/fill_vert.glsl index 2c2bb37bc47..84b8b3ecc0b 100644 --- a/packages/layers/src/point/shaders/fill/fill_vert.glsl +++ b/packages/layers/src/point/shaders/fill/fill_vert.glsl @@ -1,8 +1,9 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 10) in float a_Shape; -layout(location = 11) in vec3 a_Extrude; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_SHAPE) in float a_Shape; +layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(std140) uniform commonUniforms { vec3 u_blur_height_fixed; @@ -11,7 +12,7 @@ layout(std140) uniform commonUniforms { float u_stroke_opacity; float u_size_unit; float u_time; - vec4 u_animate; + vec4 u_animate; }; out vec4 v_color; @@ -25,7 +26,7 @@ out float v_radius; void main() { // 透明度计算 - v_stroke = stroke; + v_stroke = stroke; vec3 extrude = a_Extrude; float shape_type = a_Shape; /* @@ -51,17 +52,14 @@ void main() { float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur_height_fixed.x); vec2 offset = (extrude.xy * (newSize + u_stroke_width) + u_offsets); - vec3 aPosition = a_Position; offset = project_pixel(offset); offset = rotate_matrix(offset,rotation); - + // TODP: /abs(extrude.x) 是为了兼容地球模式 v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type); - - // vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0)); - vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0)); + vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low); // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0)); float raisingHeight = u_blur_height_fixed.y; @@ -74,7 +72,7 @@ void main() { raisingHeight = u_blur_height_fixed.y * mapboxZoomScale; } } - + gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy + offset, raisingHeight, 1.0)); setPickingColor(a_PickingColor); diff --git a/packages/layers/src/point/shaders/fillImage/fillImage_vert.glsl b/packages/layers/src/point/shaders/fillImage/fillImage_vert.glsl index 65d2d6f1abc..c05031237a2 100644 --- a/packages/layers/src/point/shaders/fillImage/fillImage_vert.glsl +++ b/packages/layers/src/point/shaders/fillImage/fillImage_vert.glsl @@ -1,8 +1,9 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 11) in vec3 a_Extrude; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniform { vec2 u_textSize; @@ -15,7 +16,6 @@ out vec2 v_uv; out vec2 v_Iconuv; out float v_opacity; - #pragma include "projection" #pragma include "picking" #pragma include "rotation_2d" @@ -30,7 +30,7 @@ void main() { if(u_size_unit == 1.0) { newSize = newSize * u_PixelsPerMeter.z; } - + // vec2 offset = (u_RotateMatrix * extrude.xy * (a_Size) + textrueOffsets); vec2 offset = (extrude.xy * (newSize) + offsets); @@ -40,7 +40,7 @@ void main() { offset = project_pixel(offset); - vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0)); + vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0), a_Position64Low); float raisingHeight = u_raisingHeight; if(u_heightfixed < 1.0) { // height fixed raisingHeight = project_pixel(u_raisingHeight); diff --git a/packages/layers/src/point/shaders/image/image_vert.glsl b/packages/layers/src/point/shaders/image/image_vert.glsl index 5b00b12213b..4e2eccbeb9c 100644 --- a/packages/layers/src/point/shaders/image/image_vert.glsl +++ b/packages/layers/src/point/shaders/image/image_vert.glsl @@ -1,7 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec2 u_textSize; @@ -17,27 +18,31 @@ out float v_opacity; #pragma include "picking" void main() { - // cal style mapping - 数据纹理映射部分的计算 v_color = a_Color; v_opacity = opacity; v_uv = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); + vec2 offset = project_pixel(offsets); float raisingHeight = u_raisingHeight; - if(u_heightfixed < 1.0) { // false + if (u_heightfixed < 1.0) { + // false raisingHeight = project_pixel(u_raisingHeight); } else { - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); raisingHeight = u_raisingHeight * mapboxZoomScale; } } - - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy + offset, raisingHeight, 1.0)); + gl_Position = project_common_position_to_clipspace_v2( + vec4(project_pos.xy + offset, raisingHeight, 1.0) + ); gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; setPickingColor(a_PickingColor); diff --git a/packages/layers/src/point/shaders/normal/normal_vert.glsl b/packages/layers/src/point/shaders/normal/normal_vert.glsl index e7a784ed18d..a47d53f994e 100644 --- a/packages/layers/src/point/shaders/normal/normal_vert.glsl +++ b/packages/layers/src/point/shaders/normal/normal_vert.glsl @@ -1,6 +1,7 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(std140) uniform u_Common { float u_size_scale; @@ -17,7 +18,7 @@ void main() { if (u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x gl_Position = u_Mvp * vec4(a_Position, 1.0); } else { - vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2., -a_Size /2., 0., 0.); + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(project_pos); } diff --git a/packages/layers/src/point/shaders/radar/radar_vert.glsl b/packages/layers/src/point/shaders/radar/radar_vert.glsl index 3c9ab56e499..da35ba2d5ca 100644 --- a/packages/layers/src/point/shaders/radar/radar_vert.glsl +++ b/packages/layers/src/point/shaders/radar/radar_vert.glsl @@ -1,7 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 11) in vec3 a_Extrude; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(std140) uniform commonUniorm { float u_additive; @@ -22,8 +23,8 @@ void main() { float newSize = setPickingSize(a_Size); float time = u_time * u_speed; - mat2 rotateMatrix = mat2( - cos(time), sin(time), + mat2 rotateMatrix = mat2( + cos(time), sin(time), -sin(time), cos(time) ); v_extrude = rotateMatrix * a_Extrude.xy; @@ -40,13 +41,12 @@ void main() { v_radius = newSize; vec2 offset = (a_Extrude.xy * (newSize)); - vec3 aPosition = a_Position; - + offset = project_pixel(offset); - + v_data = vec4(a_Extrude.x, a_Extrude.y, antialiasblur, -1.0); - vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0)); + vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0)); setPickingColor(a_PickingColor); diff --git a/packages/layers/src/point/shaders/text/text_vert.glsl b/packages/layers/src/point/shaders/text/text_vert.glsl index 453fa2a7e34..554df58b237 100644 --- a/packages/layers/src/point/shaders/text/text_vert.glsl +++ b/packages/layers/src/point/shaders/text/text_vert.glsl @@ -2,11 +2,12 @@ #define EDGE_GAMMA 0.105 #define FONT_SIZE 24.0 -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 10) in vec2 a_textOffsets; -layout(location = 14) in vec2 a_tex; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_TEXT_OFFSETS) in vec2 a_textOffsets; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_tex; layout(std140) uniform commonUniforms { vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0]; @@ -29,7 +30,7 @@ out float v_fontScale; void main() { // cal style mapping - 数据纹理映射部分的计算 - + v_uv = a_tex / u_sdf_map_size; @@ -41,11 +42,11 @@ void main() { float fontScale = a_Size / FONT_SIZE; v_fontScale = fontScale; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); // vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); vec2 offset = rotate_matrix(a_textOffsets,rotation); - + // gl_Position = vec4(projected_position.xy / projected_position.w + rotation_matrix * a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0); float raiseHeight = u_raisingHeight; diff --git a/packages/layers/src/polygon/models/extrude.ts b/packages/layers/src/polygon/models/extrude.ts index 832d2a8217b..c878abf0c65 100644 --- a/packages/layers/src/polygon/models/extrude.ts +++ b/packages/layers/src/polygon/models/extrude.ts @@ -4,20 +4,24 @@ import { rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; import type { IPolygonLayerStyleOptions } from '../../core/interface'; import { PolygonExtrudeTriangulation } from '../../core/triangulation'; +import { loadImage } from '../../utils/load-image'; import polygonExtrudeFrag from '../shaders/extrude/polygon_extrude_frag.glsl'; +import polygonExtrudePickLightFrag from '../shaders/extrude/polygon_extrude_picklight_frag.glsl'; +import polygonExtrudePickLightVert from '../shaders/extrude/polygon_extrude_picklight_vert.glsl'; import polygonExtrudeVert from '../shaders/extrude/polygon_extrude_vert.glsl'; -// extrude import polygonExtrudeTexFrag from '../shaders/extrude/polygon_extrudetex_frag.glsl'; -// texture import polygonExtrudeTexVert from '../shaders/extrude/polygon_extrudetex_vert.glsl'; -// extrude picking - -import { ShaderLocation } from '../../core/CommonStyleAttribute'; -import { loadImage } from '../../utils/load-image'; -import polygonExtrudePickLightFrag from '../shaders/extrude/polygon_extrude_picklight_frag.glsl'; -import polygonExtrudePickLightVert from '../shaders/extrude/polygon_extrude_picklight_vert.glsl'; export default class ExtrudeModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + NORMAL: 10, + UV: 11, + }); + } + protected texture: ITexture2D; public getUninforms() { const commoninfo = this.getCommonUniformsInfo(); @@ -84,6 +88,7 @@ export default class ExtrudeModel extends BaseModel { vertexShader: vert, fragmentShader: frag, depth: { enable: true }, + defines: this.getDefines(), inject: this.getInject(), triangulation: PolygonExtrudeTriangulation, }); @@ -142,12 +147,15 @@ export default class ExtrudeModel extends BaseModel { bounds = [minX, minY, maxX, maxY]; } + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'uvs', type: AttributeType.Attribute, descriptor: { name: 'a_uvs', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -168,7 +176,7 @@ export default class ExtrudeModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -193,7 +201,7 @@ export default class ExtrudeModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/polygon/models/extrusion.ts b/packages/layers/src/polygon/models/extrusion.ts index 52f4edca2a9..abfc33f750c 100644 --- a/packages/layers/src/polygon/models/extrusion.ts +++ b/packages/layers/src/polygon/models/extrusion.ts @@ -1,13 +1,22 @@ import type { IEncodeFeature, IModel, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import { PolygonExtrudeTriangulation } from '../../core/triangulation'; import polygonExtrudeFrag from '../shaders/extrusion/polygon_extrusion_frag.glsl'; import polygonExtrudeVert from '../shaders/extrusion/polygon_extrusion_vert.glsl'; export default class ExtrusionModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + SIZE: 9, + NORMAL: 10, + EXTRUSION_BASE: 11, + }); + } + protected texture: ITexture2D; + public getUninforms() { const commoninfo = this.getCommonUniformsInfo(); const attributeInfo = this.getUniformsBufferInfo(this.getStyleAttribute()); @@ -39,6 +48,7 @@ export default class ExtrusionModel extends BaseModel { moduleName: type, vertexShader: vert, fragmentShader: frag, + defines: this.getDefines(), inject: this.getInject(), triangulation: PolygonExtrudeTriangulation, depth: { enable: true }, @@ -59,12 +69,15 @@ export default class ExtrusionModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'normal', type: AttributeType.Attribute, descriptor: { name: 'a_Normal', - shaderLocation: ShaderLocation.NORMAL, + shaderLocation: this.attributeLocation.NORMAL, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, @@ -89,7 +102,7 @@ export default class ExtrusionModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Size', - shaderLocation: ShaderLocation.SIZE, + shaderLocation: this.attributeLocation.SIZE, buffer: { usage: gl.DYNAMIC_DRAW, data: [], @@ -102,5 +115,24 @@ export default class ExtrusionModel extends BaseModel { }, }, }); + + this.styleAttributeService.registerStyleAttribute({ + name: 'extrusionBase', + type: AttributeType.Attribute, + descriptor: { + name: 'a_ExtrusionBase', + shaderLocation: this.attributeLocation.EXTRUSION_BASE, + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: (feature: IEncodeFeature) => { + const { extrusionBase: op = 0 } = feature; + return [op]; + }, + }, + }); } } diff --git a/packages/layers/src/polygon/models/fill.ts b/packages/layers/src/polygon/models/fill.ts index 277801161bd..2c47248aa53 100644 --- a/packages/layers/src/polygon/models/fill.ts +++ b/packages/layers/src/polygon/models/fill.ts @@ -1,7 +1,6 @@ import type { IEncodeFeature, IModel, Triangulation } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPolygonLayerStyleOptions } from '../../core/interface'; import { polygonTriangulation, polygonTriangulationWithCenter } from '../../core/triangulation'; import polygon_frag from '../shaders/fill/fill_frag.glsl'; @@ -9,6 +8,13 @@ import polygon_linear_frag from '../shaders/fill/fill_linear_frag.glsl'; import polygon_linear_vert from '../shaders/fill/fill_linear_vert.glsl'; import polygon_vert from '../shaders/fill/fill_vert.glsl'; export default class FillModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + LINEAR: 9, + }); + } + public getUninforms() { const commoninfo = this.getCommonUniformsInfo(); const attributeInfo = this.getUniformsBufferInfo(this.getStyleAttribute()); @@ -53,6 +59,7 @@ export default class FillModel extends BaseModel { moduleName: type, vertexShader: vert, fragmentShader: frag, + defines: this.getDefines(), inject: this.getInject(), triangulation, primitive: gl.TRIANGLES, @@ -62,12 +69,16 @@ export default class FillModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + const { opacityLinear = { enable: false, dir: 'in', }, } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions; + if (opacityLinear.enable) { this.styleAttributeService.registerStyleAttribute({ name: 'linear', @@ -75,7 +86,7 @@ export default class FillModel extends BaseModel { descriptor: { name: 'a_linear', - shaderLocation: ShaderLocation.LINEAR, + shaderLocation: this.attributeLocation.LINEAR, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, diff --git a/packages/layers/src/polygon/models/ocean.ts b/packages/layers/src/polygon/models/ocean.ts index 069c3659138..eb2f6dc626f 100644 --- a/packages/layers/src/polygon/models/ocean.ts +++ b/packages/layers/src/polygon/models/ocean.ts @@ -2,12 +2,18 @@ import type { IEncodeFeature, IModel, IModelUniform, ITexture2D } from '@antv/l7 import { AttributeType, gl } from '@antv/l7-core'; import { rgb2arr } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPolygonLayerStyleOptions } from '../../core/interface'; import { polygonTriangulation } from '../../core/triangulation'; import ocean_frag from '../shaders/ocean/ocean_frag.glsl'; import ocean_vert from '../shaders/ocean/ocean_vert.glsl'; export default class OceanModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } + private texture1: ITexture2D; private texture2: ITexture2D; private texture3: ITexture2D; @@ -59,6 +65,7 @@ export default class OceanModel extends BaseModel { moduleName: 'polygonOcean', vertexShader: ocean_vert, fragmentShader: ocean_frag, + defines: this.getDefines(), inject: this.getInject(), triangulation: polygonTriangulation, primitive: gl.TRIANGLES, @@ -84,7 +91,7 @@ export default class OceanModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, diff --git a/packages/layers/src/polygon/models/water.ts b/packages/layers/src/polygon/models/water.ts index 149edd3f0b2..98502863886 100644 --- a/packages/layers/src/polygon/models/water.ts +++ b/packages/layers/src/polygon/models/water.ts @@ -1,12 +1,19 @@ import type { IEncodeFeature, IModel, IModelUniform, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IPolygonLayerStyleOptions } from '../../core/interface'; import { polygonTriangulation } from '../../core/triangulation'; import water_frag from '../shaders/water/polygon_water_frag.glsl'; import water_vert from '../shaders/water/polygon_water_vert.glsl'; + export default class WaterModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } + private texture: ITexture2D; public getUninforms() { const commoninfo = this.getCommonUniformsInfo(); @@ -54,6 +61,7 @@ export default class WaterModel extends BaseModel { vertexShader: water_vert, fragmentShader: water_frag, triangulation: polygonTriangulation, + defines: this.getDefines(), inject: this.getInject(), primitive: gl.TRIANGLES, depth: { enable: false }, @@ -78,7 +86,7 @@ export default class WaterModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.STATIC_DRAW, diff --git a/packages/layers/src/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl b/packages/layers/src/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl index 84ad306a79a..99c90bb188e 100644 --- a/packages/layers/src/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +++ b/packages/layers/src/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl @@ -1,9 +1,9 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec3 a_uvs; - +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs; layout(std140) uniform commonUniforms { vec4 u_sourceColor; @@ -24,26 +24,28 @@ out vec2 v_texture_data; #pragma include "picking" void main() { - - v_uvs = a_uvs; // cal style mapping - 数据纹理映射部分的计算 vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0); - vec4 project_pos = project_position(pos); + vec4 project_pos = project_position(pos, a_Position64Low); - if(u_heightfixed > 0.0) { // 判断几何体是否固定高度 + if (u_heightfixed > 0.0) { + // 判断几何体是否固定高度 project_pos.z = a_Position.z * a_Size; project_pos.z += u_raisingHeight; - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } } - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xyz, 1.0)); - float lightWeight = calc_lighting(pos); - v_texture_data = vec2(a_Position.z,lightWeight); + gl_Position = project_common_position_to_clipspace_v2(project_pos); + float lightWeight = calc_lighting(project_pos); + v_texture_data = vec2(a_Position.z, lightWeight); v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity); diff --git a/packages/layers/src/polygon/shaders/extrude/polygon_extrude_vert.glsl b/packages/layers/src/polygon/shaders/extrude/polygon_extrude_vert.glsl index a341760cd93..634d5c02e28 100644 --- a/packages/layers/src/polygon/shaders/extrude/polygon_extrude_vert.glsl +++ b/packages/layers/src/polygon/shaders/extrude/polygon_extrude_vert.glsl @@ -1,8 +1,9 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec3 a_uvs; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs; layout(std140) uniform commonUniforms { vec4 u_sourceColor; @@ -21,39 +22,41 @@ out vec4 v_Color; #pragma include "picking" void main() { - -float isSide = a_Position.z; - float topU = a_uvs[0]; - float topV = 1.0 - a_uvs[1]; - float sidey = a_uvs[2]; + float isSide = a_Position.z; + float topU = a_uvs[0]; + float topV = 1.0 - a_uvs[1]; + float sidey = a_uvs[2]; vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0); - float lightWeight = calc_lighting(pos); - vec4 project_pos = project_position(pos); + vec4 project_pos = project_position(pos, a_Position64Low); + float lightWeight = calc_lighting(project_pos); - if(u_heightfixed > 0.0) { // 判断几何体是否固定高度 + if (u_heightfixed > 0.0) { + // 判断几何体是否固定高度 project_pos.z = a_Position.z * a_Size; project_pos.z += u_raisingHeight; - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } } - - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xyz, 1.0)); + gl_Position = project_common_position_to_clipspace_v2(project_pos); // Tip: 部分机型 GPU 计算精度兼容 - if(isSide < 0.999) { + if (isSide < 0.999) { // side face // if(u_sidesurface < 1.0) { // discard; // } - if(u_linearColor == 1.0) { + if (u_linearColor == 1.0) { vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey); linearColor.rgb *= lightWeight; v_Color = linearColor; @@ -67,6 +70,5 @@ float isSide = a_Position.z; v_Color = vec4(v_Color.rgb * lightWeight, v_Color.w * opacity); - setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/polygon/shaders/extrude/polygon_extrudetex_vert.glsl b/packages/layers/src/polygon/shaders/extrude/polygon_extrudetex_vert.glsl index 2717736fba7..4b7f2e56b3a 100644 --- a/packages/layers/src/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +++ b/packages/layers/src/polygon/shaders/extrude/polygon_extrudetex_vert.glsl @@ -1,9 +1,9 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 13) in vec3 a_Normal; -layout(location = 14) in vec3 a_uvs; - +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs; layout(std140) uniform commonUniforms { vec4 u_sourceColor; @@ -24,31 +24,31 @@ out vec2 v_texture_data; #pragma include "picking" void main() { - vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0); - float lightWeight = calc_lighting(pos); - vec4 project_pos = project_position(pos); + vec4 project_pos = project_position(pos, a_Position64Low); + float lightWeight = calc_lighting(project_pos); v_uvs = a_uvs; v_Color = a_Color; v_Color.a *= opacity; - + v_texture_data = vec2(a_Position.z, lightWeight); - if(u_heightfixed > 0.0) { // 判断几何体是否固定高度 + if (u_heightfixed > 0.0) { + // 判断几何体是否固定高度 project_pos.z = a_Position.z * a_Size; project_pos.z += u_raisingHeight; - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } } - - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xyz, 1.0)); - - + gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/polygon/shaders/extrusion/polygon_extrusion_vert.glsl b/packages/layers/src/polygon/shaders/extrusion/polygon_extrusion_vert.glsl index b5b8d506c00..5eed3228668 100644 --- a/packages/layers/src/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +++ b/packages/layers/src/polygon/shaders/extrusion/polygon_extrusion_vert.glsl @@ -1,7 +1,8 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 9) in float a_Size; -layout(location = 13) in vec3 a_Normal; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; +layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; out vec4 v_Color; @@ -10,11 +11,10 @@ out vec4 v_Color; #pragma include "picking" void main() { - vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size + (1.0 - a_Position.z) * extrusionBase, 1.0); - vec4 project_pos = project_position(pos); - float lightWeight = calc_lighting(project_pos); + vec4 project_pos = project_position(pos, a_Position64Low); + float lightWeight = calc_lighting(project_pos); v_Color = a_Color; v_Color = vec4(v_Color.rgb * lightWeight, v_Color.w * opacity); diff --git a/packages/layers/src/polygon/shaders/fill/fill_linear_vert.glsl b/packages/layers/src/polygon/shaders/fill/fill_linear_vert.glsl index 969698a6e0e..3dcd4141afc 100644 --- a/packages/layers/src/polygon/shaders/fill/fill_linear_vert.glsl +++ b/packages/layers/src/polygon/shaders/fill/fill_linear_vert.glsl @@ -1,6 +1,7 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 15) in vec3 a_linear; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_LINEAR) in vec3 a_linear; layout(std140) uniform commonUniforms { float u_raisingHeight; @@ -21,7 +22,7 @@ void main() { v_pos = a_Position.xy; } v_color = vec4(a_Color.xyz, a_Color.w * opacity); - vec4 project_pos = project_position(vec4(a_Position, 1.0)); + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); project_pos.z += u_raisingHeight; if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { @@ -32,4 +33,4 @@ void main() { gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); -} \ No newline at end of file +} diff --git a/packages/layers/src/polygon/shaders/fill/fill_vert.glsl b/packages/layers/src/polygon/shaders/fill/fill_vert.glsl index a1117dc6964..a7ebba6c23e 100644 --- a/packages/layers/src/polygon/shaders/fill/fill_vert.glsl +++ b/packages/layers/src/polygon/shaders/fill/fill_vert.glsl @@ -1,14 +1,13 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(std140) uniform commonUniforms { float u_raisingHeight; }; - out vec4 v_color; - #pragma include "projection" #pragma include "picking" @@ -18,18 +17,20 @@ void main() { // cal style mapping - 数据纹理映射部分的计算 v_color = vec4(a_Color.xyz, a_Color.w * opacity); - vec4 project_pos = project_position(vec4(a_Position, 1.0)); + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); project_pos.z += u_raisingHeight; - if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); + if ( + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET + ) { + float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); diff --git a/packages/layers/src/polygon/shaders/ocean/ocean_vert.glsl b/packages/layers/src/polygon/shaders/ocean/ocean_vert.glsl index 854bdbe3ced..f90cf60349c 100644 --- a/packages/layers/src/polygon/shaders/ocean/ocean_vert.glsl +++ b/packages/layers/src/polygon/shaders/ocean/ocean_vert.glsl @@ -1,5 +1,5 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_uv; layout(std140) uniform commonUniforms { vec4 u_watercolor; diff --git a/packages/layers/src/polygon/shaders/water/polygon_water_vert.glsl b/packages/layers/src/polygon/shaders/water/polygon_water_vert.glsl index 03fc492d3ca..77cb67500ec 100644 --- a/packages/layers/src/polygon/shaders/water/polygon_water_vert.glsl +++ b/packages/layers/src/polygon/shaders/water/polygon_water_vert.glsl @@ -1,6 +1,7 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 1) in vec4 a_Color; -layout(location = 14) in vec2 a_uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_uv; + layout(std140) uniform commonUniforms { float u_speed; float u_time; @@ -8,7 +9,6 @@ layout(std140) uniform commonUniforms { out vec4 v_Color; out vec2 v_uv; - #pragma include "projection" void main() { diff --git a/packages/layers/src/raster/index.ts b/packages/layers/src/raster/index.ts index 3025f494aa6..d4b143edfc5 100644 --- a/packages/layers/src/raster/index.ts +++ b/packages/layers/src/raster/index.ts @@ -4,7 +4,8 @@ import type { IRasterLayerStyleOptions } from '../core/interface'; import { rampColor2legend } from '../utils/rampcolor_legend'; import type { RasterModelType } from './models/index'; import RasterModels from './models/index'; -export default class RaterLayer extends BaseLayer { + +export default class RasterLayer extends BaseLayer { public type: string = 'RasterLayer'; public async buildModels() { const modelType = this.getModelType(); diff --git a/packages/layers/src/raster/models/raster.ts b/packages/layers/src/raster/models/raster.ts index 5526a249a51..92b813f9ef5 100644 --- a/packages/layers/src/raster/models/raster.ts +++ b/packages/layers/src/raster/models/raster.ts @@ -2,12 +2,18 @@ import type { IEncodeFeature, IModel, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { getDefaultDomain } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IRasterLayerStyleOptions } from '../../core/interface'; import { RasterImageTriangulation } from '../../core/triangulation'; import rasterFrag from '../shaders/raster/raster_2d_frag.glsl'; import rasterVert from '../shaders/raster/raster_2d_vert.glsl'; export default class RasterModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } + protected texture: ITexture2D; protected colorTexture: ITexture2D; public getUninforms() { @@ -97,6 +103,7 @@ export default class RasterModel extends BaseModel { moduleName: 'rasterImageData', vertexShader: rasterVert, fragmentShader: rasterFrag, + defines: this.getDefines(), triangulation: RasterImageTriangulation, primitive: gl.TRIANGLES, depth: { enable: false }, @@ -111,12 +118,15 @@ export default class RasterModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, name: 'a_Uv', buffer: { // give the WebGL driver a hint that this buffer may change diff --git a/packages/layers/src/raster/models/rasterRgb.ts b/packages/layers/src/raster/models/rasterRgb.ts index e75512d7b76..dc756b9366c 100644 --- a/packages/layers/src/raster/models/rasterRgb.ts +++ b/packages/layers/src/raster/models/rasterRgb.ts @@ -1,12 +1,18 @@ import type { IEncodeFeature, IModel, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IRasterLayerStyleOptions } from '../../core/interface'; import { RasterImageTriangulation } from '../../core/triangulation'; import rasterFrag from '../shaders/rgb/raster_rgb_frag.glsl'; import rasterVert from '../shaders/rgb/raster_rgb_vert.glsl'; export default class RasterModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } + protected texture: ITexture2D; protected dataOption: any = {}; @@ -89,6 +95,7 @@ export default class RasterModel extends BaseModel { moduleName: 'rasterImageDataRGBA', vertexShader: rasterVert, fragmentShader: rasterFrag, + defines: this.getDefines(), triangulation: RasterImageTriangulation, primitive: gl.TRIANGLES, depth: { enable: false }, @@ -106,13 +113,16 @@ export default class RasterModel extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + // point layer size; this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/raster/models/rasterTerrainRgb.ts b/packages/layers/src/raster/models/rasterTerrainRgb.ts index b741995f717..f77ff23550f 100644 --- a/packages/layers/src/raster/models/rasterTerrainRgb.ts +++ b/packages/layers/src/raster/models/rasterTerrainRgb.ts @@ -2,13 +2,19 @@ import type { IEncodeFeature, IModel, ITexture2D } from '@antv/l7-core'; import { AttributeType, gl } from '@antv/l7-core'; import { getDefaultDomain } from '@antv/l7-utils'; import BaseModel from '../../core/BaseModel'; -import { ShaderLocation } from '../../core/CommonStyleAttribute'; import type { IRasterTerrainLayerStyleOptions } from '../../core/interface'; import { RasterImageTriangulation } from '../../core/triangulation'; import Raster_terrainFrag from '../shaders/terrain/terrain_rgb_frag.glsl'; import Raster_terrainVert from '../shaders/terrain/terrain_rgb_vert.glsl'; export default class RasterTerrainRGB extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } + protected texture: ITexture2D; protected getCommonUniformsInfo(): { uniformsArray: number[]; @@ -66,6 +72,7 @@ export default class RasterTerrainRGB extends BaseModel { moduleName: 'RasterTileDataImage', vertexShader: Raster_terrainVert, fragmentShader: Raster_terrainFrag, + defines: this.getDefines(), triangulation: RasterImageTriangulation, primitive: gl.TRIANGLES, depth: { enable: false }, @@ -82,12 +89,15 @@ export default class RasterTerrainRGB extends BaseModel { } protected registerBuiltinAttributes() { + // 注册 Position 属性 64 位地位部分,经纬度数据开启双精度,避免大于 22 层级以上出现数据偏移 + this.registerPosition64LowAttribute(); + this.styleAttributeService.registerStyleAttribute({ name: 'uv', type: AttributeType.Attribute, descriptor: { name: 'a_Uv', - shaderLocation: ShaderLocation.UV, + shaderLocation: this.attributeLocation.UV, buffer: { usage: gl.DYNAMIC_DRAW, data: [], diff --git a/packages/layers/src/raster/shaders/raster/raster_2d_vert.glsl b/packages/layers/src/raster/shaders/raster/raster_2d_vert.glsl index 78dcd0b7ee4..4a4e15a4b65 100644 --- a/packages/layers/src/raster/shaders/raster/raster_2d_vert.glsl +++ b/packages/layers/src/raster/shaders/raster/raster_2d_vert.glsl @@ -1,6 +1,6 @@ - -layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec2 u_domain; @@ -15,7 +15,7 @@ out vec2 v_texCoord; #pragma include "projection" void main() { - v_texCoord = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy,0., 1.0)); + v_texCoord = a_Uv; + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); + gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy, 0.0, 1.0)); } diff --git a/packages/layers/src/raster/shaders/rgb/raster_rgb_vert.glsl b/packages/layers/src/raster/shaders/rgb/raster_rgb_vert.glsl index a57fa642ed0..d6d1b42ee71 100644 --- a/packages/layers/src/raster/shaders/rgb/raster_rgb_vert.glsl +++ b/packages/layers/src/raster/shaders/rgb/raster_rgb_vert.glsl @@ -1,13 +1,13 @@ - -layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { - vec2 u_rminmax; - vec2 u_gminmax; - vec2 u_bminmax; - float u_opacity; - float u_noDataValue; + vec2 u_rminmax; + vec2 u_gminmax; + vec2 u_bminmax; + float u_opacity; + float u_noDataValue; }; out vec2 v_texCoord; @@ -15,7 +15,7 @@ out vec2 v_texCoord; #pragma include "projection" void main() { - v_texCoord = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy,0., 1.0)); + v_texCoord = a_Uv; + vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); + gl_Position = project_common_position_to_clipspace_v2(vec4(project_pos.xy, 0.0, 1.0)); } diff --git a/packages/layers/src/raster/shaders/terrain/terrain_rgb_vert.glsl b/packages/layers/src/raster/shaders/terrain/terrain_rgb_vert.glsl index 11ffd4662b8..0bd9ef94b11 100644 --- a/packages/layers/src/raster/shaders/terrain/terrain_rgb_vert.glsl +++ b/packages/layers/src/raster/shaders/terrain/terrain_rgb_vert.glsl @@ -1,5 +1,5 @@ -layout(location = 0) in vec3 a_Position; -layout(location = 14) in vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec4 u_unpack; diff --git a/packages/layers/src/wind/models/wind.ts b/packages/layers/src/wind/models/wind.ts index 175ad10ea7f..53382793dce 100644 --- a/packages/layers/src/wind/models/wind.ts +++ b/packages/layers/src/wind/models/wind.ts @@ -28,6 +28,13 @@ const defaultRampColors = { }; export default class WindModel extends BaseModel { + protected get attributeLocation() { + return Object.assign(super.attributeLocation, { + MAX: super.attributeLocation.MAX, + UV: 9, + }); + } + protected texture: ITexture2D; private colorModel: IModel; private wind: IWind; @@ -116,6 +123,7 @@ export default class WindModel extends BaseModel { moduleName: 'wind', vertexShader: WindVert, fragmentShader: WindFrag, + defines: this.getDefines(), triangulation: RasterImageTriangulation, primitive: gl.TRIANGLES, depth: { enable: false }, @@ -149,6 +157,7 @@ export default class WindModel extends BaseModel { type: AttributeType.Attribute, descriptor: { name: 'a_Uv', + shaderLocation: this.attributeLocation.UV, buffer: { // give the WebGL driver a hint that this buffer may change usage: gl.DYNAMIC_DRAW, diff --git a/packages/layers/src/wind/shaders/wind_vert.glsl b/packages/layers/src/wind/shaders/wind_vert.glsl index 022b2cb46eb..f0715e8762e 100644 --- a/packages/layers/src/wind/shaders/wind_vert.glsl +++ b/packages/layers/src/wind/shaders/wind_vert.glsl @@ -1,8 +1,9 @@ precision highp float; uniform mat4 u_ModelMatrix; -attribute vec3 a_Position; -attribute vec2 a_Uv; +layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; +layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; + varying vec2 v_texCoord; #pragma include "projection" void main() { diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index ecdab195e96..1e691ad87cc 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,4 +1,3 @@ -// @ts-ignore export * from './ajax'; export * from './anchor'; export * from './color'; @@ -9,13 +8,14 @@ export * from './env'; export * from './event'; export * from './geo'; export { BKDRHash, djb2hash, guid } from './hash'; +export * from './interface/map'; export * from './lineAtOffset'; export * from './lodash-adapter'; export * from './lru_cache'; -// export * from './mini-adapter/index'; -export * from './interface/map'; +export * from './math'; export * as Satistics from './statistics'; export * from './tileset-manager'; + export function defaultValue(v1: any, v2: any) { if (v1 === undefined || v1 === null) { return v2; diff --git a/packages/utils/src/math.ts b/packages/utils/src/math.ts index f98e5617c8c..fc573a90016 100644 --- a/packages/utils/src/math.ts +++ b/packages/utils/src/math.ts @@ -1,3 +1,12 @@ export function isNumber(n: any) { return typeof n === 'number'; } + +/** + * Calculate the low part of a WebGL 64 bit float + * @param x {number} - the input float number + * @returns {number} - the lower 32 bit of the number + */ +export function fp64LowPart(x: number): number { + return x - Math.fround(x); +}

IwNO9_qan3Z}| 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 z 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 literal 17674 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 Je|P1l{|#tE4`l!V diff --git a/__tests__/integration/snapshots/Point_column.png b/__tests__/integration/snapshots/Point_column.png index 2b3530ed182366d390284b696fadeab13c66f4ef..4b5fefe55c2dc6d6be5b0cb337b7af718fd91210 100644 GIT binary patch literal 26475 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 literal 22319 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