KR100843292B1 - 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법 - Google Patents

룩업 테이블을 이용한 레이 트레이싱 장치 및 방법 Download PDF

Info

Publication number
KR100843292B1
KR100843292B1 KR1020060128510A KR20060128510A KR100843292B1 KR 100843292 B1 KR100843292 B1 KR 100843292B1 KR 1020060128510 A KR1020060128510 A KR 1020060128510A KR 20060128510 A KR20060128510 A KR 20060128510A KR 100843292 B1 KR100843292 B1 KR 100843292B1
Authority
KR
South Korea
Prior art keywords
scene
intersection
cell
ray
address
Prior art date
Application number
KR1020060128510A
Other languages
English (en)
Other versions
KR20080055327A (ko
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 KR1020060128510A priority Critical patent/KR100843292B1/ko
Publication of KR20080055327A publication Critical patent/KR20080055327A/ko
Application granted granted Critical
Publication of KR100843292B1 publication Critical patent/KR100843292B1/ko

Links

Images

Classifications

    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • 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)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

룩업 테이블을 이용한 레이 트레이싱 장치로서, 처리하고자 하는 장면을 복수의 영역으로 분할하여 분할 영역을 생성하고, 각각의 분할 영역이 적어도 하나의 셀을 포함하도록 처리하고자 하는 장면을 동일한 크기를 갖는 복수의 셀로 분할한 후, 상기 각각의 분할 영역에 포함되는 셀에 타 분할 영역에 포함되는 셀과 독립적인 주소를 할당하여 룩업 테이블을 생성하고 저장하는 룩업 테이블 생성부, 처리하고자 하는 장면으로 광선이 입사됨에 따라, 장면 전체의 바운딩 박스와 광선이 교차하는 전역 최근접 교차점 및 전역 최원격 교차점을 추출하고, 각각의 분할 영역과 광선이 교차하는 국부 최근접 교차점 및 국부 최원격 교차점을 추출하는 교차점 추출부, 국부 최근접 교차점에 해당하는 좌표에 대응하는 셀의 주소를 획득하는 주소 획득부 및 주소 획득부에서 획득한 주소가 가리키는 분할 영역으로 접근하여 분할 영역 내에 광선과 교차하는 삼각형이 존재하는지 확인하는 삼각형 교차 검사부를 포함하여, 시스템의 구조에 제약 없이 레이 트레이싱을 수행할 수 있고, 렌더링 속도를 향상시킬 수 있다.
레이 트레이싱, 룩업 테이블

Description

