CSE 681 Texture Mapping: Solid Texturing. CSE 681 Texture Mapping Visual complexity on demand Vary display properties over object Location on object used.

Slides:



Advertisements
Similar presentations
Graphics Pipeline.
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.
CSE 681 Texture mapping - other methods Environmental mapping Bump mapping.
Procedural Textures Jian Huang, CS594, Fall 2002 This set of slides references slides used at Ohio State and “Texturing and modeling” by Ebert, et. al.
3D Graphics Rendering and Terrain Modeling
COMPUTER GRAPHICS CS 482 – FALL 2014 OCTOBER 6, 2014 TEXTURE MAPPING TEXTURES BUMP MAPPING ENVIRONMENT MAPPING PROCEDURAL TEXTURING.
Reflections from Bumpy Surfaces GPU Graphics. What are we trying to achieve?  Most surfaces are not flat like glass  Some of these surfaces still give.
1GR2-00 GR2 Advanced Computer Graphics AGR Lecture 12 Solid Textures Bump Mapping Environment Mapping.
IMGD 1001: Illumination by Mark Claypool
IN4151 Introduction 3D graphics 1 Introduction 3D Computer Graphics part 1 Projective display Viewing pipeline Graphics hardware Image-based rendering.
Chapter 4 Digital Multimedia, 2nd edition Vector Graphics.
(conventional Cartesian reference system)
Introduction to Volume Visualization Mengxia Zhu Fall 2007.
Texture Mapping from Watt, Ch. 8 Jonathan Han. Topics Discussed Texture Map to Models Bump Maps, Light Maps Environment (Reflection) Mapping 3D Textures.
Ray Tracing Jerry Sui Adam Conner. Part I – Introduction to Ray Tracing Final Product.
Texture mapping. Adds realism to computer graphics Texture mapping applies a pattern of color Bump mapping alters the surface Mapping is cheaper than.
6.1 Vis_04 Data Visualization Lecture 6 - A Rough Guide to Rendering.
Direct Volume Rendering w/Shading via Three- Dimensional Textures.
Ray Tracing Primer Ref: SIGGRAPH HyperGraphHyperGraph.
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
Noise Based Texture Noise Based Texture CMPS260 Presentation Guoping Xu Mar. 05, 2003.
CS-557 Gregory Dudek CD Contents. CS-557 Gregory Dudek Course description Lecture schedule by week 1997 Image Gallery Assignments Page Morphing Notes.
Texture Mapping. 2 The Limits of Geometric Modeling Although graphics cards can render over 10 million polygons per second, that number is insufficient.
1 Texture. 2 Overview Introduction Painted textures Bump mapping Environment mapping Three-dimensional textures Functional textures Antialiasing textures.
Procedural terrain on the GPU Chalmers University of Technology Advanced computer graphics – DAT205 David Sundelius Adam Scott.
Procedural Textures.
CSS 522 Topics in Rendering March 01,2011 Scott and Lew.
Computer Graphics Inf4/MSc Computer Graphics Lecture 7 Texture Mapping, Bump-mapping, Transparency.
COMP 261 Lecture 14 3D Graphics 2 of 2. Doing better than 3x3? Translation, scaling, rotation are different. Awkward to combine them. Use homogeneous.
Computer Graphics Panos Trahanias ΗΥ358 Spring 2009.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Noise and Procedural Techniques John Spitzer Simon Green NVIDIA Corporation.
Computer Graphics Raster Devices Transformations Areg Sarkissian.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Texture Mapping.
Shading. What is Shading? Assigning of a color to a pixel in the final image. So, everything in shading is about how to select and combine colors to get.
Computer Graphics. Requirements Prerequisites Prerequisites CS 255 : Data Structures CS 255 : Data Structures Math 253 Math 253 Experience with C Programming.
CSE 681 Review: Transformations. CSE 681 Transformations Modeling transformations build complex models by positioning (transforming) simple components.
Ray Tracing Chapter CAP4730: Computational Structures in Computer Graphics.
June 9, 2008 Dr. Haim Levkowitz IVPR/CS/UML | 1 Texture.
Rendering Overview CSE 3541 Matt Boggus. Rendering Algorithmically generating a 2D image from 3D models Raster graphics.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Business and Computing Deanery 3D Modelling Tools Week 18 More on materials.
Fractals smooth surfaces and regular shapes - Euclidean-geometry methods -object shapes were described with equations natural objects - have irregular.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Vector Graphics Digital Multimedia Chap 이병희
A Few Things about Graphics Jian Huang Computer Science University of Tennessee.
Course Introduction to virtual engineering Óbuda University John von Neumann Faculty of Informatics Institute of Applied Mathematics Lecture and laboratory.
CS380: Computer Graphics Distributed Ray Tracing TA Course URL:
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
CS559: Computer Graphics Final Review Li Zhang Spring 2010.
11/24/ :45 Graphics II Shadow Maps Reflections Session 5.
CDS 301 Fall, 2008 From Graphics to Visualization Chap. 2 Sep. 3, 2009 Jie Zhang Copyright ©
CSE 681 Introduction to Ray Tracing. CSE 681 Ray Tracing Shoot a ray through each pixel; Find first object intersected by ray. Image plane Eye Compute.
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
Computer Graphics Ken-Yi Lee National Taiwan University (the slides are adapted from Bing-Yi Chen and Yung-Yu Chuang)
Digital Media Dr. Jim Rowan ITEC 2110 Vector Graphics II.
CSE 681 Texture Mapping: 2D Texturing. CSE 681 Texture Mapping Visual complexity on demand Vary display properties over object Location on object used.
Part II – Photorealistic Rendering (1) Texture (4) CPSC 591/691.
Volumetric Texture Mapping
3D Graphics Rendering PPT By Ricardo Veguilla.
Texture Mapping COMP575/COMP770.
Volume Rendering (2).
Texture Mapping: Solid Texturing
Texture Mapping 고려대학교 컴퓨터 그래픽스 연구실.
Texture mapping - other methods
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Texture Mapping: Solid Texturing
Introduction to Ray Tracing
Presentation transcript:

CSE 681 Texture Mapping: Solid Texturing

CSE 681 Texture Mapping Visual complexity on demand Vary display properties over object Location on object used to lookup display attributes Or as function parameters to generate attributes Visible pixel maps to location on object

CSE 681 Solid Texture Mapping Use x,y,z location of pixel Use location in simple procedure to generate, e.g. Material color to be used in shading calculation Ambient, diffuse, or specular reflection coefficient Opacity Final color World space coordinates v. object space coordinates? Object is ‘carved’ out of textured volume

CSE 681 Solid Texture Map Coordinates If world space Ok in static scenes Object moves through texture if object animated If object space Texture is ‘fixed’ to object need to inverse transform intersection or need to trace inverse ray in object space

CSE 681 Solid Texture Map Coordinates Object Space World Space texture M M -1

CSE 681 Space Filling Stripes jump(x,y,z) = ((int)(x))%2 if (jump == 0) color = yellow else if (jump == 1) color = red jump(x,y,z) = ((int)(A + x/s.x)%2 if (jump == 0) color = yellow else if (jump == 1) color = red Uses: modulo divisor % 0…….1… s.x...2*s.x..3*s.x

CSE 681 Space Filling 2D Checkerboard jump(x,y,z) = ((int)(A+x/s.x)+(int)(A+y/s.y))%2 if (jump == 0) color = yellow Else if (jump == 1) color = red s.x s.y 2*s.y 2*s.x

CSE 681 Space Filling 3D Checkerboard jump(x,y,z) = ((int)(A+x/s.x)+(int)(A+y/s.y)+(int)(A+z/s.z))%2 if (jump == 0) color = yellow Else if (jump == 1) color = red

CSE 681 Cube of Smoothly Varying Colors Uses fract(x) = x - (floor)(x) Texture(x,y,z) = (1 - |2*fract(x)-1|, 1-|2*fract(y) - 1|, 1-|2*fract(z)-1|) 0….1…..0

CSE 681 Rings rings( r ) = (int ( r )) % 2 r = sqrt(x 2 +y 2 ); rings(x,y,z ) = D + A * rings( r/M ) M - thickness D & A scale and translate into arbitrary values Or, as before, map 0 & 1 into yellow and red

CSE 681 Wood Grain Implement by rotating point by –  around y-axis Add twist to rings: Rotate texture around y-axis by   y x z Similarly, rotate (x,y,z) point around z-axis Use some randomness to break up regularity

CSE 681 Wood Grain Make one color much thinner Make jitter pseudo-random

CSE 681 Noise, Turbulence, Marble Define function of random values which is A function of 3D point continuous repeatable Use 3D point to retrieve random value 3D volume has frequency determined by spacing of random values Scale point first to change frequency of noise function

CSE 681 1D Noise Example Deposit random values at integer locations Interpolate through values to get continuous function Sample function at intersection points of object with ray 9… …

CSE 681 1D Noise Example Sample too frequently - no randomness

CSE 681 1D Noise Example Sample too sparsely - no continuity (Nyquist limit)

CSE 681 Turbulence Add multiple frequencies together Each component similar under scale Fractal e.g. coastline As frequency goes up, amplitude goes down

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 1D Turbulence Example

CSE 681 3D Noise (x,y,z) Visible point from surface of object Texture value from 3D table or procedure Need controlled randomness => varying but continuous function

CSE 681 Integer Lattice Deposit random values at integer grid points Use 256x256x256 volume

CSE 681 Interpolate values within cube d110 d000 d100 d010 d001 d101 d111 d011 fx = FRACT(x) fy = FRACT(y) fz = FRACT(z) d00 = d000+fx(d100-d000) d10 = d010+fx(d110-d010) d01 = d001+fx(d101-d001) d11 = d011+fx(d111-d011) Use tri-linear interpolation (x,y,z) d = d0+fz(d1-d0) d0 = d00+fy(d10-d00) d1 = d01+fy(d11-d01)

CSE 681 Implementation notes NoiseTable[256]: random values [0, 1] Index[256]: random permutation of values 0:255 Float latticeNoise(i,j,k) Return NoiseTable[INDEX(i,j,k)] #define PERM(x) index[x & 255] #define INDEX(ix,iy,iz) PERM( ix + PERM(iy + PREM(iz)))

CSE 681 Turbulence implementation Noise(s,x,y,z) Scale point by s, add 1000 to each coordinate Get integer (ix,iy,iz) and fractional parts (fx,fy,fz) Get cell lattice noise values d000,d001,d010,d011, d100,d101,d110,d111 Do the trilinear interpolation by fx,fy,fz Where n1,n2 control how many, and which, frequencies

CSE 681 Marble Texture Undulate(x) - basic ripple in x Marble(x,y,z) = undulate(sin(2  xyz + A*turb(s,x,y,z,k))) Paramters: amplitude, scale, number of frequencies

CSE 681 Marble Texture See examples