WebGL

Web上的MediaPipe

拟墨画扇 提交于 2020-08-17 06:22:27
由MediaPipe团队的Michael Hays和Tyler Mullen发布 MediaPipe 是用于构建跨平台多模式应用ML管道的框架。我们之前已经演示了如何 在移动设备(Android,iOS) 和 边缘设备(例如Google Coral ) 上 以MediaPipe图形的形式构建和运行ML管道。在这篇文章中,我们很高兴现在 MediaPipe图表 运行住在Web浏览器中,通过WebAssembly启用并加速 XNNPack ML推理库 。通过将此预览功能集成到我们基于Web的Visualizer工具中,我们提供了一个游乐场,可以快速迭代图形设计。由于所有内容都直接在浏览器中运行,因此视频永远不会离开用户的计算机,并且每次迭代都可以在实时网络摄像头流(以及很快的任意视频)上立即进行测试。 图1显示了在Visualizer中 运行MediaPipe人 脸检测示例 MediaPipe可视化器 MediaPipe Visualizer(参见图2)位于 viz.mediapipe.dev 。可以通过将图形代码粘贴到“编辑器”选项卡中或将图形文件上传到可视化器中来检查MediaPipe图形。用户可以使用鼠标和滚轮来平移和放大图形的图形表示。该图形还将实时响应编辑器中所做的更改。 图2托管在 https://viz.mediapipe.dev的 MediaPipe

Cesium快速开始

ⅰ亾dé卋堺 提交于 2020-08-16 06:42:23
准备开始 本教程将让所有开发人员学会Cesium应用程序运行和并提高水平。 确保你的浏览器已经准备好了 验证Cesium在web浏览器中工作的最简单方法是通过 点击这里 ,运行Hello World示例(打开一个新窗口)。如果你看到下面的图片,恭喜你,你的系统可以运行Cesium,你可以安全地跳到下一节;否则,继续阅读。 Cesium是建立在几种新的HTML5技术上的,其中最重要的是 WebGL 。尽管这些新标准很快被广泛采用,但一些浏览器和系统需要更新以支持它们。如果示例应用程序不适合您,这里有一些需要尝试的东西。 更新您的web浏览器。大多数Cesium团队使用谷歌Chrome,但火狐、Internet Explorer 11和Opera也将工作。如果您已经使用了上述浏览器中的一个,请确保它已更新到最新版本。 更新你的显卡驱动,以更好地支持3D。如果你知道你有什么类型的视频卡,你可以检查供应商网站进行更新。最受欢迎的三个是: Nvidia , AMD , 和 Intel 。 如果您仍然有问题,请尝试访问 http://get.webgl.org/ ,它提供了额外的解决问题的建议。你也可以在 Cesium forum (论坛)上寻求帮助。 选择编辑器或IDE 如果您已经是一个经验丰富的开发人员,那么您很可能拥有一个最喜欢的编辑器或开发环境;例如,大多数铯团队都使用 Eclipse

canvas锥形渐变进度条

北慕城南 提交于 2020-08-15 15:59:08
从一个渐变圆角进度条浅出画一个圆 开始 这一切需要从一个(简单)的需求开始,在最开始对设计第一眼看到这张图的时候,感觉挺简单的嘛,直接用echarts饼图模拟出来一个就好了 echarts 然后上echarts试了一下发现实现不出来了 设计图这边采用的是锥形渐变,而echarts只有线性渐变和径向渐变。 css 然后准备换种方案,css就有锥形渐变,然后通过conic-gradient加上mask画出了一个 渐变的环形 然后可以再通过剪裁实现出进度的展示。 但是存在两个问题,一个是conic-gradient属性兼容性不好ie和火狐都不支持,二个是后来发现了还存在一个需求进度条的两端需要有圆角,然后这种实现方式就不行了。 其实在写这篇文章的时候才想到一个方法就是在两端加上两个半圆形,不过得计算半圆形的位置。 Canvas & SVG 在我的理解中在页面上作图总共有四种方式。 dom+css Canvas SVG WebGL WebGL是一头雾水还是试试Canvas和SVG吧,因为更熟悉Canvas一些,我这边就采用Canvas来试试。 Canvas可以轻松的实现 圆角和环形 ,但是他的api里面居然没有锥形渐变 然后就想着尝试手动来实现一个锥形渐变,然后查阅资料看到了一篇文章 手把手教你画圆锥渐变 ,就是相当于画圆嘛,我们可以通过一条线一条线的画从而画出一个圆

