google body - the khronos group inc · the challenge haves: 740k verts, 1.4m tris, >1800...
TRANSCRIPT
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 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
The team
Engineering: Arthur Blume, Won Chun, David Kogan, Vangelis Kokkevis, Rachel Weinstein-Petterson
Product: Roni Zeiger