Week 7 - Wednesday.  What did we talk about last time?  Transparency  Gamma correction  Started texturing.

Slides:



Advertisements
Similar presentations
CSE 781 Anti-aliasing for Texture Mapping. Quality considerations So far we just mapped one point – results in bad aliasing (resampling problems) We really.
Advertisements

03/16/2009Dinesh Manocha, COMP770 Texturing Surface’s texture: its look & feel Graphics: a process that takes a surface and modifies its appearance using.
Texture Mapping. Texturing  process that modifies the appearance of each point on a surface using an image or function  any aspect of appearance can.
Week 7 - Monday.  What did we talk about last time?  Specular shading  Aliasing and antialiasing.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
ATEC Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
Computer Graphics Bing-Yu Chen National Taiwan University.
Texture Visual detail without geometry. Texture Mapping desire for heightened realism.
Week 9 - Wednesday.  What did we talk about last time?  Fresnel reflection  Snell's Law  Microgeometry effects  Implementing BRDFs  Image based.
3D Graphics for Game Programming (J. Han) Chapter VIII Image Texturing.
Sampling, Aliasing, & Mipmaps
Texture Mapping CPSC /24/03 Abhijeet Ghosh.
CS 4731: Computer Graphics Lecture 17: Texturing Emmanuel Agu.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Computer Graphics Inf4/MSc Computer Graphics Lecture 11 Texture Mapping.
Texture Mapping A way of adding surface details Two ways can achieve the goal:  Surface detail polygons: create extra polygons to model object details.
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
Computer Graphics Inf4/MSc Computer Graphics Lecture 9 Antialiasing, Texture Mapping.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
3D Computer Graphics: Textures. Textures: texels Texture is a way of assigning a diffuse color to a pixel – can be with 1, 2 or 3D- can use maps, interpolation.
Week 8 - Monday.  What did we talk about last time?  Workday  Before that:  Image texturing ▪ Magnification ▪ Minification  Mipmapping  Summed area.
Computer Graphics Inf4/MSc Computer Graphics Lecture 7 Texture Mapping, Bump-mapping, Transparency.
Computer Graphics Texture Mapping Eriq Muhammad Adams
Computer Graphics Texture Mapping
1 Texture Mapping ©Anthony Steed Overview n Texture mapping Inverse and Forward Mapping Bilinear interpolation Perspective correction n Mipmapping.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 Texture Mapping 고려대학교 컴퓨터 그래픽스 연구실.
Texture Mapping Course: Computer Graphics Presented by Fan Chen
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS Textures.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
Texture Mapping. 2 Motivation A typical modern graphics card can handle 10s of millions of polygons a second. How many individual blades of grass are.
OpenGL Texture Mapping. 2 Objectives Introduce the OpenGL texture functions and options.
CS 480/680 Computer Graphics OpenGL Texture Mapping Dr. Frederick C Harris, Jr. Fall 2011.
Photo-realistic Rendering and Global Illumination in Computer Graphics Spring 2012 Texturing K. H. Ko School of Mechatronics Gwangju Institute of Science.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
CS418 Computer Graphics John C. Hart
Lecture Fall 2001 From S. Zeki, Inner Vision.
Texture Mapping May 4, Many slides are borrowed from UNC-CH COMP236 Course (Spring 2003) taught by Leonard McMillan
Texture Mapping. 2 3 Loading Textures void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border,
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
CS 325 Introduction to Computer Graphics 04 / 12 / 2010 Instructor: Michael Eckmann.
CS 450: COMPUTER GRAPHICS TEXTURE MAPPING SPRING 2015 DR. MICHAEL J. REALE.
CSCI 440.  So far we have learned how to  build shapes  create movement  change views  add simple lights  But, our objects still look very cartoonish.
1 Dr. Scott Schaefer Antialiasing. 2/70 What is aliasing?
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Texture Mapping Greg Humphreys University of Virginia CS 445, Fall 2003.
CSc4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University Texture Mapping.
Texturing Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.
Antialiasing. What is alias? Alias - A false signal in telecommunication links from beats between signal frequency and sampling frequency (from dictionary.com)
Ying Zhu Georgia State University
Week 7 - Wednesday CS361.
Week 7 - Monday CS361.
Week 2 - Friday CS361.
Texture Mapping cgvr.korea.ac.kr.
ATEC Procedural Animation
ATCM 3310 Procedural Animation
OpenGL Texture Mapping
Anti-aliasing for Texture Mapping
Chapters VIII Image Texturing
Interactive Graphics Algorithms Ying Zhu Georgia State University
Mipmaps Lecture 16 Mon, Oct 1, 2007.
3D Game Programming Texture Mapping
Procedural Animation Lecture 6: Mapping
ATCM 6317 Procedural Animation
OpenGL Texture Mapping
Advanced Computer Graphics: Texture
Mipmaps Lecture 13 Wed, Oct 12, 2005.
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
3D Game Programming Texture Mapping
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
OpenGL Texture Mapping
Presentation transcript:

