About: Binary space partitioning is a research topic. Over the lifetime, 286 publications have been published within this topic receiving 7963 citations. The topic is also known as: BSP.
TL;DR: A new algorithm for solving the hidden surface (or line) problem is described, to more rapidly generate realistic images of 3-D scenes composed of polygons, and the development of theoretical foundations in the area are presented.
Abstract: This paper describes a new algorithm for solving the hidden surface (or line) problem, to more rapidly generate realistic images of 3-D scenes composed of polygons, and presents the development of theoretical foundations in the area as well as additional related algorithms. As in many applications the environment to be displayed consists of polygons many of whose relative geometric relations are static, we attempt to capitalize on this by preprocessing the environment's database so as to decrease the run-time computations required to generate a scene. This preprocessing is based on generating a “binary space partitioning” tree whose in order traversal of visibility priority at run-time will produce a linear order, dependent upon the viewing position, on (parts of) the polygons, which can then be used to easily solve the hidden surface problem. In the application where the entire environment is static with only the viewing-position changing, as is common in simulation, the results presented will be sufficient to solve completely the hidden surface problem.
TL;DR: In this paper, a new approach for automatic extraction of building footprints in a combination of the IKONOS imagery with pan-sharpened multi-spectral bands and the low-sampled (∼0.1 points/m 2 ) airborne laser scanning data acquired from the Optech's 1020 ALTM (Airborne Laser Terrain Mapper).
TL;DR: This chapter discusses the design and implementation of the GJK Algorithm, which automates the very labor-intensive and therefore time-heavy and expensive process of manually partitioning polytopes into discrete components.
Abstract: 1 Introduction 1.1 Problem Domain 1.2 Historical Background 1.3 Organization 2 Concepts 2.1 Geometry 2.1.1 Notational Conventions 2.1.2 Vector Spaces 2.1.3 Affine Spaces 2.1.4 Euclidean Spaces 2.1.5 Affine Transformations 2.1.6 Three-dimensional Space 2.2 Objects 2.2.1 Polytopes 2.2.2 Polygons 2.2.3 Quadrics 2.2.4 Minkowski Addition 2.2.5 Complex Shapes and Scenes 2.3 Animation 2.4 Time 2.5 Response 2.6 Performance 2.6.1 Frame Coherence 2.6.2 Geometric Coherence 2.6.3 Average Time 2.7 Robustness 2.7.1 Floating-Point Numbers 2.7.2 Stability 2.7.3 Coping with Numerical Problems 3 Basic Primitives 3.1 Spheres 3.1.1 Sphere-Sphere Test 3.1.2 Ray-Sphere Test 3.1.3 Line-Segment-Sphere Test 3.2 Axis-Aligned Boxes 3.2.1 Ray-Box Test 3.2.2 Sphere-Box Test 3.3 Separating Axes 3.3.1 Line-Segment-Box Test 3.3.2 Triangle-Box Test 3.3.3 Box-Box Test 3.4 Polygons 3.4.1 Ray-Triangle Test 3.4.2 Line Segment-Triangle Test 3.4.3 Ray-Polygon Test 3.4.4 Triangle-Triangle Test 3.4.5 Polygon-Polygon Test 3.4.6 Triangle-Sphere Test 3.4.7 Polygon-Volume Tests 4 Convex Objects 4.1 Proximity Queries 4.2 Overview of Algorithms for Polytopes 4.2.1 Finding a Common Point 4.2.2 Finding a Separating Plane 4.2.3 Distance and Penetration Depth Computation 4.3 The Gilbert-Johnson-Keerthi Algorithm 4.3.1 Overview 4.3.2 Convergence and Termination 4.3.3 Johnson's Distance Algorithm 4.3.4 Support Mappings 4.3.5 Implementing the GJK Algorithm 4.3.6 Numerical Aspects of the GJK Algorithm 4.3.7 Testing for Intersections 4.3.8 Penetration Depth 5 Spatial Data Structures 5.1 Nonconvex Polyhedra 5.1.1 Convex Decomposition 5.1.2 Polyhedral Surfaces 5.1.3 Point in Nonconvex Polyhedron 5.2 Space Partitioning 5.2.1 Voxel Grids 5.2.2 Octrees and k-d Trees 5.2.3 Binary Space Partitioning Trees 5.2.4 Discussion 5.3 Model Partitioning 5.3.1 Bounding Volumes 5.3.2 Bounding-Volume Hierarchies 5.3.3 AABB Trees versus OBB Trees 5.3.4 AABB Trees and Deformable Models 5.4 Broad Phase 5.4.1 Sweep and Prune 5.4.2 Implementing the Sweep-and-Prune Algorithm 5.4.3 Ray Casting and AABBs 6 Design of SOLID 6.1 Requirements 6.2 Overview of SOLID 6.3 Design Decisions 6.3.1 Shape Representation 6.3.2 Motion Specification 6.3.3 Response Handling 6.3.4 Algorithms 6.4 Evaluation 6.5 Implementation Notes 6.5.1 Generic Data Types and Algorithms 6.5.2 Fundamental 3D Classes 7 Conclusion 7.1 State of the Art 7.2 Future Work Bibliography Index About the CD-ROM Trademarks
TL;DR: A new representation for polyhedra is introduced by showing how Binary Space Partitioning Trees (BSP trees) can be used to represent regular sets and modified to represent the result of a set operation between the BSP tree and a B-rep.
Abstract: We introduce a new representation for polyhedra by showing how Binary Space Partitioning Trees (BSP trees) can be used to represent regular sets. We then show how they may be used in evaluating set operations on polyhedra. The BSP tree is a binary tree representing a recursive partitioning of d-space by (sub-)hyperplanes, for any dimension d. Their previous application to computer graphics has been to organize an arbitrary set of polygons so that a fast solution to the visible surface problem could be obtained. We retain this property (in 3D) and show how BSP trees can also provide an exact representation of arbitrary polyhedra of any dimension. Conversion from a boundary representation (B-reps) of polyhedra to a BSP tree representation is described. This technique leads to a new method for evaluating arbitrary set theoretic (boolean) expressions on B-reps, represented as a CSG tree, producing a BSP tree as the result. Results from our language-driven implmentation of this CSG evaluator are discussed. Finally, we show how to modify a BSP tree to represent the result of a set operation between the BSP tree and a B-rep. We describe the embodiment of this approach in an interactive 3D object design program that allows incremental modification of an object with a tool. Placement of the tool, selection of views, and performance of the set operation are all performed at interactive speeds for modestly complex objects.
TL;DR: BSP-Net as mentioned in this paper learns to represent a 3D shape via convex decomposition, which can be used to generate polygonal meshes without any need for iso-surfacing.
Abstract: Polygonal meshes are ubiquitous in the digital 3D domain, yet they have only played a minor role in the deep learning revolution. Leading methods for learning generative models of shapes rely on implicit functions, and generate meshes only after expensive iso-surfacing routines. To overcome these challenges, we are inspired by a classical spatial data structure from computer graphics, Binary Space Partitioning (BSP), to facilitate 3D learning. The core ingredient of BSP is an operation for recursive subdivision of space to obtain convex sets. By exploiting this property, we devise BSP-Net, a network that learns to represent a 3D shape via convex decomposition. Importantly, BSP-Net is unsupervised since no convex shape decompositions are needed for training. The network is trained to reconstruct a shape using a set of convexes obtained from a BSP-tree built on a set of planes. The convexes inferred by BSP-Net can be easily extracted to form a polygon mesh, without any need for iso-surfacing. The generated meshes are compact (i.e., low-poly) and well suited to represent sharp geometry; they are guaranteed to be watertight and can be easily parameterized. We also show that the reconstruction quality by BSP-Net is competitive with state-of-the-art methods while using much fewer primitives. Code is available at https://github.com/czq142857/BSP-NET-original.