art-based rendering with continuous levels of detail lee markosian, barb meier, michael kowalski,...

Post on 13-Dec-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related