#### Elif Tosun 274b-ab Spring 2000 CSC 274 Computational Geometry

Back to 274b-ab homepage

### Summary

The problem that I researched on was referred to as Binary Space Partitions/Painter's Algorithm.

Basically, the problem is about visibility. For example,the flight simulators that are used by student pilots should perform many tasks to make the pilot forget that she is sitting in a simulator. The most important thing is what the pilot sees, therefore correct and realistic visualization of the landscape or the runway to land on is extremely important. This involves modeling the landscape and rendering the models. The way to do this is called the "hidden surface removal", which is determining for each pixel on the screen the object that is visible. Just as well, shadowing plays a great role in visualization. Calculations should be made in order to find the intensity of light that the object emits in the direction of viewpoint.

This whole rendering task should be done in real time in such simulators so there is no time for such complex calculations. There are two solutions that allows the rendering to be done in real time. One of them is the z-buffer algorithm. However, this algorithm requires too much memory since there is a test applied on each pixel on the screen comparing the z-coordinates of the objects and the viewpoint. The second solution which is the "painter's algorithm" avoids this problem. It first sorts out the objects that are visible in "depth order" which is the order of closeness to the viewpoint. And then the objects are scan converted in the back-to-front order overwriting pixels that are covered by the object in the front. This is similar to how the painters put paint on canvas layer by layer. That is where the name comes from! :) However this sorting process is not as easy as it sounds because sometimes the objects dont have a depth order, i.e, if they have cyclic overlap then the cycles should be broken down by a splitting process.To be able to make this sorting in real time an elegant data structure called binary partition trees (BSP tress) are used.

### Glossary

Real-time: Able to respond immediately (Familiar)

Visualization:The act of making a visible presentation of numerical data, particularly a graphical one.(Familiar)

Z-buffer:An array used to store the maximum Z coordinate of any feature plottedat a given (X, Y) location on the screen, used for hidden line removal in a 2D rendering of a 3D scene. The Z axis is perpendicular to the screen with values increasing towards the viewer so that any point whose Z coordinate is less thanthe corresponding Z-buffer value will be hidden behind some feature which has already been plotted. (Unfamiliar)

Frame buffer: Part of a video system in which an image is stored, pixel by pixel and which is used to refresh a raster image. The term "video memory" suggestsa fairly static display whereas a frame buffer holds one frame from a sequence of frames forming a moving image. (Unfamiliar)

Hidden Surface Removal: (unfamiliar)

scan-conversion: (unfamiliar)

painter's algorithm: (unfamiliar)

depth order: (familiar)

cylic overlap: (familiar)

BSP Trees: (unfamiliar)

P.S: Although I checked severel computer dicitonaries online I coulnd't find the definitions for the last few term mentioned above.

### Key Words

* hidden surface removal
* z-buffer algorithm
* painter's algorithm
* depth order
* binary search partition (trees)

### Web Search

Keyword: hidden surface removal

*http://www.eml.hiroshima-u.ac.jp/~doba/java/ZBUF/test.html - a Java applet

*http://www.uni-paderborn.de/fachbereich/AG/monien/PUBLICATIONS/ABSTRACTS/M_hidden_surface.html - an abstract of a paper

*http://www.cs.dartmouth.edu/reports/abstracts/TR86-123/ - a graphic system - BRUCE from Dartmouth

*http://robotics.Stanford.EDU/~murali/papers/thesis - T.M. Murali's PhD Thesis on efficient Hidden Surface Removal

*http://http.icsi.berkeley.edu/techreports/1993.abstracts/tr-93-032.html - a technical report

*http://www.udayton.edu/~cps/cps560/notes/hidden/

Keyword: z-buffer algorithm

*http://cs-cmn1.kookmin.ac.kr/cg/hypgraph/scanline/visiblilty/zbuffer.htm

*http://www.cs.nps.navy.mil/people/faculty/capps/iap/class5/z/

*http://www.dcc.ufba.br/mat056/hypgraph/scanline/visibility/scan.htm

Keyword: Painter's Algorithm

*http://www.gamers.org/dEngine/quake/papers/ddjzsort.html - has links to other sources

*http://cs-cmn1.kookmin.ac.kr/cg/hypgraph/scanline/visibility/painter.htm

*http://www.student.kuleuven.ac.be/~m9507467/Tutorials/Calamitas_Tutorial_10.htm

Keyword: BSP Trees

*http://www.geocities.com/SiliconValley/2151/bsp.html

*http://www.ce.unipr.it/~tommesa/jaluit.html- a BSP Tree compiler

*http://www.math.tau.ac.il/~sariel/TA/wcg98b/bsp/BSP.html - an applet

*http://macinsearch.com/infomac/dev/lib/bsp-tree-demo-15.html

### Bibliographic Search

1.
@inproceedings{aeg-kbisd-98
, author = "Pankaj K. Agarwal and Jeff Erickson and Leonidas J. Guibas"
, title = "Kinetic {BSP}s for Intersecting Segments and Disjoint Triangles"
, booktitle = "Proc. 9th ACM-SIAM Sympos. Discrete Algorithms"
, nickname = "SODA '98"
, year = 1998
, pages = "107--116"
, update = "98.07 bibrelex, 98.03 agarwal"
}