Week 7 - Wednesday

 What did we talk about last time?  Transparency  Gamma correction  Started texturing

 We've got polygons, but they are all one color  At most, we could have different colors at each vertex  We want to "paint" a picture on the polygon  Because the surface is supposed to be colorful  To appear as if there is greater complexity than there is (a texture of bricks rather than a complex geometry of bricks)  To apply other effects to the surface such as changes in material or normal

 We never get tired of pipelines  Go from object space to parameter space  Go from parameter space to texture space  Get the texture value  Transform the texture value Projector function Object space Corresponder function Parameter space Obtain value Texture space Value transform function Texture value Transformed value

 The projector function goes from the model space (a 3D location on a surface) to a 2D (u,v) coordinate on a texture  Usually, this is based on a map from the model to the texture, made by an artist  Tools exist to help artists "unwrap" the model  Different kinds of mapping make this easier  In other scenarios, a mapping could be determined at run time

 From (u,v) coordinates we have to find a corresponding texture pixel (or texel)  Often this just maps directly from u,v  [0,1] to a pixel in the full width, height range  But matrix transformations can be applied  Also, values outside of [0,1] can be given, with different choices of interpretation

 Usually the texture value is just an RGB triple (or an RGBα value)  But, it could be procedurally generated  It could be a bump mapping or other surface data  It might need some transformation after retrieval

 Usually, texturing is image texturing:  Gluing a 2D image onto a polygon  Recall that textures have certain limitations  Usually 2 m x 2 n texels  Some old cards require square textures  Most new cards don't have to do powers of 2  Maximum sizes vary: ▪ 2048 x 2048 might be all your laptop can do ▪ 8192 x 8192 is required by DirectX 10

 Sometimes a small texture will cover a much larger area on screen  This effect is called magnification  Sometimes a large texture will cover very little area on the screen  This effect is called minification  Different techniques exist to overcome these problems

 Magnification is often done by filtering the source texture in one of several ways:  Nearest neighbor (the worst) takes the closest texel to the one needed  Bilinear interpolation linearly interpolates between the four neighbors  Bicubic interpolation probably gives the best visual quality at greater computational expense (and is generally not directly supported)

 Perhaps unsurprisingly, the book gives a pretty good explanation of bilinear interpolation on p. 159  I guess I should direct people there in the future

 Bilinear interpolation tends to blur sharp edges, but you can interpolate non-linearly, remapping bright colors to a bright value and dark to a dark value  Another alternative is detail textures  Overlay higher resolution textures (representing details like scratches) onto a magnified texture

 Minification is just as big of a problem (if not bigger)  Bilinear interpolation can work  But an onscreen pixel might be influenced by many more than just its four neighbors  We want to, if possible, have only a single texel per pixel  Main techniques:  Mipmapping  Summed-area tables  Anisotropic filtering

 Mipmapping is the most popular texture antialiasing solution  Mip = "multum in parvo," meaning "many things in a small place"  The trouble with minification is that a single pixel needs to be colored by lots of texels  The solution: when loading the texture, create many smaller filtered versions of the texture, then use the appropriate one for rendering

 Typically a chain of mipmaps is created, each half the size of the previous  That's why cards like square power of 2 textures  Often the filtered version is made with a box filter, but better filters exist  The trick is figuring out which mipmap level to use  The level d can be computed based on the change in u relative to a change in x

 One way to improve quality is to interpolate between u and v texels from the nearest two d levels  Picking d can be affected by a level of detail bias term which may vary for the kind of texture being used

 Sometimes we are magnifying in one axis of the texture and minifying in the other  Summed area tables are another method to reduce the resulting overblurring  It sums up the relevant pixels values in the texture  It works by precomputing all possible rectangles

 Summed area tables work poorly for non-rectangular projections into texture space  Modern hardware uses unconstrained anisotropic filtering  The shorter side of the projected area determines d, the mipmap index  The longer side of the projected area is a line of anisotropy  Multiple samples are taken along this line  Memory requirements are no greater than regular mipmapping

 SharpDX examples  Textures in shader code  Project 2 and Assignment 3 work day?

 Keep working on Project 2  Finish Assignment 3  Keep reading Chapter 6  Internship opportunity:  Naval Supply Systems Command  Student Trainee Position as Information Technology Specialist  For more information: ▪ 0