DOC PREVIEW
DREXEL CS 431 - Advanced Rendering Techniques

This preview shows page 1-2-3-4-5-6-45-46-47-48-49-50-51-91-92-93-94-95-96 out of 96 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 96 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 431/636 !Advanced Rendering Techniques"Dr. David Breen"University Crossings 149"Thursday 6PM → 8:50PM"Presentation 8"5/27/08"Questions from Last Time?"2D texture maps" Image maps" Two-step mapping" Texture anti-aliasing" Environment/reflection maps" Bump maps" Displacement maps"Slide Credits" Jonathan Cohen - Johns Hopkins University" John Hart - University of Illinois" Leonard McMillan - UNC, Chapel Hill" Dani Lischinski - Hebrew University" Craig Schroeder - Drexel University"More 2D Texture MappingTexture Synthesis"“Texture Synthesis on Surfaces”, Greg Turk, Proc. SIGGRAPH 2001, pp. 347-354" Spread small texture patch over an arbitrary multiresolution mesh" Color vertices from coarse to fine, while following a user-defined vector field" Determine color by examining the color of neighboring points and finding best match to a similar pixel neighborhood in texture sample"Texture Synthesis"Procedural Textures !and Shading"Procedural Texture/Shading" Define texture color/value with a procedure" Allows for a wide variety of (programmable) surface materials and embellishments" Many independent variables" Position, normal, curvature, geodesic distance, time"Sin() or piece-wise quadratics work well"Brick texture code"uniform vec3 BrickColor, MortarColor; "uniform vec2 BrickSize, BrickPct;"varying vec2 MCposition; "void main(void) { " vec3 color; vec2 position, useBrick; " position = MCposition / BrickSize; " if (fract(position.y * 0.5) > 0.5) position.x += 0.5; " position = fract(position); " useBrick = step(position, BrickPct); " color = mix(MortarColor, BrickColor, useBrick.x * useBrick.y);"} "Star texture code" vec3 p0, p1, d0, d1;" starangle = 2*PI/npoints;" p0 = (rmax, 0, 0);" p1 = rmin * (cos(starangle/2), sin(starangle/2), 0); " d0 = p1 - p0;" ss = s - sctr; tt = t - tctr;" angle = atan(ss, tt) + PI;" r = sqrt(ss*ss + tt*tt);" a = mod(angle, starangle)/starangle;" if (a >= 0.5) a = 1 - a;" d1 = r*(cos(a), sin(a), 0) - p0; " in_out = step(0, zcomp(d0 X d1));" color = mix(BackColor, StarColor, in_out);"U + 2V  3V!V  P!Procedural Noise"Noise Functions" Break up regularity" Add realism" Enable modeling of irregular phenomena and structures"Making Noise" Good:" Create 3-D array of random values" Trilinearly interpolate " Better" Create 3-D array of random 3-vectors" Hermite interpolate" Some cubic h(t) = at3 + bt2 + ct + d s.t." h(0) = 0 "(d = 0)" h(1) = 0 "(a + b + c = 0)" hʼ(0) = r0"(c = r0)" hʼ(1) = r1"(3a + 2b + r0 = r1)" Answer:" h(t) = (r0 + r1) t3 - (2r0 + r1) t2 + r0t"Hermite!Interpolation"Noise Functions" Add “noise” to make textures interesting" Perlin noise function N(x,y,z)" Smooth" Correlated" Bandlimited" N(x,y,z) returns a single random number in [-1,1]" Gradient noise (like a random sine wave)" N(x,y,z)=0 for int x,y,z" Values not at lattice points are interpolated, using gradients as spline coefficients" Value noise (another random sine wave)" N(x,y,z)=random for int x,y,z"3D Procedural Texture Maps"Texture Mapping" Maps image onto surface" Depends on a surface parameterization (s,t)" Difficult for surfaces with many features" May include distortion" Not necessarily 1:1"Kettle, by Mike MillerSolid Texturing" Uses 3-D texture coordinates (s,t,r)" Can let s = x, t = y and r = z" No need to parameterize surface" No worries about distortion" Objects appear sculpted out of solid substance"Darwyn Peachey, 1985 Surface Texture features don’t line up Solid Texture features do line upSolid Texture Problems" How can we deform an object without making it swim through texture?" How can we efficiently store a procedural texture?"Procedural Texturing" Texture map is a function" Write a procedure to perform the function" input: texture coordinates - s,t,r " output: color, opacity, shading" Example: Wood" Classification of texture space into cylindrical shells"f(s,t,r) = s2 + t2" Outer rings closer together, which simulates the growth rate of real trees" Wood colored color table"• Woodmap(0) = brown “earlywood” "• Woodmap(1) = tan “latewood”"Wood(s,t,r) = Woodmap(f(s,t,r) mod 1)"f(s,t,r) = s2 + t2 Wood(s,t,r) Woodmap(f) 0 1Using Noise" Add noise to cylinders to warp wood" Wood(s2 + t2 + N(s,t,r))" Controls" Amplitude: power of noise effect"a N(s, t, r)" Frequency: coarse vs. fine detail"N(fs s, ft t, fr r)" Phase: location of noise peaks"N(s + φs, t + φt, r + φr)"An Image Synthesizer"K. Perlin, Proc. SIGGRAPH '85, July 1985, p. 287" Created an interpreted, high level language for describing 2D/3D textures" Easy to program" No compilation necessary" Define a set of intrinsic procedural primitives"• More efficient, reusable, flexible, rich set of texturing tools" High level operations (arithmetic, comparisons)" Include looping and branching" High level, intrinsic types like vectors" New primitives" Noise, Dnoise, Turbulence, Composition"Colormap Donuts" Spotted donut" Gray(N(40*x,40*y,40*z))" Gray() - ramp colormap" Single 40Hz frequency" Bozo donut" Bozo(N(4*x,4*y,4*z))" Bozo() - banded colormap" Cubic interpolation means contours are smooth"Bump Mapped!Donuts" DNoise(s,t,r) = ∇Noise(s,t,r)" Bumpy donut" Same procedural texture as spotted donut" Noise replaced with Dnoise and bump mapped"x n DN n += DNoise(x,y,z); normalize(n);Composite Donuts" Stucco donut" Noise(x,y,z)*DNoise(x,y,z)" Noisy direction" noisy amplitude" Fleshy donut" Same texture" Different colormap"Fractional Brownian Textures" 1/f β distribution" Roughness parameter β" Ranges from 1 to 3" β = 3 - smooth, not flat, still random" β = 1 - rough, not space filling, but thick" Construct using spectral synthesis" Add several octaves of noise function" Scale amplitude appropriately"+ = € f (s) = 2−iβi=14∑n(2is)Fractal Bump-Mapped Donut"fbm(beta) { val


View Full Document

DREXEL CS 431 - Advanced Rendering Techniques

Documents in this Course
Load more
Download Advanced Rendering Techniques
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Advanced Rendering Techniques and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Advanced Rendering Techniques 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?