1 / 84

盧天麒 國立嘉義大學資訊工程系 tclu@mail.ncyu.tw web.ncyu.tw/~tclu

使用分散式可視性裁切法之複雜場景顯像環境設計 A Fast Walkthrough System based on Distributed Visibility Culling Techniques. 盧天麒 國立嘉義大學資訊工程系 tclu@mail.ncyu.edu.tw http://web.ncyu.edu.tw/~tclu. Outline. Introduction Classification of Occlusion C ulling Instant Visibility Cell Arrangement Policy

tanika
Download Presentation

盧天麒 國立嘉義大學資訊工程系 tclu@mail.ncyu.tw web.ncyu.tw/~tclu

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. 使用分散式可視性裁切法之複雜場景顯像環境設計A Fast Walkthrough System based on Distributed Visibility CullingTechniques 盧天麒 國立嘉義大學資訊工程系 tclu@mail.ncyu.edu.tw http://web.ncyu.edu.tw/~tclu

  2. Outline • Introduction • Classification of Occlusion Culling • Instant Visibility • Cell Arrangement Policy • Distributed Rendering Environment • Experimental Results • Conclusions • Future Works • System Demo

  3. Introduction (1/11) • Walkthrough of large-scale models • Simulators, games, CAD/CAM, urban planning • Animation 1 (Level of Detail) • Animation 2 (Collision Detection) • Animation 3 (Physics) • Millions of polygons • Not real-time with current graphics hardware • To reduce the loads for the graphics hardware Solution Visibility Culling

  4. Introduction (2/11) • Like most other rendering acceleration techniques, the goal is to avoid rendering redundant geometry • The basic idea: don’t render what can’t be seen • Off-screen: view-frustum culling • Invisible parts: back-face culling • Occluded by other objects: occlusion culling

  5. View-Frustum Culling Back-Face Culling Occlusion Culling Introduction (3/11) • Visibility culling algorithm • View-frustum culling • Back-face culling • Occlusion culling visible View Frustum

  6. Introduction (4/11) • View-frustum culling • An old idea (Clark 76): • Organize primitives into clumps • Before rendering the primitives in a clump, test a bounding volume against the view frustum • If the clump is entirely outside the view frustum, don’t render any of the primitives • If the clump intersects the view frustum, add to PVS and render normally • Organize clumps into a hierarchy of bounding volumes for more efficient testing • If a clump is entirely outside or entirely inside view frustum, no need to test its children

  7. Introduction (5/11) • Example of Hierarchical View Frustum Culling root camera

  8. 1 1 0 2 0 2 1 5 2 3 3 4 0 Introduction (6/11) • Back-face culling • Compute normal of polygon in 2D screen space. • Normal will be cross product of two vectors that share an origin • Use vertices for simplicity:

  9. Introduction (7/11) • Back-face culling • Simple technique to discard polygons that faces away from the viewer • First, must have consistently oriented polygons, e.g., counterclockwise 2 2 0 1 0 front facing back facing 1

  10. Introduction (8/11) • Back-face culling • Create vector from eye point to each polygon • Compute dot product of vector and normal at a vertex. • If dot product is negative, angle between vectors is greater than 90 degrees 1 2 back 2 eye 1 front 0 0 front back screen space eye space

  11. Introduction (9/11) • Occlusion culling • Main idea: Objects that lies completely “behind” another set of objects can be culled • Process from front to back Use some kind of occlusion representation OR for each object g do: if( not Occluded(OR ,g)) render(g); update(OR ,g); end; end;

  12. Introduction (10/11) • Occlusion culling • Occluders versus occludees: Blue parts: occluders Red parts: occludees

  13. View X Point Y Z Introduction (11/11) • Occlusion culling • Depth versus overlap: Depth + Overlap = Occlusion

  14. Classification of Occlusion Culling (1/4) • Online point-basedvs. Preprocessing region-based View Point View Cell [Greene 93, Coorg 96, Zhang 97, Luebke 95, etc.] [Teller 91, Airey 91, Cohen-Or 98, etc.]

  15. Classification of Occlusion Culling (2/4) • Online point-based algorithm • They have to be executed for each frame • Renderer cannot proceed until a PVS is available • Preprocessing region-based algorithm • PVS is calculated at preprocessing stage • Large memory consumption • Long precalculation time

  16. Classification of Occlusion Culling (3/4) • Occluders vs.Portals visible occluder hidden portal [Greene 93, Coorg 96, Zhang 97, Cohen-Or 98, etc.] [Teller 91, Airey 91, Luebke 95, etc.]

  17. Classification of Occlusion Culling (4/4) • Object space vs.Image space [Teller 91, Airey 91, Coorg 96, Hudson 97, Cohen-Or 98, etc.] [Greene 93, Zhang 97, etc.]

  18. Binary Space Partitioning Tree (1/2) • Partition space by dividing into two parts at each level • A terminal node represents a region that is not further subdivided

  19. Binary Space Partitioning Tree (2/2) • Subdivide a scene into numerous spatial cells

  20. What is our demand ?

  21. Our demand • Short preprocessing time • Calculate PVS at the run-time stage • High-speed frame rate • Reduce the number of rendering polygons • Decrease the calculating time of PVS • Provide a high-quality scene with high-speed frame rate

  22. Our solution (1/4) • Short preprocessing time • Only find the occluders set of each cell • High-speed frame rate • Reduce the number of rendering polygons • Decrease the calculating time of PVS • Provide a high-quality scene with high-speed frame rate

  23. Our solution (2/4) • Short preprocessing time • Only find the occluders set of each cell • High-speed frame rate • Perform run-time occlusion culling • Decrease the calculating time of PVS • Provide a high-quality scene with high-speed frame rate

  24. Our solution (3/4) • Short preprocessing time • Only find the occluders set of each cell • High-speed frame rate • Perform occlusion culling • Calculate visibility in parallel to the traditional rendering pipeline (Instant Visibility) • Provide a high-quality scene with high-speed frame rate

  25. Our solution (4/4) • Instant Visibility

  26. Instant Visibility (1/7) • The traditional rendering pipeline

  27. Instant Visibility (2/7) • The new visibility pipeline

  28. Instant Visibility (3/7) • Adjust view frustum

  29. Instant Visibility (4/7) • tε = 2 tvis – tframe • ε = tε vmax • Where vmax is the max. velocity • φ = tε ωε • Where ωε is the max, rotation speed

  30. Instant Visibility (5/7) • The umbra difference of ε - Neighborhood

  31. Instant Visibility (6/7) • Occluder Shrinking

  32. Instant Visibility (7/7) PVS Info Drawing resource Calculating resource View Position Info

  33. Performance ? A cluster of the proposed architecture Calculating resources Drawing resource

  34. Our approach Drawing resource Calculating resources Online point-based / Preprocessing region-based PVS Occluders / Portals Object space / Image space

  35. System Architecture

  36. Cell Arrangement Policy (1/5) • The definition of machine type • (Ti, μi, ψi) • Ti : machine type • μi : throughput • ψi : the amount

  37. Cell Arrangement Policy (2/5) • The definition of task class • (Ci, wi, li, λi) • Ci : task class • wi : service demand • li : code length • λi : arrival rate

  38. Cell Arrangement Policy (3/5) • The definition of workload of a machine Pi • Ki : the set of tasks residing in Pi

  39. Cell Arrangement Policy (4/5) • tvis = tcal + 2 tcomm • tvis : the time which DM obtains PVS • tcal : the time which CM calculates PVS • tcomm : one-way communication time between CM and DM • If the network is strongly connected  tvis ≒ tcal ≒

  40. Cell Arrangement Policy (5/5) • The weight Wk of a machine Pk • The same machinewill not be assignedadjacent cells

  41. The arrangement algorithm

  42. Distributed Rendering Environment • Two executing stage • Preprocessing stage • On-the-fly stage

  43. Preprocessing Stage • Perform spatial subdivision • BSP tree (binary space partitioning tree ) • Establish an adjacency tree • Compute the complexity weight of each cell • The weight is the number of polygons of the cell • Determine the occluders set of each cell • Determined it according to projection area of each occluder

  44. On-the-fly Stage (1/5) • Add a new CM • Increase a computing resource • MA arranges cells again

  45. On-the-fly Stage (2/5) • Add a new DM • Join a displaying client

  46. On-the-fly Stage (3/5) • Calculating and rendering • A major operation

  47. On-the-fly Stage (4/5) • Remove an existing or crashed CM • Decrease a computing resource • MA arranges cells again

  48. On-the-fly Stage (5/5) • Remove an existing DM • Cancel a displaying client

  49. Calculating and Rendering • Calculating step of CM • step1: adjust the view frustum • step2: perform view-frustum culling • step3: perform occlusion culling

  50. The calculating algorithm

More Related