首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Unity 水、流体、波纹基础系列(二)——方向流体(Directional Flow)

本文重点: 对齐纹理和流体方向 把表面切割为瓦片 无缝混合瓦片 混淆视觉效果 这是流体材质的第二篇,继一篇纹理变形之后,讲述如何对齐流体而不再是将它们进行扭曲。...(顺其自然的涟漪) 1 各向异性模式 让纹理变形以模拟流动时,它最终可能在任何方向上被拉伸或挤压。这意味着无论如何变形,看起来效果都还不错。但这仅在各向同性模式下才有可能。...(90°旋转时校正了导数) 现在导数也旋转,颜色也随之改变90°旋转时,红色和绿色已互换。现在我们可以恢复原始颜色。 ? ?...尽管我们实际不需要在方向着色器中执行此操作,但它使配置两个着色器完全相同的速度可以直接套用。并且 比较效果时很方便。 ? ?...我们要做的是尝试均匀流动的完美结果与每个片段使用不同流动方向的理想结果之间找到一个折衷。折衷方案是将表面划分为多个区域。我们将仅使用正方形瓦片网格。每个图块均具有均匀的流,因此不会遭受任何扭曲。

4.1K50
您找到你想要的搜索结果了吗?
是的
没有找到

WebWorker 文本标注中的应用

作者:潘与其 - 蚂蚁金服前端工程师 - 喜欢图形学、可视化 之前数据瓦片方案的介绍中,我们提到过希望将瓦片裁剪放入 WebWorker 中进行,以保证主线程中用户流畅的地图交互(缩放、平移、旋转)。...path=/story/textlayer--polygon-feature 首先我们来看看如何确定一个多边形的文本标注锚点,即难抵极的计算方法。...基于网格的 PIA 算法 算法步骤如下: 以多边形的包围盒作为初始网格,使用 ray casting 计算网格中心到多边形边界的有向距离(下图的 dist 负数表示形外)。...我们的例子中,当主线程请求 WebWorker 返回当前视口包含的数据瓦片时,WebWorker 会计算出瓦片包含的 Polygon 要素的难抵极,不影响主线程的交互: // https://github.com...事实 Mapbox 也是这么做的,另外为了加快线程间数据传输速度,数据格式设计也需要考虑 Transferable[6],由于线程上下文转移时不需要拷贝操作,大数据量传输时将获得较大的效率提升。

4.7K60

视频编码(3):H.266 编码性能比 H.265 再提升 49% 的关键丨音视频基础

这种变换水平方向和垂直方向使用不同长度的变换内核。 引入了多变换(主变换)选择,有了多变换选择,编码器可以从一组预定义的整数正弦、余弦、跳过变换并在码流中标明所用变换。...变换跳过残差编码 H.265 基础作了以下改进: 第一个非零值的位置不再编码,扫描方向改为相反方向; 利用上下文模型提高了正负号指示的编码效率; 绝对值的编码改进。...概念子图像与 H.265 中的运动受限的瓦片集(Motion-Constrained Tile Set, MCTS)相同,但是设计做了改进以提高编码压缩效率和应用系统友好性。...而在 H.266 中图像分辨率可以一个 CVS 中的任何帧改变,而且改变时还可以继续用帧间预测。...这也正式 H.266 第一版中就会支持多层可伸缩编码的主要原因(H.264 和 H.265 都是第一版之后才加入对多层可伸缩编码的支持的)。

1.7K20

说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

地图渲染涉及到两个重要名词:地图投影和地图瓦片,下面对这两个名词进行了详细解释: 3.1 地图投影 按照投影形式的不同,地图投影有圆锥投影、圆柱投影、方位投影三种;根据投影方向的位置又可以分为正轴投影、...地图瓦片的金字塔坐标体系 最高级(zoom=0),需要的信息最少,只需保留最重要的宏观信息,因此用一张256x256像素的图片表示即可;在下一级(zoom=1),信息量变多,用一张512x512像素的图片表示...这样,最高级(zoom=0)时,只有一个瓦片;在下一级(zoom=1)时,有4个瓦片;在下一级(zoom=2)时,有16个瓦片,以此类推。...2) Canvas渲染:把数据渲染到Canvas,这里用的是D3.js的墨卡托转换函数,再用.context方法渲染到Canvas。...相对来讲,网格距离法会比网格法和距离法,算法时间多一点,但是它的结果会更准确一点。我们也正是使用该方法,使数据卡顿的问题不那么明显。

