KR100778310B1 - Apparatus and Method for Detecting Collision in Graphic System - Google Patents

Apparatus and Method for Detecting Collision in Graphic System Download PDF

Info

Publication number
KR100778310B1
KR100778310B1 KR1020060074924A KR20060074924A KR100778310B1 KR 100778310 B1 KR100778310 B1 KR 100778310B1 KR 1020060074924 A KR1020060074924 A KR 1020060074924A KR 20060074924 A KR20060074924 A KR 20060074924A KR 100778310 B1 KR100778310 B1 KR 100778310B1
Authority
KR
South Korea
Prior art keywords
collision
information
depth
target
processing
Prior art date
Application number
KR1020060074924A
Other languages
Korean (ko)
Other versions
KR20070061248A (en
Inventor
김도형
남승우
이인호
Original Assignee
한국전자통신연구원
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US11/634,030 priority Critical patent/US7663630B2/en
Publication of KR20070061248A publication Critical patent/KR20070061248A/en
Application granted granted Critical
Publication of KR100778310B1 publication Critical patent/KR100778310B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은 그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법에 관한 것임.The present invention relates to an apparatus and method for processing collision information in a graphics system.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은 충돌처리 초기에 적재된 기하정보를 좌표변환 정보를 이용하여 좌표를 변환시켜 적재된 기하정보를 재사용하고 이러한 기하정보를 이용하여 주대상 도형과 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하면서도 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신함으로써, 다양한 물체 간의 충돌처리를 지원하며 충돌점, 충돌유무, 충돌깊이를 신속/용이하게 구할 수 있게 하는, 그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법을 제공하는데 그 목적이 있음.The present invention transforms the coordinates loaded at the beginning of the collision process using coordinate transformation information to reuse the loaded geometry information and uses the geometry to collide points between the main object figure and the subordinate object figure (Collision Point), Collision depth and collision depth (T-Value) can be obtained at the same time, but the collision depth is updated according to the comparison result with the previously stored collision depth to support collision processing between various objects. An object of the present invention is to provide an apparatus and method for processing collision information in a graphics system that can be obtained quickly and easily.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

본 발명은, 그래픽 시스템에서의 충돌정보 처리 장치에 있어서, 외부로부터 입력된 주대상 도형의 기하정보와 종대상 도형의 기하정보를 적재하고, 상기 주대상 도형의 기하정보 및 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 출력하기 위한 충돌대상정보 저장 수단; 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환시키기 위한 충돌대상정보 변환 수단; 상기 주대상 도형과 상기 종대상 도형의 기하정보특 성에 의해 결정된 충돌처리 연산방법에 따라, 상기 입력된 주대상 도형의 기하정보과 상기 좌표변환된 각각의 종대상 도형의 기하정보를 이용하여 상기 주대상 도형과 상기 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하기 위한 충돌정보 연산처리 수단; 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 두 개의 저장 영역을 할당하여 갱신 전/후 충돌깊이가 별도로 저장되기 위한 충돌정보 저장 수단; 및 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 수단에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신하기 위한 충돌정보 갱신 수단을 포함함.According to an aspect of the present invention, in a collision information processing apparatus in a graphics system, geometric information of a main object figure and geometric figure of a subordinate object figure input from the outside are loaded and collide with the geometric information of the main object figure and the main object figure. Collision object information storage means for outputting geometric information of a plurality of corresponding object figures to be processed; Collision object information converting means for converting coordinates of the slave object figure to conform to a coordinate system based on the main object figure; According to the collision processing calculation method determined by the geometric information characteristic of the main object figure and the subordinate object figure, the main object using the geometric information of the input main object figure and the geometric information of each of the subordinate target figures converted into coordinates Collision information arithmetic processing means for simultaneously obtaining a collision point, a collision, and a depth of collision between a figure and the subject figure; Collision information storage means for storing the collision point, the presence or absence of the collision depth, and the collision depth, and allocates two storage areas to store the collision depth before and after the update; And the collision point and the presence or absence of the collision point are updated whenever the collision point and the collision state are newly output from the collision information calculation processing means, and the collision depth is updated according to a comparison result with the previously stored collision depth. Including.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 그래픽 시스템에서의 충돌정보 처리 등에 이용됨.The present invention is used for collision information processing in a graphic system.

충돌 처리, 그래픽 시스템, 충돌 처리 엔진, 갱신 엔진, 주대상 도형, 종대상 도형, 기하정보, 식별번호, 형판정보, 충돌점, 충돌유무, 충돌깊이 Collision handling, Graphics system, Collision handling engine, Update engine, Target object, Target object, Geometry, Identification number, Template information, Collision point, Collision presence, Collision depth

Description

그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법{Apparatus and Method for Detecting Collision in Graphic System}Apparatus and Method for Detecting Collision in Graphic System

도 1a 및 도 1b 는 본 발명에 따른 그래픽 시스템에서의 충돌정보 처리 장치의 일실시예 구성도,1A and 1B are diagrams illustrating an embodiment of an apparatus for processing collision information in a graphic system according to the present invention;

도 2 는 본 발명에 따른 충돌정보 처리 장치를 이용한 물리 시뮬레이션을 위한 그래픽 시스템에 대한 일실시예 설명도,2 is a diagram illustrating an embodiment of a graphic system for physics simulation using a collision information processing apparatus according to the present invention;

도 3 은 본 발명에 따른 충돌 검사 중에서 Z 버퍼 테스트와 광추적을 포함하는 그래픽 처리 하드웨어에 대한 일실시예 설명도,3 is a diagram illustrating an embodiment of graphics processing hardware including a Z buffer test and a light trace during a collision check in accordance with the present invention;

도 4 는 본 발명에 따른 충돌 검사 중에서 광추적 또는 광원과 폴리곤과의 충돌을 포함하는 광추적 그래픽 시스템의 일실시예 설명도,4 is a diagram illustrating an embodiment of an optical tracking graphic system including light tracking or collision between a light source and a polygon during collision inspection according to the present invention;

도 5 는 본 발명에 따른 도 1a의 충돌정보 연산처리부에서의 기능선택 신호와 입력정보 유효신호에 따른 충돌처리 과정에 대한 일실시예 흐름도,FIG. 5 is a flowchart illustrating a collision processing procedure based on a function selection signal and an input information valid signal in the collision information calculating unit of FIG. 1A according to the present invention; FIG.

도 6 은 본 발명에 따른 도 1b의 충돌깊이 비교부에서의 비교과정에 대한 일실시예 흐름도,6 is a flow chart of an embodiment of a comparison process in the collision depth comparison unit of FIG. 1B according to the present invention;

도 7a 및 7b 는 본 발명에 따른 도 1b의 충돌정보 갱신부에서의 충돌정보 갱신과정에 대한 일실시예 흐름도,7A and 7B are flowcharts of an embodiment of a collision information updating process in the collision information updating unit of FIG. 1B according to the present invention;

도 8a 는 종래의 충돌 처리 엔진에서의 충돌처리 출력과정에 대한 설명도,8A is an explanatory diagram of a collision processing output process in a conventional collision processing engine;

도 8b 는 본 발명에 따른 도 1a의 충돌정보 연산처리부에서의 충돌처리 출력과정에 대한 일실시예 설명도,FIG. 8B is a diagram illustrating an embodiment of a collision processing output process in the collision information calculating unit of FIG. 1A according to the present invention; FIG.

도 9a 는 종래의 충돌깊이와 형판정보의 갱신 과정에 대한 설명도,9A is an explanatory diagram of a conventional collision depth and update process of template information;

도 9b 는 본 발명에 따른 충돌깊이와 형판정보의 갱신 과정에 대한 일실시예 설명도,9B is an exemplary explanatory diagram for updating a collision depth and template information according to the present invention;

도 10a 는 충돌유무와 충돌대상 식별번호의 갱신 과정에 대한 설명도,10A is an explanatory diagram for updating the presence or absence of a collision and a collision object identification number;

도 10b 는 본 발명에 따른 충돌유무와 충돌대상 식별번호의 갱신 과정에 대한 일실시예 설명도,Figure 10b is an embodiment explanatory diagram for the process of updating the presence and absence of the collision identification number according to the present invention,

도 11a 는 종래의 충돌깊이와 형판정보의 갱신 과정에 대한 설명도,11A is an explanatory diagram for a conventional process of updating the collision depth and the template information;

도 11b 는 본 발명에 따른 서로 다른 프레임의 갱신 충돌깊이와 형판정보의 과정에 대한 일실시예 설명도,11B is a diagram illustrating an embodiment of a process of updating collision depth and template information of different frames according to the present invention;

도 12 는 본 발명에 따른 충돌정보 저장부의 기록 순서에 대한 일실시예 설명도이다.12 is a diagram illustrating an example of a recording sequence of a collision information storage unit according to the present invention.

* 도면의 주요 부분에 대한 부호 설명* Explanation of symbols on the main parts of the drawing

11: 충돌대상정보 저장부 12: 충돌대상정보 변환부11: collision object information storage unit 12: collision object information conversion unit

13: 충돌정보 연산처리부 14: 충돌정보 갱신부13: collision information processing unit 14: collision information updating unit

150: 충돌정보 저장부 111: 기하정보 저장부150: collision information storage 111: geometry information storage

121: 좌표변환부 131: 충돌처리 연산부121: coordinate transformation unit 131: collision processing unit

141: 충돌깊이 비교부 142: 연산결과 갱신부141: collision depth comparison unit 142: calculation result update unit

156: 충돌유무/식별번호 저장부 157: 제 1 충돌깊이/형판정보 저장부156: collision existence / identification number storage unit 157: first collision depth / template information storage unit

158: 제 2 충돌깊이/형판정보 저장부158: second collision depth / template information storage unit

본 발명은 그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 충돌처리 초기에 적재된 기하정보를 좌표변환 정보를 이용하여 좌표를 변환시켜 적재된 기하정보를 재사용하고 이러한 기하정보를 이용하여 주대상 도형과 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하면서도 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신함으로써, 다양한 물체 간의 충돌처리를 지원하며 충돌점, 충돌유무, 충돌깊이를 신속/용이하게 구할 수 있게 하는, 그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법에 관한 것이다.The present invention relates to an apparatus and method for processing collision information in a graphic system. More particularly, the geometric information loaded at the beginning of collision processing is transformed using coordinate transformation information to reuse the loaded geometric information, Using the information, the collision point, collision, and T-value between the main object and the target object can be obtained at the same time, while the collision depth is updated according to the comparison result with the stored collision depth. The present invention relates to an apparatus and method for processing collision information in a graphics system that supports collision processing between various objects and enables to quickly / easily obtain a collision point, existence of collision, and depth of collision.

일반적인 중첩 정보(충돌정보)는 하나의 공간을 단일 물체 또는 적어도 한 개 이상의 물체에 의해 점유되고 있는 정보이다. 다른 관점에서의 중첩 정보는 물체가 다른 물체에 의하여 경계를 침범당하였는지에 대한 판단 정보 계산 즉, 충돌 검사(collision detection)를 통해 계산된 정보이다.General overlapping information (collision information) is information in which one space is occupied by a single object or at least one or more objects. The overlapping information from another point of view is information calculated through calculation of determination information on whether the object is violated by another object, that is, collision detection.

종래의 충돌 검사 기술에는 트리 순회 방법을 이용한 충돌 검사 기술, Z 버 퍼를 이용한 충돌 검사 기술 등이 있다. 이하, 각각 종래기술의 간단한 설명과 그 문제점을 살펴보면 다음과 같다.Conventional collision detection techniques include a collision inspection technique using a tree traversal method, a collision inspection technique using a Z buffer, and the like. Hereinafter, a brief description of the prior art and the problems thereof are as follows.

종래의 충돌검사 기술에는 트리 순회 방법을 이용한 충돌검사 기술이 있는데, 이는 물체의 외곽을 에워싸는 바운딩 박스(Bounding box)를 더 작은 바운딩 박스로 나누어 계층적 트리 구조를 생성하여 두 물체에 대한 계층적 트리를 따라가면서 축정렬 바운딩 박스 간에 충돌 검사하기 위한 것이다. Conventional collision detection techniques include collision traversal techniques using a tree traversal method, which creates a hierarchical tree structure by dividing the bounding box that surrounds an object into smaller bounding boxes to create a hierarchical tree structure. This is to check for collision between axis alignment bounding boxes by following.

하지만, 이러한 종래기술은 물체를 바운딩 박스로 나누어서 계층적인 트리구조를 이용하여 정적인 물체의 충돌검사를 효과적으로 검사할 뿐 동적인 물체에 대해서는 물체의 상태가 바뀔 때마다 바운딩 박스를 재계산하고 계층적 구조를 다시 구성해야 한다는 문제점이 있었다.However, the prior art divides an object into bounding boxes to effectively check collision detection of static objects using a hierarchical tree structure. For dynamic objects, the bounding box is recalculated and hierarchical whenever the state of an object changes. The problem was that the structure had to be restructured.

다른 종래의 충돌검사 기술에는 Z 버퍼(Z-buffer)를 통해 깊이 값을 비교하는 충돌검사 기술이 있는데, 이는 충돌 검사 유닛에 저장되어 있는 Z 깊이 정보와 현재의 Z 깊이 정보를 비교하여 두 물체의 충돌을 판단하기 위한 것이다. Another conventional collision detection technique is a collision detection technique that compares depth values through a Z-buffer, which compares the current Z depth information stored in the collision inspection unit with the current Z depth information. It is to judge the collision.

하지만, 이러한 종래기술은 단순한 충돌 여부만을 결과로 얻을 뿐 충돌여부, 충돌점, 충돌 깊이를 얻기 곤란하다는 문제점이 있었다.However, such a prior art has a problem in that it is difficult to obtain only whether a collision is a result of a simple collision or not, a collision point, a collision point and a collision depth.

본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 충돌처리 초기에 적재된 기하정보를 좌표변환 정보를 이용하여 좌표를 변환시켜 적재된 기하정보를 재사용하고 이러한 기하정보를 이용하여 주대상 도형과 종대상 도형 간의 충돌 점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하면서도 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신함으로써, 다양한 물체 간의 충돌처리를 지원하며 충돌점, 충돌유무, 충돌깊이를 신속/용이하게 구할 수 있게 하는, 그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, by converting the coordinates of the geometric information loaded at the beginning of the collision process using coordinate transformation information to reuse the loaded geometric information and using the geometric information and the main target figure and species. Supports collision processing between various objects by simultaneously obtaining collision points, collisions, and T-values between target figures, and updating the collision depths according to comparison results with previously stored collision depths. It is an object of the present invention to provide an apparatus and method for processing collision information in a graphic system, which enables to quickly / easily obtain a collision point, a collision presence, and a collision depth.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. It will also be appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기 목적을 달성하기 위한 본 발명은, 그래픽 시스템에서의 충돌정보 처리 장치에 있어서, 외부로부터 입력된 주대상 도형의 기하정보와 종대상 도형의 기하정보를 적재하고, 상기 주대상 도형의 기하정보 및 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 출력하기 위한 충돌대상정보 저장 수단; 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환시키기 위한 충돌대상정보 변환 수단; 상기 주대상 도형과 상기 종대상 도형의 기하정보특성에 의해 결정된 충돌처리 연산방법에 따라, 상기 입력된 주대상 도형의 기하정보과 상기 좌표변환된 각각의 종대상 도형의 기하정보를 이용하여 상기 주대상 도형과 상기 종대상 도형 간의 충돌점(Collision Point), 충 돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하기 위한 충돌정보 연산처리 수단; 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 두 개의 저장 영역을 할당하여 갱신 전/후 충돌깊이가 별도로 저장되기 위한 충돌정보 저장 수단; 및 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 수단에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신하기 위한 충돌정보 갱신 수단을 포함한다. In order to achieve the above object, the present invention provides a collision information processing apparatus in a graphic system, comprising: loading geometric information of a main object figure and geometry information of a slave object figure inputted from the outside; Collision object information storage means for outputting geometric information of a plurality of corresponding object figures to be subjected to a collision processing operation with the main object figure; Collision object information converting means for converting coordinates of the slave object figure to conform to a coordinate system based on the main object figure; According to the collision processing calculation method determined by the geometry information characteristics of the main object figure and the subordinate object figure, the main object using the geometric information of the input main object figure and the geometric information of each of the subordinate target figures converted into coordinates Collision information calculation processing means for simultaneously obtaining a collision point, a collision, and a depth of collision between a figure and the subject object figure; Collision information storage means for storing the collision point, the presence or absence of the collision depth, and the collision depth, and allocates two storage areas to store the collision depth before and after the update; And the collision point and the presence or absence of the collision point are updated whenever the collision point and the collision state are newly output from the collision information calculation processing means, and the collision depth is updated according to a comparison result with the previously stored collision depth. It includes.

한편, 본 발명은, 그래픽 시스템에서의 충돌정보 처리 방법에 있어서, 외부로부터 입력된 주대상 도형의 기하정보와 종대상 도형의 기하정보를 적재하고, 상기 주대상 도형의 기하정보 및 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 출력하는 충돌대상정보 저장 단계; 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환하는 충돌대상정보 변환 단계; 상기 주대상 도형과 상기 종대상 도형의 기하정보특성에 의해 결정된 충돌처리 연산방법에 따라, 상기 입력된 주대상 도형의 기하정보과 상기 좌표변환된 각각의 종대상 도형의 기하정보를 이용하여 상기 주대상 도형과 상기 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하는 충돌정보 연산처리 단계; 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 두 개의 저장 영역을 할당하여 갱신 전/후 충돌깊이가 별도로 저장하는 충돌정보 저장 단계; 및 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 단계에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신하는 충돌정보 갱신 단계를 포함한 다. On the other hand, the present invention, in the collision information processing method in the graphics system, the geometric information of the main object figure and the geometry of the subordinate object figure input from the outside is loaded, the geometric information of the main object figure and the main object figure And a collision object information storage step of outputting geometric information of a plurality of corresponding object figures to be subjected to a collision processing operation; A collision object information converting step of converting coordinates of the slave object figure to correspond to a coordinate system based on the main target figure; According to the collision processing calculation method determined by the geometry information characteristics of the main object figure and the subordinate object figure, the main object using the geometric information of the input main object figure and the geometric information of each of the subordinate target figures converted into coordinates A collision information operation processing step of simultaneously obtaining a collision point, a collision, and a depth of a T-value between a figure and the slave object figure; A collision information storage step of storing the collision points, the existence of collisions, and the collision depths, and separately storing the collision depths before and after updating by allocating two storage areas; And the collision point and the presence or absence of the collision point are updated each time the collision point and the collision state are newly output in the collision information calculation processing step, and the collision depth is updated according to a comparison result with the previously stored collision depth. Include.

중첩 정보 계산 또는 충돌 추적(이하 충돌 검사)과정은 병렬 처리가능한 연산 속성을 가진다. N 개의 물체가 존재하는 경우에 n×n개의 충돌 확인 연산을 수행하며, 이러한 연산들은 상호 의존성을 고려하지 않고 개별적으로 동시에 처리가능하다. Nesting information calculation or collision tracking (hereinafter collision checking) has a parallel processing property. When there are N objects, n × n collision checking operations are performed, and these operations can be processed simultaneously independently without considering interdependencies.

본 발명은 이러한 충돌 추적을 하드웨어로 구현하는 경우, 전용 하드웨어와 CPU간의 데이터 교환 최소화, 전용 하드웨어에 적재된 데이터에 대한 재사용성 최대화, 전용 하드웨어에 의하여 계산된 결과에 대한 재사용성 최대화, 전용 하드웨어에 의하여 계산된 결과 저장 단계에서의 병목 현상 최소화라는 디자인 이슈(Design issue)를 해결하기 위한 것이다.According to the present invention, when the collision tracking is implemented in hardware, the minimization of data exchange between dedicated hardware and CPU, maximization of reusability for data loaded in dedicated hardware, maximization of reusability for the result calculated by dedicated hardware, It is to solve the design issue of minimizing the bottleneck in the result storage step calculated by the method.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1a 및 도 1b 는 본 발명에 따른 그래픽 시스템에서의 충돌정보 처리 장치의 일실시예 구성도이다. 여기서, 두 개의 도면으로 나타낸 도 1a와 도 1b는 서로 이어진 구성도이다. 즉, 도 1a의 A와 도 1b의 A', 도 1a의 B와 도 1b의 B', 도 1a 의 C와 도 1b의 C'는 각각 이어져 있다.1A and 1B are diagrams illustrating an embodiment of a collision information processing apparatus in a graphic system according to the present invention. Here, FIG. 1A and FIG. 1B shown in two drawings are configuration diagrams connected to each other. That is, A of FIG. 1A, A 'of FIG. 1B, B' of FIG. 1A, B 'of FIG. 1B, C of FIG. 1A, and C' of FIG. 1B are connected, respectively.

그래픽 시스템에서의 충돌정보 처리 장치는, 도 1a 및 도 1b에 도시된 바와 같이, 충돌대상정보 저장부(11), 충돌대상정보 변환부(12), 충돌정보 연산처리부(13), 충돌정보 갱신부(14), 충돌정보 저장부(15)를 포함하여 이루어진다.As shown in FIGS. 1A and 1B, the collision information processing apparatus in the graphic system includes a collision object information storage unit 11, a collision object information conversion unit 12, a collision information calculation processor 13, and collision information update. The unit 14 and the collision information storage unit 15 is made.

충돌대상정보 저장부(11)는 기하정보 저장부(Geometry data buffer)(111), 종대상 도형 주소지정 레지스터(Secondary_Address_register)(112), 메모리 제어부(Memory Controller)(113), 종대상 도형 정보파일레지스터(Secondary_data_register_file)(114), 주대상 도형 정보파일레지스터(Primary_data_register_file)(115), 개수 레지스터(Count_register)(116)를 포함한다.The collision object information storage unit 11 includes a geometry data buffer 111, a secondary geometry address addressing register 112, a memory controller 113, and a geometry object information file. A register (Secondary_data_register_file) 114, a main object figure information file register (Primary_data_register_file) 115, and a count register (Count_register) 116 are included.

기하정보 저장부(111)는 전용 하드웨어와 CPU간의 데이터 교환 최소화를 위하여, 외부로부터 충돌처리 초기과정에 종대상 도형의 기하정보를 적재한다. 이러한 기하정보는 충돌 연산 도중에 변경되지 않는 기하 정보를 의미한다. 기하정보 저장부(111)는 연산과정에서 반복적으로 이용되는 데이터를 저장함으로써 응용 프로그램 초기에 전용 하드웨어에 기하정보가 적재된 이후에는 반복 적재(upload)과정을 거치지 않게 한다.The geometric information storage unit 111 loads geometric information of the target object figure in the initial process of collision processing from the outside in order to minimize data exchange between the dedicated hardware and the CPU. Such geometric information refers to geometric information that does not change during a collision operation. The geometric information storage unit 111 stores data that is repeatedly used in the calculation process so that the geometric information storage unit 111 does not undergo an iterative upload process after the geometric information is loaded in dedicated hardware at the beginning of the application program.

종대상 도형 주소지정 레지스터(112)는 기하정보 저장부(111)에서 적재된 종대상 도형의 기하정보에 대한 주소지정 레지스터 값을 저장한다.The slave target figure addressing register 112 stores an addressing register value for the geometric information of the slave figure loaded in the geometry information storage 111.

메모리 제어부(113)는 종대상 도형 주소지정 레지스터(112)에서 저장되고 있는 종대상 도형의 주소지정 레지스터 값에 기반하여 기하정보 저장부(111)로부터 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 읽어오는 기능을 수행한다.The memory control unit 113 performs a plurality of collision processing operations with the main target figure from the geometry information storage unit 111 based on the addressing register value of the target figure stored in the target figure addressing register 112. Performs a function to read the geometry of the subject object.

종대상 도형 정보파일 레지스터(114)는 기하정보 저장부(111)로부터 불러온 종대상 도형의 기하정보를 저장한다. 이러한 정보호출과정은 기하정보 저장부(111)가 종대상 도형의 기하정보를 저장해 놓음으로써 정보호출과정에 의한 데이터 교환을 최소화하고 데이터 공급 및 적재를 위한 전용 하드웨어의 대기 시간을 줄여 전용 하드웨어와 CPU 간의 데이터 교환을 최소화하기 위함이다.The slave target figure information file register 114 stores geometric information of the slave figure retrieved from the geometry information storage 111. In this information call process, the geometry storage unit 111 stores geometric information of the target object figure, thereby minimizing data exchange due to the information call process and reducing the waiting time of dedicated hardware for data supply and loading. This is to minimize the data exchange between them.

주대상 도형 정보파일 레지스터(115)는 외부로부터 상기 주대상 도형의 기하정보를 적재한다. 주대상 도형 정보파일 레지스터(115)는 두 물체 간의 충돌 중에서 첫 번째 물체에 해당하는 주대상 도형과 관련된 정보파일을 저장한다.The main object graphics information file register 115 loads geometric information of the main object graphics from the outside. The main object figure information file register 115 stores an information file related to the main object figure corresponding to the first object among collisions between two objects.

개수 레지스터(116)는 주대상 도형의 개수 및 종대상 도형의 개수를 저장한다. 이러한 대상도형의 개수를 곱셈하여 충돌 연산의 개수를 구하게 된다. 중첩 정보 계산 또는 충돌 추적(이하 충돌 검사)은 병렬 처리할 수 있는 연산 속성이 있다. N 개의 물체가 존재하는 경우에 n×n개의 충돌 확인 연산을 하여야 하며, 이러한 연산들은 상호 의존성을 고려하지 않고 개별적으로 동시에 처리하는 것이 가능하다. 개수 레지스터(116)는 대상도형의 개수를 저장함으로써 총 충돌 연산의 개수를 구하게 된다.The number register 116 stores the number of main object figures and the number of subordinate object figures. The number of collision operations is obtained by multiplying the number of object shapes. Nested information calculation or collision tracking (hereinafter collision checking) has a computational attribute that can be processed in parallel. When there are N objects, n × n collision checking operations must be performed. These operations can be processed simultaneously independently without considering interdependencies. The number register 116 obtains the total number of collision operations by storing the number of object figures.

한편, 충돌대상정보 변환부(12)는 좌표 변환부(Transformer)(121), 좌표변환 정보파일 저장부(Transformation_register_file)(122)를 포함한다.On the other hand, the collision object information conversion unit 12 includes a coordinate transform unit (Transformer) 121, the coordinate transformation information file storage unit (Transformation_register_file) 122.

좌표 변환부(121)는 좌표변환 정보에 따라 종대상 도형의 좌표를 주대상 도 형을 기준으로 하는 좌표계에 부합되게 변환시키고 좌표 변환된 종대상 도형의 기하정보를 충돌정보 연산처리부(13)로 입력시킨다. 즉, 좌표 변환부(121)는 전용 하드웨어에 적재된 데이터에 대한 재사용성 최대화를 위하여, 객체 좌표계(Object coordinate system)상의 물체가 표준 좌표계(World coordinate system)상에서 복수 개로 존재하는 경우에 객체 좌표계상의 물체를 복사하여 표준 좌표계상에서 복사된 복수의 객체를 적용한다. 좌표 변환부(121)는 복수 개로 존재하는 경우에 이러한 복수 개의 물체정보를 재사용하기 위한 것이다. The coordinate conversion unit 121 converts the coordinates of the slave object figure according to the coordinate system based on the main target figure according to the coordinate transformation information, and converts the geometric information of the coordinate target slave figure to the collision information calculation processor 13. Enter it. That is, in order to maximize reusability of the data loaded in the dedicated hardware, the coordinate conversion unit 121 has a plurality of objects on the object coordinate system in the world coordinate system. Copies an object and applies multiple objects copied on the world coordinate system. The coordinate transformation unit 121 is for reusing the plurality of pieces of object information when there are a plurality of pieces.

예를 들면, 교실 내의 의자들과 책상들은 객체 좌표계 상에서 동일한 물체들이며 이러한 의자들과 책상들은 교실(표준 좌표계)이라는 공간 내에 복수 개가 존재한다. 이러한 의자들과 책상들은 모두 분리하여 취급되지 않고 복사본 개념을 도입함으로써 기하정보 저장부(111)의 저장 공간을 절약할 수 있고 하드웨어의 수행 성능을 개선할 수 있다. 복수 개의 의자 데이터를 모두 별도로 저장하지 아니하고, 단일 의자 데이터만을 기하정보 저장부(111)에 저장하고 좌표 변환을 적용하여 적재된 데이터에 대한 재사용성을 최대화한다.For example, chairs and desks in a classroom are the same objects on an object coordinate system, and there are a plurality of such chairs and desks in a space called a classroom (standard coordinate system). These chairs and desks are not handled separately, but by introducing a copy concept, it is possible to save the storage space of the geometric information storage unit 111 and improve the performance of hardware. Instead of storing a plurality of chair data separately, only single chair data is stored in the geometry storage unit 111 and coordinate transformation is applied to maximize reusability of the loaded data.

좌표변환 정보파일 저장부(122)는 좌표 변환부(121)에서 변환하기 위한, 종대상 도형의 좌표를 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환시키는 좌표변환 정보를 외부로부터 입력받아 저장한다. 예를 들어, 삼각형이 사람의 팔을 나타내는 경우를 생각해 보면, 이러한 삼각형은 사람이 걸어다니거나 또는 팔의 움직임에 따라서 공간적으로 이동하게 된다. 공간적인 처리를 위하여 좌표 변환부(121)가 존재하며 종대상 도형 정보파일 레지스터(114)에서 저장하고 있는 정보 가 좌표 변환부(121)로 전달된다. 이때 좌표변환 정보파일 저장부(122)는 좌표 변환을 위한 기본 값, 즉 좌표변환정보(예를 들어, 이동 정보 또는 회전 정보)를 저장하고 있다가 좌표변환정보를 좌표 변환부(121)로 전달한다.The coordinate transformation information file storage unit 122 receives and stores coordinate transformation information for converting the coordinates of the slave object figure in accordance with the coordinate system based on the main target figure for conversion by the coordinate transformation unit 121 from the outside. . For example, consider the case where a triangle represents a person's arm. This triangle moves spatially as the person walks or moves the arm. Coordinate transformation unit 121 exists for spatial processing, and information stored in the target object figure information file register 114 is transferred to the coordinate transformation unit 121. In this case, the coordinate conversion information file storage unit 122 stores basic values for coordinate transformation, that is, coordinate transformation information (for example, movement information or rotation information), and then transfers the coordinate transformation information to the coordinate transformation unit 121. do.

충돌정보 연산처리부(13)는 충돌처리 연산부(Collision detection engine)(131), 충돌점 레지스터(CP_register)(132), 충돌유무 레지스터(F_register)(133), 충돌깊이 레지스터(T_register)(134)를 포함한다. 간단하게 설명하면, 충돌정보 연산처리부(13)는 주대상 도형과 종대상 도형의 기하정보특성에 의해 결정된 충돌처리 연산방법에 따라, 입력된 주대상 도형의 기하정보과 좌표변환된 각각의 종대상 도형의 기하정보를 이용하여 주대상 도형과 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구한다. The collision information operation processor 13 may include a collision detection operation unit (Collision detection engine) 131, a collision point register (CP_register) 132, a collision existence register (F_register) 133, and a collision depth register (T_register) 134. Include. In brief, the collision information calculation processing unit 13 performs geometric processing of the input main target figure and the coordinate target transformation of each target figure according to the collision processing calculation method determined by the geometry information characteristics of the main target figure and the target figure. Using the geometric information of, the collision point (Collision Point), the collision (Flag) and the collision depth (T-Value) between the main object and the target object are simultaneously obtained.

충돌처리 연산부(131)는 주대상 도형 정보파일 레지스터(115)로부터 적재된 주대상 도형의 기하정보, 좌표 변환부(121)로부터 변환된 종대상 도형의 기하정보에 대한 기능선택 신호(Function selector)를 통해 충돌처리 방법을 결정한다. 충돌처리 연산부(131)는 결정된 충돌처리 방법을 이용한 충돌정보 처리연산을 수행하여 물체 간 충돌한 지점에 대한 충돌점(Collision Point), 충돌이 일어났는지 여부에 대한 충돌유무(Flag), 충돌 물체 간 서로 겹쳐진 정도에 대한 충돌깊이(T-Value)를 출력한다.The collision processing operation unit 131 is a function selector for the geometric information of the main target figure loaded from the main target figure information file register 115 and the geometric information of the subordinate target figure converted from the coordinate transformation unit 121. Determine the collision handling method through. The collision processing unit 131 performs a collision information processing operation using the determined collision processing method, a collision point for a collision point between objects, a collision for whether a collision has occurred, a flag, a collision between collision objects, and the like. Outputs the collision depth (T-Value) of the overlapping degree.

충돌 검사시에 입력되는 기능선택신호(Function selector)는 입력되는 주대상 도형, 종대상 도형에 대한 구성정보에 대한 것이다. 충돌처리 연산부(131)는 이 러한 기능선택신호를 기반으로 입력된 대상도형의 기하정보에 대한 구성을 파악함으로써 충돌 검사 시에 필요한 충돌처리 계산 방법을 결정한다.The function selector signal input at the time of collision inspection is for configuration information about the main object figure and the subordinate object figure to be input. The collision processing operation unit 131 determines the collision processing calculation method required for collision inspection by grasping the configuration of the geometric information of the object shape input based on the function selection signal.

하드웨어의 특성상 메모리로부터 읽어오는 데이터는 일정 시간 이후에 충돌처리 연산부(131)에 도달하게 된다. 따라서 입력정보 유효신호(Input_data_valid)는 현재 입력된 값이 유효한 데이터인지를 확인해주는 기능을 수행한다.Due to the nature of the hardware, the data read from the memory reaches the collision processing unit 131 after a predetermined time. Therefore, the input information valid signal Input_data_valid performs a function of checking whether the current input value is valid data.

또한, 충돌처리 연산부(131)는 충돌 처리 대상에 따라 일정한 시간 이후부터 유효한 값을 출력하게 되는데 출력정보 유효신호(Output_data_valid)를 출력하여 충돌정보 검사부(13)로부터 출력된 신호의 유효여부를 알려준다.In addition, the collision processing unit 131 outputs a valid value after a predetermined time according to the collision processing target, and outputs an output information valid signal Output_data_valid to inform whether the signal output from the collision information inspecting unit 13 is valid.

충돌 연산 출력 값은 기존에 저장되어 있던 값과 비교하여야 한다. 충돌처리 연산부(131)는 충돌깊이 선행패치신호(T_prefatch)를 출력하여 기존의 값을 읽어오는데 지연 시간이 발생하므로 미리 기존에 저장된 값을 읽어오는 기능을 수행한다.Collision operation output value should be compared with previously stored value. The collision processing unit 131 outputs a collision depth preceding patch signal T_prefatch and thus a delay time occurs in reading an existing value, thus performing a function of reading a previously stored value.

충돌점 레지스터(132), 충돌유무 레지스터(133), 충돌깊이 레지스터(134)는 각각 충돌처리 연산부(131)에서 검사된 충돌점 결과, 신규 충돌유무 결과, 신규 충돌깊이 결과를 저장한다. The collision point register 132, the collision existence register 133, and the collision depth register 134 respectively store the collision point result, the new collision existence result, and the new collision depth result checked by the collision processing operation unit 131.

충돌정보 갱신부(14)는 충돌깊이 비교부(Comparator)(141), 연산결과 갱신부(Update engine)(142), 식별 시작값 레지스터(Start_position_register)(143), 식별번호 증감유무 레지스터(Inc_register)(144), 식별번호 생성부(Counter generator)(145)를 포함한다. 간단하게 설명하면, 충돌정보 갱신부(14)는 충돌점, 충돌유무는 충돌정보 연산처리부(13)에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신한다. The collision information update unit 14 includes a collision depth comparator 141, an operation result update unit 142, an identification start value register (Start_position_register) 143, and an identification number increase / decrease register (Inc_register). 144, an identification number generator 145. In brief, the collision information update unit 14 updates the collision point and the presence or absence of the collision every time the collision point and the collision state are newly output from the collision information calculation processing unit 13, and the collision depth is the same as the previously stored collision depth. Update according to the comparison result.

충돌깊이 비교부(141)는 기존에 저장되어 있던 이전의 충돌깊이 결과를 읽어와서 충돌깊이 레지스터(134)에 저장된 신규 충돌깊이 결과와 비교모드에 따라 비교한다. 예를 들면, 비교 모드는 비교방법 선택신호(Compare mode)에 따라 미만(less than), 이하(less than or equal), 일치(equal), 불일치(not equal), 초과(greater than), 이상(greater than or equal) 중에서 하나의 비교 방법이 선택된다.The collision depth comparison unit 141 reads the previous collision depth result previously stored and compares the result with the new collision depth result stored in the collision depth register 134 according to the comparison mode. For example, the comparison mode may be less than, less than or equal, equal, not equal, greater than, or greater depending on the compare mode selection signal. greater than or equal).

