谷歌身体是如何加载如此快速的?

8

http://bodybrowser.googlelabs.com/

我知道他们数据来源,即使是实时使用,这些网格和纹理也通常有数百KB甚至几MB。即使是低分辨率,我也很难想象他们如何在加载1秒内完成工作... 我看到一些纹理流动的证据,如果我立即切换到不同的层,则能够及时下载多边形已经让人印象深刻。

他们是通过超低多边形数量或者智能渐进式加载来实现这一点的呢?


我刚刚检查了一下,第一次访问时它加载了几兆字节,然后在浏览时由浏览器缓存(放大等操作时没有流量),即使重新加载也是如此。对我来说,纹理似乎并不是很高质量。你确定数据那么大吗? - Martijn
几兆字节的数据仍需要相当长的时间才能加载,即使在我的宽带上,最好的情况也只能达到1兆字节/秒。也许他们的数据已经从原始数据中大幅度压缩:http://www.3dscience.com/client_highlights/Google.php - Mr. Boy
2个回答

6

谷歌为了加快初始页面加载和提高性能所做的一些技巧包括:增量数据压缩、限制数字精度和纹理图集。

缓存头只有在后续访问中才有助于进一步减少加载时间。

为了提高渲染速度(它会影响加载时间,因为它与加载同时进行),他们还使用其他基本技巧,如顶点数组聚合、顶点数组交错和GL状态排序。

Google I/O 2011: WebGL技术和性能: http://www.youtube.com/watch?v=rfQ8rKGTVlg

WebGL Camp #3上的Google Body演示: http://www.youtube.com/watch?v=vsHHNClzJPg


3
这都是缓存操作的魔法啦。我在我的游戏中也使用了这种方法来加速模型、纹理和音频的加载。他们的缓存控制头是: Cache-Control:public, max-age=31536000 这告诉浏览器在一整年内保留所有数据,而无需重新验证缓存(直到一整年过去,浏览器与服务器之间甚至没有一次往返)。
在我的宽带上,从冷启动缓存下载23.89 MB需要2.3分钟。如果您想要,我可以发布Chrome HAR文件,以便您可以详细检查所有我的加载时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接