240 likes | 413 Views
Art-based Rendering with Continuous Levels of Detail Lee Markosian, Barb Meier, Michael Kowalski, Loring Holden, J. D. Northrup, and John Hughes. Graftal textures. “Art-based Rendering of Fur, Grass and Trees,”. by Kowalski, Markosian, Northrup, Bourdev, Barzel, Holden, and Hughes.
E N D
Art-based Rendering with Continuous Levels of DetailLee Markosian, Barb Meier, Michael Kowalski, Loring Holden, J. D. Northrup, and John Hughes.
Graftal textures “Art-based Rendering of Fur, Grass and Trees,” by Kowalski, Markosian, Northrup, Bourdev, Barzel, Holden, and Hughes. Siggraph 99.
Problems • Coherence • excessive introduction/elimination of graftals • popping • Graftal textures defined in code • hard to edit • how to extend with UI?
A new framework • Drawing primitives • triangle strips (or fans) • Strokes • Graftals
Tufts A tuft is a hierarchical collection of graftals
Basic graftals • Collection of drawing primitives • Canonical vertices • Local coordinate frame • Affine map transforms canonical vertices to the local frame
y´ x´ local frame x canonical space The local frame • Base position (e.g. on surface) • y´(e.g. surface normal) • x´(e.g. cross product of y´ and view vector) M y
Placement and duplication • Designer creates a few “example graftals” • Duplicates of these are distributed over surfaces (“static” placement) • explicit distribution • procedural distribution • In duplication, graftal parameters can be varied randomly within specified range of values
Level of detail (LOD) • Each graftal computes a desired LOD • Then draws its primitives accordingly • each primitive has an associated threshold value • it’s drawn if the computed LOD exceeds the threshold
Computing LOD • Desired LOD is quantified by value 0 • computed from 3 values: • (depends on apparent size) • (depends on orientation) • (depends on elapsed time since graftal’s introduction)
is the ratio of the graftal’s current screen size to its “expected” screen size = .7 = 1.4 = 1
Computing • lies in the range [0, 1] • We use to suppress the final LOD value in some regions • E.g., = 1 - |v · n|
Tufts Graftals in a tuft are grouped into levels level 2 level 1
Tufts, cont’d • Each level i has an associated value i • Graftals at level i are drawn if i • Actually, we use hysterisis to choose the current active level • discourages level transitions
Computing • is used to smoothly introduce graftals when a given level becomes active • Each level has an associated “transition time,” e.g. 0.8 seconds • Say the level became active 0.6 seconds ago • Then = 0.6 / 0.8 = 0.75
Using • can be used to animate or morph a graftal’s shape • we’ve done this by scaling and rotating graftals • It can also affect the computed LOD • e.g. =
Conclusions • New framework provides more flexibility • range of graftal looks / behaviors • editing text files easier than writing code • Much better temporal coherence
Conclusions, cont’d • New approach is slower for complex scenes • night scene takes about 1 fps • work is expended on off-screen graftals • should use culling • Handling of LOD is too inflexible • levels have pre-assigned order
Future work • Generalize handling of LOD • UI for directly sketching graftals • UI for sketching other stroke-based textures by example • UI for sketching free-form shapes • continuing work on “skin” (Siggraph 99) • Integrating these into a single system