Tamic 开发社区
更多文章请点击: //www.greatytc.com/users/3bbb1ddf4fd5/latest_articles
“纸飞机”,刚开始只是一个简单的想法- “能从一个屏幕扔个纸飞机到另一个屏幕”
提出这个想法人的核心理念是利用网络的力量(即时通讯)把到世界各地所有人连接到一起。在现代网络技术,特别是JavaScript和WebGL的发展,可以让纸飞机实现到每个屏幕上。
纸飞机最初是 2016年的在谷歌I / O大会上提出的,与会者和观众可以提前30分钟连接。在2016年国际和平日公众推出,谷歌开发者做一个Android的实验,这也是谷歌特色的播放功能-具有原生的Android7.0的功能,譬如当飞机在其他地方被收到后,能及时丰富的以通知形式呈现。
介绍
用户可以创建并同时增加自己设计好填充颜色的飞机。一个简单的动作就可以把飞机投射到虚拟世界。用户通过访问Pc版网站就会看到飞机飞入画面。
之后,用户就可以查看,看看他们的飞机飞到世界各地。飞机上的每枚邮票(ip mac地址等)读起来就像一本护照,以及可以看到3D的地球中飞行路线和距离。
除了让自己的飞机飞出去,用户可以通过手势就像一张网捕捉已扑捉其他地方飞来的飞机,并可以进入虚拟现实打开它,标明自己已参观过飞机。然后可以添加自己邮票,并把飞机重飞到飞机群。
WebView
开发纸飞机必须跨设备,使用最新网络技术从50寸的谷歌桌面到其他移动设备。
- WebGL
从程式化的多边形地球表面,WebGL是用来渲染3D元素的技术。用自定义GLSL着色器 照亮渲染地球,用可变形的坐标作实现用户打开关闭纸张的动画。
WebSockets
当用户“抛出飞机”,这时会发送消息到WebSockets,这样消息就被传递到所有的台式电脑,这样可以看到可视化的飞机。
WebWorkers
主线程WebWorkers主要采用多线程来计算地球表面的每个WebGL呈现的元素。
为了创建跨平台的伟大工程,,谷歌开发者扩展了原生的Android代码。这使得他们能够利用网页中的Android,将已经存在的网页代码的应用到app中,同时加入和操作系统深度整合过的丰富的通知和后台服务。
有兴趣的可以直接看纸飞机demo: https://github.com/activetheory/Paper-Planes-Android-Experiment
Notifications
Firebase 云服务(FCM)用于推送通知到Android应用程序。当用户的飞机已经被用户拿起来甩,就会很多城市,并且显示已行驶的里程。并发控制的的通知管理器,以确保它们不会过于频繁到推送到android设备。
后台 Service
谷歌开发者实现了每天一次检查本地存储的一个后台服务,以确定当用户在上次运行app访问后。如果用户在两周内没有访问,应用程序将会发送通知,邀请用户启动并打开该应用的一个页面。
通信网
应用服务器部署到谷歌云平台的网络上运行。将连接所有设备上,使用内置的地理编码的头以获取IP(用户唯一标识符)和Socket.IO 获取大致地理位置。
用户连接到服务器后,可以用任何设备查看该地区飞机记录。
期待谷歌关于Vr的更多飞跃……
如果喜欢 请继续关注!