1分钟教你完美解决地图开发中WebGL着色器32位浮点数精度损失问题

放肆的年华 提交于 2020-08-15 15:53:39
以下内容转载自木的树的文章《WebGL着色器32位浮点数精度损失问题》 作者:木的树 链接: https://www.cnblogs.com/dojo-lzz/p/11250327.html 来源:博客园 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 前言 Javascript API GL 是基于WebGL技术打造的3D版地图API,3D化的视野更为自由,交互更加流畅。 提供丰富的功能接口,包括点、线、面绘制,自定义图层、个性化样式及绘图、测距工具等,使开发者更加容易的实现产品构思。 充分发挥GPU的并行计算能力,同时结合WebWorker多线程技术,大幅度提升了大数据量的渲染性能。最高支持百万级点、线、面绘制,同时可以保持高帧率运行。 同步推出基于Javascript API GL的 位置数据可视化API库 ,欢迎体验。 问题 WebGL浮点数精度最大的问题是就是因为js是64位精度的,js往着色器里面穿的时候只能是32位浮点数,有效数是8位,精度丢失比较严重。 分析 在基础底图中,所有的要素拿到的都是瓦片里面的相对坐标,坐标范围在0-256之间。在每次渲染时都会重新实时计算瓦片相对中心点的一个偏移来计算瓦片自己的矩阵,这种情况下精度损失比较小,而且每个zoom级别都会加载新的瓦片,不会出现精度损失过大问题。 但是对于一些覆盖物,比如marker

详解Canvas动画部分

会有一股神秘感。 提交于 2020-08-15 14:38:13
基础篇: Html5中Canvas绘制、样式详解(不包含动画部分) 此篇为后续 目录 1. 状态的保存和恢复 2. translate移动 3. 旋转Rotating 4. 缩放Scaling ​ 5. 图形相互交叉显示规则 6. 裁切路径 7. 动画基本步骤 8. canvas相关的动画js框架 1.状态的保存和恢复 save() 保存画布(canvas)的所有状态 restore() save 和 restore 方法是用来保存和恢复 canvas 状态的,都没有参数。Canvas 的状态就是当前画面应用的所有样式和变形的一个快照。 Canvas状态存储在栈中,每当save()方法被调用后,当前的状态就被推送到栈中保存。一个绘画状态包括: 当前应用的变形(即移动,旋转和缩放,见下) 以及下面这些属性:strokeStyle, fillStyle, globalAlpha, lineWidth, lineCap, lineJoin, miterLimit, lineDashOffset, shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor, globalCompositeOperation, font, textAlign, textBaseline, direction, imageSmoothingEnabled

Unity周记: 2020.07.06-07.12

走远了吗. 提交于 2020-08-13 19:54:15
1. YouTube - Unity a. Improve your animation workflow with Animation Rigging | Unite Now 2020 ( YouTube ) ( Bilibili )   Unity 2020.1的新功能Animation Rigging介绍 b. Making a flag wave with Shader Graph | Unite Now 2020 ( YouTube ) c. Making a Water Shader in Unity with URP! (Tutorial) ( YouTube ) ( Bilibili ) ( Bilibili官中 )    以上两部都是ShaderGraph教学 d. Optimization tips for maximum performance - Part 2 | Unite Now 2020 ( YouTube ) e. Optimization tips for maximum performance – Part 1 | Unite Now 2020 ( YouTube )    性能优化 f. Empowering Storytellers with Real-Time Technology | CG Animation & Film -Unite

Unity2019在WebGL下播放视频

戏子无情 提交于 2020-08-13 17:55:25
Unity2019自带的VideoPlayer组件,可以直接通过URL地址播放视频。设置URL地址即可。 如果要播放本地视频,推荐将视频放置在StreamingAssets目录下,StreamingAssets目录和在安卓平台一样,不会被打包。 通过下面的代码,即可对url进行赋值,而且,在Editor编辑器下也可以正常使用。 video . url = Path . Combine ( Application . streamingAssetsPath , "birds.mp4" ) ; video . Play ( ) ; 不过要注意的是,通过Path.Combine获取的路径,是"http://XXX/StreamingAssets\birds.mp4",后面路径的分割符号是"",应该不会有太大问题,如果有兼容问题的话,就直接字符串拼接即可。 另外,如果在WebGL下页面刷新以后直接播放视频,会提示 Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first. 这个发现是因为直接刷新后,如果没有点击过Unity的内容,或者说,Unity的内容没有获取焦点的话,就会有这个提示。启动过程中随便点一下

