OpenGL 3.0 Texture Arrays Presentation: Olivia Terrell, Dec. 4, 2008.

Slides:



Advertisements
Similar presentations
POST-PROCESSING SET09115 Intro Graphics Programming.
Advertisements

Vertex Buffer Objects, Vertex Array Objects, Pixel Buffer Objects.
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.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
Computer Graphics(Fall 2003) COMS 4160, Lecture 7: OpenGL 3 Ravi Ramamoorthi Many slides courtesy Greg Humphreys.
Computer Graphic Creator: Mohsen Asghari Session 2 Fall 2014.
Texture Mapping. Texturing  process that modifies the appearance of each point on a surface using an image or function  any aspect of appearance can.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Introduction to Computer Graphics Ed Angel Professor of Computer Science, Electrical and.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
CS 4731: Computer Graphics Lecture 17: Texturing Emmanuel Agu.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
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.
Computer Graphics Texture Mapping Eriq Muhammad Adams
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.
Week 2 - Wednesday CS361.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Textures and shadows  Generation  Mipmap  Texture coordinates,
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS Textures.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
CS 4363/6353 TEXTURE MAPPING PART II. WHAT WE KNOW We can open image files for reading We can load them into texture buffers We can link that texture.
ECSE-4750 Computer Graphics Fall 2004 Prof. Michael Wozny TA. Abhishek Gattani TA. Stephen
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
1 Introduction to Computer Graphics SEN Introduction to OpenGL Graphics Applications.
Computer Graphics I, Fall 2008 Introduction to Computer Graphics.
The programmable pipeline Lecture 3.
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.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
© Copyright 3Dlabs 2004 Page 1 Super Buffers Workgroup Status update, December 2004.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
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.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
CSE 381 – Advanced Game Programming GLSL. Rendering Revisited.
OpenGL Programming Guide : Texture Mapping Yoo jin wook Korea Univ. Computer Graphics Lab.
Computing & Information Sciences Kansas State University Lecture 12 of 42CIS 636/736: (Introduction to) Computer Graphics CIS 636/736 Computer Graphics.
 Learn how you can use the shader through OpenGL ES  Add texture on object and make the object have a different look!!
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.
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
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.
CS425 © 2003 Ray S. Babcock Pixels and Bitmaps ● OpenGL allows us to work directly with bits and groups of bits, or pixels, which flow down a parallel.
Buffers Ed Angel Professor Emeritus of Computer Science
Introduction to OpenGL
Texture Mapping Part II
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Geb Thomas Adapted from the OpenGL Programming Guide
Chapter VI OpenGL ES and Shader
Graphics Processing Unit
Computer Graphics Buffers
Buffers Ed Angel Professor Emeritus of Computer Science
Computer Graphics Introduction to Shaders
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Introduction to OpenGL
Frame Buffers Fall 2018 CS480/680.
OpenGL-Rendering Pipeline
CS 480/680 Fall 2011 Dr. Frederick C Harris, Jr. Computer Graphics
Presentation transcript:

OpenGL 3.0 Texture Arrays Presentation: Olivia Terrell, Dec. 4, 2008

OpenGL 3.0  History of OpenGL 3.0  How OpenGL 3.0 Differs  OpenGL 3.0 Texture arrays

History of OpenGL 3.0 “When one door closes another door opens; but we so often look so long and so regretfully upon the closed door, that we do not see the ones which open for us.”, Alexander Graham Bell Alexander Graham Bell

 Evolved from IrisGL (Integrated Raster Imaging Systems Graphic Library)‏  IrisGL was specific to IRIX Silicon stations  OpenGL created by Mark Segal and Kurt Akeley

First release First release  OpenGL1.0 lacked texture objects, thus glBindTexture was added to OpenGL1.1. Release versions: Release versions:  OpenGL1.2  OpenGL1.2.1  OpenGL1.3  OpenGL1.4  OpenGL1.5  OpenGL2.0  OpenGL2.1  OpenGL3.0

Block Diagram of OpenGL

How OpenGL 3.0 Differs “He who rejects change is the architect of decay...” Harold Wilson Harold Wilson

OpenGL 3.0 features Vertex array objects Vertex array objects Direct access to vertex buffer objects Direct access to vertex buffer objects Framebuffer object variability for buffer size and format during rendering Framebuffer object variability for buffer size and format during rendering 32-bit floating point texture and render buffers 32-bit floating point texture and render buffers Occlusion rendering Occlusion rendering Half-float vertex & pixel data Half-float vertex & pixel data

OpenGL 3.0 features Transform feedback to capture geometry data into a buffer for further computation Transform feedback to capture geometry data into a buffer for further computation 4 new texture compressions for 1 and 2 channel texture 4 new texture compressions for 1 and 2 channel texture Rendering in sRGB framebuffers Rendering in sRGB framebuffers 32-bit floating point depth buffer support 32-bit floating point depth buffer support Texture arrays... Texture arrays...

