visual appearance (shading & texture mapping) course note credit: some of slides are extracted...

Post on 20-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visual AppearanceVisual Appearance(Shading & Texture mapping)(Shading & Texture mapping)

Course Note Credit: Some of slides are extracted from the course notes of prof. J. Lee (SNU), prof. M. Desbrun (USC) and prof. H.-W. Shen (OSU) and others.

ShadingShading(Local illumination)(Local illumination)

Photorealism in Computer GraphicsPhotorealism in Computer Graphics

Photorealism in computer graphics involves Accurate representations of surface properties, and Good physical descriptions of the lighting effects

Modeling the lighting effects that we see on an object is a complex process, involving principles of both physics and psychology

Physical illumination models involve Material properties, object position relative to light sources and

other objects, the features of the light sources, and so on

Illumination and RenderingIllumination and Rendering

An illumination model in computer graphics also called a lighting model or a shading model used to calculate the color of an illuminated position

on the surface of an object Approximations of the physical laws

A surface-rendering method determine the pixel colors for all projected positions in a scene

Light SourcesLight Sources

Point light sources Emitting radiant energy at a single point Specified with its position and the color of the emitted light

Infinitely distant light sources A large light source, such as sun, that is very far from a scene Little variation in its directional effects Specified with its color value and a fixed direction for the light

rays

Light SourcesLight Sources

Directional light sources Produces a directional beam of light Spotlight effects

Area light sources

Light SourcesLight Sources Radial intensity attenuation

As radiant energy travels, its amplitude is attenuated by the factor

Sometimes, more realistic attenuation effects can be obtained with an inverse quadratic function of distance

The intensity attenuation is not applied to light sources at infinity because all points in the scene are at a nearly equal distance from a far-off source

2/1 d

local is source if

1infinityat is source if0.1

2210 dadaa

f

Light SourcesLight Sources

Angular intensity attenuation For a directional light, we can attenuate the light

intensity angularly as well as radially

