1
play

1 Usages for From-Region visibility Conservative Visibility Sets - PDF document

From-Region Visibility and Overview Ray Space Factorization Short introduction to the problem Daniel Cohen-Or Dual Space & Parameter/Ray Space Tel-Aviv University Ray space factorization (SIGGRAPH03) From Point Visibility


  1. From-Region Visibility and Overview Ray Space Factorization � Short introduction to the problem Daniel Cohen-Or � Dual Space & Parameter/Ray Space Tel-Aviv University � Ray space factorization (SIGGRAPH’03) From Point Visibility From Point Visibility � Input: – Large scene – Viewpoint � Output: – Set of visible objects from the viewpoint � From the blue point only the blue objects are visible From-region Visibility From Region Visibility Compute the set of objects which partially visible from anywhere in the viewcell A much harder problem: The red objects are now visible by the blue rays 4D problem for 3D scenes 1

  2. Usages for From-Region visibility Conservative Visibility Sets � Amortization: � Exact Visibility Set (VS): – Hard to compute – Visibility data valid for – Superset for each individual viewpoint in the cell many frames � PVS (Potentially Visible Set): Conservative – Utilizes coherency – Contains all the visible objects and maybe some occluded between frames objects � Web Systems: – Easier to compute – Stream only the visible parts of the model – Overcomes latency ฀iew฀c Conservative Visibility Sets Conservative Visibility Sets (Cont.) Computing a conservative PVS is the key point in designing an efficient visibility algorithm. Tight PVS Fast computation PVS ฀iew฀cell Image-space Hierarchical Image-space Hierarchical Computation (Cont.) Computation (Cont.) � A top-down front-to-back traversal. � Visibility test of cells is applied in every frame. � Allows culling large parts � Imposes overhead on rendering of the scene � Using the same framework for from-region � Simple projection and visibility will amortize the cost over many simple image-space visibility test frames! � Conservative � But: we don ’ t have a “ center of projection ” anymore – testing a cell-to cell visibility is harder. 2

  3. Straightforward solution: Sampling Strong Occlusion Test Problem: � Algorithm: � – Is the green object visible from – Find objects occluded by a single the viewcell? convex occluder Solution: � – Mark only such objects as hidden – Sample some points from within the viewcell Pro: � – Test if the green object is visible – Conservative solution from each sampled point – Fast Con: � Con: � – Not conservative – Objects may be occluded only by a – Slow! combination of other objects (Weakly Occluded) – Large viewcells ה ה View cell Umbrae of occluders Occluder Fusion Visibility preprocessing with occluder fusion for urban walkthroughs � – P. Wonka et.al. EGRW’ 2000 Virtual Occluder … � – V. Koltun at.el. EGRW’ 2000 Conservative Volumetric Visibility with Occluder Fusion � – G. Schaufler et.al. SIGGRAPH’2000 Visibility Preprocessing using Extended Projections � – F. Durand et.al. SIGGRAPH’2000 Negative Umbra Positive Umbra Occluder Fusion – Key Idea Intersecting Umbrae - problem � Merge umbrae that Doesn’t capture all the cases of occluder fusion intersect � Fuse small umbrae into larger aggregated umbrae View cell View cell 3

  4. Ray (parameter) space techniques Simple Dual Space � All rays hitting an object define a footprint Simple duality transformation in 2D: � in parameter space. – L : y = ax+b L* : (-a,b) – p : (a,b) p* : y = -ax+b � Boolean set operations on footprints determine visibility. � Exact - captures all the cases of occluder y = fusion. a x + (-a,b) b Primal Plane Dual Plane Simple Dual Space Basic Dual Space (Cont.) All lines passing through a point are mapped � to a line The lines that intersect a line- � q segment produce a double- L wedge in dual-space We can encode all the lines � p that intersect a segment into some footprint in dual-space q* L* Primal Plane p* Dual Plane Parameter Space Footprint Parameter space - discussion Is segment A mutually visible from segment B ? � Advantages: � – W A ∩ W B describes all possible sight-lines – Easy to implement with Boolean set operations – The union of footprints of the occluder segments is the aggregated – Great for occluder fusion – provides exact solution occlusion of these segments � Problems: – The footprint is unbounded – can’t be discretized and implemented in hardware – No simple extension to 3D rays W A ∩ W B A B 4

  5. Hardware Accelerated Parameter Ray Space [Koltun, Cohen-Or and Chrysanthou, EGRW2001] Put a plane lying on the viewcell A and the target cell B � For 2.5D occluders: A & B are mutually visible iff their upper rims are � mutually visible Reduces the 2.5D problem into planar visibility test S 2 � S 2 0 1 1 s 2 S 1 B B A s 1 A 0,0 1 Ray Space 0 1 S 1 ℜ 2 Parameter Ray Space Hardware Accelerated Occlusion Test � Render all the footprint polygons onto parameter space � Check whether the frame buffer is fully covered S 2 � Conservativeness - draw only fully covered pixels S 2 0 1 1 s 2 s 2 s 2 s 2 1 1 s 1 s 1 Footprint 0 1 0 1 S 1 s 1 s 1 0,0 1 Ray Space 0 1 S 1 ℜ 2 Ray Space Factorization (Siggraph’03) Use a bounded parameter space Discussion � One global parameter space � Each occluder is processed once � Support 3D scenes This parameterization is bounded � � Fast using graphics HW � Can be efficiently used with graphics hardware � The parameterization is valid only within the shaft. � Need to construct different parameter space for each occludee – � which means each occluder is processed many times. 2.5D occluders only. � Conclusion: we need something better… � 5

  6. The dimensionality of the from- The dimensionality of the from-region region problem problem From-Region visibility is 4D From-Region visibility is 4D A ray exists the viewcell through a 2D surface and enters the target region through a 2D surface viewcell viewcell Our Factorization Lumigraph/light-field We factor the 4D visibility A 2D grid of 2D images problem into horizontal and vertical components v u Horizontal direction Vertical direction Our Main Contribution Algorithm Overview Per Object: Our factorization: •Parameterization of vertical slices •Umbra encoding •Exploits vertical coherence Vertical direction Vertical umbra R •Maps to the graphics card R ‘ t s Horizontal direction 6

  7. Algorithm Overview (Cont.) Parameterization in 2D � Two concentric squares Top-down, front-to-back traversal of a KD-tree hierarchy � Parameters ( s,t) are associated with the inner and outer Objects in visible leafs serve as occluders squares ( 0<s,t<1) t=0 1/4 t s=0 1/4 3/4 1/2 s 1/2 3/4 A Footprint of a Segment in 2D Extension to 3D � 2D solution is not enough – Can’t tell whether an object is really A footprint of a 2D segment is several 2D occluded polygons � Plucker Coordinates – The curse of dimensionality ( 1 / 4 ) t q t 1/4 – Very slow, no hardware realization q s=0 1/4 [Bittner and Prikryl 01, Nirenstein02] ( 1 / 2 ) t q t ( 1 / 4 ) t q ( 1 / 2 ) t q 3/4 1/2 s s 0 1/4 1/2 3/4 1 Within a Vertical Slice Within a Vertical Slice A ray that leaves the viewcell has a 2D horizontal direction Each horizontal direction (s,t) defines a vertical-slice Within the slice the ray has a 2D vertical direction 7

  8. Umbra Encoding Horizontal and Vertical directions Encode supporting and separating angles We need to encode more than a single value per slice… Vertical slice P(s,t) directional v umbra t t t s s Vertical direction Horizontal direction viewcell Parameter Space s Testing Visibility Umbrae Merging Augment (fuse) the aggregated umbra if In parallel (in all slices) the directional umbra intersects test occlusion by Vertical slice P(s,t) comparing supporting angles Directional accumulated umbra α β t t viewcell β α b b viewcell Umbrae Merging (Cont.) A simple case Otherwise, create another umbra entry. To make it clearer, let’s look at a simpler If there are too many discard it. case. Here we just encode the top-elevation angle ( , , ) s t v 0 0 0 t t v v 0 ( , ) s 0 t 0 ( , ) s 0 t 0 s s viewcell (s,t) plane (s,t,v) plane Primal Space 8

  9. Merging Umbrae (within the slice) Merging Umbrae – Process objects in front-to-back order – Process objects in front-to-back order – Maintain the aggregated umbrae – Maintain the aggregated umbrae 6 6 4 4 2 2 7 7 5 5 3 3 1 1 viewcell viewcell Merging Umbrae Merging Umbrae – Process objects in front-to-back order – Process objects in front-to-back order – Maintain the aggregated umbrae – Maintain the aggregated umbrae 6 6 4 4 2 2 7 7 5 5 3 3 1 1 viewcell viewcell Merging Umbrae Merging Umbrae – Process objects in front-to-back order – Process objects in front-to-back order – Maintain the aggregated umbrae – Maintain the aggregated umbrae 6 6 4 4 2 2 7 7 5 5 3 3 1 1 viewcell viewcell 9

Recommend


More recommend