青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Bounding volume

http://en.wikipedia.org/wiki/K-DOP

Bounding volume

From Wikipedia, the free encyclopedia

  (Redirected from K-DOP)
Jump to: navigation, search
A bounding box for a three dimensional model
For building code compliance, see Bounding.

In computer graphics and computational geometry, a bounding volume for a set of objects is a closed volume that completely contains the union of the objects in the set. Bounding volumes are used to improve the efficiency of geometrical operations by using simple volumes to contain more complex objects. Normally, simpler volumes have simpler ways to test for overlap.

A bounding volume for a set of objects is also a bounding volume for the single object consisting of their union, and the other way around. Therefore it is possible to confine the description to the case of a single object, which is assumed to be non-empty and bounded (finite).

Contents

[hide]

[edit] Uses of bounding volumes

Bounding volumes are most often used to accelerate certain kinds of tests.

In ray tracing, bounding volumes are used in ray-intersection tests, and in many rendering algorithms, they are used for viewing frustum tests. If the ray or viewing frustum does not intersect the bounding volume, it cannot intersect the object contained in the volume. These intersection tests produce a list of objects that must be displayed. Here, displayed means rendered or rasterized.

In collision detection, when two bounding volumes do not intersect, then the contained objects cannot collide, either.

Testing against a bounding volume is typically much faster than testing against the object itself, because of the bounding volume's simpler geometry. This is because an 'object' is typically composed of polygons or data structures that are reduced to polygonal approximations. In either case, it is computationally wasteful to test each polygon against the view volume if the object is not visible. (Onscreen objects must be 'clipped' to the screen, regardless of whether their surfaces are actually visible.)

To obtain bounding volumes of complex objects, a common way is to break the objects/scene down using a scene graph or more specifically bounding volume hierarchies like e.g. OBB trees. The basic idea behind this is to organize a scene in a tree-like structure where the root comprises the whole scene and each leaf contains a smaller subpart.

[edit] Common types of bounding volume

The choice of the type of bounding volume for a given application is determined by a variety of factors: the computational cost of computing a bounding volume for an object, the cost of updating it in applications in which the objects can move or change shape or size, the cost of determining intersections, and the desired precision of the intesection test. It is common to use several types in conjunction, such as a cheap one for a quick but rough test in conjunction with a more precise but also more expensive type.

The types treated here all give convex bounding volumes. If the object being bounded is known to be convex, this is not a restriction. If non-convex bounding volumes are required, an approach is to represent them as a union of a number of convex bounding volumes. Unfortunately, intersection tests become quickly more expensive as the bounding boxes become more sophisticated.

A bounding sphere is a sphere containing the object. In 2-D graphics, this is a circle. Bounding spheres are represented by centre and radius. They are very quick to test for collision with each other: two spheres intersect when the distance between their centres does not exceed the sum of their radii. This makes bounding spheres appropriate for objects that can move in any number of dimensions.

A bounding ellipsoid is an ellipsoid containing the object. Ellipsoids usually provide tighter fitting than a sphere. Intersections with ellipsoids are done by scaling the other object along the principal axes of the ellipsoid by an amount equal to the multiplicative inverse of the radii of the ellipsoid, thus reducing the problem to intersecting the scaled object with a unit sphere. Care should be taken to avoid problems if the applied scaling introduces skew. Skew can make the usage of ellipsoids impractical in certain cases, for example collision between two arbitrary ellipsoids.

A bounding cylinder is a cylinder containing the object. In most applications the axis of the cylinder is aligned with the vertical direction of the scene. Cylinders are appropriate for 3-D objects that can only rotate about a vertical axis but not about other axes, and are otherwise constrained to move by translation only. Two vertical-axis-aligned cylinders intersect when, simultaneously, their projections on the vertical axis intersect – which are two line segments – as well their projections on the horizontal plane – two circular disks. Both are easy to test. In video games, bounding cylinders are often used as bounding volumes for people standing upright.

A bounding capsule is a swept sphere (i.e. the volume that a sphere takes as it moves along a straight line segment) containing the object. Capsules can be represented by the radius of the swept sphere and the segment that the sphere is swept across). It has traits similar to a cylinder, but is easier to use, because the intersection test is simpler. A capsule and another object intersect if the distance between the capsule's defining segment and some feature of the other object is smaller than the capsule's radius. For example, two capsules intersect if the distance between the capsules' segments is smaller than the sum of their radii. This holds for arbitrarily rotated capsules, which is why they're more appealing than cylinders in practice.

A bounding box is a cuboid, or in 2-D a rectangle, containing the object. In dynamical simulation, bounding boxes are preferred to other shapes of bounding volume such as bounding spheres or cylinders for objects that are roughly cuboid in shape when the intersection test needs to be fairly accurate. The benefit is obvious, for example, for objects that rest upon other, such as a car resting on the ground: a bounding sphere would show the car as possibly intersecting with the ground, which then would need to be rejected by a more expensive test of the actual model of the car; a bounding box immediately shows the car as not intersecting with the ground, saving the more expensive test.