nf cos)(

Surface Lighting EffectsSurface Lighting Effects

An illumination model computes the lighting effects for a surface using the various optical properties Degree of transparency, color reflectance, surface texture

The reflection (phong illumination) model describes the way incident light reflects from an opaque surface Diffuse, ambient, specular reflections Simple approximation of actual physical models

Diffuse ReflectionDiffuse Reflection

Incident light is scattered with equal intensity in all directions

Such surfaces are called ideal diffuse reflectors (also referred to as Lambertian reflectors)

Lambert’s Cosine LawLambert’s Cosine Law

The reflected luminous intensity in any direction from a perfectly diffusing surface varies as the cosine of the angle between the direction of incident light and the normal vector of the surface.

Intuitively: cross-sectional area of the “beam” intersecting an elementof surface area is smaller for greater angles with the normal.

Diffuse ReflectionDiffuse Reflection

: the intensity of the light source

: diffuse reflection coefficient,

: the surface normal (unit vector)

: the direction of light source,(unit vector)

)(cos LNIkIkI ldld

lI

dk

N

L

Ideally diffuse surfaces obey cosine law.

Often called Lambertian surfaces.

Ambient LightAmbient Light Multiple reflection of nearby (light-reflecting)

objects yields a uniform illumination

A form of diffuse reflection independent of the viewing direction and the spatial orientation of a surface

Ambient illumination is constant for an object

: the incident ambient intensity: ambient reflection coefficient, the proportion reflected away

from the surface

aIak

aaIkI

Ambient + DiffuseAmbient + Diffuse

0 if

0 if)(

LNIk

LNLNIkIkI

aa

ldaa

Specular ReflectionSpecular Reflection

Perfect reflector (mirror) reflects all lights to the direction where angle of reflection is identical to the angle of incidence

It accounts for the highlight

Specular ReflectionSpecular Reflection

Phong specular-reflection model Note that N, L, and R are coplanar, but V may not be

coplanar to the others

nls

nls VRIkIkI )(cos

: intensity of the incident light

: color-independent specular coefficient

: the gloss of the surface

lI

sk

n

Specular ReflectionSpecular Reflection Glossiness of surfaces

Specular ReflectionSpecular Reflection

Specular-reflection coefficient ks is a material property For some material, ks varies depending on ks =1 if =90°

Calcularing the reflection vector R

NNLLR )2(

LNNLR )2(

Specular ReflectionSpecular Reflection

Simplified Phong model using halfway vector H is constant if both viewer and the light source are

sufficiently far from the surface

|| LV

LVH

nsp

nsp

nsp

nsp

HNkIkI

VRkIkII

)(cos

)(cos

Ambient+Diffuse+Specular ReflectionsAmbient+Diffuse+Specular Reflections

Single light source

Multiple light source

nlsldaa VRIkLNIkIkI )()(

l

nlsldaa VRIkLNIkIkI )()(

Parameter Choosing TipsParameter Choosing Tips For a RGB color description, each intensity and

reflectance specification is a three-element vector

The sum of reflectance coefficients is usually smaller than one

Try n in the range [0, 100]

Use a small ka (~0.1)

Example Metal: n=90, ka=0.1, kd=0.2, ks=0.5

1 sda kkk

Atmospheric EffectsAtmospheric Effects A hazy atmosphere makes colors fade and

objects appear dimmer

Hazy-atmosphere effect is often simulated with an exponential attenuation function such as

Higher values for produce a denser atmosphere

2)()(

)(d

hazy

dhazy

edf

edf

hazehazyobjhazy IdfIdfI )](1[)(

Polygon Rendering MethodsPolygon Rendering Methods We could use an illumination model to determine the surface

intensity at every projected pixel position

Or, we could apply the illumination model to a few selected points and approximate the intensity at the other surface positions

Curved surfaces are often approximated by polygonal surfaces

So, polygonal (piecewise planar) surfaces often need to be rendered as if they are smooth

Constant-Intensity Surface RenderingConstant-Intensity Surface Rendering

Constant (flat) shading Each polygon is one face of a polyhedron and is not a

section of a curved-surface approximation mesh

Intensity-Interpolation Surface RenderingIntensity-Interpolation Surface Rendering

Gouraud shading Rendering a curved surface that is approximated

with a polygon mesh Interpolate intensities at polygon vertices

Procedure

1. Determine the average unit normal vector at each vertex

2. Apply an illumination model at each polygon vertex to obtain the light intensity at that position

3. Linearly interpolate the vertex intensities over the projected area of the polygon

Intensity-Interpolation Surface RenderingIntensity-Interpolation Surface Rendering

Normal vectors at vertices Averaging the normal vectors for each polygon

sharing that vertex

1N

2N

3N

4N

vN

4321

4321 )(

NNNN

NNNNNv

Intensity-Interpolation Surface RenderingIntensity-Interpolation Surface Rendering

Intensity interpolation along scan lines I4 and I5 are interpolated along y-axis, and then Ip is interpolated along x-axis

Incremental calculation is also possibley

x

1

2

3

4 5

p scan line

545

44

45

25

323

252

23

535

221

411

21

244

Ixx

xxI

xx

xxI

Iyy

yyI

yy

yyI

Iyy

yyI

yy

yyI

pp

Intensity-Interpolation Surface RenderingIntensity-Interpolation Surface Rendering

Gouraud Shading ProblemsGouraud Shading Problems

Lighting in the polygon interior is inaccurate

Mach band effect Optical illusion

Mach Band EffectMach Band Effect

These “Mach Bands” are not physically there. Instead, they are illusions due to excitation and inhibition in our neural processing

The bright bands at 45

degrees (and 135 degrees) are illusory.

The intensity of each square

is the same.

Mach Band artifact Mach Band artifact (Gouraud Shading)(Gouraud Shading)

Mach bands: Caused by interaction of

neighboring retinal neurons. Acts as a sort of high-pass

filter, accentuating discontinuities in first derivative.

Linear interpolation causes first deriv. Discontinuities at polygon edges.

Normal-Vector Interpolation for Surface RenderingNormal-Vector Interpolation for Surface Rendering

Phong shading Interpolate normal vectors at polygon vertices

Procedure

1. Determine the average unit normal vector at each vertex

2. Linearly interpolate the vertex normals over the projected area of the polygon

3. Apply an illumination model at positions along scan lines to calculate pixel intensities n1

n2n3

Gouraud versus Phong ShadingGouraud versus Phong Shading

Gouraud shading is faster than Phong shading OpenGL supports Gouraud shading

Phong shading is more accurate

Texture MappingTexture Mapping

Can you do this …Can you do this …

Visual RealismVisual Realism

Texture MappingTexture Mapping

Surfaces in real world are very complex

Objects have properties that vary across surface

Cannot model all the fine variations

We need to find ways to add surface detail

How?

Texture MappingTexture Mapping

Of course, one can model the exact micro-geometry + material property to control the look and feel of a surface

But, it may get extremely costly

So, graphics use a more practical approach – texture mapping

Texture MappingTexture Mapping

Texture Mapping

Want a function that assigns a color to each point The the surface is a 2D domain, so that is essentially an

image can represent using any image representation raster texture images are very popular

Photo-texturesPhoto-textures

OpenGL functions - demoOpenGL functions - demo

Usually texture is a (2D/3D) image.

During initialization read in or create the texture image and place it into the OpenGL state.

glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, imageWidth, imageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData);

Before rendering your textured object, enable texture mapping and tell the system to use this particular texture.

glBindTexture (GL_TEXTURE_2D, 13);

OpenGL functionsOpenGL functions

During rendering, give the cartesian coordinates and the texture coordinates for each vertex.

glBegin (GL_QUADS);glTexCoord2f (0.0, 0.0);glVertex3f (0.0, 0.0, 0.0);glTexCoord2f (1.0, 0.0);glVertex3f (10.0, 0.0, 0.0);glTexCoord2f (1.0, 1.0);glVertex3f (10.0, 10.0, 0.0);glTexCoord2f (0.0, 1.0);glVertex3f (0.0, 10.0, 0.0);

glEnd ();

Texture and TexelTexture and Texel

Each pixel in a texture map is called a Texel

Each Texel is associated with a (u,v) 2D texture coordinate

The range of u, v is [0.0,1.0] due to normalization

(u,v) tuple(u,v) tuple

For any (u,v) in the range of (0-1, 0-1) multiplied by texture image width and height, we can find the corresponding value in the texture map

How do we get F(u,v)?How do we get F(u,v)?

We are given a discrete set of values: F[i,j] for i=0,…,N, j=0,…,M

Nearest neighbor: FF(u,v) = F[ round(N*u), round(M*v) ]

Linear Interpolation: i = floor(N*u), j = floor(M*v) interpolate from F[i,j], F[i+1,j], F[i,j+1], F[i+1,j]

Filtering in general !

InterpolationInterpolation

Nearest neighbor Linear Interpolation

Specifying texture coordinatesSpecifying texture coordinates

Texture coordinates needed at every vertex

Hard to specify by hand

Difficult to wrap a 2D texture around a 3D object

Texture FilteringTexture Filtering

Resampling using mip mapping Magnification: Interpolation Minification: Averaging

Texture Image

Texture => Image

We would like a constant cost per pixel

Mip MappingMip Mapping

MIP = Multim In Parvo = Many things in a small place

Constructs an image pyramid. Each level is a prefilteredversion of the level below resampled at half the frequency.

Whilerasterizing use the level with the sampling rate closest to the desired sampling rate.

Mip MappingMip Mapping

• Used with bilinear/trilinear interpolation

G

R

B

R

G B

Trilinear interpolation

Mip Mapping - ExampleMip Mapping - Example

Courtesy of John hart

• used to save some of the filtering work needed during texture minification

Texture Filtering MethodsTexture Filtering Methods

Nearest Neighbor interpolation

Bilinear Interpolation

Trilinear Interpolation

Anisotropic filtering Precomputed rectangular(trapezoidal) maps

<anisotropic filtering)

