OpenGL ES 2.0 Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D.

Size: px
Start display at page:

Download "OpenGL ES 2.0 Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D."

Transcription

1 OpenGL ES 2.0 Lighting CS421 Advanced Computer Graphics Jay Urbain, Ph.D. 1

2 Lighting effects concepts Objectives Modeling ambient and diffuse light Light sources Use lighting effects in OpenGL ES 2.0 References: Fallout Software: OpenGL Lighting or How Light Sources Work (Long, In-depth Tutorial) Clockworkcoders Tutorials: Per Fragment Lighting Lighthouse3D.com: The Normal Matrix arcsynthesis.org: OpenGL Tutorials: Normal Transformation OpenGL Programming Guide: Chapter 5 Lighting OpenGL ES 2.0 Programming Guide 2

3 Light What we perceive as light is really the aggregation of trillions of tiny particles called photons. Photons fly out of a light source, bounce around thousands or millions of times, and eventually reach our eye where we perceive it as light. How can we simulate the effects of light via computer graphics? 3

4 Ray Tracing in Nature Think of "ray" as a stream of photons traveling along the same path. Light source emits a ray of light which eventually intersects a surface which interrupts its progress. At point of intersection any combination of three things might happen with this light ray: Reflect Absorb Refract 4

5 Ray tracing Ray Tracing Mathematically trace actual rays of light in a scene and see where the end up. Provides accurate and realistic results. The downside is that simulating all of those rays is computationally expensive, and usually too slow for real-time rendering. Global lighting model which makes it more difficult to implement on GPUs which inherently perform local operations. Important area of research and significant progress is being made. 5

6 Computational Burden Simulating real-world process of tracing light rays can be considered extremely wasteful! 6

7 Rasterization Most real-time computer graphics use rasterization instead. Simulates lighting by approximatingthe result. Given realism of recent games, rasterizationcan also look very nice, and it is fast enough for RT graphics (even on mobile phones) Rasterizationis a local lighting model lending itself to efficient implementation on modern GPUs. Open GL ES is primarily a rasterization library. 7

8 Types of Lighting Ambient lighting Diffuse lighting Specular lighting Emissive lighting 8

9 Ambient lighting Base level of lighting that seems to pervade an entire scene. Does not appear to come from any particular light source since it has bounced around so much before reaching you. Experienced outdoors on an overcast day, or indoors as the cumulative effect of many different light sources. Instead of calculating all of the individual lights, we can just set a base light level for the object or scene. 9

10 Diffuse lighting Light that reaches your eye after bouncing directly off of an object. The illumination level of the object varies with its angle to the lighting. Something facing the light head on is lit more brightly than something facing the light at an angle. Also, we perceive the object to be the same brightness no matter which angle we are at relative to the object. Known aslambert s cosine law. 10

11 Specular lighting Unlike diffuse lighting, specular lighting changes as we move relative to the object. This gives shininess to the object and can be seen on smoother surfaces such as glass and other shiny objects. 11

12 Lighting Component Summary Ambient Light: Light that is scatteredwithout direction, i.e., direction is impossible to determine. When ambient light hits a surface, it s scattered equally in all directions. Diffuse Light: Light coming from one direction, so its brighter when it comes down perpendicular to surface versus an angle. Once it hits the surface its scattered equally in all directions. Specular Light: Light coming from one direction, and it tends to bounce off surface in a preferred, i.e., reflected direction. E.g., laser beam. 12

13 Lighting Components (cont.) Emissive Light: Simulate light coming from object. Adds intensity to object. Does not introduce additional lighting in scene. 13

14 Simulating light Directional lighting Point lighting Spot lighting 14

15 Directional lighting Directional lighting usually comes from a bright source that is so far away that it lights up the entire scene evenly and to the same brightness. This light source is the simplest type as the light is the same strengthand directionno matter where you are in the scene. 15

16 Point lighting Point lights can be added to a scene in order to give more varied and realistic lighting. The illumination of a point lightfalls off with distance. Light rays travel out in all directions with the point light at the center. 16

17 Spot lighting In addition to the properties of a point light, spot lights also have the direction of light attenuated, usually in the shape of a cone. 17

18 Ambient lighting the math Ambient lighting is really indirect diffuse lighting. Low-level light which pervades the entire scene. final color = material color * ambient light color Example: object is red and our ambient light is a dim white. final color = {1, 0, 0} * {0.1, 0.1, 0.1} = {0.1, 0.0, 0.0} The final color of the object will be a dim red, which is what you d expect if you had a red object illuminated by a dim white light. This is basic ambient lighting, unless you want to get into more advanced lighting techniques such as radiosity(global lighting algorithm using finite element analysis). 18

19 Diffuse lighting with point light source For diffuse lighting, we need to add attenuationand a light position. The light position is used to: calculate the angle between the light and the surface, which will affect the surface s overall level of lighting. calculate the distance between the light and the surface, which determines the strength of the light at that point. 19