In many applications the bounding box is aligned with the axes of the co-ordinate system, and it is then known as an axis-aligned bounding box (AABB). To distinguish the general case from an AABB, an arbitrary bounding box is sometimes called an oriented bounding box (OBB). AABBs are much simpler to test for intersection than OBBs, but have the disadvantage that when the model is rotated they cannot be simply rotated with it, but need to be recomputed.

A minimum bounding rectangle or MBR – the least AABB in 2-D – is frequently used in the description of geographic (or "geospatial") data items, serving as a simplified proxy for a dataset's spatial extent (see geospatial metadata) for the purpose of data search (including spatial queries as applicable) and display. It is also a basic component of the R-tree method of spatial indexing.

A discrete oriented polytope (DOP) generalizes the AABB. A DOP is a convex polytope containing the object (in 2-D a polygon; in 3-D a polyhedron), constructed by taking a number of suitably oriented planes at infinity and moving them until they collide with the object. The DOP is then the convex polytope resulting from intersection of the half-spaces bounded by the planes. Popular choices for constructing DOPs in 3-D graphics include the axis-aligned bounding box, made from 6 axis-aligned planes, and the beveled bounding box, made from 10 (if beveled only on vertical edges, say) 18 (if beveled on all edges), or 26 planes (if beveled on all edges and corners). A DOP constructed from k planes is called a k-DOP; the actual number of faces can be less than k, since some can become degenerate, shrunk to an edge or a vertex.

A convex hull is the smallest convex volume containing the object. If the object is the union of a finite set of points, its convex hull is a polytope, and in fact the smallest possible containing polytope.

[edit] Basic intersection checks

For some types of bounding volume (OBB and convex polyhedra), an effective check is that of the separating axis theorem. The idea here is that, if there exists an axis by which the objects do not overlap, then the objects do not intersect. Usually the axes checked are those of the basic axes for the volumes (the unit axes in the case of an AABB, or the 3 base axes from each OBB in the case of OBBs). Often, this is followed by also checking the cross-products of the previous axes (one axis from each object).

In the case of an AABB, this tests becomes a simple set of overlap tests in terms of the unit axes. For an AABB defined by M,N against one defined by O,P they do not intersect if (Mx>Px) or (Ox>Nx) or (My>Py) or (Oy>Ny) or (Mz>Pz) or (Oz>Nz).

An AABB can also be projected along an axis, for example, if it has edges of length L and is centered at C, and is being projected along the axis N:
, and or , and where m and n are the minimum and maximum extents.

An OBB is similar in this respect, but is slightly more complicated. For an OBB with L and C as above, and with I, J, and K as the OBB's base axes, then:

For the ranges m,n and o,p it can be said that they do not intersect if m>p or o>n. Thus, by projecting the ranges of 2 OBBs along the I, J, and K axes of each OBB, and checking for non-intersection, it is possible to detect non-intersection. By additionally checking along the cross products of these axes (I0×I1, I0×J1, ...) one can be more certain that intersection is impossible.

This concept of determining non-intersection via use of axis projection also extends to convex polyhedra, however with the normals of each polyhedral face being used instead of the base axes, and with the extents being based on the minimum and maximum dot products of each vertex against the axes. Note that this description assumes the checks are being done in world space.

[edit] See also

[edit] External links

