3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository 3D graphics eBook - Course Materials Repository

courses.essex.ac.uk
from courses.essex.ac.uk More from this publisher
07.01.2013 Views

Binary space partitioning 19 • 1990 Teller and Séquin proposed the offline generation of potentially visible sets to accelerate visible surface determination in orthogonal 2D environments. • 1991 Gordon and Chen [CHEN91] described an efficient method of performing front-to-back rendering from a BSP tree, rather than the traditional back-to-front approach. They utilised a special data structure to record, efficiently, parts of the screen that have been drawn, and those yet to be rendered. This algorithm, together with the description of BSP Trees in the standard computer graphics textbook of the day (Foley, Van Dam, Feiner and Hughes) was used by John Carmack in the making of Doom. • 1992 Teller’s PhD thesis described the efficient generation of potentially visible sets as a pre-processing step to acceleration real-time visible surface determination in arbitrary 3D polygonal environments. This was used in Quake and contributed significantly to that game's performance. • 1993 Naylor answers the question of what characterizes a good BSP tree. He used expected case models (rather than worst case analysis) to mathematically measure the expected cost of searching a tree and used this measure to build good BSP trees. Intuitively, the tree represents an object in a multi-resolution fashion (more exactly, as a tree of approximations). Parallels with Huffman codes and probabilistic binary search trees are drawn. • 1993 Hayder Radha's PhD thesis described (natural) image representation methods using BSP trees. This includes the development of an optimal BSP-tree construction framework for any arbitrary input image. This framework is based on a new image transform, known as the Least-Square-Error (LSE) Partitioning Line (LPE) transform. H. Radha' thesis also developed an optimal rate-distortion (RD) image compression framework and image manipulation approaches using BSP trees. References • [FUCH80] H. Fuchs, Z. M. Kedem and B. F. Naylor. “On Visible Surface Generation by A Priori Tree Structures.” ACM Computer Graphics, pp 124–133. July 1980. • [THIBAULT87] W. Thibault and B. Naylor, "Set Operations on Polyhedra Using Binary Space Partitioning Trees", Computer Graphics (Siggraph '87), 21(4), 1987. • [NAYLOR90] B. Naylor, J. Amanatides, and W. Thibualt, "Merging BSP Trees Yields Polyhedral Set Operations", Computer Graphics (Siggraph '90), 24(3), 1990. • [NAYLOR93] B. Naylor, "Constructing Good Partitioning Trees", Graphics Interface (annual Canadian CG conference) May, 1993. • [CHEN91] S. Chen and D. Gordon. “Front-to-Back Display of BSP Trees.” [2] IEEE Computer Graphics & Algorithms, pp 79–85. September 1991. • [RADHA91] H. Radha, R. Leoonardi, M. Vetterli, and B. Naylor “Binary Space Partitioning Tree Representation of Images,” Journal of Visual Communications and Image Processing 1991, vol. 2(3). • [RADHA93] H. Radha, "Efficient Image Representation using Binary Space Partitioning Trees.", Ph.D. Thesis, Columbia University, 1993. • [RADHA96] H. Radha, M. Vetterli, and R. Leoonardi, “Image Compression Using Binary Space Partitioning Trees,” IEEE Transactions on Image Processing, vol. 5, No.12, December 1996, pp. 1610–1624. • [WINTER99] AN INVESTIGATION INTO REAL-TIME 3D POLYGON RENDERING USING BSP TREES. Andrew Steven Winter. April 1999. available online • Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf (2000). Computational Geometry (2nd revised edition ed.). Springer-Verlag. ISBN 3-540-65620-0. Section 12: Binary Space Partitions: pp. 251–265. Describes a randomized Painter's Algorithm. • Christer Ericson: Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3-D Technology). Verlag Morgan Kaufmann, S. 349-382, Jahr 2005, ISBN 1-55860-732-3

