This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Advertisements

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.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
CS 4363/6353 BASIC RENDERING. THE GRAPHICS PIPELINE OVERVIEW Vertex Processing Coordinate transformations Compute color for each vertex Clipping and Primitive.
CS378 - Mobile Computing 3D Graphics.
 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.
Cosc 5/4730 OpenGL ES An introduction. OpenGL ES GL was first developed by SGI as a priority graphics language – OpenGL was developed initially by SGI.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
Status – Week 277 Victor Moya.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
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 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.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
Antigone Engine Kevin Kassing – Period
© Copyright Khronos Group, Page 1 Harnessing the Horsepower of OpenGL ES Hardware Acceleration Rob Simpson, Bitboys Oy.
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.
Programming Concepts. Derive a new class from Activity of the framework Prepare the data beforehand, e.g., vertices, colours, normal vectors, texture.
Geometric Objects and Transformations. Coordinate systems rial.html.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
3D API By Clayton Azzopardi (Group 10). Introduction Android uses the OpenGL ES 1.0 API Android uses the OpenGL ES 1.0 API Open Graphics Library for Embedded.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
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 ES Performance (and Quality) on the GoForce5500 Handheld GPU Lars M. Bishop, NVIDIA Developer Technologies.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
OpenGL-ES 3.0 And Beyond Boston What is EGL? EGL handles: –provides available surface specifications –context management –surface binding –render.
The programmable pipeline Lecture 3.
CSE 690: GPGPU Lecture 6: Cg Tutorial Klaus Mueller Computer Science, Stony Brook University.
1 Graphics CSCI 343, Fall 2015 Lecture 4 More on WebGL.
© Copyright Khronos Group, Page 1 Shaders Go Mobile: An Introduction to OpenGL ES 2.0 Tom Olson, Texas Instruments Inc.
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Shadow Mapping Chun-Fa Chang National Taiwan Normal University.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
Review of OpenGL Basics
1 3D API OPENGL ES v1.0 Owned by Silicon Graphics (SGL) Control was then transferred to Khronos Group Introduction.
Xbox MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk.
CSE 381 – Advanced Game Programming GLSL. Rendering Revisited.
Mobile Graphics Patrick Cozzi University of Pennsylvania CIS Spring 2012.
CS378 - Mobile Computing 3D Graphics.
A UGMENTED F UTURE OF M OBILE R EALITY Oleg Novosad Mobile / Web / Game Engineer.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
 Learn some important functions and process in OpenGL ES  Draw some triangles on the screen  Do some transformation on each triangle in each frame.
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.
Lecture 7 Midterm Review. OpenGL Libraries gl: Basic OpenGL library, e.g. primitives. glu: OpenGL Utility library, a set of functions to create texture.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Models and Architectures 靜宜大學 資訊工程系 蔡奇偉 副教授 2012.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Antigone Engine.
Advanced Graphics Algorithms Ying Zhu Georgia State University
Graphics Processing Unit
Introduction to OpenGL
Chapter 6 GPU, Shaders, and Shading Languages
Chapter VI OpenGL ES and Shader
Graphics Processing Unit
Introduction to OpenGL
OpenGL-Rendering Pipeline
Presentation transcript:

This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. Lecture 8 - OpenGL on Android

Laura Gheorghe, Petre Eftime OpenGL ES  Cut down version of OpenGL  Fixed point support  Found in many mobile platforms (Android, iOS, Blackberry, Symbian, 3DS, etc.)  Designed for slower GPUs and CPUs 2

Laura Gheorghe, Petre Eftime Version 1.x 3  OpenGL ES 1.0 based on OpenGL 1.3 and OpenGL ES 1.1 based on OpenGL 1.5  Common and Common-Lite (only fixed point) profile  Fixed-function rendering pipeline  Reduced features: no quad and polygon primitives, no stippling, only multisample AA, reduced drawing modes, no display lists, etc.  OpenGL ES 1.1 adds better multitexture support, VBOs, clip planes, mipmap generation  Android 1.0 and higher

