tom olson, texas instruments inc. - khronos group€¦ · shipping 2007 2008 products opengl es 1.1...
TRANSCRIPT
© Copyright Khronos Group, 2007 - Page
Tom Olson, Texas Instruments Inc.
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Introduction to OpenGL ES•What it is• Market Status
What’s New• Release of OpenGL ES 2.0• Launch of glFX work group
What’s Coming Up• OpenGL ES Roadmap
Overview of OpenGL ES 2.0
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
The leading 3D API for mobile devices• Based on desktop OpenGL• Created with support of the OpenGL ARB• Designed for cell phones, PDAs, other embedded systems• Also adopted for PLAYSTATION 3
Compared to desktop OpenGL:• Removes legacy, redundant, rarely used, or expensive functionality• Adds mobile-friendly features
Most of the power of OpenGL in a much smaller package
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Tools
Conformance Tests
Benchmarks
High-quality platforms
Open API Standards
Market demand for mobile media
Great 3DApplications
IndustryCooperation
All Khronos APIs are accompanied by rigorous Conformance Tests to
ensure reliable operation
Synergistic Development of authoring and acceleration standards under one body.
Third party tools and debuggers.
Khronos drives OpenGL ES roadmap to meet market needs
Futuremark3DMarkMobile06
& JBenchmark 3D.
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Mobile Games• US$2.4B in 2006, growing to•…US $7.2B in 2010 (Informa)
Composition-based User Interfaces• Mac OSX, Windows Vista• Coming soon in Symbian
Other Uses• Implementing Flash / VG• Application UIs
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Adoption• Standard in several mobile OSes• OpenGL ES 1.1 prototypes demonstrated in early to mid 2005• Handsets are now shipping in volume• E.g., TI has shipped over 15M OMAP 2 devices with ES 1.1
Content• Market emerging in tandem with fielded devices• Steep learning curve for mobile developers• Standardizing the graphics API reveals other sources of fragmentation!
Bottom Line• OpenGL ES 1.x is a solid success as a standard• Content market still faces challenges
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Stability and reducing fragmentation is currently the key concern• More important than new functionality in the current phase of market development• Industry is still absorbing and implementing current OpenGL ES specifications
2007 2008Shipping Products
OpenGL ES 1.1 with hardware acceleration remainsthe “Sweet Spot” at least through 2008
OpenGL ES 2.0 accelerated products begin to ship
OpenGL ES 2.0 specification release
OpenGL ES 2.1 IF NEEDED to address
market needs or 2.0 shortcomings
OpenGL ES Next GenNew functionality to meet
PROVEN market needs
OpenGL ES 2.x products ship in volume
OpenGL ES 1.1 will continue to be used in lower-cost devices
2009-10?
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
The Shader Revolution comes to Mobile Graphics• Programmable GPUs have revolutionized desktop graphics• Shader programs enable amazing graphical effects•…and now, they’re available on mobile devices
reflections, lighting effects parallax mapping
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Advantages• Supports modern programming styles• Super-compact, efficient API• Makes programmers more productive
Key Features•Vertex and pixel shaders replace fixed functionality•High level language programming (GLSL ES)•On-line or off-line compilation•Rich feature set
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Shader-based graphics are a new paradigm• DCC tools manipulate ‘effects’ made up of shaders, passes, state• Need ways to use effects in applications at runtime• The Khronos OpenGL, OpenGL ES, and Collada groups will
work together to create a common effects API: glFX
DCC ToolsDCC tools create
and export effects via Collada FX
Applications
Applications use the glFX API to create and
apply effects at runtime glFX can be layered on top of the graphics
driver, or embedded for efficiency
Collada FX Data Model
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Application
OpenGL 2.0 / OpenGL ES 2.0
glFX Runtime API
- Existing Khronos standards- New glFX standard - Application specific code/data
Application traverses scene data, uses the glFX Runtime API to extract effects information to setup the rendering pipeline
COLLADA FX EffectsTextures, shaders programs, geometry, control and pass information
COLLADAFile format for 3D asset interchange – widely adopted by DCC tools vendors and Google, Adobe, Epic etc.
OptionalProcessing for DeliveryOptionally create data
representations for delivery to target devices
© Copyright Khronos Group, 2007 - Page
Tom Olson, Texas Instruments Inc.
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Add:• Vertex and Fragment Shaders• Shader Language (GLSL ES)• Option for off-line compilation (binary shaders)
Remove• Anything you can do in a shader• Fixed function transform and lighting• Fixed function texturing, fog, etc.
• That’s right - 2.0 is NOT backward compatible with 1.x!• But, ES 2.0 HW can support an ES 1.x driver
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
FragmentProcessor
Vertex Processor
xform
xform
xform
Light
Vtx Coords
Normals
Colors
TexCoords
Primitive assembly
CullClip
Viewport
Raste
rize
Z-testStencilScissor Blend
VERTICES TRIANGLES FRAGMENTSAPPLICATION
State VectorState cmds
Input
Indices
Attribute 0
…
…
Attribute n-1
tex0
tex1
fog
What Changes From ES 1.1 to ES 2.0?• General-purpose attributes replace fixed input arrays• Vertex shader programs replace transform and lighting• General-purpose uniforms replace fixed lighting & texture state• General-purpose varyings replace fixed fragment attributes• Fragment shader programs replace texture / fog / alpha test
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Texture Features• Cube Maps• Minimum of eight texture units
Frame Buffer Objects• Simplified version of EXT_frame_buffer_object• Mandated minimum configuration support
Per-Fragment Ops• Stencil buffer support is required• BlendEquation and BlendEquationSeparate supported (mostly)
Point Sprites• Regular GL points removed
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Optional ETC Texture Compression• IP contributed by Sony Ericsson
NPOT Textures
3D Textures
Visibility Queries
Half Float Data
Float / Half Float Textures
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
GLSL ES is very similar to GLSL, but…
No fixed function attributes• glVertex, glMultiTexCoord<n>, glColor…
No fixed function Uniforms• glModelViewMatrix, glLight[i], …
Predefined varyings are still there• Vertex shader must write glPosition• Fragment shader can read glFragCoord• Fragment shader must write glFragColor
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Range of precisions• Low - range [-2,2] with 8 bits precision• Medium - range [-214,214] with 10 bits precision• High - range [-262,262] with 16 bits precision• Can declare per variable, or declare a default precision
Examples• lowp vec4 color;• highp vec3 LightPosition;
Defaults• Vertex Shader variables default to high precision• Fragment Shader has no default - MUST declare
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
Invariance• Optimization may affect value of expressions• Handled in Desktop GLSL by ftransform()• Handled in GLSL ES by invariant keyword
Example• gl_Position = ftransform(); // GLSL• invariant gl_Position; // GLSL ES gl_Position = pos * ModelViewProjection;
No Virtualization• Valid programs may fail to compile due to resource limits• Conformance test will enforce reasonable capability• Any OpenGL ES 1.1 state should compile
© Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page © Copyright Khronos Group, 2007 - Page
OpenGL ES 2.0 is coming!• A number of Khronos members have announced products
For more information• Talk to us at the booth!• See the demos!• Download the spec at http://www.khronos.org/opengles/2_X/