Texture and other Mappings

Similar documents
INTRODUCTION TO RENDERING TECHNIQUES

TEXTURE AND BUMP MAPPING

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Summed-Area Tables for Texture Mapping

Abstract. These two vectors define a plane tangent to the surface at that point. Their cross product is Recent work in computer graphics has been

Introduction to Computer Graphics

Materials in NX Render

High Dynamic Range and other Fun Shader Tricks. Simon Green

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

GPU Shading and Rendering: Introduction & Graphics Hardware

OpenGL Performance Tuning

Maya 2014 Still Life Part 1 Texturing & Lighting

IT 386: 3D Modeling and Animation. Review Sheet. Notes from Professor Nersesian s IT 386: 3D Modeling and Animation course

Computer Animation: Art, Science and Criticism

B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

Creating Your Own 3D Models

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16

Self-Positioning Handheld 3D Scanner

COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Introduction Week 1, Lecture 1

Software Virtual Textures

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

Workstation Applications for Windows. NVIDIA MAXtreme User s Guide

My Materials. In this tutorial, we ll examine the material settings for some simple common materials used in modeling.

Example Chapter 08-Number 09: This example demonstrates some simple uses of common canned effects found in popular photo editors to stylize photos.

Computer-Generated Photorealistic Hair

ROCKS AND MINERALS. Richard L. Yepez and Kathleen E. Yepez. An Art Skills Tutorial

A Short Introduction to Computer Graphics

Making natural looking Volumetric Clouds In Blender 2.48a

Angle - a figure formed by two rays or two line segments with a common endpoint called the vertex of the angle; angles are measured in degrees

VRayPattern also allows to curve geometry on any surface

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Exercise: Building and zone geometry import from SketchUp

Multivariate data visualization using shadow

GPUs Under the Hood. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

Advanced Computer Graphics. Rendering Equation. Matthias Teschner. Computer Science Department University of Freiburg

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

Shadows. Shadows. Thanks to: Frédo Durand and Seth Teller MIT. Realism Depth cue

So, you want to make a photo-realistic rendering of the Earth from orbit, eh? And you want it to look just like what astronauts see from the shuttle

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

Triangle Scan Conversion using 2D Homogeneous Coordinates

Consolidated Visualization of Enormous 3D Scan Point Clouds with Scanopy

Computer Graphics. Anders Hast

Deferred Shading & Screen Space Effects

Shape Dictionary YR to Y6

Lezione 4: Grafica 3D*(II)

CASTING CURVED SHADOWS ON CURVED SURFACES. Lance Williams Computer Graphics Lab New York Institute of Technology Old Westbury, New York 11568

Masters of Science in Software & Information Systems

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Motivation. Motivation

Procedural Shaders: A Feature Animation Perspective

Lesson 26: Reflection & Mirror Diagrams

