Logistics • Paper summaries on Procedural Modeling Procedural Modeling – Any takers? Assignments Assignments • Write-ups for all 3 projects now on Web • Ray Tracing – Round off error • New Due Dates – Ambient or no ambient – Rendering – Feb 4 th – Procedural Shading (Cg) – Feb 11 th – Tone Reproduction – Feb 20 th • Or – Rendering 1 – Feb 11 th – Rendering 2 - -Feb 20 th Announcement Projects • Society of Software Engineers presents • Mid-quarter report due today – An Introduction to C# • Friday, January 31 • Presentations • 1-2 pm – Please send preferences to me • 08-1250 – Last class all booked. – Free pizza, drinks, and door prizes!
Questions? Plan for today • Procedural Modeling Procedural Modeling Computer Graphics as Virtual Photography • Use a function or procedure to define the real camera photo Photographic Photography: scene (captures processing print surface/structure of a 3D object. light) • Examples processing – Hypertexture – Fractals camera Computer 3D synthetic tone – Grammar Based Methods model Graphics: models image reproduction (focuses simulated lighting) Hypertexture Hypertexture • Hypertexture [Perlin89] • Hypertexture – Extension of PSE concepts to 3d models – Object Density function – Combination of surface + texture • D ( x ) for all points x in 3D space • 0 <= D ( x ) <= 1 – Objects modeled as distribution of density • D ( x ) = 0 for all points outside the surface • hard region - objects completely solid • D ( x ) = 1 for hard region of the object • soft region - object shape is maleable using a toolkit • 0 < D ( x ) < 1 for soft region of the object of shaping functions.
Hypertexture Hypertexture • Hypertexture • Hypertexture – Density Modulation Function – Toolbox of base DMFs • f i - Used to control density in soft region • bias • position dependent - f ( x ) • gain • position independent - f (k) • noise • geometry dependent - depend on variables other • turbulence than x but may be derived from x (e.g. density • mathematical functions gradient near x ) Hypertexture Hypertexture • Hypertexture • Hypertexture – bias – gain • push up or pull down object density • Makes object density gradient flatter or steeper ln( b ) bias = t ln( 0 . 5 ) < bias ( 2 t ) / 2 if t 0 . 5 b − = 1 g gain − g bias ( 2 2 t ) / 2 1 − g [Perlin89] Hypertexture Hypertexture • Hypertexture • Hypertexture – noise & turbulence – gain – turbulence - sum of noise at variety of frequencies 1 ∑ = i turbulence ( x ) abs ( noise ( 2 x )) 2 i i [Perlin89]
Hypertexture Hypertexture • Hypertexture - example (noise) • Hypertexture example (noise) – f = frequency – a = amplitude 1 = + D ( x , f , a ) ax ( 1 noise ( fx )) [Perlin89] f Twice the frequency half the amplitude Hypertexture Hypertexture • Hypertexture - examples (fur) • Hypertexture - example (fire) – Start with a soft object defined by D(x) – Hair defined within soft region – project - projects x onto hard region – Controlled using gain and bias • Low bias == more space than hair • High gain = hard boundary [Perlin89] = + D ( x ) x ( 1 turbulence ( x )) Hypertexture Some animated hypertextures • Hypertexture - example fur [Perlin89]
Some animated hypertextures Some animated hypertextures Hypertexture Hypertexture • Rendering Hypertexture • Raymarching algorithm – Density functions actually define opacity through a 3D space Calculate point along ray While (current point is in front of shade point) – Raymarching Algorithm call density function • Collect opacity along a ray going through a density calculate light hitting point function update collected opacity / color • Modify the color/opacity of actual shading point calculate next point along ray based on opacity collected End Modify opacity / color of shading point Hypertexture Fractals • Hypertexture - Further Reading • Fractals – [Perlin89] – A language of form for shaped and phenomena common in Nature – Ebert, et. al, Texturing & Modeling: A Procedural Approach. – “Geometrical complex object, the complexity of which arises through the repetition of form over some range of scale”. – Questions?
Fractals Fractals • Fractals • Fractals – Statistical self-similarity at all scales. – repetition of some underlying shape (basis function) at different scales Foley/VanDam/Feiner/Hughes Fractals Fractals • Koch curve • Fractals - Mandelbrot Set – applet Foley/VanDam/Feiner/Hughes Fractals Fractals • Fractals - Mandelbrot Set • Fractals - Mandelbrot Set – Plot of a recursive Mathematical function in the – Create image by coloring based on how many complex plane iterations it takes to indicate divergence 2 + C towards infinity. • Z n = Z n-1 – For each complex number C, the function will: – Function is self-similar as we zoom into different areas of the plot on the complex plane. • Move quickly to infinity (outside of the set) • Move slowly to infinity (on the border of the set) • Remain near the origin (inside the set)
Fractals Fractals • Fractals - Mandelbrot Set • Fractals -- a simple example – Fractint Foley/VanDam/Feiner/Hughes Fractals Fractals • Fractals - a simple example • Fractals - extend to 2d [Fournier82] Foley/VanDam/Feiner/Hughes Fractal Terrain Fractal Terrain • Fractal Terrain (Paul Bourke)
Fractal Terrain Fractal Terrain • Fractals – Terrain Modeling Foley/VanDam/Feiner/Hughes Fractal Terrain Fractals • My favorite fractal landscape • Fractal - fractal dimension – by F. Kenton Musgrave a.b a = Euclidean dimension b = fraction of filling up next dimension Fractals Fractals • Fractals -- why fractals? • Fractals - What they are good for – Procedural way to add complexity to a scene – Modeling nature – Elements of nature posses fractal properties. • Terrain • Clouds • Coastlines • Trees / Landscaping
Fractals Fractal Modeling “If one assumes that a certain error (e.g., • Fractal modeling pixel-sized) in the ray-surface intersection is – Like Mandelbrot set, Infinitely zoomable acceptable, one can directly ray-trace a – Render at resolution that is most appropriate procedurally-defined height field with – Instant anti-aliasing. essentially perfect level of detail.” -- Ken Musgrave – Can model a whole planet procedurally Fractal Modeling Gaea Zoom Fractal Modeling Fractal Modeling • Videos • http://www.pandromeda.com – Maiden Voyage – Explore fractal worlds on-line – Panoramas – MojoWorld demo F.K. Musgrave
Fractals Grammar Based Systems • Fractals - just the tip of the iceberg • Grammar Based Systems • For more info: – Building of models based on formal language – [Fournier82] grammars – Pietgen, The Science of Fractal Images – Grammar consists of: – Pietgen, The Beauty of Fractals • Set of characters – Ebert, et al, Modeling & Texturing... • Productions Rules • Start word – Questions? Grammar Based Systems Grammar Based Systems • Grammar Based Systems - Example • Grammar Based Systems – But how does this help us create models? � Characters: {A, B,[, ]} Iteration: – Assign a drawing action to each character: � Rules: A -> AA 0: B – L-System (Lindenmeyer) used to create tree-like B->A[B]AA[B] structures: � 1: A[B]AA[B] • F move forward and draw � Start word B • f move forward and do not draw 2: AA[A[B]AA[B]]AAAA[A[B]AA[B]] • + increase angle with angle increment • - decrease angle by angle increment • [ push state (I.e. branch) • ] pop state (I.e finish branch) Grammar Based Systems Grammar Based Systems • L-Systems L – Systems – F=F[+F]F[-F]F Go to applet
Grammar Based Systems Grammar Based Systems • L-Systems • Koch curve as an L-system – Note that structures created using L-Systems – F=F+F- -F+F are fractal like in the sense that they are sel- similar at different levels – Self-similarity achieved by repeatedly applying production rules Foley/VanDam/Feiner/Hughes Grammar Based Systems Procedural Models • Summary • Koch curve as an L-system – Use of a function to define objects – Go to applet – Types • Hypertexture • Fractals • L-Systems – Good for • Landscapes • Non-solid type objects Remember • Class Web Site: – http://www.cs.rit.edu/~jmg/cgII • Any questions?
Recommend
More recommend