1 / 24

CIS 636/736 Computer Graphics Lecture 12 of 42

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

lester-hahn
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. 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. 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

  2. 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

  3. Lighting Dave Shreiner CIS 636/736: (Introduction to) Computer Graphics

  4. 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

  5. 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

  6. 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

  7. Light Sources • Light color properties • GL_AMBIENT • GL_DIFFUSE • GL_SPECULAR CIS 636/736: (Introduction to) Computer Graphics

  8. 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

  9. Light Material Tutorial CIS 636/736: (Introduction to) Computer Graphics

  10. 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

  11. Light Position Tutorial CIS 636/736: (Introduction to) Computer Graphics

  12. 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

  13. Texture Mapping Ed Angel CIS 636/736: (Introduction to) Computer Graphics

  14. 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

  15. y z x t s Texture Mapping screen geometry image CIS 636/736: (Introduction to) Computer Graphics

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. Tutorial: Texture CIS 636/736: (Introduction to) Computer Graphics

  22. 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

  23. 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

  24. 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

More Related