Binary space partitioning 20 [1] Binary Space Partition Trees in 3d worlds (http:/ / web. cs. wpi. edu/ ~matt/ courses/ cs563/ talks/ bsp/ document. html) [2] http:/ / www. rothschild. haifa. ac. il/ ~gordon/ ftb-bsp. pdf External links • BSP trees presentation (http:/ / www. cs. wpi. edu/ ~matt/ courses/ cs563/ talks/ bsp/ bsp. html) • Another BSP trees presentation (http:/ / www. cc. gatech. edu/ classes/ AY2004/ cs4451a_fall/ bsp. pdf) • A Java applet which demonstrates the process of tree generation (http:/ / symbolcraft. com/ graphics/ bsp/ ) • A Master Thesis about BSP generating (http:/ / www. gamedev. net/ reference/ programming/ features/ bsptree/ bsp. pdf) • BSP Trees: Theory and Implementation (http:/ / www. devmaster. net/ articles/ bsp-trees/ ) • BSP in 3D space (http:/ / www. euclideanspace. com/ threed/ solidmodel/ spatialdecomposition/ bsp/ index. htm) • A simple, illustrated introduction to using BSPs to create random room layouts (in this case for a dungeon-crawling game) (http:/ / doryen. eptalys. net/ articles/ bsp-dungeon-generation/ ) Bounding interval hierarchy A bounding interval hierarchy (BIH) is a partitioning data structure similar to that of bounding volume hierarchies or kd-trees. Bounding interval hierarchies can be used in high performance (or real-time) ray tracing and may be especially useful for dynamic scenes. The BIH itself is, however, not new. It has been presented earlier under the name of SKD-Trees [1] , presented by Ooi et al., and BoxTrees [2] , independently invented by Zachmann. Overview Bounding interval hierarchies (BIH) exhibit many of the properties of both bounding volume hierarchies (BVH) and kd-trees. Whereas the construction and storage of BIH is comparable to that of BVH, the traversal of BIH resemble that of kd-trees. Furthermore, BIH are also binary trees just like kd-trees (and in fact their superset, BSP trees). Finally, BIH are axis-aligned as are its ancestors. Although a more general non-axis-aligned implementation of the BIH should be possible (similar to the BSP-tree, which uses unaligned planes), it would almost certainly be less desirable due to decreased numerical stability and an increase in the complexity of ray traversal. The key feature of the BIH is the storage of 2 planes per node (as opposed to 1 for the kd tree and 6 for an axis aligned bounding box hierarchy), which allows for overlapping children (just like a BVH), but at the same time featuring an order on the children along one dimension/axis (as it is the case for kd trees). It is also possible to just use the BIH data structure for the construction phase but traverse the tree in a way a traditional axis aligned bounding box hierarchy does. This enables some simple speed up optimizations for large ray bundles [3] while keeping memory/cache usage low. Some general attributes of bounding interval hierarchies (and techniques related to BIH) as described by [4] are: • Very fast construction times • Low memory footprint • Simple and fast traversal • Very simple construction and traversal algorithms • High numerical precision during construction and traversal • Flatter tree structure (decreased tree depth) compared to kd-trees

Binary space partitioning 20<br />

[1] Binary Space Partition Trees in 3d worlds (http:/ / web. cs. wpi. edu/ ~matt/ courses/ cs563/ talks/ bsp/ document. html)<br />

[2] http:/ / www. rothschild. haifa. ac. il/ ~gordon/ ftb-bsp. pdf<br />

External links<br />

• BSP trees presentation (http:/ / www. cs. wpi. edu/ ~matt/ courses/ cs563/ talks/ bsp/ bsp. html)<br />

• Another BSP trees presentation (http:/ / www. cc. gatech. edu/ classes/ AY2004/ cs4451a_fall/ bsp. pdf)<br />

• A Java applet which demonstrates the process of tree generation (http:/ / symbolcraft. com/ <strong>graphics</strong>/ bsp/ )<br />

• A Master Thesis about BSP generating (http:/ / www. gamedev. net/ reference/ programming/ features/ bsptree/<br />

bsp. pdf)<br />

• BSP Trees: Theory and Implementation (http:/ / www. devmaster. net/ articles/ bsp-trees/ )<br />

• BSP in <strong>3D</strong> space (http:/ / www. euclideanspace. com/ threed/ solidmodel/ spatialdecomposition/ bsp/ index. htm)<br />

• A simple, illustrated introduction to using BSPs to create random room layouts (in this case for a<br />

dungeon-crawling game) (http:/ / doryen. eptalys. net/ articles/ bsp-dungeon-generation/ )<br />

Bounding interval hierarchy<br />

A bounding interval hierarchy (BIH) is a partitioning data structure similar to that of bounding volume hierarchies<br />

or kd-trees. Bounding interval hierarchies can be used in high performance (or real-time) ray tracing and may be<br />

especially useful for dynamic scenes.<br />

The BIH itself is, however, not new. It has been presented earlier under the name of SKD-Trees [1] , presented by<br />

Ooi et al., and BoxTrees [2] , independently invented by Zachmann.<br />

Overview<br />

Bounding interval hierarchies (BIH) exhibit many of the properties of both bounding volume hierarchies (BVH) and<br />

kd-trees. Whereas the construction and storage of BIH is comparable to that of BVH, the traversal of BIH resemble<br />

that of kd-trees. Furthermore, BIH are also binary trees just like kd-trees (and in fact their superset, BSP trees).<br />

Finally, BIH are axis-aligned as are its ancestors. Although a more general non-axis-aligned implementation of the<br />

BIH should be possible (similar to the BSP-tree, which uses unaligned planes), it would almost certainly be less<br />

desirable due to decreased numerical stability and an increase in the complexity of ray traversal.<br />

The key feature of the BIH is the storage of 2 planes per node (as opposed to 1 for the kd tree and 6 for an axis<br />

aligned bounding box hierarchy), which allows for overlapping children (just like a BVH), but at the same time<br />

featuring an order on the children along one dimension/axis (as it is the case for kd trees).<br />

It is also possible to just use the BIH data structure for the construction phase but traverse the tree in a way a<br />

traditional axis aligned bounding box hierarchy does. This enables some simple speed up optimizations for large ray<br />

bundles [3] while keeping memory/cache usage low.<br />

Some general attributes of bounding interval hierarchies (and techniques related to BIH) as described by [4] are:<br />

• Very fast construction times<br />

• Low memory footprint<br />

• Simple and fast traversal<br />

• Very simple construction and traversal algorithms<br />

• High numerical precision during construction and traversal<br />

• Flatter tree structure (decreased tree depth) compared to kd-trees

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!