7.8K00

个推数据可视化之人群热力图、消息下发图前端开发实践

布局意即如何分布要展现的数据,关系图、流程图、树图等,都只是布局不同;聚类则是要将真实的关系进行聚类模拟和可视化呈现出来,比如,哪些实体属于同一类别、相距比较近、或有从属关系等。...地图渲染涉及到两个重要名词:地图投影和地图瓦片,下面对这两个名词进行了详细解释: 3.1 地图投影 按照投影形式的不同,地图投影有圆锥投影、圆柱投影、方位投影三种;根据投影方向的位置又可以分为正轴投影、...这样,最高级(zoom=0)时,只有一个瓦片;在下一级(zoom=1)时,有4个瓦片;在下一级(zoom=2)时,有16个瓦片,以此类推。...2) Canvas渲染:把数据渲染到Canvas,这里用的是D3.js的墨卡托转换函数,再用.context方法渲染到Canvas。...相对来讲,网格距离法会比网格法和距离法,算法时间多一点,但是它的结果会更准确一点。我们也正是使用该方法,使数据卡顿的问题不那么明显。

2.3K30

NASA数据集——北美地区一个标准参考网格系统,覆盖整个研究区域,并延伸至北美东部

左图:样本瓦片 Bh002v003(紫色)较大的 A 网格(粗体)和较小的 B 网格中的位置。右图样本瓦片 Ch014v020 较大的两个网格中的位置。...投影提供了一种机制来确保产品几何的兼容性,而参考网格则提供了一种标准化的方法来将文件分成便于研究人员下载和操作的单元。...我们认识到,分辨率非常高的情况下,原始数据的重新投影可能会导致小物体方向、位置和形状发生重大的特殊偏移;因此,我们鼓励 ABoVE 科学小组成员提交其精细比例数据集时,除了采用 ABoVE 网格格式外...例如,左图 1-A(显示大网格)中,左上角的瓦片称为 "h000v000",右下角的瓦片称为 "h005v003"。右图 1-B 显示了嵌套在大网格内的小网格。每个大方格内都嵌套有一系列小方格。...例如 要找到给定的 C 网格瓦片 Ch036v012 B 网格中的位置,瓦片编号的水平(h036)和垂直(v012)部分应除以 6: floor(36/6)=6,floor(12/6=2)("floor

8400

Unity Demo教程系列——Unity塔防游戏(二)敌人(Moving Through a Maze)

还要追踪位置,这样我们就不必每一帧中检索它们。它也需要追踪进度。 ? SpawnOn中初始化这些字段。给定的瓦片是从哪里过去的,目的地是路径的下一个瓦片(假设存在) 。...(敌人对路径变化做出反应) 3.3 从边到边 瓦片中心之间移动和突然改变方向,对于一个敌人是滑动方块的抽象游戏来说还不错,但总体上来说更流畅的移动看起来更好。...现在,我们可以在生成时以及每次输入新的瓦片时旋转敌人。更新数据后,“From”瓦片为我们提供方向。 ? 3.5 改变方向 与其立即切换到新的方向,不如在旋转之间进行插值,就像在位置之间进行插值一样。...(缩放的范围设置为0.5-1.5) 4.3 路径偏移 要进一步破坏敌人流的均匀性,我们可以调整它们瓦片内的相对位置。它们向前移动,因此沿该方向偏移只会改变其移动时间,而不会增加太多。...由于路径偏移会在转弯时改变半径,因此我们必须调整如何计算进度系数。必须从½中减去路径偏移量才能获得右转弯的半径,并添加到左转弯的半径。 ? 现在,我们转180°时也会得到转弯半径。

2.3K10

CSS中的各种格式化上下文-FC(BFC、IFC、GFC、FFC)

是 W3CCSS2.1 规范中的一个概念。FC是指页面中一篇渲染区域,渲染区域内使用的格式化上下文的渲染规则,决定了该区域以及其子元素如何定位。...BFC的约束规则内部的BOX会在垂直方向上一个接一个的放置;垂直方向上的距离由margin决定。(完整的说法是:属于同一个BFC的俩个相邻的BOX的margin会发生重叠,与方向无关。)...,我们可以通过在网格容器(grid container)定义网格定义行(grid definition rows)和网格定义列(grid definition columns)属性各在网格项目(grid...item)定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。...伸缩容器中的每一个子元素都是一个伸缩项目。伸缩项目可以是任意数量的。伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox 定义了伸缩容器内伸缩项目该如何布局。

1.6K10

大地cgcs2000坐标系到wgs84坐标系,geobuilding图像配准之自由变换模式。

图像配准得到图像4点坐标,可以使用global mapper导出为瓦片。非常适合手绘彩图等转电子地图瓦片。...用户希望基于此图地图上绘制某县城的网格,他们从政府那里只能拿到图片。这张图的4个角注明cgcs2000经纬度信息。geobuilding的默认坐标系是wgs84。...那么如果把4个角的坐标转换成wgs84就可以使用【单影像】功能来绘制网格。但是2000坐标系到wgs84需要7个参数,而用户又没有7个参数。怎么办?...geobuilding《图像配准工具中》增加了自由变换模式。最终效果注意图像在正北正南方向不是矩形。(图像配准得到图像4点坐标,可以使用global mapper导出为瓦片。...【实战4】极速绘制地图网格,区划数据、无缝地理区块生成方法,自动吸附绘制,自动捕捉,线剪刀_哔哩哔哩_bilibili更多功能geobuilding投稿视频-geobuilding视频分享-哔哩哔哩视频

45230

Kubernetes安装和配置Istio:逐步指南,展示如何在Kubernetes集群中安装和配置Istio服务网格

在这期中,我们将聚焦于Kubernetes与Istio的结合,为你呈现如何在Kubernetes一步步安装并配置Istio服务网格。...对于那些正在寻找Kubernetes、Istio及服务网格 相关的热点话题的朋友们,你们找对地方了! 引言 随着微服务的盛行,服务网格技术如Istio已成为现代IT架构的关键组件。...准备Kubernetes集群 安装Istio之前,我们需要确保Kubernetes集群已经准备就绪。 kubectl get nodes 3....kubectl apply -f samples/addons/kiali.yaml 总结 通过本文,我们学习了如何在Kubernetes集群安装和配置Istio服务网格。...希望这篇文章能为大家实际工作中提供帮助。 参考资料 Istio官方文档 《Kubernetes与Istio实践指南》 《服务网格:深入理解Istio与微服务架构》

46010

走进地图(5)-矢量瓦片

一篇文章中提到了地图的瓦片,一般瓦片都是图片格式,但是3D Web地图下图片格式就无法更好的显示3D效果,这就出现在矢量瓦片(Vector Tiles)格式。...高清晰度和可伸缩性:矢量瓦片具有无限的分辨率,可以实现高清晰度的地图显示。无论是高分辨率屏幕还是缩放到细节层级,矢量瓦片都能提供清晰、锐利的地图效果。...动态样式化:使用矢量瓦片,开发者可以通过动态样式表对地图进行实时的样式化。这意味着可以根据数据属性、用户交互或其他条件来改变地图的样式,实现个性化的地图显示。...这使得用户可以地图上与数据进行更深入的交互和探索。 地理数据分析:矢量瓦片提供了客户端获取数据源,可以客户端直接进行数据分析。 实时可视化:矢量瓦片可以用于实时可视化地理数据。...GIS 分析和决策支持:矢量瓦片提供了客户端进行 GIS 分析和决策支持的能力。通过客户端执行空间查询、缓冲区分析、空间统计等操作,可以更高效地进行地理信息的分析和决策制定。

1.7K30

【软件开发规范七】《Android UI设计规范》

这些是纸片的魔法特性,真实纸片所不具备的能力: 纸片可以伸缩改变形状 纸片变形时可以裁剪内容,比如纸片缩小时,内容大小不变,而是隐藏超出部分 多张纸片可以拼接成一张 一张纸片可以分裂成多张 纸片可以在任何位置凭空出现...** 图片的文字 ** ​编辑 图片的文字,需要淡淡的遮罩确保其可读性。深色的遮罩透明度20%-40%之间,浅色的遮罩透明度40%-60%之间。 ​...编辑 ​编辑 网格由单元格构成,单元格中的瓦片用来承载内容 ​编辑 瓦片可以横跨多个单元格 瓦片内容包括主要内容(primary content)和次要内容(secondary content)...编辑 为瓦片内容提供一个默认图片。 网格只能垂直滚动。单个瓦片不支持滑动手势,也不鼓励使用拖放操作。 网格中的单元格间距是2dp或8dp。...行是瓦片(tiles)的容器。瓦片中存放内容,并且列表中可以改变高度。 如果列表项内容文字超过3行,请改用卡片。如果列表项的主要区别在于图片,请改用网格。 ​

4.9K20

使用Actor模型管理Web Worker多线程

线程的需求定位 Actor模型是什么以及为何它适用于Web Worker WebGL引擎的Actor模型+Web Worker的实践方案 WebGL引擎对Web Worker的需求定位 我们看到的电子地图实际是由一个个网格拼合起来...,这些网格叫做瓦片。...每个红色的网格就是一个瓦片瓦片中的数据其实是一个个坐标点以及POI信息(坐标、文案等),WebGL引擎的工作包括以下几种: 根据当前视野计算瓦片坐标; 从后台接口获取瓦片数据; 渲染。...这两项工作交给worker线程之后,主线程便可以将资源集中处理用户交互,从而提高用户体验。 上面说的都是前提和需求,接下来就讲一讲如何实践的,首先介绍今天另一位主角:Actor模型。...用户操作地图改变地图视野(bound)之后会触发WebGL引擎的重绘行为; 第一步是通过当前视野计算可见的瓦片坐标列表,如果需要新的瓦片则触发加载; tile_pyramid.ts调用分发器dispatcher.ts

1.1K10

特斯拉Dojo超算架构细节首次公开!为自动驾驶「操碎了芯」

最近,特斯拉Hot Chips 34会议,披露了大量关于Dojo(道场)超级计算架构的细节。...每个DIP都有32GB的HBM,最多可以将五个这样的卡以900GB/s的速度连接到一个训练瓦片,以达到4.5TB/s的总量,每个瓦片共有160GB的HBM。...AI训练和推理芯片中,一种常见的技术是将内存与计算共置,以最大限度地减少数据传输,因为从功率和性能的角度来看,数据传输非常昂贵。 节点内存 然后每个节点都连接到一个2D网格。...First Integration Box D1 模具 这些D1芯片被封装在一个道场训练瓦片。D1芯片经过测试,然后被组装成一个5×5的瓦片。这些瓦片每个边缘有4.5TB/s的带宽。...二次集成箱Dojo训练瓦片 Dojo的接口处理器位于2D网格的边缘。每个训练块有11GB的SRAM和160GB的共享DRAM。 Dojo系统拓扑 以下是连接处理节点的2D网格的带宽数据。

57930

基于 WebGL实现自定义栅格图层踩坑实录

先看看没有任何处理的情况下如何绘制纹理,我们绘制瓦片的基本顶点模型是一个中心原点的正方形,对于每个顶点坐标,需要映射到一个纹理坐标(下图左),传给片元着色器,再使用 texture2D() 取纹理像素..._2D, 0, x, y, gl.RGBA, gl.UNSIGNED_BYTE, image); 这个接口用于改变纹理中指定子区域的数据,可以类比于 CanvasRenderingContext2D.drawImage...w=836&h=708&f=png&s=34831] 瓦片在屏幕显示出来是上下颠倒的,且这种情况只出现在chrome/firefox里,因为在这两个浏览器中我们使用了 createImageBitmap...不论是 canvas 里绘制2d图像,还是 WebGL 中创建纹理,当使用图像时浏览器会把图像做一次解码(decode)处理。...小结 UNPACK_FLIP_Y_WEBGL 参数用于设置纹理像素存储模式中是否将Y轴翻转,翻不翻取决于你的顶点模型的坐标系方向,适合自己就好。

