# TEXTURE MAPPING. DVA338 Computer Graphics Thomas Larsson, Afshin Ameri

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 TEXTURE MAPPING DVA338 Computer Graphics Thomas Larsson, Afshin Ameri

2 OVERVIEW Motivation Texture Mapping Coordinate Mapping (2D, 3D) Perspective Correct Interpolation Texture Filtering Mip-mapping Anisotropic Filtering Special Effects Bump Mapping Displacement Mapping Shadow Mapping Environment Mapping

3 MOTIVATION

4 Phong Shading seems nice, much better than the Flat Shading or even the Gouraud Shading, But

5 Uniform reflectance (color) Complex reflection properties More detailed geometry Wallpapering or gift-wrapping a simple geometry Textures Picture from: yourpalmark.com Surface detail, Reflections, Shadows, etc. can it do this?

6 It s all about details Picture from:

7 MOTIVATION Real surfaces are often very complex. We do not want/can represent all the fine variation in geometry. We need other ways to add surface detail. We can increase the apparent complexity of simple geometry by wallpapering or gift-wrapping with stretchy paper Special effects: Bump mapping Shadow mapping Environment Mapping

8 TEXTURE MAPPING

9 A Texture Map is a function or pixel-based image that is used to store detailed information about a surface. Individual pixels of a texture map are called Texels (texture elements). Texture Mapping is the process of applying texture map data onto the surface. Texture maps can be 2D (image textures) or 3D (volume textures or solid textures). We should define mapping functions on how to map a point on the surface to the image or function. Mapping functions maybe different in case of 2D or 3D texture maps.

10 TEXTURE MAPPING 2D Texture Mapping

11 2D TEXTURE MAPPING Texture Map A normal 2D space Coordinate system: lower left (0,0), upper right (1,1) regardless of the image size Usual texture sizes are 128x128, 256x256, 512x512, 1024x1024 Information on textels may be in various formats: RGB, RGBA

12 2D TEXTURE MAPPING Texture Map Specify a texture coordinate (u,v) at each vertex Canonical texture coordinates: (0,0) (1,1) The image itself ranges from 0.0 to 1.0, independent of the actual pixel resolution However, this doesn t mean that texture coordinates have to be limited to that range The texture coordinates are used to look-up values in the actual texture map E.g.: gettexel(tmap, u, v) Note: The individual pixels of the texture map are called texels (texture elements)

13 2D TEXTURE MAPPING Image Source: Tschmits, published under CC-BY- AA

14 2D TEXTURE MAPPING Mapping Process Assigning texture coordinates (u,v) to vertices. This is normally predefined. The texture coordinates are interpolated across the triangle in the scan conversion process. Once we have a texture coordinate for the pixel, we perform some sort of texture lookup. This texture color is then usually blended with the interpolated RGB color to generate the final pixel color. (0.5,1) gettexel (1,1) (0,0) scan line Texture coordinates Triangle primitive (1,0) (0,0) Texture map

15 2D TEXTURE MAPPING Mapping Process The Math involved So we have (u,v) of the triangle vertices and we need the (u,v) for the point being rasterized. It can simply be calculated using barycentric coordinates and we will have: u p = u a + β(u b -u a ) + γ(u c -u a ) v p = v a + β(v b -v a ) + γ(v c -v a ) u p and v p are then looked up in the original texture to get the texel value. Of course, we do not do the calculations in code and simply leave it to OpenGL. (0.5,1) gettexel (1,1) (0,0) scan line Texture coordinates Triangle primitive (1,0) (0,0) Texture map

16 EXAMPLE: TEXTURED CUBE A texture mapped 3D cube model Texture map, size 512 x 512 What texture coordinates have been used at the polygon corners in this example? 16

17 TILING We can define various tiling or wrapping rules to determine what happens when we go outside of the 0 1 range Clamp, repeat, mirror, Mode can be set independently in x and y (1, 1) (0, 0) Original texture clamp repeat mirror 17

18 TEXTURE MAPPING & LIGHTING Texture mapping can be used to alter various constants in the illumination equation The simplest examples: Combine Phong Shading and Texture mapping Don t use a separate material color at all (or set to (1,1,1)) 18

19 2D TEXTURE MAPPING What s wrong with this box? Affine Texture Mapping This one seems much nicer! Perspective Correct Texture Mapping Pictures from:

20 2D TEXTURE MAPPING Perspective Correct Texture Mapping The texture may warp and stretch within the triangle as the viewing angle changes, an effect called texture swimming. Observation: a straight line of regularly spaced points in 3D space maps to a straight line of irregularly spaced points in screen space. Linear interpolation of texture coordinates in screen space is wrong, because homogenous division has distorted barycentric coordinates of the triangle. Depth of the pixels should also be involved in order to get a Perspective Correct Mapping. Original texture Wrong Correct

