Texture Mapping. Most slides courtesy of Leonard McMillan and Jovan Popovic
|
|
- Calvin Kelly
- 5 years ago
- Views:
Transcription
1 Texture Mapping Why texture map? How to do it How to do it right Spilling the beans A couple tricks Difficulties with texture mapping Projectie mapping Shadow mapping Enironment mapping Most slides courtesy of Leonard McMillan and Joan Popoic Lecture 15 Slide Fall 2002
2 Administratie Office hours Durand & Teller by appointment gan Thursday 4-7 in W Yu Friday 2-5 in E Deadline for proposal: Friday o 1 Meeting with faculty & staff about proposal ext week Web page for appointment Lecture 15 Slide Fall 2002
3 The Quest for Visual Realism For more info on the computer artwork of Jeremy Birn see Lecture 15 Slide Fall 2002
4 Photo-textures The concept is ery simple! Lecture 15 Slide Fall 2002
5 Texture Coordinates Specify a texture coordinate at each ertex (s, t) or (u, ) Canonical coordinates where u and are between 0 and 1 Simple modifications to triangle rasterizer (0,1) (0,0) (1,0) Void EdgeRec::init() { //ote: here we use w=1/z wstart=1./z1; wend=1./z2; dw=wend-wstart; wcurr=wstart; sstart=s1; send=s2; ds=sstart-send; scurr=sstart; tstart=t1; tend=t2; dt=tstart-tend; tcurr=tstart; } Void EdgeRec::update () { ycurr+=1; xcurr+=dx; wcurr+=dw; scurr+=ds; tcurr+=dt; } static oid RenderScanLine ( ) { for (e1 = AEL->ToFront(); e1!= ULL; e1 = AEL->ext() ) { e2=ael->extpolyedge(e1->poly); x1=[e1->xcurr]; x2=[e2->xcurr]; dx=x2-x1; w1=e1->wcurr; w2=e2->wcurr; dw=(w2-w1)/dx; s1=e1->scurr; s2=e2->scurr; ds=(s2-s1)/dx; t1=e1->tcurr; t2=e2->tcurr; dt=(t2-t1)/dx; for (int x=x1; x<x2; x++) { w+=dw; s+=ds; t+=dt; if (w<wbuffer[x]) { wbuffer[x]=w; raster.setpixel(x, texturemap[s,t]) } } } raster->write(y); } Lecture 15 Slide Fall 2002
6 The Result Let's try that out... Texture mapping applet (image) Wait a minute... that doesn't look right. What's going on here? Let's try again with a simpler texture... Texture mapping applet (simple texture) otice how the texture seems to bend and warp along the diagonal triangle edges. Let's take a closer look at what is going on. Lecture 15 Slide Fall 2002
7 Looking at One Edge First, let's consider one edge from a gien triangle. This edge and its projection onto our iewport lie in a single common plane. For the moment, let's look only at that plane, which is illustrated below: Lecture 15 Slide Fall 2002
8 Visualizing the Problem otice that uniform steps on the image plane do not correspond to uniform steps along the edge. Let's assume that the iewport is located 1 unit away from the center of projection. Lecture 15 Slide Fall 2002
9 Linear Interpolation in Screen Space Compare linear interpolation in screen space Lecture 15 Slide Fall 2002
10 Linear Interpolation in 3-Space to interpolation in 3-space Lecture 15 Slide Fall 2002
11 How to Make Them Mesh Still need to scan conert in screen space... so we need a mapping from t alues to s alues. We know that the all points on the 3-space edge project onto our screenspace line. Thus we can set up the following equality: and sole for s in terms of t giing: Unfortunately, at this point in the pipeline (after projection) we no longer hae z 1 lingering around (Why?). Howeer, we do hae w 1 = 1/z 1 and w 2 = 1/z 2. Lecture 15 Slide Fall 2002
12 Interpolating Parameters We can now use this expression for s to interpolate arbitrary parameters, such as texture indices (u, ), oer our 3-space triangle. This is accomplished by substituting our solution for s gien t into the parameter interpolation. Therefore, if we premultiply all parameters that we wish to interpolate in 3-space by their corresponding w alue and add a new plane equation to interpolate the w alues themseles, we can interpolate the numerators and denominator in screen-space. We then need to perform a diide a each step to get to map the screen-space interpolants to their corresponding 3-space alues. Once more, this is a simple modification to our existing triangle rasterizer. Lecture 15 Slide Fall 2002
13 Modified Rasterizer Void EdgeRec::init() { wstart=1./z1; wend=1./z2; dw=wend-wstart; wcurr=wstart; swstart=s1*w1; swend=s2*w2; dsw=swstart-swend; swcurr=swstart; twstart=t1*w1; twend=t2*w2; dtw=twstart-twend; twcurr=twstart; } Void EdgeRec::update () { ycurr+=1; xcurr+=dx; wcurr+=dw; swcurr+=dsw; twcurr+=dtw; } static oid RenderScanLine ( ) { for (e1 = AEL->ToFront(); e1!= ULL; e1 = AEL->ext() ) { e2=ael->extpolyedge(e1->poly); x1=[e1->xcurr]; x2=[e2->xcurr]; dx=x2-x1; w1=e1->wcurr; w2=e2->wcurr; dw=(w2-w1)/dx; sw1=e1->swcurr; sw2=e2->swcurr; dsw=(sw2-sw1)/dx; tw1=e1->twcurr; tw2=e2->twcurr; dtw=(tw2-tw1)/dx; for (int x=x1; x<x2; x++) { w+=dw; float denom = 1.0f / w; sw+=dsw; tw+=dtw; correct_s=sw*denom; correct_t=tw*denom; if (w<wbuffer[x]) { wbuffer[x]=w; raster.setpixel(x, texturemap[correct_s, correct_t]) } } } raster->write(y); } Lecture 15 Slide Fall 2002
14 Demonstration For obious reasons this method of interpolation is called perspectiecorrect interpolation. The fact is, the name could be shortened to simply correct interpolation. You should be aware that not all 3-D graphics APIs implement perspectie-correct interpolation. Applet with correct interpolation You can reduce the perceied artifacts of non-perspectie correct interpolation by subdiiding the texture-mapped triangles into smaller triangles (why does this work?). But, fundamentally the screen-space interpolation of projected parameters is inherently flawed. Applet with subdiided triangles Lecture 15 Slide Fall 2002
15 Reminds you something? When we did Gouraud shading didn't we interpolate illumination alues, that we found at each ertex using screenspace interpolation? Didn't I just say that screen-space interpolation is wrong (I beliee "inherently flawed" were my exact words)? Does that mean that Gouraud shading is wrong? Lecture 15 Slide Fall 2002
16 Gouraud is a big simplification Gourand shading is wrong. Howeer, you usually will not notice because the transition in colors is ery smooth (And we don't know what the right color should be anyway, all we care about is a pretty picture). There are some cases where the errors in Gouraud shading become obious. When switching between different leels-of-detail representations At "T" joints. Applet showing errors in Gouraud shading Lecture 15 Slide Fall 2002
17 Texture Tiling Often it is useful to repeat or tile a texture oer the surface of a polygon. if (w<wbuffer[x]) { wbuffer[x]=w; raster.setpixel(x, texturemap[tile(correct_s, max), tile(correct_t, max)]) } int tile(int al, int size) { if (al >= size) { do { al -= size; } while (al >= size); } else { while (al < 0) { al += size; } } return al; } Tiling applet Can also use symmetries Lecture 15 Slide Fall 2002
18 Texture Transparency There was also a little code snippet to handle texture transparency. if (w<wbuffer[x]) { Color4=raster.setPixel(x, oldcolor=raster.getpixel(x); texturecolor= texturemap[tile(correct_s, max), tile(correct_t, max)]; float t= texturecolor.transparency() newcolor = t*texturecolor+ (1-t)*oldColor; raster.setpixel(x, newcolor) wbuffer[x]=w; //OT SO SIMPLE.. BEYOD THE SCOPE OF THIS LECTURE } Applet showing texture transparency Lecture 15 Slide Fall 2002
19 Summary of Label Textures Increases the apparent complexity of simple geometry Must specify texture coordinates for each ertex Projectie correction (can't linearly interpolate in screen space) Specify ariations in shading within a primitie Two aspects of shading Illumination Surface Reflectace Label textures can handle both kinds of shading effects but it gets tedious Acquiring label textures is surprisingly tough Lecture 15 Slide Fall 2002
20 Difficulties with Label Textures Tedious to specfiy texture coordinates for eery triangle Textures are attached to the geometry Easier to model ariations in reflectance than illumination Can't use just any image as a label texture The "texture" can't hae projectie distortions Reminder: linear interploation in image space is not equialent to linear interpolation in 3- space (This is why we need "perspectiecorrect" texturing). The conerse is also true. Textures are attached to the geometry Easier to model ariations in reflectance than illumination Makes it hard to use pictures as textures Lecture 15 Slide Fall 2002
21 Projectie Textures Treat the texture as a light source (like a slide projector) o need to specify texture coordinates explicitly A good model for shading ariations due to illumination A fair model for reflectance (can use pictures) Lecture 15 Slide Fall 2002
22 Projectie Textures texture Projected onto the interior of a cube [Segal et al. 1992] Lecture 15 Slide Fall 2002
23 The Mapping Process During the Illumination process: For each ertex of triangle (in world or lighting space) Compute ray from the projectie texture's origin to point Compute homogeneous texture coordinate, [ti, tj, t] (use projectie matrix) During scan conersion (in projected screen space) Interpolate all three texture coordinates in 3-space (premultiply by w of ertex) Do normalization at each rendered pixel i = t i / t j = t j / t Access projected texture Lecture 15 Slide Fall 2002
24 Projectie Texture Examples Modeling from photograph Using input photos as textures [Debeec et al. 1996] Lecture 15 Slide Fall 2002
25 Adding Texture Mapping to Illumination Texture mapping can be used to alter some or all of the constants in the illumination equation. We can simply use the texture as the final color for the pixel, or we can just use it as diffuse color, or we can use the texture to alter the normal, or... the possibilities are endless! Phong's Illumination Model Constant Diffuse Color Diffuse Texture Color Texture used as Label Texture used as Diffuse Color Lecture 15 Slide Fall 2002
26 Texture-Mapping Tricks Textures and Shading Combining Textures Bump Mapping Solid Textures Lecture 15 Slide Fall 2002
27 Shadow Maps Projectie Textures with Depth Textures can also be used to generate shadows. Will be discussed in a later lecture Lecture 15 Slide Fall 2002
28 Enironment Maps If, instead of using the ray from the surface point to the projected texture's center, we used the direction of the reflected ray to index a texture map. We can simulate reflections. This approach is not completely accurate. It assumes that all reflected rays begin from the same point. Lecture 15 Slide Fall 2002
29 What's the Best Chart? Lecture 15 Slide Fall 2002
30 Reflection Mapping Lecture 15 Slide Fall 2002
31 Questions? Image computed using the Dali ray tracer by Henrik Wann jensen Enironment map by Paul Debeec Lecture 15 Slide Fall 2002
32 Lecture 15 Slide Fall 2002
33 Texture Mapping Modes Label textures Projectie textures Enironment maps Shadow maps Lecture 15 Slide Fall 2002
34 The Best of All Worlds All these texture mapping modes are great! The problem is, no one of them does eerything well. Suppose we allowed seeral textures to be applied to each primitie during rasterization. Lecture 15 Slide Fall 2002
35 Multipass s. Multitexture Multipass (the old way) - Render the image in multiple passes, and "add" the results. Multitexture - Make multiple texture accesses within the rasterizing loop and "blend" results. Blending approaches: Texture modulation Alpha Attenuation Additie textures Weird modes Lecture 15 Slide Fall 2002
36 Texture Mapping in Quake Quake uses light maps in addition to texture maps. Texture maps are used to add detail to surfaces, and light maps are used to store pre-computed illumination. The two are multiplied together at run-time, and cached for efficiency. Texture Maps Light Maps Data RGB Intensity Instanced Yes o Resolution High Low Light map image by ick Chirko Lecture 15 Slide Fall 2002
37 Bump Mapping Textures can be used to alter the surface normal of an object. This does not change the actual shape of the surface -- we are only shading it as if it were a different shape! This technique is called bump mapping. The texture map is treated as a single-alued height function. The alue of the function is not actually used, just its partial deriaties. The partial deriaties tell how to alter the true surface normal at each point on the surface to make the object appear as if it were deformed by the height function. Since the actual shape of the object does not change, the silhouette edge of the object will not change. Bump Mapping also assumes that the Illumination model is applied at eery pixel (as in Phong Shading or ray tracing). Swirly Bump Map Sphere w/diffuse Texture Sphere w/diffuse Texture & Bump Map Lecture 15 Slide Fall 2002
38 Bump mapping If Pu and P are orthogonal and is normalized: P = [ x( u, ), y( u, ), z( u, )] ormal = P u P P = P + B( u, ) T Initial point Simulated eleated point after bump P r P r' D D P u P + BuPu + BP D B u B Variation of normal in u direction = = B( s, t) B( s +, t) 2 B( s, t ) B( s, t + ) 2 Variation of normal in direction Compute bump map partials by numerical differentiation Lecture 15 Slide Fall 2002
39 Bump mapping General case P = [ x( u, ), y( u, ), z( u, )] = P u P ormal B( u, ) P = P + T Initial point Simulated eleated point after bump P u D P P u P + Bu u ( P ) B ( P ) D B u B Variation of normal in u direction = = B( s, t) B( s +, t) 2 B( s, t ) B( s, t + ) 2 Variation of normal in direction Compute bump map partials by numerical differentiation Lecture 15 Slide Fall 2002
40 Lecture 15 Slide Fall 2002 B B P P u u u u + + = B B P P + + = Bump mapping deriation u B P P ), ( + = P u P = 2 ) ( ) ( ) ( B B P B P B P P u u u u ery small... Assume B is 0 so and, But = = = P P P P u u u P B P B u u ) ( ) ( +
41 More Bump Map Examples Bump Map Cylinder w/diffuse Texture Map Cylinder w/texture Map & Bump Map Lecture 15 Slide Fall 2002
42 One More Bump Map Example otice that the shadow boundaries remain unchanged. Lecture 15 Slide Fall 2002
43 Displacement Mapping We use the texture map to actually moe the surface point. This is called displacement mapping. How is this fundamentally different than bump mapping? The geometry must be displaced before isibility is determined. Is this easily done in the graphics pipeline? In a ray-tracer? Lecture 15 Slide Fall 2002
44 Displacement Mapping Example It is possible to use displacement maps when ray tracing. Image from Geometry Caching for Ray-Tracing Displacement Maps by Matt Pharr and Pat Hanrahan. Lecture 15 Slide Fall 2002
45 Another Displacement Mapping Example Image from Ken Musgrae Lecture 15 Slide Fall 2002
46 Three Dimensional or Solid Textures The textures that we hae discussed to this point are two-dimensional functions mapped onto two-dimensional surfaces. Another approach is to consider a texture as a function defined oer a three-dimensional surface. Textures of this type are called solid textures. Solid textures are ery effectie at representing some types of materials such as marble and wood. Generally, solid textures are defined procedural functionsrather than tabularized or sampled functions as used in 2-D (Any guesses why?) The approach that we will explore is based on An Image Synthesizer, by Ken Perlin, SIGGRAPH '85. The ase to the right is from this paper. Lecture 15 Slide Fall 2002
47 oise and Turbulence When we say we want to create an "interesting" texture, we usually don't care exactly what it looks like -- we're only concerned with the oerall appearance. We want to add random ariations to our texture, but in a controlled way. oise and turbulence are ery useful tools for doing just that. A noise function is a continuous function that aries throughout space at a uniform frequency. To create a simple noise function, consider a 3D lattice, with a random alue assigned to each triple of integer coordinates: Lecture 15 Slide Fall 2002
48 Turbulence oise is a good start, but it looks pretty ugly all by itself. We can use noise to make a more interesting function called turbulence. A simple turbulence function can be computed by summing many different frequencies of noise functions: One Frequency Two Frequencies Three Frequencies Four Frequencies ow we're getting somewhere. But een turbulence is rarely used all by itself. We can use turbulence to build een more fancy 3D textures... Lecture 15 Slide Fall 2002
49 Marble Example We can use turbulence to generate beautiful 3D marble textures, such as the marble ase created by Ken Perlin. The idea is simple. We fill space with black and white stripes, using a sine wae function. Then we use turbulence at each point to distort those planes. By arying the frequency of the sin function, you get a few thick eins, or many thin eins. Varying the amplitude of the turbulence function controls how distorted the eins will be. Marble = sin(f * (x + A*Turb(x,y,z))) Lecture 15 Slide Fall 2002
Texture-Mapping Tricks. How Bad Does it Look? We've Seen this Sort of Thing Before. Sampling Texture Maps
Texture-Mapping Tricks Filtering Textures Textures and Shading Bump Mapping Solid Textures How Bad Does it Look? Let's take a look at what oversampling looks like: Click and drag the texture to rotate
More informationCSE528 Computer Graphics: Theory, Algorithms, and Applications
CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 11794--4400 Tel: (631)632-8450; Fax: (631)632-8334
More informationCS 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
More informationTexture Mapping. The Quest for Visual Realism. Photo-textures
Texture Mapping The Quest for Visual Realism Why texture map? How to do it How to do it right Spilling the beans A couple tricks Difficulties with texture mapping Projective mapping Shadow mapping Environment
More informationTexture Mapping Part 1
Texture Mapping Part 1 The Quest for Visual Realism Why Texture Map? How to do it How to do it right Spilling the beans Assignment #3 Lecture 17 Comp 236 Spring 2005 3/21/2005 Lecture 17 2 Decal Textures
More informationBump 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
More informationProgrammable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes
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
More informationframe buffer depth buffer stencil buffer
Final Project Proposals Programmable GPUS You should all have received an email with feedback Just about everyone was told: Test cases weren t detailed enough Project was possibly too big Motivation could
More informationComputer Graphics. Lecture 14 Bump-mapping, Global Illumination (1)
Computer Graphics Lecture 14 Bump-mapping, Global Illumination (1) Today - Bump mapping - Displacement mapping - Global Illumination Radiosity Bump Mapping - A method to increase the realism of 3D objects
More informationTexture Mapping II. Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1. 7.
Texture Mapping II Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1 Light Maps Simulates the effect of a local light source + = Can be pre-computed
More informationTexturing. Texture Mapping. Texture Mapping. Have seen: colour can be assigned to ver7ces But: don t want to represent all this detail with geometry
Texturing Anthony Steed 1999, Celine Loscos 2000-2005, Jan Kautz 2006-2009 Texture Mapping Have seen: colour can be assigned to ver7ces But: don t want to represent all this detail with geometry Texture
More informationCS 130 Final. Fall 2015
CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying
More informationProcedural Modeling. Last Time? Reading for Today. Reading for Today
Last Time? Procedural Modeling Modern Graphics Hardware Cg Programming Language Gouraud Shading vs. Phong Normal Interpolation Bump, Displacement, & Environment Mapping G P R T F P D Reading for Today
More informationMore 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
More informationAnnouncements. Written Assignment 2 is out see the web page. Computer Graphics
Announcements Written Assignment 2 is out see the web page 1 Texture and other Mappings Shadows Texture Mapping Bump Mapping Displacement Mapping Environment Mapping Watt Chapter 8 COMPUTER GRAPHICS 15-462
More information3D Rasterization II COS 426
3D Rasterization II COS 426 3D Rendering Pipeline (for direct illumination) 3D Primitives Modeling Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation
More information+ = To Do. Adding Visual Detail. Texture Mapping. Parameterization. Option: Varieties of projections. Foundations of Computer Graphics (Fall 2012)
Foundations of Computer Graphics (Fall 2012) CS 184, Lecture 23: Texture Mapping http://inst.eecs.berkeley.edu/~cs184 Submit HW5 milestone To Do Prepare for final push on HW 5, HW 6 Many slides from Greg
More informationComputer Graphics. - Texturing Methods -
Computer Graphics - Texturing Methods - Overview Last time BRDFs Shading Today Texturing Texture parameterization Procedural methods Procedural textures Fractal landscapes Next lecture Texture filtering
More informationCS 354R: Computer Game Technology
CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring
More informationTexture Mapping. Brian Curless CSE 457 Spring 2016
Texture Mapping Brian Curless CSE 457 Spring 2016 1 Reading Required Angel, 7.4-7.10 Recommended Paul S. Heckbert. Survey of texture mapping. IEEE Computer Graphics and Applications 6(11): 56--67, November
More informationPipeline Operations. CS 4620 Lecture 10
Pipeline Operations CS 4620 Lecture 10 2008 Steve Marschner 1 Hidden surface elimination Goal is to figure out which color to make the pixels based on what s in front of what. Hidden surface elimination
More informationTexture Mapping. Reading. Implementing texture mapping. Texture mapping. Daniel Leventhal Adapted from Brian Curless CSE 457 Autumn 2011.
Reading Recommended Texture Mapping Daniel Leventhal Adapted from Brian Curless CSE 457 Autumn 2011 Angel, 8.6, 8.7, 8.9, 8.10, 9.13-9.13.2 Paul S. Heckbert. Survey of texture mapping. IEEE Computer Graphics
More informationComputer Graphics. Shadows
Computer Graphics Lecture 10 Shadows Taku Komura Today Shadows Overview Projective shadows Shadow texture Shadow volume Shadow map Soft shadows Why Shadows? Shadows tell us about the relative locations
More information+ = To Do. Texture Mapping. Adding Visual Detail. Parameterization. Option: Varieties of projections. Computer Graphics. geometry
Computer Graphics CSE 167 [Win 17], Lecture 18: Texture Mapping Ravi Ramamoorthi To Do Prepare for final push on HW 4 We may have a brief written assignment http://viscomp.ucsd.edu/classes/cse167/wi17
More informationOverview. Hierarchy. Level of detail hierarchy Texture maps Procedural shading and texturing Texture synthesis and noise.
Overview Level of detail hierarchy Texture maps Procedural shading and texturing Texture synthesis and noise Hierarchy Physics Computer Graphics Geometrical optics Macro-structures Transport Micro-structures
More informationTexture. Texture Mapping. Texture Mapping. CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture
Texture CS 475 / CS 675 Computer Graphics Add surface detail Paste a photograph over a surface to provide detail. Texture can change surface colour or modulate surface colour. Lecture 11 : Texture http://en.wikipedia.org/wiki/uv_mapping
More informationTexture Mapping. Brian Curless CSE 457 Spring 2015
Texture Mapping Brian Curless CSE 457 Spring 2015 1 Reading Required Angel, 7.4-7.10 Recommended Paul S. Heckbert. Survey of texture mapping. IEEE Computer Graphics and Applications 6(11): 56--67, November
More informationCS 475 / CS 675 Computer Graphics. Lecture 11 : Texture
CS 475 / CS 675 Computer Graphics Lecture 11 : Texture Texture Add surface detail Paste a photograph over a surface to provide detail. Texture can change surface colour or modulate surface colour. http://en.wikipedia.org/wiki/uv_mapping
More informationComputer Graphics 10 - Shadows
Computer Graphics 10 - Shadows Tom Thorne Slides courtesy of Taku Komura www.inf.ed.ac.uk/teaching/courses/cg Overview Shadows Overview Projective shadows Shadow textures Shadow volume Shadow map Soft
More informationAdvanced Shading and Texturing
Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall Advanced Shading and Texturing 1 Topics Features Bump mapping Environment mapping Shadow
More informationgraphics 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
More informationCPSC / Texture Mapping
CPSC 599.64 / 601.64 Introduction and Motivation so far: detail through polygons & materials example: brick wall problem: many polygons & materials needed for detailed structures inefficient for memory
More informationReading. 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
More informationgraphics 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
More informationSurface 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
More informationReading. Texture Mapping. Non-parametric texture mapping. Texture mapping. Required. Angel, 8.6, 8.7, 8.9, Recommended
Reading Required Angel, 8.6, 8.7, 8.9, 8.10 Recommended Texture Mapping Paul S. Heckbert. Survey of texture mapping. IEEE Computer Graphics and Applications 6(11): 56--67, November 1986. Optional Woo,
More informationThe Traditional Graphics Pipeline
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
More informationShadows in the graphics pipeline
Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects
More informationPipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11
Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION
More information2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into
2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel
More informationLets 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
More informationCS451Real-time Rendering Pipeline
1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does
More informationShading. Flat shading Gouraud shading Phong shading
Shading Flat shading Gouraud shading Phong shading Flat Shading and Perception Lateral inhibition: exaggerates perceived intensity Mach bands: perceived stripes along edges Icosahedron with Sphere Normals
More informationTexture. Detail Representation
Page 1 Texture Procedural shading and texturing Applied and projected textures Material / light properties Shadow maps Spherical and higher order textures Spherical mappings Environment and irradiance
More informationCS 325 Computer Graphics
CS 325 Computer Graphics 04 / 02 / 2012 Instructor: Michael Eckmann Today s Topics Questions? Comments? Illumination modelling Ambient, Diffuse, Specular Reflection Surface Rendering / Shading models Flat
More informationEinfü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
More informationOrthogonal 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
More informationPipeline Operations. CS 4620 Lecture 14
Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives
More informationTopics and things to know about them:
Practice Final CMSC 427 Distributed Tuesday, December 11, 2007 Review Session, Monday, December 17, 5:00pm, 4424 AV Williams Final: 10:30 AM Wednesday, December 19, 2007 General Guidelines: The final will
More informationComplex Features on a Surface. CITS4241 Visualisation Lectures 22 & 23. Texture mapping techniques. Texture mapping techniques
Complex Features on a Surface CITS4241 Visualisation Lectures 22 & 23 Texture Mapping Rendering all surfaces as blocks of colour Not very realistic result! Even with shading Many objects have detailed
More informationShading Techniques Denbigh Starkey
Shading Techniques Denbigh Starkey 1. Summary of shading techniques 2 2. Lambert (flat) shading 3 3. Smooth shading and vertex normals 4 4. Gouraud shading 6 5. Phong shading 8 6. Why do Gouraud and Phong
More informationGraphics Hardware and Display Devices
Graphics Hardware and Display Devices CSE328 Lectures Graphics/Visualization Hardware Many graphics/visualization algorithms can be implemented efficiently and inexpensively in hardware Facilitates interactive
More informationCHAPTER 1 Graphics Systems and Models 3
?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........
More information6.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
More informationRasterization and Graphics Hardware. Not just about fancy 3D! Rendering/Rasterization. The simplest case: Points. When do we care?
Where does a picture come from? Rasterization and Graphics Hardware CS559 Course Notes Not for Projection November 2007, Mike Gleicher Result: image (raster) Input 2D/3D model of the world Rendering term
More informationIntroduction to Visualization and Computer Graphics
Introduction to Visualization and Computer Graphics DH2320, Fall 2015 Prof. Dr. Tino Weinkauf Introduction to Visualization and Computer Graphics Visibility Shading 3D Rendering Geometric Model Color Perspective
More informationTexture. Texture Maps
Texture Texture maps! Surface color and transparency! Environment and irradiance maps! Reflectance maps! Shadow maps! Displacement and bump maps Level of detail hierarchy Procedural shading and texturing
More informationCS 4620 Midterm, March 21, 2017
CS 460 Midterm, March 1, 017 This 90-minute exam has 4 questions worth a total of 100 points. Use the back of the pages if you need more space. Academic Integrity is expected of all students of Cornell
More informationAssignment 6: Ray Tracing
Assignment 6: Ray Tracing Programming Lab Due: Monday, April 20 (midnight) 1 Introduction Throughout this semester you have written code that manipulated shapes and cameras to prepare a scene for rendering.
More informationComputergrafik. Matthias Zwicker. Herbst 2010
Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Bump mapping Shadows Shadow mapping Shadow mapping in OpenGL Bump mapping Surface detail is often the result of small perturbations in
More informationThe Traditional Graphics Pipeline
Final Projects Proposals due Thursday 4/8 Proposed project summary At least 3 related papers (read & summarized) Description of series of test cases Timeline & initial task assignment The Traditional Graphics
More informationChapter 2 A top-down approach - How to make shaded images?
Chapter 2 A top-down approach - How to make shaded images? Comp. Graphics (U), Chap 2 Global View 1 CGGM Lab., CS Dept., NCTU Jung Hong Chuang Graphics API vs. application API Graphics API Support rendering
More informationLecture 21: Shading. put your trust in my shadow. Judges 9:15
Lecture 21: Shading put your trust in my shadow. Judges 9:15 1. Polygonal Models Polygonal models are one of the most common representations for geometry in Computer Graphics. Polygonal models are popular
More informationToday. The Graphics Pipeline: Projective Transformations. Last Week: Schedule. XForms Forms Library. Questions?
Toda The Graphics Pipeline: Projectie Reiew & Schedule Ra Casting / Tracing s. The Graphics Pipeline Projectie Last Week: Animation & Quaternions Finite Element Simulations collisions, fracture, & deformation
More informationToday. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing
Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2010 Matthias Zwicker Universität Bern Rendering algorithms Problem statement Given computer representation of
More information521493S 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
More informationRasterization. MIT EECS Frédo Durand and Barb Cutler. MIT EECS 6.837, Cutler and Durand 1
Rasterization MIT EECS 6.837 Frédo Durand and Barb Cutler MIT EECS 6.837, Cutler and Durand 1 Final projects Rest of semester Weekly meetings with TAs Office hours on appointment This week, with TAs Refine
More informationTEXTURE MAPPING. DVA338 Computer Graphics Thomas Larsson, Afshin Ameri
TEXTURE MAPPING DVA338 Computer Graphics Thomas Larsson, Afshin Ameri OVERVIEW Motivation Texture Mapping Coordinate Mapping (2D, 3D) Perspective Correct Interpolation Texture Filtering Mip-mapping Anisotropic
More informationTexture and other Mappings
Texture and other Mappings Texture Mapping Bump Mapping Displacement Mapping Environment Mapping Example: Checkerboard Particularly severe problems in regular textures 1 The Beginnings of a Solution: Mipmapping
More informationProblem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007
Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007 Programming For this assignment you will write a simple ray tracer. It will be written in C++ without
More informationThe Traditional Graphics Pipeline
Last Time? The Traditional Graphics Pipeline Participating Media Measuring BRDFs 3D Digitizing & Scattering BSSRDFs Monte Carlo Simulation Dipole Approximation Today Ray Casting / Tracing Advantages? Ray
More informationMultiple Importance Sampling
Multiple Importance Sampling Multiple Importance Sampling Reflection of a circular light source by a rough surface Radius Shininess Sampling the light source f()() xgxdx Sampling the BRDF Page 1 Multiple
More informationCS5620 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
More informationSo 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
More informationCS 4620 Program 3: Pipeline
CS 4620 Program 3: Pipeline out: Wednesday 14 October 2009 due: Friday 30 October 2009 1 Introduction In this assignment, you will implement several types of shading in a simple software graphics pipeline.
More informationComputer Graphics I Lecture 11
15-462 Computer Graphics I Lecture 11 Midterm Review Assignment 3 Movie Midterm Review Midterm Preview February 26, 2002 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/
More informationB-Spline and NURBS Surfaces CS 525 Denbigh Starkey. 1. Background 2 2. B-Spline Surfaces 3 3. NURBS Surfaces 8 4. Surfaces of Rotation 9
B-Spline and NURBS Surfaces CS 525 Denbigh Starkey 1. Background 2 2. B-Spline Surfaces 3 3. NURBS Surfaces 8 4. Surfaces of Rotation 9 1. Background In my preious notes I e discussed B-spline and NURBS
More informationHidden Line and Surface
Copyright@00, YZU Optimal Design Laboratory. All rights resered. Last updated: Yeh-Liang Hsu (00--). Note: This is the course material for ME550 Geometric modeling and computer graphics, Yuan Ze Uniersity.
More informationLight Reflection Models
Light Reflection Models Visual Imaging in the Electronic Age Donald P. Greenberg October 21, 2014 Lecture #15 Goal of Realistic Imaging From Strobel, Photographic Materials and Processes Focal Press, 186.
More informationComputer Graphics 7 - Texture mapping, bump mapping and antialiasing
Computer Graphics 7 - Texture mapping, bump mapping and antialiasing Tom Thorne Slides courtesy of Taku Komura www.inf.ed.ac.uk/teaching/courses/cg Overview Texture mapping and bump mapping Anti-aliasing
More informationCOMP 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,
More informationImage-Based Modeling and Rendering. Image-Based Modeling and Rendering. Final projects IBMR. What we have learnt so far. What IBMR is about
Image-Based Modeling and Rendering Image-Based Modeling and Rendering MIT EECS 6.837 Frédo Durand and Seth Teller 1 Some slides courtesy of Leonard McMillan, Wojciech Matusik, Byong Mok Oh, Max Chen 2
More informationSurface shading: lights and rasterization. Computer Graphics CSE 167 Lecture 6
Surface shading: lights and rasterization Computer Graphics CSE 167 Lecture 6 CSE 167: Computer Graphics Surface shading Materials Lights Rasterization 2 Scene data Rendering pipeline Modeling and viewing
More informationTopic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping
Topic 12: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping Texture sources: Photographs Texture sources: Procedural Texture sources: Solid textures
More informationIllumination Models & Shading
Illumination Models & Shading Lighting vs. Shading Lighting Interaction between materials and light sources Physics Shading Determining the color of a pixel Computer Graphics ZBuffer(Scene) PutColor(x,y,Col(P));
More informationGraphics for VEs. Ruth Aylett
Graphics for VEs Ruth Aylett Overview VE Software Graphics for VEs The graphics pipeline Projections Lighting Shading VR software Two main types of software used: off-line authoring or modelling packages
More informationdiffuse diffuse reflection refraction diffuse mapping diffuse reflection reflection filter mapping mapping reflection
Matières 1 2 3 mapping diffuse reflection diffuse transparency reflection refraction diffuse mapping diffuse reflection diffuse reflection filter mapping bump mapping mapping mapping diffuse reflection
More informationTexture mapping. Computer Graphics CSE 167 Lecture 9
Texture mapping Computer Graphics CSE 167 Lecture 9 CSE 167: Computer Graphics Texture Mapping Overview Interpolation Wrapping Texture coordinates Anti aliasing Mipmaps Other mappings Including bump mapping
More informationRendering 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
More informationTexture Mapping and Sampling
Texture Mapping and Sampling CPSC 314 Wolfgang Heidrich The Rendering Pipeline Geometry Processing Geometry Database Model/View Transform. Lighting Perspective Transform. Clipping Scan Conversion Depth
More informationRendering and Radiosity. Introduction to Design Media Lecture 4 John Lee
Rendering and Radiosity Introduction to Design Media Lecture 4 John Lee Overview Rendering is the process that creates an image from a model How is it done? How has it been developed? What are the issues
More informationLecture 8 Ray tracing Part 1: Basic concept Yong-Jin Liu.
Fundamentals of Computer Graphics Lecture 8 Ray tracing Part 1: Basic concept Yong-Jin Liu liuyongjin@tsinghua.edu.cn Material by S.M.Lea (UNC) Goals To set up the mathematics and algorithms to perform
More informationComputer 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
More informationTopic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized
Topic 11: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip mapping & env mapping Texture sources: Photographs Texture sources: Procedural Texture sources: Solid textures
More informationLecture 17: Shadows. Projects. Why Shadows? Shadows. Using the Shadow Map. Shadow Maps. Proposals due today. I will mail out comments
Projects Lecture 17: Shadows Proposals due today I will mail out comments Fall 2004 Kavita Bala Computer Science Cornell University Grading HW 1: will email comments asap Why Shadows? Crucial for spatial
More informationsurface: reflectance transparency, opacity, translucency orientation illumination: location intensity wavelength point-source, diffuse source
walters@buffalo.edu CSE 480/580 Lecture 18 Slide 1 Illumination and Shading Light reflected from nonluminous objects depends on: surface: reflectance transparency, opacity, translucency orientation illumination:
More informationCOMP 175 COMPUTER GRAPHICS. Lecture 11: Recursive Ray Tracer. COMP 175: Computer Graphics April 9, Erik Anderson 11 Recursive Ray Tracer
Lecture 11: Recursive Ray Tracer COMP 175: Computer Graphics April 9, 2018 1/40 Note on using Libraries } C++ STL } Does not always have the same performance. } Interface is (mostly) the same, but implementations
More informationOpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.
OpenGl Pipeline Individual Vertices Transformed Vertices Commands Processor Per-vertex ops Primitive assembly triangles, lines, points, images Primitives Fragments Rasterization Texturing Per-fragment
More informationCIS 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
More informationCSE 167: Introduction to Computer Graphics Lecture #19: Wrapping Up. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017
CSE 167: Introduction to Computer Graphics Lecture #19: Wrapping Up Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements TA evaluations CAPE Final project blog entries
More information