20 Diffuse lighting point light source Lambert s cosine law A surface which is facing the light straight-on should be illuminated at full strength. Asurface which is slanted should get less illumination. Calculate angle between the surface and the light. Given two vectors, one being from the light to a point on the surface, and the second being a surface normal. Calculate the cosine by first normalizing each vector so that it has a length of one. Then by calculate thedot productof the two vectors. 20

21 Diffuse lighting point light source 1) Calculating the lambert factor Lambert factor, range between 0 and light vector = light position - object position 2. cosine = dot_product(object_normal, normalize(light_vector)) 3. lambert factor = max(cosine, 0) Normalization is to unit length. Assume object_normal is already normalized. Dot product of two normalized vectors gives you the cosine and can have a range of-1to1. Clamp to a range of0to1. 21

22 Diffuse lighting point light source 1) Calculating the lambert factor Example: Flat plane at the origin, surface normal pointing straight up {0, 1, 0}. Light positioned at {0, 10, -10}, or 10 units up and 10 units straight ahead. Want to calculate the light at the origin. light vector = {0, 10, -10}-{0, 0, 0} = {0, 10, -10} object normal = {0, 1, 0} light vector length = square root(0*0 + 10* *-10) = square root(200) = normalized light vector = {0, 10/14.14, -10/14.14} = {0, 0.707, } dot product({0, 1, 0}, {0, 0.707, }) = (0 * 0) + (1 * 0.707) + (0 * ) = = lambert factor = max(0.707, 0) =

23 Diffuse lighting point light source 2) Calculating the attenuation factor Real light attenuation from a point light source follows the inverse square law: luminosity = 1 / (distance * distance) Since we have a distance of (from example), our final luminosity is: luminosity = 1 / (14.14*14.14) = 1 / 200 = Note: The inverse square law can lead to a strong attenuation over distance. This is how light from a point light source works in the real world, but since our graphics displays have a limited range, it can be useful to dampen this attenuation factor. 23

24 Diffuse lighting point light source 3) Calculate the final color final color = material color * (light color * lambert factor * luminosity) Example: red material and a full white light source: final color = {1, 0, 0} * ({1, 1, 1} * * 0.005}) 24

25 Diffuse lighting point light source Summary //Step one light vector = light position - object position cosine = dot product(object normal, normalize(light vector)) lambert factor = max(cosine, 0) //Step two luminosity = 1 / (distance * distance) //Step three final color = material color * (light color * lambert factor * luminosity) 25

26 26

27 Shader // Transform the vertex into eye space. + " vec3 modelviewvertex = vec3(u_mvmatrix * a_position); \n" // Transform the normal's orientation into eye space. + " vec3 modelviewnormal = vec3(u_mvmatrix * vec4(a_normal, 0.0)); \n" // Needed for attenuation calculation + " float distance = length(u_lightpos - modelviewvertex); \n" // Get a lighting direction vector from the light to the vertex. + " vec3 lightvector = normalize(u_lightpos - modelviewvertex); \n" 27

28 Shader (cont.) // Calculate the dot product of the light vector and vertex normal. // If the normal &light vectors are pointing in the same direction then it will // get max illumination. + " float diffuse = max(dot(modelviewnormal, lightvector), 0.1); \n" // Attenuate the light based on distance. + " diffuse = diffuse * (1.0 / (1.0 + (0.25 * distance * distance))); \n" // Multiply the color by the illumination level. It will be interpolated across the triangle. + " v_color= a_color* diffuse; \n" // Multiply the vertex by the matrix to get the final point in normalized screen coordinates. + " gl_position = u_mvpmatrix* a_position; \n" + "} \n"; 28

29 Pixel Shader pass through final String fragmentshader = "precision mediumpfloat; \n" // Set the default precision to medium. We don't need as high of // a precision in the fragment shader. + "varying vec4 v_color; \n" // This is the color from the vertex shader interpolated across the // triangle per fragment. + "void main() \n" // The entry point for our fragment shader. + "{ \n" + " gl_fragcolor= v_color; \n" // Pass the color directly through the pipeline. + "} \n"; 29

30 Application // Use culling to remove back faces. GLES20.glEnable(GLES20.GL_CULL_FACE); // Enable depth testing GLES20.glEnable(GLES20.GL_DEPTH_TEST); 30

31 Per-Vertex versus per-pixel lighting Per-Vertex Lighting For diffuse lighting of objects with smooth surfaces, such as terrain, or for objects with many triangles, this will often be good enough. If your objects don t contain many vertices (such as cubes!) or have sharp corners, vertex lighting can result in artifacts as the light level is linearly interpolated across the polygon. These artifacts also become much more apparent when specular highlights are added to the image. More can be seen at the Wiki article ongouraudshading. 31

32 Computing Surface Normals In order to display light correctly you are required to compute normal vectors for each polygon in an object. A normal of a polygon is a perpendicular vector in relation to the polygon s surface (v0, v1) for surface s0, s1, s2, s3. OpenGL does not compute normal vectors for you. 32

33 Surface Normals All models in your 3D scene will be made out of polygons. Convenient to have a function which calculates the normal vector of a polygon. A normal vector of a polygon is the cross productof two vectors located on the surface plane of the polygon. Take any two vectors located on the polygon's plane and calculate their cross product. The cross product will be the resulting normal vector. 33