21 2D TEXTURE MAPPING Perspective Correct Texture Mapping At screen space 1/z, u/z, v/z are linear and interpolate correctly. We can interpolate u/z and v/z to get correct interpolated values u/z and v/z need to be multiplied by z in order to give us (u,v) z is also changing and needs to be correctly interpolated. We can interpolate 1/z. Dividing u/z and v/z by 1/z will give us the correct (u,v). BUT, we do not know z anymore Instead we know that w 1/z SO, we interpolate uw, vw and w, then we can have u=uw/w and v=vw/w

22 2D TEXTURE MAPPING Texture Filtering What is wrong with this image? It s a sample of a problem called Aliasing. It occurs because one texel does not map to one pixel most of the times. If the pixel is larger than a texel we should somehow get an average color from those texels (Minification). If pixel is smaller than a texel we should interpolate between the texels (Magnification). Pictures from: Does this image need minification or magnification methods to look better? If you wanted to give an example of the other problem, what would it be? You may have heard of a term called Undersampling, what is it?

23 2D TEXTURE MAPPING Texture Filtering Magnification Picture work of Sunchirp:

24 2D TEXTURE MAPPING Texture Filtering Magnification Point Sampling (Nearest Neighbor): Simply pick the nearest sample. Bilinear Sampling: A bilinear blend of the four nearest samples. Bicubic Sampling: Performs a smoother bicubic blend of a 4x4 grid of texels. (u, v) texels

25 2D TEXTURE MAPPING Texture Filtering Minification Blend all the texels within the area to get a single final color. Very expensive, mostly due to memory access costs. Several proposed methods: Antialiasing: Prefiltering, Supersampling Mipmapping Summed-area table texturing Elliptical Weighted Averaging... Picture from::

26 2D TEXTURE MAPPING Texture Filtering Prefiltering A pixel is treated like an area on the surface of the object (Catmull, 1978). The area is mapped to the texture map. An average color of the texels involved is calculated. Prefiltering Source: Teaching Texture Mapping Visually by Rosalee Wolfe / DePaul University /

27 2D TEXTURE MAPPING Texture Filtering Supersampling Each corner of the pixel is mapped to the texture. The color from the 4 mapped points is used to calculate the average. Supersampling Source: Teaching Texture Mapping Visually by Rosalee Wolfe / DePaul University /

28 2D TEXTURE MAPPING Texture Filtering Prefiltering and Supersampling in Action Prefiltering Aliasing Supersampling Source: Teaching Texture Mapping Visually by Rosalee Wolfe / DePaul University /

29 2D TEXTURE MAPPING Texture Filtering Mipmapping The method of choice for most graphics hardware. For each texture, several scaled down versions of it are pre-calculated and stored. These are called Mipmaps. Mipmaps are usually half of the size of the previous texture. Their size is usually a power of 2. They have the same size both in x and y directions (they are square). i.e. if the original texture is 512x512 there will be 8 mipmaps for it sized at: 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2, 1x1 This does not add too much texture data since: 1/4 + 1/16 + 1/ = 1/3 The size of the mipmap to be used will be decided by the distance of the object from the camera.

30 2D TEXTURE MAPPING Texture Filtering Mipmapping Source: mobilarena.hu

31 2D TEXTURE MAPPING Texture Filtering Mipmapping Source:

32 2D TEXTURE MAPPING Texture Filtering Anisotropic Filtering Source: ixbtlabs.com

33 2D TEXTURE MAPPING Texture Filtering Anisotropic Filtering Source: ixbtlabs.com

34 2D TEXTURE MAPPING Texture Filtering Anisotropic Filtering Source: ixbtlabs.com

35 2D TEXTURE MAPPING Texture Filtering Anisotropic Filtering When viewing objects from tight angles, the axis will not have the same texture frequency. Mipmapping uses isotropic textures (square) for sampling. Loss of detail in one axis causes the loss in another axis. Anisotropic filtering, solves the problem by sampling anisotropic samples of the textures (128x64, 128x32, ). True anisotropic filtering can be done by sampling the correct trapezoid shape of a pixel according to perspective. It gives very good results, but it is very expensive in memory bandwidth usage and to some extent calculations.

36 TEXTURE MAPPING 2D Texture Mapping Special Effects

37 2D TEXTURE MAPPING SPECIAL EFFECTS We can use texture to store other information than color. Textures can be blended with each other or used to change different constants in illumination equations. Some examples are: Bump Mapping Displacement Mapping Shadow Mapping Environment Mapping

