OpenGL ES 2.0 Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D.
|
|
- Eustace Mathews
- 7 years ago
- Views:
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 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 informationImage 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 informationComputer 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 informationCUBE-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 informationGRAFICA - 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 informationComputer 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 informationCOMP175: 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 informationThea 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 informationComputer 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 informationMonash 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 informationGUI 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 informationIntroduction 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 informationAn 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 informationPRODUCT 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 informationLighting & 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 informationA 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 informationH.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 informationSpecular 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 informationHigh 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 informationpath 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 informationPart 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 informationPHOTON 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 informationShader 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 informationVector 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 informationCSE168 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 information3D 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 informationAdvanced 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 information2: 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 informationThe 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 informationCS 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 informationLesson 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 informationABS 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 informationMaking 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 informationDhiren 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 informationADVANCED 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 informationL20: 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 informationComputer 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 informationPATH 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 informationGPU(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 informationLezione 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 informationScan-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 informationHigher 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 informationBlender 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 informationIntroduction 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 informationSolving 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 informationVisualizing 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 informationAndroid 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 informationHardware 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 informationCS 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 informationIntroduction 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 informationIntroduction 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 informationChapter 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 informationPath 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 informationComp 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 informationCSE 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 informationOpenGL 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 informationRefraction 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 informationModern 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 informationComputer-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 informationNVPRO-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 information3. 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 informationIntroduction 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 informationThe 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 informationAlgebra 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 informationComputer 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 informationRally 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 informationMA 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 informationChapter 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 informationSkillsUSA 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 informationBlender 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 informationAngle - 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 informationGetting 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 informationParallel 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 informationMonte 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 informationRealtime 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 informationMATHS 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 informationComputer 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 informationLight 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 informationGame 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 informationHi 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 informationA.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 informationDeferred 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 informationScience 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 informationb. 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 informationPhotorealistic 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 informationAngles 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 information1051-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 informationL 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 informationFURTHER 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 informationCS 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 informationAP 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 informationCabri 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 informationIntroduction 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 informationPhoton 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 informationMy 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 information1. 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 informationVisualization 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 informationAdvances 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 informationUniversity 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 informationCrystal 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