1 / 19

Presenters: Ron Fosner & Rudy Cazabon AnDevCon Boston, May 2014

OpenGL-ES 3.0 and Beyond Modern OpenGL Programming. Presenters: Ron Fosner & Rudy Cazabon AnDevCon Boston, May 2014. Schedule…. Synopsis:. This is a hard-core OpenGL-ES course. The hardest part about learning OpenGL is understanding how it all goes together. And how to not screw up.

efuru
Download Presentation

Presenters: Ron Fosner & Rudy Cazabon AnDevCon Boston, May 2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenGL-ES 3.0 and BeyondModern OpenGL Programming Presenters: Ron Fosner & Rudy Cazabon AnDevCon Boston, May 2014

  2. Schedule…

  3. Synopsis: • This is a hard-core OpenGL-ES course. • The hardest part about learning OpenGL is understanding how it all goes together. And how to not screw up. • We’ll be focusing on “modern” OpenGL-ES i.e. shader based programming. • Particularly the “new” OpenGL-ES, OpenGL-ES 3.0 • We’ll also cover the latest spec. OpenGL-ES 3.1 • There will be very few Android specifics, unless they relate to OpenGL programming.

  4. Our goal: • At the end of this course: • If you are new to OpenGL programming, you should have an idea of how it all fits together. And be vewyvewyafwaid. • If you’ve programmed OpenGL-ES 2.0 before, we will be teaching you the newest language features that should make your life easier. • We’ll also give you a head’s-up on OpenGL-ES 3.1 • Give you an overview of the pipeline and how you can make it do what you want. • We’ll cover Best Practices to get maximum performance

  5. What we won’t cover Android development Java code Agenda: • What we will cover • Basic OpenGL-ES env. setup for Native apps • How OpenGL-ES works • The OpenGL “state machine” • How to render object for best performance • How to load objects, textures, etc. • What and how to use shaders • Rendering fast and pretty

  6. What is OpenGL? OpenGL (Open Graphics Library) is a cross-language, multi-platform application programming interface (API) for rendering 2D and 3D graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering. OpenGL was developed by Silicon Graphics Inc. (SGI) in 1992 and is widely used in CAD, virtual reality, scientific visualization, information visualization, flight simulation, and video games. In 2006 the Khronos Group (non-profit technology consortium) took over the development of OpenGL. Historically this group is called “the ARB” (Architecture Review Board)

  7. OpenGL: Some Khronos Members

  8. OpenGL: Some Khronos Members CPU/GPU Companies Software Companies Mobile

  9. OpenGL vs OpenGL-ES • OpenGL ES (for Embedded Systems) is a subset of OpenGL API created in 2003. • GLES 1.1 defined a fixed function graphics pipeline • GLES 2.0: deprecated the fixed functionality with shader-based programming model. Vertex and Fragment shaders. • GLES 3.0: Extends GL-ES to make it more in line with desktop OpenGL features. • GLES 3.1: Advances the feature set to reveal the capabilities of modern hardware. http://www.opengl.org GLES 2.0 requires API 8 GLES 3.0 requires API 18

  10. Why do you care? Android is dominant, on both phones and tablets Tablets March 3, 2014 http://www.gartner.com/newsroom/id/2674215 Feb 2014 http://www.gartner.com/newsroom/id/2665715

  11. Why do you care? Mobile graphics hardware is evolving rapidly

  12. New Features for OpenGLES 3.0 • Main new features • Multiple Render Targets • Occlusion Queries • Instanced Rendering • Uniform Buffer Objects (UBOs) and Uniform Blocks • Transform Feedback • Primitive Restart • Program Binary • Enhanced texturing functionality • Swizzles • 3D textures • 2D array textures • LOD/MIP level clamps • seamless cube maps • immutable textures • NPOT textures • sampler objects New renderbuffer and texture formats • Floating point formats • Shared exponent RGB formats • ETC/EAC texture compression • Depth and depth/stencil formats • Single and dual channel texture • R and RG • ES Shading Language Version 3.00 • Full support for 32 bit integer and floating point data types • In/out storage qualifiers • Cleaner declaration of shader inputs and outputs at each stage • Array constructors and operations • New Functions

  13. New Features for OpenGLES 3.1+ • Compute Shaders: Compute shaders are the big addition to 3.1. They bring the ability to use OpenGL applications for general purpose GPU computing. Physics calculations, AI, post processing effects, ambient occlusion, photographic filtering effects, etc. • Shader Objects: It’s now possible to mix and match vertex and pixel shaders and also to have pre-compiled shaders. • An Updated Shader Language: As with the 3.0 spec, the 3.1 spec continues to add some features previously found only on desktop OpenGL and makes it much easier to support more efficient and advanced shader usage. • Indirect Draw Commands:  The ability to submit draw commands from objects in GPU memory rather than have the CPU kick off drawing helps make the pipeline more efficient. • Enhanced Texture Functionality: Some features from desktop have made it over as well, including mutisampling, stencil textures, texture gather. • OpenGL-ES 3.1+ Vendor Extensions: Tessellation and Geometry shaders will be showing up. Support for some additional buffer and texture formats.

  14. OpenGL-ES – what’s missing…

  15. OpenGL-ES – what’s missing… • OpenGL-ES is a graphics API, it draws things on the screen. It just draws things on the screen.* • It does not: Read or understand “models”Read or understand imagesHave an intrinsic CPU math libraryDraw without a shader loadedHave default shaders Have a “camera” “do” lightingHave lights AnimationShadowing Physics Collsion Detection Touch Detection Prevent you from doing dumb things * OK, it draws stuff to memory, can run shaders, and can manipulate GPU memory.

  16. OpenGL-ES – what’s not missing… • OpenGL-ES runs on nearly all platforms you might care about, and may that you might care about • Will run on many platforms… • Android (Java and C++) • iOS (Objective-C) • Browsers (WebGL) • Windows • Linux

  17. Backup

  18. Why do you care? While OpenGL-ES is even more dominant… Tablets March 3, 2014 http://www.gartner.com/newsroom/id/2674215 Feb 2014 http://www.gartner.com/newsroom/id/2665715

More Related