2.
@inproceedings{bdm-tepa1-95
, author = "A. B{\"a}umker and W. Dittrich and F. {Meyer auf der Heide}"
, title = "Truly efficient parallel algorithms: \$1\$-optimal multisearch for an extension of the {BSP} model"
, booktitle = "Proc. 3rd Annu. European Sympos. Algorithms"
, nickname = "ESA"
, year = 1995
, pages = "17--30"
, update = "96.09 orourke"
}

3.
@article{cf-fopsg-92
, author = "Norman Chin and Steven Feiner"
, title = "Fast object-precision shadow generation for areal light sources using {BSP} trees"
, journal = "Comput. Graph."
, volume = 25
, month = mar
, year = 1992
, pages = "21--30"
, note = "Proc. 1992 Sympos. Interactive 3D Graphics"
, keywords = "shadow volume, area light source, penumbra, umbra"
, update = "98.07 bibrelex, 97.07 agarwal"
}

4.
@inproceedings{cf-nrtsg-89
, author = "Norman Chin and Steven Feiner"
, title = "Near Real-Time Shadow Generation Using {BSP} Trees"
, booktitle = "Proc. SIGGRAPH '89"
, volume = 23
, number = 3
, publisher = "ACM SIGGRAPH"
, month = aug
, year = 1989
, pages = "99--106"
, update = "98.11 bibrelex, 97.07 agarwal, 97.03 schwarzkopf"
}

5.
@inproceedings{gs-cedsb-96
, author = "Alexandros Gerbessiotis and Constantinos Siniolakis"
, title = "Communication Efficient Data Structures on the BSP Model with Applications in Computational Geometry"
, booktitle = "Proceedings of EUROPAR'96"
, month = aug
, year = 1996
, keywords = "BSP Model, Data Structures"
, update = "96.09 orourke"
}

6.
@inproceedings{t-obspa-90
, author = "Enric Torres"
, title = "Optimization of the Binary Space Partition Algorithm ({BSP}) for the Visualization of Dynamic Scenes"
, booktitle = "Eurographics '90"
, publisher = "North-Holland"
, year = 1990
, pages = "507--518"
, update = "97.07 agarwal"
}

7.
@article{aks-cdofo-95
, author = "Pankaj K. Agarwal and M. Katz and Micha Sharir"
, title = "Computing depth orders for fat objects and related problems"
, journal = "Comput. Geom. Theory Appl."
, volume = 5
, year = 1995
, pages = "187--206"
, succeeds = "aks-cdorp-94"
, update = "98.07 agarwal, 98.03 mitchell, 96.09 devillers"
}

8.
@inproceedings{aks-cdorp-94
, author = "Pankaj K. Agarwal and M. J. Katz and Micha Sharir"
, title = "Computing depth orders and related problems"
, booktitle = "Proc. 4th Scand. Workshop Algorithm Theory"
, year = 1994
, pages = "1--12"
, precedes = "aks-cdorp-95"
, update = "98.03 mitchell, 97.11 katz, 96.09 devillers, 96.05 agarwal, 95.09 agarwal"
}

9.
@article{aks-cdorp-95
, author = "Pankaj K. Agarwal and M. J. Katz and Micha Sharir"
, title = "Computing depth orders and related problems"
, journal = "Comput. Geom. Theory Appl."
, volume = 5
, year = 1995
, pages = "187--206"
, succeeds = "aks-cdorp-94"
, update = "98.03 mitchell, 97.11 katz, 97.03 agarwal"
}

10.
@book{b-rsdoh-93
, author = "M. de Berg"
, title = "Ray Shooting, Depth Orders and Hidden Surface Removal"
, series = "Lecture Notes Comput. Sci."
, volume = 703
, publisher = "Springer-Verlag"
, year = 1993
, keywords = "book, ray shooting, depth orders, hidden surface removal, translation orders, graphics, data structures"
, succeeds = "b-earsh-92"
, update = "96.09 agarwal, 94.05 schwarzkopf"
}

11.
@inproceedings{b-ghsr-93
, author = "M. de Berg"
, title = "Generalized hidden surface removal"
, booktitle = "Proc. 9th Annu. ACM Sympos. Comput. Geom."
, year = 1993
, pages = "1--10"
, precedes = "b-ghsr-96"
, cites = "am-rsps-92, b-hsrr-90, c-tsplt-91a, cegs-lscaa-89, cg-vippg-89, bhosk-ershs-91, bo-hsrco-92, e-acg-87, gao-isost-90, go-nasch-87, ghlst-ltavs-87, hs-ndssg-86, kos-ehsro-92, ms-rcibt-88, m-wcohs-87, oy-nubkm-91, rs-eoshs-88i, ZZZ"
, update = "98.03 bibrelex, 96.09 devillers, 93.09 jones"
}

12.
@article{bhosk-ershs-94
, author = "M. de Berg and D. Halperin and M. Overmars and J. Snoeyink and M. van Kreveld"
, title = "Efficient ray shooting and hidden surface removal"
, journal = "algo"
, volume = 12
, year = 1994
, pages = "30--53"
, succeeds = "bhosk-ershs-91"
}

13.
@article{b-hsrr-90
, author = "M. Bern"
, title = "Hidden surface removal for rectangles"
, journal = "J. Comput. Syst. Sci."
, volume = 40
, year = 1990
, pages = "49--69"
, succeeds = "b-hsrr-88"
, update = "95.05 franciosa"
}