cs5500 computer graphics
Download
Skip this Video
Download Presentation
CS5500 Computer Graphics

Loading in 2 Seconds...

play fullscreen
1 / 35

Apr 19 - PowerPoint PPT Presentation


  • 224 Views
  • Uploaded on

CS5500 Computer Graphics April 19, 2007 Today’s Topic Overview of 3D pipelines. Scope of the next 2 or 3 assignments. Many Views of Graphics Pipeline Simple “Front-End/Back-End” view. Textbook version in [Foley/van Dam].

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Apr 19' - omer


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs5500 computer graphics

CS5500 Computer Graphics

April 19, 2007

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

today s topic
Today’s Topic
  • Overview of 3D pipelines.
  • Scope of the next 2 or 3 assignments.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

many views of graphics pipeline
Many Views of Graphics Pipeline
  • Simple “Front-End/Back-End” view.
  • Textbook version in [Foley/van Dam].
  • David Kirk’s (nVidia CTO) version presented in EG Hardware Workshop 1998: (slide 05) http://www.merl.com/hwws98/presentations/kirk/index.htm

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

simplified view
Simplified View
  • The Data Flow:

3D Polygons (+Colors, Lights, Normals, Texture Coordinates…etc.)

    • 2D Polygons
    • 2D Pixels (I.e., Output Images)

Transform

(& Lighting)

Rasterization

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

a quick review
A Quick Review

By default, graphic pipeline will do the following:

  • Take as input various per-vertex quantities (color, light source, eye point, texture coordinates, etc.)
  • Calculate a final color for each vertex using a basic lighting model (OpenGL uses Phong lighting)
  • For each pixel, linearly interpolate the three surrounding vertex colors to shade the pixel (OpenGL uses Gouraud shading)
  • Write the pixel color value to the frame buffer

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

the view of directx 8
The View of DirectX 8

(Note: This figure is overly crowded, so don’t worry about it if you can’t understand it at the first look. The next slide might give you a better idea of the pipeline.)

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide7
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide8
And a really scary one…

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide9
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide10
The next 6 slides are borrowed from UNC-CH COMP236 Course Slides (Spring 2003) http://www.unc.edu/courses/2003spring/comp/236/001/handouts.html

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide11
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide12
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide13
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide14
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide15
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide16
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide17
CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

implementing a 3d pipeline
Implementing a 3D Pipeline
  • A case study -- MESA.
  • Mesa 3D Graphics Library
    • A famous open source effort to implement OpenGL.
    • Pure software implementation, meaning all computation is done on CPU, not on GPU.
    • Used to call MesaGL, but SGI complained about it due to customer support issues.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

two different approaches
Two Different Approaches
  • Consider how you expect the users to create the contents to your 3D pipeline.
  • Method 1: by providing 3D model files (e.g., in the OBJ or VRML format)
    • Our approach since it’s easier to implement.
  • Method 2: by writing an OpenGL program.
    • MESA’s approach.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

slide20

3D Models

3D Renderer

MESA

OpenGL commands

OpenGLDrivers

CPU & GPU

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

input file format
Input File Format
  • Very similar to an OpenGL “command stream,” for example:

Rotate angle, x, y, z

Translate x, y, z

Color R, G, B, A

Begin Triangle

Vertex x, y, z

...

End

...

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

major components
Major Components
  • Data structures for:
    • Points, vectors, matrices
    • Lines and polygons (or just triangles)
    • Frame buffer and textures
  • Transformation
  • Lighting
  • Clipping & Projection
  • Rasterization & texture mapping

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

don t reinvent the wheel
Don’t Reinvent the Wheel
  • A few useful 3D vector and matrix code: http://www.cs.nthu.edu.tw/~chunfa/code/algebra3.zip
  • Or borrow one from your friends, or find a good one from the Internet.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

graphics hardware
Graphics Hardware
  • Why do we study the graphics pipeline in such depth? Why not teaching more Cg or shader programming?
  • You’ve got to know some hardware!
  • They are all built upon the traditional 3D pipeline.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

why need hardware
Why Need Hardware
  • All parts of graphics pipeline can be done in software.
    • But very slowly.
    • Example: mesaGL
  • For some applications, speed is beauty
    • Games
    • Walkthrough
    • Visualization

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

evolutions of graphics hardware
Evolutions of Graphics Hardware
  • Gouraud-shaded polygons.
  • Then came antialiasing.
  • Then came texture mapping.
  • Now comes programmable shading.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

john poulton s chart
John Poulton’s Chart

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

fixed vs programmable
Fixed vs. Programmable
  • Starting in 1999 some graphics cards used the standard lighting model and Gouraud shading to draw polygon fragments entirely in hardware
  • Implementing the pipeline in hardware made processing polygons much faster, but the developer could not modify the pipeline (hence “fixed function pipeline”)
  • New programmable hardware allows programmers to write vertex and pixel programs to change the pipeline

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

opengl fixed function vertex
OpenGLFixed Function Vertex

Vertex (object)

Vertex (clip)

Transform[MVP],[MV],[MV]-T

Normal

Vertex (eye)

ColorSecondaryColor

Front&BackColor

[0,1]

Lighting

Front&BackSecondaryColor

[0,1]

Texgen

TextureMatrixn

TexCoordn

TexCoordn

EdgeFlag

EdgeFlag

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

gl2 vertex processor
GL2 Vertex Processor

Vertex (object)

Vertex (clip)

Uniform

Normal

Vertex (eye)

ColorSecondaryColor

VertexShader

Front&BackColor

Front&BackSecondaryColor

TexCoordn

Temporaries

TexCoordn

EdgeFlag

EdgeFlag

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

programmable shaders
Programmable Shaders
  • A concept made popular by Pixar’s RenderMan.
  • First appeared in hardware: UNC PixelFlow
    • See SIGGRAPH papers by Molnar 1995 and Olano 1997.
  • Made affordable by nVidia GeForce3 and XBox.

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

faked global illumination
Faked Global Illumination
  • Shadow, Reflection, BRDF…etc.
  • In theory, real global illumination is not possible in current graphics pipeline:
    • Conceptually a loop of individual polygons.
    • No interaction between polygons.
  • Can this be changed by multi-pass rendering?

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

future trends
Future Trends
  • Vertex/Pixel shaders will become more and more flexible
    • Less limits on program size
    • Able to execute branch instructions
    • Capable of moving complicated effects (like those in Renderman) onto the GPU
  • More and more operations executed per-pixel rather than per-vertex
  • As people get more creative with the hardware we will see more techniques for non-photorealistic rendering

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

future trends34
Future Trends
  • Real-time fur

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

future trends35
Future Trends
  • More realistic skin
    • Subsurface scattering approximation

CS5500 Computer Graphics

© Chun-Fa Chang, Spring 2007

ad