art-based rendering with continuous levels of detail lee markosian, barb meier, michael kowalski,...
TRANSCRIPT
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.
Siggraph 99.
video
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
The local frame
• Base position (e.g. on surface)• y´ (e.g. surface normal) • x´ (e.g. cross product of y´ and view
vector)
y
x
canonical space
y´ x´
local frame
M
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
= 1 = .7 = 1.4
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 1 level 2
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. =
Demo: truffula scene
Demo: night scene
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