Laura Gheorghe, Petre Eftime Version  Based on OpenGL 2.0, but reduced fixed-function pipeline support  Not compatible with OpenGL ES 1.x  OpenGL ES Shading Language  ESSL only has forward branches and fixed iteration loops  Transforming and Lighting functions replaced by shaders  Better performance than OpenGL ES 1.x in many cases  Android 2.2 and higher

Laura Gheorghe, Petre Eftime Version  Compatible with OpenGL ES 2.0 and OpenGL 4.3  Standardized texture compression  Better texturing support  New Shading Language version with full support for integer and floating point  Improved flow control  Easier portability  Android 4.3 and higher

Laura Gheorghe, Petre Eftime GL Surface 6  Manages a surface (a region of memory which can be displayed on screen)  Manages an EGL display (an OpenGL rendering context)  Dedicated rendering thread  Can provide debug information

Laura Gheorghe, Petre Eftime EGL 7  Virtual display which contains a rendering context  2D and 3D rendering  Allows having multiple smaller surfaces on the actual screen or drawing to offscreen buffer  Used by SurfaceFlinger and other compositors (Wayland, Mir) or libraries (SDL)

Laura Gheorghe, Petre Eftime Demo 8  Create GL2JNIView and set it as a view for the activity  Constructor initializes the view private void init(boolean translucent, int depth, int stencil) { setEGLContextFactory(new ContextFactory()); setEGLConfigChooser( translucent ? new ConfigChooser(8, 8, 8, 8, depth, stencil) : new ConfigChooser(5, 6, 5, 0, depth, stencil) ); setRenderer(new Renderer()); }

Laura Gheorghe, Petre Eftime Demo 9 public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { /* Get the number of minimally matching EGL configurations */ int[] num_config = new int[1]; egl.eglChooseConfig(display, s_configAttribs2, null, 0, num_config); int numConfigs = num_config[0]; /* Allocate then read the array of minimally matching EGL configs */ EGLConfig[] configs = new EGLConfig[numConfigs]; egl.eglChooseConfig(display, s_configAttribs2, configs, numConfigs, num_config); /* Now return the "best" one (matches rgba specifications) */ return chooseConfig(egl, display, configs); }

Laura Gheorghe, Petre Eftime Demo 10 private static class Renderer implements GLSurfaceView.Renderer { public void onDrawFrame(GL10 gl) { GL2JNILib.step(); } public void onSurfaceChanged(GL10 gl, int width, int height) { GL2JNILib.init(width, height); } public void onSurfaceCreated(GL10 gl, EGLConfig config) { // Do nothing. }

Laura Gheorghe, Petre Eftime Demo 11  setupGraphics  Compiles vertex and pixel shaders into a program  Defines Uniforms, Attributes, etc.  Sets initial camera position and viewport

Laura Gheorghe, Petre Eftime Demo 12  renderFrame  Updates camera  Sets shader program  Sets Uniforms and Attributes for current frame  Draws triangles

Laura Gheorghe, Petre Eftime Android Tools for Debugging and Profiling 13  Logging  Debugging Developer Options: Overdraw, Clipping  Profiling Developer Options: Performance metrics on screen or through ADB, Traces  Tracer for OpenGL ES: Visualize traces

Laura Gheorghe, Petre Eftime Intel GPA 14  Intel Atom processors  More information: GPU, CPU, Battery usage  More detailed analysis  Identifies possible bottlenecks  Realtime  Works over Wifi

Laura Gheorghe, Petre Eftime Vendor specific tools 15  Low level information  Different interface and capabilities for each vendor  Optimizations not always portable  PowerVR, Tegra, Adreno, etc.

Laura Gheorghe, Petre Eftime Bibliography 16   ngl.html  ndex.html

Laura Gheorghe, Petre Eftime Keywords 17  OpenGL  EGL  Fixed function pipeline  Shaders  GLSurfaceView  Profiling  Tracer