Photo Studio. Site Map Preface What`s New? Getting Started Basic Tasks Advanced Tasks Workbench Description Customizing Glossary Index

Computer Graphics Global Illumination (2): Monte-Carlo Ray Tracing and Photon Mapping. Lecture 15 Taku Komura

WHITE PAPER. Methods for Measuring Flat Panel Display Defects and Mura as Correlated to Human Visual Perception

Three-Dimensional Data Recovery Using Image-Based Modeling

The small increase in x is. and the corresponding increase in y is. Therefore

PCL - SURFACE RECONSTRUCTION

Quick Tutorial. Overview. The NVIDIA Software Improvement Program. Creating an Effect

How To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac)

Adobe Marketing Cloud Sharpening images in Scene7 Publishing System and on Image Server

1. Definition of the project. 2. Initial version (simplified texture) 3. Second version (full textures) 5. Modelling and inserting 3D objects

Platonic Solids. Some solids have curved surfaces or a mix of curved and flat surfaces (so they aren't polyhedra). Examples:

The Limits of Human Vision

MicroStation V8i Training Manual 3D Level 3

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Volume visualization I Elvins

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

CSE168 Computer Graphics II, Rendering. Spring 2006 Matthias Zwicker

Our One-Year 3D Animation Program is a comprehensive training in 3D using Alias

Hi everyone, my name is Michał Iwanicki. I m an engine programmer at Naughty Dog and this talk is entitled: Lighting technology of The Last of Us,

Lesson #13 Congruence, Symmetry and Transformations: Translations, Reflections, and Rotations

3D Math Overview and 3D Graphics Foundations

Constrained Tetrahedral Mesh Generation of Human Organs on Segmented Volume *

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Activity Set 4. Trainer Guide

Objectives. Visualization. Radiological Viewing Station. Image Visualization. 2D 3D: Surface plots

First Edition, 2012 ISBN All rights reserved.

Advanced Visual Effects with Direct3D

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

The Lighting Effects Filter

Geometry Unit 6 Areas and Perimeters

Representing Geography

SOLIDS, NETS, AND CROSS SECTIONS

Data Visualization Study at Earth Simulator Center

How To Draw A Billiards Ball In Gta 3D With Texture Mapping (Gta 3) On A Computer Or 2D Or Gta 2D (Gt) On Your Computer Or Computer Or Your Computer (Or Your Computer)

Bildverarbeitung und Mustererkennung Image Processing and Pattern Recognition

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Lighting & Rendering in Maya: Lights and Shadows

Volume Rendering on Mobile Devices. Mika Pesonen

Perspective and Space

GPU Christmas Tree Rendering. Evan Hart

Transcription:

Texture and other Mappings Texture Mapping Bump Mapping Displacement Mapping Environment Mapping Angel Chapter 7 Last Time - Shading Flat shading: Inexpensive to compute Appropriate for objects with flat faces Less pleasant for smooth surfaces 1

Flat Shading and Perception Lateral inhibition: exaggerates perceived intensity Mach bands: perceived stripes along edges 2

Interpolative shading Gouraud Shading Compute vertex normal by averaging all adjacent face normals Requires knowledge about which faces share a vertex adjacency info 3

Defining and Maintaining Normals Define unit normal before each vertex glnormal3f(nx, ny, nz); glvertex3f(x, y, z); Length changes under some transformations Ask OpenGL to re-normalize (always works) glenable(gl_normalize); Ask OpenGL to re-scale normal (works for uniform scaling, rotate, translate) glenable(gl_rescale_normal); Phong Shading Interpolate normals rather than colors Significantly more expensive Mostly done off-line (not supported in OpenGL) 4

Phong Shading Results Michael Gold, Nvidia Phong Lighting Gouraud Shading Phong Lighting, Phong Shading Icosahedron Unsubdivided 5

One Subdivision Two Subdivisions Each time, multiply number of faces by 4 6

Three Subdivisions Reasonable approximation to sphere Textures Real objects have small surface features One option: use a huge number of polygons with appropriate surface coloring and reflectance characteristics Another option: use a mapping algorithm to modify the shading algorithm Texture mapping Bump mapping Displacement mapping Environmental mapping 7

The Quest for Visual Realism 2D Texture Mapping Texture images to make our surfaces more life-like Scan textures from the world (clouds, wood grain) or paint them yourself Store the texture in a 2D image Map the image onto the surface by a function which maps (u,v) coordinates of our parametric surface onto (x,y) image coordinates When shading a surface point, we look up the appropriate pixel from the 2D image, and use that to affect the final color Voila! Your favorite picture painted onto a donut. This technique is called parametric texture mapping But how to map from texture coordinates to object coordinates? Easy for a parametric surface, less obvious for other models. 8

Texture Mapping: General Texture Space Object Space Screen Space T T T u u, v x w, yw, zw x s, y s u, v, w Specifying the Mapping Function Some objects have natural parameterizations: Sphere: use spherical coordinates (I,T)=(2Su,Sv) Cylinder: use cylindrical coordinates (u,t)=(u,2sv) 9

Specifying the Mapping Function What about arbitrary polygonal objects? Two step mapping: To a canonical shape first Then project normals from object a) From texture value to object b) Use normals to find texture c) Line from center to point to texture value Or design the mapping by hand 10

www.uvmapper.com Demo: uvmapper Texture Mapping in OpenGL Glubyte my_texels[512][512]; glteximage2d(gl_texture_2d, 0, 3, 512, 512, 0, GL_RGB,GL_UNSIGNED_BYTE, my_texels); /* level, components, w, h, border, format, type, tarray */ glenable(gl_texture_2d); /* assign texture coordinates */ glbegin(gl_quad); gltexcoord2f(0.0, 0.0); glvertex2f(x1,y1,z1); gltexcoord2f(1.0, 0.0); glvertex2f(x2,y2,z2); gltexcoord2f(1.0,1.0); glvertex2f(x3,y3,z3); gltexcoord2f(0.0,1.0); glvertex2f(x4,y4,z4); glend(); 11

Grungy details we ve ignored Specify s or t out of range? Use GL_TEXTURE_WRAP in gltexparameter because many textures are carefully designed to repeat Aliasing? Mapping doesn t send you to the center of a texel. Can average nearest 2x2 texels using GL_LINEAR Mipmapping: use textures of varying resolutions. 64x64 becomes 32x32,16x16,8x8,4x4,2x2 and 1x1 arrays with glubuild2dmipmaps What is aliasing? Sampling error when mapping texture images to screen 12

What is aliasing? An on-screen pixel may not map neatly to a texel. Example: Checkerboard Particularly severe problems in regular textures 13

The Beginnings of a Solution: Mipmapping Pre-calculate how the texture should look at various distances, then use the appropriate texture at each distance. This is called mipmapping. Mip Æ multum in parvo or many things in a small place Each mipmap (each image below) represents a level of resolution. Powers of 2 make things much easier. The Beginnings of a Solution Problem: Clear divisions between different depth levels Mipmapping alone is unsatisfactory. 14

Another Component: Filtering Take the average of multiple texels to obtain the final RGB value Typically used along with mipmapping Bilinear filtering Average the four surrounding texels Cheap, and eliminates some aliasing, but does not help with visible LOD divisions Another Component: Filtering Trilinear filtering Interpolate between two LODs Final RGB value is between the result of a bilinear filter at one LOD and a second bilinear filter at the next LOD Eliminates seams between LODs At least twice as expensive as bilinear filtering 15

Another Component: Filtering Anisotropic filtering Basic filtering methods assume that a pixel on-screen maps to a square (isotropic) region of the texture For surfaces tilted away from the viewer, this is not the case! Image courtesy of nvidia Figure 5. Anisotropic footprints are very common. Another Component: Filtering Anisotropic filtering A pixel may map to a rectangular or trapezoidal section of texels shape filters accordingly and use either bilinear or trilinear filtering Complicated, but produces very nice results 16

Bilinear Filtering ID Software Trilinear Filtering ID Software 17

Anisotropic Filtering ID Software Side-by-Side Comparison nvidia 18

Texture Generation Photographs Drawings Procedural methods (2D or 3D) Associate each x,y,z value directly with an s,t,r value in the texture block (sculpting in marble and granite) Procedural Methods Reaction-Diffusion Greg Turk, Siggraph 91 19

Solid Textures Have a 3-D array of texture values (e.g., a block of marble) Use a function [xyz] -> [RGB] to map colors to points in space Such a 3D map is called a solid texture map In practice the map is often defined procedurally No need to store an entire 3D array of colors Just define a function to generate a color for each 3D point The most interesting solid textures are random ones a great marble algorithm has now become cliché Evaluate the texture coordinates in object coordinates - otherwise moving the object changes its texture! From: An Image Synthesizer by Ken Perlin, SIGGRAPH 85 Uses for Texture Mapping Use texture to affect a variety of parameters surface color (Catmull 1974) - color (radiance) of each point on surface surface reflectance - reflectance coefficients k d, k s, or n shiny normal vector - bump mapping (Blinn 1978) geometry - displacement mapping transparency - transparency mapping (clouds) (Gardener 1985) light source radiance - environment mapping (Blinn 1978) 20

Radiance vs. Reflectance Mapping + = Sphere w/ Uniform Diffuse coefficient Radiance Map Sphere w/ Radiance Map Texture specifies (isotropic) radiance for each point on surface + = Sphere w/ Uniform Diffuse coefficient Reflectance (k d ) Map Sphere w/ Reflectance Map Texture specifies diffuse color (k d coefficients) for each point on surface - three coefficients, one each for R, G, and B radiance channels Bump Mapping: A Dirty Trick Which spots bulge out, and which are indented? Answer: None! This is a flat image. The human visual system is hard-coded to expect light from above In CG, we can perturb the normal vector without having to make any actual change to the shape. 21

Bump Mapping Basic texture mapping paints on to a smooth surface How do you make a surface look rough? Option 1: model the surface with many small polygons Option 2: perturb the normal vectors before the shading calculation Real Bump Fake Bump Flat Plane + = Sphere w/diffuse Texture Map Bump Map Sphere w/diffuse Texture + Bump Map Bump Mapping Basic texture mapping paints on to a smooth surface How do you make a surface look rough? Option 1: model the surface with many small polygons Option 2: perturb the normal vectors before the shading calculation» the surface doesn t actually change, but shading makes it look that way» bump map fakes small displacements above or below the true surface» can use texture-mapping for this texture image gives amount to perturb surface normal What kind of anomaly will this produce? Greg Turk 22

Bump Mapping We can perturb the normal vector without having to make any actual change to the shape. This illusion can be seen through how? Original model (5M) Simplified (500) Simple model with bump map Another Bump Mapping Example + = Bump Map Cylinder w/diffuse Texture Map 23

Displacement Mapping Use texture map to displace each point on the surface Texture value gives amount to move in direction normal to surface How is this different from bump mapping? Environment Mapping Specular reflections that mirror the environment 24

Environment Mapping Specular reflections that mirror the environment Cube is a natural intermediate object for a room Environment Mapping: Cube Maps 25

More Tricks: Light Mapping Quake uses light maps in addition to (radiance) 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. Radiance Texture Map Only Radiance Texture + Light Map Light Map 26