Are you an EPFL student looking for a semester project?
Work with us on data science and visualisation projects, and deploy your project as an app on top of Graph Search.
In geometry, space partitioning is the process of dividing a space (usually a Euclidean space) into two or more disjoint subsets (see also partition of a set). In other words, space partitioning divides a space into non-overlapping regions. Any point in the space can then be identified to lie in exactly one of the regions. Space-partitioning systems are often hierarchical, meaning that a space (or a region of space) is divided into several regions, and then the same space-partitioning system is recursively applied to each of the regions thus created. The regions can be organized into a tree, called a space-partitioning tree. Most space-partitioning systems use planes (or, in higher dimensions, hyperplanes) to divide space: points on one side of the plane form one region, and points on the other side form another. Points exactly on the plane are usually arbitrarily assigned to one or the other side. Recursively partitioning space using planes in this way produces a BSP tree, one of the most common forms of space partitioning. Space partitioning is particularly important in computer graphics, especially heavily used in ray tracing, where it is frequently used to organize the objects in a virtual scene. A typical scene may contain millions of polygons. Performing a ray/polygon intersection test with each would be a very computationally expensive task. Storing objects in a space-partitioning data structure (k-d tree or BSP tree for example) makes it easy and fast to perform certain kinds of geometry queries—for example in determining whether a ray intersects an object, space partitioning can reduce the number of intersection test to just a few per primary ray, yielding a logarithmic time complexity with respect to the number of polygons. Space partitioning is also often used in scanline algorithms to eliminate the polygons out of the camera's viewing frustum, limiting the number of polygons processed by the pipeline. There is also a usage in collision detection: determining whether two objects are close to each other can be much faster using space partitioning.
Jian Wang, Matthias Finger, Lesya Shchutska, Qian Wang, Matthias Wolf, Varun Sharma, Konstantin Androsov, Jan Steggemann, Leonardo Cristella, Xin Chen, Davide Di Croce, Mingkui Wang, João Miguel das Neves Duarte, Tagir Aushev, Tian Cheng, Yixing Chen, Werner Lustermann, Andromachi Tsirou, Alexis Kalogeropoulos, Andrea Rizzi, Ioannis Papadopoulos, Paolo Ronchese, Thomas Muller, Ho Ling Li, Giuseppe Codispoti, Hua Zhang, Siyuan Wang, Peter Hansen, Daniel Gonzalez, Tao Huang, David Vannerom, Michele Bianco, Kun Shi, Wei Shi, Abhisek Datta, Ji Hyun Kim, Donghyun Kim, Dipanwita Dutta, Zheng Wang, Sanjeev Kumar, Wei Li, Yong Yang, Geng Chen, Yi Wang, Ajay Kumar, Ashish Sharma, Georgios Anagnostou, Joao Varela, Csaba Hajdu, Muhammad Ahmad, Ekaterina Kuznetsova, Ioannis Evangelou, Matthias Weber, Muhammad Shoaib, Milos Dordevic, Vineet Kumar, Vladimir Petrov, Francesco Fiori, Quentin Python, Meng Xiao, Hao Liu, Sourav Sen, Yanlin Liu, Viktor Khristenko, Marco Trovato, Fan Xia, Xiao Wang, Bibhuprasad Mahakud, Jing Li, Rajat Gupta, Zhen Liu, Lei Feng, Muhammad Waqas, Hui Wang, Seungkyu Ha, Davide Cieri, Maren Tabea Meinhard, Giorgia Rauco, Ali Harb, Benjamin William Allen, Long Wang, Pratyush Das, Miao Hu, Lei Li