38 2D TEXTURE MAPPING SPECIAL EFFETCS Bump Mapping Dark and light areas on a surface helps us to determine unsmooth areas on an object. By modifying the normal (N) in illumination equations we can create unsmooth areas on the object. (First proposed by Blinn at 1978) This requires per-pixel shading. A texture map is used to store the amount of normal disturbance at each point. Some variations: Normal Mapping, Parallax Mapping. Image Source: Wikipedia

39 2D TEXTURE MAPPING SPECIAL EFFETCS Bump Mapping

40 2D TEXTURE MAPPING SPECIAL EFFETCS Bump Mapping What is wrong in this image? No change in object silhouette. Wrong shadows. Image Source: Gdallimore, Wikipedia

41 2D TEXTURE MAPPING SPECIAL EFFETCS Displacement Mapping An alternative to bump mapping and other similar methods. Using a texture to actually displace the points on surface. Normally done in the direction of the normal. Assuming a displacement texture d: p = p +d(p)*n This changes the vertices, so it needs to happen in geometry processing: We should have lots of tiny polygons to the displacement can happen smoothly. Or, we should use some kind of adaptive tessellation strategy. Recently added to DirectX or OpenGL. Note that the displacement should be defined before the visibility is defined. Image Source: Wikipedia

42 2D TEXTURE MAPPING SPECIAL EFFETCS Displacement Mapping Bump Mapping Displacement Mapping Image Source: thoronir.net/tutorials Which one is created by Bump Mapping and which one by Displacement Mapping?

43 2D TEXTURE MAPPING SPECIAL EFFETCS Environment Mapping (Reflection Mapping) A hack to get reflection effect on objects. How it works? Render the scene from the center of a cube in each face direction. Store each result for each face in a texture. Apply these textures on the object when rendering the scene from actual viewpoint. It is an approximation of the reflections on a reflective surface: Reflection on nearby objects is misplaced. No self-reflection are possible. Image Modeled by: Steve van der Burg

44 2D TEXTURE MAPPING SPECIAL EFFETCS Environment Mapping 6179 Raytrace sec Env. 543 Map sec Image Modeled by: Steve van der Burg

45 2D TEXTURE MAPPING SPECIAL EFFETCS Shadow Mapping (Projective Shadowing) Invented by Lance Williams in An image-space algorithm: Independent of scene complexity Ideal for shadows from spotlights Works with anything that can be rasterized Easy to implement Must deal with aliasing artifacts Well-known shadowing algorithm. Observation: If a point is visible both from the light s position and camera, then it is not in the shadow. Therefore we can use the Z-Buffer to determine shadows.

46 2D TEXTURE MAPPING SPECIAL EFFETCS Shadow Mapping Render the scene from light s point of view. Store the Z-Buffer. When shading an object, transform the point to light s coordinate system. Compare the depths. If the current depth is greater than shadow map depth, then the point is in shadow.

47 ALGORITHM OVERVIEW Render scene from the light s point of view Store depth of each pixel When shading a surface: Transform the surface point into light s coordinate system Compare current surface depth against depth stored in shadow map If surface depth > shadow map lookup, the pixel is in shadow; otherwise the pixel is lit 47

48 EXAMPLE: SHADOW MAPPING Pass 1 Pass 2 Light source Z-buffer of light s point of view Camera view with shadows Light s point of view (Images by Mark J. Kilgard, NVIDIA ) Camera view without shadows 48

49 2D TEXTURE MAPPING SPECIAL EFFETCS Shadow Mapping - Visualization Camera view - Unshadowed Light source view Shadow Map Shadow map projected to camera view Light s planar distance projected to camera view Shadowed scene after depth test Source: Shadow Mapping and Shadow Volumes by Andrew V. Nealen in DevMaster.net

50 2D TEXTURE MAPPING SPECIAL EFFETCS Shadow Mapping Problems Aliasing Problems Biasing Problems Several Proposed Solutions: Filtering Techniques Polygon offset for depth comparisons... Source: Shadow Mapping and Shadow Volumes by Andrew V. Nealen in DevMaster.net

51 SHADOW MAPPING PAPERS Lance Williams, Casting Curved Shadows on Curved Surfaces, SIGGRAPH 78 William Reeves, David Salesin, and Robert Cook, Rendering antialiased shadows with depth maps, SIGGRAPH 87 Mark Segal, et. al., Fast Shadows and Lighting Effects Using Texture Mapping, SIGGRAPH 92 51

52 TEXTURE COORDINATE ASSIGNMENT How can we assign texture coordinates to vertices? Type in the numbers by hand (easy for the cube) Use some sort of automatic projection during modeling process Some modeling programs support painting of texture coordinates Sometimes texture coordinates are assigned on-the-fly during rendering to achieve dynamic real-time effects 52

53 TEXTURE COORDINATE MAPPINGS Planar Mapping let the texture fill all of space with the same color for all z-values, that is (u, v) = (x, y) Cylindrical Mapping Use the same color for all pixels with the same angle (u, v) = (θ / 2π, y) Spherical Mapping 53

