OpenGL ES in theOpenGL ES in the Mobile Graphics...
Transcript of OpenGL ES in theOpenGL ES in the Mobile Graphics...
OpenGL ES in theOpenGL ES in theMobile Graphics p
EcosystemTom Olson
OpenGL ES working group chairDi t G hi R h ARM LtdDirector, Graphics Research, ARM Ltd
1
Outline
Why Mobile Graphics?
OpenGL ES Overviewp
G S O G SGetting Started with OpenGL ES
Conclusion
2
Why Mobile Graphics?
Mobile graphics is growing quicklyEmbedded platforms will eventually outnumber desktops
Factors driving the trendDemand: Consumers want itTechnology: Displays, GPUs, CPUs, batteries, memoryStandards: Operating systems, APIs
and the commercial infrastructure is emerging - the rise of open
3
… and the commercial infrastructure is emerging the rise of open distribution channels is creating a market for applications
What is OpenGL ES?OpenGL ES is the dominant C/C++ API for Mobile 3D
Products from every major mobile phone manufacturerMoving rapidly into other mobile and embedded devicesg p y
Available for (or a standard part of) most mobile OSesSymbianSymbianMac OS X on iPhoneLinux: Maemo, Android, etcBREWWindows Mobile / WinCEPalm OS
Over 54 million hardware-accelerated OpenGL ES platforms have shipped to date. Many more are coming.
4
have shipped to date. Many more are coming.
OpenGL ES FeaturesBased on desktop OpenGL
Leverages the OpenGL ecosystem Extensible to allow innovation / evolutionExtensible to allow innovation / evolution
Optimized for mobile devicesGets rid of redundancy & rarely-used featuresAdds mobile-friendly data types
Full-FeaturedAll the most used desktop features are available
OpenGL ES gives you the power of OpenGL in a much smaller package
5
smaller package
OpenGL ES Versions
OpenGL ES 2 0
OpenGL 1.3 OpenGL 1.5 OpenGL 2.x OpenGL 3.x
OpenGL ES HaltiOpenGL ES 2.0
OpenGL ES 1.0 OpenGL ES 1.1
OpenGL ES Halti
OpenGL ES Versioning ModelOpenGL ES design philosophy is to minimize redundancyWhen new versions add better methods, old methods are droppedNote the difference from desktop GL!
OpenGL ES VersionsOpenGL ES 1.x: fixed function graphics
6
OpenGL ES 2.0: shader based graphics
OpenGL ES 1.1Key Features
Vertex Arrays / Vertex Buffer ObjectsFull Transform & (almost) LightingFull Transform & (almost) LightingMultitexturing (min 2 units)DOT3 bump mappingFixed Point & Float profiles
Features RemovedBegin / EndColor Index ModeImaging SubsetQuads/Polygons
7
Quads/Polygons
OpenGL ES 2.0Key Features
Vertex / fragment shadersRemoves fixed function pipelineRemoves fixed function pipelineHigh level language (GLSL ES 1.0)On-line or off-line compilationSuper-compact, efficient API
Advanced Feature SetEight attribs / varyings / texturesCube MapsDependent texture readsFramebuffer Objects
8
What comes next?Working group is committed to supporting OpenGL ES 2.0
Working actively on conformance testing programOngoing projects to improve documentation, tools, ecosystemg g p j p , , y
But, work has begun on OpenGL ES ‘Halti’
Tentative GoalsMaintain compatibility with OpenGL ES 2.0Minimize / reduce differences from desktop OpenGL
Working closely with OpenGL ARBNote similarity of OpenGL ES 2.0 to non-deprecated subset of y p pOpenGL 3.0
Improve driver efficiencyAdopt the most modern / advanced features from OpenGL
9
p p
Getting Started: Information
Khronos.orgNe s http // khronos orgNews: http://www.khronos.orgKhronos OpenGL ES API registry : ~/registry/glesOpenGL ES 2.0 man pages: ~/opengles/sdk/docs/man
SDeveloper SitesZeusCMD, etc (tutorials)Beware of platform dependenciesBeware of platform dependencies
10
Getting Started: Information
BooksMost new OpenGL books have some ES materialSome books focus exclusively on OpenGL ESSome books focus exclusively on OpenGL ESCheck dates and API versions covered
11
Getting Started: Development Tools
ES 1.x Desktop ImplementationsVincent (open source)Imagination PowerVR Insider OpenGL ES 1.1 SDKNote: Gerbera is no longer available
ES 1.x Desktop+embedded SDKsSeries 60 SDK from NokiaSymbian SDK from Sony-EricssoniPhone SDK from Apple
ES 2.0 Desktop Implementations / SDKs / ToolsAMD OpenGL ES 2.0 EmulatorPowerVR OpenGL ES 2.0 SDK (from Imagination)AMD Rendermonkey 1.8 (or higher - GLSL ES only)ARM D kt E l t ( il bl 2H 2009)
12
ARM Desktop Emulators (available 2H 2009)
About Open GL ES 2.0 EmulatorsWhat they do
Emulate OpenGL ES 2.0 on desktop hardwareMap ES function calls to a desktop OpenGL 2+ implementationp p p p
Desktop Emulators: ProEasy way to get startedEasy way to get startedLow cost if you have the right 3D cardGreat C/C++ debug environment
Desktop Emulators: ConOnly work with certain graphics cardsy g pEmulation isn’t perfectPerformance, precision, language differences not handled wellDemoing on desktop lacks ‘cool factor’
13
Demoing on desktop lacks cool factor
Embedded ES 2.0 Development ToolsBeagle Board
Open Source board + SWLow cost ($150 US)Low cost ($150 US)TI OMAP: ARM Cortex A8 + SGX GPULinux (various)Currently has a steep learning curve
ARM mass-market development boardARM mass-market development boardARM CPU + Mali™ GPUAvailable 2H 2009
14
Practical ConsiderationsWhat to expect from mobile platforms:CPU Speed
300 to 600 MHzHigh-end platforms will go multicore soon
GPU SpeedPeak fill rates of 200-500MHz in next generation
GPU ArchitectureMost devices use deferred rasterization (tiling or chunking)Few have DXT*; other texture compression (ETC1) is often available
Other ConsiderationsNo virtual memoryLimited file storage
15
Slow networks
ConclusionMobile Graphics is here now!
The market is exploding
The technical possibilities are excitingThe HW / SW platforms are increasingly sophisticatedPerformance is good and getting better
OpenGL ES is a great low level graphics APIOpenGL ES is a great low-level graphics APIMobile friendlyPowerful, modern feature setSimpler and easier to learn than desktop APIs
Y t t t d ith it t d !
16
You can get started with it today!