KEMBAR78
3D on the Web in 2011 | PPTX
3D on the Web in 2011Chad AustinTechnical Director, IMVU
Who is Chad?Iowa State, 2005M.S. Human Computer InteractionRenaissance, a functional shading languageIMVU, 2005-Present
What is IMVU?Mass market 3DWorld’s largest virtual catalog: 6 million items	7000 new items every day50 million registered users50,000 of which created content in last monthDownloadable client...
IMVU likes 3D, so what?Tasteful, responsive UITransitions60 Hz animationGPGPUHarness local processing power from web pages
Today’s AgendaGPUsWebGLFlash 11Unity3DSilverlight 5Native ClientTrends and Unsolved Problems
CaveatNew and changingCan you teach me?
GPU
Graphics ProcessorsVector math accelerators external to CPUOften with separate memory~Every computer has a GPU in some formLimited API accessDirect3D & OpenGLStarting to see OpenCL, CUDA, DirectCompute…Wildly different internal architectures
History of Consumer 3D<1999: OpenGL, Direct3D, niche APIs2000: Direct3D 7 – “fixed function”, multitexturing2001:Direct3D 8 – limited programmability2003: Direct3D 9 – general programmability2011: finally on the web!
Modern GPUsBuffers of data…textures, vertex arrays… and code that runs on themVertex shaders, pixel shaders
Modern GPUs (con’t)
ShadersSmall programs:Input:Vertex attributesTexturesOutput:Pixels on screenSyntax varies across platforms	But same basic functionality
Today’s MarketUnity hardware surveySteam hardware surveyIMVU experiences
Today’s Market (con’t)shader model 2.0!8 textures8 vec4f vertex attributes (wish it were 16…)decent number of shader instructions
What’s missing?Vertex texture fetchGeometry shadersGamma?
Survey
WebGL
WebGLJavaScript access to OpenGL ES 2.0Fully programmableComposites into HTML on page
WebGL Demoshttp://www.nihilogic.dk/labs/worlds_of_webgl/http://o3d.googlecode.com/svn/trunk/samples_webgl/o3d-webgl-samples/pool.htmlhttp://www.ro.me/
WebGL, con’tUses ANGLE on WindowsHardware and driver blacklist
WebGL Unsolved ProblemsNo Safari (yet)No iOS(yet)Device ubiquity?Example: GMA 950Content storageFullscreenInput handling
Flash 11
Flash 11Stage3DExposes GPU capabilities to ActionScriptCustom shader language: AGAL
AGAL examplehttp://pixelante.com/index.php?b=ambient_and_color_lighting_molehill_agal_flash_tutorial
Flash 11 Demoshttp://alternativaplatform.com/en/demos/maxracer/http://molehill.zombietycoon.com/
Flash 11, con’tExpect widespread deploymentAutomatic software fallbackDriver blacklistGPU not capable of shadersWindowless?
Flash 11 DownsidesActionScriptLow shader limits8 vertex attributes8 temporariesno vertex texture fetchMobile...?
Unity3D
Unity3DWeb plugin, iOS, Wii, PlayStation 3, Xbox 360Custom graphics engineBuilt-in visual effectsScene graphArt pipelineBuilt-in asset storeRuns on older hardware if necessary
Unity3D demohttp://unity3d.com/gallery/live-demos/tropical-paradise
Unity3D downsidesNo windowless modeCommercial softwareNo LinuxRequires plug-in (10% installed, 70% install rate)Does not fully expose hardware
Silverlight
Silverlight 5Integration with XNA 4Limited to “Reach” profile, shader model 2.0Demo: http://www.youtube.com/watch?v=RDIeijJkV14
Native Client
Native ClientGoogle’s in-browser, secure native code engineAvailable in Chrome todayWrite programs in C++, run them on the webExposes OpenGL ES 2.0 if supportedRemember ANGLE?
Native Client DownsidesNo cross-browser plansTeething pains
Trends & Open Questions
Betting time!Short-term: Flash 11Long-term: WebGL
Security3D drivers suckRarely updatedCrashesSecurity problems3D on the web exposes all of the aboveDriver blacklistsImportant: this is a solvable problem
Trends3D is here to stayI expect a killer app Very Soon Now
Thank you! Questions?chad@imvu.com@chadaustinhttp://engineering.imvu.comWe’re hiring!http://www.imvu.com/jobs

3D on the Web in 2011