IMVU Confidential
3D on the Web in 2011
Chad AustinTechnical Director, IMVU
IMVU Confidential
Who is Chad?
Iowa State, 2005M.S. Human Computer InteractionRenaissance, a functional shading language
IMVU, 2005-Present
IMVU Confidential
What is IMVU?
Mass market 3DWorld’s largest virtual catalog: 6 million items
7000 new items every day50 million registered users
50,000 of which created content in last monthDownloadable client...
IMVU Confidential
IMVU likes 3D, so what?
Tasteful, responsive UITransitions60 Hz animation
GPGPUHarness local processing power from web pages
IMVU Confidential
Today’s Agenda
GPUsWebGLFlash 11Unity3DSilverlight 5Native ClientTrends and Unsolved Problems
IMVU Confidential
Caveat
New and changingCan you teach me?
GPU
IMVU Confidential
Graphics Processors
Vector math accelerators external to CPUOften with separate memory
~Every computer has a GPU in some formLimited API access
Direct3D & OpenGLStarting to see OpenCL, CUDA, DirectCompute…
Wildly different internal architectures
IMVU Confidential
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!
IMVU Confidential
Modern GPUs
Buffers of data…textures, vertex arrays
… and code that runs on themVertex shaders, pixel shaders
IMVU Confidential
Modern GPUs (con’t)
IMVU Confidential
Shaders
Small programs:Input:
Vertex attributesTextures
Output:Pixels on screen
Syntax varies across platformsBut same basic functionality
IMVU Confidential
Today’s Market
Unity hardware surveySteam hardware surveyIMVU experiences
IMVU Confidential
Today’s Market (con’t)
shader model 2.0!8 textures8 vec4f vertex attributes (wish it were 16…)decent number of shader instructions
IMVU Confidential
What’s missing?
Vertex texture fetchGeometry shadersGamma?
SURVEY
WEBGL
IMVU Confidential
WebGL
JavaScript access to OpenGL ES 2.0Fully programmableComposites into HTML on page
IMVU Confidential
WebGL Demos
http://www.nihilogic.dk/labs/worlds_of_webgl/http://o3d.googlecode.com/svn/trunk/samples_webgl/o3d-webgl-samples/pool.htmlhttp://www.ro.me/
IMVU Confidential
WebGL, con’t
Uses ANGLE on WindowsHardware and driver blacklist
IMVU Confidential
WebGL Unsolved Problems
No Safari (yet)No iOS (yet)Device ubiquity?
Example: GMA 950Content storageFullscreenInput handling
FLASH 11
IMVU Confidential
Flash 11
Stage3DExposes GPU capabilities to ActionScriptCustom shader language: AGAL
IMVU Confidential
AGAL example
http://pixelante.com/index.php?b=ambient_and_color_lighting_molehill_agal_flash_tutorial
IMVU Confidential
Flash 11 Demos
http://alternativaplatform.com/en/demos/maxracer/http://molehill.zombietycoon.com/
IMVU Confidential
Flash 11, con’t
Expect widespread deploymentAutomatic software fallback
Driver blacklistGPU not capable of shaders
Windowless?
IMVU Confidential
Flash 11 Downsides
ActionScriptLow shader limits
8 vertex attributes8 temporariesno vertex texture fetch
Mobile...?
UNITY3D
IMVU Confidential
Unity3D
Web plugin, iOS, Wii, PlayStation 3, Xbox 360Custom graphics engine
Built-in visual effectsScene graphArt pipeline
Built-in asset storeRuns on older hardware if necessary
IMVU Confidential
Unity3D demo
http://unity3d.com/gallery/live-demos/tropical-paradise
IMVU Confidential
Unity3D downsides
No windowless modeCommercial software
No LinuxRequires plug-in (10% installed, 70% install rate)
Does not fully expose hardware
SILVERLIGHT
IMVU Confidential
Silverlight 5
Integration with XNA 4Limited to “Reach” profile, shader model 2.0Demo: http://www.youtube.com/watch?v=RDIeijJkV14
NATIVE CLIENT
IMVU Confidential
Native Client
Google’s in-browser, secure native code engineAvailable in Chrome todayWrite programs in C++, run them on the webExposes OpenGL ES 2.0 if supported
Remember ANGLE?
IMVU Confidential
Native Client Downsides
No cross-browser plansTeething pains
TRENDS & OPEN QUESTIONS
IMVU Confidential
Betting time!
Short-term: Flash 11Long-term: WebGL
IMVU Confidential
Security
3D drivers suckRarely updatedCrashesSecurity problems
3D on the web exposes all of the aboveDriver blacklists
Important: this is a solvable problem
IMVU Confidential
Trends
3D is here to stayI expect a killer app Very Soon Now
IMVU Confidential
Thank you! Questions?
[email protected]@chadaustin
http://engineering.imvu.com
We’re hiring!http://www.imvu.com/jobs