34 Calculate Normal Vector typedefstructvertex_s{ float x, y, z; } vertex_t; void normal (vertex_tv[3], vertex_t*normal) { vertex_ta, b; // calculate the vectors A and B, CCW a.x= v[0].x -v[1].x; a.y= v[0].y -v[1].y; a.z= v[0].z -v[1].z; b.x= v[1].x -v[2].x; b.y= v[1].y -v[2].y; b.z= v[1].z -v[2].z; // calculate the cross product normal->x = (a.y* b.z) -(a.z* b.y); normal->y = (a.z* b.x) -(a.x* b.z); normal->z = (a.x* b.y) -(a.y* b.x); normalize(normal); } 34

35 The Need for Normalization To normalize a normal vector means to reduce its length to unit size. A unit size is just 1. All of the calculated normal vectors are required to be a length of 1 to work properly. 35

36 How to Perform Normalization Need to reduce the size of a given normal vector to a length of 1. First, find the length of a normal vector by taking all of the coordinate components (x, y and z) of that vector and squaring them. Add all of the squared components and find the square root of that sum. This sum will be the length of the vector. Afterwards, divide each coordinate component of the vector by its derived length and you will get a vector which points in the same exact direction but of unit length. 36

37 Normalize void normalize (vector_t*v){ // calculate the length of the vector float len= (float)(sqrt((v.x* v.x) + (v.y* v.y) + (v.z* v.z))); // avoid division by 0 if (len== 0.0f) len= 1.0f; // reduce to unit size v.x/= len; v.y/= len; v.z/= len; } 37

INTRODUCTION TO RENDERING TECHNIQUES

INTRODUCTION TO RENDERING TECHNIQUES INTRODUCTION TO RENDERING TECHNIQUES 22 Mar. 212 Yanir Kleiman What is 3D Graphics? Why 3D? Draw one frame at a time Model only once X 24 frames per second Color / texture only once 15, frames for a feature

More information

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing

More information

Computer Animation: Art, Science and Criticism

Computer Animation: Art, Science and Criticism Computer Animation: Art, Science and Criticism Tom Ellman Harry Roseman Lecture 12 Ambient Light Emits two types of light: Directional light, coming from a single point Contributes to diffuse shading.

More information

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS ICCVG 2002 Zakopane, 25-29 Sept. 2002 Rafal Mantiuk (1,2), Sumanta Pattanaik (1), Karol Myszkowski (3) (1) University of Central Florida, USA, (2) Technical University of Szczecin, Poland, (3) Max- Planck-Institut

More information

GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus

GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus ICICTE 2014 Proceedings 1 GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus Abstract This paper presents

More information

Computer Graphics Global Illumination (2): Monte-Carlo Ray Tracing and Photon Mapping. Lecture 15 Taku Komura

Computer Graphics Global Illumination (2): Monte-Carlo Ray Tracing and Photon Mapping. Lecture 15 Taku Komura Computer Graphics Global Illumination (2): Monte-Carlo Ray Tracing and Photon Mapping Lecture 15 Taku Komura In the previous lectures We did ray tracing and radiosity Ray tracing is good to render specular

More information

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies COMP175: Computer Graphics Lecture 1 Introduction and Display Technologies Course mechanics Number: COMP 175-01, Fall 2009 Meetings: TR 1:30-2:45pm Instructor: Sara Su (sarasu@cs.tufts.edu) TA: Matt Menke

More information

Thea Omni Light. Thea Spot Light. Light setup & Optimization

Thea Omni Light. Thea Spot Light. Light setup & Optimization Light setup In this tutorial we will learn how to setup lights inside Thea Studio and how to create mesh lights and optimize them for faster rendering with less noise. Let us have a look at the different

More information

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering 3. Computer Graphics Sungmin Kim http://latam.jnu.ac.kr Computer Graphics Definition Introduction Research field related to the activities that includes graphics as input and output Importance Interactive

More information

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007 Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Questions 2007 INSTRUCTIONS: Answer all questions. Spend approximately 1 minute per mark. Question 1 30 Marks Total

More information

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1 Welcome to GUI! Mechanics 26/02/2014 1 Requirements Info If you don t know C++, you CAN take this class additional time investment required early on GUI Java to C++ transition tutorial on course website

More information

Introduction to Computer Graphics

Introduction to Computer Graphics Introduction to Computer Graphics Torsten Möller TASC 8021 778-782-2215 torsten@sfu.ca www.cs.sfu.ca/~torsten Today What is computer graphics? Contents of this course Syllabus Overview of course topics

More information

An introduction to Global Illumination. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

An introduction to Global Illumination. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology An introduction to Global Illumination Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Isn t ray tracing enough? Effects to note in Global Illumination image:

More information

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16 PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16 Table of contents Under construction PLMCC, JSS Academy of Technical Education,

More information

Lighting & Rendering in Maya: Lights and Shadows

Lighting & Rendering in Maya: Lights and Shadows Lighting & Rendering in Maya: Lights and Shadows with Jeremy Birn 3dRender.com 1. Introduction: Light and Color 12:09 Keywords: Maya Spot Lights, hardware preview of lights, High Quality Rendering, real-time

More information

A Short Introduction to Computer Graphics

A Short Introduction to Computer Graphics A Short Introduction to Computer Graphics Frédo Durand MIT Laboratory for Computer Science 1 Introduction Chapter I: Basics Although computer graphics is a vast field that encompasses almost any graphical

More information

H.Calculating Normal Vectors

H.Calculating Normal Vectors Appendix H H.Calculating Normal Vectors This appendix describes how to calculate normal vectors for surfaces. You need to define normals to use the OpenGL lighting facility, which is described in Chapter

More information

Specular reflection. Dielectrics and Distribution in Ray Tracing. Snell s Law. Ray tracing dielectrics

Specular reflection. Dielectrics and Distribution in Ray Tracing. Snell s Law. Ray tracing dielectrics Specular reflection Dielectrics and Distribution in Ray Tracing CS 465 Lecture 22 Smooth surfaces of pure materials have ideal specular reflection (said this before) Metals (conductors) and dielectrics

More information

High Dynamic Range and other Fun Shader Tricks. Simon Green

High Dynamic Range and other Fun Shader Tricks. Simon Green High Dynamic Range and other Fun Shader Tricks Simon Green Demo Group Motto If you can t make it good, make it big. If you can t make it big, make it shiny. Overview The OpenGL vertex program and texture

More information

path tracing computer graphics path tracing 2009 fabio pellacini 1

path tracing computer graphics path tracing 2009 fabio pellacini 1 path tracing computer graphics path tracing 2009 fabio pellacini 1 path tracing Monte Carlo algorithm for solving the rendering equation computer graphics path tracing 2009 fabio pellacini 2 solving rendering

More information

Part I. Basic Maths for Game Design

Part I. Basic Maths for Game Design Part I Basic Maths for Game Design 1 Chapter 1 Basic Vector Algebra 1.1 What's a vector? Why do you need it? A vector is a mathematical object used to represent some magnitudes. For example, temperature

More information

PHOTON mapping is a practical approach for computing global illumination within complex

PHOTON mapping is a practical approach for computing global illumination within complex 7 The Photon Mapping Method I get by with a little help from my friends. John Lennon, 1940 1980 PHOTON mapping is a practical approach for computing global illumination within complex environments. Much

More information

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group Shader Model 3.0 Ashu Rege NVIDIA Developer Technology Group Talk Outline Quick Intro GeForce 6 Series (NV4X family) New Vertex Shader Features Vertex Texture Fetch Longer Programs and Dynamic Flow Control

More information

Vector Math Computer Graphics Scott D. Anderson

Vector Math Computer Graphics Scott D. Anderson Vector Math Computer Graphics Scott D. Anderson 1 Dot Product The notation v w means the dot product or scalar product or inner product of two vectors, v and w. In abstract mathematics, we can talk about

More information

CSE168 Computer Graphics II, Rendering. Spring 2006 Matthias Zwicker

CSE168 Computer Graphics II, Rendering. Spring 2006 Matthias Zwicker CSE168 Computer Graphics II, Rendering Spring 2006 Matthias Zwicker Last time Global illumination Light transport notation Path tracing Sampling patterns Reflection vs. rendering equation Reflection equation

More information

3D Math Overview and 3D Graphics Foundations

3D Math Overview and 3D Graphics Foundations Freescale Semiconductor Application Note Document Number: AN4132 Rev. 0, 05/2010 3D Math Overview and 3D Graphics Foundations by Multimedia Applications Division Freescale Semiconductor, Inc. Austin, TX

More information

Advanced Computer Graphics. Rendering Equation. Matthias Teschner. Computer Science Department University of Freiburg

Advanced Computer Graphics. Rendering Equation. Matthias Teschner. Computer Science Department University of Freiburg Advanced Computer Graphics Rendering Equation Matthias Teschner Computer Science Department University of Freiburg Outline rendering equation Monte Carlo integration sampling of random variables University

More information

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system

More information

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA The Evolution of Computer Graphics Tony Tamasi SVP, Content & Technology, NVIDIA Graphics Make great images intricate shapes complex optical effects seamless motion Make them fast invent clever techniques

More information

CS 4204 Computer Graphics

CS 4204 Computer Graphics CS 4204 Computer Graphics 3D views and projection Adapted from notes by Yong Cao 1 Overview of 3D rendering Modeling: *Define object in local coordinates *Place object in world coordinates (modeling transformation)

More information

Lesson 26: Reflection & Mirror Diagrams

Lesson 26: Reflection & Mirror Diagrams Lesson 26: Reflection & Mirror Diagrams The Law of Reflection There is nothing really mysterious about reflection, but some people try to make it more difficult than it really is. All EMR will reflect

More information

ABS 731 Lighting Design & Technology. Spring 2006

ABS 731 Lighting Design & Technology. Spring 2006 ABS 731 Lighting Design & Technology Spring 2006 AGI32 is used to predict the photometric performance of selected luminaires or daylight penetration in a simulated environment. The environments that can

More information

Making natural looking Volumetric Clouds In Blender 2.48a

Making natural looking Volumetric Clouds In Blender 2.48a I think that everyone using Blender has made some trials about making volumetric clouds. The truth is that a kind of volumetric clouds is already available in Blender for a long time, thanks to the 3D

More information

Dhiren Bhatia Carnegie Mellon University

Dhiren Bhatia Carnegie Mellon University Dhiren Bhatia Carnegie Mellon University University Course Evaluations available online Please Fill! December 4 : In-class final exam Held during class time All students expected to give final this date

More information

ADVANCED THEORIES FOR CG LIGHTING

ADVANCED THEORIES FOR CG LIGHTING ADVANCED THEORIES FOR CG LIGHTING 0.1 INTRODUCTION To become skilled at 3D lighting, one must have an understanding of how light works. CG lighting has been established based on rules from cinematography,

More information

L20: GPU Architecture and Models

L20: GPU Architecture and Models L20: GPU Architecture and Models scribe(s): Abdul Khalifa 20.1 Overview GPUs (Graphics Processing Units) are large parallel structure of processing cores capable of rendering graphics efficiently on displays.

More information

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI) Computer Graphics CS 54 Lecture 1 (Part 1) Curves Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines and flat surfaces Real world objects include

More information

PATH TRACING: A NON-BIASED SOLUTION TO THE RENDERING EQUATION

PATH TRACING: A NON-BIASED SOLUTION TO THE RENDERING EQUATION PATH TRACING: A NON-BIASED SOLUTION TO THE RENDERING EQUATION ROBERT CARR AND BYRON HULCHER Abstract. In this paper we detail the implementation of a path tracing renderer, providing a non-biased solution

More information

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series By: Binesh Tuladhar Clay Smith Overview History of GPU s GPU Definition Classical Graphics Pipeline Geforce 6 Series Architecture Vertex

More information

Lezione 4: Grafica 3D*(II)

Lezione 4: Grafica 3D*(II) Lezione 4: Grafica 3D*(II) Informatica Multimediale Docente: Umberto Castellani *I lucidi sono tratti da una lezione di Maura Melotti (m.melotti@cineca.it) RENDERING Rendering What is rendering? Rendering

More information

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list Scan-Line Fill Can also fill by maintaining a data structure of all intersections of polygons with scan lines Sort by scan line Fill each span vertex order generated by vertex list desired order Scan-Line

More information

Higher Education Math Placement

Higher Education Math Placement Higher Education Math Placement Placement Assessment Problem Types 1. Whole Numbers, Fractions, and Decimals 1.1 Operations with Whole Numbers Addition with carry Subtraction with borrowing Multiplication

More information

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build

More information

Introduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it

Introduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it t.diamanti@cineca.it Agenda From GPUs to GPGPUs GPGPU architecture CUDA programming model Perspective projection Vectors that connect the vanishing point to every point of the 3D model will intersecate

More information

Solving Simultaneous Equations and Matrices

Solving Simultaneous Equations and Matrices Solving Simultaneous Equations and Matrices The following represents a systematic investigation for the steps used to solve two simultaneous linear equations in two unknowns. The motivation for considering

More information

Visualizing Data: Scalable Interactivity

Visualizing Data: Scalable Interactivity Visualizing Data: Scalable Interactivity The best data visualizations illustrate hidden information and structure contained in a data set. As access to large data sets has grown, so has the need for interactive

More information

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg Android and OpenGL Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering 16. Dezember 2013 Outline 1 OpenGL Introduction 2 Displaying Graphics 3 Interaction

More information

Hardware design for ray tracing

Hardware design for ray tracing Hardware design for ray tracing Jae-sung Yoon Introduction Realtime ray tracing performance has recently been achieved even on single CPU. [Wald et al. 2001, 2002, 2004] However, higher resolutions, complex

More information

CS 431/636 Advanced Rendering Techniques"

CS 431/636 Advanced Rendering Techniques CS 431/636 Advanced Rendering Techniques" Dr. David Breen" Korman 105D" Wednesday 6PM 8:50PM" Photon Mapping" 5/2/12" Slide Credits - UC San Diego Goal Efficiently create global illumination images with

More information

Introduction to Computer Graphics. Reading: Angel ch.1 or Hill Ch1.

Introduction to Computer Graphics. Reading: Angel ch.1 or Hill Ch1. Introduction to Computer Graphics Reading: Angel ch.1 or Hill Ch1. What is Computer Graphics? Synthesis of images User Computer Image Applications 2D Display Text User Interfaces (GUI) - web - draw/paint

More information

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software GPU Computing Numerical Simulation - from Models to Software Andreas Barthels JASS 2009, Course 2, St. Petersburg, Russia Prof. Dr. Sergey Y. Slavyanov St. Petersburg State University Prof. Dr. Thomas

More information

Chapter 10. Bidirectional Path Tracing

Chapter 10. Bidirectional Path Tracing Chapter 10 Bidirectional Path Tracing In this chapter, we describe a new light transport algorithm called bidirectional path tracing. This algorithm is a direct combination of the ideas in the last two

More information

Path Tracing. Michael Doggett Department of Computer Science Lund university. 2012 Michael Doggett

Path Tracing. Michael Doggett Department of Computer Science Lund university. 2012 Michael Doggett Path Tracing Michael Doggett Department of Computer Science Lund university 2012 Michael Doggett Outline Light transport notation Radiometry - Measuring light Illumination Rendering Equation Monte Carlo

More information

Comp 410/510. Computer Graphics Spring 2016. Introduction to Graphics Systems

Comp 410/510. Computer Graphics Spring 2016. Introduction to Graphics Systems Comp 410/510 Computer Graphics Spring 2016 Introduction to Graphics Systems Computer Graphics Computer graphics deals with all aspects of creating images with a computer Hardware (PC with graphics card)

More information

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University GPU Generations CSE 564: Visualization GPU Programming (First Steps) Klaus Mueller Computer Science Department Stony Brook University For the labs, 4th generation is desirable Graphics Hardware Pipeline

More information

OpenGL Performance Tuning

OpenGL Performance Tuning OpenGL Performance Tuning Evan Hart ATI Pipeline slides courtesy John Spitzer - NVIDIA Overview What to look for in tuning How it relates to the graphics pipeline Modern areas of interest Vertex Buffer

More information

Refraction of Light at a Plane Surface. Object: To study the refraction of light from water into air, at a plane surface.

Refraction of Light at a Plane Surface. Object: To study the refraction of light from water into air, at a plane surface. Refraction of Light at a Plane Surface Object: To study the refraction of light from water into air, at a plane surface. Apparatus: Refraction tank, 6.3 V power supply. Theory: The travel of light waves

More information

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Modern Graphics Engine Design Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Overview Modern Engine Features Modern Engine Challenges Scene Management Culling & Batching Geometry Management Collision

More information

Computer-Generated Photorealistic Hair

Computer-Generated Photorealistic Hair Computer-Generated Photorealistic Hair Alice J. Lin Department of Computer Science, University of Kentucky, Lexington, KY 40506, USA ajlin0@cs.uky.edu Abstract This paper presents an efficient method for

More information

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA GFLOPS 3500 3000 NVPRO-PIPELINE Peak Double Precision FLOPS GPU perf improved

More information

3. INNER PRODUCT SPACES

3. INNER PRODUCT SPACES . INNER PRODUCT SPACES.. Definition So far we have studied abstract vector spaces. These are a generalisation of the geometric spaces R and R. But these have more structure than just that of a vector space.

More information

Introduction to Computer Graphics with WebGL

Introduction to Computer Graphics with WebGL Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico 1 Programming

More information

The 3D rendering pipeline (our version for this class)

The 3D rendering pipeline (our version for this class) The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons in camera coordinates Pixels in image coordinates Scene graph Camera Rasterization

More information

Algebra 1 2008. Academic Content Standards Grade Eight and Grade Nine Ohio. Grade Eight. Number, Number Sense and Operations Standard

Algebra 1 2008. Academic Content Standards Grade Eight and Grade Nine Ohio. Grade Eight. Number, Number Sense and Operations Standard Academic Content Standards Grade Eight and Grade Nine Ohio Algebra 1 2008 Grade Eight STANDARDS Number, Number Sense and Operations Standard Number and Number Systems 1. Use scientific notation to express

More information

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang Introduction Computer Graphics Instructor: Yung-Yu Chuang ( 莊 永 裕 ) E-mail: c@csie.ntu.edu.tw Office: CSIE 527 Grading: a MatchMove project Computer Science ce & Information o Technolog og Yung-Yu Chuang

More information

Rally Sport Racing Game: CodeName Space Racer

Rally Sport Racing Game: CodeName Space Racer Rally Sport Racing Game: CodeName Space Racer - An evaluation of techniques used when developing a marketable 3D game Sebastian Almlöf (Chalmers) Ludvig Gjälby (Chalmers) Markus Pettersson (Chalmers) Gustav

More information

MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem

MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem David L. Finn November 30th, 2004 In the next few days, we will introduce some of the basic problems in geometric modelling, and

More information

Chapter 17: Light and Image Formation

Chapter 17: Light and Image Formation Chapter 17: Light and Image Formation 1. When light enters a medium with a higher index of refraction it is A. absorbed. B. bent away from the normal. C. bent towards from the normal. D. continues in the

More information

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation SkillsUSA Contest Projects 3-D Visualization and Animation Click the Print this Section button above to automatically print the specifications for this contest. Make sure your printer is turned on before

More information

Blender 2.49b How to generate 3D-images?

Blender 2.49b How to generate 3D-images? Blender 2.49b How to generate 3D-images? Table of Contents 1 Installation...1 2 Image and data preparation in Present...1 3 Blender Tutorial...2 3.1 Import of the STL-file...2 3.2 Creating a second window...3

More information

Angle - a figure formed by two rays or two line segments with a common endpoint called the vertex of the angle; angles are measured in degrees

Angle - a figure formed by two rays or two line segments with a common endpoint called the vertex of the angle; angles are measured in degrees Angle - a figure formed by two rays or two line segments with a common endpoint called the vertex of the angle; angles are measured in degrees Apex in a pyramid or cone, the vertex opposite the base; in

More information

Getting Started with iray in 3ds Max 2014

Getting Started with iray in 3ds Max 2014 Getting Started with iray in 3ds Max 2014 Iray is an intuitive, interactive, physically based, progressive, path tracing 3D renderer Iray balances ease of use and interactivity with high quality photorealistic

More information

Parallel Web Programming

Parallel Web Programming Parallel Web Programming Tobias Groß, Björn Meier Hardware/Software Co-Design, University of Erlangen-Nuremberg May 23, 2013 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development

More information

Monte Carlo Path Tracing

Monte Carlo Path Tracing CS294-13: Advanced Computer Graphics Lecture #5 University of California, Berkeley Wednesday, 23 September 29 Monte Carlo Path Tracing Lecture #5: Wednesday, 16 September 29 Lecturer: Ravi Ramamoorthi

More information

Realtime 3D Computer Graphics Virtual Reality

Realtime 3D Computer Graphics Virtual Reality Realtime 3D Computer Graphics Virtual Realit Viewing and projection Classical and General Viewing Transformation Pipeline CPU Pol. DL Pixel Per Vertex Texture Raster Frag FB object ee clip normalized device

More information

MATHS LEVEL DESCRIPTORS

MATHS LEVEL DESCRIPTORS MATHS LEVEL DESCRIPTORS Number Level 3 Understand the place value of numbers up to thousands. Order numbers up to 9999. Round numbers to the nearest 10 or 100. Understand the number line below zero, and

More information

Computer Animation of Extensive Air Showers Interacting with the Milagro Water Cherenkov Detector

Computer Animation of Extensive Air Showers Interacting with the Milagro Water Cherenkov Detector Computer Animation of Extensive Air Showers Interacting with the Milagro Water Cherenkov Detector Miguel F. Morales Department of Physics, University of California, Santa Cruz, CA 95064, USA We employ

More information

Light Control and Efficacy using Light Guides and Diffusers

Light Control and Efficacy using Light Guides and Diffusers Light Control and Efficacy using Light Guides and Diffusers LEDs 2012 Michael Georgalis, LC Marketing Manager, Fusion Optix October 11, 2012 Agenda Introduction What Is Light Control? Improves Application

More information

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar Game Development in Android Disgruntled Rats LLC Sean Godinez Brian Morgan Michael Boldischar Overview Introduction Android Tools Game Development OpenGL ES Marketing Summary Questions Introduction Disgruntled

More information

Hi everyone, my name is Michał Iwanicki. I m an engine programmer at Naughty Dog and this talk is entitled: Lighting technology of The Last of Us,

Hi everyone, my name is Michał Iwanicki. I m an engine programmer at Naughty Dog and this talk is entitled: Lighting technology of The Last of Us, Hi everyone, my name is Michał Iwanicki. I m an engine programmer at Naughty Dog and this talk is entitled: Lighting technology of The Last of Us, but I should have called it old lightmaps new tricks 1

More information

A.R.I.S.E. Architectural Real-time Interactive Showing Environment. Supervisor: Scott Chase

A.R.I.S.E. Architectural Real-time Interactive Showing Environment. Supervisor: Scott Chase A.R.I.S.E Architectural Real-time Interactive Showing Environment Supervisor: Scott Chase Kasper Grande, Nina T. Hansen Kasper J. Knutzen, Anders Kokholm Long T. Truong Contents A Unity 2 A.1 Unity in

More information

Deferred Shading & Screen Space Effects

Deferred Shading & Screen Space Effects Deferred Shading & Screen Space Effects State of the Art Rendering Techniques used in the 3D Games Industry Sebastian Lehmann 11. Februar 2014 FREESTYLE PROJECT GRAPHICS PROGRAMMING LAB CHAIR OF COMPUTER

More information

Science In Action 8 Unit C - Light and Optical Systems. 1.1 The Challenge of light

Science In Action 8 Unit C - Light and Optical Systems. 1.1 The Challenge of light 1.1 The Challenge of light 1. Pythagoras' thoughts about light were proven wrong because it was impossible to see A. the light beams B. dark objects C. in the dark D. shiny objects 2. Sir Isaac Newton

More information

b. In Laser View - click on wave. Pose an explanation that explains why the light bends when it enters the water.

b. In Laser View - click on wave. Pose an explanation that explains why the light bends when it enters the water. Sierzega/Ferri: Optics 5 Observation Experiments: Light Bending Go to: http://phet.colorado.edu/en/simulation /bending-light You have a laser beam (press the button to turn it on!) that is shining from

More information

Photorealistic Rendering Techniques in AutoCAD 3D

Photorealistic Rendering Techniques in AutoCAD 3D Photorealistic Rendering Techniques in AutoCAD 3D David Cohn AU214-2 Do you want to create professional-looking renderings? Learn how to convert 3D AutoCAD drawings into finished, photorealistic renderings

More information

Angles that are between parallel lines, but on opposite sides of a transversal.

Angles that are between parallel lines, but on opposite sides of a transversal. GLOSSARY Appendix A Appendix A: Glossary Acute Angle An angle that measures less than 90. Acute Triangle Alternate Angles A triangle that has three acute angles. Angles that are between parallel lines,

More information

1051-232 Imaging Systems Laboratory II. Laboratory 4: Basic Lens Design in OSLO April 2 & 4, 2002

1051-232 Imaging Systems Laboratory II. Laboratory 4: Basic Lens Design in OSLO April 2 & 4, 2002 05-232 Imaging Systems Laboratory II Laboratory 4: Basic Lens Design in OSLO April 2 & 4, 2002 Abstract: For designing the optics of an imaging system, one of the main types of tools used today is optical

More information

L 2 : x = s + 1, y = s, z = 4s + 4. 3. Suppose that C has coordinates (x, y, z). Then from the vector equality AC = BD, one has

L 2 : x = s + 1, y = s, z = 4s + 4. 3. Suppose that C has coordinates (x, y, z). Then from the vector equality AC = BD, one has The line L through the points A and B is parallel to the vector AB = 3, 2, and has parametric equations x = 3t + 2, y = 2t +, z = t Therefore, the intersection point of the line with the plane should satisfy:

More information

FURTHER VECTORS (MEI)

FURTHER VECTORS (MEI) Mathematics Revision Guides Further Vectors (MEI) (column notation) Page of MK HOME TUITION Mathematics Revision Guides Level: AS / A Level - MEI OCR MEI: C FURTHER VECTORS (MEI) Version : Date: -9-7 Mathematics

More information

CS 325 Computer Graphics

CS 325 Computer Graphics CS 325 Computer Graphics 01 / 25 / 2016 Instructor: Michael Eckmann Today s Topics Review the syllabus Review course policies Color CIE system chromaticity diagram color gamut, complementary colors, dominant

More information

AP Physics B Ch. 23 and Ch. 24 Geometric Optics and Wave Nature of Light

AP Physics B Ch. 23 and Ch. 24 Geometric Optics and Wave Nature of Light AP Physics B Ch. 23 and Ch. 24 Geometric Optics and Wave Nature of Light Name: Period: Date: MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) Reflection,

