270 likes | 383 Views
Modeling and Rendering of Metallic Patinas. Julie Dorsey – MIT Pat Hanrahan – Stanford University. Presentation By: Brad Jones. Definition. Patina ( pat’ ə-nə ) n . a film that forms on a surface, esp. bronze; a mellowing due to age. ( Webster College Dictionary ). Introduction.
E N D
Modeling and Rendering of Metallic Patinas Julie Dorsey – MIT Pat Hanrahan – Stanford University Presentation By: Brad Jones
Definition • Patina (pat’ ə-nə) n. a film that forms on a surface, esp. bronze; a mellowing due to age. (Webster College Dictionary)
Introduction • All materials appearance’s change over time
Introduction • For realistic scenes, we must take this into account • Using texture maps is ad-hoc and labor intensive • This paper proposes to model the appearance through a (phenomenological) simulation of a metallic (copper) patina
Copper Patina’s Physical Basis • Natural Patina’s develop primarily from atmospheric corrosion. • This corrosion affects the chemical composition of the surface • Products of the initial reaction, react further to form layers • This is a complex process that is hard to simulate
Composition and Formation • Layers are clearly visible • We know which each layer is made out of • Copper • Copper Oxides • Copper Sulfides and various other Copper Salts
Physical Environment • Different layers form based on atmospheric environment and length of exposure • Water collection significantly alters look of patina (most take into account geometry) • There are other factors like temperature, abrasions, polishing – ignore these
Modeling • Write a script in terms of operators that manipulate a layered material • Coat • Erode • Fill • Polish • Offset
Thickness Maps • Operators need variation • Variation is based on Textures • Rectangular Texture Maps • Vertex augmentations on the mesh • These textures are 2-D grayscale images
Generating Thickness Maps • They implemented fractal surface growth models from Fractal Concepts in Surface Growth by Barabási and Stanley • Steady Thickening • Random Deposition • Ballistic Deposition • Directed Percolation Depinning
Steady Thickening • Creates a simple, uniform pattern that increases thickness over time • Sample the surface evenly • Assign an initial thickness to each sample point • Interpolate thickness to each point in-between • Over time, increase height of each sample point according to some growth rate and in some small random factor to keep pattern varied
Random Deposition • Pick a random point, add some height • Simulates dropping a particle • This might create a pattern that is too rough • Relaxation • Simulate jittering the surface to see if the particle falls to one of its neighbors • Smoothes the appearance
Ballistic Distribution • Pick a random point and drop a particle • Resulting height of the point is the maximum of the height of the neighboring points or the height increased by the particle’s thickness • Simulates a particle that sticks to the side of one of its neighbors • This causes lateral surface growth
Directed Percolation Depinning • Start with a mask for blocked and unblocked cells along with initial thickness map • The thickness map is more likely to grow into unblocked cells (lateral growth) • Introduce seeds into unoccupied regions • Vertical growth happens a location based on height of neighbors
Coat • coat materialthicknessthickness-map • Adds a new layer of the given material • With maximum thickness • Its distribution is controlled by the thickness map
Erode • erode thicknessthickness-map • Erode removes material away from a surface according to some thickness map • Theoretically each layer should erode according to some property of the material i.e. rust is removed more easily than iron (they do not currently take this into account)
Fill • fill materialheightheight-map • Deposits a material up to some height • It is like filling in cracks
Polish • polish height height-map • Keeps removing material until some absolute height is reached
Offset • offset radius • Applies a thick coat to the surface • Then removes the part that intersects with a sphere of a given radius
Rendering • Rendering a single layer they use the Kubelka-Monk model (KM Model) • The KM model corresponds roughly to 1-D radiosity
Rendering One Layer • Equation is change in Flux/area is equal to – (absorption + backscattering) + backscattering from the opposite direction • This has an analytical solution
Rendering One Layer Cont. • Reflectance and Transmittance are given by looking at ratios an the interfaces of the layer • We still need to determine K and S • Measure reflectance of a thick surface; assume S • a = (S+K)/S, b=sqrt(a^2-1)
Multiple Layers • Layers can be combined to give an overall reflectance and transmittance
Specular Reflection (BRDF) • The KM model handles diffuse reflection but not specular • They use Cs(N H)^(1/r) to model specular reflection • They calculate a surface roughness • Upper layers inherit properties below • Attenuate specular terms by 2 times the diffuse transmittance for each layer on top (it has to pass through the layer twice) • Have the renderer sum the terms • This is an approximation
Sample Script new copper; coat tarnish_1 0.35 texture(BD_linear_1_20); coat cuprite_2 1.2 texture(DPD_linear_5_40); coat marine_patina_3 3.0 texture(BD_linear_10_20); coat marine_patina_4 1.8 texture(DPD_linear_20_40); erode 0.5 texture(BD_linear_5_20); render maps;
Conclusions • Results are convincing • Short-comings • How to pick the right textures? • Better Erosion Model • Better Water Collection Model • Better Glossy Reflection model (important?) • Still involves lots of parameter tweaking