Visibility Sorting and Compositing without Splitting for Image Layer Decompositions - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Visibility Sorting and Compositing without Splitting for Image Layer Decompositions

Description:

composite. Occlusion Cycles. When no order exists, can split or group parts. split. group ... uses order from last query, not depth order. culls more ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 43
Provided by: johns70
Category:

less

Transcript and Presenter's Notes

Title: Visibility Sorting and Compositing without Splitting for Image Layer Decompositions


1
Visibility Sorting and Compositing without
Splitting for Image Layer Decompositions
  • John Snyder, Jed Lengyel

2
Layered Decomposition Problem
  • Given set of moving geometric parts,
  • and moving camera,
  • find visibility ordering for every frame.

sort
composite
parts
sorted images
composited result
3
Occlusion Cycles
split
group
When no order exists, can split or group parts.
4
Non-Splitting Layered Decomposition
  • Dont split parts that form occlusion cycles
  • run-time splitting is slow
  • splitting is often unnecessary
  • splitting destroys coherence

Sorting requires no global separating plane.
5
Image-Based Rendering AccelerationLengyel97
sprites
composited image
6
Other Applications
  • fast special effects
  • animation playback with selective display
  • incorporation of external image streams
  • image stream compression
  • fast hidden line rendering
  • z resolution targeting

7
Previous Work
  • invisibility culling Greene93,Zhang97
  • analytic hidden surface removal Mulmuley89
  • global visibility Teller93,Durand97
  • image layer decompositions
         Schumacker69,Newell72,Fuchs80
  • dynamic visibility Torres90,Sudarsky96
  • depth sorting for special effects Max85

8
Occlusion Graphs
  • pairwise occlusion relation A?E B
  • relations on parts forms directed graph
       occlusion graph

A
B
view from E
side view
9
Occlusion Graphs (Ex. 1)
A
B
A
B
C
C
10
Occlusion Graphs (Ex. 2)
A
B
A
B
C
C
11
Occlusion Graphs (Ex. 3)
A
B
C
Forms strongly connected component (SCC).
12
Resolving Non-Binary Cycles
SCCs need not be rendered as an aggregate!
13
Occlusion Testing via Collision
B
A
For convex hulls of objects A and B B?E A ?
ch(A? E) ? B ? ?
14
Occlusion Testing via CollisionOccluding Example
B
ch(A? E) ? B ? ? ? B?E A
15
Occlusion Testing via CollisionNon-Occluding
Example
B
16
Trivial Sorting Algorithm
  • compute occlusion graph
  • detect and topologically sort SCCs
  • at least quadratic in number of parts!

A
C
F
D
17
Improving the Trivial Algorithm
A? B,C,D,F but nothing occludes A. Process A
first.
18
Improving the Trivial Algorithm
A
C
F
D
Sorting Output A
19
Improving the Trivial Algorithm
C
B
F
D
Sorting Output A, B
20
Improving the Trivial Algorithm
C
F
D
Sorting Output A, B, C
21
Improving the Trivial Algorithm
F
D
Sorting Output A, B, C, D, F
22
Incremental Visibility Sort (IVS)
  • similar to Newell, Newell, Sancha algorithm,
    1972
  • sorts parts, not polygons
  • detects SCCs, doesnt split
  • uses order from last query, not depth order
  • culls more efficiently using kd-tree

A
Z
B
Depth order doesnt indicate visibility order.
23
IVS Algorithm
  • While L is nonempty, pop off top element A
  • if A is unmarked
  • if nothing remaining on L occludes A
  • send A to output
  • else
  • mark and reinsert A into L
  • else // A is marked
  • check for occlusion cycle
  • if found, group cycle objects and reinsert
  • else reinsert A into L

24
Occlusion Culling
  • Fundamental IVS query
  • Which parts remaining in L occlude A?
  • use convex hulls around parts
  • bound hulls with spatial and angular extents
  • occlusion cull reduces to 1D interval
    intersection
  • bounded parts organized in dynamic kd-tree

object
kd extent
convex hull
25
Spatial Extents
B ? A
B ? A
/
26
Angular Extents
B ? A
B ? A
/
27
Kd-Tree Occlusion Culling
  • rebalance kd-tree every frame
  • kd-tree supports part deactivation

x1
A
y2
y1
y1
y2
C
A
y
x1
x
28
Exact Occlusion Testing
  • Does B ? A?
  • uses hybrid Chung/Gilbert collision algorithm
  • requires extremal vertex query on A and B
  • no need to create ch(A? E) dynamically
  • exploits coherence in object motion

extremal vertex minimizes Dv on A
D
A
v
29
Results (Video)
30
IVS Complexity
31
Performance with Increasing Objects
32
Future Work
  • animation previewer
  • continuous time queries
  • adaptive splitting, especially for terrain
  • faster, less conservative visibility tests
  • automatic part decomposition
  • visibility sorting with minimal splitting

33
Conclusions
  • non-splitting layered decomposition useful
  • software visibility sorting is practical
  • basic ideas of approach
  • exploit temporal and spatial coherence
  • exploit properties of convex objects
  • exploit incremental collision detection algorithms

34
(No Transcript)
35
Extent Tracking
  • use vertex descent
  • on convex polytope, local minimizer of extent is
    also    global minimizer

v1
D
v0
v0
frame t1
frame t0
36
Results Tumbling Toothpicks
  • eccentric ellipsoids moving in    cubical volume
  • uniform scale (us) add more of same size
  • biases occlusion complexity superlinearly
  • uniform density (ud) add more of scaled size
  • occlusion complexity increases linearly

37
Performance with Increasing Velocity
38
Performance with Increasing ObjectsUniform
Density Uniform Scale
39
Kd-Tree Culling Performance
40
Results Canyon Flyby
  • six aircraft flying through valley
  • investigates rendering acceleration at various
       levels of terrain splitting
  • update rate assumptions
  • aircraft parts 20
  • terrain parts 70
  • sky 40
  • aggregation penalty   render every frame

41
Results Canyon Flyby
  • cpu times are in ms per frame
  • update rate is poly-weighted

42
Newell, Newell, Sancha (1972)
  • traverse depth-sorted list of polygons
  • if next polygon doesnt overlap, send to output
  • otherwise use tests of increasing complexity
  • screen bounding box, vertex/plane, 2d
    intersection
  • if unoccluded, polygon is sent to output
  • if occluded, polygon is marked and reinserted
  • marked polygons are split to remove cycle

H
C
F
A
B
Z
G
Write a Comment
User Comments (0)
About PowerShow.com