More information

Cabri Geometry Application User Guide

Cabri Geometry Application User Guide Cabri Geometry Application User Guide Preview of Geometry... 2 Learning the Basics... 3 Managing File Operations... 12 Setting Application Preferences... 14 Selecting and Moving Objects... 17 Deleting

More information

Introduction to acoustic imaging

Introduction to acoustic imaging Introduction to acoustic imaging Contents 1 Propagation of acoustic waves 3 1.1 Wave types.......................................... 3 1.2 Mathematical formulation.................................. 4 1.3

More information

Photon Mapping Made Easy

Photon Mapping Made Easy Photon Mapping Made Easy Tin Tin Yu, John Lowther and Ching Kuang Shene Department of Computer Science Michigan Technological University Houghton, MI 49931 tiyu,john,shene}@mtu.edu ABSTRACT This paper

More information

My Materials. In this tutorial, we ll examine the material settings for some simple common materials used in modeling.

My Materials. In this tutorial, we ll examine the material settings for some simple common materials used in modeling. Course: 3D Design Title: My Materials Blender: Version 2.6X Level: Beginning Author; Neal Hirsig (nhirsig@tufts.edu) (May 2012) My Materials In this tutorial, we ll examine the material settings for some

More information

1. Definition of the project. 2. Initial version (simplified texture) 3. Second version (full textures) 5. Modelling and inserting 3D objects