1.1K71

CSS进阶03-定位体系,格式化上下文,常规流

用户代理会将根元素的 position 视为 static 。...BFC拥有如下特性: 内部的Box会在垂直方向,从顶部往下一个接一个地放置。 Box垂直方向的距离由margin决定。...我们可以通过在网格容器(grid container)定义网格定义行(grid definition rows)和网格定义列(grid definition columns)属性各在网格项目(grid...item)定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。...伸缩容器中的每一个子元素都是一个伸缩项目。伸缩项目可以是任意数量的。伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox定义了伸缩容器内伸缩项目该如何布局。

1.7K10

NASA数据集—— 1987-2012 年期间北极极地脆弱性实验(ABoVE)核心域中火灾数据集

绘制的干扰因子来自 164 个 ABoVE 瓦片的专题成像仪 (TM) 和增强型专题成像仪 (ETM+) 观测数据。...文件名为 BhXXvZZ_variable.ext,其中 XX 是 ABoVE 中等分辨率(B 单元)参考网格的水平瓦片位置、 ZZ 是 ABoVE 中等分辨率(B 单元)参考网格的垂直瓦片位置、...中,并被划分为 180 千米 x 180 千米的 ABoVE 标准 B 网格瓦片(Loboda 等,2017 年)。...这项工作处理了 ABoVE 核心域的 164 个 B 网格瓦片,创建了 30 年的时间序列(Zhu 等人,2015 年)。...断点是像素光谱特征时间的突然变化,表明土地覆被发生了变化(图 2)。 1985 年至 2020 年三个像素的陆地卫星时间序列。

