1 / 33

GR2 Advanced Computer Graphics AGR

GR2 Advanced Computer Graphics AGR. Lecture 5 Getting Started with OpenGL A Simple Reflection Model. What is OpenGL?. OpenGL provides a set of routines for advanced 3D graphics derived from Silicon Graphics GL acknowledged industry standard, even on PCs (OpenGL graphics cards available)

dusty
Download Presentation

GR2 Advanced Computer Graphics AGR

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. GR2Advanced Computer GraphicsAGR Lecture 5 Getting Started with OpenGL A Simple Reflection Model

  2. What is OpenGL? • OpenGL provides a set of routines for advanced 3D graphics • derived from Silicon Graphics GL • acknowledged industry standard, even on PCs (OpenGL graphics cards available) • integrates 3D drawing into X (and other window systems such as Windows NT) • draws simple primitives (points, lines, polygons) but NOT complex primitives such as spheres • provides control over transformations, lighting, etc

  3. Geometric Primitives • Defined by a group of vertices - for example to draw a triangle: glBegin (GL_POLYGON); glVertex3i (0, 0, 0); glVertex3i (0, 1, 0); glVertex3i (1, 0, 1); glEnd(); • See Chapter 2 of the OpenGL Programming Guide

  4. Viewing • OpenGL maintains two matrix transformation modes • MODELVIEW to specify modelling transformations, and transformations to align camera • PROJECTION to specify the type of projection (parallel or perspective) and clipping planes • See Chapter 3 of OpenGL Programming Guide

  5. OpenGL Utility Library (GLU) • Useful set of higher level utility routines to make some tasks easier • written in terms of OpenGL and provided with the OpenGL implementation • for example, gluLookAt() is a way of specifying the viewing transformation • See Appendix C of OpenGL Programming Guide

  6. OpenGL Utility Toolkit (GLUT) • Set of routines to provide an interface to the underlying windowing system - plus many useful high-level primitives (even a teapot - glutSolidTeapot()!) • Improved version of the ‘aux’ library described in Appendix E of the Guide • Allows you to write ‘event driven’ applications • you specify call back functions which are executed when an event (eg window resize) occurs

  7. How to Get Started • Look at the GR2 practicals page: • http://www.scs.leeds.ac.uk/kwb/GR2/ practicals.html • Points you to: • example programs • information about GLUT • information about OpenGL • a simple exercise

  8. A Simple Reflection Model

  9. What is a Reflection Model? • A reflection model (also called lighting or illumination model) describes the interaction between light and a surface, in terms of: • surface properties • nature of incident light • Computer graphics uses a simplification of accurate physical models • objective is to mimic reality to an acceptable degree

  10. Phong Reflection Model • The most common reflection model in computer graphics is due to Bui-Tuong Phong - in 1975 • Has proved an acceptable compromise between simplicity and accuracy • Largely empirical

  11. Diffuse Reflection and Specular Reflection - Phong Approach white light Some light reflected directly from surface. Other light passes into material. Particles of pigment absorb certain wavelengths from the incident light, but also scatter the light through multiple reflections - some light emerges back through surface as diffuse reflection. specular reflection (white) diffuse reflection (yellow) yellow pigment particles microscopic view

  12. Ambient Reflection • In addition to diffuse and specular reflection, a scene will also include ambient reflection • This is caused by light falling on an object after reflection off other surfaces • eg in a room with a light above a table, the floor below the table will not be totally black, despite having no direct illumination - this is reflection of ambient light

  13. Reflection Model - Ambient Light hemisphere of ambient light surface P Ia = Intensity of ambient light Ka = Ambient-reflection coefficient I = Reflected intensity = wavelength of light I ( )= Ka ( )Ia()

  14. light source light source Reflection Model - Diffuse Reflection light source P P Light reflected equally in all directions - intensity dependent on angle  between light source and surface normal Lambert’s cosine law: I = I* cos  where I* is intensity of light source N L  surface

  15. light source Reflection Model - Diffuse Reflection N L  surface Light reflected equally in all directions, with intensity depending on angle  between light and surface normal: I* = Intensity of light source N = Surface normal L = Direction of light source Kd = Diffuse-reflection coefficient I = Reflected intensity I = Kd ( cos ) I*

  16. Reflection Model - Diffuse Reflection light source N • The angle between two vectors is given by their dot product: cos  = L . N (assume L, N are unit length) • The coefficient Kd depends on the wavelength of the incoming light L  surface I (  ) = Kd() ( L . N ) I*()

  17. light source Reflection Model - Specular Reflection N R P In perfect specular reflection, light is only reflected along the unique direction symmetric to the incoming light

  18. light source Reflection Model - Specular Reflection N R P In practice, light is reflected within a small angle of the perfect reflection direction - the intensity of the reflection tails off at the outside of the cone. This gives a narrow highlight for shiny surfaces, and a broad highlight for dull surfaces.

  19. Reflection Model - Specular Reflection • Thus we want to model intensity, I, as a function of angle between viewer and R, say , like this: I  with a sharper peak for shinier surfaces, and broader peak for dull surfaces.

  20. Reflection Model - Specular Reflection • Phong realised this effect can be modelled by: (cos  )n with a sharper peak for larger n I n=1 n=10 

  21. Reflection Model - Specular Reflection light source N R eye L  V surface Intensity depends on angle between eye and reflected light ray: I* = Intensity of light source V = View direction R = Direction of perfect reflected light Ks = Specular-reflection coefficient I = Reflected intensity I = Ks( cos )n I* n varies with material large n : shiny small n : dull

  22. Reflection Model - Specular Reflection light source N R eye L  V surface Using cos = R . V (R, V unit vectors), we have: I () = Ks ( R . V )n I()* Note: Ks does not depend on the wavelength  - hence colour of highlight is same as source

  23. Reflection Model - Ambient, Diffuse and Specular light source N R eye L  V  surface I() = Ka()Ia() + ( Kd()( L . N ) + Ks( R . V )n ) I*()

  24. Reflection Model - Effect of Distance light source d surface The intensity of light reaching a surface decreases with distance - so we use typically: I* K1, K2, K3 constant - often K2=1, K3=0 K1 + K2*d + K3*d2

  25. I() = Ka()Ia() + ( Kd()( L . N ) + Ks( R . V )n ) I*() K1 + K2*d + K3*d2 Final Reflection Model light source N R eye L  V d  surface This needs to be applied for every light source in the scene

  26. Phong Model in Practice • In practice, some simplifications are made to the model for sake of efficiency • For example, ambient light is sometimes assumed to be a constant • Other simplifications are: • lights at infinity • simple colour model

  27. Practicalities - Effect of Distance • There are advantages in assuming light source and viewer are at infinity • L and V are then fixed for whole scene and calculations become simpler • Lights at infinity are called directional lights • Lights at a specified position are called positional,or point, lights

  28. Practicalities - Calculating R N R • R + L = 2 ( N.L ) N hence R = 2 ( N.L )N - L • In practice, implementations often compute H = ( L + V ) / 2 and replace (R.V) with (H.N) • these are not the same, but compensation is made with choice of n (angle between N and H is half angle between R and V) R L N V H R L

  29. Practicalities - Calculating R • As noted, if viewer and light source both sufficiently far from surface, then V and L are constant over scene - and also H • Then, for nonplanar surfaces, the calculation: N . H is faster than R . V because R needs to be evaluated at each point in terms of N.

  30. Practicalities - Effect of Colour • The Phong reflection model gives reflection for each wavelength  in visible spectrum • In practice, we assume light to be composed as a mixture of RGB (red, green, blue) components - and reflection model is applied for each component • Coefficients of ambient-reflection (Ka) and diffuse-reflection (Kd) have separate components for RGB • Coefficient of specular-reflection (Ks) is independent of colour

  31. Example - Ambient Reflection

  32. Example - Ambient and Diffuse

  33. Ambient, Diffuse and Specular

More Related