© Copyright Khronos Group, 2006 - Page 1 Shaders Go Mobile: An Introduction to OpenGL ES 2.0 Tom Olson, Texas Instruments Inc.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS SOFTWARE.
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
G30™ A 3D graphics accelerator for mobile devices Petri Nordlund CTO, Bitboys Oy.
CS 4363/6353 BASIC RENDERING. THE GRAPHICS PIPELINE OVERVIEW Vertex Processing Coordinate transformations Compute color for each vertex Clipping and Primitive.
Computer Graphic Creator: Mohsen Asghari Session 2 Fall 2014.
OpenGL ES Developer Focus Brian Bruning, Director DevRel Updated: August 31st, 2004.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
 The success of GL lead to OpenGL (1992), a platform-independent API that was  Easy to use  Close enough to the hardware to get excellent performance.
Informationsteknologi Wednesday, December 12, 2007Computer Graphics - Class 171 Today’s class OpenGL Shading Language.
Status – Week 277 Victor Moya.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
GPU Tutorial 이윤진 Computer Game 2007 가을 2007 년 11 월 다섯째 주, 12 월 첫째 주.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
© Copyright Khronos Group, Page 1 The State of the Union Update from the Working Group Chair Tom Olson, Texas Instruments Inc.
© Copyright Khronos Group, Page 1 Harnessing the Horsepower of OpenGL ES Hardware Acceleration Rob Simpson, Bitboys Oy.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
OpenGL 3.0 Texture Arrays Presentation: Olivia Terrell, Dec. 4, 2008.
What is ? Open Graphics Library A cross-language, multi-platform API for rendering 2D and 3D computer graphics. The API is used to interact with a Graphics.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Real-time Graphical Shader Programming with Cg (HLSL)
OpenGL Shading Language (Advanced Computer Graphics) Ernest Tatum.
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
OpenGL Conclusions OpenGL Programming and Reference Guides, other sources CSCI 6360/4360.
Lecture by: Martin Deschamps CSE 4431
CS 4363/6353 OPENGL BACKGROUND. WHY IS THIS CLASS SO HARD TO TEACH? (I’LL STOP WHINING SOON) Hardware (GPUs) double in processing power ever 6 months!
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
Programmable Pipelines Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
Review of OpenGL Basics
1 3D API OPENGL ES v1.0 Owned by Silicon Graphics (SGL) Control was then transferred to Khronos Group Introduction.
© Copyright Khronos Group, Page 1 OpenGL ES SIGGRAPH 2006 Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
CSE 381 – Advanced Game Programming GLSL. Rendering Revisited.
OpenGL-ES 3.0 And Beyond Boston Photo credit :Johnson Cameraface OpenGL Basics.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Week 3 Lecture 4: Part 2: GLSL I Based on Interactive Computer Graphics (Angel) - Chapter 9.
© Copyright Khronos Group, Page 1 Khronos and OpenGL ES Status Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Programming with OpenGL Part 3: Shaders Ed Angel Professor of Emeritus of Computer Science University of New Mexico 1 E. Angel and D. Shreiner: Interactive.
OpenGl Shaders Lighthouse3d.com.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Shader.
Draw a Simple Object.
Programmable Pipelines
Graphics Processing Unit
Introduction to OpenGL
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Introduction to Computer Graphics with WebGL
Day 05 Shader Basics.
Chapter VI OpenGL ES and Shader
Introduction to Programmable Hardware
Graphics Processing Unit
Programming with OpenGL Part 3: Shaders
Computer Graphics Introduction to Shaders
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Introduction to OpenGL
OpenGL Background CS 4722.
OpenGL-Rendering Pipeline
CS 480/680 Fall 2011 Dr. Frederick C Harris, Jr. Computer Graphics
Presentation transcript:

© Copyright Khronos Group, Page 1 Shaders Go Mobile: An Introduction to OpenGL ES 2.0 Tom Olson, Texas Instruments Inc.

TI Proprietary Information 2 About Texas Instruments A Strong Supporter of Standards  Khronos Promoting Member  Active in OpenGL ES, OpenMAX, OpenKODE The Leader in Semiconductors for Wireless  #1 in wireless revenue (Dataquest)  #1 in digital basebands (Forward Concepts 2006)  Over 2B handsets shipped  #1 in wireless application processors (FC 2006)  Over 90M OMAP processors shipped

© Copyright Khronos Group, Page 3 Outline Introduction to OpenGL ES What it is Design principles Versions and status OpenGL ES 2.0 What’s different about the API What’s different about the shading language Status …and where to go for more information

© Copyright Khronos Group, Page 4 What is OpenGL ES? The Leading 3D Graphics API for Mobile Devices Defined by the Khronos Group Created with blessing and cooperation of the OpenGL ARB Subset of Desktop OpenGL …with a few well-chosen mobile-specific extensions Design Goal Deliver most of the power of OpenGL …but in a much smaller package Design Principles Eliminate redundancy - one way to do things Eliminate rarely used, legacy, or expensive features Eliminate features not used in games

© Copyright Khronos Group, Page 5 Overview of OpenGL ES 1.x Features removed from desktop OpenGL Begin/End - vertex arrays & buffers only Fancy features: imaging subset, evaluators, display lists Legacy features: color index, DrawPixels Double precision data types & entry points Almost everything else is still there! Vertex Transforms & Lighting (mostly) Multi-texturing (2D only) fsAA via Multisampling Basic blending Features added Fixed-point and byte data Fixed-point only profile available

© Copyright Khronos Group, Page 6 OpenGL ES Versions OpenGL ES 1.1 Spec released at SIGGRAPH 2004 Adopted as standard in many mobile OSes Hardware accelerated ES 1.1 shipping in volume The ‘sweet spot’ for high-end mobile phone content today OpenGL ES 2.0 Final spec to be released in 4Q 2006 The ‘sweet spot’ in 200?

© Copyright Khronos Group, Page 7 Why OpenGL ES 2.0? Doom 3’s Zombies Far Cry’s Water Unreal’s Rocks Halo’s Ice Cause shaders are so cool…

© Copyright Khronos Group, Page 8 OpenGL ES 2.0 Key Changes Add: Vertex and Fragment Shaders ES 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 is NOT backward compatible with 1.x! But, ES 2.0 HW can support an ES 1.x driver

© Copyright Khronos Group, Page 9 Fragment Processor Vertex Processor xform Light Vtx Coords Normals Colors TexCoords Primitive assembly Cull Clip Viewport Rasterize Z-test Stencil ScissorBlend VERTICESTRIANGLESFRAGMENTS APPLICATION 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 The OpenGL ES 2.0 Pipeline

© Copyright Khronos Group, Page 10 Other Features Added to ES 2.0 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, Page 11 Optional Features Optional ETC Texture Compression IP contributed by Ericsson NPOT Textures 3D Textures Visibility Queries Half Float Data Float / Half Float Textures

© Copyright Khronos Group, Page 12 The ES Shader Language GLSL ES is very similar to GLSL, but… No fixed function attributes glVertex, glMultiTexCoord, 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, Page 13 Precision Qualifiers GLSL ES Range of precisions Low - range [-2,2] with 8 bits precision Medium - range [-2 14,2 14 ] with 10 bits precision High - range [-2 62,2 62 ] 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, Page 14 Other Changes to GLSL ES Invariance Optimization may affect value of expressions Handled in Desktop GLSL by ftransform() Handled in GLSL ES by invariant keyword 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, Page 15 Conclusion OpenGL ES 2.0 is coming Full vertex and fragment shader support for mobile devices Small, clean API thanks to elimination of fixed functionality For more information Draft specs at Final specification coming soon!