54 EXAMPLE: COORDINATE MAPPINGS 54

55 TEXTURE MAPPING 3D Texture Mapping

56 3D TEXTURE MAPPING Mapping from 3D space to 3D space Easier than 2D mapping. Uses a simple 3D to 3D function. No need to stretch and wrap. Object looks like it has been carved out of a material. No real texture as we are used to. Mostly computational procedures. Ideal for wood, marble, etc. 2D Mapping 3D Mapping Source:

57 3D TEXTURE MAPPING The stripes on the left teapot are generated with a simple function. It maps the Z value of a point to a color. If the integer part of Z is even we choose red, otherwise we choose white. What is the function for the other two teapots? Which coordinate values have been used for texturing these teapots? How the function works? Source: Teaching Texture Mapping Visually by Rosalee Wolfe / DePaul University /

58 3D TEXTURE MAPPING Perlin Noise Regular patterns are not interesting enough. Most of the textures have some level of randomness in them. A good random noise function should have the following properties (Perlin 1985): Known range Stationary Band limited Isotropic Image Source: Wikipedia

59 3D TEXTURE MAPPING Perlin Noise Using Perlin noise to create a 3D wood texture (Peachy 1985) Source: Teaching Texture Mapping Visually by Rosalee Wolfe / DePaul University /

60 3D TEXTURE MAPPING Perlin Noise Perlin noise is a powerful tool. All these images are created by Terragen software only by random noise. Created by: Jay Testerman Source: Planetside Software. Terragen Image Gallery.

61 3D TEXTURE MAPPING Perlin Noise Perlin noise is a powerful tool. All these images are created by Terragen software only by random noise. Created by: Hannes Janetzko Source: Planetside Software. Terragen Image Gallery.

62 3D TEXTURE MAPPING Perlin Noise Perlin noise is a powerful tool. All these images are created by Terragen software only by random noise. Source: Planetside Software. Terragen Image Gallery.

63 TEXTURE MAPPING IN OPENGL OpenGL supports much of the things we ve discussed: 1D, 2D, and 3D textures Lots of texture formats Wrapping modes Filter modes Mip-mapping Easy access from within shaders Shadow mapping Environment mapping 63

64 That s what s cool about working with computers. They don t argue, they remember everything, and they don t drink all your beer. Paul Leary

### CS 450: COMPUTER GRAPHICS TEXTURE MAPPING SPRING 2015 DR. MICHAEL J. REALE

CS 450: COMPUTER GRAPHICS TEXTURE MAPPING SPRING 2015 DR. MICHAEL J. REALE INTRODUCTION Texturing = process that takes a surface and modifies its appearance at each location using some image, function,

### Textures. Texture coordinates. Introduce one more component to geometry

Texturing & Blending Prof. Aaron Lanterman (Based on slides by Prof. Hsien-Hsin Sean Lee) School of Electrical and Computer Engineering Georgia Institute of Technology Textures Rendering tiny triangles

### More Texture Mapping. Texture Mapping 1/46

More Texture Mapping Texture Mapping 1/46 Perturbing Normals Texture Mapping 2/46 Perturbing Normals Instead of fetching a texture for color, fetch a new perturbed normal vector Creates the appearance

### CS 428: Fall Introduction to. Texture mapping and filtering. Andrew Nealen, Rutgers, /18/2010 1

CS 428: Fall 2010 Introduction to Computer Graphics Texture mapping and filtering 10/18/2010 1 Topic overview Image formation and OpenGL Transformations and viewing Polygons and polygon meshes 3D model/mesh

### Einführung in Visual Computing

Einführung in Visual Computing 186.822 Textures Werner Purgathofer Surface-Rendering Methods polygon rendering methods ray tracing global illumination environment mapping texture mapping bump mapping Werner

### Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

### CSE 167: Introduction to Computer Graphics Lecture #8: Textures. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016

CSE 167: Introduction to Computer Graphics Lecture #8: Textures Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016 Announcements Project 2 due this Friday Midterm next Tuesday

### CS 431/636 Advanced Rendering Techniques

CS 431/636 Advanced Rendering Techniques Dr. David Breen Matheson 308 Thursday 6PM 8:50PM Presentation 7 5/23/06 Questions from Last Time? Hall Shading Model Shadows Reflections Refractions Slide Credits

Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