연산결과 갱신부(142)는 충돌점, 충돌유무는 충돌정보 연산처리부(13)에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 충돌깊이는 충돌깊이 비교부(141)에서 기저장된 충돌깊이와의 비교 결과에 따라 갱신한다. 즉, 충돌깊이 비교부(141)에서의 비교결과에 따른 3가지 연산 결과들을 해당 저장부에 저장하여 비교결과를 갱신하는 기능을 수행한다. 연산결과 갱신부(142)는 이전의 충돌점은 상기 출력된 충돌점으로, 이전의 충돌유무 및 충돌대상 식별번호는 상기 생성된 충돌대상 식별번호 및 상기 출력된 충돌유무로, 이전의 충돌깊이는 상기 비교된 결과에 해당하는 충돌깊이로 갱신한다. The arithmetic result update unit 142 updates the collision point and the presence or absence of the collision every time a collision point and the presence of the collision are newly output from the collision information calculation processing unit 13, and the collision depth is a pre-stored collision in the collision depth comparison unit 141. Update according to the result of comparison with depth. That is, the collision depth comparison unit 141 stores the three calculation results according to the comparison result in the corresponding storage unit to update the comparison result. The calculation result update unit 142 is a previous collision point is the output collision point, the previous collision and the collision target identification number is the generated collision target identification number and the output collision presence, the previous collision depth The collision depth corresponding to the result of the comparison is updated.