OpenGL 3.0 features API support for the new texture lookup capabilities of the OpenGL Shading Language 1.30 specification (GL EXT gpu shader4). API support for the new texture lookup capabilities of the OpenGL Shading Language 1.30 specification (GL EXT gpu shader4). Conditional rendering (GL NV conditional render). Conditional rendering (GL NV conditional render). Fine control over mapping buffer subranges into client space and flushing Fine control over mapping buffer subranges into client space and flushing modified data. modified data. Floating-point color and depth internal formats for textures and renderbuffers (GL ARB color buffer float, GL NV depth buffer float, 455 GL ARB texture float, GL EXT packed float, and GL EXT texture shared exponent). Floating-point color and depth internal formats for textures and renderbuffers (GL ARB color buffer float, GL NV depth buffer float, 455 GL ARB texture float, GL EXT packed float, and GL EXT texture shared exponent). Framebuffer objects (GL EXT framebuffer object). Framebuffer objects (GL EXT framebuffer object). Half-float (16-bit) vertex array and pixel data formats (GL NV half float and GL ARB half float pixel). Half-float (16-bit) vertex array and pixel data formats (GL NV half float and GL ARB half float pixel). Multisample stretch blit functionality (GL EXT framebuffer multisample and GL EXT framebuffer blit). Multisample stretch blit functionality (GL EXT framebuffer multisample and GL EXT framebuffer blit). Non-normalized integer color internal formats for textures and renderbuffers (GL EXT texture integer). Non-normalized integer color internal formats for textures and renderbuffers (GL EXT texture integer).

OpenGL 3.0 features One- and two-dimensional layered texture targets One- and two-dimensional layered texture targets (GL EXT texture array). (GL EXT texture array). Packed depth/stencil internal formats for combined depth+stencil textures and renderbuffers (GL EXT packed depth stencil). Packed depth/stencil internal formats for combined depth+stencil textures and renderbuffers (GL EXT packed depth stencil). Per-color-attachment blend enables and color writemasks (GL EXT draw buffers2). Per-color-attachment blend enables and color writemasks (GL EXT draw buffers2). RGTC specific internal compressed formats (GL EXT texture compression rgtc). RGTC specific internal compressed formats (GL EXT texture compression rgtc). Single- and double-channel (R and RG) internal formats for textures and renderbuffers. Single- and double-channel (R and RG) internal formats for textures and renderbuffers. Transform feedback (GL EXT transform feedback). Transform feedback (GL EXT transform feedback). Vertex array objects (GL APPLE vertex array object). Vertex array objects (GL APPLE vertex array object). sRGB framebuffer mode (GL EXT framebuffer sRGB)‏ sRGB framebuffer mode (GL EXT framebuffer sRGB)‏

Changed Token Names COMPARE_REF_TO_TEXTURE COMPARE_REF_TO_TEXTURE MAX_VARYING_COMPONENTS MAX_VARYING_COMPONENTS MAX_CLIP_DISTANCES MAX_CLIP_DISTANCES CLIP_DISTANCES CLIP_DISTANCES COMPARE_R_TO_TE XTURE COMPARE_R_TO_TE XTURE MAX_VARYING_FLO ATS MAX_VARYING_FLO ATS MAX_CLIP_PLANES MAX_CLIP_PLANES CLIP_PLANES CLIP_PLANES

Supported Shading Languages GLSL1.10 GLSL1.10 GLSL1.20 GLSL1.20 GLSL1.30 GLSL1.30

OpenGL 3.0 Texture Arrays “It is the eye of ignorance that assigns a fixed and unchangeable color to every object...” Paul Gauguin Paul Gauguin

EXT_texture_array Created August 7, 2008 Created August 7, 2008 Enteracts with either Enteracts with either  NV_geometry_program4  NV_gpu_program4  OpenGL Shading Language (GLSL 3.0)

EXT_texture_array What it is: What it is:  Array of textures equal in size and format, arranged in layers  Height (1D) or depth (2D) are the number of layers

EXT_texture_array Specifications: Specifications:  1D array: TexImage2D  2D array: TexImage3D

TexImage2D(enum target, int level, int internalformat, sizei width, sizei height, int border, enum format, enum type, void *data) TexImage2D(enum target, int level, int internalformat, sizei width, sizei height, int border, enum format, enum type, void *data) Target is a 2D texture Target is a 2D texture Level is level of detail Level is level of detail Internalformat is storage of texture Internalformat is storage of texture Width, height and border are boundaries of the texture Width, height and border are boundaries of the texture Format is current format of texture Format is current format of texture *data is pointer to internal data type *data is pointer to internal data type

EXT_texture_array How it Works How it Works  Texture array is seen as a unit in the shader  Access is through single coordinate vector  1 layer of array is selected as 1D or 2D texture  Coordinate of layer is in [0, n-1], where n is the total number of textures in the array  Array textures are rendered by binding them to a framebuffer (EXT_framebuffer_object)‏  Can bind whole array, or single layer

EXT_texture_array 6 different textures are possible as input to the array. Each texture is itself a 1D, 2D, or 3D array of images. 6 different textures are possible as input to the array. Each texture is itself a 1D, 2D, or 3D array of images. Each image element is called a texel. Each image element is called a texel. Each image is comprised of 1 to n layers Each image is comprised of 1 to n layers

Vs. The Old way... Basic problem: Texture animation Basic problem: Texture animation Create separate image file per frame of animation Create separate image file per frame of animation Load every frame as part of user array: texture[index]=LoadTextureRAW(“text1.raw”, 256, 256); Load every frame as part of user array: texture[index]=LoadTextureRAW(“text1.raw”, 256, 256); Set the texture to the coordinate: glBindTexture(GL_TEXTURE_2D,texture[frame]); //where frame is some int Set the texture to the coordinate: glBindTexture(GL_TEXTURE_2D,texture[frame]); //where frame is some int Go to next frame of texture array and repeat Go to next frame of texture array and repeat

EXT_texture_array One use of texture animation to a shape is the Beryl Desktop, a 3D cube where each side is a separate desktop, for example. One use of texture animation to a shape is the Beryl Desktop, a 3D cube where each side is a separate desktop, for example.

Application: Beryl Desktop *image compliments of Corporal J VanDyke, Auraria PD *image compliments of Corporal J VanDyke, Auraria PD

Questions?

This Presentation Online L.html