### Real-Time Graphics Architecture

Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall Rasterization Outline Fundamentals Examples Special topics (Depth-buffer, cracks and holes,

### 521493S Computer Graphics. Exercise 3

521493S Computer Graphics Exercise 3 Question 3.1 Most graphics systems and APIs use the simple lighting and reflection models that we introduced for polygon rendering. Describe the ways in which each

### Texture Mapping. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science

Texture Mapping CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce Mapping Methods - Texture Mapping - Environment Mapping - Bump Mapping Consider

Last Time? Programmable GPUS Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes frame buffer depth buffer stencil buffer Stencil Buffer Homework 4 Reading for Create some geometry "Rendering

### 3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

3D Programming Concepts Outline 3D Concepts Displaying 3D Models 3D Programming CS 4390 3D Computer 1 2 3D Concepts 3D Model is a 3D simulation of an object. Coordinate Systems 3D Models 3D Shapes 3D Concepts

### graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

### v. T u. Textures. Perlin, SIGGRAPH85. Werner Purgathofer

Perlin, SIGGRAPH85 Einführung in Visual Computing 186.822 v Textures T u Werner Purgathofer Surface Rendering Methods polygon rendering methods ray tracing global illumination environment mapping texture

### AGDC Per-Pixel Shading. Sim Dietrich

AGDC Per-Pixel Shading Sim Dietrich Goal Of This Talk The new features of Dx8 and the next generation of HW make huge strides in the area of Per-Pixel Shading Most developers have yet to adopt Per-Pixel

### - Rasterization. Geometry. Scan Conversion. Rasterization

Computer Graphics - The graphics pipeline - Geometry Modelview Geometry Processing Lighting Perspective Clipping Scan Conversion Texturing Fragment Tests Blending Framebuffer Fragment Processing - So far,

### Texturas. Objectives. ! Introduce Mapping Methods. ! Consider two basic strategies. Computação Gráfica

Texturas Computação Gráfica Objectives! Introduce Mapping Methods! Texture Mapping! Environmental Mapping! Bump Mapping! Light Mapping! Consider two basic strategies! Manual coordinate specification! Two-stage

### 6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm

6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm In this assignment, you will add an interactive preview of the scene and solid

### CSE 167: Lecture #8: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Introduction to Computer Graphics Lecture #8: GLSL Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #4 due Friday, November 2 nd Introduction:

### Spring 2009 Prof. Hyesoon Kim

Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

### Evolution of GPUs Chris Seitz

Evolution of GPUs Chris Seitz Overview Concepts: Real-time rendering Hardware graphics pipeline Evolution of the PC hardware graphics pipeline: 1995-1998: Texture mapping and z-buffer 1998: Multitexturing

### 6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm

6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm In this assignment, you will add an interactive preview of the scene and solid

### CIS 536/636 Introduction to Computer Graphics. Kansas State University. CIS 536/636 Introduction to Computer Graphics

2 Lecture Outline Surface Detail 3 of 5: Mappings OpenGL Textures William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public

### Texture Mapping 1/34

Texture Mapping 1/34 Texture Mapping Offsets the modeling assumption that the BRDF doesn t change in u and v coordinates along the object s surface Store a reflectance as an image called a texture Map

### C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image

### 03 RENDERING PART TWO

03 RENDERING PART TWO WHAT WE HAVE SO FAR: GEOMETRY AFTER TRANSFORMATION AND SOME BASIC CLIPPING / CULLING TEXTURES AND MAPPING MATERIAL VISUALLY DISTINGUISHES 2 OBJECTS WITH IDENTICAL GEOMETRY FOR NOW,

### Topic 9: Lighting & Reflection models 9/10/2016. Spot the differences. Terminology. Two Components of Illumination. Ambient Light Source

Topic 9: Lighting & Reflection models Lighting & reflection The Phong reflection model diffuse component ambient component specular component Spot the differences Terminology Illumination The transport

### Bump Mapping Which one of these two image has a better visual effect?

Bump Mapping Which one of these two image has a better visual effect? 1 Bump Mapping 2 Or, these two? Bump Mapping Many textures are the result of small perturbations in the surface geometry Modeling these

### CPSC 314 LIGHTING AND SHADING

CPSC 314 LIGHTING AND SHADING UGRAD.CS.UBC.CA/~CS314 slide credits: Mikhail Bessmeltsev et al 1 THE RENDERING PIPELINE Vertices and attributes Vertex Shader Modelview transform Per-vertex attributes Vertex

### Computer Graphics. Illumination and Shading

() Illumination and Shading Dr. Ayman Eldeib Lighting So given a 3-D triangle and a 3-D viewpoint, we can set the right pixels But what color should those pixels be? If we re attempting to create a realistic

### Draw Guide. Chapter 7 Working with 3D Objects

Draw Guide Chapter 7 Working with 3D Objects Copyright This document is Copyright 2011 2014 by the LibreOffice Documentation Team. Contributors are listed below. You may distribute or modify it under the

### Lecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Lecture 13: Reyes Architecture and Implementation Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) A gallery of images rendered using Reyes Image credit: Lucasfilm (Adventures

### Rasterization Overview

Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer

### Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather

### Surface Rendering. Surface Rendering

Surface Rendering Surface Rendering Introduce Mapping Methods - Texture Mapping - Environmental Mapping - Bump Mapping Go over strategies for - Forward vs backward mapping 2 1 The Limits of Geometric Modeling

### CSE 167: Introduction to Computer Graphics Lecture #9: Textures. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

CSE 167: Introduction to Computer Graphics Lecture #9: Textures Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Added Tuesday office hours for Krishna: 11am-12

### Interpolation using scanline algorithm

Interpolation using scanline algorithm Idea: Exploit knowledge about already computed color values. Traverse projected triangle top-down using scanline. Compute start and end color value of each pixel

### CS5620 Intro to Computer Graphics

So Far wireframe hidden surfaces Next step 1 2 Light! Need to understand: How lighting works Types of lights Types of surfaces How shading works Shading algorithms What s Missing? Lighting vs. Shading

### Ptex: Per-face Texture Mapping for Production Rendering

EGSR 2008 Ptex: Per-face Texture Mapping for Production Rendering Brent Burley and Dylan Lacewell Walt Disney Animation Studios (See attached slide notes for details) Texture Mapping at Disney Chicken

### -=Catmull's Texturing=1974. Part I of Texturing

-=Catmull's Texturing=1974 but with shaders Part I of Texturing Anton Gerdelan Textures Edwin Catmull's PhD thesis Computer display of curved surfaces, 1974 U.Utah Also invented the z-buffer / depth buffer

### Triangle Rasterization

Triangle Rasterization Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/07/07 1 From last time Lines and planes Culling View frustum culling Back-face culling Occlusion culling

### Deferred Rendering Due: Wednesday November 15 at 10pm

CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 4 November 2, 2017 Deferred Rendering Due: Wednesday November 15 at 10pm 1 Summary This assignment uses the same application architecture

### E.Order of Operations

Appendix E E.Order of Operations This book describes all the performed between initial specification of vertices and final writing of fragments into the framebuffer. The chapters of this book are arranged

CS294-13: Special Topics Lecture #8 Advanced Computer Graphics University of California, Berkeley Monday, 28 September 2009 Shadow and Environment Maps Lecture #8: Monday, 28 September 2009 Lecturer: Ravi

### So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources.

11 11.1 Basics So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources. Global models include incident light that arrives

### CMSC 435/634: Introduction to Graphics

CMSC 435/634: Introduction to Graphics Final Exam December 16, 2002 Instructions: Clearly write your name on this sheet. Answer each problem in the space provided. If you need extra space, write on extra

### Advanced 3D Game Programming with DirectX* 10.0

Advanced 3D Game Programming with DirectX* 10.0 Peter Walsh Wordware Publishing, Inc. Acknowledgments Introduction xiii xv Chapter I Windows I A Word about Windows I Hungarian Notation 3 General Windows

### Graphics. Texture Mapping 고려대학교컴퓨터그래픽스연구실.

Graphics Texture Mapping 고려대학교컴퓨터그래픽스연구실 3D Rendering Pipeline 3D Primitives 3D Modeling Coordinates Model Transformation 3D World Coordinates Lighting 3D World Coordinates Viewing Transformation 3D Viewing

### Shadow Algorithms. CSE 781 Winter Han-Wei Shen

Shadow Algorithms CSE 781 Winter 2010 Han-Wei Shen Why Shadows? Makes 3D Graphics more believable Provides additional cues for the shapes and relative positions of objects in 3D What is shadow? Shadow:

### Cap. 3 Textures. Mestrado em Engenharia Informática (6931) 1º ano, 1º semestre

Cap. 3 Textures Mestrado em Engenharia Informática (6931) 1º ano, 1º semestre Overview Objectives Notion of texture Motivation Texture mapping, texture patterns, and texels Mapping textures to polygons,

### Scalable multi-gpu cloud raytracing with OpenGL

Scalable multi-gpu cloud raytracing with OpenGL University of Žilina Digital technologies 2014, Žilina, Slovakia Overview Goals Rendering distant details in visualizations Raytracing Multi-GPU programming

Illumination and Shading Light sources emit intensity: assigns intensity to each wavelength of light Humans perceive as a colour - navy blue, light green, etc. Exeriments show that there are distinct I

### Overview. Goals. MipMapping. P5 MipMap Texturing. What are MipMaps. MipMapping in OpenGL. Generating MipMaps Filtering.

Overview What are MipMaps MipMapping in OpenGL P5 MipMap Texturing Generating MipMaps Filtering Alexandra Junghans junghana@student.ethz.ch Advanced Filters You can explain why it is a good idea to use

### Self-shadowing Bumpmap using 3D Texture Hardware

Self-shadowing Bumpmap using 3D Texture Hardware Tom Forsyth, Mucky Foot Productions Ltd. TomF@muckyfoot.com Abstract Self-shadowing bumpmaps add realism and depth to scenes and provide important visual

### lecture 16 Texture mapping Aliasing (and anti-aliasing)

lecture 16 Texture mapping Aliasing (and anti-aliasing) Texture (images) Texture Mapping Q: Why do we need texture mapping? A: Because objects look fake and boring without it. Adding texture improves realism.

### Mali Demos: Behind the Pixels. Stacy Smith

Mali Demos: Behind the Pixels Stacy Smith Mali Graphics: Behind the demos Mali Demo Team: Doug Day Stacy Smith (Me) Sylwester Bala Roberto Lopez Mendez PHOTOGRAPH UNAVAILABLE These days I spend more time

Illumination and Shading Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/14/07 1 From last time Texture mapping overview notation wrapping Perspective-correct interpolation Texture

### Reading. Texture Mapping. Non-parametric texture mapping. Texture mapping. Required. Angel, 8.6, 8.7, 8.9, 8.10,

Reading Required Angel, 8.6, 8.7, 8.9, 8.10, 9.13-9.13.2 Recommended Texture Mapping Paul S. Heckbert. Survey of texture mapping. IEEE Computer Graphics and Applications 6(11): 56--67, November 1986. Optional

### Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

Computer Graphics Lecture 13 Global Illumination 1: Ray Tracing and Radiosity Taku Komura 1 Rendering techniques Can be classified as Local Illumination techniques Global Illumination techniques Local

### Lecture 07: Buffers and Textures

Lecture 07: Buffers and Textures CSE 40166 Computer Graphics Peter Bui University of Notre Dame, IN, USA October 26, 2010 OpenGL Pipeline Today s Focus Pixel Buffers: read and write image data to and from

### Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

Computer Graphics 1 Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering 1 The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons

### OpenGL Texture Mapping. Objectives Introduce the OpenGL texture functions and options

OpenGL Texture Mapping Objectives Introduce the OpenGL texture functions and options 1 Basic Strategy Three steps to applying a texture 1. 2. 3. specify the texture read or generate image assign to texture

### Rendering Light Reflection Models

Rendering Light Reflection Models Visual Imaging in the Electronic Age Donald P. Greenberg October 3, 2017 Lecture #13 Program of Computer Graphics, Cornell University General Electric - 167 Cornell in

### COMP environment mapping Mar. 12, r = 2n(n v) v

Rendering mirror surfaces The next texture mapping method assumes we have a mirror surface, or at least a reflectance function that contains a mirror component. Examples might be a car window or hood,

### Direct Rendering of Trimmed NURBS Surfaces

Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended

### From Vertices to Fragments: Rasterization. Reading Assignment: Chapter 7. Special memory where pixel colors are stored.

From Vertices to Fragments: Rasterization Reading Assignment: Chapter 7 Frame Buffer Special memory where pixel colors are stored. System Bus CPU Main Memory Graphics Card -- Graphics Processing Unit (GPU)

### Computer Graphics. Lecture 10. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura 12/03/15

Computer Graphics Lecture 10 Global Illumination 1: Ray Tracing and Radiosity Taku Komura 1 Rendering techniques Can be classified as Local Illumination techniques Global Illumination techniques Local

### CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection

### CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications

CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 11794--4400

### CSE 167: Lecture #17: Procedural Modeling. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

CSE 167: Introduction to Computer Graphics Lecture #17: Procedural Modeling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011 Announcements Important dates: Final project outline

### Scan line algorithm. Jacobs University Visualization and Computer Graphics Lab : Graphics and Visualization 272

Scan line algorithm The scan line algorithm is an alternative to the seed fill algorithm. It does not require scan conversion of the edges before filling the polygons It can be applied simultaneously to

### CS GAME PROGRAMMING Question bank

CS6006 - GAME PROGRAMMING Question bank Part A Unit I 1. List the different types of coordinate systems. 2. What is ray tracing? Mention some applications of ray tracing. 3. Discuss the stages involved

### Project report Augmented reality with ARToolKit

Project report Augmented reality with ARToolKit FMA175 Image Analysis, Project Mathematical Sciences, Lund Institute of Technology Supervisor: Petter Strandmark Fredrik Larsson (dt07fl2@student.lth.se)

### Methodology for Lecture. Importance of Lighting. Outline. Shading Models. Brief primer on Color. Foundations of Computer Graphics (Spring 2010)

Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 11: OpenGL 3 http://inst.eecs.berkeley.edu/~cs184 Methodology for Lecture Lecture deals with lighting (teapot shaded as in HW1) Some Nate

### Surface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot. - a mesh of spline patches:

Surface Graphics Objects are explicitely defined by a surface or boundary representation (explicit inside vs outside) This boundary representation can be given by: - a mesh of polygons: 200 polys 1,000

### Shaders. Slide credit to Prof. Zwicker

Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

### Canonical Shaders for Optimal Performance. Sébastien Dominé Manager of Developer Technology Tools

Canonical Shaders for Optimal Performance Sébastien Dominé Manager of Developer Technology Tools Agenda Introduction FX Composer 1.0 High Performance Shaders Basics Vertex versus Pixel Talk to your compiler

### Chapter 9- Ray-Tracing

Ray-tracing is used to produce mirrored and reflective surfaces. It is also being used to create transparency and refraction (bending of images through transparent surfaceslike a magnifying glass or a

Illumination and Shading Illumination and Shading z Illumination Models y Ambient y Diffuse y Attenuation y Specular Reflection z Interpolated Shading Models y Flat, Gouraud, Phong y Problems CS4451: Fall

### CEng 477 Introduction to Computer Graphics Fall

Illumination Models and Surface-Rendering Methods CEng 477 Introduction to Computer Graphics Fall 2007 2008 Illumination Models and Surface Rendering Methods In order to achieve realism in computer generated

### Simpler Soft Shadow Mapping Lee Salzman September 20, 2007

Simpler Soft Shadow Mapping Lee Salzman September 20, 2007 Lightmaps, as do other precomputed lighting methods, provide an efficient and pleasing solution for lighting and shadowing of relatively static

### Advanced Maya Texturing and Lighting

Advanced Maya Texturing and Lighting Lanier, Lee ISBN-13: 9780470292730 Table of Contents Introduction. Chapter 1 Understanding Lighting, Color, and Composition. Understanding the Art of Lighting. Using

### Render-To-Texture Caching. D. Sim Dietrich Jr.

Render-To-Texture Caching D. Sim Dietrich Jr. What is Render-To-Texture Caching? Pixel shaders are becoming more complex and expensive Per-pixel shadows Dynamic Normal Maps Bullet holes Water simulation

### Texture Mapping. Computer Graphics, 2015 Lecture 9. Johan Nysjö Centre for Image analysis Uppsala University

Texture Mapping Computer Graphics, 2015 Lecture 9 Johan Nysjö Centre for Image analysis Uppsala University What we have rendered so far: Looks OK, but how do we add more details (and colors)? Texture mapping

### PFX Language Format. Specification

Public Imagination Technologies PFX Language Format Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.

### Instructor. Goals. Image Synthesis Examples. Applications. Foundations of Computer Graphics. Why Study 3D Computer Graphics?

Foundations of Computer Graphics Motivation: Why do we study 3D Graphics? http://www.cs.berkeley.edu/~ravir Instructor http://www.cs.berkeley.edu/~ravir PhD Stanford, 2002. PhD thesis developed Spherical

### Anisotropic Texture Filtering using Line Integral Textures

Anisotropic Texture Filtering using Line Integral Textures Blended Mipmap The Proposed Method 16x Anisotropic Filtering 1 2 3 5 6 7 8 9 10 11 12 13 1 15 16 17 18 19 20 21 22 23 2 25 26 27 Figure 1: Our

### Advanced Texture-Mapping Curves and Curved Surfaces. Pre-Lecture Business. Texture Modes. Texture Modes. Review quiz

Advanced Texture-Mapping Curves and Curved Surfaces Pre-ecture Business loadtexture example midterm handed bac, code posted (still) get going on pp3! more on texturing review quiz CS148: Intro to CG Instructor:

### CS452/552; EE465/505. Texture Mapping in WebGL

CS452/552; EE465/505 Texture Mapping in WebGL 2-26 15 Outline! Texture Mapping in WebGL Read: Angel, Chapter 7, 7.3-7.5 LearningWebGL lesson 5: http://learningwebgl.com/blog/?p=507 Lab3 due: Monday, 3/2

### Forward Image Mapping

Forward Image Mapping Baoquan Chen, Frank Dachille and Arie Kaufman Center for Visual Computing (CVC) and Department of Computer Science State University of New York at Stony Brook Stony Brook, NY 794-4400

### ART 268 3D Computer Graphics Texture Mapping and Rendering. Texture Mapping

ART 268 3D Computer Graphics Texture Mapping and Rendering Texture Mapping Is the way in which a material is wrapped around an object. The default method is UVW mapping (see below). When you drag a material

### Computer Graphics. Lecture 9 Environment mapping, Mirroring

Computer Graphics Lecture 9 Environment mapping, Mirroring Today Environment Mapping Introduction Cubic mapping Sphere mapping refractive mapping Mirroring Introduction reflection first stencil buffer