룩업 테이블을 이용한 레이 트레이싱 장치 및 방법{Apparatus and Method for Ray Tracing Using Lookup Table}
도 1은 유니폼 그리드를 이용한 일반적인 레이 트레이싱 기법을 설명하기 위한 도면,
도 2 및 도 3은 KD 트리를 이용한 일반적인 레이 트레이싱 기법을 설명하기 위한 도면,
도 4는 본 발명의 일 실시예에 의한 레이 트레이싱 장치의 구성도,
도 5a 및 5는 본 발명에 적용되는 룩업 테이블의 구조를 설명하기 위한 도면,
도 6은 본 발명의 일 실시예에 의한 레이 트레이싱 방법을 설명하기 위한 흐름도,
도 7a 내지 7e는 본 발명에 의한 레이 트레이싱 방법을 설명하기 위한 개념도,
도 8a 및 8b는 레이 트레이싱 방법별 노드 탐색 횟수를 설명하기 위한 도면,
도 9a 및 9b는 레이 트레이싱 방법별 이미지 렌더링 시간을 설명하기 위한 도면,
도 10은 본 발명에 적용되는 룩업 테이블의 다른 예시도이다.
<도면의 주요 부분에 대한 부호 설명>
10 : 레이 트레이싱 장치 110 : 제어부
120 : 인터페이스 130 : 룩업 테이블 생성부
140 : 교차점 추출부 150 : 주소 획득부
160 : 삼각형 교차 검사부
본 발명은 레이 트레이싱(Ray Tracing) 장치 및 방법에 관한 것으로, 보다 구체적으로는 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법에 관한 것이다.
최근 컴퓨터 그래픽 하드웨어의 발달로 컴퓨터 그래픽은 보다 정교하고 실제적인 영상을 보여줄 수 있게 되었다. 3차원 그래픽 처리에서 렌더링(Rendering)은 평면 영상에 형태, 위치, 조명 등 외부의 정보에 따라 다르게 나타나는 그림자, 색상, 농도 등을 고려하여 3차원 영상을 만들어내는 과정 또는 그러한 기법을 의미한다.
렌더링의 종류에는 와이어프레임 기법, 레이 트레이싱 기법 등이 있는데, 이 중에서 레이 트레이싱은 가상 광원에서 출사되는 빛이 여러 물체의 표면에서 반사되는 경로를 추적하는 기법을 의미한다. 레이 트레이싱 기법을 사용하게 되면 거울과 같이 매끈한 표면 효과는 물론이고, 천연색 사진과 같은 화상 이미지를 표현해낼 수 있으며, 모든 사물의 모양과 색을 표현하는 빛을 컴퓨터 알고리즘화하여 표현하기 때문에, 다른 렌더링 기법보다 실제에 가까운 색감과 느낌을 갖게 할 수 있다.
레이 트레이싱 기법에는 유니폼 그리드(Uniform Grid)를 이용하는 방법, KD 트리(Tree)를 이용하는 방법이 있다.
도 1은 유니폼 그리드를 이용한 일반적인 레이 트레이싱 기법을 설명하기 위한 도면이다.
유니폼 그리드를 이용하는 레이 트레이싱 기법에서는 장면을 3개의 축에 따라 균일한 크기의 격자로 나누어 광선이 지나가는 격자에 속하는 삼각형(장면의 최소 단위)에 대해서만 교차점을 검사하는 방식이다.
도 1a에 도시한 것과 같이, 광선이 5*5 격자를 지나가는 경우, 25개의 격자 중 광선이 경유하는 격자 내에서 광선이 삼각형과 교차하는지 검사하는 것이다.
도 1b는 도 1a의 A 부분을 확대한 것으로, 광선과 격자가 교차하는 지점 간의 거리(d_x, d_y)를 이용하여 광선이 지나간 격자에 대한 인덱스를 용이하게 산출할 수 있다.
그런데, 유니폼 그리드를 이용하는 경우에는 삼각형의 밀집도가 고르지 않을 경우 검사하지 않아도 되는 격자(삼각형이 포함되어 있지 않은 격자)에 대하여 불필요한 검사가 수행되기 때문에 렌더링 시간이 많이 소요되는 문제가 있다.
도 2 및 도 3은 KD 트리를 이용한 일반적인 레이 트레이싱 기법을 설명하기 위한 도면이다.
먼저, 도 2a는 KD 트리를 이용한 레이 트레이싱 기법에서, 삼각형의 분포에 따라 장면을 분할한 예를 나타내고, 도 2b는 도 2a에서 분할한 장면을 이용하여 생성한 KD 트리를 나타낸다.
도 2a에서, 장면을 분할할 때에는 SAH(Surface Area Heuristic)을 사용하여, 삼각형의 밀도가 높은 영역은 좁게, 삼각형의 밀도가 낮은 영역은 넓게 분할한다. 이는 좁은 영역에 광선이 지나갈 확률이 낮기 때문이다. 전체 장면을 s0, 이를 2분할한 하위 영역을 s1, s2, s1을 분할한 하위 영역을 n0, n1, s2를 2분할한 영역을 n2, s3, s3를 2분할한 영역을 n3, n4라 할 때, 도 2b와 같은 KD 트리가 형성된다.
KD 트리를 형성한 후에는 광선이 지나가는 공간 내의 삼각형들에 대해서만 교차점을 검사하면 되기 때문에 공간을 분할하지 않은 경우에 비하여 검사 회수를 대폭 감소시킬 수 있다.
도 3a 내지 3f는 도 2에 도시한 것과 같이 분할된 장면에 대하여 KD 트리를 적용하여 레이 트레이싱을 수행하는 예를 나타낸다.
먼저, 도 3a와 같이, 장면 전체(s1)의 바운딩 박스와 광선이 교차하는지의 여부를 확인하여, 교차하지 않을 경우 검사를 종료하고, 교차할 경우에는 광선 입사측으로부터 최근접 교차점(t_min), 최원격 교차점(t_max)가 검출되고, 광선이 분할된 영역 간의 경계 지점에서 교차하는 경우 분할 영역 교차점(t_split)가 검출된다.
다음, 도 3b에 도시한 것과 같이, 광선과 처음으로 교차하는 분할 영역에서 삼각형과의 교차점을 찾기 위해 트리를 탐색한다. 분할 영역 내에서 광선이 교차 하는지 확인할 때에는 광선 입사측과 가까운 분할 영역부터 확인하는데, 본 실시예에서는 광선 입사측과 가까운 분할 영역이 s1이므로, s2는 스택에 저장해 둔다. 그리고, KD 트리를 참조하여 현재 탐색 영역(s1)이 리프(leaf) 노드인지 확인, 리프 노드가 아닌 경우에는 현재 노드(s1)의 하위 노드 중 광선 광선의 최근접 교차점이 포함된 분할 영역(n0)에서 광선이 교차하는 삼각형이 존재하는지 확인한다.
삼각형이 존재하는 경우에는 탐색을 종료하고, 삼각형이 존재하지 않는 경우에는 광선과 분할 영역 n0가 만나는 최원격 교차점이 속해 있는 분할 영역을 탐색한다.
즉, 도 3c에 도시한 것과 같이, 도 3b에서 분할 영역 n0의 최원격 교차점(t_max)는 도 3c에서 분할 영역 s3의 최근접 교차점(t_min)이 될 것이며, 따라서, 스택으로부터 s2를 추출하여, s2가 리프 노드인지 확인한다.
다음, 도 3d에 도시한 것과 같이, s2가 리프 노드가 아닌 경우, s2의 하위 노드(n2, s3) 중 최근접 교차점(t_min)이 속해 있는 분할 영역(s3)를 확인하고, s3가 리프 노드인지 확인한다.
그리고 도 3e에 도시한 것과 같이, s3가 리프 노드가 아닌 경우, s3의 하위 노드(n3, n4) 중 최근접 교차점(t_min)이 속해 있는 분할 영역(n3)을 확인하고, 이 분할 영역(n3)에서 광선과 교차하는 삼각형이 존재하는지 확인한 다음, 삼각형이 존재하지 않을 경우, 분할 영역 n3의 최원격 교차점(t_split)를 다음 검사할 분할 영역(n4)의 최근접 교차점(t_min)으로 설정하고, 광선과 교차하는 삼각형이 존재하는지 확인한다.
이와 같은 KD 트리를 이용한 레이 트레이싱 기법은 스택을 이용하여, 이미 방문했던 노드들을 재방문할 필요 없이, 고속으로 노드를 탐색할 수 있는 이점이 있다. 그러나, 리프 노드에 도달하기 위해서 인접 노드들에 대한 탐색이 필요하고, 이에 따라 인접 노드 방문 횟수만큼의 탐색 시간이 소요되며, 이러한 문제는 트리의 깊이가 깊어질수록 더욱 가중되게 된다. 아울러, 스택을 사용하기 때문에 스택을 지원하지 않는 프로세서(GPU(Graphic Processing Unit) 등)에서는 KD 트리를 이용한 방식을 수행할 수 없게 된다.
이러한 문제를 해결하기 위해 논-스택 알고리즘들이 제안되었으나, 스택을 사용하는 경우에 비하여 렌더링 성능이 저하되는 단점이 있다.
본 발명은 상술한 문제점 및 단점을 해결하기 위하여 안출된 것으로서, 스택을 사용하지 않고, 룩업(Lookup) 테이블을 이용함으로써, 탐색 시간을 단축시킬 수 있는 레이 트레이싱 장치 및 방법을 제공하는 데 그 기술적 과제가 있다.
본 발명의 다른 기술적 과제는 레이 트레이싱 기법에서 스택을 사용하지 않도록 하여, 레이 트레이싱 기법을 다양한 시스템에서 수행할 수 있도록 하는 데 있다.
상술한 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 의한 룩업 테이블을 이용한 레이 트레이싱 장치는 처리하고자 하는 장면을 복수의 영역으로 분할하여 분할 영역을 생성하고, 각각의 분할 영역이 적어도 하나의 셀을 포함하도록 상기 처리하고자 하는 장면을 동일한 크기를 갖는 복수의 셀로 분할한 후, 상기 각각의 분할 영역에 포함되는 셀에 타 분할 영역에 포함되는 셀과 독립적인 주소를 할당하여 룩업 테이블을 생성하고 저장하는 룩업 테이블 생성부; 상기 처리하고자 하는 장면으로 광선이 입사됨에 따라, 장면 전체의 바운딩 박스와 상기 광선이 교차하는 전역 최근접 교차점 및 전역 최원격 교차점을 추출하고, 상기 각각의 분할 영역과 상기 광선이 교차하는 국부 최근접 교차점 및 국부 최원격 교차점을 추출하는 교차점 추출부; 상기 국부 최근접 교차점에 해당하는 좌표에 대응하는 셀의 주소를 획득하는 주소 획득부; 및 상기 주소 획득부에서 획득한 주소가 가리키는 분할 영역으로 접근하여 상기 분할 영역 내에 상기 광선과 교차하는 삼각형이 존재하는지 확인하는 삼각형 교차 검사부;를 포함한다.
또한, 본 발명의 일 실시예에 의한 룩업 테이블을 이용한 레이 트레이싱 방법은 처리하고자 하는 장면이 입력됨에 따라, 상기 장면을 분할K하여 장면 분할 영역을 생성하고, 상기 장면 분할 영역의 좌표와 대응하는 주소가 각각 지정된 복수의 셀로 이루어진 룩업 테이블을 생성하는 제 1 단계; 상기 장면으로 광선이 입사됨에 따라, 상기 광선과 장면 전체의 바운딩 박스가 교차하는 전역 최근접 교차점 및 전역 최원격 교차점에 해당하는 좌표를 추출하는 제 2 단계; 상기 전역 최근접 교차점을 국부 최근접 교차점으로 설정하는 제 3 단계; 상기 국부 최근접 교차점이 속한 분할 영역에 대한 국부 최원격 교차점의 좌표와 상기 전역 최원격 교차점의 좌표를 비교하는 제 4 단계; 상기 국부 최원격 교차점의 좌표가 상기 전역 최원격 교차점 좌표의 범위 내에 존재하는 경우, 상기 룩업 테이블을 참조하여 상기 국부 최근접 교차점의 좌표에 해당하는 셀의 주소를 획득하는 제 5 단계; 상기 셀의 주소에 해당하는 분할 영역 내에 상기 광선과 교차하는 삼각형이 존재하는지 확인하는 제 6 단계; 및 상기 제 6 단계의 확인 결과, 상기 광선과 교차하는 삼각형이 존재하지 않는 경우 상기 셀의 주소에 해당하는 분할 영역의 국부 최원격 교차점을 국부 최근접 교차점으로 대체하고, 상기 제 4 단계로 복귀하는 제 7 단계;를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 구체적으로 설명하기로 한다.
도 4는 본 발명의 일 실시예에 의한 레이 트레이싱 장치의 구성도이다.
도시한 것과 같이, 본 발명에 의한 레이 트레이싱 장치(10)는 전체적인 동작을 제어하는 제어부(110), 데이터 및 제어 신호를 입출력하기 위한 인터페이스(120), 룩업 테이블 생성부(130), 교차점 추출부(140), 주소 획득부(150), 삼각형 교차 검사부(160) 및 데이터베이스(170)를 포함한다.
먼저, 룩업 테이블 생성부(130)는 처리하고자 하는 장면을 비용 함수, 예를 들어, SAH를 이용하여 복수의 영역으로 분할하여 분할 영역(장면 분할 영역)을 형성하는 한편, 각 분할 영역이 적어도 한의 셀을 포함하도록 처리하고자 하는 장면을 동일한 크기를 갖는 복수의 셀로 분할하며, 동일한 분할 영역에 포함되는 셀에 타 분할 영역에 포함되는 셀과 다른 주소를 할당하여 룩업 테이블을 생성하여 데이터베이스(170)에 저장한다. 이때, 데이터베이스(170)에는 분할 영역의 좌표, 분할 영역의 좌표에 대응하는 각 셀의 인덱스 및 각 셀의 주소가 함께 저장되며, 룩업 테이블 및 분할 영역 좌표, 셀의 인덱스 및 셀의 주소는 읽기 전용 저장 매체에 저장하는 것이 바람직하다.
도 5a 및 5b는 본 발명에 적용되는 룩업 테이블의 구조를 설명하기 위한 도 면으로, 도 5a에 도시한 것과 같이, 처리하고자 하는 장면이 복수의 영역(n0, n1, n2, n3, n4)으로 분할되고, 도 5b에 도시한 것과 같이, 동일한 크기를 갖는 다수의 셀에 주소를 부여하되, 동일한 분할 영역에 속하는 셀들에 동일한 주소를 부여한 것을 알 수 있다.
즉, 룩업 테이블에서 모든 셀은 동일한 크기를 가지며, 각 셀들의 인덱스는 배열 형식으로 이루어져 있고, 분할 영역에 대응하여 고유의 주소를 갖는다.
룩업 테이블을 생성하는 방법은 크게 두 가지가 있다. 첫 번째 방법은 룩업 테이블을 구성하고 있는 단위 셀의 x, y, z축으로의 단위 길이를 정한 후, 그 단위 길이를 이용해서 KD 트리의 분할 평면의 좌표를 구하는 방법으로, 단위 길이는 장면마다 변경할 수 있다. 두 번째 방법은 기존에 미리 생성되어 있는 KD 트리의 노드들의 분할 평면 좌표를 모두 검사한 다음, 각 축별로 좌표들의 최대 공약수를 구하여, 구해진 최대 공약수를 해당 축의 단위 길이로 정해서 메타 테이블을 생성하는 방법이다. 어느 방법을 사용하는지에 상관 없이, KD 트리의 분할 평면의 좌표는 단위 길이의 배수인 위치에서 정해져야 한다는 것이다.
그리고, 룩업 테이블 생성 후 KD 트리를 재생성할 때, KD 트리의 영역 분할 위치는 셀 단위 길이의 배수인 위치해서, 비용 함수, 예를 들어 SAH를 이용하여 정하는 것이 바람직하다.
다음, 교차점 추출부(140)는 광원으로부터 장면으로 광선이 입사될 때, 전체 장면과 광선이 만나는 전역 최근접 교차점(global_min)(장면 전체의 바운딩 박스와 광선과의 교차점 중 광선의 입사측에 가장 가까운 교차점), 전역 최원격 교차 점(global_max) (장면 전체의 바운딩 박스와 광선과의 교차점 중 광선의 입사측으로부터 가장 먼 교차점), 분할 영역과 광선이 만나는 국부 최근접 교차점(t_min), 국부 최원격 교차점(t_max)를 추출한다.
주소 획득부(150)는 국부 최근접 교차점에 해당하는 좌표로부터 셀의 인덱스를 추출하고, 셀 인덱스에 대응하는 주소를 획득한다.
삼각형 교차 검사부(160)는 주소 획득부(150)에서 획득한 주소가 가리키는 영역으로 접근하여, 해당 영역 내에 광선과 교차하는 삼각형이 존재하는지 확인한다.
도 6은 본 발명의 일 실시예에 의한 레이 트레이싱 방법을 설명하기 위한 흐름도이고, 도 7a 내지 7g는 본 발명에 의한 레이 트레이싱 방법을 설명하기 위한 개념도이다.
본 발명을 위하여, 먼저 처리하고자 하는 장면에 대한 룩업 테이블을 생성한다(S100). 룩업 테이블을 생성함에 따라, 처리하고자 하는 장면의 각 분할 영역(장면 분할 영역)에 대한 좌표, 분할 영역의 좌표에 대응하는 룩업 테이블을 구성하는 각 셀의 인덱스 및 각 셀의 주소가 데이터베이스(170)에 저장되게 된다.
이후, 교차점 추출부(140)는 도 7a에 도시한 것과 같이, 광선과 장면 전체의 바운딩 박스(bounding box)가 교차하는 전역 최근접 교차점(global_t_min) 및 전역 최원격 교차점(global_t_max)에 해당하는 좌표를 추출한 후(S101), 국부 최근접 교차점(t_min)으로 전역 최근접 교차점(global_t_min)을 설정하여(S103), 광선의 입사측으로부터 가장 가까운 분할 영역(n0)에 대한 탐색이 개시되도록 한다.
그리고, 교차점 추출부(140)는 국부 최근접 교차점(t_min)이 속한 영역 즉, 탐색을 수행할 분할 영역(n0)의 국부 최원격 교차점(t_max)의 좌표와 전역 최원격 교차점(global_t_max)의 좌표를 비교하여, 국부 최원격 교차점(t_max)이 전역 최원격 교차점(global_t_max)의 좌표와 동일하거나 범위를 벗어나는지 확인한다(S105).
단계 S105의 확인 결과, 국부 최원격 교차점(t_max)의 좌표가 전역 최원격 교차점(global_t_max) 좌표의 범위 내에 있는 경우, 주소 획득부(150)는 도 7b에 도시한 것과 같이, 데이터베이스(170)로부터 국부 최근접 교차점(t_min)의 좌표에 해당하는 셀의 인덱스를 추출하고, 추출된 인덱스에 대응하는 셀의 주소(0)를 획득한다(S107).
이에 따라, 삼각형 교차 검사부(160)는 도 7b에 도시한 것과 같이, 단계 S107에서 획득한 주소(0)에 해당하는 분할 영역(n0)으로 접근하여, 해당 분할 영역(n0) 내에 광선과 교차하는 삼각형이 존재하는지 확인한다(S109).
만약, 해당 영역 내에 광선과 교차하는 삼각형이 존재하는 경우에는 탐색을 종료하고, 그렇지 않을 경우 교차점 추출부(140)는 도 7c에 도시한 것과 같이, 현재 탐색 영역(n0)의 국부 최원격 교차점(t_max)를 국부 최근접 교차점(t_min)으로 대체한 후 단계 S105로 복귀하여, 다음 분할 영역에 대한 탐색을 수행하며, 이러한 탐색 과정은 단계 S105에서 국부 최원격 교차점(t_max)이 전역 최원격 교차점(global_t_max)의 좌표와 동일한 경우 종료되게 된다.
즉, 도 7c에서 분할 영역(n3)에 대한 국부 최근접 교차점(t_min)에 해당하는 셀의 주소(3)를 룩업 테이블로부터 탐색하고, 도 7d에 도시한 것과 같이 해당 셀의 주소(3)에 대응하는 영역(n3)으로 이동하여 광선과 교차하는 삼각형이 존재하는지 확인한다
그리고, 분할 영역(n3)에 광선과 교차하는 삼각형이 존재하지 않을 경우에는 도 7e에 도시한 것과 같이, 분할 영역(n3)의 국부 최원격 교차점(t_max)를 다음 탐색 영역인 분할 영역(n4)의 국부 최근접 교차점(t_min)으로 설정하고, 국부 최근접 교차점(t_min)에 대응하는 셀의 주소(4)를 검색한다. 이후, 해당 셀의 주소(4)에 대응하는 분할 영역(n4)으로 이동하여 광선과 교차하는 삼각형이 존재하는지 확인한다.
이 때, 도 7g에 도시한 것과 같이, 분할 영역(n4)의 국부 최원격 교차점(t_max)의 좌표가 전역 최원격 교차점(global_t_max)와 동일하므로, 교차 삼각형이 존재하는지 확인 후, 탐색이 종료된다.
이와 같이, 본 발명에서는 KD 트리의 하위 노드를 탐색하지 않고, 광선이 지나가는 영역을 룩업 테이블로부터 용이하게 확인하고, 해당 영역 내에서 광선과 교차하는 삼각형의 존재 여부를 확인하기 때문에, 렌더링 속도를 대폭 향상시킬 수 있다.
도 8a 및 8b는 레이 트레이싱 방법별 노드 탐색 횟수를 설명하기 위한 도면이고, 도 9a 및 9b는 레이 트레이싱 방법별 이미지 렌더링 시간을 설명하기 위한 도면이다.
실험에 사용된 모델 데이터는 2904개의 정점들과 5804개의 삼각형들로 이루어진 Cow model과, 35947개의 정점들과 69451개의 삼각형들로 이루어진 Stanford bunny를 사용하였으며, 사용된 광선의 개수는 76800(320*240 해상도)개이다.
또한, 장면 분할을 위해 SAH를 이용하였으며, KD 트리의 최대 깊이를 16으로 하고, 룩업 테이블의 셀 하나의 단위 길이는 각각 0.02(총 30528개의 배열)와 0.002(총 371124개의 배열)를 이용하였으며, 총 4가지의 시점(앞, 위, 좌, 우)에서 모델을 바라볼 때 사용된 노드 탐색 횟수와 걸리는 시간을 측정하였다.
먼저 도 8a 및 8b는 광선 하나당 노드 탐색 횟수를 나타낸 것으로, 기존의 KD 트리를 이용한 레이 트레이싱 방법에 비하여, 본 발명에서의 룩업 테이블을 이용한 경우 탐색 횟수가 80 내지 85% 이상 감소한 것을 알 수 있다.
실제 이미지 렌더링 시간은 도 9a 및 9b에 도시한 것과 같이 30 내지 50% 정도의 시간이 단축되었음을 확인할 수 있다.
탐색 횟수 단축에 비해 탐색 시간 단축이 크지 않은 이유는 광선과 삼각형의 교차 검사는 노드 방문에 소요되는 시간보다 교차 검사에 소요되는 시간적 비용이 더 크기 때문이다.
도 10은 본 발명에 적용되는 룩업 테이블의 다른 예시도이다.
본 발명에 의하면, 육면체들의 집합으로 이루어져 있는 어떠한 구조에 대해서도 레이 트레이싱이 가능하며, 예를 들어 도 10에 도시한 것과 같이 특수한 형태의 구조에 대해서도 룩업 테이블을 적용하여 레이 트레이싱을 수행할 수 있다.
즉, 도 10에 도시한 룩업 테이블은 KD 트리로는 표현할 수 없으나, 본 발명에서는 룩업 테이블로 생성할 수 있기 때문에 레이 트레이싱 기법을 이용한 렌더링이 가능하게 된다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명에 의하면, 스택을 구비하지 않은 그래픽 처리 장치(GPU) 등에서도 레이 트레이싱이 가능하여, 시스템의 구조에 제약 없이 레이 트레이싱을 수행할 수 있다.
또한, 인접 노드 및 하위 노드에 대한 탐색 없이 셀에 부여된 주소를 이용하여 직접 광선이 지나간 영역에 대한 교차 검사가 가능하기 때문에, 렌더링 속도를 향상시킬 수 있다.

