1 / 55

Ray Space Factorization for From-Region Visibility

Ray Space Factorization for From-Region Visibility. Tommer Leyvand Olga Sorkine Daniel Cohen-Or Tel-Aviv University, Israel. From-Region Visibility. Problem of identifying which parts are visible from a region (viewcell). Visibility Set Valid from within the viewcell. Entire Model.

gloriaabel
Download Presentation

Ray Space Factorization for From-Region Visibility

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ray Space Factorization for From-Region Visibility Tommer Leyvand Olga Sorkine Daniel Cohen-Or Tel-Aviv University, Israel

  2. From-Region Visibility Problem of identifying which parts are visible from a region (viewcell) Visibility Set Valid from within the viewcell Entire Model

  3. Abstract • Conservative occlusion culling method • Factorizing 4D visibility problem in to horizontal and vertical components • Two components is solved asymmetrically • Horizontal component • Parameterization of the ray space • Vertical component • Incrementally merging umbrae

  4. Abstract • Efficiently realized together by modern graphics hardware • Occlusion map to encode visibility • Culling time and size of the computed PVS→ depend on the size of the viewcell • For moderate viewcells • Occlusion culling of large urban scenes:< 1 sec • Size of the PVS = 2 * size of the exact VS

  5. Dimensionality ofFrom-Region Visibility From-Region visibility is 4D • A ray exists the viewcell through a 2D surface and enters the target region through a 2D surface viewcell

  6. Our Factorization Factor the 4D visibility problem into horizontal and vertical components Ray Space Approach Umbra Merging Approach Horizontal direction Vertical direction

  7. Form-Pint vs. From-Region • Complexity of models keeps growing • Occlusion culling can effectively reduce the rendering depth complexity • Visibility from-point: compute each frame • Visibility from-region: valid for a region rather than a single point • Advantage of time and spatial coherence • Computational cost is amortized over consecutive frames • Compute from-region visibility on-the-fly,not having to resort to off-line methods

  8. 4-Dimensional Problem • Decide: whether an object S is (partially) visible or occluded from a region C • Requires detecting:whether there exists at least a single ray thatleaves C and intersects Sbefore it intersects an occluder ? C S region occluder object

  9. Solutions • Exact solutions are possible:[Nirenstein et al. 2002…]!overly expensive! • Conservative solutions: [Durand et al. 2000…]gain speed-up by overestimating the exact VS • Dealing with 2.5D scenes: [Koltun et al. 2001…]2.5D occluders is quite reasonable in practice(especially in walkthrough applications) • For more general scenes • Necessary to have a culling method thatcan deal withthe occlusion of a larger domain of shapes

  10. Graphics Hardware • Advanced graphics cards: visibility featureindicates whether a just drawn polygon is visible or hidden by polygons already drawn • The technique this paper present here:utilizes capabilities of the latest graphics hardware to accelerate the performance for from-region visibility

  11. Occlusion Culling Method • Occlusion cast: arbitrary 3D models • Idea: 4D visibility problem → two 2D components • Horizontal: parameterization of the ray space • Vertical: maintained by pairs of occluding angles • Key point: • Horizontal components → polygonal shapes • Each point in polygonal footprints → vertical slice • Modern graphics hardware → polygonal footprints can be drawn • Applying per-pixel visibility calculations →significant speed-up

  12. From-region Method • Early generic from-region methods:occlusion of a single occluder or approximated • Better capture the occlusion and reduce the VS: detect objects – hidden by a group of occluders • Advanced from-region methods:aggregating individual umbrae into a large umbra capable of occluding larger parts of the scene

  13. Aggregating Umbrae • Ray-parameterization: • capture the visibility of an object into some geometric region (a polygonal footprint) • Apply Boolean operations (visibility) • Fuses individual intersecting umbrae into large umbrae • Combines these two approaches!

  14. Occlusion Problem • Visibility problems: (in particular occlusion problem) → problems in line spaces • Example: basic occlusion problemGiven a segment C, an object A is occluded from any point on C by a set of objects Bi →if all the lines intersecting C and Aalso intersect the union of Bi A C

  15. Occlusion Problem – Solution • Using the line space,lines in the primal space mapped to points • Mapping: 2D line vs. pointDefine: By coefficients of the lines (primal space) line y = ax + bis mapped topoint (a, -b) (in the line parameter space) footprint A C

  16. Occlusion Problem – Analysis • Not optimal: vertical lines are mapped to infinity • Problem: all lines with large coefficients • Practical reason: dual space must be bounded • Solution: moving to higher dimensions • Loses the simplicity and efficiencyof operating in image space

  17. Occlusion Problem – Analysis • Ideas to 3D case: not as easy as in 2Dthe parameter space of 3D lines has high D • In general, 3D lines have four DOF • Rays: origin of the lines • Visibility in 2D flatland: limited interest • Note: most of objects are detected as occluded in flatland, while actually being visible in 2.5D due to their various heights

  18. Occluder Fusion • Different approach for occluder fusion:incrementally construct an aggregate umbra in primal space • Occluder fusion occurs whenever:individual umbrae intersect • Note: umbra intersection is a sufficient condition but not necessary one

  19. Overview • Bounded nonsingular parameterization:2D component by a vertical projection of the objects onto the ground (z=0) • Footprint:composed of a polygons (parameter space) • Rays in 3D primal space = (s,t) direction define a vertical slice (directional plane)

  20. Overview Line segment: casts a directional umbra→ each directional plane: aggregated umbra (occluder)→ aggregated umbra (all): maintained in occlusion map

  21. Overview • Hierarchical front to back traversal of objects • Perform visibility queries • Update the occlusion map • Footprint of objects • Conservatively discretized • Drawn by the graphics hardware • Occlusion map • Represented by a discrete ray space

  22. Ray Parameterization • Duality of R2is a correspondence between • 2D linesy=ax+bin the primal space • Points (a,-b) in the dual space • Different parameterization of 2D lines • Only the oriented lines (rays) (emerge from a given 2D square viewcell) • Not have singularity • Parameter space is bounded • Rays (leave the viewcell) intersect a triangle • Form a footprint in the parameter space • Can be represented by a few polygons

  23. t=0 1/4 s=0 1/4 3/4 1/2 3/4 1/2 Primal Space • s, t: associated with theinner, outer squares • r(sr, tr) : ray r intersects with inner and outer squares Primal Space

  24. t=0 1/4 s=0 1/4 3/4 1/2 3/4 1/2 Footprint of a 2D Triangle • Footprint: a geometric primitiveas the set of all points in the parameter spacethat refer to rays that intersect the primitive t 1/2 tq1(1/4) q1 tq1(1) tq1(1/2) tq1(3/4) tq1(1/4) A tq1(1/2) q2 1/4 s 0 1/2 3/4 1 1/4 Primal Space Ray Parameter Space -- For a fixed value of s: { (s,t) : t [tq1(s), tq2(s)] }

  25. t=0 1/4 s=0 1/4 3/4 1/2 3/4 1/2 Footprint of a 2D Triangle t=1/4 t=1/2 s=1/4 s=1/2

  26. Visibility within a Vertical Plane • Traverse the cells of a kd-tree in a front-to-back order interleave occlusion tests against the occlusion map andumbra merging to maintain it • How to perform visibility queries? • How to perform occluder fusion?

  27. Vertical Slice The visibility is solved within each vertical slice A vertical slice Within a vertical slice Vertical direction Horizontal direction

  28. Vertical slice R R ‘ t s Horizontal direction Vertical Visibility Query • B cast a directional umbrawith respect to K within P(s,t) • Supporting-angles encode the directional umbra of B within the vertical plane P(s,t) • Angle values are represented by their tangentsas functions of (s,t) P(s,t) : vertical planeB = p1p2 , : supporting line , : supporting angle p1 B p2 K

  29. Vertical Visibility Query • Q: line segment within P(s,t) that’s behind B(according to the front-to-back order with respect to the viewcell) • Determining whether Q is occluded by B→Testing whether the umbra of B contains Q • Front-to-back order guarantees • tested segment is always behind the occluders→supporting lines are sufficient for the visibility test Directional accumulated umbra Q is occluded: Both of their endpoints are within the accumulated umbrai.e. Within a slice: Test occlusion by comparing supporting angles

  30. Merging Umbrae • In the vertical direction plane • umbra aggregation is performed by testing umbra intersection and fusing occluders • Supporting lines alone do not uniquely describe the umbra Adding separating lines→ defining the umbra uniquely

  31. Merging Umbrae (1) Umbra of one segment is contained in the area between the supporting lines of the other segment “throw out” the contained segment and keep just the other one

  32. Merging Umbrae (2) No umbra intersection occurs

  33. Merging Umbrae (3) If (1)(2) tests fail as well → umbra intersection Replace the two segments by a new “virtual” occluder segment Insert into the occlusion map the following angles:

  34. Occluder Fusion • Note: • Fused umbra is valid only for testing occlusion of ocludees placed behind all the occluders that created the umbra • Merging umbra is order-independent • an approximate ordering of the occluders is more efficient • Typically man-made scenes have a strong vertical coherence andafter some umbra-merging steps, the umbra grows to capture most of the occlusion

  35. Putting It All Together • Combine: horizontal footprint, vertical visibility • Exploiting-all the directional (vertical) computations can be performed in parallel • Footprints are conservatively discretized before rendering • adding four values {v0,v1,v2,v3} to each pixels • represent the four supporting and separating angles

  36. v t (s,t) s Parameter Space Umbra Encoding • For each vi: • footprint F(R’) is augmented into a 3D (s,t,v) parameter space, yielding four 3D footprints • these footprints are surface Vertical direction Horizontal direction

  37. Hierarchical VisibilityCulling • Original objects of the scene are inserted into a kd-tree • During the algorithm, kd-tree has two functions • traverse the scene in a front-to-back order • allows culling of large portions of model

  38. Kd-tree traverse • Kd-tree is traverse top-down • large cells can be detected as hidden and culled with all their sub-tree • if a leaf node is still visible • the visibility of each bounding box associated with it is tested • if a bounding box is visible • the triangles bounded in it are defined as potentially visible

  39. Occlusion • In scenes with significant occlusion • objects close to the viewcell rapidly fill the occlusion map • most of the back larger kd-cells are detected as hidden • From-region front-to-back order of the kd-cells is a strict order rather than approximate • guaranteed by using large kd-cells whose splitting planes never intersect any viewcells

  40. Merging Umbra • Merging umbra is applied while traversing the kd-tree front-to-back • a leaf node is detected as visible • the polygons in that leaf are considered as occludersand their footprint are inserted into the occlusion map(possibly merging with the existing umbrae created so far) • Merging umbraesimplifies the occlusion map and increases the occlusion • optionally, before updating the occlusion map, the visibility of individual polygons in the PV leaf can be tested to tighten the PVS

  41. Algorithm PVS← CalculateVisibility(kd-tree.root) CalculateVisibility(curr_kd_cell) if TestVisibility(curr_kd_cell) //current kd-cell is visible if cur_kd_cell.IsLeaf() PVS←PVS curr_kd_cell.getTriangles() AugmentOcclusionMap(curr_kd_cell.getRriangles()) else foreach kd_child curr_kd_cell.children in f2b order CalculateVisibility(kd_child) end foreach endif else return//current kd-cell occluded->terminate end

  42. 2.5D Occluders • 2.5D occluders: “half-umbra” • only top supporting angle is stored • bottom supporting angle is always zero • encode using the z-coordinate of the 2D footprint • Testing visibility of an occludee • testing the visibility of its footprint (disabling z-buffer) • Umbra fusion by • enabling z-buffer updates • drawing the occluder footprint

  43. 3D Occluders • Use a series of top and bottom supporting and separating angles • Occlusion map stores only a single directional umbra per direction (hardware limitation) • Testing visibility of an occludee • testing whether the top or bottom supporting footprints are visible • Umbra fusion by • testing whether the new umbra intersects the current umbra in the occlusion map

  44. Implementation • Cg implementation: • 32bit floating-point PBuffer • store the global occlusion map • Fragment shader functionality • calculation of the directional umbra within each slice • testing occlusion • merging umbra

  45. Urban Model • 2GHz P4 machine with Nvidia GeForce4 Ti graphics card • A randomly generated urban model: • Large set of parameters • Increasing vertical complexity • Not axis-aligned

  46. Non-realistic Model • Box-field: consists of randomly generated boxes • Not too dense → geometry deep inside the box-field is visible • Reducing the effectiveness of the use of a hierarchy

  47. Result-Urban Scene • 26.8M triangles • Height of viewcells: 2.5 units • PVS and VS size is given in triangles • Time: refers to culling-time (seconds) • Off-junction viewcells: within some city block • In-junction viewcells: on the junction of two long avenues

  48. Result- Box-field • 20.7M triangles • Height of viewcells: 10 units • Near viewcell: viewcell located from within the field • Far viewcell: viewcell located outside and far from the field • When the viewcell is closer to the scene,the objects are larger and occlude much more

  49. Result-Culling effectiveness • Comparison between: 2.5D vs. 3D occluders • 20M triangles (urban city model) • Maintaining a single full umbrareducesthe size of the PVS,at the expense of longer computation time

  50. Result • Culling time is directly dependent on two interdependent factors • number of visibility queries • number of visible triangles (occluders) • The technique can deal with a huge model • due to the hierarchy • but only as long as the size of the VS is small • only a small number of triangles is visible • implies that only a small number of kd-cells in the hierarchy is tested

More Related