3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository 3D graphics eBook - Course Materials Repository
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
- Page 1 and 2: 3D Rendering PDF generated using th
- Page 3 and 4: Image-based lighting 64 Image plane
- Page 5 and 6: References Article Sources and Cont
- Page 7 and 8: 3D rendering 2 Non real-time Animat
- Page 9 and 10: 3D rendering 4 The shaded three-dim
- Page 11 and 12: Ambient occlusion 6 ambient occlusi
- Page 13 and 14: Ambient occlusion 8 • ShadeVis (h
- Page 15 and 16: Anisotropic filtering 10 will only
- Page 17 and 18: Beam tracing 12 Beam tracing Beam t
- Page 19 and 20: Bilinear filtering 14 Are all true.
- Page 21 and 22: Binary space partitioning 16 togeth
- Page 23: Binary space partitioning 18 Other
- Page 27 and 28: Bounding interval hierarchy 22 Prop
- Page 29 and 30: Bounding volume 24 bounding boxes b
- Page 31 and 32: Bump mapping 26 Bump mapping Bump m
- Page 33 and 34: CatmullClark subdivision surface 28
- Page 35 and 36: CatmullClark subdivision surface 30
- Page 37 and 38: Conversion between quaternions and
- Page 39 and 40: Cube mapping 34 Advantages Cube map
- Page 41 and 42: Cube mapping 36 Related A large set
- Page 43 and 44: Diffuse reflection 38 2), or, of co
- Page 45 and 46: Displacement mapping 40 Meaning of
- Page 47 and 48: DooSabin subdivision surface 42 Ext
- Page 49 and 50: False radiosity 44 False radiosity
- Page 51 and 52: Geometry pipelines 46 Geometry pipe
- Page 53 and 54: Global illumination 48 Rendering wi
- Page 55 and 56: Gouraud shading 50 Gouraud shading
- Page 57 and 58: Graphics pipeline 52 Graphics pipel
- Page 59 and 60: Graphics pipeline 54 References 1.
- Page 61 and 62: Hidden surface determination 56 imp
- Page 63 and 64: High dynamic range rendering 58 Hig
- Page 65 and 66: High dynamic range rendering 60 Ton
- Page 67 and 68: High dynamic range rendering 62 Fro
- Page 69 and 70: High dynamic range rendering 64 •
- Page 71 and 72: Irregular Z-buffer 66 Applications
- Page 73 and 74: Lambert's cosine law 68 than would
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