exampleexample

No mip mapping vs with mip mapping

exampleexample

Bilinear mip mapping vs trilinear mip mapping

Specifying texture coordinatesSpecifying texture coordinates

Texture coordinates needed at every vertex

Hard to specify by hand

Difficult to wrap a 2D texture around a 3D object

Planar mappingPlanar mapping

Compute texture coordinates at each vertex by projecting the map coordinates onto the model

Cylindrical MappingCylindrical Mapping

Spherical MappingSpherical Mapping

Cube MappingCube Mapping

Modelling Surface PropertiesModelling Surface Properties

Can use a texture to supply any parameter of the illumination model ambient, diffuse, and specularcolor Specular exponent roughness

Environment MapsEnvironment Maps

Use texture to represent reflected color

Texture indexed by reflection vector

Approximation works when objects are far away from the reflective object

Environment MapsEnvironment Maps

Using a spherical environment map

Spatially variant resolution

Environment MapsEnvironment Maps

Using a cubical environment map

Environment MappingEnvironment Mapping

Environment mapping produces reflections on shiny objects

Texture is transferred in the direction of the reflected ray from the environment map onto the object

Reflected ray: R=2(N·V)N-V

Object

ViewerReflected ray

Environment Map

Approximations MadeApproximations Made The map should contain a view of the world

with the point of interest on the object as the eye We can’t store a separate map for each point, so

one map is used with the eye at the center of the object

Introduces distortions in the reflection, but the eye doesn’t notice

Distortions are minimized for a small object in a large room

The mapping can be computed at each pixel, or only at the vertices

ExampleExample

Refraction MapsRefraction Maps

Use texture to represent refraction

Opacity MapsOpacity Maps

Use texture to represent opacity

RGB channels

alpha channels

Use the alpha channel to make portions of the texture transparent. Cheaper than explicit modelling

Illumination MapsIllumination Maps

Use texture to represent illumination footprint

Illumination MapsIllumination Maps

Quake light maps

Bump MappingBump Mapping

Use texture to perturb normals

Textures are treated as height field

creates a bump-like effect

+ =

original surface bump map modified surface

),( vuO ),( vuB ),(' vuO

Does not change silhouette edges

Bump mappingBump mapping

Normal Mapping (bump mapping)Normal Mapping (bump mapping)

Replace normals

Bump MappingBump Mapping

Many textures are the result of small perturbations in the surface geometry

Modeling these changes would result in an explosion in the number of geometric primitives.

Bump mapping attempts to alter the lighting across a polygon to provide the illusion of texture.

Displacement MappingDisplacement Mapping

Use texture to displace the surface geometry

+ =

Bump mapping only affects the normals,

Displacement mapping changes the entire surface (including the silhouette)

Displacement MappingDisplacement Mapping

3D Textures3D Textures

Use a 3D mapping

tsrzyx ooo ,,,,

Can simulate an object carved from a material

• Marble or wood•The object is “carved”out of the solid texture

Texture SynthesisTexture Synthesis

Texture Synthesis

TransparencyTransparency

Alpha Blending a: foreground object , b: background object, o: output Alpha : opacity , C : color

top related