1. Definition of the project. 2. Initial version (simplified texture) 3. Second version (full textures) 5. Modelling and inserting 3D objects Index 1. Definition of the project 2. Initial version (simplified texture) 3. Second version (full textures) 4. Final version in C++ 5. Modelling and inserting 3D objects 6. Interface design 7. Additional

More information

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based) Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf Flow Visualization Image-Based Methods (integration-based) Spot Noise (Jarke van Wijk, Siggraph 1991) Flow Visualization:

More information

Advances in Real-Time Skin Rendering

Advances in Real-Time Skin Rendering Advances in Real-Time Skin Rendering Natalya Tatarchuk ATI Research Overview Subsurface scattering simulation Texture Space Lighting Irradiance Gradients Precomputed Radiance Transfer Additional tricks

More information

University of Tampere Computer Graphics 2013 School of Information Sciences Exercise 2 7.2.2013

University of Tampere Computer Graphics 2013 School of Information Sciences Exercise 2 7.2.2013 University of Tampere Computer Graphics 2013 School of Information Sciences Exercise 2 7.2.2013 1. We can get the minmum of parabola f(x) = ax 2 + bx + c,a > 0,, when f (x) = 0. In this case x has the

More information

Crystal Optics of Visible Light

Crystal Optics of Visible Light Crystal Optics of Visible Light This can be a very helpful aspect of minerals in understanding the petrographic history of a rock. The manner by which light is transferred through a mineral is a means

More information