Earth in Google maps: rendering trillions of triangles in JavaScript

Janne Kontkanen, Evan Parker
{"title":"Earth in Google maps: rendering trillions of triangles in JavaScript","authors":"Janne Kontkanen, Evan Parker","doi":"10.1145/2614106.2614194","DOIUrl":null,"url":null,"abstract":"JavaScript is not typically associated with high performance rendering. This talk covers techniques that were used to bring the massive data set of Google Earth into a web browser using standard JavaScript and WebGL. The client has access to a 3d model of the entire world, an ever-growing data set stored in servers, and the client needs to fetch and display any views (see Figures 1 and 2) of it very quickly with a limited memory budget of few tens of megabytes. The total data set, on the other hand is measured in trillions of triangles and their associated textures. The talk describes the hierarchical subdivision and the data layout used to manage this complexity. Level-of-detail mechanisms are used to render objects at different scales and to provide a quick preview when high resolution data is still loading. The unpredictable network bandwidth and latency pose additional challenges. The talk describes the algorithm used to decide which data should be 1) requested, 2) evicted, 3) kept in memory, or 4) rendered. Rendering of map elements such as roads and labels is more challenging in 3d than on a 2d map. The talk describes techniques that were used to render vectors and labels quickly at right location on the surface of the 3d terrain. JavaScript was not originally designed for high performance realtime use. For instance, the garbage collector may kick in at any point pausing the execution for tens of milliseconds. The talk describes the memory management techniques used to avoid this. To optimize for stable frame-rate and quick load time, tasks have to be carefully scheduled such that data processing and rendering can happen seemingly at the same time. The talk describes how the work was scheduled in the main execution thread and in Web Workers. To make the Earth appear realistic, atmospheric attenuation needs to be modeled accurately. The talk describes how the atmosphere and the real-time clouds are rendered.","PeriodicalId":118349,"journal":{"name":"ACM SIGGRAPH 2014 Talks","volume":"457 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-07-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGGRAPH 2014 Talks","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2614106.2614194","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

Abstract

JavaScript is not typically associated with high performance rendering. This talk covers techniques that were used to bring the massive data set of Google Earth into a web browser using standard JavaScript and WebGL. The client has access to a 3d model of the entire world, an ever-growing data set stored in servers, and the client needs to fetch and display any views (see Figures 1 and 2) of it very quickly with a limited memory budget of few tens of megabytes. The total data set, on the other hand is measured in trillions of triangles and their associated textures. The talk describes the hierarchical subdivision and the data layout used to manage this complexity. Level-of-detail mechanisms are used to render objects at different scales and to provide a quick preview when high resolution data is still loading. The unpredictable network bandwidth and latency pose additional challenges. The talk describes the algorithm used to decide which data should be 1) requested, 2) evicted, 3) kept in memory, or 4) rendered. Rendering of map elements such as roads and labels is more challenging in 3d than on a 2d map. The talk describes techniques that were used to render vectors and labels quickly at right location on the surface of the 3d terrain. JavaScript was not originally designed for high performance realtime use. For instance, the garbage collector may kick in at any point pausing the execution for tens of milliseconds. The talk describes the memory management techniques used to avoid this. To optimize for stable frame-rate and quick load time, tasks have to be carefully scheduled such that data processing and rendering can happen seemingly at the same time. The talk describes how the work was scheduled in the main execution thread and in Web Workers. To make the Earth appear realistic, atmospheric attenuation needs to be modeled accurately. The talk describes how the atmosphere and the real-time clouds are rendered.
谷歌地图中的地球:在JavaScript中渲染数万亿个三角形
JavaScript通常不与高性能呈现相关联。本演讲涵盖了使用标准JavaScript和WebGL将Google Earth的海量数据集带入web浏览器的技术。客户端可以访问整个世界的3d模型,这是存储在服务器中的不断增长的数据集,客户端需要非常快速地获取和显示它的任何视图(参见图1和2),内存预算有限,只有几十兆字节。另一方面,总的数据集是用数万亿个三角形及其相关纹理来测量的。该演讲描述了层次细分和用于管理这种复杂性的数据布局。细节级别机制用于渲染不同比例的对象,并在高分辨率数据仍在加载时提供快速预览。不可预测的网络带宽和延迟带来了额外的挑战。该演讲描述了用来决定哪些数据应该被1)请求,2)驱逐,3)保存在内存中,或4)呈现的算法。在3d地图中渲染道路和标签等地图元素比在2d地图中更具挑战性。该演讲描述了用于在3d地形表面的正确位置快速渲染向量和标签的技术。JavaScript最初并不是为高性能实时使用而设计的。例如,垃圾收集器可能在任何时候启动,暂停执行数十毫秒。该演讲描述了用于避免这种情况的内存管理技术。为了优化稳定的帧率和快速的加载时间,必须仔细安排任务,使数据处理和呈现看起来可以同时发生。该演讲描述了如何在主执行线程和Web Workers中调度工作。为了使地球看起来真实,需要精确地模拟大气衰减。该演讲描述了大气和实时云是如何渲染的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信