3700

从零打造一个Web地图引擎

,原点在经纬度都为0的位置,也就是中间,向右为X正方向,向上为Y正方向 谷歌和TMS的瓦片区别可以通过该地址可视化的查看: 虽然规范不同,但原理基本是一致的,都是把地球投影成一个巨大的正方形世界平面图,...坐标系简介 地图使用的是GCJ-02坐标系,也称火星坐标系,由中国国家测绘局02年发布,是GPS坐标(WGS-84坐标系)基础经加密后而来,也就是增加了非线性的偏移,让你摸不准真实位置,为了国家安全...(画布默认原点为左上角,x轴正方向向右,y轴正方向向下),也就是把中心经纬度作为坐标原点,那么中心瓦片的显示位置就是这个差值。...,不停重绘造成是移动的视觉假象。...知道原因就简单了,首先我们加个缓存对象,因为拖动过程中,很多瓦片只是位置变了,不需要重新加载,同一个瓦片加载一次,后续只更新它的位置即可;另外再设置一个对象来记录当前画布应该显示的瓦片,防止不应该出现的瓦片渲染出来

3.7K10

RenderingNG中关键数据结构及其角色

布局之后,每个片段都变得不可改变Immutable,不再被改变。 还设置了一些额外的限制。...这告诉我们它在屏幕的位置以及如何绘制它。...❝合成器帧是RenderingNG表示如何将栅格化的内容「拼接」在一起,并使用GPU有效地绘制它的数据格式 ❞ 瓦片Tile 理论,渲染进程或浏览器进程中的合成器compositor可以「将像素栅格化为渲染器视口的单一纹理...相反,「视口被划分为瓦片Tile」。 ❝一个「单独」的GPU纹理瓦片为每个瓦片提供了视口部分的光栅化像素 ❞ 然后,渲染器可以更新单个瓦片,甚至只是改变现有瓦片在屏幕的位置。...❞ 例如,内容瓦片有一个变换,表示它们瓦片网格中的x、y位置。 这些栅格化的瓦片被包裹在「一个渲染通道」中,它是一个「quad」的列表。

1.9K10
领券