Week 7 - Wednesday CS361.

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 7 - Wednesday.  What did we talk about last time?  Transparency  Gamma correction  Started texturing.
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.
Texture Mapping CPSC /24/03 Abhijeet Ghosh.
CS 4731: Computer Graphics Lecture 17: Texturing Emmanuel Agu.
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
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
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.
1 Texture Mapping. 2 Texture Aliasing MIPmaps Environment Mapping Bump Mapping Displacement Mapping Shadow Maps Solid Textures Antialiasing.
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. 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.
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 14 - Wednesday CS361.
Week 7 - Monday CS361.
Week 2 - Friday CS361.
Week 11 - Wednesday CS361.
Texture Mapping cgvr.korea.ac.kr.
ATEC Procedural Animation
ATCM 3310 Procedural Animation
OpenGL Texture Mapping
Graphics, Fall 2017 Lecture 24: Texture Mapping
Sampling Theorem & Antialiasing
Basic Rendering Techniques
*With lots of borrowing from the usual victims…
Anti-aliasing for Texture Mapping
Chapters VIII Image Texturing
Interactive Graphics Algorithms Ying Zhu Georgia State University
(c) University of Wisconsin, CS 559
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 CS361

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

Questions?

Project 2

Exam 1 Post Mortem

Texturing

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

Corresponder function Value transform function Texture pipeline 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 Object space Projector function Parameter space Corresponder function Texture space Obtain value Texture value Value transform function Transformed value

Projector function 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

Corresponder function 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

Texture values 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

Student Lecture: Mipmapping and Anisotropic filtering of Textures

Image Texturing

Image texturing Usually, texturing is image texturing: Gluing a 2D image onto a polygon Recall that textures have certain limitations Usually 2m x 2n 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

Resizing 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 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)

Bilinear interpolation (with apologies) 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

Blurring issues 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 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 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

Mipmapping in action 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

Trilinear filtering 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

Summed-area table 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

Anisotropic filtering 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

MonoGame Examples

Quiz

Upcoming

Next time… MonoGame examples Project 2 and Assignment 3 work day? Textures in shader code Project 2 and Assignment 3 work day?

Reminders Keep working on Project 2 Finish Assignment 3 Keep reading Chapter 6 Internship opportunity: Masonic Villages Several previous E-town students have had good experiences there Contact me if interested