posted on 2008-11-22 19:35 zmj 閱讀(1478) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人在线免费观看| 欧美在线视频导航| 亚洲精品在线视频| 影音先锋久久精品| 在线激情影院一区| 亚洲国产三级| 一区二区三区导航| 99精品国产在热久久| 亚洲国产天堂久久综合网| 亚洲欧洲日本国产| 国产精品99久久久久久白浆小说| 99re在线精品| 亚洲一区二区三区精品视频| 亚洲午夜精品17c| 午夜伦理片一区| 久久久久**毛片大全| 免费在线播放第一区高清av| 亚洲国产精品尤物yw在线观看 | 久久精品一本久久99精品| 久久精品国产999大香线蕉| 老司机午夜精品视频在线观看| 欧美国产激情| 国产亚洲激情| 99国产精品一区| 久久精品国产精品亚洲综合| 欧美大片在线观看一区| 99视频精品全国免费| 久久xxxx精品视频| 欧美成人精品一区| 亚洲视频一区二区免费在线观看| 一区二区三区四区国产精品| 欧美自拍偷拍| 欧美日一区二区三区在线观看国产免 | 国产欧美在线播放| 亚洲黄色影院| 性欧美18~19sex高清播放| 久久亚洲国产成人| 亚洲午夜高清视频| 欧美不卡在线视频| 在线国产精品播放| 久久亚洲影院| 久久精品国产亚洲aⅴ| 美女图片一区二区| 免费观看日韩| 国一区二区在线观看| 亚洲精品四区| 亚洲国产导航| 另类亚洲自拍| 久久深夜福利免费观看| 欧美午夜不卡| 亚洲韩日在线| 国产精品揄拍一区二区| 亚洲精品色图| 国产日韩专区| 在线亚洲伦理| 亚洲高清不卡在线观看| 99精品视频一区| 亚洲国产经典视频| 国产午夜亚洲精品不卡| 国产视频久久久久| 亚洲开发第一视频在线播放| 欧美一区二区免费观在线| 午夜精品久久久久久| 欧美成人一区二区三区在线观看 | 亚洲视频一区二区| 欧美激情国产高清| 免费黄网站欧美| 在线观看亚洲精品视频| 麻豆91精品91久久久的内涵| 亚洲美女黄色| 男男成人高潮片免费网站| 亚洲大胆在线| 欧美+日本+国产+在线a∨观看| 日韩视频不卡| 美女脱光内衣内裤视频久久网站| 美女成人午夜| 欧美有码在线视频| 久久久另类综合| 国产九九视频一区二区三区| 亚洲网站视频| 国产精品99久久久久久宅男| 欧美视频一区二区在线观看 | 在线观看欧美成人| 久久婷婷国产综合精品青草| 久久午夜羞羞影院免费观看| 亚洲东热激情| 亚洲人成小说网站色在线| 欧美激情片在线观看| 亚洲调教视频在线观看| 亚洲一区999| 精品福利电影| 亚洲国产成人av| 欧美日韩中文字幕精品| 西瓜成人精品人成网站| 欧美一区二区三区日韩| 激情欧美亚洲| 亚洲人成在线观看一区二区| 国产精品av免费在线观看| 久久九九精品99国产精品| 狂野欧美一区| 亚洲欧美三级在线| 久久久久久久久久久一区| 99爱精品视频| 欧美一区二区高清在线观看| 亚洲美女视频| 欧美一区二区久久久| 夜久久久久久| 欧美与黑人午夜性猛交久久久| 亚洲欧洲日本专区| 亚洲免费一在线| 亚洲精品裸体| 欧美伊久线香蕉线新在线| 一区二区精品在线| 久久久不卡网国产精品一区| 亚洲一线二线三线久久久| 久久青青草原一区二区| 亚洲欧美日韩视频二区| 免费久久久一本精品久久区| 性久久久久久久久久久久| 免费黄网站欧美| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品不卡在线| 欧美激情精品久久久久久免费印度| 国产精品视频专区| 亚洲人屁股眼子交8| 亚洲一区中文| 亚洲国产精品视频| 国内精品模特av私拍在线观看| 亚洲美女网站| 1000部精品久久久久久久久| 羞羞色国产精品| 亚洲视频网在线直播| 欧美精品日韩精品| 蜜臀91精品一区二区三区| 国产日本欧美一区二区| 亚洲午夜性刺激影院| 亚洲香蕉成视频在线观看| 欧美二区视频| 欧美成人精品三级在线观看 | 欧美另类videos死尸| 欧美不卡视频一区发布| 韩国一区二区在线观看| 欧美一区二区免费| 久久精品一区二区三区不卡牛牛| 国产精品国产三级国产普通话99| 99精品国产福利在线观看免费| 亚洲美女电影在线| 欧美日韩国产美女| 亚洲国产欧美久久| 一区二区日韩伦理片| 欧美精品日韩精品| 日韩系列在线| 亚洲欧美日韩天堂| 国产免费亚洲高清| 欧美一级黄色网| 女人香蕉久久**毛片精品| 亚洲国产欧美在线人成| 欧美精品不卡| av成人福利| 欧美中文字幕视频| 在线播放中文一区| 亚洲欧美日韩一区二区三区在线| 欧美色大人视频| 亚洲女人av| 欧美成人久久| av不卡免费看| 国产日韩欧美成人| 久久人人超碰| 99国产精品国产精品久久| 亚洲欧美日韩专区| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品久久91| 欧美专区一区二区三区| 亚洲国产精品成人一区二区| 一二三区精品| 国产一区二区看久久| 欧美91精品| 性欧美1819sex性高清| 欧美xart系列在线观看| 亚洲免费网站| 亚洲国产欧美一区| 国产精品99一区二区| 久久久99精品免费观看不卡| 亚洲毛片一区二区| 久久久久综合| 国产精品a久久久久久| 久久精品国产欧美亚洲人人爽| 亚洲国产精品久久久久秋霞不卡 | 亚洲自拍16p| 免费成人高清视频| 亚洲视频电影图片偷拍一区| 韩国三级在线一区| 9国产精品视频| 女仆av观看一区| 久久精品成人一区二区三区| 亚洲精品一区二区三区四区高清| 国产亚洲精品一区二区| 欧美三级中文字幕在线观看| 裸体一区二区| 亚洲欧美国产视频|