또한, 연산결과 갱신부(142)는 3가지 연산 결과들 중 일부만 저장하기를 원하는 경우에 개별저장여부 선택신호(Buffer enabler)에 따라 3가지 연산 결과중 일부만을 저장하도록 한다.In addition, the calculation result update unit 142 stores only some of the three calculation results according to the individual storage selection signal (Buffer enabler) when it is desired to store only some of the three calculation results.

식별 시작값 레지스터(143)는 충돌대상 식별번호(Index)의 초기값을 지정한다. 여기서, 충돌대상 식별번호는 충돌유무 결과와 함께 묶어서 저장된다.The identification start value register 143 specifies the initial value of the collision target identification number (Index). Here, the collision object identification number is stored together with the result of collision.

식별번호 증감유무 레지스터(144)는 충돌대상 식별번호(index)의 증감 유무 를 지정하는데, 연산 결과를 저장할 때마다 1씩 증가된 값을 저장할지 또는 같은 값을 저장할지를 지정한다.The identification number increase / decrease register 144 specifies whether the collision target index (index) increases or decreases, and specifies whether to store the value increased by 1 or the same value each time the operation result is stored.

식별번호 생성부(145)는 식별 시작값 레지스터(143)로부터 지정된 충돌대상 식별번호의 초기값을 전달받아 식별번호 증감유무 레지스터(144)에서 지정된 충돌대상 식별번호의 증감유무에 따라 충돌대상 식별번호를 생성한다. 식별번호 생성부(145)는 생성된 충돌대상 식별번호를 연산결과 갱신부(142)로 전달한다.The identification number generation unit 145 receives the initial value of the collision object identification number specified from the identification start value register 143, according to the presence or absence of the collision object identification number specified in the identification number increase or decrease register 144, the collision object identification number Create The identification number generation unit 145 transmits the generated collision object identification number to the calculation result update unit 142.

충돌정보 저장부(15)는 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 제 1 메모리 제어부(Memory controller)(151), 제 2 메모리 제어부(152), 제 3 메모리 제어부(153), 제 4 메모리 제어부(154), 충돌점 저장부(CP buffer)(155), 충돌유무/식별번호 저장부(F&Index buffer)(156), 제 1 충돌깊이/형판정보 저장부(Stencil&T buffer 0)(157), 제 2 충돌깊이/형판정보 저장부(Stencil&T buffer 1)(158), 저장위치 레지스터(Issue register)(159)를 포함한다. The collision information storage unit 15 stores the collision point, the presence or absence of the collision, and the depth of collision, and stores the collision information, the first memory controller 151, the second memory controller 152, the third memory controller 153, A fourth memory control unit 154, a collision point storage unit (CP buffer) 155, a collision existence / identification number storage unit (F & Index buffer) 156, a first collision depth / plate information storage unit (Stencil & T buffer 0) ( 157), a second collision depth / template information storage unit (Stencil & T buffer 1) 158, and a storage location register (159).