微信小程序之threejs全景

六月ゝ 毕业季﹏ 提交于 2020-08-13 11:44:16
最近在开发小程序,身心疲惫,原因是功能和app相同,我裂开了。 各种封装组件,各种写页面,不过有个好处是以前写的h5拿来改一下标签,基本上还是ok的,就剩下最后几个功能,其中就有一个VR全景功能。 移动端倒是好做,上次做了大概2天就搞定了,原理就是threejs用css3做图片的旋转,具体例子可以参照 https://threejs.org/examples/css3d_panorama.html 不过多描述,下面进入今天的主角:在微信小程序中使用threejs实现VR全景功能。 刚开始想到这个功能,我是拒绝的,这简直就是要了我的头发啊,没办法,谁叫我走上开发这条不归路呢,自己选的路,秃头也要走完。。 那就硬着头皮开始吧,先百度搜了一下在小程序中使用threejs,找到一篇比较干货的文章 https://developers.weixin.qq.com/community/develop/article/doc/00066c4b230b085051592292f5bc13 ,这篇文章作者把threejs给提炼出来了一个小程序版本, 照着他的demo先把canvas给搞出来先。然后再实现全景,怎么实现也是头疼的事情,怎么,我不会写,还不会改吗? 先看看以前h5的实现方式,采用CSS3DRenderer来实现,问题来了,小程序里面不支持dom的createElement,那咋整嘛

蒲公英 · JELLY技术周刊 Vol.17: 90 行代码实现 React Hooks

不羁岁月 提交于 2020-08-12 11:15:35
蒲公英 · JELLY技术周刊 Vol.17 React Hooks 相信大家都不陌生,自被设计出以来就备受好评,在很多场景中都有极高的使用率,其中原理更是很多大厂面试中的必考题,很多朋友都能够如数家珍。那么如何去用实现一个简单的 React Hooks 呢?或许大家都有各自的想法,但也不妨来看看文中所述的方案是如何构建的。 登高远眺 天高地迥,觉宇宙之无穷 基础技术 2020 Chrome DevTools 的新特性介绍 作为前端开发,与 Chrome 打交道是家常便饭,我们有必要了解 Chrome 调试工具的更新迭代,对日常开发和调试带来哪些帮助和改善。新 Chrome DevTools 集成了 lighthouse,并且在元素审查面板和性能面板都有一定程度的优化,本文还提供了相关特性的视频演示,非常易于理解学习。 浏览器的任务、微任务、队列和调度 浏览器里的事件循环(Event Loop)一直都是一个老生常谈的话题,社区里各种文章和资料也不少,但是你真的清楚事件循环里面的 tasks、microtasks、queues 这些概念以及他们的调度关系吗?本文是 Google Chrome 的开发人员 Jake Archibald 撰写的一篇博客,内容深入浅出,在任务调度及 JS 栈的部分还细心的绘制了 CSS 交互动画,最后还探讨了不同浏览器的差异以及相关规范的定义,非常值得一读

微信小程序之threejs全景

*爱你&永不变心* 提交于 2020-08-12 03:44:54
最近在开发小程序,身心疲惫,原因是功能和app相同,我裂开了。 各种封装组件,各种写页面,不过有个好处是以前写的h5拿来改一下标签,基本上还是ok的,就剩下最后几个功能,其中就有一个VR全景功能。 移动端倒是好做,上次做了大概2天就搞定了,原理就是threejs用css3做图片的旋转,具体例子可以参照 https://threejs.org/examples/css3d_panorama.html 不过多描述,下面进入今天的主角:在微信小程序中使用threejs实现VR全景功能。 刚开始想到这个功能,我是拒绝的,这简直就是要了我的头发啊,没办法,谁叫我走上开发这条不归路呢,自己选的路,秃头也要走完。。 那就硬着头皮开始吧,先百度搜了一下在小程序中使用threejs,找到一篇比较干货的文章 https://developers.weixin.qq.com/community/develop/article/doc/00066c4b230b085051592292f5bc13 ,这篇文章作者把threejs给提炼出来了一个小程序版本, 照着他的demo先把canvas给搞出来先。然后再实现全景,怎么实现也是头疼的事情,怎么,我不会写,还不会改吗? 先看看以前h5的实现方式,采用CSS3DRenderer来实现,问题来了,小程序里面不支持dom的createElement,那咋整嘛