© Copyright 3Dlabs 2004 Page 1 Super Buffers Workgroup Status update, December 2004.

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

POST-PROCESSING SET09115 Intro Graphics Programming.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
EECS 700: Computer Modeling, Simulation, and Visualization Dr. Shontz Chapter 2: Shader Fundamentals (continued)
Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
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.
OPENGL Return of the Survival Guide. Buffers (0,0) OpenGL holds the buffers in a coordinate system such that the origin is the lower left corner.
University of Sulaimani - School of Science - Computer Dept.
Computer Graphic Creator: Mohsen Asghari Session 2 Fall 2014.
Copyright 2003 Peter McDevitt 1 Microsoft Excel 2002 Lecture 3 – A Professional Looking Worksheet.
© Copyright 3Dlabs 2004 Page 1 Super Buffers Workgroup Status update, June 2004.
© Copyright 3Dlabs 2004 Page 1 ARB Roadmap Discussion Sacramento, June 2004.
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.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
Introduction to OpenGL. What is OpenGL OpenGL is a low-level software interface to graphics hardware No commands for performing windowing tasks or obtaining.
Check Disk. Disk Defragmenter Using Disk Defragmenter Effectively Run Disk Defragmenter when the computer will receive the least usage. Educate users.
will appear. Encode the User Name and Password, then click OK or
OpenGL 3.0 Texture Arrays Presentation: Olivia Terrell, Dec. 4, 2008.
Aaron Lefohn University of California, Davis GPU Memory Model Overview.
NVIDIA PROPRIETARY AND CONFIDENTIAL Occlusion (HP and NV Extensions) Ashu Rege.
Visibility Queries Using Graphics Hardware Presented by Jinzhu Gao.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
An Interactive Introduction to OpenGL Programming Ed Angel
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
XRules An XML Business Rules Language Introduction Copyright © Waleed Abdulla All rights reserved. August 2004.
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.
© Copyright Khronos Group, Page 1 Shaders Go Mobile: An Introduction to OpenGL ES 2.0 Tom Olson, Texas Instruments Inc.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
© Copyright 3Dlabs 2004 Page 1 GLSL Conformance proposal December 2004.
Review of OpenGL Basics
Async Workgroup Update Barthold Lichtenbelt. OpenGL Siggraph BOF page 2 Goals Provide synchronization framework for OpenGL - Provide base functionality.
1 3D API OPENGL ES v1.0 Owned by Silicon Graphics (SGL) Control was then transferred to Khronos Group Introduction.
CH8 Frame Buffer Object 1. Introduction Name OpenGL :Frame Buffer Object DirectX:Render Target Usage Render to Texture 2.
OpenGL Architecture Display List Polynomial Evaluator Per Vertex Operations & Primitive Assembly Rasterization Per Fragment Operations Frame Buffer Texture.
Xbox MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk.
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
ECE-1021 Instructor’s Project SIRDS Single Image Random Dot Stereograms STATUS UPDATE #3 25 NOV 03.
Mobile Graphics Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Computing & Information Sciences Kansas State University Lecture 12 of 42CIS 636/736: (Introduction to) Computer Graphics CIS 636/736 Computer Graphics.
ECE-1021 Instructor’s Project SIRDS Single Image Random Dot Stereograms STATUS UPDATE #4 29 NOV 03.
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
An Overview of the Energy Reduction Calculator.  Calculates reduction in emissions for a facility Emissions computed are Carbon Dioxide, Sulfur Dioxide,
Wilf Comp Ambient Occlusion + Order Independent Transparency POST CONCLUSIONS.
Module 05 –Bump mapping Module 05 – Bump mapping Module 05 Advanced mapping techniques: Bump mapping.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
Introduction to OpenGL (INF 250) Veronika Solteszova et al., UiB Dept. of Informatics,
Adobe Photoshop CS5 Chapter 3 Working with Layers.
Test Plans Test Driven Development – Unit test plan first Code coverage Automated Regression built as you go Debug is easier Serves as system doc – Still.
Muen Policy & Toolchain
Layers in Adobe After Effect
Buffers Ed Angel Professor Emeritus of Computer Science
Computer Graphics Lecture 32
Computer Graphics Lecture 33
Important stuff that doesn’t fit elsewhere Evan Hart
OpenGL ARB Superbuffers
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Computer Graphics Buffers
Texture and Shadow Mapping
Computer Graphics Practical Lesson 7
Buffers Ed Angel Professor Emeritus of Computer Science
Ref: OpenGL Programming Guide (The Red Book)
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Frame Buffers Fall 2018 CS480/680.
OpenGL-Rendering Pipeline
Presentation transcript:

