请输入您要查询的百科知识:

 

词条 Space partitioning
释义

  1. Overview

  2. Uses

      In computer graphics    In integrated circuit design    In probability and statistical learning theory  

  3. Data structures

  4. Number of components

  5. See also

  6. References

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.

Overview

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.

Uses

In computer graphics

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.[1][2][3]

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.

In integrated circuit design

In integrated circuit design, an important step is design rule check. This step ensures that the completed design is manufacturable. The check involves rules that specify widths and spacings and other geometry patterns. A modern design can have billions of polygons that represent wires and transistors. Efficient checking relies heavily on geometry query. For example, a rule may specify that any polygon must be at least n nanometers from any other polygon. This is converted into a geometry query by enlarging a polygon by n/2 at all sides and query to find all intersecting polygons.

In probability and statistical learning theory

The number of components in a space partition plays a central role in some results in probability theory. See Growth function for more details.

Data structures

Common space-partitioning systems include:

  • BSP trees;
  • Quadtrees;
  • Octrees;
  • k-d trees;
  • Bins;
  • R-trees;
  • Bounding volume hierarchies.

Number of components

Suppose the n-dimensional Euclidean space is partitioned by hyperplanes that are -dimensional. What is the number of components in the partition? The largest number of components is attained when the hyperplanes are in general position, i.e, no two are parallel and no three have the same intersection. Denote this maximum number of components by . Then, the following recurrence relation holds:

[4][5]

- when there are no dimensions, there is a single point.

- when there are no hyperplanes, all the space is a single component.

And its solution is:

if

if

(consider e.g. perpendicular hyperplanes; each additional hyperplane divides each existing component to 2).

which is upper-bounded as:

See also

  • Polygon partition
  • Binary space partitioning

References

1. ^{{cite journal | url = https://dip.felk.cvut.cz/browse/pdfcache/nikodtom_2010bach.pdf | title = Ray Tracing Algorithm For Interactive Applications | author = Tomas Nikodym | journal = Czech Technical University, FEE | year = 2010 }}
2. ^{{cite journal | citeseerx = 10.1.1.108.8495 | title = State of the Art in Ray Tracing Animated Scenes | author = Ingo Wald, William R. Mark| journal = EUROGRAPHICS | year = 2007|display-authors=etal}}
3. ^Ray Tracing - Auxiliary Data Structures
4. ^{{Cite Vapnik Chervonenkis|pages=266}}
5. ^See also detailed discussions and explanations on the case n=2and the general case.See also {{cite journal|doi=10.1137/0114068|title=Partitions of N-Space by Hyperplanes|journal=SIAM Journal on Applied Mathematics|volume=14|issue=4|pages=811|year=1966|last1=Winder|first1=R. O.}}.

2 : Computer graphics|Geometric algorithms

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/11 13:39:08