google body - the khronos group inc · the challenge haves: 740k verts, 1.4m tris, >1800...

13
Google Body Vangelis Kokkevis Google

Upload: hoangthuy

Post on 08-Jun-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Google BodyVangelis Kokkevis

Google

The launch

20% project: 5 engineers, 1 PM

Launched on Dec 16, 2010 at: bodybrowser.googlelabs.com

Traffic: lots!!

The application

All static content (HTML, JS and data)

WebGL for rendering, Google Closure for UI

Development environment:

Dev: Python server + uncompiled JS

Release: Compiled JS

The challengeHaves:

740K verts, 1.4M tris, >1800 distinct entities

Wants:

Small file size, fast client-side decompression

Fast rendering, small number of draw calls

Individually identifiable entities

The pipeline

Data Converter & Compressor

JSON metadata

compressedgeom data Textures

The data format

Meshes grouped by texture to minimize # of draw calls (63 draw calls for all 1800+ entities)

Index and attribute arrays merged (max 65K verts)

JSON meta data stores offset and length per entity

16-bit fixed point for pos, normal, texcoords

The sizesTotal COLLADA (ASCII) file size: 87.5MB

Raw binary size: 32MB (16-bit attribs)

Body compressed size: 9MB

~ 3.5 : 1 vs binary

~ 6 bytes / triangle

Texture size: 40MB

Click-to-SelectWe draw each (visible) entity with a different color into an FBO

Colors are stored per vert in an attribute buffer constructed at load time

Call readPixels() to read offscreen buffer contents. Match color at clicked location with entity

Selection FBO

Playing with shaders

The team

Engineering: Arthur Blume, Won Chun, David Kogan, Vangelis Kokkevis, Rachel Weinstein-Petterson

Product: Roni Zeiger

bodybrowser.googlelabs.com