간단하게 설명하면, 충돌정보 저장부(15)는 전용 하드웨어에 의하여 계산된 결과에 대한 재사용성 최대화하기 위하여, 시스템 내부에 충돌점, 충돌유무, 충돌깊이에 대한 저장부(155 내지 158)가 각각 존재한다. 각각의 버퍼(155 내지 158)와 충돌깊이 비교부(141)가 존재함으로써 연산된 결과에 대하여 반복적 연산을 재적용하는 것이 가능하다.In brief, the collision information storage unit 15 has a storage unit 155 to 158 for the collision point, the presence of collision, and the depth of collision in the system in order to maximize the reusability of the result calculated by the dedicated hardware. exist. Since the buffers 155 to 158 and the collision depth comparison unit 141 exist, it is possible to reapply the iterative operation on the calculated result.

또한, 충돌정보 저장부(15)는 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 두 개의 저장 영역(제 1 충돌깊이/형판정보 저장부(157), 제 2 충돌깊이/형판정보 저장부(158))을 할당하여 갱신 전/후 충돌깊이가 별도로 저장되게 한다. In addition, the collision information storage unit 15 stores the collision point, the presence or absence of the collision, and the depth of collision, two storage areas (first collision depth / template information storage unit 157, second collision depth / template information storage Section 158) so that the collision depth before and after the update is stored separately.

제 1 메모리 제어부(151), 제 2 메모리 제어부(152), 제 3 메모리 제어부(153), 제 4 메모리 제어부(154)는 연산결과 갱신부(142)에서 갱신된 충돌점 결과, 충돌유무 결과, 충돌깊이 결과를 해당 저장부(155 내지 158)에 저장하도록 제어한다.The first memory control unit 151, the second memory control unit 152, the third memory control unit 153, and the fourth memory control unit 154 may include the collision point result updated by the operation result update unit 142, the collision presence result, The collision depth result is controlled to be stored in the storage units 155 to 158.

충돌점 저장부(155)는 연산결과 갱신부(142)로부터 충돌점을 전달받아 저장한다.The collision point storage unit 155 receives the collision point from the operation result update unit 142 and stores the collision point.

충돌유무/식별번호 저장부(156)는 연산결과 갱신부(142)로부터 충돌유무/식별번호를 전달받아 저장한다. The collision existence / identification number storage unit 156 receives the collision existence / identification number from the operation result update unit 142 and stores it.

제 1 충돌깊이/형판정보 저장부(157) 및 제 2 충돌깊이/형판정보 저장부(158)는 충돌깊이 결과를 저장하는데 0, 1 두 개의 버퍼가 존재하여 0번에서 읽어들여 비교 결과를 1에 저장하거나 또는 1에서 읽어들여 0번에 저장하며 이의 선택은 충돌깊이결과 저장선택신호(T_buffer_selector)에 의해 이루어진다. The first collision depth / template information storage unit 157 and the second collision depth / template information storage unit 158 store the collision depth results. Stored at or read from 1 and stored at 0, the selection is made by the collision depth result storage selection signal (T_buffer_selector).

여기서, 제 1 충돌깊이/형판정보 저장부(157) 및 제 2 충돌깊이/형판정보 저장부(158)는 2개의 충돌깊이 저장부(157, 158)를 이용하여 전용 하드웨어에 의하여 계산된 결과 저장 단계에서의 병목 현상 최소화한다. 만약, 충돌깊이 관련 버퍼가 하나인 경우에는 새로운 연산 결과와 기존 결과에 대한 비교 및 기록 과정에 대한 읽기/쓰기 동작이 두 번이나 필요하다. 따라서 이러한 읽기/쓰기 과정에 대해서는 2배의 동작 속도가 요구된다. 2배의 동작 속도는 가능하지 않기 때문에, 이러한 경우에는 수행 연산 속도를 1/2로 떨어뜨려야만 한다. 하지만, 본 발명은 충돌깊이 버퍼를 2개 존재시킴으로써 동일한 동작 속도로도 새로운 연산 결과를 기존 데이터 와 비교하고 기록하는 것이 가능하다. Here, the first collision depth / template information storage unit 157 and the second collision depth / template information storage unit 158 store the results calculated by the dedicated hardware using the two collision depth storage units 157 and 158. Minimize bottlenecks in stages. If there is only one buffer related to the collision depth, two read / write operations are required for comparing and writing a new operation result and an existing result. Therefore, twice the operation speed is required for this read / write process. Since twice the speed of operation is not possible, in this case the performance computation must be reduced to half. However, the present invention allows two collision depth buffers to be used to compare and record new calculation results with existing data at the same operating speed.

저장위치 레지스터(159)는 충돌점 결과, 충돌유무 결과, 충돌깊이 결과를 해당 저장부의 저장위치에 대한 정보를 저장한다. The storage location register 159 stores the collision point result, the collision presence result, and the collision depth result about the storage location of the storage unit.

이하, 본 발명에 따른 그래픽 시스템에서의 충돌정보 처리 방법에 대한 실시예로 선분과 삼각형의 충돌 검사 과정을 살펴보기로 한다. Hereinafter, a collision checking process of a line segment and a triangle will be described as an embodiment of the collision information processing method in the graphic system according to the present invention.

우선, 선분 10개와 삼각형 10개간의 충돌 검사를 가정하면 앞에 있는 선분 10개는 주대상 도형이고 뒤의 삼각형 10개는 종대상 도형으로 가정한다. First, assuming a collision check between 10 line segments and 10 triangles, it is assumed that the front 10 lines are the main object shape and the back 10 triangles are the object shapes.

삼각형 10개의 기하 정보들은 기하정보 저장부(111)에 저장된다. 충돌 검사에 필요한 기하 정보는 종대상 도형 주소지정 레지스터(112) 값에 기반하여 메모리 제어부(113)가 불러들여 종대상 도형 정보파일레지스터(114)에 저장된다. Ten pieces of geometric information are stored in the geometric information storage unit 111. The geometric information necessary for the collision check is loaded by the memory control unit 113 based on the value of the target figure addressing register 112 and stored in the target figure information file register 114.

만약, 10개의 삼각형이 사람의 팔을 나타내는 경우를 생각해 보면 이러한 삼각형은 사람이 걸어다니거나 또는 팔을 움직임에 따라서 공간적으로 이동하게 된다. 이와 같은 공간적인 처리를 위하여, 좌표 변환부(121)가 존재하며 종대상 도형 정보파일 레지스터(114)의 값이 좌표 변환부(121)로 전달된다. 이때 좌표 변환을 위한 기본 값, 즉 얼마나 이동하였고 회전하였는가 하는 정보는 좌표변환 정보파일 저장부(122)를 통해서 좌표 변환부(121)로 전달된다. If we consider a case where ten triangles represent a human's arm, these triangles move spatially as the person walks or moves the arm. For such spatial processing, a coordinate transformation unit 121 exists and the value of the target object figure information file register 114 is transmitted to the coordinate transformation unit 121. At this time, the basic value for the coordinate transformation, that is, how much moved and rotated, is transmitted to the coordinate transformation unit 121 through the coordinate transformation information file storage unit 122.

선분 10개의 기하 정보들은 주대상 도형 정보파일 레지스터(115)에 저장되어 있으며, 10개라는 개수 정보는 개수 레지스터(116)에 저장된다.The ten pieces of geometric information are stored in the main object figure information file register 115, and the ten pieces of information are stored in the number register 116.

그러면, 충돌처리 연산부(131)는 첫 번째 선분과 10개의 삼각형에 관한 충돌 처리 연산을 수행한 후, 차례대로 두 번째, 세 번째 선분의 순서로 10개의 삼각형 에 관한 충돌 처리 연산을 연속적으로 수행한다. Then, the collision processing unit 131 performs collision processing operations on the first line segment and 10 triangles, and then sequentially performs collision processing operations on 10 triangles in the order of the second and third line segments. .

실시예는 선분과 삼각형을 대상으로 하지만 하나 입력 대상 도형은 정육면체, 삼각뿔 등 다양한 도형이 가능하다. 이러한 출동대상에 대한 정보들은 기능선택신호에 의해 충돌처리 연산부(131)로 전달된다. 그러면, 충돌처리 연산부(131)는 기능선택신호에 따라 입력된 주대상 도형 또는 종대상 도형의 기하정보를 파악하여 충돌 처리과정을 결정하게 된다. Although an embodiment targets a line segment and a triangle, the input target figure may be various shapes such as a cube and a triangular pyramid. The information about the dispatch target is transmitted to the collision processing operation unit 131 by the function selection signal. Then, the collision processing operation unit 131 determines the collision process by grasping the geometric information of the main object figure or the slave object figure according to the function selection signal.

하드웨어의 특성상 메모리로부터 읽어오는 데이터는 일정 시간 이후에 충돌처리 연산부(131)에 입력된다. 따라서 현재 입력된 값이 유효한 정보인지를 알려주는 신호가 필요한데, 이러한 기능을 수행하는 신호가 입력정보 유효신호이다. Due to the nature of hardware, data read from the memory is input to the collision processing unit 131 after a predetermined time. Therefore, a signal indicating whether the currently input value is valid information is required. A signal for performing this function is an input information valid signal.

또한, 충돌처리 연산부(131)는 충돌 처리 대상에 따라 일정한 시간 이후부터 유효한 값을 출력하게 되는데 출력정보 유효신호를 이용하여 충돌정보 검사부(13)로부터 출력된 신호의 유효여부를 알려준다.In addition, the collision processing operation unit 131 outputs a valid value after a predetermined time according to the collision processing target, and informs whether the signal output from the collision information inspection unit 13 is valid using the output information valid signal.

충돌 연산 출력 값은 기존에 계산되어 저장되어 있던 값과 비교하여야 한다. 충돌깊이 선행패치신호는 기존의 값을 읽어오는데 역시 지연 시간이 발생하므로 미리 기존에 저장된 값을 읽어오라는 신호이다. The collision calculation output value should be compared with the previously calculated and stored values. The collision depth prefetch signal is a signal to read the previously stored value because there is a delay time to read the existing value.

충돌처리 연산부(131)는 충돌점 결과, 충돌유무 결과, 충돌깊이 결과를 출력하며 3가지 연산 결과를 해당 레지스터에 저장하는데 이러한 레지스터는 충돌점 레지스터(132), 충돌유무 레지스터(133), 충돌깊이 레지스터(134)이다.The collision processing unit 131 outputs a collision point result, a collision presence result, and a collision depth result and stores three calculation results in a corresponding register. The registers include a collision point register 132, a collision existence register 133, and a collision depth. Is the register 134.

충돌깊이 비교부(141)는 기존에 저장되어 있던 충돌깊이를 읽어와서 충돌 연산 결과와 비교한다. 비교 모드는 비교 방법 선택 신호에 따라 미만, 이하, 일치, 불일치, 초과, 이상 중에서 하나의 비교 방법이 선택된다.The collision depth comparison unit 141 reads the collision depth previously stored and compares the collision depth with the collision calculation result. In the comparison mode, one comparison method is selected from among less than, less than, equal to, disagreeable, greater than or more than the comparison method selection signal.

충돌깊이 비교부(141)의 결과에 따라서 3가지 연산 결과들은 해당 버퍼들에 저장된다. 만약 3가지 연산 결과들 중 일부만 저장하고자 하는 경우 개별저장 여부 선택신호에 따라 개별 저장된다.According to the result of the collision depth comparison unit 141, three calculation results are stored in the corresponding buffers. If only some of the three calculation results are to be stored, they are stored individually according to the individual storage selection signal.

또한, 충돌깊이를 저장하는 버퍼는 제 1 충돌깊이/형판정보 저장부(157), 제 2 충돌깊이/형판정보 저장부(158)로 두 개의 버퍼가 존재한다. 충돌정보 갱신부(14)는 충돌깊이결과 저장선택신호에 따라 제 1 충돌깊이/형판정보 저장부(157)에서 기존의 충돌깊이를 읽어들여 비교 결과를 제 2 충돌깊이/형판정보 저장부(158)에 저장하거나 또는 제 2 충돌깊이/형판정보 저장부(158)에서 기존의 충돌깊이를 읽어들여 제 1 충돌깊이/형판정보 저장부(157)에 저장한다. 또한, 저장위치 레지스터는 충돌 결과들을 저장하는 해당 버퍼의 위치를 지정한다. In addition, two buffers exist for the first collision depth / plate information storage unit 157 and the second collision depth / plate information storage unit 158. The collision information update unit 14 reads the existing collision depth from the first collision depth / plate information storage unit 157 according to the collision depth result storage selection signal, and compares the comparison result with the second collision depth / plate information storage unit 158. ) Or the existing collision depth is read from the second collision depth / template information storage unit 158 and stored in the first collision depth / template information storage unit 157. The storage location register also specifies the location of the buffer in which collision results are stored.

여기서, 연산 결과 이외에 함께 저장되는 정보는 충돌정보 식별번호와 형판정보가 있다. 형판정보는 충돌깊이 비교부(141)로 전달되는 값이며, 충돌정보 식별번호는 충돌깊이와 묶어서 저장되는 값이다. 충돌정보 식별번호의 초기값은 식별 시작값 레지스터(143)에 의해서 지정되며, 연산 결과를 저장할 때마다 1씩 증가한 값을 저장할지 또는 동일한 값을 저장할지는 식별번호 증감유무 레지스터(144)에 의해서 지정된다. 이러한 충돌대상 식별번호는 식별번호 생성부(Counter generator)(143)에 의해서 생성되어 연산결과 갱신부(142)로 전달된다.Here, the information stored together with the calculation result includes a collision information identification number and template information. The template information is a value transmitted to the collision depth comparison unit 141, and the collision information identification number is a value stored in a bundle with the collision depth. The initial value of the collision information identification number is designated by the identification start value register 143, and is designated by the identification number increase / decrease register 144 whether to store the value increased by 1 or the same value each time the operation result is stored. do. The collision object identification number is generated by an identification number generator 143 and transferred to the calculation result update unit 142.

물체 간의 충돌 검사는 3차원 그래픽 데이터 디스플레이를 위한 Z 버퍼(Z-buffer) 테스트, 렌더링 시스템의 광 추적(ray-tracing)을 고속으로 처리하기 위한 하드웨어, 물리 시뮬레이션에서 물체 간의 충돌 처리 등에 이용되고 있다. 이하, 본 발명에 따른 충돌 검사를 이용한 물리 시뮬레이션을 위한 그래픽 시스템, 그래픽 처리 하드웨어, 광 추적 그래픽 시스템을 도 2 내지 도 4를 참조하여 설명하기로 한다.Collision checking between objects is used for Z-buffer testing for displaying 3D graphic data, hardware for processing ray-tracing of a rendering system at high speed, and collision handling between objects in physics simulation. . Hereinafter, a graphic system, a graphics processing hardware, and an optical tracking graphic system for physics simulation using a collision check according to the present invention will be described with reference to FIGS. 2 to 4.

도 2 는 본 발명에 따른 충돌 검사를 포함하는(또는 충돌 검사로 구성되는) 물리 시뮬레이션을 위한 그래픽 시스템의 설명도이다.2 is an explanatory diagram of a graphics system for physics simulation including (or consisting of) collision checking in accordance with the present invention.

물리법칙 적용 과정(20)은 충돌 유무 확인(Collsion detection)(21), 힘 축적기(Force accumulator)(22), 제약 조건 풀이기(Constrained dynamics solver)(23), 상태 갱신기(State update)(24)를 포함하며, 충돌 검사를 이용하여 3차원 공간에서 물체들 간의 충돌 여부, 충돌점, 충돌 거리 등을 계산한다.The physics law application process 20 includes collision detection 21, force accumulator 22, constraints dynamics solver 23, and state updater. (24), and calculates the collision, collision point, collision distance, etc. between the objects in the three-dimensional space using the collision check.

충돌 유무 확인에 대한 세부 과정(21)은 충돌 유무를 확인하고(Determine collision)(211), 충돌유무가 확인된 경우에 충돌 점을 계산한다(Find collision point)(212). 그리고 반사 방향을 계산한다(Reflection vector caculation)(213).Detailed process 21 for checking whether there is a collision checks whether there is a collision (Determine collision) 211, and calculates a collision point when the collision is confirmed (Find collision point) 212. The reflection direction is then calculated (Reflection vector caculation) (213).

힘 축적기에 대한 세부 과정(22)은 운동접촉 조건힘 계산(Colliding contact force)(221), 정지접촉 조건힘 계산(Resting contact force)(222), 마찰력 계산(Frictional force calculation)(223), 전체 힘 방향 계산(Total force calculation)(224)순으로 수행된다.The detailed process 22 for the force accumulator includes the following methods: Colliding contact force 221, Resting contact force 222, Friction force calculation 223, Total force calculation 224 is performed in this order.

상태 갱신기에 대한 세부 과정(24)은 선형가속도/각가속도 계산(Linear/angular acceleration calculation)(241), 선형속도/각속도 계산(Linear/angular velocity calculation)(242), 위치 및 회전 정보 갱신(Position and rotation uptate)(243)순으로 수행된다.The detailed process (24) for the status updater includes linear / angular acceleration calculation (241), linear / angular velocity calculation (242), position and rotation information update (Position and rotation uptate) (243).

도 3 은 본 발명에 따른 충돌 검사 중에서 Z 버퍼 테스트와 광추적(ray-tracing)을 포함하는 그래픽 처리 하드웨어의 설명도이다.3 is an explanatory diagram of graphics processing hardware including a Z buffer test and ray-tracing during a collision check in accordance with the present invention.

그래픽 파이프를 이용한 충돌 검사는 Z 버퍼(Z-buffer) 테스트에 이용되고 있으며, 본 발명에 따른 충돌깊이 비교부(141)를 이용하여 효율적으로 계산된다.The collision check using the graphic pipe is used for the Z-buffer test, and is efficiently calculated using the collision depth comparison unit 141 according to the present invention.

그래픽스 하드웨어 전체 요약(Graphics HW overview)(30)은 고정/프로그래머블 기하정보 변환기(Geometry transform engine Fixed/progrmmable pipeline)(31), 고정/프로그래머블 화점 변환기(Rasterizer Fixed/programmable pipeline)(32)를 포함한다. Graphics HW overview 30 includes a Geometry transform engine Fixed / progrmmable pipeline 31 and a Rasterizer Fixed / programmable pipeline 32. .

고정/프로그래머블 기하정보 변환기에 대한 세부과정(31)은 정점 변환(Vertex transform)(311), 정점별 광원 계산(Light per vertex calculation)(312), 가려진 불필요한 정점 제거(Culling)(313), 투영(Projection)(314) 순으로 수행된다.The detailed process (31) for fixed / programmable geometry transforms includes vertex transform (311), light per vertex calculation (312), masking unnecessary vertices (313), and projections. Projection 314 is performed in this order.

고정/프로그래머블 화점 계산기에 대한 세부과정(32)은 삼각형 설정(Triangle setup)(321), 깊이값 분해기(Z, Fragmant interpolator)(322), 깊이값 비교/화점 계산(Z-test, pixel blend)(323) 순으로 수행된다.The detailed process (32) for the fixed / programmable point calculator (Triangle setup) (321), the depth interpolator (Z) (322), depth value comparison / point calculation (Z-test, pixel blend) 323 is performed in order.

도 4 는 본 발명에 따른 충돌 검사 중에서 광추적 또는 광원과 폴리곤과의 충돌을 포함하는 광추적 그래픽 시스템의 설명도이다. 4 is an explanatory diagram of a light tracking graphic system including light tracking or collision between a light source and a polygon during a collision test according to the present invention.

광추적 그래픽 시스템은 조명(lighting)에 대한 가시성(visibility) 테스트를 위하여 광원(ray)과 폴리곤(polygon) 간의 충돌 테스트를 하게 되며, 본 발명의 충돌 검사 엔진으로 광원-폴리곤 간의 충돌 검사를 효율적으로 할 수 있다. The light tracking graphic system performs a collision test between a light source and a polygon for a visibility test on lighting, and the collision detection engine of the present invention efficiently checks the collision between the light source and the polygon. can do.

광추적 하드웨어 전체 요약(Ray tracing HW overview)(40)은 광원 배열, 광-폴리곤 교차 테스트(Ray casting, ray-polygon intersection test)(41), 명암(Shading)(42)을 포함한다.Ray tracing HW overview 40 includes a light source array, ray casting, ray-polygon intersection test 41, and shading 42.

광원 배열, 광원-폴리곤 교차 테스트(41)는 각각의 픽셀에 대한 광원 생성(Create ray for each pixel)(411), 장면안으로 광원 삽입(Cast ray into scene)(412), 장면 가로지름, 광원-폴리곤 교차 테스트(Scene traverse and ray-polygon intersection test)(413), 가까운 교차점 발견(Find closest intersection)(414) 순으로 수행된다.The light source array, light source-polygon intersection test 41 includes Create ray for each pixel 411, Cast ray into scene 412, Cross Scene, Light Source- The polygon traverse and ray-polygon intersection test 413 and the find closest intersection 414 are performed in this order.

명암에 대한 세부과정(42)은 U/V 발견(Find U/V), 점광원의 가시성 결정(Determine visibility of point light)(422), 반복적인 광추적에 의한 반사/굴절 광선 계산(Compute reflected/refracted light by recursively ray tracing)(423) 순으로 수행된다.The details of the contrast (42) include finding U / V, determining the visibility of point light (422), and calculating the reflected / refractive light by iterative light tracking. / refracted light by recursively ray tracing) (423).

도 5 는 본 발명에 따른 도 1a의 충돌정보 연산처리부에서의 기능선택 신호와 입력정보 유효신호에 따른 충돌처리 과정에 대한 일실시예 흐름도이다.FIG. 5 is a flowchart illustrating a collision processing procedure according to a function selection signal and an input information valid signal in the collision information calculation processor of FIG. 1A according to the present invention.

도 5에 도시된 바와 같이 기능선택 신호와 입력정보 유효신호에 의한 과정을 살펴보면, 충돌처리 연산부(131)는 입력정보 유효신호가 입력(502)되면 기능선택 신호에 의해 선택된 함수(Function)에 따라 일정 주기가 지난 후 출력정보 유효신호와 충돌깊이 선행패치신호를 활성화시킨다(Activate)(504).Referring to the process of the function selection signal and the input information valid signal, as shown in FIG. 5, when the input information valid signal is input 502, the collision processing operation unit 131 is based on a function selected by the function selection signal. After a predetermined period, the output information valid signal and the collision depth preceding patch signal are activated (Activate) (504).

반대로, 충돌처리 연산부(131)는 입력정보 유효신호가 입력(502)되지 않으면 기능선택 신호에 의해 선택된 함수의 일정 주기 이후, 출력정보 유효신호와 충돌깊이 선행패치신호를 비활성화시킨다(Deactivate)(506).In contrast, the collision processing operation unit 131 deactivates the output information valid signal and the collision depth preceding patch signal after a predetermined period of the function selected by the function selection signal if the input information valid signal is not input 502 (506). ).

기능선택 신호에 의한 데이터 경로(Datapath)과정을 살펴보면, 주대상 도형과 변형된 종대상 도형 관련 정보가 입력된 후(512), 기능선택 신호가 디멀티플렉서(De-MUX: De-Multiplexer)로 입력된다. 그러면 함수 0, 함수 1, 함수 n-1는 입력된 기능선택 신호에 따라 충돌검사를 수행하고(516) 검사된 결과를 멀티플렉서(MUX: Multiplexer)에서 다중화하여(518) 충돌점 결과, 충돌유무 결과, 충돌깊이 결과를 출력한다(520).Looking at the data path process by the function selection signal, after the information related to the main object figure and the transformed slave object figure is input (512), the function selection signal is input to the de-multiplexer (De-MUX). . Then, the function 0, the function 1, and the function n-1 perform a collision check according to the input function selection signal (516) and multiplex the checked result in a multiplexer (MUX: Multiplexer) (518). The collision depth result is output (520).

도 6 은 본 발명에 따른 도 1b의 충돌깊이 비교부에서의 비교과정에 대한 일실시예 흐름도이다.FIG. 6 is a flowchart illustrating a comparison process in the collision depth comparison unit of FIG. 1B according to the present invention. FIG.

충돌깊이 비교부(141)는 신규 충돌깊이(New_T)와 이전 충돌깊이(Old_T)를 읽어온다(602). 그러면 충돌깊이 비교부(141)는 비교방법 선택신호에 따라 비교방법을 달리하여(604) 충돌처리 연산부(131)에서 결정된 충돌깊이들 중에서 가장 작은 값 또는 가장 큰 값을 선택한다. 비교방법 선택신호는 0 내지 3까지 신호로 주어지는데, 각각 미만, 이하, 초과, 이상에 해당하는 함수를 통하여 신규 충돌깊이와 이전 충돌깊이를 비교한다(606, 612, 618, 624).The collision depth comparison unit 141 reads the new collision depth New_T and the previous collision depth Old_T (602). Then, the collision depth comparison unit 141 selects the smallest value or the largest value among the collision depths determined by the collision processing operation unit 131 by changing the comparison method according to the comparison method selection signal (604). The comparison method selection signal is given as a signal from 0 to 3, and compares the new collision depth and the previous collision depth through functions corresponding to less than, less than, less than, more than, respectively (606, 612, 618, 624).

비교방법 선택신호(Compare_mode)가 0이 선택된 경우(즉, 미만) 신규 충돌깊이와 이전 충돌깊이를 비교하여(606) 신규 충돌깊이가 이전 충돌깊이 미만이면 최종 충돌깊이를 신규 충돌깊이로 정하고(608), 신규 충돌깊이가 이전 충돌깊이 이상이면 최종 충돌깊이를 이전 충돌깊이로 정한다(610).When the comparison method selection signal (Compare_mode) is selected (i.e., less than 0), the new collision depth is compared with the previous collision depth (606). If the new collision depth is less than the previous collision depth, the final collision depth is determined as the new collision depth (608). If the new collision depth is greater than or equal to the previous collision depth, the final collision depth is determined as the previous collision depth (610).

비교방법 선택신호가 1이 선택된 경우(이하)(612), 비교방법 선택신호가 2가 선택된 경우(초과)(618), 비교방법 선택신호가 3이 선택된 경우(이상)(624)에 대해서도 동일하게 적용한다.The same applies when the comparison method selection signal 1 is selected (hereinafter) 612, when the comparison method selection signal 2 is selected (greater than) (618), and when the comparison method selection signal 3 is selected (greater) (624). Apply.

그러고 나서 비교방법 선택신호에 따라 결정된 최종 충돌깊이를 충돌깊이 버퍼에 쓴다(630).Then, the final collision depth determined according to the comparison method selection signal is written to the collision depth buffer (630).

도 7a 및 7b 는 본 발명에 따른 도 1b의 충돌정보 갱신부에서의 충돌정보 갱신과정에 대한 일실시예 흐름도이다.7A and 7B are flowcharts illustrating an embodiment of a collision information update process in the collision information update unit of FIG. 1B according to the present invention.

연산결과 갱신부(142)는 충돌정보 검사부(13)로부터 출력된 결과값을 메모리에 갱신(update)하고, 메모리에 저장되어 있던 이전 값(Old value)을 충돌깊이 비교부(141)에 전달해준다. 여기서, 개별저장 여부 선택신호, 출력정보 유효신호, 충돌깊이 선행패치신호, 충돌깊이결과 저장선택신호에 따른 연산결과 갱신부(142)에서의 동작을 도 7을 참조하여 살펴보면 다음과 같다.The operation result updater 142 updates the result value output from the collision information checker 13 to the memory and transfers the old value stored in the memory to the collision depth comparison unit 141. . Here, the operation of the operation result update unit 142 according to the individual storage selection signal, the output information valid signal, the collision depth preceding patch signal, and the collision depth result storage selection signal will be described with reference to FIG. 7.

먼저, 충돌깊이 선행패치신호와 충돌깊이결과 저장선택신호에 따른 연산결과 갱신부(142)의 동작은 충돌깊이 선행패치신호가 입력되면(702) 충돌깊이결과 저장선택신호가 0인지를 확인하고, 충돌깊이 선행패치신호가 입력되지 않는 경우는 동작하지 않는다. 그리고 충돌깊이결과 저장선택신호가 0인 경우에는 제 2 충돌깊이/형판정보 저장부(158)로부터 충돌깊이를 읽어와서 충돌깊이 비교부(141)에 입력시킨다(706). 한편, 충돌깊이결과 저장선택신호가 0이 아닌 경우에는 제 1 충돌깊이/형판정보 저장부(157)로부터 충돌깊이를 읽어와서 충돌깊이 비교부(141)에 입력시킨다(708).First, the operation of the operation result update unit 142 according to the collision depth preceding patch signal and the collision depth result storage selection signal, when the collision depth preceding patch signal is input (702), checks whether the collision depth result storage selection signal is 0, It does not operate when the collision depth preceding patch signal is not input. When the collision depth result storage selection signal is 0, the collision depth is read from the second collision depth / plate information storage unit 158 and input to the collision depth comparison unit 141 (706). On the other hand, if the collision depth result storage selection signal is not 0, the collision depth is read from the first collision depth / plate information storage unit 157 and input to the collision depth comparison unit 141 (708).

다음으로, 출력정보 유효신호와 충돌깊이결과 저장선택신호에 따른 연산결과 갱신부(142)의 동작은 출력정보 유효신호가 유효한지를 확인하여(712), 유효한 경우는 갱신 유효신호(Update_flag valid)가 유효한지를 확인하고(714) 유효하지 않은 경우에는 동작하지 않는다. 그리고나서 갱신 유효신호가 입력된 경우에 충돌깊이결과 저장선택신호가 0 인지를 확인하여(716) 0인 경우에는 제 1 충돌깊이/형판정보 저장부(157)에 최종 충돌깊이 결과를 저장하고(718), 충돌깊이결과 저장선택신호가 0 이 아닌 경우에는 제 2 충돌깊이/형판정보 저장부(158)에 충돌깊이 결과를 저장한다.Next, the operation of the operation result update unit 142 according to the output information valid signal and the collision depth result storage selection signal checks whether the output information valid signal is valid (712), and if the update valid signal (Update_flag valid) is valid, If it is not valid (714), it does not operate. Then, when the update valid signal is input, it is checked whether the collision depth result storage selection signal is 0 (716), and when the update valid signal is 0, the final collision depth result is stored in the first collision depth / template information storage unit 157 ( 718), if the collision depth result storage selection signal is not 0, the collision depth result is stored in the second collision depth / plate information storage unit 158.

마지막으로, 충돌깊이/형판정보 저장부로부터 출력정보 유효신호, 개별저장 여부 선택신호, 형판정보에 따른 연산결과 갱신부(142)의 동작은 출력정보 유효신호가 유효한지를 확인하여(722), 유효한 경우에 형판정보가 무효인지를 확인하고(724) 출력정보 유효신호가 유효인 경우에는 동작하지 않는다. 그리고 형판정보가 무효한 경우에는 충돌연산 결과(충돌점, 충돌유무, 충돌깊이)에 대하여 각각의 충돌연산 결과가 개별저장 여부 선택신호에 의해 허용되는지 여부를 확인하여(726) 허용되면 충돌연산 결과를 기록하고(728) 충돌연산 결과가 허용되지 않으면 동작하지 않는다.Finally, the operation result update unit 142 according to the output information valid signal, the individual storage selection signal, the template information from the collision depth / template information storage unit checks whether the output information valid signal is valid (722). If it is determined that the template information is invalid (724), it does not operate when the output information valid signal is valid. If the template information is invalid, the collision calculation result (collision point, collision presence, collision depth) is checked whether each collision calculation result is allowed by the individual storage selection signal (726). (728) and if the collision operation result is not allowed, it does not operate.

도 8a 는 종래의 충돌 처리 엔진에서의 충돌처리 출력과정에 대한 설명도이고, 도 8b 는 본 발명에 따른 도 1a의 충돌정보 연산처리부에서의 충돌처리 출력과정에 대한 일실시예 설명도이다.8A is an explanatory diagram illustrating a collision processing output process in a conventional collision processing engine, and FIG. 8B is a diagram illustrating an example of a collision processing output process in the collision information calculating unit of FIG. 1A according to the present invention.

종래의 충돌 검사 엔진(81, 82)은, 도 8a에 도시된 바와 같이, 하나의 결과 만을 출력하고 있으며 충돌 유무 결과(Flag: whether collide or not)(811) 또는 충돌 깊이 결과(T: in case of ray-tracing)(812) 중 어느 하나만을 출력한다.The conventional collision inspection engines 81 and 82 output only one result, as shown in FIG. 8A, and collide or not (Flag) 811 or collision depth result (T: in case). only one of the ray-tracing (812).

한편, 본 발명에 따른 충돌처리 연산부(131)는, 도 8b에 도시된 바와 같이, 다중출력(Multiple output)으로 충돌점 결과(831), 충돌유무 결과(832), 충돌깊이 결과(832)를 함께 출력한다.On the other hand, the collision processing unit 131 according to the present invention, as shown in Figure 8b, multiple outputs (Multiple output) the collision point result 831, the collision presence result 832, the collision depth result 832 And print it out together.

도 9a 는 종래의 충돌깊이와 형판정보의 갱신 과정에 대한 설명도이고, 도 9b 는 본 발명에 따른 충돌깊이와 형판정보의 갱신 과정에 대한 일실시예 설명도이다.9A is an explanatory diagram of a conventional collision depth and template information update process, and FIG. 9B is a diagram illustrating an example of an update process of the collision depth and template information according to the present invention.

종래의 입출력 값을 갱신하는 과정은 형판정보와 충돌깊이에 해당하는 별도의 메모리 컨트롤러(92, 93)를 통하여 형판정보 버퍼(94), 충돌깊이 버퍼(95)에 각각 저장한다. 이러한 저장구조는 하드웨어 라우팅 효율을 떨어트려서 낮은 클록으로 갱신과정이 진행되게 하는 요인으로 작용한다. 즉, 저성능으로 갱신과정이 동작하게 된다. The conventional process of updating the input / output value is stored in the template information buffer 94 and the collision depth buffer 95 through separate memory controllers 92 and 93 corresponding to the template information and the collision depth, respectively. This storage structure reduces the hardware routing efficiency and causes the update process to proceed with a lower clock. That is, the update process is operated with low performance.

그러나 본 발명에 따른 충돌깊이 결과를 저장하는 과정에서는 형판정보와 충돌깊이 결과를 묶어서 연산결과 갱신부(142)에서 입출력하기 때문에 제 3 메모리 제어부(153)를 통해 제 1 충돌깊이/형판정보 저장부(157)로 충돌깊이/형판정보가 함께 전달되어 고성능으로 동작가능하다.However, in the process of storing the collision depth result according to the present invention, since the template information and the collision depth result are combined and inputted and output by the operation result update unit 142, the first collision depth / plate information storage unit is transmitted through the third memory controller 153. Collision depth / template information is conveyed to the (157) to enable high performance.

도 10a 는 종래의 충돌유무와 충돌대상 식별번호의 갱신 과정에 대한 설명도이고, 도 10b 는 본 발명에 따른 충돌유무와 충돌대상 식별번호의 갱신 과정에 대한 일실시예 설명도이다.10A is an explanatory diagram of a conventional collision and update process of a collision object identification number, and FIG. 10B is a diagram illustrating an embodiment of a collision process and update process of a collision object identification number according to the present invention.

종래의 입출력 값을 갱신하는 과정은 충돌유무 결과와 충돌대상 식별번호에 해당하는 별도의 메모리 컨트롤러(1002, 1003)를 통하여 충돌유무 버퍼(10044), 식별번호 버퍼(1005)에 각각 저장한다. 이러한 저장구조는 하드웨어 라우팅 효율을 떨어트려서 낮은 클록으로 갱신과정이 진행되게 하는 요인으로 작용하며, 저성능으로 갱신과정이 동작하게 된다.The conventional process of updating the input / output value is stored in the collision existence buffer 10044 and the identification number buffer 1005 through separate memory controllers 1002 and 1003 corresponding to the collision presence result and the collision object identification number, respectively. Such a storage structure reduces the hardware routing efficiency and causes the update process to proceed with a low clock, and the update process operates with low performance.

그러나 본 발명에 따른 충돌유무 결과와 충돌대상 식별번호를 저장하는 과정에서는 충돌유무 결과와 충돌대상 식별번호를 묶어서 연산결과 갱신부(142)로부터 입출력하기 때문에 하나의 제 2 메모리 제어부(152)와 충돌유무/식별번호 저장부(156)를 통하여 고성능으로 동작가능하다.However, in the process of storing the collision existence result and the collision object identification number according to the present invention, since the collision existence result and the collision object identification number are bundled and inputted and outputted from the operation result update unit 142, the collision with one second memory controller 152 is performed. It is possible to operate with high performance through the presence / identification number storage unit 156.

도 11a 는 종래의 충돌깊이와 형판정보의 갱신 과정에 대한 설명도, 도 11b 는 본 발명에 따른 서로 다른 프레임의 갱신 충돌깊이와 형판정보의 과정에 대한 일실시예 설명도이다.11A is an explanatory diagram of a conventional collision depth and update process of template information, and FIG. 11B is an explanatory diagram of an update collision depth and a process of template information of different frames according to the present invention.

종래의 충돌깊이 결과와 형판정보를 갱신하는 과정은, 도 11a에 도시된 바와 같이, 갱신 엔진(1111)은 메모리 컨트롤러(1112)를 통해 충돌깊이 버퍼(1114)로부터 충돌깊이 결과를 읽어온 즉시 다시 저장해야 하기 때문에, 저장 성능이 떨어지고 디자인하기 곤란한 점이 있다. 또한, 갱신 엔진(1111)은 메모리 컨트롤러(1113)를 통해 충돌깊이 버퍼(1115)로부터 충돌깊이 결과를 읽어온 즉시 다시 저장한다.The process of updating the conventional collision depth result and template information is performed as soon as the update engine 1111 reads the collision depth result from the collision depth buffer 1114 through the memory controller 1112 as shown in FIG. 11A. Because of the storage needs, storage performance is poor and it is difficult to design. In addition, the update engine 1111 stores the collision depth result from the collision depth buffer 1115 through the memory controller 1113 and immediately stores it again.

그러나 본 발명에 따른 충돌깊이 결과를 갱신하는 홀수 프레임(Odd frame)인 경우에, 제 3 메모리 제어부(153)를 통해 제 1 충돌깊이/형판정보 저장부(157)로부터 이전의 충돌깊이/형판정보가 호출되어 연산결과 갱신부(142)로 전달된다. 이후 전달된 충돌깊이/형판정보는 연산결과 갱신부(142)에서 갱신되고, 갱신된 충돌깊이/형판정보는 제 4 메모리 제어부(154)를 통해 제 2 충돌깊이/형판정보 저장부(158)에 기록된다.However, in the case of an odd frame updating the collision depth result according to the present invention, the previous collision depth / template information from the first collision depth / template information storage unit 157 through the third memory controller 153. Is called and transferred to the operation result update unit 142. Afterwards, the transmitted collision depth / plate information is updated in the calculation result update unit 142, and the updated collision depth / plate information is transmitted to the second collision depth / plate information storage unit 158 through the fourth memory controller 154. Is recorded.

또한, 충돌깊이 결과를 갱신하는 짝수 프레임(Even frame)인 경우에, 메모리 컨트롤러(154)를 통해 제 2 충돌깊이/형판정보 저장부(158)로부터 이전의 충돌깊이/형판정보가 호출되어 연산결과 갱신부(142)로 전달된다. 이후, 전달된 충돌깊이/형판정보는 연산결과 갱신부(142)에서 갱신되고, 갱신된 충돌깊이/형판정보는 제 4 메모리 제어부(154)를 통해 제 2 충돌깊이/형판정보 저장부(158)에 기록된다.In addition, in the case of an even frame updating the collision depth result, the previous collision depth / plate information is called from the second collision depth / template information storage unit 158 through the memory controller 154 to calculate the calculation result. It is transmitted to the update unit 142. Thereafter, the transmitted collision depth / plate information is updated in the calculation result update unit 142, and the updated collision depth / plate information is transmitted through the fourth memory controller 154 to the second collision depth / plate information storage unit 158. Is written on.

이러한 충돌깊이 결과의 갱신 과정은 데이터의 경로가 단방향이므로 처리 성능이 높이고 하드웨어 디자인을 용이하게 하기 위함이다.The process of updating the collision depth result is to improve processing performance and facilitate hardware design since the data path is unidirectional.

도 12 는 본 발명에 따른 충돌정보 저장부의 기록 순서에 대한 일실시예 설명도이다.12 is a diagram illustrating an example of a recording sequence of a collision information storage unit according to the present invention.