Claims (9)

  1. 룩업 테이블을 이용한 레이 트레이싱 장치로서,
    처리하고자 하는 장면을 복수의 영역으로 분할하여 분할 영역을 생성하고, 각각의 분할 영역이 적어도 하나의 셀을 포함하도록 상기 처리하고자 하는 장면을 동일한 크기를 갖는 복수의 셀로 분할한 후, 상기 각각의 분할 영역에 포함되는 셀에 타 분할 영역에 포함되는 셀과 독립적인 주소를 할당하여 룩업 테이블을 생성하고 저장하는 룩업 테이블 생성부;
    상기 처리하고자 하는 장면으로 광선이 입사됨에 따라, 장면 전체의 바운딩 박스와 상기 광선이 교차하는 전역 최근접 교차점 및 전역 최원격 교차점을 추출하고, 상기 각각의 분할 영역과 상기 광선이 교차하는 국부 최근접 교차점 및 국부 최원격 교차점을 추출하는 교차점 추출부;
    상기 국부 최근접 교차점에 해당하는 좌표에 대응하는 셀의 주소를 획득하는 주소 획득부; 및
    상기 주소 획득부에서 획득한 주소가 가리키는 분할 영역으로 접근하여 상기 분할 영역 내에 상기 광선과 교차하는 삼각형이 존재하는지 확인하는 삼각형 교차 검사부;
    를 포함하는 룩업 테이블을 이용한 레이 트레이싱 장치.
  2. 제 1 항에 있어서,
    상기 룩업 테이블 생성부는, 상기 분할 영역의 좌표, 상기 분할 영역의 좌표 에 대응하는 각 셀의 인덱스 및 각 셀의 주소를 상기 룩업 테이블과 함께 저장하는 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 룩업 테이블은, 읽기 전용 저장 매체에 저장되는 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 장치.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 룩업 테이블 생성부는, 단위 셀의 방향 축(x, y, z축)으로의 단위 길이를 결정하고, 상기 단위 길이를 이용하여 상기 분할 영역의 좌표를 결정하는 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 장치.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 룩업 테이블 생성부는, 상기 분할 영역의 좌표를 검사하고, 각 방향 축(x, y, z축)별로 상기 분할 영역 좌표들의 최대 공약수를 각각 추출하여, 상기 최대 공약수를 각 셀의 단위 길이로 결정하는 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 장치.
  6. 룩업 테이블을 이용한 레이 트레이싱 방법으로서,
    처리하고자 하는 장면이 입력됨에 따라, 상기 장면을 분할하여 장면 분할 영역을 생성하고, 상기 장면 분할 영역의 좌표와 대응하는 주소가 각각 지정된 복수의 셀로 이루어진 룩업 테이블을 생성하는 제 1 단계;
    상기 장면으로 광선이 입사됨에 따라, 상기 광선과 장면 전체의 바운딩 박스가 교차하는 전역 최근접 교차점 및 전역 최원격 교차점에 해당하는 좌표를 추출하는 제 2 단계;
    상기 전역 최근접 교차점을 국부 최근접 교차점으로 설정하는 제 3 단계;
    상기 국부 최근접 교차점이 속한 분할 영역에 대한 국부 최원격 교차점의 좌표와 상기 전역 최원격 교차점의 좌표를 비교하는 제 4 단계;
    상기 국부 최원격 교차점의 좌표가 상기 전역 최원격 교차점 좌표의 범위 내에 존재하는 경우, 상기 룩업 테이블을 참조하여 상기 국부 최근접 교차점의 좌표에 해당하는 셀의 주소를 획득하는 제 5 단계;
    상기 셀의 주소에 해당하는 분할 영역 내에 상기 광선과 교차하는 삼각형이 존재하는지 확인하는 제 6 단계; 및
    상기 제 6 단계의 확인 결과, 상기 광선과 교차하는 삼각형이 존재하지 않는 경우 상기 셀의 주소에 해당하는 분할 영역의 국부 최원격 교차점을 국부 최근접 교차점으로 대체하고, 상기 제 4 단계로 복귀하는 제 7 단계;
    를 포함하는 룩업 테이블을 이용한 레이 트레이싱 방법.
  7. 제 6 항에 있어서,
    상기 제 1 단계는, 상기 장면을 복수의 영역으로 분할하여 장면 분할 영역을 생성하고, 각각의 장면 분할 영역이 적어도 하나의 셀을 포함하도록 상기 장면을 동일한 크기를 갖는 다수의 셀로 분할한 후, 상기 각각의 장면 분할 영역에 포함되는 셀에 타 장면 분할 영역에 포함되는 셀과 독립적인 주소를 할당하는 단계인 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 방법.
  8. 제 7 항에 있어서,
    상기 제 1 단계는, 단위 셀의 방향 축(x, y, z축)으로의 단위 길이를 결정하고, 상기 단위 길이를 이용하여 상기 장면 분할 영역의 좌표를 결정하는 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 방법.
  9. 제 7 항에 있어서,
    상기 제 1 단계는, 상기 장면 분할 영역의 좌표를 검사하고, 각 방향 축(x, y, z축)별로 상기 장면 분할 영역 좌표들의 최대 공약수를 각각 추출하여, 상기 최대 공약수를 각 셀의 단위 길이로 결정하는 것을 특징으로 하는 룩업 테이블을 이용한 레이 트레이싱 방법.
