CIS 636/736 Computer Graphics
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

CIS 636/736 Computer Graphics Lecture 12 of 42 PowerPoint PPT Presentation


  • 45 Views
  • Uploaded on
  • Presentation posted in: General

CIS 636/736 Computer Graphics Lecture 12 of 42. Surface Detail 5: Pixel and Vertex Programs. William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/Courses/CIS636

Download Presentation

CIS 636/736 Computer Graphics Lecture 12 of 42

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


Cis 636 736 computer graphics lecture 12 of 42

CIS 636/736 Computer GraphicsLecture 12 of 42

Surface Detail 5:

Pixel and Vertex Programs

William H. Hsu

Department of Computing and Information Sciences, KSU

KSOL course pages: http://snipurl.com/1y5gc

Course web site: http://www.kddresearch.org/Courses/CIS636

Instructor home page: http://www.cis.ksu.edu/~bhsu

Readings:

All slides from SIGGRAPH 2000 tutorial on OpenGL, Shreiner, Angel, Shreiner: http://www.cs.unm.edu/~angel/SIGGRAPH/

Sections 2.6, 3.1, 20.3 – 20.13, Eberly 2e – see http://snurl.com/1ye72

NeHe tutorials: 6 – 10, http://nehe.gamedev.net

Article: http://www.kuro5hin.org/story/2003/10/28/9853/1617

CIS 636/736: (Introduction to) Computer Graphics


Cis 636 736 computer graphics lecture 12 of 42

Lecture Outline

  • Based in part on OpenGL Tutorials from SIGGRAPH 2000

  • Vicki Shreiner: Animation and Depth Buffering

    • Double buffering

    • Illumination: light positioning, light models, attenuation

    • Material properties

    • Animation basics in OpenGL

  • Vicki Shreiner: Imaging and Raster Primitives

  • Ed Angel: Texture Mapping

  • Dave Shreiner: Advanced Topics

    • Display lists and vertex arrays

    • Accumulation buffer

    • Fog

    • Stencil buffering

    • Fragment programs (to be concluded in Tutorial 3)

CIS 636/736: (Introduction to) Computer Graphics


Lighting

Lighting

Dave Shreiner

CIS 636/736: (Introduction to) Computer Graphics


Lighting principles

Lighting Principles

  • Lighting simulates how objects reflect light

    • material composition of object

    • light’s color and position

    • global lighting parameters

      • ambient light

      • two sided lighting

    • available in both color indexand RGBA mode

CIS 636/736: (Introduction to) Computer Graphics


Surface normals

Per

Vertex

Poly.

Frag

FB

Raster

CPU

DL

Texture

Pixel

Surface Normals

  • Normals define how a surface reflects light

    glNormal3f( x, y, z )

    • Current normal is used to compute vertex’s color

    • Use unit normals for proper lighting

      • scaling affects a normal’s length

        glEnable( GL_NORMALIZE )orglEnable( GL_RESCALE_NORMAL )

CIS 636/736: (Introduction to) Computer Graphics


Light properties

Light Properties

glLightfv( light, property, value );

  • light specifies which light

    • multiple lights, starting with GL_LIGHT0

      glGetIntegerv( GL_MAX_LIGHTS, &n );

  • properties

    • colors

    • position and type

    • attenuation

CIS 636/736: (Introduction to) Computer Graphics


Light sources

Light Sources

  • Light color properties

    • GL_AMBIENT

    • GL_DIFFUSE

    • GL_SPECULAR

CIS 636/736: (Introduction to) Computer Graphics


Turning on the lights

Turning on the Lights

  • Flip each light’s switch

    glEnable( GL_LIGHTn );

  • Turn on power

    glEnable( GL_LIGHTING );

CIS 636/736: (Introduction to) Computer Graphics


Light material tutorial

Light Material Tutorial

CIS 636/736: (Introduction to) Computer Graphics


Controlling a light s position

Controlling a Light’s Position

  • Modelview matrix affects a light’s position

    • Different effects based on whenposition is specified

      • eye coordinates

      • world coordinates

      • model coordinates

    • Push and pop matrices to uniquely control a light’s position

CIS 636/736: (Introduction to) Computer Graphics


Light position tutorial

Light Position Tutorial

CIS 636/736: (Introduction to) Computer Graphics


Pixel pipeline

Per

Vertex

Poly.

Frag

FB

Raster

CPU

DL

Texture

Pixel

Pixel Pipeline

  • Programmable pixel storage and transfer operations

glBitmap(), glDrawPixels()

Rasterization

(including

Pixel Zoom)

Pixel

Storage

Modes

Pixel-Transfer

Operations

(and Pixel Map)

Per FragmentOperations

FrameBuffer

CPU

glCopyTex*Image();

TextureMemory

glReadPixels(), glCopyPixels()

CIS 636/736: (Introduction to) Computer Graphics


Texture mapping

Texture Mapping

Ed Angel

CIS 636/736: (Introduction to) Computer Graphics


Texture mapping1

Per

Vertex

Poly.

Frag

FB

Raster

CPU

DL

Texture

Pixel

Texture Mapping

  • Apply 1-D, 2-D, or 3-D image to geometric primitives

  • Uses of Texturing

    • simulating materials

    • reducing geometric complexity

    • image warping

    • reflections

CIS 636/736: (Introduction to) Computer Graphics


Texture mapping2

y

z

x

t

s

Texture Mapping

screen

geometry

image

CIS 636/736: (Introduction to) Computer Graphics


Texture mapping and opengl pipeline

Images and geometry flow through separate pipelines that join at the rasterizer

“complex” textures do not affect geometric complexity

geometry pipeline

vertices

rasterizer

image

pixel pipeline

Texture Mapping andOpenGL Pipeline

CIS 636/736: (Introduction to) Computer Graphics


Texture example

Texture Example

  • The texture (below) is a 256 x 256 image that has beenmapped to a rectangularpolygon which is viewed inperspective

CIS 636/736: (Introduction to) Computer Graphics


Applying textures 1

Applying Textures [1]

  • Three steps

    • specify texture

      • read or generate image

      • assign to texture

    • assign texture coordinates to vertices

    • specify texture parameters

      • wrapping, filtering

CIS 636/736: (Introduction to) Computer Graphics


Applying textures 2

Applying Textures [2]

  • specify textures in texture objects

  • set texture filter

  • set texture function

  • set texture wrap mode

  • set optional perspective correction hint

  • bind texture object

  • enable texturing

  • supply texture coordinates for vertex

    • coordinates can also be generated

CIS 636/736: (Introduction to) Computer Graphics


Specify texture image

Per

Vertex

Poly.

Frag

FB

Raster

CPU

DL

Texture

Pixel

Specify Texture Image

  • Define a texture image from array of texels in CPU memory

    glTexImage2D( target, level, components, w, h, border, format, type, *texels );

    • dimensions of image must be powers of 2

  • Texel colors are processed by pixel pipeline

    • pixel scales, biases and lookups can bedone

CIS 636/736: (Introduction to) Computer Graphics


Tutorial texture

Tutorial: Texture

CIS 636/736: (Introduction to) Computer Graphics


Cis 636 736 computer graphics lecture 12 of 42

Summary

  • OpenGL Tutorials from SIGGRAPH 2000

  • Vicki Shreiner: Animation and Depth Buffering

    • Double buffering

    • Illumination: light positioning, light models, attenuation

    • Material properties

    • Animation basics in OpenGL

  • Vicki Schreiner: Imaging and Raster Primitives

  • Ed Angel: Texture Mapping in OpenGL

  • More in CG Basics 5: GL Primer 2 of 3

CIS 636/736: (Introduction to) Computer Graphics


Cis 636 736 computer graphics lecture 12 of 42

Terminology

  • Double Buffering

  • Lighting

  • Illumination Equation – describes light in scene

    • Ambient light – catch-all term for whole scene, all lights

    • Diffuse reflectance – omnidirectional, from matte surfaces

    • Specular reflectance – unidirectional, for highlights: shiny surfaces

    • Attenuation – how quickly light drops off as function of distance

  • Pixel and Fragment Programs (“Pixel Shaders”)

  • Vertex Shaders

  • Texture Maps

  • Other Mappings Discussed in Course

    • Bumpakadisplacement – perturb surface normal, calculate lighting

    • Reflection and transparency

    • Shadow

    • Environment

CIS 636/736: (Introduction to) Computer Graphics


Cis 636 736 computer graphics lecture 12 of 42

Next: Polygons, OpenGL Tutorial 3

  • Dave Shreiner: Advanced Topics (concluded)

    • Advanced Primitives: Cubic Curves, Bicubic Surfaces

    • More on Shadow Stencil Buffer

    • Alpha, Blending, Antialiasing

    • Accumulation Buffer, Fog, Jitter

  • Using the OpenGL Shading Language

    • More on fragment programs

    • Demo: color interpolation

    • Example: Fast Phong shading

  • Special Effects

CIS 636/736: (Introduction to) Computer Graphics


  • Login