© Copyright 3Dlabs 2004 Page 1 Super Buffers Workgroup Status update, December 2004

© Copyright 3Dlabs 2004 Page 2 Highlights since last ARB meeting EXT_framebuffer_object is done! Can be used for ‘render to texture’ and general off-screen rendering Only single context needed Resolved since last ARB meeting Error behavior when framebuffer cannot be rendered to What state is per context or per framebuffer object Error behavior across contexts What, if any, state can change after a call to BindFramebuffer? Still on schedule, as presented at last meeting Sept 2004 – Draft spec with render-to-texture support Dec 2004 – Final spec. Promoted to ARB (?)

© Copyright 3Dlabs 2004 Page 3 OverviewOverview New objects Renderbuffer – a new 2D storage object. Holds destination of pixel data resulting from rendering Framebuffer – Collection of logical buffers (color, depth, stencil) and its state defining where GL output is directed to. Terminology Renderbuffer image – 2D array of pixels part of a renderbuffer. Framebuffer-attachable image – 2D array of pixels that can be attached to a framebuffer. Texture images and renderbuffer images are examples. Attachment point – State that references a framebuffer-attachable image. One each for color, depth and stencil information of a framebuffer. Renderable image completeness Framebuffer attachment completeness Framebuffer completeness Renderbuffer images and texture images can be shared among framebuffers.

© Copyright 3Dlabs 2004 Page 4 Overview - cont When a framebuffer object is bound its attached images are the source and destination for rendering Color and depth textures Multiple color attachments to support MRT Stencil, depth, color renderbuffers

© Copyright 3Dlabs 2004 Page 5 RelationshipRelationship Textures (color, depth) 2D in nature Renderbuffers (stencil, depth, accum etc) Renderbuffer image is 2D in nature Attachment points Framebuffer object

© Copyright 3Dlabs 2004 Page 6 Framebuffer completeness Measures if the framebuffer can be rendered to. Depends on attachements Can be implementation specific If not complete, Begin will generate error INVALID_FRAMEBUFFER_OPERATION CheckFramebufferStatus Optional, but useful development tool Returns enums FRAMEBUFFER_COMPLETE FRAMEBUFFER_INCOMPLETE_ATTACHEMENTS FRAMEBUFFER_INCOMPLETE_IMAGES FRAMEBUFFER_INCOMPLETE_DIMENSIONS FRAMEBUFFER_INCOMPLETE_FORMATS FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER FRAMEBUFFER_INCOMPLETE_READ_BUFFER FRAMEBUFFER_UNSUPPORTED FRAMEBUFFER_STATUS_ERROR Set of state that can change on a framebuffer bind AUX_BUFFERS, MAX_DRAW_BUFFERS, STEREO, SAMPLES, X_BITS, DOUBLE_BUFFER and a few more

© Copyright 3Dlabs 2004 Page 7 Resolved since last ARB meeting At last ARB meeting asked for input on Begin error behavior Error behavior across contexts What state can change after a bind to a framebuffer object Other noteworthy issues resolved Drawbuffer state per framebuffer object Readpixels will throw error when reading from incomplete framebuffer Include separate GenerateMipmap command Framebuffer-attachable images cannot change internal format or dimensions No Accum, No multi-sample support (for now) Reading from, and rendering to, the same texture image is undefined Allow rendering to textures with borders and border pixels No context state influences framebuffer completenes

© Copyright 3Dlabs 2004 Page 8 ExampleExample #define CHECK_FRAMEBUFFER_STATUS() \ { \ GLenum status; \ status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); \ switch(status) { \ case GL_FRAMEBUFFER_COMPLETE_EXT: \ break; \ case GL_FRAMEBUFFER_UNSUPPORTED_EXT: \ // choose different formats \ break; \ default: \ // programming error; will fail on all hardware \ assert(0); \ }

© Copyright 3Dlabs 2004 Page 9 Render to 2D texture with depth buffer No benefit Need 16-bit fp Need 32-bit fp Need 16-bit and/or 32-bit fp // fb, color_tex, depth_rb already allocated // Enable render-to-texture glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb); // Set up color_tex and depth_rb for render-to-texture glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, color_tex, 0); glFramebufferRenderBufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT, GL_RENDER_BUFFER_EXT, depth_rb); CHECK_FRAMEBUFFER_STATUS(); // Re-enable rendering to the window glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); glBindTexture(GL_TEXTURE_2D, color_tex);

© Copyright 3Dlabs 2004 Page 10 Wrap up Spec done, start implementing! Next steps Format Restrictions API to layer on top Support Multi-sample, accum as separate extension Start work on “render-to-vertex-array” Questions ?