충돌점 저장부(155), 충돌유무/식별번호 저장부(156), 제 1 충돌깊이/형판정보 저장부(157), 제 2 충돌깊이/형판정보 저장부(158)는, 도 12에 도시된 바와 같이, 버퍼의 효율적인 기록을 위하여 갱신될 값들이 결정되면 버퍼 또는 메모리에 쓸 때 기록 순서를 주대상 도형의 개수(m)와 종대상 도형의 개수(n)에 따라 순차적으로 기록한다. The collision point storage unit 155, the collision existence / identification number storage unit 156, the first collision depth / plate information storage unit 157, and the second collision depth / plate information storage unit 158 are illustrated in FIG. 12. As described above, when the values to be updated are determined for efficient recording of the buffer, the writing order is sequentially recorded according to the number m of the main target figure and the number n of the target figure when writing to the buffer or memory.

예를 들면, 두 개의 물체군 간의 충돌 추적을 수행하는 경우, 첫 번째 물체군의 물체 개수를 m이라 하고, 두 번째 물체 군의 물체 개수를 n이라 하였을 때 충돌 확인을 위한 경우의 수는 m×n개가 된다. 메모리는 비록 선형(linear address) 으로 존재하나 의미적으로는 2차원적 공간이다. 하드웨어에서는 1×n개의 충돌 연산을 기본 단위로 m 회 반복하게 된다. 이때, 앞의 대상 물체 군을 주대상도형, 뒤의 대상 물체 군을 종대상 도형으로 하고 버퍼에 대한 기록 방향을 결과(0, 0), 결과(1, 0), …, 결과(n, 0)대로 기록하고 차례대로 주대상 도형 1 내지 주대상 도형 m-1까지 연산을 수행하여 최종적으로 결과(m-1, n-1)를 기록한다.For example, when collision tracking between two object groups is performed, when the number of objects in the first object group is m and the number of objects in the second object group is n, the number of cases for collision checking is m × n pieces. Although memory exists as a linear address, it is semantically two-dimensional. In hardware, 1 × n collision operations are repeated m times in basic units. At this time, the first target object group is the main target figure, the second target object group is the final target figure, and the recording direction for the buffer is the result (0, 0), the result (1, 0),. Then, the results are recorded as the result (n, 0), and the operations are performed in order from the main object figure 1 to the main object figure m-1 in order, and finally, the result m-1 and n-1 are recorded.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

상기와 같은 본 발명은, 충돌처리 초기에 적재된 기하정보를 반복적으로 이용하거나 적재된 기하정보의 좌표를 변환하여 충돌정보 처리에 재사용함으로써, 데이터 교환을 최소화하여 데이터 공급 및 적재를 위한 전용 하드웨어의 대기 시간을 줄여 전체 수행 성능을 개선할 수 있으며, 정적인 물체뿐만 아니라 동적인 물체 간 의 충돌을 하드웨어를 이용하여 실시간으로 충돌 검사할 수 있게 하는 효과가 있다.The present invention as described above, by repeatedly using the geometric information loaded at the beginning of the collision process or by transforming the coordinates of the loaded geometric information and reused in the collision information processing, by minimizing the data exchange of the dedicated hardware for data supply and loading By reducing the waiting time, the overall performance can be improved, and collisions between dynamic objects as well as static objects can be checked in real time using hardware.

또한, 본 발명은, 충돌처리 연산과정을 통해 충돌점, 충돌유무, 충돌깊이를 계산하고 그 계산결과와 이전의 충돌정보를 비교하여 신규 충돌정보로 갱신함으로써, 다양한 물체(예를 들어, 구, 박스, 원기둥, 광선, 삼각형) 간의 충돌처리를 지원하며 충돌점, 충돌유무, 충돌깊이를 신속/용이하게 출력할 수 있게 하는 효과가 있다. In addition, the present invention, by calculating the collision point, the presence of collision, the depth of collision through the collision processing operation process and compares the calculation result and the previous collision information to update the new collision information, various objects (for example, sphere, It supports collision processing between boxes, cylinders, rays, and triangles, and has the effect of quickly / easily outputting collision points, existence of collisions, and collision depths.

또한, 본 발명은, 충돌대상과 관련된 데이터를 모두 분리하여 취급하지 않고 복사본 개념을 도입함으로써, 기하정보의 저장 공간을 절약할 수 있으며 하드웨어의 수행 성능을 개선할 수 있게 하는 효과가 있다.In addition, the present invention has the effect of saving the storage space of the geometric information and improving the performance of hardware by introducing a copy concept without separating and handling all data related to the collision object.

또한, 본 발명은, 실시간 물리 시뮬레이션, 힘의 정보궤환(Force feedback)이 요구되는 어플리케이션 등의 그래픽 시스템에 활용될 수 있게 하는 효과가 있다.In addition, the present invention has an effect that can be utilized in graphics systems, such as real-time physics simulation, applications requiring force feedback.

Claims (13)

그래픽 시스템에서의 충돌정보 처리 장치에 있어서,In the collision information processing apparatus in the graphics system, 외부로부터 입력된 주대상 도형의 기하정보와 종대상 도형의 기하정보를 적재하고, 상기 주대상 도형의 기하정보 및 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 출력하기 위한 충돌대상정보 저장 수단;Loading geometry information of the main target figure and geometry information of the subordinate target figure inputted from the outside, and loading geometric information of the main target figure and geometric information of a plurality of corresponding subordinate target figures to perform collision processing with the main target figure. Collision object information storage means for outputting; 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환시키기 위한 충돌대상정보 변환 수단;Collision object information converting means for converting coordinates of the slave object figure to conform to a coordinate system based on the main object figure; 상기 주대상 도형과 상기 종대상 도형의 기하정보특성에 의해 결정된 충돌처리 연산방법에 따라, 상기 입력된 주대상 도형의 기하정보과 상기 좌표변환된 각각의 종대상 도형의 기하정보를 이용하여 상기 주대상 도형과 상기 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하기 위한 충돌정보 연산처리 수단;According to the collision processing calculation method determined by the geometry information characteristics of the main object figure and the subordinate object figure, the main object using the geometric information of the input main object figure and the geometric information of each of the subordinate target figures converted into coordinates Collision information arithmetic processing means for simultaneously obtaining a collision point, a collision, and a depth of collision between a figure and the subject figure; 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 두 개의 저장 영역을 할당하여 갱신 전/후 충돌깊이가 별도로 저장되기 위한 충돌정보 저장 수단; 및Collision information storage means for storing the collision point, the presence or absence of the collision depth, and the collision depth, and allocates two storage areas to store the collision depth before and after the update; And 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 수단에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신하기 위한 충돌정보 갱신 수단The collision point and the presence or absence of the collision point is updated every time the collision point and the collision state is newly output from the collision information calculation processing means, and the collision depth updating means for updating according to the comparison result with the previously stored collision depth 을 포함하는 그래픽 시스템에서의 충돌정보 처리 장치.Collision information processing apparatus in a graphics system comprising a. 제 1 항에 있어서,The method of claim 1, 상기 충돌대상정보 저장 수단은,The collision object information storage means, 외부로부터 충돌처리 초기과정에 입력된 상기 주대상 도형의 기하정보를 적재하여 상기 충돌정보 연산처리 수단으로 입력시키기 위한 주대상 도형 정보파일 레지스터;A main target figure information file register for loading geometric information of the main target figure inputted at the initial collision processing from the outside and inputting the geometric information to the collision information calculation processing means; 외부로부터 충돌처리 초기과정에 입력된 상기 종대상 도형의 기하정보를 적재하기 위한 기하정보 저장 수단;Geometric information storage means for loading geometric information of the subject object figure inputted at an initial process of collision processing from the outside; 상기 적재된 종대상 도형의 기하정보에 대한 주소지정 레지스터 값을 저장하기 위한 종대상 도형 주소지정 레지스터;A slave target figure addressing register for storing an addressing register value for the geometric information of the loaded slave figure; 상기 저장된 주소지정 레지스터 값에 기반하여 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 읽어오기 위한 메모리 제어 수단;Memory control means for reading geometric information of a plurality of corresponding target figures to perform a collision processing operation with the main target figure based on the stored addressing register value; 상기 메모리 제어 수단에 의해 읽어온 복수 개의 해당 종대상 도형의 기하정보를 저장하여 상기 충돌정보 연산처리 수단으로 입력시키기 위한 종대상 도형 정보파일 레지스터; 및A target target figure information file register for storing geometric information of a plurality of corresponding target figure read by the memory control means and inputting the geometric information to the collision information calculation processing means; And 상기 주대상 도형의 개수, 상기 종대상 도형의 개수를 저장하여 상기 충돌정보 연산처리 수단으로 입력시키기 위한 개수 레지스터A number register for storing the number of the main object figure and the number of the subject object figures and inputting them to the collision information calculation processing means. 를 포함하는 그래픽 시스템에서의 충돌정보 처리 장치.Collision information processing apparatus in a graphics system comprising a. 제 2 항에 있어서,The method of claim 2, 상기 충돌대상정보 변환 수단은,The collision object information conversion means, 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환시키는 좌표변환 정보를 외부로부터 입력받아 저장하기 위한 좌표변환 정보파일 저장 수단; 및Coordinate conversion information file storage means for receiving and storing coordinate conversion information for converting coordinates of the slave object figure into conformity with a coordinate system based on the main target figure; And 상기 좌표변환 정보에 따라 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환시키고 상기 좌표 변환된 종대상 도형의 기하정보를 상기 충돌정보 연산처리 수단으로 입력시키기 위한 좌표 변환 수단Coordinate transformation for converting the coordinates of the slave object figure in accordance with the coordinate system based on the main target figure according to the coordinate transformation information and for inputting geometric information of the coordinate-converted slave figure to the collision information calculation processing means. Way 을 포함하는 그래픽 시스템에서의 충돌정보 처리 장치.Collision information processing apparatus in a graphics system comprising a. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 충돌정보 갱신 수단은,The collision information updating means, 충돌대상 식별번호(index)의 초기값을 지정하기 위한 식별 시작값 레지스터;An identification start value register for specifying an initial value of a collision object identification number; 상기 충돌대상 식별번호(index)의 증감 유무를 지정하기 위한 식별번호 증감유무 레지스터;An identification number increase or decrease register for designating whether the collision object identification number is increased or decreased; 상기 지정된 충돌대상 식별번호의 초기값을 전달받아 상기 지정된 충돌대상 식별번호의 증감유무에 따라 충돌대상 식별번호를 생성하기 위한 식별번호 생성 수 단;Receiving an initial value of the designated collision target identification number and generating an identification number for generating a collision target identification number according to whether there is an increase or decrease of the designated collision target identification number; 상기 기저장된 충돌깊이를 미리 읽어와서 상기 구해진 충돌깊이와 비교하여 최대값 또는 최소값을 구하기 위한 충돌깊이 비교 수단; 및Collision depth comparison means for reading the pre-stored collision depth and comparing it with the obtained collision depth to obtain a maximum value or a minimum value; And 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 수단에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 상기 충돌깊이 비교 수단에서 기저장된 충돌깊이와의 비교 결과에 따라 갱신하기 위한 연산결과 갱신 수단The collision point and the presence or absence of the collision are updated each time the collision point and the presence or absence of the collision information are processed by the collision information calculation processing means, and the collision depth is updated according to a comparison result with the collision depth previously stored in the collision depth comparison means. Means for updating operation results 을 포함하는 그래픽 시스템에서의 충돌정보 처리 장치.Collision information processing apparatus in a graphics system comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 충돌정보 저장 수단은,The collision information storage means, 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되,Save the collision point, existence of collision, depth of collision, 상기 충돌점을 저장하기 위한 충돌점 저장 수단;Collision point storage means for storing the collision point; 상기 충돌점 저장 수단에서 상기 충돌점의 읽기/쓰기를 제어하기 위한 제 1 메모리 제어 수단;First memory control means for controlling the read / write of the collision point in the collision point storage means; 상기 충돌유무와 상기 충돌대상 식별번호를 저장하기 위한 충돌유무/식별번호 저장 수단;Collision existence / identification number storage means for storing the collision existence and the collision object identification number; 상기 충돌유무/식별번호 저장 수단에서 상기 충돌유무 및 상기 생성된 충돌대상 식별번호의 읽기/쓰기를 제어하기 위한 제 2 메모리 제어 수단;Second memory control means for controlling read / write of the collision existence and the generated collision object identification number in the collision existence / identification number storage means; 상기 충돌깊이와 형판정보(Stencil)를 저장하기 위한 제 1 충돌깊이/형판정 보 저장 수단;First collision depth / decision information storage means for storing the collision depth and template information; 상기 제 1 충돌깊이/형판정보 저장 수단에서 상기 갱신된 충돌깊이와 상기 형판정보의 읽기/쓰기를 제어하기 위한 제 3 메모리 제어 수단;Third memory control means for controlling the read / write of the updated collision depth and the template information in the first collision depth / template information storage means; 상기 충돌깊이와 형판정보를 저장하기 위한 제 2 충돌깊이/형판정보 저장 수단;Second collision depth / plate information storage means for storing the collision depth and template information; 상기 제 2 충돌깊이/형판정보 저장 수단에서 상기 갱신된 충돌깊이와 상기 형판정보의 읽기/쓰기를 제어하기 위한 제 4 메모리 제어 수단; 및Fourth memory control means for controlling the read / write of the updated collision depth and the template information in the second collision depth / template information storage means; And 상기 충돌점, 상기 충돌유무/식별번호, 상기 충돌깊이/형판정보의 저장 위치를 지정하기 위한 저장위치 레지스터A storage location register for designating a storage location of the collision point, the collision existence / identification number, and the collision depth / template information 를 포함하는 그래픽 시스템에서의 충돌정보 처리 장치.Collision information processing apparatus in a graphics system comprising a. 제 5 항에 있어서,The method of claim 5, 상기 충돌정보 연산처리 수단은,The collision information calculation processing means, 입력정보 유효신호(Input_data_valid)를 따라 현재 입력된 충돌대상의 기하정보에 대한 유효성을 파악하고, 상기 충돌정보 저장 수단에 저장되어 있던 이전의 충돌깊이를 미리 읽어오라는 충돌깊이 선행호출신호(T_prefatch)와 상기 연산처리된 결과에 대한 출력정보 유효신호(Output_data_valid)를 출력하는 것을 특징으로 하는 그래픽 시스템에서의 충돌정보 처리 장치.According to the input information valid signal (Input_data_valid) to determine the validity of the geometric information of the current collision object, and the collision depth preceding call signal (T_prefatch) to read in advance the previous collision depth stored in the collision information storage means; And an output information valid signal (Output_data_valid) for the result of the operation processing. 제 6 항에 있어서,The method of claim 6, 상기 충돌정보 갱신 수단은,The collision information updating means, 상기 출력된 출력정보 유효신호와 충돌깊이 선행호출신호에 따라 충돌정보를 갱신하며, 개별저장여부 선택신호(Buffer enabler)에 따라 상기 연산처리된 결과 중 일부만 저장하고, 충돌깊이결과 저장선택신호(T_buffer_selector)에 따라 서로 다른 충돌깊이/형판정보 저장 수단으로부터 상기 충돌깊이와 상기 형판정보를 읽거나 또는 쓰는 것을 특징으로 하는 그래픽 시스템에서의 충돌정보 처리 장치.The collision information is updated according to the outputted output information valid signal and the collision depth preceding call signal, and only a part of the result of the operation processing is stored according to an individual storage selection signal (Buffer enabler), and the collision depth result storage selection signal (T_buffer_selector) And reading or writing the collision depth and the template information from different collision depth / template information storage means. 그래픽 시스템에서의 충돌정보 처리 방법에 있어서,In the collision information processing method in the graphics system, 외부로부터 입력된 주대상 도형의 기하정보와 종대상 도형의 기하정보를 적재하고, 상기 주대상 도형의 기하정보 및 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 출력하는 충돌대상정보 저장 단계;Loading geometry information of the main target figure and geometry information of the subordinate target figure inputted from the outside, and loading geometric information of the main target figure and geometric information of a plurality of corresponding subordinate target figures to perform collision processing with the main target figure. A collision object information storing step of outputting; 상기 종대상 도형의 좌표를 상기 주대상 도형을 기준으로 하는 좌표계에 부합되게 변환하는 충돌대상정보 변환 단계;A collision object information converting step of converting coordinates of the slave object figure to correspond to a coordinate system based on the main target figure; 상기 주대상 도형과 상기 종대상 도형의 기하정보특성에 의해 결정된 충돌처리 연산방법에 따라, 상기 입력된 주대상 도형의 기하정보과 상기 좌표변환된 각각의 종대상 도형의 기하정보를 이용하여 상기 주대상 도형과 상기 종대상 도형 간의 충돌점(Collision Point), 충돌유무(Flag), 충돌깊이(T-Value)를 동시에 구하는 충 돌정보 연산처리 단계;According to the collision processing calculation method determined by the geometry information characteristics of the main object figure and the subordinate object figure, the main object using the geometric information of the input main object figure and the geometric information of each of the subordinate target figures converted into coordinates A collision information operation step of simultaneously obtaining a collision point, a collision, and a depth of a T-value between a figure and the subject object; 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되, 두 개의 저장 영역을 할당하여 갱신 전/후 충돌깊이가 별도로 저장하는 충돌정보 저장 단계; 및A collision information storage step of storing the collision points, the existence of collisions, and the collision depths, and separately storing the collision depths before and after updating by allocating two storage areas; And 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 단계에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 기저장된 충돌깊이와의 비교 결과에 따라 갱신하는 충돌정보 갱신 단계The collision point and the presence or absence of the collision is updated each time the collision point, the presence of collision is newly output in the collision information operation processing step, the collision depth is updated according to the comparison result with the previously stored collision depth 를 포함하는 그래픽 시스템에서의 충돌정보 처리 방법.Collision information processing method in a graphics system comprising a. 제 8 항에 있어서,The method of claim 8, 상기 충돌대상정보 저장 단계는,The collision object information storing step, 외부로부터 충돌처리 초기과정에 입력된 상기 주대상 도형의 기하정보와 상기 종대상 도형의 기하정보를 적재하는 기하정보 적재 단계;A geometry information loading step of loading geometry information of the main object figure and geometry information of the slave object figure input in an initial process of collision processing from the outside; 상기 적재된 종대상 도형의 기하정보에 대한 주소지정 레지스터 값을 저장하는 주소지정 단계;An addressing step of storing an addressing register value for geometric information of the loaded slave figure; 상기 저장된 주소지정 레지스터 값에 기반하여 상기 주대상 도형과 충돌처리 연산을 수행할 복수 개의 해당 종대상 도형의 기하정보를 읽어오는 메모리 제어 단계; 및A memory control step of reading geometry information of a plurality of corresponding target figures to perform collision processing with the main target figure based on the stored addressing register value; And 상기 메모리 제어 단계에서 읽어온 복수 개의 해당 종대상 도형의 기하정보를 저장하는 종대상 도형의 기하정보 저장 단계Geometric information storage step of the slave target figure for storing the geometric information of the plurality of target target figure read in the memory control step 를 포함하는 그래픽 시스템에서의 충돌정보 처리 방법.Collision information processing method in a graphics system comprising a. 제 9 항에 있어서,The method of claim 9, 상기 충돌정보 갱신 단계는,The conflict information updating step, 충돌대상 식별번호(index)의 초기값을 지정하는 식별 시작값 지정 단계;An identification start value specifying step of designating an initial value of a collision object identification number; 상기 충돌대상 식별번호(index)의 증감 유무를 지정하는 식별번호 증감유무 단계;Identification number increase or decrease step of designating increase or decrease of the collision object identification number (index); 상기 지정된 충돌대상 식별번호의 초기값을 전달받아 상기 지정된 충돌대상 식별번호의 증감유무에 따라 충돌대상 식별번호를 생성하는 식별번호 생성 단계;An identification number generation step of receiving an initial value of the designated collision object identification number and generating a collision object identification number according to whether the designated collision object identification number is increased or decreased; 상기 기저장된 충돌깊이를 미리 읽어와서 상기 구해진 충돌깊이와 비교하여 최대값 또는 최소값을 구하는 충돌깊이 비교 단계; 및A collision depth comparison step of reading the pre-stored collision depths and comparing with the obtained collision depths to obtain a maximum value or a minimum value; And 상기 충돌점, 충돌유무는 상기 충돌정보 연산처리 단계에서 충돌점, 충돌유무가 새롭게 출력될 때마다 갱신하고, 상기 충돌깊이는 상기 충돌깊이 비교 단계에서 기저장된 충돌깊이와의 비교 결과에 따라 갱신하는 연산결과 갱신 단계The collision point and the presence or absence of the collision are updated each time the collision point and the presence of collision are newly output in the collision information calculation processing step, and the collision depth is updated according to a comparison result with the collision depth previously stored in the collision depth comparison step. Calculation result update step 를 포함하는 그래픽 시스템에서의 충돌정보 처리 방법.Collision information processing method in a graphics system comprising a. 제 8 항 내지 제 10 항 중 어느 한 항에 있어서,The method according to any one of claims 8 to 10, 상기 충돌정보 저장 단계는,The collision information storing step, 충돌점, 충돌유무, 충돌깊이를 구분하여 저장하되,Save the collision point, existence of collision, depth of collision, 상기 갱신된 충돌점을 저장하는 충돌점 저장 단계;A collision point storing step of storing the updated collision point; 상기 갱신된 충돌유무 및 상기 생성된 충돌대상 식별번호를 함께 저장하는 충돌유무/식별번호 저장 단계; 및A collision existence / identification number storing step of storing the updated collision existence and the generated collision object identification number together; And 두 개의 저장 영역을 할당하여 갱신 전/후 충돌깊이/형판정보가 별도로 저장되는 충돌깊이/형판정보 저장 단계Collision depth / Template information storage step in which collision depth / template information is stored separately before / after updating by allocating two storage areas 를 포함하는 그래픽 시스템에서의 충돌정보 처리 방법.Collision information processing method in a graphics system comprising a. 제 11 항에 있어서,The method of claim 11, 상기 충돌정보 연산처리 단계는,The collision information operation processing step, 입력정보 유효신호를 따라 현재 입력된 충돌대상의 기하정보에 대한 유효성을 파악하고, 상기 저장되어 있던 이전의 충돌깊이를 미리 읽어오라는 충돌깊이 선행호출신호와 상기 연산처리된 결과에 대한 출력정보 유효신호를 출력하는 것을 특징으로 하는 그래픽 시스템에서의 충돌정보 처리 방법.According to the input information valid signal, the collision depth preceding call signal to grasp the validity of the geometric information of the collision object currently input and read the previously stored collision depth in advance, and the output information valid signal for the calculated result Collision information processing method in a graphics system, characterized in that for outputting. 제 12 항에 있어서,The method of claim 12, 상기 충돌정보 갱신 단계는,The conflict information updating step, 상기 출력된 출력정보 유효신호와 충돌깊이 선행호출신호에 따라 충돌정보를 갱신하고, 개별저장여부 선택신호에 따라 상기 연산처리된 결과 중 일부만 저장하고, 충돌깊이결과 저장선택신호에 따라 서로 다르게 상기 충돌깊이와 상기 형판정보를 읽어오거나 또는 쓰는 것을 특징으로 하는 그래픽 시스템에서의 충돌정보 처리 방법.The collision information is updated according to the output information valid signal and the collision depth preceding call signal, and only a part of the calculation result is stored according to the individual storage selection signal, and the collision is differently according to the collision depth result storage selection signal. And the depth information and the template information are read or written.
KR1020060074924A 2005-12-08 2006-08-08 Apparatus and Method for Detecting Collision in Graphic System KR100778310B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/634,030 US7663630B2 (en) 2005-12-08 2006-12-05 Apparatus and method for processing collision information in graphic system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050119396 2005-12-08
KR20050119396 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061248A KR20070061248A (en) 2007-06-13
KR100778310B1 true KR100778310B1 (en) 2007-11-22

Family

ID=38357185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060074924A KR100778310B1 (en) 2005-12-08 2006-08-08 Apparatus and Method for Detecting Collision in Graphic System

Country Status (1)

Country Link
KR (1) KR100778310B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098917B2 (en) 2012-07-19 2015-08-04 Samsung Electronics Co., Ltd. Method and system for accelerating collision resolution on a reconfigurable processor

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105409A (en) * 1993-09-30 1995-04-21 Fujitsu Ltd Collision detector device for three-dimensional moving object
JPH09231396A (en) * 1996-02-27 1997-09-05 Matsushita Electric Ind Co Ltd Collision judging method
JPH10247252A (en) * 1997-03-04 1998-09-14 Sharp Corp Collision judging processor
US5812138A (en) 1995-12-19 1998-09-22 Cirrus Logic, Inc. Method and apparatus for dynamic object indentification after Z-collision
JP2003109038A (en) * 2001-09-27 2003-04-11 Namco Ltd Device for fast detecting collision
JP2003346186A (en) * 2002-03-19 2003-12-05 Sony Corp Image processor and method, and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105409A (en) * 1993-09-30 1995-04-21 Fujitsu Ltd Collision detector device for three-dimensional moving object
US5812138A (en) 1995-12-19 1998-09-22 Cirrus Logic, Inc. Method and apparatus for dynamic object indentification after Z-collision
JPH09231396A (en) * 1996-02-27 1997-09-05 Matsushita Electric Ind Co Ltd Collision judging method
JPH10247252A (en) * 1997-03-04 1998-09-14 Sharp Corp Collision judging processor
JP2003109038A (en) * 2001-09-27 2003-04-11 Namco Ltd Device for fast detecting collision
JP2003346186A (en) * 2002-03-19 2003-12-05 Sony Corp Image processor and method, and program

Also Published As

Publication number Publication date
KR20070061248A (en) 2007-06-13

Similar Documents

Publication Publication Date Title
US7663630B2 (en) Apparatus and method for processing collision information in graphic system
KR101004110B1 (en) Ray tracing core and ray tracing chip having the same
JP7421585B2 (en) Method for determining differential data for rays of a ray bundle and graphics processing unit
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
US8339409B2 (en) Tile-based graphics system and method of operation of such a system
KR101076807B1 (en) Ray tracing apparatus and method
KR20100089896A (en) System and method for using a secondary processor in a graphics system
US10102662B2 (en) Primitive culling using automatically compiled compute shaders
KR20080067840A (en) 3-dimensional graphics accelerator and method of distributing pixel thereof
CN110675480B (en) Method and apparatus for acquiring sampling position of texture operation
KR102266962B1 (en) Compiler-assisted technologies to reduce memory usage in the graphics pipeline
CN111210498A (en) Reducing the level of detail of a polygon mesh to reduce the complexity of rendered geometry
US9922442B2 (en) Graphics processing unit and method for performing tessellation operations
JP2023532434A (en) Early culling for raytracing
KR102151443B1 (en) Graphics processing apparatus based on hybrid gpu architecture
KR20220154706A (en) Ray Tracing Multisample Anti-Aliasing
CN113344766B (en) Ray tracing processor, processor chip, equipment terminal and ray tracing method
Huang et al. Interactive illustrative rendering on mobile devices
CN113822975A (en) Techniques for efficient sampling of images
KR20160068204A (en) Data processing method for mesh geometry and computer readable storage medium of recording the same
KR100778310B1 (en) Apparatus and Method for Detecting Collision in Graphic System
US20240095993A1 (en) Reducing false positive ray traversal in a bounding volume hierarchy
US20240095995A1 (en) Reducing false positive ray traversal using ray clipping
US20240095994A1 (en) Reducing false positive ray traversal using point degenerate culling
US11900499B2 (en) Iterative indirect command buffers

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120919

Year of fee payment: 19