KR100791411B1 - Apparatus and method for processing graphics - Google Patents
Apparatus and method for processing graphics Download PDFInfo
- Publication number
- KR100791411B1 KR100791411B1 KR1020060124007A KR20060124007A KR100791411B1 KR 100791411 B1 KR100791411 B1 KR 100791411B1 KR 1020060124007 A KR1020060124007 A KR 1020060124007A KR 20060124007 A KR20060124007 A KR 20060124007A KR 100791411 B1 KR100791411 B1 KR 100791411B1
- Authority
- KR
- South Korea
- Prior art keywords
- collision
- objects
- graphics
- unit
- acceleration
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
Description
도 1은 기존의 물리기반 시뮬레이션 응용시스템을 가속화하기 위한 장치의 일 실시예를 나타낸 블록도,1 is a block diagram illustrating one embodiment of an apparatus for accelerating an existing physically based simulation application system;
도 2는 본 발명에 따른 그래픽스 처리장치의 일 실시예를 나타낸 블록도,2 is a block diagram showing an embodiment of a graphics processing apparatus according to the present invention;
도 3은 도 2에 도시된 충돌 검사부의 일 실시예를 나타낸 블록도.FIG. 3 is a block diagram illustrating an embodiment of a collision check unit illustrated in FIG. 2.
도 4는 본 발명에 따른 그래픽스 처리 방법으로, 물리기반 시뮬레이션의 일 실시예를 단계별로 나타낸 순서도,Figure 4 is a graphics processing method according to the present invention, a flow chart showing an embodiment of a physical-based simulation step by step,
도 5는 본 발명에 따른 그래픽스 처리 방법으로, 광선추적법의 일 실시예를 단계별로 나타낸 순서도.5 is a flowchart illustrating a step-by-step embodiment of a ray tracing method in a graphics processing method according to the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
1: 주변장치 2: 중앙처리장치1: peripheral 2: central processing unit
3: 외부기억장치 6: 그래픽스 처리장치3: external storage device 6: graphics processing device
61: 가속화 계층구조 관리부 62: 충돌 검사부61: acceleration hierarchy management unit 62: collision inspection unit
63: 쉐이딩 처리부 64: 미분방정식 계산부63: shading processor 64: differential equation calculation unit
620: 입력부 622: 공간 변환부620: input unit 622: spatial transform unit
624: 충돌검사엔진 626: 출력부624: collision detection engine 626: output unit
본 발명은 그래픽스(graphics) 처리장치 및 방법에 관한 것으로, 특히, 그래픽스 응용시스템의 3차원 그래픽스 환경에서 파이프라인기법(pipelining)으로 연산 처리가 가능한 부분을 그래픽스 처리하도록 하는 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and method for graphics processing, and more particularly, to an apparatus and method for performing graphics processing on a portion that can be processed by pipeline techniques in a three-dimensional graphics environment of a graphics application system.
3차원 그래픽스 환경에서의 충돌처리의 주내용은 충돌검출(collision detection)과 충돌판정, 충돌 이후의 객체들의 반응을 처리하는 충돌반응으로 이루어진다.The main contents of collision processing in 3D graphics environment are collision detection, collision determination, and collision reaction, which handles the reaction of objects after collision.
기존에 충돌검출에 소요되는 시간을 개선하기 위해 중앙처리장치(Central Processing Unit; CPU) 기반의 가속화 방법으로 바운딩 볼륨 계층구조(bounding volume hierarchies), 이진공간분할(Binary Space Partitioning; BSP) 트리, 8진트리(octree) 및 장면 그래프(scene graph) 등의 계층적인 검사방법이 제안되었다.Bounding volume hierarchies, Binary Space Partitioning (BSP) trees as a central processing unit (CPU) -based acceleration method to improve the time spent in collision detection. Hierarchical inspection methods such as octrees and scene graphs have been proposed.
광선추적법에 있어서 처리속도를 개선하려면 근본적으로 물체를 구성하고 있는 요소와 빛과의 충돌검출에 드는 시간을 줄여야 한다. 이는 물체의 바운딩 볼륨에 대한 충돌여부 검사단계보다 실제 충돌검출 연산단계가 처리시간이 오래 걸리기 때문이다. 하지만, 충돌검출이 주요 연산인 물리기반 시뮬레이션과 광선 추적법에 서는 여전히 병목지점이 되고 있으며, 실시간처리를 위한 효과적인 방법은 제안되지 않았다.In the ray tracing method, to improve the processing speed, the time required for detecting collision between light and the elements constituting the object is fundamentally reduced. This is because the actual collision detection calculation step takes longer than the collision detection step against the bounding volume of the object. However, physics-based simulation and ray tracing method, where collision detection is the main operation, are still a bottleneck, and no effective method for real-time processing has been proposed.
최근 물리 시뮬레이션을 위한 전용 하드웨어인 물리처리장치(PPU)가 소개되고 출시되었지만, 중앙처리장치와 물리처리장치 사이의 데이터 전송에 따른 병목으로 인해 여전히 처리속도를 크게 개선하지 못했다. 또한, 실시간 렌더링 시스템에서 광선추적법을 고속으로 처리하기 위하여 하드웨어를 이용하려는 시도가 많아지고 있다.Recently, a physical processing unit (PPU), which is a dedicated hardware for physics simulation, was introduced and released, but the bottleneck caused by the data transfer between the central processing unit and the physical processing unit still did not improve the processing speed significantly. In addition, many attempts have been made to use hardware to process ray tracing at high speed in a real-time rendering system.
도 1은 기존의 물리기반 시뮬레이션 응용시스템을 가속화하기 위한 장치의 일 실시예를 나타낸 블록도로, 주변장치(1), 중앙처리장치(2), 외부기억장치(3), 그래픽스 처리장치(4) 및 물리연산 처리장치(5)로 구성된다. 상기 외부기억장치(3)는 캐시 메모리, 메인 메모리 및 하드 디스크 드라이브(HDD) 등이 될 수 있다.1 is a block diagram illustrating an embodiment of an apparatus for accelerating an existing physically-based simulation application system, including a peripheral device 1, a
동 도면에 있어서, 전통적인 그래픽스 응용시스템 처리 방식에 있어서, 물리기반 시뮬레이션을 위한 물리연산을 중앙처리장치(2)에서 담당하여 처리하였으며, 그래픽스 처리장치(4)는 사용자 화면상에 3차원 장면을 디스플레이해 주는 기능을 제공하였다.In the figure, in the conventional graphics application system processing method, the physical processing for the physical-based simulation is handled by the
그런데 중앙처리장치(2)에서 담당했던 물리연산에 대한 처리 속도가 느리며, 중앙처리장치(2)와 그래픽스 처리장치(4) 간의 잦은 데이터 전송 때문에 병목현상 이 발생하였다.However, the processing speed for the physical operation in charge of the
이러한 단점을 극복하고자, 물리연산을 전담하는 역할을 맡은 고속의 물리연산 처리장치(5)를 적용하였다.In order to overcome this drawback, a high speed
그러나 물리연산 처리장치(5)와 그래픽스 처리장치(4) 간의 데이터 전송 또한 병목지점으로 만족할 만한 속도개선을 얻지 못했다.However, the data transfer between the
본 발명은 전술한 과제를 해결하기 위하여 안출한 것으로, 그래픽스 응용시스템의 3차원 그래픽스 환경에서 파이프라인기법으로 연산 처리가 가능한 부분을 그래픽스 처리장치에서 수행하도록 하는 그래픽스 처리장치 및 방법을 제공하는데 그 목적이 있다.An object of the present invention is to provide a graphics processing apparatus and method for performing a portion of a graphics processing system that can be processed by a pipeline method in a graphics processing system in a graphics application system. There is this.
이와 같은 목적을 달성하기 위하여,In order to achieve this purpose,
본 발명의 일 형태에 따르면, 그래픽스 응용시스템의 3차원 그래픽스 환경에서 파이프라인기법으로 연산 처리가 가능한 부분을 그래픽스 처리하는 장치로서, 복수의 객체를 포함하고 있는 3차원 그래픽스 장면을 계층적으로 구성하여, 컴퓨터 그래픽스 관련 알고리즘 및 렌더링이 가속화되도록 하는 가속화 계층구조 관리부; 상기 가속화 계층구조 관리부에서 추출된 충돌검사대상에 대해 두 물체가 교차했는지 여부, 상기 두 물체가 교차했을 경우 해당 교차점, 객체 간의 충돌 여부, 충돌 지점 및 투과 깊이(penetration depth)를 계산하는 충돌 검사부; 상기 충돌 검사부에서 계산된 정보를 이용해서 충돌이 일어난 지점의 색상을 쉐이딩(shading)하는 쉐이딩 처리부; 물리기반 시뮬레이션에서 상기 충돌 검사부에서 계산된 정보에 대해 미분방정식 및 적분을 수행하고, 새로운 객체들의 위치를 계산하여 갱신하는 미분방정식 계산부를 포함하여 이루어지는 것을 특징으로 하는 것이 제공된다.According to one embodiment of the present invention, an apparatus for performing graphics processing on a portion of a graphics application system that can be arithmetic by a pipeline technique, and hierarchically constructs a three-dimensional graphics scene including a plurality of objects. An acceleration hierarchy management unit for accelerating rendering and algorithms related to computer graphics; A collision inspection unit that calculates whether two objects intersect the collision inspection object extracted by the acceleration hierarchy structure management unit, and when the two objects intersect, a corresponding intersection point, collision between objects, a collision point, and a penetration depth; A shading processor configured to shade a color of a collision point by using the information calculated by the collision check unit; In the physical-based simulation is provided that comprises a differential equation calculation unit for performing differential equations and integration on the information calculated by the collision check unit, calculates and updates the position of the new objects.
바람직하게는 상기 가속화 계층구조 관리부는 바운딩 볼륨 계층구조, BSP 트리, k-d 트리, 8진 트리, 방향성 바운딩 박스(oriented bounding box; OBB) 트리 및 유한한 방향을 가지는 다각형(discrete orientation polytopes; k-DOP) 트리를 포함하는 알고리즘을 선택적으로 적용하는 것이 좋다.Advantageously, the acceleration hierarchy manager comprises a bounding volume hierarchy, a BSP tree, a kd tree, an octal tree, an oriented bounding box (OBB) tree and a discrete orientation polytopes (k-DOP). It is a good idea to selectively apply algorithms that include trees.
상기 가속화 계층구조 관리부는 물리기반 시뮬레이션 수행 시 상기 계층을 탐색해서 충돌검사대상을 추출한다.The acceleration hierarchical structure management unit searches for the hierarchy and extracts a collision inspection target when performing a physical-based simulation.
상기 가속화 계층구조 관리부는 광선추적법 수행 시 상기 계층을 탐색해서 충돌검사대상을 추출한다.The acceleration hierarchical structure management unit searches for the hierarchy and extracts the collision inspection object when performing the ray tracing method.
상기 충돌 검사부의 교차검사에 대상이 되는 객체는 삼각형, 구, 축에 나란한 경계박스(Axis Aligned Bounding Box; AABB), 방향을 가지는 경계 박스(Oriented Bounding Box; OBB) 및 유한한 방향을 가지는 다각형을 포함하여 이루어지는 것을 특징으로 할 수 있다.The object to be cross-checked by the collision inspection unit includes an axis-aligned bounding box (AABB), an oriented bounding box (OBB), and a polygon having a finite direction. It may be characterized by including.
상기 미분방정식 계산부는 정점 쉐이더(vertex shader)와 픽셀 쉐이더(pixel shader)의 프로그래머블(programmable)한 속성을 이용하여 구현될 수 있다.The differential equation calculation unit may be implemented using programmable attributes of a vertex shader and a pixel shader.
상기 충돌 검사부는, 상기 가속화 계층구조 관리부로부터 충돌검사대상을 제 공받고, 기하정보의 변환이 필요한 충돌검사대상에 대해서는 공간 변환하는 공간 변환부; 상기 공간 변환부로부터 제공되는 충돌검사대상에 대해 충돌 기본객체 간의 충돌검사를 다양한 충돌검사 파이프라인을 통해 병렬로 수행하여, 해당 객체 간의 교차점, 충돌 여부, 충돌지점 및 투과 깊이를 계산하는 충돌검사엔진을 포함한다. 상기 충돌검사대상은 광선(ray), 삼각형, 구, 실린더, AABB, OBB를 포함한다. 상기 다양한 충돌검사 파이프라인은 광선-삼각형 파이프라인, AABB-AABB 파이프라인 및 OBB-OBB 파이프라인 등 여러 충돌검사 파이프라인을 포함한다.The collision inspection unit may include: a space transformation unit receiving a collision inspection object from the acceleration hierarchy structure management unit and performing a spatial transformation on a collision inspection object that requires conversion of geometric information; Collision inspection engine that performs collision inspection between collision basic objects in parallel through various collision inspection pipelines for the collision inspection object provided from the spatial transform unit, and calculates intersections, collisions, collision points, and penetration depths between the corresponding objects. It includes. The collision inspection object includes a ray, a triangle, a sphere, a cylinder, AABB, and an OBB. The various collision detection pipelines include several collision detection pipelines, including the light-triangular pipeline, the AABB-AABB pipeline and the OBB-OBB pipeline.
본 발명의 다른 형태에 따르면, 그래픽스 응용시스템의 3차원 그래픽스 환경에서 파이프라인기법으로 연산 처리가 가능한 부분을 그래픽스 처리하는 장치에서 물리기반 시뮬레이션 방법으로서, (a) 대상 객체들을 포함하고 있는 3차원 그래픽스 장면을 계층적으로 구성하여, 컴퓨터 그래픽스 관련 알고리즘 및 렌더링이 가속화되도록 하는 가속화 계층구조를 생성하는 단계; (b) 상기 생성된 가속화 계층구조를 탐색해서 충돌검사대상을 추출하는 단계; (c) 상기 추출된 충돌검사대상에 대해 충돌 기본객체 간의 충돌검사를 수행하여, 해당 객체 간의 교차점, 충돌 여부, 충돌지점 및 투과 깊이를 계산하는 단계; (d) 물리기반 시뮬레이션에서 상기 계산 정보에 대해 미분방정식 및 적분을 수행하고, 새로운 객체들의 위치를 계산하여 갱신하는 단계를 포함하여 이루어지는 것을 특징으로 하는 것이 제공된다.According to another aspect of the present invention, a physical-based simulation method for a graphics processing apparatus that can be processed by the pipeline method in a three-dimensional graphics environment of a graphics application system, comprising: (a) three-dimensional graphics including target objects; Hierarchically organizing the scene to generate an acceleration hierarchy that causes computer graphics related algorithms and rendering to be accelerated; (b) extracting a collision inspection object by searching the generated acceleration hierarchy; (c) performing collision inspection between collision basic objects on the extracted collision inspection object, and calculating intersection points, collision existence, collision points, and penetration depths between the corresponding objects; (d) performing differential equations and integration on the calculation information in a physically based simulation, and calculating and updating the positions of new objects.
바람직하게는 사용자가 시뮬레이션 반복을 원할 경우 상기 단계 (c) 및 (d)를 반복하는 것이 좋다.Preferably, if the user wants to repeat the simulation, it is preferable to repeat the steps (c) and (d).
본 발명의 또 다른 형태에 따르면, 그래픽스 응용시스템의 3차원 그래픽스 환경에서 파이프라인기법으로 연산 처리가 가능한 부분을 그래픽스 처리하는 장치에서 광선추적법으로서, (a) 대상 객체들을 포함하고 있는 3차원 그래픽스 장면을 계층적으로 구성하여, 컴퓨터 그래픽스 관련 알고리즘 및 렌더링이 가속화되도록 하는 가속화 계층구조를 생성하는 단계; (b) 3차원 그래픽스 장면의 빛의 위치에 따라 광선을 생성하는 단계; (c) 상기 생성된 가속화 계층구조를 탐색해서 충돌검사대상을 추출하는 단계; (d) 상기 추출된 충돌검사대상에 대해 충돌 기본객체 간의 충돌검사하여, 해당 객체 간의 교차점, 충돌 여부, 충돌지점 및 투과 깊이를 계산하는 단계; (e) 상기 충돌검사에서 계산된 정보를 이용해서 충돌이 일어난 지점의 색상을 객체 표면 속성과 빛의 세기 등을 이용해서 쉐이딩을 수행하는 단계; (f) 상기 쉐이딩 수행 결과를 레스터화하는 단계를 포함하여 이루어지는 것을 특징으로 하는 것이 제공된다.According to another aspect of the present invention, as a ray tracing method in the apparatus for graphics processing the part that can be processed by the pipeline method in the three-dimensional graphics environment of the graphics application system, (a) three-dimensional graphics including the target objects Hierarchically organizing the scene to generate an acceleration hierarchy that causes computer graphics related algorithms and rendering to be accelerated; (b) generating a ray according to the position of light in the three-dimensional graphics scene; (c) extracting a collision inspection object by searching the generated acceleration hierarchy; (d) checking a collision between the collision basic objects with respect to the extracted collision inspection object, and calculating intersections, collisions, collision points, and penetration depths between the corresponding objects; (e) shading the color of the point where the collision occurred by using the information calculated in the collision inspection by using object surface properties and light intensity; (f) rasterizing the result of the shading is provided.
바람직하게는 상기 레스터화된 쉐이딩된 결과를 화면 디스플레이(display) 장치로 전달하여, 해당 화면 디스플레이 장치가 해당 그래픽스를 디스플레이하도록 하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 것이 좋다.Preferably, the method may further include transmitting the rasterized shaded result to a screen display device so that the screen display device displays the graphics.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명에 따른 그래픽스 처리장치의 일 실시예를 나타낸 블록도로, 주변장치(1), 중앙처리장치(2), 외부기억장치(3) 및 그래픽스 처리장치(6)로 구성된다. 상기 그래픽스 처리장치(6)는 가속화 계층구조 관리부(61), 충돌 검사부(62), 쉐이딩 처리부(63) 및 미분방정식 계산부(64)를 구비한다. 상기 외부기억장치(3)는 캐시 메모리, 메인 메모리 및 하드 디스크 드라이브 등이 될 수 있다.2 is a block diagram showing an embodiment of a graphics processing apparatus according to the present invention, which is composed of a peripheral device 1, a
동 도면에 있어서, 그래픽스 처리장치(6) 내의 가속화 계층구조 관리부(61)는 3차원 그래픽스 장면을 계층적으로 구성하여, 컴퓨터 그래픽스 관련 알고리즘 및 렌더링이 가속화되도록 한다. 상기 계층적 구성이란 최상위 레벨의 내용이 그 아래 레벨의 내용을 포함하고, 그 레벨은 또다시 아래 레벨의 내용을 포함하고 있다는 것을 의미한다. 이러한 계층적 구조는 중첩되고 반복되는 속성을 가진다. 이와 같은 계층적 구조를 사용함으로써 여러 가지 유형의 검사들이 신속하게 처리될 수 있다. 통상 O(n)의 비용의 연산을 계층적 구조를 생성하여 처리하면 O(logn)으로 개선된다. 가속화 계층구조 관리부(61)는 바운딩 볼륨 계층구조, BSP 트리, k-d 트리, 8진 트리, 방향성 바운딩 박스 트리 및 유한한 방향을 가지는 다각형 트리 등의 알고리즘을 선택하여 적용할 수 있다. 가속화 계층구조 관리부(61)는 물리기반 시뮬레이션에서 충돌에 대한 세부 검사대상에 해당 되지 않는 객체를 선별할 때 이용되며, 광선추적법에서 광선과 객체의 충돌 여부를 판별할 때 상세 충돌검사대상을 선별할 때 이용된다.In the figure, the acceleration
충돌 검사부(62)는 상기 가속화 계층구조 관리부(61)에서 추출된 충돌검사대상에 대해 두 물체가 교차했는지 여부, 만약 상기 두 물체가 교차했을 경우 해당 교차점, 객체 간의 충돌 여부, 충돌지점 및 투과 깊이를 계산한다. 교차검사에 대 상이 되는 객체들로는 삼각형, 구, 축에 나란한 경계박스, 방향을 가지는 경계 박스, 유한한 방향을 가지는 다각형 등이다.The
도 3과 같이 충돌 검사부(62) 내의 입력부(620)는 가속화 계층구조 관리부(61)로부터 충돌검사대상을 제공받아 공간 변환부(622)로 제공한다.As shown in FIG. 3, the
공간 변환부(622)는 입력부(620)로부터 제공되는 충돌검사대상이 기하정보의 변환이 필요할 경우 공간 변환을 수행하고, 그 공간 변환에 대응하는 기하정보를 충돌검사엔진(624)으로 제공한다.The
충돌검사엔진(624)은 공간 변환부(622)로부터 제공되는 충돌검사대상에 대해 충돌 기본객체 간의 충돌검사를 다양한 충돌검사 파이프라인을 통해 병렬로 수행하여, 해당 객체 간의 교차점, 충돌 여부, 충돌지점 및 투과 깊이를 계산한다. 충돌검사대상으로는 광선(ray), 삼각형, 구, 실린더, AABB, OBB 등이 있다. 상기 다양한 충돌검사 파이프라인은 광선-삼각형 파이프라인, AABB-AABB 파이프라인 및 OBB-OBB 파이프라인 등 여러 충돌검사 파이프라인을 포함한다.The
출력부(626)는 충돌검사엔진(624)으로부터 제공되는 충돌검사의 결과 값을 외부 사용자 또는 호출자에게 전달한다. 상기 결과 값은 객체 간의 충돌 여부, 충돌지점 및 투과 깊이로 구성된다.The
쉐이딩 처리부(63)는 충돌 검사부(62)에서 계산된 정보를 이용해서 충돌이 일어난 지점의 색상을 쉐이딩한다. 즉, 쉐이딩 처리부(63)는 광선추적법에서 3차원 상의 물체 표면의 성질에 따라 빛이 반사되어 나타나는 객체 표면의 색상을 계산한다. 쉐이딩 처리부(63)는 초기 사용자가 프로그램한 쉐이더 프로그램(shader program)을 입력으로 받아 처리하게 된다. 쉐이더 프로그램에는 3차원 장면상의 각 객체에 대한 표면속성을 기술한 것으로 표준 OGSL(OpenGL Shading Language)나 상용 Cg와 같은 언어를 이용하여 작성될 수 있다. 이렇게 처리하는 근본적인 목적은 빛과 반응하는 객체의 속성을 자유롭게 사용자 혹은 개발자가 변경할 수 있는 프로그래머블한 유연성을 제공하는 데 있다. 쉐이딩 처리부(63)는 광선추적법에서 충돌 검사부(62)와 연계된다.The
미분방정식 계산부(64)는 물리기반 시뮬레이션에서 충돌 검사부(62)에서 계산된 정보에 대해 미분방정식 및 적분을 수행하고, 새로운 객체들의 위치를 계산하여 갱신한다. 미분방정식 계산부(64)는 물리기반 시뮬레이션에서 주로 필요한 내적, 외적 등의 선형대수계산, 수치적분 및 역행열, 행렬덧셈, 곱셈 계산 등의 기능을 제공한다. 이러한 기능은 정점 쉐이더와 픽셀 쉐이더의 프로그래머블한 속성을 이용하여 구현된다.The differential
이와 같은 미분방정식 계산부(64)에 대해 상세히 설명하면, 물리기반 시뮬레이션을 수행하는 강체(rigid body)의 초기 위치가 r 0 이고 그 다음 시간 간격()이 지난 후의 위치가 r 1 이라 할 때, 이들의 속도(v)에 대한 관계는 다음과 같다.Referring to the differential
이것을 r 1 에 대해 정리하면,Summarizing this for r 1 ,
이 방법을 오일러 해법이라고도 하는데, 초기치 문제에 대한 가장 간단한 해법이다. 초기치 문제란 초기조건에 대한 미분 방정식을 말한다. 어떤 방정식들은 해석적 해(analytic solution)를 찾을 수 있으며 물체의 궤적을 계산하는 데 쓰일 수 있지만, 대부분의 경우에는 해석적 형태가 존재하지 않으며 수치적으로 적분해야만 해를 구할 수 있다. 수치 적분에 대한 접근 방식은 많이 존재하며, 선택은 어플리케이션(application) 상의 요구에 달려있다.This method, also known as the Euler solution, is the simplest solution to the initial problem. The initial value problem is the differential equation for the initial condition. Some equations can find an analytical solution and can be used to calculate the trajectory of an object, but in most cases there is no analytic form and you need to integrate it numerically. There are many approaches to numerical integration, and the choice depends on the needs of the application.
도 4는 본 발명에 따른 그래픽스 처리 방법으로, 물리기반 시뮬레이션의 일 실시예를 단계별로 나타낸 순서도이다.4 is a flowchart illustrating a step-by-step embodiment of a physical-based simulation in a graphics processing method according to the present invention.
먼저 그래픽스 처리장치(6)는 외부기억장치(3)에서 대상 객체들을 중앙처리장치(2)를 통해 가져와서 내장된 기억장치(도면 중에 도시되지 않음)에 적재한다(S10).First, the graphics processing unit 6 takes the target objects from the external storage device 3 via the
가속화 계층구조 관리부(61)는 상기 기억장치에 적재된 대상 객체들을 포함하고 있는 3차원 그래픽스 장면을 계층적으로 구성하여, 컴퓨터 그래픽스 관련 알고리즘 및 렌더링이 가속화되도록 하는 가속화 계층구조를 생성한다(S11).The
가속화 계층구조 관리부(61)는 사용자가 원하는 시점에 시뮬레이션을 시작하면, 상기 생성된 가속화 계층구조를 탐색해서 충돌검사대상을 추출한다(S12).When the acceleration
충돌 검사부(62)는 가속화 계층구조 관리부(61)에서 추출된 충돌검사대상에 대해 충돌 기본객체 간의 충돌검사를 수행하여, 해당 객체 간의 교차점, 충돌 여부, 충돌지점 및 투과 깊이를 계산하고, 그 계산된 정보를 미분방정식 계산부(64) 로 제공한다(S13).The
미분방정식 계산부(64)는 물리기반 시뮬레이션에서 충돌 검사부(62)로부터 제공된 계산 정보에 대해 미분방정식 및 적분을 수행하고, 새로운 객체들의 위치를 계산하여 갱신한다(S14, S15, S16).The differential
그래픽스 처리장치(6)는 사용자가 시뮬레이션 반복을 원할 경우 상기 단계(S13 내지 S16)를 반복한다(S17).The graphics processing unit 6 repeats the above steps S13 to S16 when the user wants to repeat the simulation (S17).
도 5는 본 발명에 따른 그래픽스 처리 방법으로, 광선추적법의 일 실시예를 단계별로 나타낸 순서도이다.5 is a flowchart of a graphics processing method according to an exemplary embodiment of the present invention.
먼저 그래픽스 처리장치(6)는 외부기억장치(3)에서 대상 객체들을 중앙처리장치(2)를 통해 가져와서 내장된 기억장치(도면 중에 도시되지 않음)에 적재한다(S20).First, the graphics processing unit 6 takes the target objects from the external storage device 3 via the
가속화 계층구조 관리부(61)는 상기 기억장치에 적재된 대상 객체들을 포함하고 있는 3차원 그래픽스 장면을 계층적으로 구성하여, 컴퓨터 그래픽스 관련 알고리즘 및 렌더링이 가속화되도록 하는 가속화 계층구조를 생성한다(S21).The acceleration
가속화 계층구조 관리부(61)는 3차원 그래픽스 장면의 빛의 위치에 따라 광선을 생성한다(S22).The acceleration
가속화 계층구조 관리부(61)는 상기 생성된 가속화 계층구조를 탐색해서 충돌검사대상을 추출한다(S23).The acceleration
충돌 검사부(62)는 가속화 계층구조 관리부(61)에서 추출된 충돌검사대상에 대해 충돌 기본객체 간의 충돌검사하여, 해당 객체 간의 교차점, 충돌 여부, 충돌지점 및 투과 깊이를 계산한다(S24).The
쉐이딩 처리부(3)는 상기 충돌 검사부(62)의 충돌검사에서 계산된 정보를 이용해서 충돌이 일어난 지점의 색상을 객체 표면 속성과 빛의 세기 등을 이용해서 쉐이딩을 수행한다(S25).The shading processing unit 3 shades the color of the point where the collision occurred using the information calculated in the collision inspection of the
그래픽스 처리장치(6)는 쉐이딩 수행 결과를 레스터화한다(S26).The graphics processing unit 6 rasterizes the shading performance result (S26).
이 후 그래픽스 처리장치(6)는 레스터화된 쉐이딩된 결과를 화면 디스플레이 장치로 전달하여, 해당 화면 디스플레이 장치가 해당 그래픽스를 디스플레이하도록 한다.Thereafter, the graphics processing unit 6 transmits the rasterized shaded result to the screen display device so that the screen display device displays the graphics.
상술한 바와 같이 본 발명에서의 소프트웨어는 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 또한, 이러한 프로그램은 본 발명의 그래픽스 처리 하드웨어 장치에 대한 응용 프로그래밍 인터페이스(application programming interface; API)를 통해 각각의 내부 기능을 호출할 수 있다.As described above, the software 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. In addition, such a program may call each internal function through an application programming interface (API) for the graphics processing hardware device of the present invention.
이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사 실이다.The technical spirit of the present invention has been described above with reference to the accompanying drawings, but this is by way of example only and not intended to limit the present invention. In addition, it is obvious that any person skilled in the art can make various modifications and imitations without departing from the scope of the technical idea of the present invention.
이상에서 설명한 바와 같이 본 발명은, 그래픽스 응용시스템에 구비된 중앙처리장치(2)의 병목현상으로 시스템의 속도저하를 야기한 충돌처리, 물리연산, 쉐이딩 등의 연산부를 별도의 하드웨어적인 그래픽스 처리장치(6) 내에 실현함으로써 중앙처리장치(2)와 그래픽스 처리장치(6) 간의 데이터 전송으로 인한 데이터 병목현상을 현저히 줄일 수 있다.As described above, the present invention provides a separate hardware graphics processing device (eg, a collision processing, physical operation, shading, etc.) that causes the system to slow down due to a bottleneck of the
따라서 실시간 물리 시뮬레이션, 인터액티브 광선추적법 등에 본 발명을 실시하면 신속하고 간편하게 그래픽스를 처리할 수 있으며, 사용자가 쉐이더 프로그램 등을 통해 본 발명을 제어할 수 있기 때문에 프로그래머블한 유연성도 제공한다.Therefore, if the present invention is implemented in real-time physics simulation, interactive ray tracing, etc., graphics can be processed quickly and easily, and the user can control the present invention through a shader program or the like, thereby providing programmable flexibility.
또한, 본 발명에 따른 그래픽스 처리 장치의 충돌 처리에 있어서, 가속화 계층 구조를 통해 검사대상을 미리 현저히 줄여서 해당 검사대상에 대해 충돌검사 등의 연산을 하도록 함으로써 충돌검사에 소요되는 시간을 가속화할 수 있는 장점이 있다.In addition, in the collision processing of the graphics processing apparatus according to the present invention, by significantly reducing the inspection target in advance through an acceleration hierarchy structure, the time required for the collision inspection can be accelerated by performing the operation such as collision inspection on the inspection target. There is an advantage.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060124007A KR100791411B1 (en) | 2006-12-07 | 2006-12-07 | Apparatus and method for processing graphics |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060124007A KR100791411B1 (en) | 2006-12-07 | 2006-12-07 | Apparatus and method for processing graphics |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100791411B1 true KR100791411B1 (en) | 2008-01-07 |
Family
ID=39216615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060124007A KR100791411B1 (en) | 2006-12-07 | 2006-12-07 | Apparatus and method for processing graphics |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100791411B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100924122B1 (en) | 2007-12-17 | 2009-10-29 | 한국전자통신연구원 | Ray tracing device based on pixel processing element and method thereof |
WO2010137821A3 (en) * | 2009-05-29 | 2011-03-31 | 주식회사 실리콘아츠 | Ray tracing device and method |
KR101132308B1 (en) | 2010-06-04 | 2012-04-05 | 중앙대학교 산학협력단 | Collision detection method of polygon model using OBBTree and subdivision |
US8441477B2 (en) | 2008-12-29 | 2013-05-14 | Samsung Electronis Co., Ltd. | Apparatus and method of enhancing ray tracing speed |
KR101454692B1 (en) | 2013-11-20 | 2014-10-27 | 한국과학기술원 | Apparatus and method for object tracking |
KR101475779B1 (en) * | 2008-06-02 | 2014-12-23 | 삼성전자주식회사 | Method for 3D Image Processing |
CN111062135A (en) * | 2019-12-18 | 2020-04-24 | 哈尔滨理工大学 | Accurate collision detection method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020015973A (en) * | 2000-08-23 | 2002-03-02 | 야마우치 히로시 | Recirculating shade tree blender for a graphics system |
KR20030064239A (en) * | 2002-01-22 | 2003-07-31 | 가부시끼가이샤 도시바 | Image processing device and method, and compiler used in image processing device |
KR20060044935A (en) * | 2004-05-03 | 2006-05-16 | 마이크로소프트 코포레이션 | Systems and methods for providing an enhanced graphics pipeline |
-
2006
- 2006-12-07 KR KR1020060124007A patent/KR100791411B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020015973A (en) * | 2000-08-23 | 2002-03-02 | 야마우치 히로시 | Recirculating shade tree blender for a graphics system |
KR20030064239A (en) * | 2002-01-22 | 2003-07-31 | 가부시끼가이샤 도시바 | Image processing device and method, and compiler used in image processing device |
KR20060044935A (en) * | 2004-05-03 | 2006-05-16 | 마이크로소프트 코포레이션 | Systems and methods for providing an enhanced graphics pipeline |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100924122B1 (en) | 2007-12-17 | 2009-10-29 | 한국전자통신연구원 | Ray tracing device based on pixel processing element and method thereof |
KR101475779B1 (en) * | 2008-06-02 | 2014-12-23 | 삼성전자주식회사 | Method for 3D Image Processing |
US9064346B2 (en) | 2008-06-02 | 2015-06-23 | Samsung Electronics Co., Ltd. | Hierarchical based 3D image processor, method, and medium |
US8441477B2 (en) | 2008-12-29 | 2013-05-14 | Samsung Electronis Co., Ltd. | Apparatus and method of enhancing ray tracing speed |
WO2010137821A3 (en) * | 2009-05-29 | 2011-03-31 | 주식회사 실리콘아츠 | Ray tracing device and method |
KR101076807B1 (en) | 2009-05-29 | 2011-10-25 | 주식회사 실리콘아츠 | Ray tracing apparatus and method |
CN102439862A (en) * | 2009-05-29 | 2012-05-02 | 斯里考纳特斯公司 | Ray tracing device and method |
KR101132308B1 (en) | 2010-06-04 | 2012-04-05 | 중앙대학교 산학협력단 | Collision detection method of polygon model using OBBTree and subdivision |
KR101454692B1 (en) | 2013-11-20 | 2014-10-27 | 한국과학기술원 | Apparatus and method for object tracking |
CN111062135A (en) * | 2019-12-18 | 2020-04-24 | 哈尔滨理工大学 | Accurate collision detection method |
CN111062135B (en) * | 2019-12-18 | 2024-01-02 | 哈尔滨理工大学 | Accurate collision detection method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100791411B1 (en) | Apparatus and method for processing graphics | |
EP2939208B1 (en) | Sprite graphics rendering system | |
JP6309620B2 (en) | Use a compute shader as the front end for a vertex shader | |
US8013857B2 (en) | Method for hybrid rasterization and raytracing with consistent programmable shading | |
US8743114B2 (en) | Methods and systems to determine conservative view cell occlusion | |
WO2012158868A2 (en) | Rendering tessellated geometry with motion and defocus blur | |
CN113781624B (en) | Ray tracing hardware acceleration with selectable world space transforms | |
KR100980449B1 (en) | Method and system for rendering of parallel global illumination | |
CN113808245B (en) | Enhanced techniques for traversing ray tracing acceleration structures | |
US7843463B1 (en) | System and method for bump mapping setup | |
JP2017188095A (en) | Methods and graphics processing units for determining differential data for rays of ray bundle | |
US8466919B1 (en) | Re-rendering a portion of an image | |
CN113781625A (en) | Hardware-based techniques for ray tracing | |
KR102443697B1 (en) | Method and apparatus for performing a path stroke | |
KR20220154706A (en) | Ray Tracing Multisample Anti-Aliasing | |
US9858708B2 (en) | Convex polygon clipping during rendering | |
CN113822788A (en) | Early release of resources in ray tracing hardware | |
Favorskaya et al. | Rendering of wind effects in 3D landscape scenes | |
JP2008305347A (en) | Method and device for generating interference discrimination information | |
Van Kooten et al. | Point-based visualization of metaballs on a gpu | |
US20220406002A1 (en) | Spatial hashing for world-space spatiotemporal reservoir re-use for ray tracing | |
Weier et al. | Generating and rendering large scale tiled plant populations | |
KR100749123B1 (en) | GPS-based real-time environmental information input device at ubiquitous circumstances | |
Min et al. | OctoMap-RT: Fast Probabilistic Volumetric Mapping Using Ray-Tracing GPUs | |
KR101228118B1 (en) | Method for constructing a Kd-tree based on polygon importance |
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: 20121129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130730 Year of fee payment: 19 |