KR1020060128510A 2006-12-15 2006-12-15 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법 KR100843292B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060128510A KR100843292B1 (ko) 2006-12-15 2006-12-15 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060128510A KR100843292B1 (ko) 2006-12-15 2006-12-15 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080055327A KR20080055327A (ko) 2008-06-19
KR100843292B1 true KR100843292B1 (ko) 2008-07-03

Family

ID=39802167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060128510A KR100843292B1 (ko) 2006-12-15 2006-12-15 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100843292B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101610194B1 (ko) 2008-10-15 2016-04-07 삼성전자주식회사 영상처리를 위한 데이터 처리 장치 및 방법
KR101284324B1 (ko) * 2011-06-29 2013-07-08 세종대학교산학협력단 레이 트레이싱 코어 및 레이 트레이싱 방법
KR101993835B1 (ko) 2013-02-25 2019-06-27 삼성전자주식회사 스택 관리를 위한 방법 및 장치
CN111967175B (zh) * 2020-07-30 2023-11-07 北京应用物理与计算数学研究所 基于红黑树的有限元单元快速查找方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06176167A (ja) * 1992-12-04 1994-06-24 Fujitsu Ltd レイ・トレーシング処理方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06176167A (ja) * 1992-12-04 1994-06-24 Fujitsu Ltd レイ・トレーシング処理方式

