US20080186312A1 - Method, medium and apparatus detecting model collisions - Google Patents
Method, medium and apparatus detecting model collisions Download PDFInfo
- Publication number
- US20080186312A1 US20080186312A1 US12/003,771 US377107A US2008186312A1 US 20080186312 A1 US20080186312 A1 US 20080186312A1 US 377107 A US377107 A US 377107A US 2008186312 A1 US2008186312 A1 US 2008186312A1
- Authority
- US
- United States
- Prior art keywords
- collide
- primitives
- model
- time
- model primitives
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 239000002775 capsule Substances 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 48
- 230000008901 benefit Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Definitions
- One or more embodiments of the present invention relate to collision detection, and more particularly, to a method, medium and apparatus detecting collisions between models included in a scene.
- a conventional model collision detection apparatus determines whether models collide with each other, and recognizes a collision between the models if it is determined that the models do collide with each other.
- Such a model collision detection apparatus has to quickly detect collisions between models without missing any collisions, regardless of when the collisions might occur.
- a model collision detection apparatus included in a system executing the 3D racing game has to quickly detect such a collision without missing it.
- a conventional model collision detection apparatus determines whether such a collision occurs at one or more predetermined collision check times. Accordingly, the conventional model collision detection apparatus cannot recognize a collision if the collision occurs at a time which does not fall within the predetermined collision check times. As a result, a problem exists in that the conventional model collision detection apparatus may fail to recognize the collision when the collision occurs at a time that is not a predetermined collision check time.
- the conventional model collision detection apparatus determines whether models collide with each other by detecting whether parts of the models overlap, the examination takes a long time to perform as the shapes of the models are complicated. As a result, the conventional model collision detection apparatus cannot quickly examine whether models collide with each other, particularly when the complexity of the shape of a model is high.
- One or more embodiments of the present invention provide a model collision detection method capable of quickly examining whether models collide with each other, and recognizing the collision between the models regardless of whether the collision between the models occur at a predetermined collision check time.
- One or more embodiments of the present invention also provide a model collision detection apparatus capable of quickly examining whether models collide with each other, and recognizing the collision between the models regardless of whether the collision between the models occur at a predetermined collision check time.
- One or more embodiments of the present invention provide a computer-readable recording medium capable of quickly examining whether models collide with each other, and recognizing the collision between the models regardless of whether the collision between the models occur at a predetermined collision check time.
- embodiments of the present invention include a method of determining whether models enveloped by model primitives collide with each other.
- the method includes determining whether the model primitives collide with each other at a current time, determining whether paths reflecting movement of the model primitives between the current time and a previous time overlap each other when the model primitives do not collide with each other at the current time, determining whether the model primitives collide with each other at an arbitrary time between the current time and the previous time when the path primitives overlap each other, and recognizing that the models collide with each other at the arbitrary time when the model primitives collide with each other at the arbitrary time.
- embodiments of the present invention include an apparatus for determining whether models enveloped by model primitives collide with each other.
- the apparatus includes, a first examination unit to determine whether the model primitives each collide with each other at a current time and to generate a first control signal corresponding to a result of the determination of whether the model primitives collide with each other at the current time, a second examination unit to determine whether paths reflecting movement of the model primitives between the current time and a previous time overlap each other in response to the first control signal and generating a second control signal corresponding to a result of the determination of whether the paths overlap each other, the first examination unit determining whether the model primitives collide with each other at an arbitrary time between the current time and the previous time in response to the second control signal and generating a third control signal corresponding to a result of the determination of whether the model primitives collide with each other at the arbitrary time, and a collision recognizing unit to recognize that the models collide with each other in response to at least one of the
- embodiments of the present invention include a method of determining whether models enveloped by model primitives collide with each other.
- the method includes determining whether the model primitives collide with each other at a current time, generating path primitives that envelop paths of the model primitives when the model primitives do not collide with each other at the current time, the paths reflecting movement of the model primitives between the current time and a previous time, determining whether the model primitives collide with each other at an arbitrary time between the current time and the previous time when the path primitives overlap each other, and recognizing that the models collide with each other at the current time when the model primitives collide with each other at the current time and recognizing that the models collide with each other at the arbitrary time when the model primitives collide with each other at the arbitrary time.
- embodiments of the present invention include an apparatus for determining whether models enveloped by model primitives collide with each other.
- the apparatus includes a first examination unit to determine whether the model primitives each collide with each other at a current time and to generate a first control signal corresponding to a result of the determination of whether the model primitives collide with each other at the current time, a path primitive generating unit to generate path primitives that envelop paths of the model primitives when the model primitives do not collide with each other at the current time, the paths reflecting movement of the model primitives between the current time and a previous time, a second examination unit to determine whether the path primitives overlap each other in response to the first control signal and generating a second control signal corresponding to a result of the determination of whether the path primitives overlap each other, the first examination unit to determine whether the model primitives collide with each other at an arbitrary time between the current time and a previous time in response to the second control signal and generating a third control signal corresponding to
- FIG. 1 explains a scene, objects, and a background
- FIG. 2 illustrates a model collision detection apparatus, according to an embodiment of the present invention
- FIGS. 3A through 4 explain the operation of a model primitive generating unit illustrated in FIG. 2 ;
- FIG. 5 explains the operations of a scene dividing unit and a search unit illustrated in FIG. 2 ;
- FIGS. 6A through 8C explain the operations of a first detecting unit and a second detecting unit illustrated in FIG. 2 ;
- FIG. 9 illustrates a model collision detection method, according to an embodiment of the present invention.
- FIG. 1 explains a scene 100 , including objects 110 , 120 , 130 , and 140 , and a background 150 .
- the scene 100 refers to a three-dimensional space in which information that is to be rendered may be contained.
- the scene 100 may include one or more objects, such as objects 110 , 120 , 130 , and 140 , and background 150 , for example.
- objects 110 , 120 , 130 , or 140 may be static objects such as a tree 110 or a house 120 , or may be dynamic objects such as a moving person 130 or a moving car 140 .
- the background 150 typically refers to a setting (for example, the sky or ground) at which the objects 110 , 120 , 130 , or 140 may be positioned.
- the locations of the dynamic objects 130 and 140 may change with the passage of time.
- models may collide with each other.
- model may mean object 110 , 120 , 130 , or 140 , or may mean background 150 . That is, the collision may occur between objects 110 , 120 , 130 , and 140 , or between one or more objects and the background 150 .
- FIG. 2 illustrates a model collision detection apparatus, according to an embodiment of the present invention.
- the model collision detection apparatus may include, for example, a model primitive generating unit 210 , a scene dividing unit 220 , a search unit 230 , a first examination unit 240 , a collision recognizing unit 250 , a path primitive generating unit 260 , and a second examination unit 270 .
- the model primitive generating unit 210 may receive a scene through an input terminal “IN,” and may generate a primitive (hereinafter, referred to as a model primitive) for each model included in the scene.
- a primitive hereinafter, referred to as a model primitive
- the term “primitive” may refer to an “object for enveloping”. That is, the term “model primitive” may refer to an object for enveloping a model.
- the primitive typically has a predetermined shape.
- the model primitive may have a shape of an object having a minimum volume among objects which can envelope the corresponding model.
- the scene dividing unit 220 may receive the scene through the input terminal IN, and divide the scene into a plurality of voxels.
- the scene generally has a voxel structure, with each of the voxels generally having the same size and volume.
- the scene dividing unit 220 may generate a plurality of voxels each of which may have a volume obtained by multiplying an average volume of all model primitives included in the scene by a predetermined value (for example, 4).
- the scene received through the input terminal IN is updated with the passage of time, but in an embodiment it is preferable that the model primitive generating unit 210 and the scene dividing unit 220 operate one time. That is, in an embodiment it is preferable that, if model primitives have been generated in advance for all models included in the scene received through the input terminal IN, the primitive generating unit 210 does not operate any more. Likewise, in an embodiment it is preferable that, if the scene received through the input terminal IN has been divided in advance into a plurality of voxels, the scene dividing unit 220 does not operate any more.
- the remaining components (that is, the search unit 230 through the second examination unit 270 ) of the model collision detection apparatus may operate with respect to a scene, at every predetermined collision checking time (for example, t 0 , t 1 , t 2 , t 3 , t 4 , t 5 , . . . ).
- a current time and “a previous time” generally denote two collision checking times that are adjacent in time with respect to each other.
- “a current time” and “a previous time” may be “t1” and “t0” respectively, “t3” and “t2” respectively, or “t4” and “t3” respectively.
- a current time” and “a previous time” are “t2” and “t1” respectively.
- the search unit 230 may search for at least one voxel in which model primitives may collide with each other at a current time t 2 , among the voxels constructing the scene.
- the search unit 230 may search for at least one voxel in which a plurality of model primitives exist, among voxels constructing a scene at a current time t 2 .
- the model primitives that exist in the voxel may be model primitives that are entirely included in the voxel, or model primitives having parts laid across the voxel, e.g., having only a portion of the model primitive included in the voxel.
- the model collision detection apparatus may operate according to a simple detection mode, or according to a full detection mode.
- the first examination unit 240 through the second examination unit 270 generally operate as follows.
- the first examination unit 240 may determine whether model primitives collide with each other for each voxel searched for by the search unit 230 .
- the first examination unit 240 may output the result of the determination as a first control signal to the collision recognizing unit 250 , or to the path primitive generating unit 260 and the second examination unit 270 .
- the first examination unit 240 may determine whether the model primitives collide with each other, e.g., using location information of the model primitives. For example, if the volume of a space shared by model primitives exceeds a predetermined threshold value, it may be determined that a collision has occurred between the model primitives.
- the collision recognizing unit 250 may recognize collisions between models corresponding to the model primitives, in response to the first control signal.
- the collision recognizing unit 250 generally operates only when the first control signal indicates that model primitives collide with each other at a current time, e.g., t 2 . That is, if the first examination unit 240 determines that the model primitives collide with each other at the current time t 2 , the collision recognizing unit 250 may recognize that models corresponding to the model primitives collide with each other at the current time t 2 . As such, since collisions between models may be determined by detecting collision between model primitives, collision between models may be quickly detected.
- the path primitive generating unit 260 may generate path primitives each of which is an object for enveloping each of paths between the current time t 2 and the previous time t 1 , for the models, in response to the first control signal, and output the path primitives to the second examination unit 270 .
- the path primitive generating unit 260 operates only when the first control signal indicates that the model primitive do not collide with each other at the current time t 2 . That is, if the first examination unit 240 determines that the model primitives do not collide with each other at the current time t 2 , the path primitive generating unit 260 may generate a path primitive for a path between the current time t 2 and the previous time t 1 , with respect to each model primitive.
- the second examination unit 270 may determine whether the path primitives overlap each other, in response to the first control signal, and output the result of the determination as a second control signal to the first examination unit 240 .
- the second examination unit 270 generally operates only when the first control signal indicates that the model primitives do not collide with each other at the current time t 2 . That is, if the first examination unit 240 determines that the model primitives do not collide with each other at the current time t 2 , the second examination unit 270 may determine whether the path primitives overlap each other.
- the second examination unit 270 may determine that although the model primitives do not collide with each other at the current time t 2 , the model primitives may potentially collide with each other at an arbitrary time, e.g., between the current time t 2 and the previous time t 1 . Meanwhile, if the path primitives do not overlap each other, the second examination unit 270 may determine that the model primitives neither collide with each other at the current time t 2 , nor at any time between the current time t 2 and the previous time t 1 .
- the first examination unit 240 may determine whether the model primitives collide with each other at an arbitrary time t′ between the current time t 2 and the previous time t 1 , in response to the second control signal, and may output the result of the determination as a third control signal to the collision recognition unit 250 , wherein, as an example, t′ may be (t 1 +t 2 )/2.
- the collision recognizing unit 250 may determine that the models corresponding to the model primitives collide with each other at the arbitrary time t′, in response to the third control signal.
- the first examination unit 240 may determine whether the model primitives collide with each other at a different arbitrary time t′′ between the current time t 2 and the previous time t 1 , and output the result of the determination as a third control signal to the collision recognizing unit 250 , wherein, as examples, t′′ can be (t 1 +t′)/2 or (t′+t 2 )/2.
- the collision recognition unit 250 may recognize that models corresponding to the model primitives collide with each other at the different arbitrary time t′′, in response to the third control signal.
- the first examination unit 240 may determine whether the model primitives collide with each other at another different arbitrary time t′′′ between the current time t 2 and the previous time t 1 , and may output the result of the determination as a third control signal to the collision recognizing unit 250 , wherein t′′′ can be (t 1 +t′′)/2.
- the first examination unit 240 may determine whether the model primitives collide with each other at an arbitrary time between the current time t 1 and the previous time t 2 . Further, the first examination unit 240 may repeatedly determine (for a predetermined quantity of times) whether the model primitives collide with each other at an arbitrary time between the current time and the previous time, while changing a value of the arbitrary time, until it is determined that the model primitives collide with each other at the arbitrary time between the current time and the previous time.
- the quantity of times may be set below a predetermined threshold value.
- the path primitive generating unit 260 and the second examination unit 270 generally do not operate, and the first examination unit 240 and the collision recognizing unit 250 operate as follows.
- the first examination unit 240 may determine whether the model primitives collide with each other at the current time t 2 , for each voxel searched for by the search unit 230 , and may output the result of the determination as a first control signal to the collision recognizing unit 250 . At this time, the first examination unit 240 may determine whether the model primitives collide with each other, using location information of the model primitives.
- the first examination unit 240 may determine that the model primitives do not collide with each other at the current point t 2 , the first examination unit 240 generally does not output the first control signal to the path primitive generating unit 260 and the second examination unit 270 . Accordingly, when the model collision detection apparatus operates according to a simple detection mode, the path primitive generating unit 260 and the second examination unit 270 generally do not operate. As a result, when the first examination unit 240 operates according to a simple detection mode, the second control signal generally is not input to the first examination unit 240 , and accordingly, the first examination unit 240 generally does not output the third control signal.
- the collision recognizing unit 250 may recognizes a collision between the corresponding models, in response to the first control signal.
- the collision recognizing unit 250 may operate only when it receives the first control signal indicating that the model primitives collide with each other at the current time t 2 . That is, if the first examination unit 240 determines that the model primitives collide with each other at the current time t 2 , the collision recognizing unit 250 may recognize a collision between models corresponding to the model primitives at the current time t 2 .
- the third control signal generally is not input to the collision recognizing unit 250 .
- the model collision detection apparatus considers all possible cases of collision between all models included in a scene. That is, the model collision detection apparatus examines whether models collide with each other while synchronizing the models with each other. Accordingly, if a collision determination is changed, the model collision detection apparatus simultaneously updates locations of the models which are included in the scene to correspond to the changed determination time, and then determines whether collisions occur between model primitives of the models.
- FIGS. 3A through 4 explain the operation of the model primitive generating unit 210 illustrated in FIG. 2 .
- FIGS. 3A through 3D illustrate examples of various shapes that a model primitive may have. That is, a model primitive may have the shapes of an axis aligned bounding box (AABB) 320 as illustrated in FIG. 3A , an oriented bounding box (OBB) 330 as illustrated in FIG. 3B , a capsule 340 as illustrated in FIG. 3C , and a sphere 350 as illustrated in FIG. 3D . Further, a model primitive may equally have other shapes not expressly described here.
- AABB axis aligned bounding box
- OOB oriented bounding box
- the AABB 320 is a hexahedron in which three edges meeting at a point are respectively parallel to three-dimensional (3D) axes 310 of x-axis, y-axis, and z-axis.
- the directions of the 3D axes 310 may be set in advance.
- the OBB 330 is a hexahedron formed by rotating the AABB 320 by a predetermined angle or moving the AABB 320 by a predetermined distance (while rotating the AABB 320 by a predetermined angle) with respect to the 3D axes 310 .
- (a), (b), and (c) of FIG. 4 explain an optimal shape that a model primitive may have.
- the model primitive 420 illustrated in (b) of FIG. 4 is more desirable in an embodiment than the model primitive 430 illustrated in (c) of FIG. 4 .
- Each of the model primitives (b) and (c) may correspond to a model 410 illustrated in (a) of FIG. 4 .
- the most desirable model primitive corresponding to a certain model is typically a model primitive having a volume closest to the volume of the model.
- FIG. 5 explains the operations of the scene dividing unit 220 and the search unit 230 illustrated in FIG. 2 .
- a plurality of model primitives 520 , 530 , 540 , and 550 may be located in a scene 510 at a current time t 2 , and the scene 510 may be divided into 27 voxels by the scene dividing unit 220 (see FIG. 2 ).
- numbers 0, 1, and 2 are indexes to be used for representing coordinate values, for convenience of description, and each voxel may have a coordinate value using the indexes.
- FIGS. 6A through 8C explain the operations of the first examination unit 240 through the second examination unit 270 illustrated in FIG. 2 .
- FIG. 6A shows the locations of model primitives A and B at a previous time t 1
- FIG. 6B shows the locations of the model primitives A and B at an arbitrary time t′ between the previous time t 1 and a current time t 2
- FIG. 6C shows the locations of the model primitives at the current time t 2 .
- arrows represent instantaneous velocities of the model primitives.
- the model collision detection apparatus may be unable to recognize collisions which occurs at an arbitrary time t′ between the previous time t 1 and a current time t 2 .
- the path primitive generating unit 260 and the second examination unit 270 may then typically operate. Accordingly, the path primitive generating unit 260 generates a path primitive which envelopes a path between the current time t 2 and the previous time t 1 for the model primitive A, and a path primitive which envelopes a path between the current time t 2 and the previous time t 1 for the model primitive B.
- the second examination unit 270 determines whether the path primitive of the model primitive A overlaps the path primitive of the model primitive B. In FIG. 6B , the path primitive of the model primitive A overlaps the path primitive of the model primitive B.
- the first examination unit 240 may determine whether the model primitives A and B collide with each other at an arbitrary time t′. Referring to FIG. 6B , if it is determined that the model primitives A and B collide with each other at an arbitrary time t′, the collision recognizing unit 250 may determine that model primitives A and B collide with each other at the arbitrary time t′.
- FIG. 7A shows the locations of model primitives C and D at a current time t 2 on a scene 700
- FIG. 7B shows the locations of the model primitives C and D at a previous time t 1 on the scene 700
- FIG. 7C shows a path primitive 710 of the model primitive C and a path primitive 720 of the model primitive D.
- the model primitives C and D and the corresponding path primitives have shapes corresponding to the AABB (see FIG. 3A ), and the scene 700 is shown on a two-dimensional plane since the scene 700 is viewed in a predetermined direction.
- the path primitive 710 of the model primitive C overlaps the path primitive 720 of the model primitive D.
- the model primitives C and D may collide with each other at an arbitrary time between the current time t 2 and the previous time t 1 , according to the moving velocities of the model primitives C and D.
- the first examination unit 240 may repeatedly determine (for a quantity of times) whether the model primitives C and D collide with each other at an arbitrary time between the current time t 2 and the previous time t 1 while changing a collision checking time between the current time t 2 and the previous time t 1 . The determination is continued until it is determined whether the model primitives C and D collide with each other at an arbitrary time between the current time t 2 and the previous time t 1 .
- the first examination unit 240 stops detecting collision between the model primitives C and D.
- FIG. 8A shows the locations of model primitives E and F at a current time t 2 on a scene 800
- FIG. 8B shows the locations of model primitives E and F at a previous time t 1 on the scene 800
- FIG. 8C shows a path primitive 810 of the model primitives E and a path primitive 820 of the model primitive F.
- each of the model primitives E and F and the corresponding path primitives have a shape corresponding to the AABB (see FIG. 3A ), and the scene 800 is shown on a two-dimensional plane since the scene 800 is viewed in a predetermined direction.
- the path primitive of the model primitive E does not overlap the path primitive 820 of the model primitive F.
- the model primitives E and F should not have collided with each other between the current time t 2 and the previous time t 1 .
- the first examination unit 240 operates according to a full detection mode, no determination of a collision between the model primitives E and F at an arbitrary time between the current time t 2 and the previous time t 1 need be performed.
- FIG. 9 illustrates a model collision detecting method.
- the method may be performed, for example, by the model collision detecting apparatus illustrated in FIG. 2 , according to an embodiment of the present invention.
- the model collision detecting method may include operations 910 through 990 for quickly detecting collision between models without missing collisions when they occur between predetermined collision check times. It should be noted that the described apparatus, units and method are mutually exclusive, and should not be limited to the same.
- model primitives collide with each other at a current time in operation 910 , e.g., by the first examination unit 240 .
- model collision detecting apparatus If it is determined in operation 910 that the model primitives do not collide with each other, it may be determined whether the model collision detecting apparatus operates according to a full detection mode in operation 920 , e.g., by the first examination unit 240 .
- path primitives which envelope paths between the current time and the previous time for the model primitives may be generated in operation 930 , e.g., by the path primitive generating unit 260 .
- operation 950 If it is determined in operation 950 that the model primitives do not collide with each other, it may be determined whether the quantity of times that operation 950 has been performed is below a threshold value in operation 960 . If the number of times that operation 950 has been performed has reached the threshold value, the process may be terminated. However, if the number of times that operation 950 has been performed is below the threshold value, a value of the arbitrary time between the current time and the previous time may be changed in operation 970 , and then operation 950 may be re-executed using the new arbitrary time value.
- the collision between the model primitives at the current time may be recognized in operation 990 , e.g., by the collision recognizing unit 250 .
- the process may be terminated.
- embodiments of the present invention can also be implemented through computer readable code/instructions in/on a medium, e.g., a computer readable medium, to control at least one processing element to implement any above described embodiment.
- a medium e.g., a computer readable medium
- the medium can correspond to any medium/media permitting the storing and/or transmission of the computer readable code.
- the computer readable code can be recorded/transferred on a medium in a variety of ways, with examples of the medium including recording media, such as magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.) and optical recording media (e.g., CD-ROMs, or DVDs), and transmission media such as media carrying or including carrier waves, as well as elements of the Internet, for example.
- the medium may be such a defined and measurable structure including or carrying a signal or information, such as a device carrying a bitstream, for example, according to embodiments of the present invention.
- the media may also be a distributed network, so that the computer readable code is stored/transferred and executed in a distributed fashion.
- the processing element could include a processor or a computer processor, and processing elements may be distributed and/or included in a single device.
- a model collision detection method, medium and apparatus may recognize that models collide with each other if it is determined that model primitives which envelop each of the models collide with each other, in embodiments of the present invention, it is possible to quickly examine whether models collide with each other. Also, in the model collision detecting method, medium and apparatus according to one or more embodiments of the present invention, when it is determined that the model primitives do not collide with each other at a current time, it may be determined whether path primitives which envelop paths between the current time and a previous time overlap each other, instead of stopping the determining of whether the models collide.
- the path primitives overlap each other, it may be determined that collisions between the models could possibly be generated at an arbitrary time between the current time and the previous time, even though the models do not collide with each other at the current time. Then, it may be determined whether the model primitives collide with each other at an arbitrary time between the current time and the previous time, and collisions between the models at the arbitrary time are recognized if it is determined that the model primitives collide with each other at that time. Accordingly, although collision of the models may be generated at an arbitrary time which is not a predetermined collision check time, it is still possible to recognize the collision of the models without missing the recognition of the collision generated at the arbitrary time.
- This advantage may be enhanced by changing a value of a first arbitrary time to a second arbitrary time that is between the current time and the previous time instead of stopping the determining when it is determined that the model primitives do not collide at the first arbitrary time, and then again determining whether the model primitives collide with each other at the second arbitrary time.
- the model collision detection method, medium and apparatus since all possible cases where all models included in a scene can collide with each other are considered, the model collision detection method, medium and apparatus according to one or more embodiments of the present invention examines whether models collide with each other while synchronizing the models with each other. Accordingly, in the model collision detecting method, medium and apparatus according to one or more embodiments of the present invention, when a collision checking time changes, the location of a model included in a scene and the location of another model included in the scene may be simultaneously updated to the corresponding locations of the two models at the changed collision checking time, and then it may be determined whether model primitives of the models collide with each other.
- a model collision detection method, medium and apparatus can prevent a determination of whether the model primitives of the two models collide with each other, while only the location of the model primitive of the model is updated to the corresponding location of the model at the changed collision checking time, and the location of the model primitive of the other model is not updated to the corresponding location of the other model at the changed collision checking time.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
- This application claims the benefit of Korean Patent Application No. 10-2007-0011270, filed on Feb. 2, 2007, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
- 1. Field
- One or more embodiments of the present invention relate to collision detection, and more particularly, to a method, medium and apparatus detecting collisions between models included in a scene.
- 2. Description of the Related Art
- In computer modeling, a conventional model collision detection apparatus determines whether models collide with each other, and recognizes a collision between the models if it is determined that the models do collide with each other. Such a model collision detection apparatus has to quickly detect collisions between models without missing any collisions, regardless of when the collisions might occur. For example, in the case of a three-dimensional (3D) racing game, when a moving vehicle manipulated by a game user collides with another vehicle, or with a tree or other object outside of the track, the game user's score may have to be quickly adjusted. Accordingly, a model collision detection apparatus included in a system executing the 3D racing game has to quickly detect such a collision without missing it.
- A conventional model collision detection apparatus determines whether such a collision occurs at one or more predetermined collision check times. Accordingly, the conventional model collision detection apparatus cannot recognize a collision if the collision occurs at a time which does not fall within the predetermined collision check times. As a result, a problem exists in that the conventional model collision detection apparatus may fail to recognize the collision when the collision occurs at a time that is not a predetermined collision check time.
- Also, since the conventional model collision detection apparatus determines whether models collide with each other by detecting whether parts of the models overlap, the examination takes a long time to perform as the shapes of the models are complicated. As a result, the conventional model collision detection apparatus cannot quickly examine whether models collide with each other, particularly when the complexity of the shape of a model is high.
- One or more embodiments of the present invention provide a model collision detection method capable of quickly examining whether models collide with each other, and recognizing the collision between the models regardless of whether the collision between the models occur at a predetermined collision check time.
- One or more embodiments of the present invention also provide a model collision detection apparatus capable of quickly examining whether models collide with each other, and recognizing the collision between the models regardless of whether the collision between the models occur at a predetermined collision check time.
- One or more embodiments of the present invention provide a computer-readable recording medium capable of quickly examining whether models collide with each other, and recognizing the collision between the models regardless of whether the collision between the models occur at a predetermined collision check time.
- Additional aspects and/or advantages will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the invention.
- To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include a method of determining whether models enveloped by model primitives collide with each other. The method includes determining whether the model primitives collide with each other at a current time, determining whether paths reflecting movement of the model primitives between the current time and a previous time overlap each other when the model primitives do not collide with each other at the current time, determining whether the model primitives collide with each other at an arbitrary time between the current time and the previous time when the path primitives overlap each other, and recognizing that the models collide with each other at the arbitrary time when the model primitives collide with each other at the arbitrary time.
- To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include an apparatus for determining whether models enveloped by model primitives collide with each other. The apparatus includes, a first examination unit to determine whether the model primitives each collide with each other at a current time and to generate a first control signal corresponding to a result of the determination of whether the model primitives collide with each other at the current time, a second examination unit to determine whether paths reflecting movement of the model primitives between the current time and a previous time overlap each other in response to the first control signal and generating a second control signal corresponding to a result of the determination of whether the paths overlap each other, the first examination unit determining whether the model primitives collide with each other at an arbitrary time between the current time and the previous time in response to the second control signal and generating a third control signal corresponding to a result of the determination of whether the model primitives collide with each other at the arbitrary time, and a collision recognizing unit to recognize that the models collide with each other in response to at least one of the first control signal and the third control signal.
- To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include a method of determining whether models enveloped by model primitives collide with each other. The method includes determining whether the model primitives collide with each other at a current time, generating path primitives that envelop paths of the model primitives when the model primitives do not collide with each other at the current time, the paths reflecting movement of the model primitives between the current time and a previous time, determining whether the model primitives collide with each other at an arbitrary time between the current time and the previous time when the path primitives overlap each other, and recognizing that the models collide with each other at the current time when the model primitives collide with each other at the current time and recognizing that the models collide with each other at the arbitrary time when the model primitives collide with each other at the arbitrary time.
- To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include an apparatus for determining whether models enveloped by model primitives collide with each other. The apparatus includes a first examination unit to determine whether the model primitives each collide with each other at a current time and to generate a first control signal corresponding to a result of the determination of whether the model primitives collide with each other at the current time, a path primitive generating unit to generate path primitives that envelop paths of the model primitives when the model primitives do not collide with each other at the current time, the paths reflecting movement of the model primitives between the current time and a previous time, a second examination unit to determine whether the path primitives overlap each other in response to the first control signal and generating a second control signal corresponding to a result of the determination of whether the path primitives overlap each other, the first examination unit to determine whether the model primitives collide with each other at an arbitrary time between the current time and a previous time in response to the second control signal and generating a third control signal corresponding to a result of the determination of whether the model primitives collide with each other at the arbitrary time, and a collision recognizing unit to recognize that the models collide with each other in response to at least one of the first control signal and the third control signal.
- These and/or other aspects and advantages will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
-
FIG. 1 explains a scene, objects, and a background; -
FIG. 2 illustrates a model collision detection apparatus, according to an embodiment of the present invention; -
FIGS. 3A through 4 explain the operation of a model primitive generating unit illustrated inFIG. 2 ; -
FIG. 5 explains the operations of a scene dividing unit and a search unit illustrated inFIG. 2 ; -
FIGS. 6A through 8C explain the operations of a first detecting unit and a second detecting unit illustrated inFIG. 2 ; and -
FIG. 9 illustrates a model collision detection method, according to an embodiment of the present invention. - Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. Embodiments are described below to explain the present invention by referring to the figures.
-
FIG. 1 explains ascene 100, includingobjects background 150. - The
scene 100 refers to a three-dimensional space in which information that is to be rendered may be contained. Thescene 100 may include one or more objects, such asobjects background 150, for example. Here,objects tree 110 or ahouse 120, or may be dynamic objects such as a movingperson 130 or amoving car 140. Meanwhile, thebackground 150 typically refers to a setting (for example, the sky or ground) at which theobjects dynamic objects - In
scene 100, models may collide with each other. Here, the term “model” may meanobject background 150. That is, the collision may occur betweenobjects background 150. -
FIG. 2 illustrates a model collision detection apparatus, according to an embodiment of the present invention. Referring toFIG. 2 , the model collision detection apparatus may include, for example, a modelprimitive generating unit 210, ascene dividing unit 220, asearch unit 230, afirst examination unit 240, acollision recognizing unit 250, a pathprimitive generating unit 260, and asecond examination unit 270. - The model primitive generating
unit 210 may receive a scene through an input terminal “IN,” and may generate a primitive (hereinafter, referred to as a model primitive) for each model included in the scene. Here, the term “primitive” may refer to an “object for enveloping”. That is, the term “model primitive” may refer to an object for enveloping a model. Meanwhile, the primitive typically has a predetermined shape. For example, the model primitive may have a shape of an object having a minimum volume among objects which can envelope the corresponding model. - The
scene dividing unit 220 may receive the scene through the input terminal IN, and divide the scene into a plurality of voxels. Thus, the scene generally has a voxel structure, with each of the voxels generally having the same size and volume. Here, thescene dividing unit 220 may generate a plurality of voxels each of which may have a volume obtained by multiplying an average volume of all model primitives included in the scene by a predetermined value (for example, 4). - Meanwhile, the scene received through the input terminal IN is updated with the passage of time, but in an embodiment it is preferable that the model primitive generating
unit 210 and thescene dividing unit 220 operate one time. That is, in an embodiment it is preferable that, if model primitives have been generated in advance for all models included in the scene received through the input terminal IN, theprimitive generating unit 210 does not operate any more. Likewise, in an embodiment it is preferable that, if the scene received through the input terminal IN has been divided in advance into a plurality of voxels, thescene dividing unit 220 does not operate any more. - Meanwhile, the remaining components (that is, the
search unit 230 through the second examination unit 270) of the model collision detection apparatus may operate with respect to a scene, at every predetermined collision checking time (for example, t0, t1, t2, t3, t4, t5, . . . ). Here, the terms “a current time” and “a previous time” generally denote two collision checking times that are adjacent in time with respect to each other. For example, “a current time” and “a previous time” may be “t1” and “t0” respectively, “t3” and “t2” respectively, or “t4” and “t3” respectively. Hereinafter, for convenience of description, it may be assumed that “a current time” and “a previous time” are “t2” and “t1” respectively. - The
search unit 230 may search for at least one voxel in which model primitives may collide with each other at a current time t2, among the voxels constructing the scene. In detail, thesearch unit 230 may search for at least one voxel in which a plurality of model primitives exist, among voxels constructing a scene at a current time t2. Here, the model primitives that exist in the voxel may be model primitives that are entirely included in the voxel, or model primitives having parts laid across the voxel, e.g., having only a portion of the model primitive included in the voxel. Meanwhile, the model collision detection apparatus may operate according to a simple detection mode, or according to a full detection mode. - When the model collision detection apparatus operates according to a full detection mode, the
first examination unit 240 through thesecond examination unit 270 generally operate as follows. - The
first examination unit 240 may determine whether model primitives collide with each other for each voxel searched for by thesearch unit 230. Thefirst examination unit 240 may output the result of the determination as a first control signal to thecollision recognizing unit 250, or to the pathprimitive generating unit 260 and thesecond examination unit 270. At this time, thefirst examination unit 240 may determine whether the model primitives collide with each other, e.g., using location information of the model primitives. For example, if the volume of a space shared by model primitives exceeds a predetermined threshold value, it may be determined that a collision has occurred between the model primitives. - The
collision recognizing unit 250 may recognize collisions between models corresponding to the model primitives, in response to the first control signal. Thecollision recognizing unit 250 generally operates only when the first control signal indicates that model primitives collide with each other at a current time, e.g., t2. That is, if thefirst examination unit 240 determines that the model primitives collide with each other at the current time t2, thecollision recognizing unit 250 may recognize that models corresponding to the model primitives collide with each other at the current time t2. As such, since collisions between models may be determined by detecting collision between model primitives, collision between models may be quickly detected. - The path
primitive generating unit 260 may generate path primitives each of which is an object for enveloping each of paths between the current time t2 and the previous time t1, for the models, in response to the first control signal, and output the path primitives to thesecond examination unit 270. The pathprimitive generating unit 260 operates only when the first control signal indicates that the model primitive do not collide with each other at the current time t2. That is, if thefirst examination unit 240 determines that the model primitives do not collide with each other at the current time t2, the pathprimitive generating unit 260 may generate a path primitive for a path between the current time t2 and the previous time t1, with respect to each model primitive. - The
second examination unit 270 may determine whether the path primitives overlap each other, in response to the first control signal, and output the result of the determination as a second control signal to thefirst examination unit 240. Thesecond examination unit 270 generally operates only when the first control signal indicates that the model primitives do not collide with each other at the current time t2. That is, if thefirst examination unit 240 determines that the model primitives do not collide with each other at the current time t2, thesecond examination unit 270 may determine whether the path primitives overlap each other. If the path primitives overlap each other, thesecond examination unit 270 may determine that although the model primitives do not collide with each other at the current time t2, the model primitives may potentially collide with each other at an arbitrary time, e.g., between the current time t2 and the previous time t1. Meanwhile, if the path primitives do not overlap each other, thesecond examination unit 270 may determine that the model primitives neither collide with each other at the current time t2, nor at any time between the current time t2 and the previous time t1. - If the second control signal indicates that the path primitives overlap each other, the
first examination unit 240 may determine whether the model primitives collide with each other at an arbitrary time t′ between the current time t2 and the previous time t1, in response to the second control signal, and may output the result of the determination as a third control signal to thecollision recognition unit 250, wherein, as an example, t′ may be (t1+t2)/2. - If it is determined that the model primitives collide with each other at an arbitrary time t′ between the current time t2 and the previous time t1, the
collision recognizing unit 250 may determine that the models corresponding to the model primitives collide with each other at the arbitrary time t′, in response to the third control signal. - Further, if the model primitives do not collide at an arbitrary time t′ between the current time t2 and the previous time t1, the
first examination unit 240 may determine whether the model primitives collide with each other at a different arbitrary time t″ between the current time t2 and the previous time t1, and output the result of the determination as a third control signal to thecollision recognizing unit 250, wherein, as examples, t″ can be (t1+t′)/2 or (t′+t2)/2. Further, if it is determined that the model primitives collide with each other at the different arbitrary time t″ between the current time t2 and the previous time t1, thecollision recognition unit 250 may recognize that models corresponding to the model primitives collide with each other at the different arbitrary time t″, in response to the third control signal. However, if it is determined that the model primitives do not collide with each other at the different arbitrary time t″ between the current time t2 and the previous time t1, thefirst examination unit 240 may determine whether the model primitives collide with each other at another different arbitrary time t″′ between the current time t2 and the previous time t1, and may output the result of the determination as a third control signal to thecollision recognizing unit 250, wherein t″′ can be (t1+t″)/2. - In this way, if the
first examination unit 240 determines that the model primitives do not collide with each other at the current time t2, and thesecond examination unit 270 determines that the path primitives of the model primitives do not overlap each other, thefirst examination unit 240 may determine whether the model primitives collide with each other at an arbitrary time between the current time t1 and the previous time t2. Further, thefirst examination unit 240 may repeatedly determine (for a predetermined quantity of times) whether the model primitives collide with each other at an arbitrary time between the current time and the previous time, while changing a value of the arbitrary time, until it is determined that the model primitives collide with each other at the arbitrary time between the current time and the previous time. Here, the quantity of times may be set below a predetermined threshold value. - Meanwhile, if the model collision detection apparatus operates according to a simple detection mode, the path
primitive generating unit 260 and thesecond examination unit 270 generally do not operate, and thefirst examination unit 240 and thecollision recognizing unit 250 operate as follows. - The
first examination unit 240 may determine whether the model primitives collide with each other at the current time t2, for each voxel searched for by thesearch unit 230, and may output the result of the determination as a first control signal to thecollision recognizing unit 250. At this time, thefirst examination unit 240 may determine whether the model primitives collide with each other, using location information of the model primitives. - In contrast with a full detection mode, according to an embodiment of a simple detection mode, although the
first examination unit 240 may determine that the model primitives do not collide with each other at the current point t2, thefirst examination unit 240 generally does not output the first control signal to the pathprimitive generating unit 260 and thesecond examination unit 270. Accordingly, when the model collision detection apparatus operates according to a simple detection mode, the pathprimitive generating unit 260 and thesecond examination unit 270 generally do not operate. As a result, when thefirst examination unit 240 operates according to a simple detection mode, the second control signal generally is not input to thefirst examination unit 240, and accordingly, thefirst examination unit 240 generally does not output the third control signal. - Meanwhile, the
collision recognizing unit 250 may recognizes a collision between the corresponding models, in response to the first control signal. Here, thecollision recognizing unit 250 may operate only when it receives the first control signal indicating that the model primitives collide with each other at the current time t2. That is, if thefirst examination unit 240 determines that the model primitives collide with each other at the current time t2, thecollision recognizing unit 250 may recognize a collision between models corresponding to the model primitives at the current time t2. - In contrast with a full detection mode, according to an embodiment of a simple detection mode, the third control signal generally is not input to the
collision recognizing unit 250. - As described above, the model collision detection apparatus according to a current embodiment of the present invention considers all possible cases of collision between all models included in a scene. That is, the model collision detection apparatus examines whether models collide with each other while synchronizing the models with each other. Accordingly, if a collision determination is changed, the model collision detection apparatus simultaneously updates locations of the models which are included in the scene to correspond to the changed determination time, and then determines whether collisions occur between model primitives of the models.
-
FIGS. 3A through 4 explain the operation of the modelprimitive generating unit 210 illustrated inFIG. 2 . - In detail,
FIGS. 3A through 3D illustrate examples of various shapes that a model primitive may have. That is, a model primitive may have the shapes of an axis aligned bounding box (AABB) 320 as illustrated inFIG. 3A , an oriented bounding box (OBB) 330 as illustrated inFIG. 3B , acapsule 340 as illustrated inFIG. 3C , and asphere 350 as illustrated inFIG. 3D . Further, a model primitive may equally have other shapes not expressly described here. - Here, the
AABB 320 is a hexahedron in which three edges meeting at a point are respectively parallel to three-dimensional (3D) axes 310 of x-axis, y-axis, and z-axis. Here, the directions of the 3D axes 310 may be set in advance. Meanwhile, theOBB 330 is a hexahedron formed by rotating theAABB 320 by a predetermined angle or moving theAABB 320 by a predetermined distance (while rotating theAABB 320 by a predetermined angle) with respect to the 3D axes 310. - Meanwhile, (a), (b), and (c) of
FIG. 4 explain an optimal shape that a model primitive may have. The model primitive 420 illustrated in (b) ofFIG. 4 is more desirable in an embodiment than the model primitive 430 illustrated in (c) ofFIG. 4 . Each of the model primitives (b) and (c) may correspond to amodel 410 illustrated in (a) ofFIG. 4 . As such, the most desirable model primitive corresponding to a certain model is typically a model primitive having a volume closest to the volume of the model. -
FIG. 5 explains the operations of thescene dividing unit 220 and thesearch unit 230 illustrated inFIG. 2 . - As illustrated in
FIG. 5 , a plurality ofmodel primitives scene 510 at a current time t2, and thescene 510 may be divided into 27 voxels by the scene dividing unit 220 (seeFIG. 2 ). - In
FIG. 5 ,numbers FIG. 5 , the model primitive 520 exists in a voxel having a coordinate value (i, j, k)=(0, 1, 1), the model primitive 530 exists in voxels having coordinate values (i, j, k)=(0, 1, 0), (0, 1, 1), (0, 2, 0), and (0, 2, 1), the model primitive 540 exists in voxels having coordinate values (i, j, k)=(2, 2, 0), (2, 2, 1), and (2, 2, 2), and the model primitive 550 exists in voxels having coordinate values (i, j, k)=(1, 0, 1), (1, 1, 1), (2, 0, 1), and (2, 1, 1), wherein i represents an index in a x-axis direction, j represents an index in a y-axis direction, and k represents an index in a z-axis direction. - As illustrated in
FIG. 5 , a plurality of model primitives exist in the voxel having the coordinate value (i, j, k)=(0, 1, 1), among the 27 voxels. Accordingly, thesearch unit 230 may search for the voxel having the coordinate value (i, j, k)=(0, 1, 1), as a voxel in which model primitives may collide with each other, among the voxels constructing thescene 510 at the current time t2. -
FIGS. 6A through 8C explain the operations of thefirst examination unit 240 through thesecond examination unit 270 illustrated inFIG. 2 . - In detail,
FIG. 6A shows the locations of model primitives A and B at a previous time t1,FIG. 6B shows the locations of the model primitives A and B at an arbitrary time t′ between the previous time t1 and a current time t2, andFIG. 6C shows the locations of the model primitives at the current time t2. InFIGS. 6A through 6C , arrows represent instantaneous velocities of the model primitives. - Referring to
FIGS. 2 and 6A through 6C, in a simple detection mode, if thefirst examination unit 240 determines that the model primitives A and B do not collide with each other at the current time t2, thecollision recognizing unit 250 through thesecond examination unit 270 typically do not operate. As a result, in a simple detection mode, the model collision detection apparatus may be unable to recognize collisions which occurs at an arbitrary time t′ between the previous time t1 and a current time t2. - In contrast, for a full detection mode, if the
first examination unit 240 determines that the model primitives A and B do not collide with each other at the current time t2, the pathprimitive generating unit 260 and thesecond examination unit 270 may then typically operate. Accordingly, the pathprimitive generating unit 260 generates a path primitive which envelopes a path between the current time t2 and the previous time t1 for the model primitive A, and a path primitive which envelopes a path between the current time t2 and the previous time t1 for the model primitive B. Thesecond examination unit 270 determines whether the path primitive of the model primitive A overlaps the path primitive of the model primitive B. InFIG. 6B , the path primitive of the model primitive A overlaps the path primitive of the model primitive B. Accordingly, if it is determined that the path primitive of the model primitive A overlaps the path primitive of the model primitive B, thefirst examination unit 240 may determine whether the model primitives A and B collide with each other at an arbitrary time t′. Referring toFIG. 6B , if it is determined that the model primitives A and B collide with each other at an arbitrary time t′, thecollision recognizing unit 250 may determine that model primitives A and B collide with each other at the arbitrary time t′. - Hereinafter, the operations of the
first examination unit 240 through thesecond examination unit 270 in a full detection mode will be described in more detail with reference toFIGS. 7A through 8C . -
FIG. 7A shows the locations of model primitives C and D at a current time t2 on ascene 700,FIG. 7B shows the locations of the model primitives C and D at a previous time t1 on thescene 700, andFIG. 7C shows a path primitive 710 of the model primitive C and a path primitive 720 of the model primitive D. As illustrated inFIGS. 7A , 7B, and 7C, the model primitives C and D and the corresponding path primitives have shapes corresponding to the AABB (seeFIG. 3A ), and thescene 700 is shown on a two-dimensional plane since thescene 700 is viewed in a predetermined direction. - As illustrated in
FIG. 7C , the path primitive 710 of the model primitive C overlaps the path primitive 720 of the model primitive D. In this case, if the model primitives C and D move from the locations illustrated inFIG. 7B to the locations illustrated inFIG. 7A , the model primitives C and D may collide with each other at an arbitrary time between the current time t2 and the previous time t1, according to the moving velocities of the model primitives C and D. Accordingly, when thefirst examination unit 240 operates according to a full detection mode and determines whether the model primitives C and D collide with each other at the current time t2, although it is determined that the model primitives C and D do not collide with each other at the current point t2, thefirst examination unit 240 may repeatedly determine (for a quantity of times) whether the model primitives C and D collide with each other at an arbitrary time between the current time t2 and the previous time t1 while changing a collision checking time between the current time t2 and the previous time t1. The determination is continued until it is determined whether the model primitives C and D collide with each other at an arbitrary time between the current time t2 and the previous time t1. If it is not determined that the model primitives C and D collide with each other at an arbitrary time by the time the number of times reaches a threshold value, in an embodiment it is preferable that thefirst examination unit 240 stops detecting collision between the model primitives C and D. -
FIG. 8A shows the locations of model primitives E and F at a current time t2 on ascene 800,FIG. 8B shows the locations of model primitives E and F at a previous time t1 on thescene 800, andFIG. 8C shows a path primitive 810 of the model primitives E and a path primitive 820 of the model primitive F. As illustrated inFIGS. 8A , 8B, and 8C, each of the model primitives E and F and the corresponding path primitives have a shape corresponding to the AABB (seeFIG. 3A ), and thescene 800 is shown on a two-dimensional plane since thescene 800 is viewed in a predetermined direction. - Referring to
FIG. 8C , the path primitive of the model primitive E does not overlap the path primitive 820 of the model primitive F. Here, the model primitives E and F should not have collided with each other between the current time t2 and the previous time t1. Here, although thefirst examination unit 240 operates according to a full detection mode, no determination of a collision between the model primitives E and F at an arbitrary time between the current time t2 and the previous time t1 need be performed. -
FIG. 9 illustrates a model collision detecting method. The method may be performed, for example, by the model collision detecting apparatus illustrated inFIG. 2 , according to an embodiment of the present invention. The model collision detecting method may includeoperations 910 through 990 for quickly detecting collision between models without missing collisions when they occur between predetermined collision check times. It should be noted that the described apparatus, units and method are mutually exclusive, and should not be limited to the same. - Referring to
FIGS. 2 and 9 , it may be determined whether model primitives collide with each other at a current time inoperation 910, e.g., by thefirst examination unit 240. - If it is determined in
operation 910 that the model primitives do not collide with each other, it may be determined whether the model collision detecting apparatus operates according to a full detection mode inoperation 920, e.g., by thefirst examination unit 240. - If it is determined in
operation 920 that the model collision detecting apparatus operates according to a full detection mode, path primitives which envelope paths between the current time and the previous time for the model primitives may be generated inoperation 930, e.g., by the pathprimitive generating unit 260. - After
operation 930, it may be determined whether the path primitives overlap each other inoperation 940, e.g. by thesecond examination unit 270. - If it is determined in
operation 940 that the path primitives overlap each other, it may be determined whether the model primitives collide with each other at an arbitrary time between the current time and the previous time inoperation 950, e.g. by thefirst examination unit 240. - If it is determined in
operation 950 that the model primitives do not collide with each other, it may be determined whether the quantity of times thatoperation 950 has been performed is below a threshold value inoperation 960. If the number of times thatoperation 950 has been performed has reached the threshold value, the process may be terminated. However, if the number of times thatoperation 950 has been performed is below the threshold value, a value of the arbitrary time between the current time and the previous time may be changed inoperation 970, and thenoperation 950 may be re-executed using the new arbitrary time value. - Meanwhile, if it is determined in
operation 950 that the model primitives collide with each other, it may be recognized that models corresponding to the model primitives collide with each other at an arbitrary time inoperation 980, e.g. by thecollision recognizing unit 250. - Also, if it is determined in
operation 910 that the model primitives collide with each other at the current time, the collision between the model primitives at the current time may be recognized inoperation 990, e.g., by thecollision recognizing unit 250. - Meanwhile, if it is determined in
operation 920 that the model collision detecting apparatus does not operate according to a full detection mode, or if it is determined inoperation 940 that the path primitives do not overlap each other, the process may be terminated. - In addition to the above described embodiments, embodiments of the present invention can also be implemented through computer readable code/instructions in/on a medium, e.g., a computer readable medium, to control at least one processing element to implement any above described embodiment. The medium can correspond to any medium/media permitting the storing and/or transmission of the computer readable code.
- The computer readable code can be recorded/transferred on a medium in a variety of ways, with examples of the medium including recording media, such as magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.) and optical recording media (e.g., CD-ROMs, or DVDs), and transmission media such as media carrying or including carrier waves, as well as elements of the Internet, for example. Thus, the medium may be such a defined and measurable structure including or carrying a signal or information, such as a device carrying a bitstream, for example, according to embodiments of the present invention. The media may also be a distributed network, so that the computer readable code is stored/transferred and executed in a distributed fashion. Still further, as only an example, the processing element could include a processor or a computer processor, and processing elements may be distributed and/or included in a single device.
- As described above, since a model collision detection method, medium and apparatus according to one or more embodiments of the present invention may recognize that models collide with each other if it is determined that model primitives which envelop each of the models collide with each other, in embodiments of the present invention, it is possible to quickly examine whether models collide with each other. Also, in the model collision detecting method, medium and apparatus according to one or more embodiments of the present invention, when it is determined that the model primitives do not collide with each other at a current time, it may be determined whether path primitives which envelop paths between the current time and a previous time overlap each other, instead of stopping the determining of whether the models collide. If the path primitives overlap each other, it may be determined that collisions between the models could possibly be generated at an arbitrary time between the current time and the previous time, even though the models do not collide with each other at the current time. Then, it may be determined whether the model primitives collide with each other at an arbitrary time between the current time and the previous time, and collisions between the models at the arbitrary time are recognized if it is determined that the model primitives collide with each other at that time. Accordingly, although collision of the models may be generated at an arbitrary time which is not a predetermined collision check time, it is still possible to recognize the collision of the models without missing the recognition of the collision generated at the arbitrary time. This advantage may be enhanced by changing a value of a first arbitrary time to a second arbitrary time that is between the current time and the previous time instead of stopping the determining when it is determined that the model primitives do not collide at the first arbitrary time, and then again determining whether the model primitives collide with each other at the second arbitrary time.
- Furthermore, in the model collision detection method, medium and apparatus according to one or more embodiments of the present invention, since all possible cases where all models included in a scene can collide with each other are considered, the model collision detection method, medium and apparatus according to one or more embodiments of the present invention examines whether models collide with each other while synchronizing the models with each other. Accordingly, in the model collision detecting method, medium and apparatus according to one or more embodiments of the present invention, when a collision checking time changes, the location of a model included in a scene and the location of another model included in the scene may be simultaneously updated to the corresponding locations of the two models at the changed collision checking time, and then it may be determined whether model primitives of the models collide with each other. Accordingly, a model collision detection method, medium and apparatus according to one or more embodiments of the present invention can prevent a determination of whether the model primitives of the two models collide with each other, while only the location of the model primitive of the model is updated to the corresponding location of the model at the changed collision checking time, and the location of the model primitive of the other model is not updated to the corresponding location of the other model at the changed collision checking time. Thus, it is possible to, in advance, prevent a case in which a collision between the models is not recognized for all that the models actually collide with each other, and ensure reliability of collision detection results.
- Although a few embodiments have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2007-0011270 | 2007-02-02 | ||
KR1020070011270A KR100888475B1 (en) | 2007-02-02 | 2007-02-02 | Method and apparatus for detecting model collision |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080186312A1 true US20080186312A1 (en) | 2008-08-07 |
US8130220B2 US8130220B2 (en) | 2012-03-06 |
Family
ID=39675772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/003,771 Expired - Fee Related US8130220B2 (en) | 2007-02-02 | 2007-12-31 | Method, medium and apparatus detecting model collisions |
Country Status (2)
Country | Link |
---|---|
US (1) | US8130220B2 (en) |
KR (1) | KR100888475B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013109602A1 (en) * | 2012-01-16 | 2013-07-25 | Intel Corporation | Time-continuous collision detection using 3d rasterization |
US20130210520A1 (en) * | 2012-02-10 | 2013-08-15 | Nintendo Co., Ltd. | Storage medium having stored therein game program, game apparatus, game system, and game image generation method |
US10937218B2 (en) * | 2019-07-01 | 2021-03-02 | Microsoft Technology Licensing, Llc | Live cube preview animation |
JP2022536263A (en) * | 2019-06-03 | 2022-08-15 | リアルタイム ロボティクス, インコーポレーテッド | Apparatus, methods and articles for facilitating motion planning in environments with dynamic obstacles |
US11738457B2 (en) | 2018-03-21 | 2023-08-29 | Realtime Robotics, Inc. | Motion planning of a robot for various environments and tasks and improved operation of same |
US11745346B2 (en) | 2018-02-06 | 2023-09-05 | Realtime Robotics, Inc. | Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same |
US11970161B2 (en) | 2018-01-12 | 2024-04-30 | Duke University | Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects |
US12017364B2 (en) | 2019-04-17 | 2024-06-25 | Realtime Robotics, Inc. | Motion planning graph generation user interface, systems, methods and articles |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101048018B1 (en) * | 2008-12-29 | 2011-07-13 | 이화여자대학교 산학협력단 | Real-Time Collision Detection Method and System Using Conservative Forward Technique |
KR101013784B1 (en) * | 2009-08-31 | 2011-02-14 | 이화여자대학교 산학협력단 | Hybrid parrallel continuous collision detection using cpu and gpu |
KR101132308B1 (en) * | 2010-06-04 | 2012-04-05 | 중앙대학교 산학협력단 | Collision detection method of polygon model using OBBTree and subdivision |
JP5088972B2 (en) * | 2010-06-11 | 2012-12-05 | 株式会社ソニー・コンピュータエンタテインメント | Image processing apparatus, image processing method, computer program, recording medium, and semiconductor device |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515489A (en) * | 1991-12-31 | 1996-05-07 | Apple Computer, Inc. | Collision detector utilizing collision contours |
US5892462A (en) * | 1995-06-20 | 1999-04-06 | Honeywell Inc. | Adaptive ground collision avoidance system |
US5990896A (en) * | 1996-09-30 | 1999-11-23 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Rapid and efficient terrain surface finding system |
US20010026272A1 (en) * | 2000-04-03 | 2001-10-04 | Avihay Feld | System and method for simulation of virtual wear articles on virtual models |
US20030230724A1 (en) * | 2002-06-14 | 2003-12-18 | Ronald Koops | Gamma camera collision avoidance |
US20040010346A1 (en) * | 2002-07-11 | 2004-01-15 | Stewart Paul Joseph | Method of real-time collision detection between solid geometric models |
US20040088090A1 (en) * | 2002-11-05 | 2004-05-06 | Sung-Don Wee | System for reading vehicle accident information using telematics system |
US6862026B2 (en) * | 2001-02-09 | 2005-03-01 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Process and device for collision detection of objects |
US20070177011A1 (en) * | 2004-03-05 | 2007-08-02 | Lewin Andrew C | Movement control system |
US20070268288A1 (en) * | 2004-03-24 | 2007-11-22 | Christian Duriez | Method and Device for the Interactive Simulation of Contact Between Objects |
US7590514B1 (en) * | 2006-05-24 | 2009-09-15 | Livermore Software Technology Corporation | Method and system for simulating inflation of an enclosed volume with flexible boundary using gas particles |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1145350A (en) * | 1997-07-25 | 1999-02-16 | Sharp Corp | Method and device for deciding collision of three-dimensional moving body and recording medium where collision decision program is recorded |
JP3446668B2 (en) | 1998-07-29 | 2003-09-16 | 東海ゴム工業株式会社 | Liquid filled type vibration damping device |
DE10000308A1 (en) | 2000-01-05 | 2001-07-12 | Heidelberger Druckmasch Ag | Air duct system in a sheet-fed press |
JP3872034B2 (en) | 2000-09-27 | 2007-01-24 | 株式会社ソニー・コンピュータエンタテインメント | Multiprocessor system, data processing method, data processing system, computer program, semiconductor device |
JP2003109038A (en) | 2001-09-27 | 2003-04-11 | Namco Ltd | Device for fast detecting collision |
JP3542795B1 (en) | 2003-01-14 | 2004-07-14 | コナミ株式会社 | Simulation experiment apparatus, simulation experiment method, and program |
JP2005071285A (en) | 2003-08-28 | 2005-03-17 | New Industry Research Organization | Collision detection method that change detail degree according to interaction in space and virtual space formation device using its method |
JP4444725B2 (en) | 2004-04-26 | 2010-03-31 | 独立行政法人科学技術振興機構 | Collision detection method and collision detection system |
JP4351982B2 (en) | 2004-10-07 | 2009-10-28 | 株式会社東芝 | Personal authentication method, apparatus and program |
KR100847754B1 (en) * | 2005-07-07 | 2008-07-22 | 엔에이치엔(주) | Method for detecting collision of objects in game engine |
-
2007
- 2007-02-02 KR KR1020070011270A patent/KR100888475B1/en active IP Right Grant
- 2007-12-31 US US12/003,771 patent/US8130220B2/en not_active Expired - Fee Related
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515489A (en) * | 1991-12-31 | 1996-05-07 | Apple Computer, Inc. | Collision detector utilizing collision contours |
US5892462A (en) * | 1995-06-20 | 1999-04-06 | Honeywell Inc. | Adaptive ground collision avoidance system |
US5990896A (en) * | 1996-09-30 | 1999-11-23 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Rapid and efficient terrain surface finding system |
US20010026272A1 (en) * | 2000-04-03 | 2001-10-04 | Avihay Feld | System and method for simulation of virtual wear articles on virtual models |
US6862026B2 (en) * | 2001-02-09 | 2005-03-01 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Process and device for collision detection of objects |
US20030230724A1 (en) * | 2002-06-14 | 2003-12-18 | Ronald Koops | Gamma camera collision avoidance |
US20040010346A1 (en) * | 2002-07-11 | 2004-01-15 | Stewart Paul Joseph | Method of real-time collision detection between solid geometric models |
US20040088090A1 (en) * | 2002-11-05 | 2004-05-06 | Sung-Don Wee | System for reading vehicle accident information using telematics system |
US20070177011A1 (en) * | 2004-03-05 | 2007-08-02 | Lewin Andrew C | Movement control system |
US20070268288A1 (en) * | 2004-03-24 | 2007-11-22 | Christian Duriez | Method and Device for the Interactive Simulation of Contact Between Objects |
US7590514B1 (en) * | 2006-05-24 | 2009-09-15 | Livermore Software Technology Corporation | Method and system for simulating inflation of an enclosed volume with flexible boundary using gas particles |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013109602A1 (en) * | 2012-01-16 | 2013-07-25 | Intel Corporation | Time-continuous collision detection using 3d rasterization |
US20130210520A1 (en) * | 2012-02-10 | 2013-08-15 | Nintendo Co., Ltd. | Storage medium having stored therein game program, game apparatus, game system, and game image generation method |
US11970161B2 (en) | 2018-01-12 | 2024-04-30 | Duke University | Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects |
US11745346B2 (en) | 2018-02-06 | 2023-09-05 | Realtime Robotics, Inc. | Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same |
US11738457B2 (en) | 2018-03-21 | 2023-08-29 | Realtime Robotics, Inc. | Motion planning of a robot for various environments and tasks and improved operation of same |
US11964393B2 (en) | 2018-03-21 | 2024-04-23 | Realtime Robotics, Inc. | Motion planning of a robot for various environments and tasks and improved operation of same |
US12017364B2 (en) | 2019-04-17 | 2024-06-25 | Realtime Robotics, Inc. | Motion planning graph generation user interface, systems, methods and articles |
JP2022536263A (en) * | 2019-06-03 | 2022-08-15 | リアルタイム ロボティクス, インコーポレーテッド | Apparatus, methods and articles for facilitating motion planning in environments with dynamic obstacles |
JP7479064B2 (en) | 2019-06-03 | 2024-05-08 | リアルタイム ロボティクス, インコーポレーテッド | Apparatus, methods and articles for facilitating motion planning in environments with dynamic obstacles - Patents.com |
US10937218B2 (en) * | 2019-07-01 | 2021-03-02 | Microsoft Technology Licensing, Llc | Live cube preview animation |
Also Published As
Publication number | Publication date |
---|---|
KR20080094856A (en) | 2008-10-27 |
US8130220B2 (en) | 2012-03-06 |
KR100888475B1 (en) | 2009-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8130220B2 (en) | Method, medium and apparatus detecting model collisions | |
JP4942517B2 (en) | Collision sensing device and method | |
US9646410B2 (en) | Mixed three dimensional scene reconstruction from plural surface models | |
KR101076807B1 (en) | Ray tracing apparatus and method | |
US8243061B2 (en) | Image processing apparatus and method of controlling operation of same | |
Tang et al. | Interactive continuous collision detection between deformable models using connectivity-based culling | |
US6734853B2 (en) | Method of using view frustrum culling for scaleable collision detection | |
KR102493461B1 (en) | System and Method of rendering | |
CN101615305B (en) | Method and device for detecting collision | |
EP1139296A2 (en) | Apparatus and method for obtaining shape data of analytic surface approximate expression | |
US20110202318A1 (en) | Interference determination device, interference determination method, and computer program product | |
CN109344899A (en) | Multi-target detection method, device and electronic equipment | |
CN109229109A (en) | Judge the method, apparatus, equipment and computer storage medium of vehicle heading | |
US11704859B2 (en) | System and method for accelerated ray tracing | |
US20240203031A1 (en) | System and method for accelerated ray tracing with asynchronous operation and ray transformation | |
CN108958568A (en) | A kind of display, exchange method and the device of three dimentional graph display mean camber UI | |
Low et al. | Efficient constraint evaluation algorithms for hierarchical next-best-view planning | |
Buder | Dense real-time stereo matching using memory efficient semi-global-matching variant based on FPGAs | |
US20080172134A1 (en) | System and method for projecting b-rep outlines to detect collisions along a translational path | |
WO2016178825A1 (en) | Rendering via ray-depth field intersection | |
WO2008026752A1 (en) | Information processing method and information processing apparatus | |
KR102314954B1 (en) | Apparatus for removing reflection image and method thereof | |
CN109031192B (en) | Object positioning method, object positioning device and electronic equipment | |
CN113744404B (en) | Comparison processing method and system of three-dimensional model | |
Dingliana et al. | A voxel-based approach to approximate collision handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AHN, JEONG-HWAN;LEE, KEE-CHANG;REEL/FRAME:020380/0961 Effective date: 20071227 |
|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20240306 |