Also Published As

Publication number Publication date
KR20080055327A (ko) 2008-06-19

Similar Documents

Publication Publication Date Title
US7348975B2 (en) Applications of interval arithmetic for reduction of number of computations in ray tracing problems
CN105469440B (zh) 用于产生和遍历加速结构的方法和设备
KR101697238B1 (ko) 영상 처리 장치 및 방법
JP6474585B2 (ja) レイトレーシング処理装置及びその方法
KR102080851B1 (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
JP4858795B2 (ja) 瞬時光線追跡
KR102604737B1 (ko) 가속 구조를 생성하는 방법 및 장치
KR102197067B1 (ko) 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치
JP2017188095A (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
JP2004521423A (ja) 8分木を用いた多数の画像からの3次元表現の生成
KR20150046643A (ko) 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
KR102242566B1 (ko) 레이 트레이싱 처리 장치 및 방법
KR20180069461A (ko) 가속 구조를 생성하는 방법 및 장치
Liu et al. Change detection of mobile LIDAR data using cloud computing
KR100843292B1 (ko) 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법
US10460506B2 (en) Method and apparatus for generating acceleration structure
KR20150039496A (ko) 이전 렌더링의 결과를 이용하여 광선을 추적하는 방법 및 장치
CN113034515A (zh) 基于包围盒树的多边形裁剪方法、电子设备及存储介质
CN110211197B (zh) 一种基于多边形空间划分的光子映射优化方法、装置及系统
KR20150034062A (ko) 동일한 그룹의 데이터를 라우팅하는 방법 및 장치, 렌더링 유닛을 재구성하는 방법 및 장치
EP1966766A1 (en) Applications of interval arithmetic for reduction of number of computations in ray tracing problems
KR102467031B1 (ko) 가속 구조를 생성 및 탐색하는 방법
JP2005293021A (ja) 最大角度法を用いた三角形メッシュ生成方法及びプログラム
Machado et al. Image-based streamsurfaces
JPH09305791A (ja) 立体画像生成装置および立体画像生成方法

Legal Events

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

Payment date: 20130529

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160714

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee