KR20160002204A - 레이 트레이싱 처리 장치 및 방법 - Google Patents

레이 트레이싱 처리 장치 및 방법 Download PDF

Info

Publication number
KR20160002204A
KR20160002204A KR1020140081219A KR20140081219A KR20160002204A KR 20160002204 A KR20160002204 A KR 20160002204A KR 1020140081219 A KR1020140081219 A KR 1020140081219A KR 20140081219 A KR20140081219 A KR 20140081219A KR 20160002204 A KR20160002204 A KR 20160002204A
Authority
KR
South Korea
Prior art keywords
ray
bounding box
box
determined
coordinate axes
Prior art date
Application number
KR1020140081219A
Other languages
English (en)
Other versions
KR102242566B1 (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 KR1020140081219A priority Critical patent/KR102242566B1/ko
Priority to US14/591,757 priority patent/US9569881B2/en
Publication of KR20160002204A publication Critical patent/KR20160002204A/ko
Application granted granted Critical
Publication of KR102242566B1 publication Critical patent/KR102242566B1/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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Abstract

3차원 그래픽스 환경에 배치된 광원 및 오브젝트(Object)를 포함하는 바운딩 박스(Bounding box)에 대한 정보에 기초하여, 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 광원으로부터 생성된 광선과 바운딩 박스의 광선-박스 교차 검사를 수행하는 레이 트레이싱 처리 방법 및 장치를 개시한다.

Description

레이 트레이싱 처리 장치 및 방법 {Apparatus and method for processing ray tracing}
본 발명은 레이 트레이싱 처리 장치 및 그 방법에 관한 것으로, 더욱 구체적으로는 공간 분할 가속 구조를 탐색하는 과정에서 광선-박스 교차 검사를 수행하는 레이 트레이싱 처리 장치 및 방법에 관한 것이다.
일반적으로 3D 렌더링(3-Dimensional Rendering)은 3차원 객체 데이터를 주어진 카메라 시점(view point)에서 보이는 영상으로 합성(synthesis)해주는 영상 처리를 말한다.
렌더링 방법은 3차원 객체를 화면에 투영(projection)하면서 영상을 생성하는 래스터화(rasterization) 방법과 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 레이 트레이싱(ray tracing)등이 있다.
이 중 레이 트레이싱은 빛의 물리적 성질(반사, 굴절, 투과 등)을 렌더링 결과에 반영하므로 고품질 영상을 생성할 수 있다는 장점이 있으나, 상대적으로 연산량이 방대하여 고속으로 렌더링 하는데 어려움이 있다.
레이 트레이싱(ray-tracing)은 가속 구조(acceleration structure)의 탐색(traversal)과 광선-프리미티브(ray-primitive) 간의 교차 검사(intersection test) 과정을 포함한다. 이때, 탐색과 교차 검사 과정에서 많은 연산량(computation) 및 넓은 메모리 대역폭(memory bandwidth)을 필요로 한다. 따라서, 탐색 및 교차 검사 과정에서 수행되는 연산량 및 대역폭을 줄이기 위한 방법들이 연구되고 있다.
공간 분할 가속 구조를 탐색하는 과정에서, 광선-박스 교차 검사를 단일 좌표 축 상에서 수행하는 레이 트레이싱 처리 장치 및 방법을 제공하는 데 있다.
또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다. 본 실시 예가 이루고자 하는 기술 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
제 1 측면에 따른, 레이 트레이싱 처리 방법은, 3차원 그래픽스 환경에 배치된 광원 및 오브젝트를 포함하는 바운딩 박스에 대한 정보를 획득하는 단계, 획득된 정보에 기초하여, 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 광원으로부터 생성된 광선과 바운딩 박스의 교차 여부를 검사하는 단계 및 검사 결과, 세 좌표축 모두에서 광선과 바운딩 박스가 교차되는 경우, 오브젝트를 렌더링하는 단계를 포함한다.
제 2 측면에 따른, 레이 트레이싱 처리 장치는, 3차원 그래픽스 환경에 배치된 광원 및 오브젝트를 포함하는 바운딩 박스에 대한 정보에 기초하여, 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 광원으로부터 생성된 광선과 바운딩 박스의 교차 여부를 검사하는 교차 검사부 및 검사 결과, 세 좌표축 모두에서 광선과 바운딩 박스가 교차되는 경우, 오브젝트를 렌더링하는 렌더링부를 포함한다.
제 3 측면에 따라, 레이 트레이싱 처리 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체가 제공된다.
광선-박스 교차 검사를 단일 좌표 축(Single-Axis) 상에서 구현함으로써, 광선-박스 교차 검사를 수행하는 연산기의 개수를 효과적으로 줄일 수 있다.
도 1은 레이 트레이싱을 설명하기 위한 도면이다.
도 2는 레이 트레이싱 처리장치를 설명하기 위한 도면이다.
도 3은 가속 구조(AS)를 설명하기 위한 도면이다.
도 4는 레이 트레이싱 처리장치가 레이 트레이싱을 수행하는 것을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 레이 트레이싱 처리 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 레이 트레이싱 처리 장치를 설명하기 위한 도면이다.
도 7은 광선-박스 교차 검사 방법을 설명하기 위한 도면이다.
도 8은 도 7의 광선-박스 교차 검사 방법을 더욱 상세하게 설명하기 위한 도면이다.
도 9은 도 8의 광선-박스 교차 검사 방법을 코드(code)로 나타낸 도면이다.
도 10는 도 7의 광선-박스 교차 검사 방법을 5단계의 파이프라인으로 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 교차 검사부를 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 전처리필터를 포함하는 교차 검사부를 설명하기 위한 도면이다.
도 13은 일 실시예에 따른 전처리필터의 일 예시 작용을 설명하기 위한 도면이다.
도 14는 도 13의 방법을 코드(code)로 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예에 의해 발명을 상세히 설명하기로 한다. 하기 실시예는 발명을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 발명이 속하는 기술분야의 전문가가 용이하게 유추할 수 있는 것은 발명의 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 레이 트레이싱(Ray tracing)을 설명하기 위한 도면이다. 도 1을 참조하면, 3차원 모델링에서, 레이 트레이싱 처리 장치는 시점(view point, 10)을 결정하고, 시점에 따라 화면(image, 20)을 결정한다. 시점(10)과 화면(20)이 결정되면, 레이 트레이싱 처리 장치는 시점(10)으로부터 화면(20)의 각 픽셀(pixel)들에 대하여 광선을 생성하여 방출한다.
도 1의 구성들을 설명하면, 시점(10)으로부터 1차 광선(primary ray, 30)이 생성된다. 1차 광선(30)은 화면(20)을 지나 씬 오브젝트(scene object, 70)와 교차된다. 1차 광선(30)과 씬 오브젝트(70)의 교차점에서는 반사 광선(reflection ray, 40) 및 굴절 광선(refraction ray, 50)이 생성된다. 또한, 교차점에서 광원(80)의 방향으로 쉐도우 광선(shadow ray, 60)이 생성된다. 이때, 반사, 굴절, 쉐도우 광선들(40, 50, 60)을 2차 광선이라고 한다. 씬 오브젝트(70)는 화면(20)에 대한 렌더링의 대상이 되는 오브젝트를 나타낸다. 씬 오브젝트(70)는 가장 기본적인 단위 영역(이하, 프리미티브(primitive)라 한다.)들의 집합으로 구성될 수 있으며, 예를 들어, 프리미티브는 삼각형, 사각형 등의 다각형이 될 수 있다. 다시 말해서, 프리미티브는 렌더링을 수행하는 데에 있어 가장 기본적인 단위 영역이 될 수 있다.
레이 트레이싱 처리 장치는 1차 광선(30), 2차 광선들(40, 50, 60) 및 2차 광선들로부터 파생되는 광선들을 분석한다. 레이 트레이싱 처리 장치는 분석 결과에 기초하여 화면(20)을 구성하는 픽셀들의 색상 값을 결정한다. 이때, 레이 트레이싱 처리 장치는 씬 오브젝트(70)의 특성을 고려하여 픽셀들의 색상 값을 결정한다.
도 2는 레이 트레이싱 처리 장치(100)를 설명하기 위한 도면이다. 도 2를 참조하면, 레이 트레이싱 처리 장치(100)는 광선 생성 유닛(110), TRV(Traversal) 유닛(120), IST(Intersection) 유닛(130) 및 쉐이딩(Shading) 유닛(140)을 포함한다. 도 2에서는 TRV 유닛(120), IST 유닛(130)이 레이 트레이싱 처리 장치(100)에 포함되는 것으로 도시되었으나, TRV 유닛(120), IST 유닛(130)은 별도의 하드웨어로 구현될 수 있다. 도 2에 도시된 레이 트레이싱 처리 장치(100)는 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
레이 트레이싱 처리 장치(100)는 광원으로부터 생성된 광선들과 3차원 공간에 위치한 오브젝트들의 교차점을 추적하고, 화면을 구성하는 픽셀들의 색상 값을 결정한다. 다시 말해서, 레이 트레이싱 처리 장치(100)는 광선들과 오브젝트들의 교차점을 찾고, 교차점에서의 오브젝트의 특성에 따라 2차 광선을 생성하고 교차점의 색상의 값을 결정한다.
레이 트레이싱 처리 장치(100)는 광선들과 오브젝트들 또는 오브젝트들을 구성하는 복수의 프리미티브들의 교차점을 찾는 과정에서 소모되는 방대한 연산량으로 인해, 3차원 공간을 분할 및 계층화하여 교차점을 찾는 과정을 가속화할 수 있다. 또한, 레이 트레이싱 처리 장치(100)는 교차점을 찾는 과정을 가속화 하기 위해, 분할되어 계층화된 공간 속에 포함되어 있는, 오브젝트 또는 프리미티브를 포함하는, 단순한 기하학적인 형태의 바운딩 볼륨(Bounding Volume)과의 교차 검사를 먼저 수행할 수 있다. 이하에서는, 바운딩 볼륨을 바운딩 박스(Bounding Box)인 경우로 보고 설명하며, 이러한 교차 검사를 광선-박스 교차 검사라고 한다. 즉, 레이 트레이싱 처리 장치(100)는 광선-박스 교차 검사를 수행한 후에, 광선과 교차된 박스 안에 포함된 오브젝트 또는 프리미티브와의 교차점을 연산하게 된다.
레이 트레이싱 처리 장치(100)는 광선-박스 교차 검사를 수행할 때, 광선의 방향 또는 원점과 같은 특성 정보를 이용할 수 있다. 즉, 오브젝트의 좌표와 광선의 방향 또는 원점을 비교하여 구체적인 연산 없이도 교차 검사를 수행할 수 있다. 레이 트레이싱 처리 장치(100)는 광선의 특성 정보를 이용하여 교차 검사를 보다 빠르게 수행할 수 있다. 이에 대한 자세한 내용은 도 12 내지 도 14에서 살펴볼 것이다.
광선 생성 유닛(110)은 1차 광선 및 2차 광선을 생성한다. 광선 생성 유닛(110)은 시점으로부터 1차 광선을 생성한다. 광선 생성 유닛(110)은 1차 광선과 오브젝트의 교차점에서 2차 광선을 생성한다. 또한, 광선 생성 유닛(110)은 2차 광선과 오브젝트의 교차점에서 또 다른 2차 광선을 생성할 수 있다. 즉, 광선 생성 유닛(110)은 2차 광선이 오브젝트와 교차된 지점에서 반사, 굴절 또는 쉐도우 광선을 생성할 수 있다. 광선 생성 유닛(110)은 정해진 횟수 내에서 반사, 굴절, 쉐도우 광선을 생성하거나, 오브젝트의 특성에 따라 반사, 굴절, 쉐도우 광선의 생성 횟수를 결정할 수 있다.
TRV 유닛(120)은 광선 생성 유닛(110)으로부터 생성된 광선에 대한 정보를 수신한다. 생성된 광선은 1차 광선, 2차 광선 및 2차 광선에 의해 파생된 광선을 모두 포함한다. 예를 들어, 1차 광선의 경우, TRV 유닛(120)은 생성된 광선의 시점 및 방향에 대한 정보를 수신할 수 있다. 또한, 2차 광선의 경우, TRV 유닛(120)은 2차 광선의 출발점 및 방향에 대한 정보를 수신할 수 있다. 2차 광선의 출발점은 1차 광선이 히트(hit)된 프리미티브의 지점을 나타낸다. 시점 또는 출발점은 좌표로 표현될 수 있으며, 방향은 벡터로 표현될 수 있다.
TRV 유닛(120)은 외부 메모리(250)로부터 가속 구조(Acceleration Structure)에 대한 정보를 독출(read)한다. 가속 구조(AS)는 가속 구조 생성 장치(200)에 의해 생성되고, 생성된 가속 구조(AS)는 외부 메모리(250)에 저장된다. 가속 구조(AS)는 3차원 공간이 분할되고 계층화되어 있는 구조인 공간 분할 구조체를 의미하며, 3차원 공간의 오브젝트들의 위치 정보를 포함하고 있는 구조를 의미한다. 예를 들어, 가속 구조(AS)는 KD-tree(K-Dimensional tree), BVH(Bounding Volume Hierarchy)를 적용하여, 3차원 공간상의 오브젝트들의 관계를 나타내는 가속 구조를 생성할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 가속 구조(AS)를 설명하기 위한 도면이다.
이하에서, 설명의 편의를 위하여, 가속 구조(AS)의 노드에 기재된 숫자로, 각 노드를 지칭하기로 한다. 예를 들어, 숫자 1이 기재되고 원형으로 도시된 노드(351)는 제1 노드(351)로, 숫자 2가 기재되고 사각형으로 도시된 노드(352)는 제2 노드(352)로, 숫자 5가 기재되고, 점선으로 된 사각형으로 도시된 노드(355)는 제5 노드(355)로 지칭할 수 있다.
가속 구조(AS)는 탑 노드(top node), 내부 노드(inner node) 리프 노드(leaf node) 및 프리미티브(primitive)를 포함할 수 있다.
도 3에서, 제1 노드(351)는 탑 노드를 나타낸다. 탑 노드는 상위 노드는 가지지 않고, 하위 노드만 가지는 최상위 노드이다. 예를 들어, 제1 노드(351)의 하위 노드는 제2 노드(352) 및 제3 노드(353)이며, 제1 노드(351)의 상위 노드는 존재하지 않는다.
또한, 제2 노드(352)는 내부 노드일 수 있다. 내부 노드는 상위 노드 및 하위 노드를 모두 가지는 노드이다. 예를 들어, 제2 노드(352)의 상위 노드는 제1 노드(351)이며, 제2 노드(352)의 하위 노드는 제4 노드(354) 및 제5 노드(355)이다.
또한, 제8 노드(358)는 리프 노드일 수 있다. 리프 노드는 하위 노드는 가지지 않고, 상위 노드만 가지는 최하위 노드이다. 예를 들어, 제8 노드(358)의 상위 노드는 제7 노드(357)이며, 제8 노드(358)의 하위 노드는 존재하지 않는다.
한편, 리프 노드는 리프 노드에 존재하는 프리미티브들을 포함할 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 리프 노드인 제6 노드(356)는 1개의 프리미티브를, 리프 노드인 제8 노드(358)는 3개의 프리미티브를, 리프 노드인 제9 노드(359)는 2개의 프리미티브를 포함한다.
또한, 일 실시예에 따라, 앞서 설명한 각 노드들은 오브젝트일수도 있으며, 오브젝트를 포함하는 바운딩 박스일 수도 있을 것이다.
TRV 유닛(120)은 가속 구조(AS)를 탐색하면서 각 노드들과 광선과의 교차 검사를 수행할 수 있으며, 교차 검사의 일 실시예로 광선-박스 교차 검사를 수행할 수 있다. 일 실시예에 따라, 광선-박스 교차 검사는 AABB(Axis-Aligned Bounding Box) 또는 OBB(Oriented Bounding Box) 충돌 테스트일 수 있다. 이러한 교차 검사를 수행하는 데에 필요한 연산은 슬랩(Slab) 방식이 사용될 수 있으나, 이에 제한되지 않는다. 일 실시예에 따른 AABB 충돌 테스트에 대한 자세한 내용은 하기 도 6에서 살펴볼 것이다.
또한, TRV 유닛(120)은 바운딩 박스와 광선의 교차여부를 판단함에 있어, 광선의 원점 또는 방향과 같은 특성정보를 이용하여 판단할 수 있다. 일 실시예로, 광선의 원점 성분과 방향 성분만으로도 바운딩 박스와 교차하지 않음을 판단할 수 있다.
IST 유닛(130)은 TRV 유닛(120)으로부터 광선이 히트된 바운딩 박스를 수신한다. IST 유닛(130)은 외부 메모리(250)로부터 히트된 바운딩 박스에 포함된 프리미티브들에 대한 정보를 독출(read)한다.
IST 유닛(130)은 광선과 프리미티브 간의 교차 검사를 수행하여, 광선이 히트된 프리미티브 및 교차점을 출력한다. 또한, IST 유닛(130)은 TRV 유닛(120)으로부터 광선이 히트된 오브젝트가 무엇인지를 수신한다. IST 유닛(130)은 히트된 오브젝트에 포함된 복수의 프리미티브들 중에서 어느 프리미티브에 광선이 히트되었는지를 검사한다. IST 유닛(130)은 광선이 히트된 프리미티브를 찾고, 히트된 프리미티브의 어느 지점과 광선이 교차하였는지를 나타내는 교차점을 출력한다. 교차점은 좌표 형태로 쉐이딩 유닛(140)으로 출력될 수 있다.
쉐이딩 유닛(140)은 IST 유닛(130)으로부터 수신된 교차점에 대한 정보 및 교차점의 물질의 특성에 기초하여 픽셀의 색상 값을 결정한다. 쉐이딩 유닛(140)은 교차점의 물질의 기본 색상 및 광원에 의한 효과 등을 고려하여 픽셀의 색상 값을 결정한다.
쉐이딩 유닛(140)은 교차점에 대한 물질 정보에 기초하여 2차 광선을 생성할 수 있다. 물질의 특성에 따라 반사, 굴절 등의 현상이 달라지므로, 쉐이딩 유닛(140)은 물질의 특성에 따라 반사, 굴절 등의 2차 광선을 생성할 수 있다. 또한, 쉐이딩 유닛(140)은 광원의 위치에 기초하여 쉐도우 광선을 생성할 수 있다.
레이 트레이싱 처리 장치(100)는 외부 메모리(250)로부터 광선 추적에 필요한 데이터를 수신한다. 외부 메모리(250)에는 가속 구조 또는 기하 데이터(geometry data)를 저장한다. 가속 구조는 가속 구조 생성 장치(200)에 의해 생성되고 외부 메모리(250)에 저장된다. 기하 데이터는 프리미티브들에 대한 정보를 나타낸다. 프리미티브는 삼각형, 사각형 등의 다각형일 수 있으며, 기하 데이터는 오브젝트에 포함된 프리미티브들의 정점 및 위치에 대한 정보를 나타낼 수 있다.
가속 구조 생성 장치(200)는 3차원 공간상의 오브젝트들의 위치 정보를 포함하는 가속 구조를 생성한다. 다시 말해서, 가속 구조 생성 장치(200)는 3차원 공간을 계층적 트리 형태로 분할한다. 가속 구조 생성 장치(200)는 여러 가지 형태의 가속 구조를 생성할 수 있다. 예를 들어, 가속 구조 생성 장치(200)는 BVH 또는 KD-tree를 적용하여 3차원 공간상의 오브젝트들의 관계를 나타내는 가속 구조를 생성할 수 있다. 가속 구조 생성 장치(200)는 리프 노드의 최대 프리미티브의 수 및 트리 깊이(tree depth)를 결정하고, 결정에 기초하여 가속 구조를 생성할 수 있다.
도 4는 도 2에 도시된 레이 트레이싱 처리 장치(100)의 레이 트레이싱 처리 방법을 설명하기 위한 도면이다. 따라서, 도 2에서 설명한 내용은 도 4의 레이 트레이싱 처리 방법에도 동일하게 적용될 수 있다.
도 4를 참조하면, 레이 트레이싱 처리 장치(100)는 광선을 생성한다(S410). 이때, 광선은 시점으로부터 생성된 1차 광선 및 1차 광선에 의해 파생된 광선들을 포함할 수 있다.
레이 트레이싱 처리 장치(100)는 외부 메모리(250)로부터 가속 구조를 읽어 오고, 생성된 광선에 기초하여, 가속 구조를 탐색한다(S420). 이에 따라, 레이 트레이싱 처리 장치(100)는 광선이 교차되는 리프 노드 또는 프리미티브의 바운딩 박스를 검출할 수 있다. 레이 트레이싱 처리 장치(100)는 광선이 교차되는 리프 노드 또는 프리미티브의 바운딩 박스를 검출할 때까지 가속 구조(AS)를 계속해서 탐색할 수 있다. 일 실시예에 따라, 레이 트레이싱 처리 장치(100)는 광선-박스 교차 검사를 수행하여, 리프 노드 또는 프리미티브의 바운딩 박스를 검출할 수 있다.
레이 트레이싱 처리 장치(100)는 어느 하나의 경로를 따라 가속 구조를 탐색하고, 탐색된 경로 상의 리프 노드에 광선이 교차되지 않았으면, 다른 경로로 가속 구조를 탐색할 수 있다.
예를 들어, 도 3을 참조하면, 레이 트레이싱 처리 장치(100)는 제1 노드(351)의 하위 노드인 제2 노드(352) 또는 제3 노드(353)부터 탐색을 시작할 수 있다. 만약, 제2 노드(352)부터 탐색을 시작하는 경우, 레이 트레이싱 처리 장치(100)는 제3 노드(353)에 대한 정보를 별도의 메모리에 저장해 놓을 수 있다.
레이 트레이싱 처리 장치(100)는 광선이 제2 노드(352)에 교차하는지 여부를 판단하여, 제2 노드(352)와 광선이 교차하는 경우, 제2 노드(352)의 하위 노드인 제4 노드(354) 및 제5 노드(355) 중 어느 하나에 대하여 탐색을 수행할 수 있다.
제4 노드(354)와 광선이 교차하는지 여부를 탐색하는 경우, 레이 트레이싱 처리 장치(100)는 나머지 노드인 제5 노드(355)에 대한 정보를 상기 별도의 메모리에 저장해 놓을 수 있다.
제4 노드(354)와 광선이 교차하는 경우, 레이 트레이싱 처리 장치(100)는 제4 노드(354)의 하위 노드인 제6 노드(356) 및 제7 노드(357) 중 어느 하나에 대하여 탐색을 수행할 수 있다.
제6 노드(356)와 광선이 교차하는지 여부를 탐색하는 경우, 레이 트레이싱 처리 장치(100)는 나머지 노드인 제7 노드(357)에 대한 정보를 상기 별도의 메모리에 저장해 놓을 수 있다.
제6 노드(356)와 광선이 교차하는 경우, 레이 트레이싱 처리 장치(100)는 제6 노드(356)를 리프 노드로써, 검출할 수 있다.
이와 같이, 레이 트레이싱 처리 장치(100)는 어느 하나의 경로를 따라 탐색을 수행하여, 리프 노드를 검출할 수 있으며, 다른 경로의 노드에 대한 정보는 별도의 메모리에 저장해 두었다가 하나의 경로 탐색을 마친 경우에, 가장 최근에 저장해둔 노드부터 다시 탐색을 수행할 수 있다.
예를 들어, 제6 노드(356)를 리프 노드로 검출한 이후에, 가장 최근에 저장해둔 제7 노드(357)부터 다시 탐색을 수행할 수 있다.
이에 따라, 레이 트레이싱 처리 장치(100)는 하나의 경로 탐색을 마치고, 다시 탑 노드부터 경로 탐색을 수행하지 않고, 경로 탐색이 끝난 경로와 가장 인접한 경로를 탐색함으로써, 연산량을 감소시킬 수 있다. 또한, 앞서 설명한 각 노드들에 대한 교차 검사는 광선-박스 교차 검사를 통해서도 가능한 바, 이하 도 5 내지 도 14에서 기술하는 광선-박스 교차 검사 방법을 통해 연산량을 감소시킬 수 있다.
한편, 레이 트레이싱 처리 장치(100)는 검출된 리프 노드 또는 바운딩 박스를 IST 유닛(120)으로 전송할 수 있다.
레이 트레이싱 처리 장치(100)는 검출된 리프 노드 또는 바운딩 박스에 포함된 프리미티브가 광선과 교차하는지 여부를 검사할 수 있다.
이때, 레이 트레이싱 처리 장치(100)는 외부 메모리(250)로부터 프리미티브들에 대한 정보인 기하 데이터(252)를 읽어올 수 있으며, 읽어온 프리미티브들에 대한 정보를 이용하여, 광선과 프리미티브들 간의 교차 검사를 수행할 수 있다(S430).
레이 트레이싱 처리 장치(100)는 TRV 유닛(120)으로부터 수신한 리프 노드 또는 바운딩 박스에 포함된 프리미티브 중에서 어느 프리미티브에 광선이 교차되었는지를 검사할 수 있다.
예를 들어, 검출된 리프 노드에 3개의 프리미티브(제1 내지 제3 프리미티브)가 포함되는 경우, 레이 트레이싱 처리 장치는 제1 프리미티브와 광선의 교차 검사, 제2 프리미티브와 광선의 교차 검사 및 제3 프리미티브와 광선의 교차 검사를 수행하여, 광선이 교차되는 프리미티브를 검출할 수 있다.
이에 따라, 레이 트레이싱 처리 장치(100)는 광선이 교차되는 프리미티브들을 검출하고, 검출된 프리미티브와 광선이 교차된 지점(hit point)을 계산할 수 있다.
레이 트레이싱 처리 장치(100)는 교차 검사에 기초하여, 픽셀의 쉐이딩을 수행할 수 있다(S440). 즉, 교차점에 대한 정보 및 교차점의 물질의 특성에 기초하여 픽셀의 색상 값을 결정할 수 있다.
레이 트레이싱 처리 장치(100)는 440 단계(S440)를 종료하면, 410 단계(S410)로 진행한다. 레이 트레이싱 처리 장치(100)는 하나의 픽셀에 대한 쉐이딩 이후에, 다른 픽셀의 쉐이딩을 수행하기 위하여, 다시, 410 단계(S410) 내지 440 단계(S440)를 수행하며, 화면을 구성하는 모든 픽셀들에 대해 410 단계(S410) 내지 440 단계(S440)를 반복적으로 수행한다.
도 5는, 일 실시예에 따라, 도 4의 레이 트레이싱 처리 방법을 다른 측면에서 설명하는 도면이다.
레이 트레이싱 처리 장치(100)는 광원(80)으로부터 생성된 광선과 복수의 오브젝트 각각을 포함하는 복수의 바운딩 박스에 대한 정보를 획득할 수 있다.(S510) 광선에 대한 정보는 광선의 시점과 방향에 대한 정보를 포함할 수 있다. 광선에 대한 정보는 광선 생성 유닛(110)으로부터 입력 받을 수 있고, 복수의 바운딩 박스에 대한 정보는 외부 메모리(250)로부터 입력 받을 수 있다.
레이 트레이싱 처리 장치(100)는 S510에서의 광선과 바운딩 박스간의 교차 여부를 판단하는 검사를 수행한다.(S520) 이러한 교차 검사는 복수의 바운딩 박스 각각에 대해 순차적으로 수행될 수 있다. 또한, 교차 검사는 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 수행될 수 있다. 또한, 교차 검사는 세 좌표축인 제 1 좌표축, 제 2 좌표축 및 제 3 좌표축 순으로 세 좌표축 각각에서 이루어질 수 있다. 복수의 바운딩 박스 각각에 대해 수행되는 교차 검사에 대한 설명은 도 7 및 도 8에서 상세히 살펴볼 것이다.
레이 트레이싱 처리 장치(100)는 S520에서 교차되는 바운딩 박스가 검출되면, 검출된 바운딩 박스에 포함되어 있는 오브젝트에 대해 렌더링하는 과정이 수행된다.(S530) 이러한 렌더링 과정은 도 4의 광선-프리미티브 교차 검사(S430) 및 쉐이딩(S440)하는 단계가 수행될 수 있다.
도 6은, 일 실시예에 따라, 도 5의 레이 트레이싱 처리 방법을 수행하는 레이 트레이싱 처리 장치(100)를 나타내는 도면이다.
일 실시예에 따라, 레이 트레이싱 처리 장치(100)는 3차원 그래픽스 환경에 배치된 광원 및 오브젝트(Object)를 포함하는 바운딩 박스(Bounding box)에 대한 정보에 기초하여, 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 광원으로부터 생성된 광선과 바운딩 박스의 교차 여부를 검사하는 교차 검사부(610) 및 검사 결과, 세 좌표축 모두에서 광선과 바운딩 박스가 교차되는 경우, 오브젝트를 렌더링하는 렌더링부를 포함할 수 있다.
일 실시예에 따라, 교차 검사부(610)는 도 5의 S510 및 S520을 수행하고, 렌더링부(620)는 S530을 수행할 수 있다.
일 실시예에 따라, 교차 검사부(610)는 도 2의 TRV 유닛(120)의 역할을 수행할 수 있으며, 렌더링부(620)는 IST 유닛(130) 또는 쉐이딩 유닛(140)의 역할을 수행할 수 있다.
도 7은, 일 실시예에 따라, 도 5의 광선-박스 교차 검사(S520)를 구체적으로 나타내는 도면이다.
광선-박스 교차 검사를 수행하는 방법은 3차원 그래픽스 환경을 정의하는 세 좌표축, 즉 공간 좌표계의 세 좌표축에 대하여 동시에 병렬적으로 처리하는 것이 아닌, 단일 좌표축인 제 1 좌표축, 제 2 좌표축, 제 3 좌표축 상에서 순차적으로 처리되는 방식을 취한다. 따라서, 일 실시예에 따라, x축 상에서의 광선과 바운딩 박스의 교차 검사, y축 상에서의 광선과 바운딩 박스의 교차 검사, z축 상에서의 광선과 바운딩 박스의 교차 검사가 순차적으로 이루어진다고 볼 수 있다. 또한, 이를 다른 말로 표현하면, 광선의 x성분, 광선의 y성분, 광선의 z성분이 순차적으로 바운딩 박스와의 교차검사를 수행한다고 볼 수 있다.
레이 트레이싱 처리 장치(100)는 제 1 좌표축에서 광선과 바운딩 박스의 교차 검사를 수행할 수 있다.(S710) 구체적인 교차 검사 방법은 도 8에 의해 기술될 것이다. 따라서, 레이 트레이싱 처리 장치(100)는, 교차 검사 수행 결과, 교차한다면 S720을 수행하게 하고, 교차하지 않는다면 해당 박스는 광선과 교차하지 않음을 선언하게 된다(750).
레이 트레이싱 처리 장치(100)는 제 2 좌표축에서 광선과 바운딩 박스의 교차 검사를 수행할 수 있다.(S720) 구체적인 교차 검사 방법은 도 8에 의해 기술될 것이다. 따라서, 레이 트레이싱 처리 장치(100)는, 교차 검사 수행 결과, 교차한다면 S730을 수행하게 하고, 교차하지 않는다면 해당 박스는 광선과 교차하지 않음을 선언하게 된다(750).
레이 트레이싱 처리 장치(100)는 제 3 좌표축에서 광선과 바운딩 박스의 교차 검사를 수행할 수 있다.(S730) 구체적인 교차 검사 방법은 도 8에 의해 기술될 것이다. 따라서, 레이 트레이싱 처리 장치(100)는, 교차 검사 수행 결과 세 좌표축에서 광선과 바운딩 박스가 교차한다면 해당 바운딩 박스는 검출되어(740), 도 5의 S530의 과정을 진행시킨다. 한편, 레이 트레이싱 처리 장치(100)는 교차하지 않는다면 해당 박스는 광선과 교차하지 않음을 선언하게 된다(550).
도 8은, 도 7의 단일 좌표축에서의 광선-박스 교차 검사 방법을 나타내는 도면이다. 즉, 도 7의 S710, S720, S730에서 도 8의 방법을 이용하여 순차적으로 각 단일 좌표축 상에서 광선-박스 교차 검사를 수행할 수 있다.
한편, 바운딩 박스는 축 정렬된 바운딩 박스(Axis-Aligned Bounding Box) 또는 방향성 있는 바운딩 박스(Oriented Bounding Box)가 될 수 있으나 이에 제한되지 않는다. 하기의 방법은 일 실시예에 따라, 축 정렬된 바운딩 박스(이하, 박스로 기술한다.)인 경우를 예로 설명한다.
하기의 광선-박스 교차 검사 방식은 슬랩(Slab) 방식을 사용하였으나, 이에 제한되지 않는다. 슬랩 방식은 3차원 공간 좌표계의 세 좌표축(일 예로, x, y, z축)의 슬랩들이 교차되는 부분이 박스가 되는 경우, 3개의 슬랩들과 광선과의 교차점들의 최대값 또는 최소값을 연산한 후, 그 최대값 또는 최소값들의 크기 비교를 통해 교차 여부를 판단하는 방식을 일컫는다. 또한, 하기의 교차여부를 판단하는 방식은 슬랩 방식을 x, y, z 축에 대하여 동시에 병렬적으로 처리하는 것이 아닌, 단일 좌표축인 x축, y축, z축 상에서 순차적으로 처리되는 방식을 취한다. 따라서, 일 실시예에 따라, x축 상에서의 광선과 박스의 교차 검사, y축 상에서의 광선과 박스의 교차 검사, z축 상에서의 광선과 박스의 교차 검사가 순차적으로 이루어진다고 볼 수 있다. 또한, 이를 다른 말로 표현하면, 광선의 x성분, 광선의 y성분, 광선의 z성분이 순차적으로 박스와의 교차검사를 수행한다고 볼 수 있다.
레이 트레이싱 처리 장치(100)는 일 실시예에 따라, x축, y축, z축 중의 임의의 단일 좌표축상에서 박스와 입력된 광선과의 교차점을 연산할 수 있다.(S810) 일 실시예에 따라, 레이 트레이싱 처리 장치(100)는, 임의의 단일 좌표축이 x축인 경우, 박스의 x좌표의 최소값과 최대값에 대하여 x축 상의 광선과의 교차점을 연산한다. 이를 코드로 구현내면, 도 9의 빗금 친 영역(910)으로 표현할 수 있다.
레이 트레이싱 처리 장치(100)는 S810에서 연산된 교차점들 중에, 크기 비교하는 연산을 통해 최대값과 최소값을 구분할 수 있다.(S820) 이하에서는 일 실시예에 따라, 구분된 최대값을 Smax로, 최소값을 Smin으로 보고 기술한다. 일 실시예에 따라, 이를 코드로 구현하면, 도 9의 빗금 친 영역(920)으로 표현할 수 있다.
레이 트레이싱 처리 장치(100)는 Max of min과 Min of max를 연산한다.(S830) 이는, S820에서 구분된 Smin과 기 설정된 값(일 실시예에 따라, 이하에서는 min_t로 기술한다.)과의 비교를 통해 그 중에 최대값을 산출하고(Max of min), S820에서 구분된 Smax와 다른 기 설정된 값(일 실시예에 따라, 이하에서는 max_t)과의 비교를 통해 그 중에 최소값을 산출한다(Min of max). 일 실시예에 따라, 이를 코드로 구현하면 도 9의 빗금 친 영역(930)으로 표현할 수 있다.
레이 트레이싱 처리 장치(100)는 앞에서 연산된 Max of min값과 Min of max의 크기 비교를 통해 광선과 박스의 교차 여부를 판단한다.(S840) 일 실시예에 따라, Max of min 보다 Min of max가 크거나 같다면, x축 상에서 광선은 박스와 교차한 것으로 본다.
또한, 레이 트레이싱 처리 장치(100)는 S840에서, Max of min 보다 Min of max가 크거나 같다면, S830의 max_t를 Min of max로 업데이트하고, S830의 min_t를 Max of min으로 업데이트한다(860). 따라서, 레이 트레이싱 처리 장치(100)는, 광선의 y성분과 박스의 교차 검사 연산에서의 S830에서, 광선의 x성분과 박스의 교차 검사 연산을 통해 업데이트된 max_t와 min_t를 이용하여 Max of min과 Min of max를 연산하게 된다. 일 실시예에 따라, S840 및 S860을 코드로 구현하면, 도 9의 빗금 친 영역(940)으로 표현할 수 있다.
이와 같이, 레이 트레이싱 처리 장치(100)는, S840에서의 Min of max 및 Max of min을 S830에서의 max_t 및 min_t로 업데이트 하는 과정을 통해, 교차되는 박스가 광원 또는 광선의 시점으로부터의 거리가 가장 가까이 있는 박스인지 여부도 판단할 수 있다.
구체적인 예로, 일 실시예에 따라, 광선의 x성분, y성분, z성분이 연속적으로 제 1 박스와의 교차 여부를 판단하게 되고(동일 광선과 제 1 박스의 교차 검사가 x, y, z축 상에서 이루어지고), 이어서 동일 광선의 x성분, y성분, z성분이 연속적으로 제 2 박스와의 교차 여부를 판단하게 되는 경우(동일 광선과 제 2 박스의 교차 검사가 x, y, z축 상에서 이루어지는 경우)를 생각해보자. 이 경우, 레이 트레이싱 처리 장치(100)는, 광선의 z성분까지 최종적으로 제 1 박스와 교차한다면, 광선의 z성분과 제 1 박스와의 교차 검사 중의 S840에서의 Min of max 및 Max of min을, 광선의 x성분과 제 2 박스와의 교차 검사 중의 S830에서의 max_t 및 min_t로 업데이트 하는 과정을 통해 제 2 박스가 광원 또는 광선의 시점과 가장 가까이 있는 박스인지 여부도 판단할 수 있다. 즉, 앞의 예에서, 제 2 박스가 광선의 x성분부터 광선의 z성분과 모두 교차한다면(동일 광선과 제 2 박스가 x, y, z축 상에서 모두 교차한다면), 제 2 박스는 광선과 교차하는 것뿐만 아니라 광원 또는 광선의 시점과의 거리가 제 1 박스보다 더 가까이 있는 박스인 것이다. 앞의 예를 제 3 박스, 제 4 박스, … , 제 n 박스로 확장한다면, 레이 트레이싱 처리 장치(100)는, 해당 박스가 광선과 교차하는지 여부 뿐만 아니라 광원(광선의 시점)과 가장 가까이 있는 박스인지 여부도 확인할 수 있을 것이다.
레이 트레이싱 처리 장치(100)는 S840에서, 일 실시예에 따라, Max of min 보다 Min of max가 작거나 같다면, 광선의 x성분은 박스와 교차하지 않음을 선언하게 된다(850). 따라서, 레이 트레이싱 처리 장치(100)는, 광선의 x성분, y성분, z성분이 박스와 순차적으로 교차 검사를 수행되는 중에, 어느 하나의 성분이 박스와 교차하지 않는 선언을 한다면, 나머지 성분의 교차 검사를 수행하지 않고 광선과 박스는 교차하지 않는 것으로 판단할 수 있다. 즉, 레이 트레이싱 처리 장치(100)는 광선의 x성분이 박스와 교차하지 않는다면, 광선과 박스는 교차하지 않는 것으로 보고 광선의 y성분, z성분과 박스의 교차 검사를 수행하지 않는다.
따라서, 레이 트레이싱 처리 장치(100)는 S870에서, 일 실시예에 따라, 세 좌표축 모두에서 광선과 박스가 교차된 것인지 여부를 판단하게 되고, 세 좌표축 모두에서 교차가 되었다면, 세 좌표축에서 모두 교차된 박스가 검출된다.(740)
도 10은 도 7의 단일 좌표축에서의 광선-박스 교차 검사 방법(S710, S720, S730)을 도 8과는 다른 측면에서 나타내는 도면이다. 즉, 광선-박스 교차 검사 방법이 5 단계의 파이프라인에서 순차적으로 수행되는 것을 나타내는 도면이다.
뺄셈 연산단계(S1010)에서는, 광선의 원점과 박스와의 뺄셈 연산을 하는 과정을 나타낸다. 일 실시예에 따라, 레이 트레이싱 처리 장치(100)는, 광선의 x성분의 원점과 박스의 x좌표의 최소값 및 최대값을 빼는 연산을 수행하게 된다. 이 경우, 뺄셈 연산단계(S1010)에서는 뺄셈 연산기 2개를 이용할 수 있다.
곱셈 연산단계(S1020)에서는, 뺄셈 연산단계(S1010)에서의 결과값과 광선의 방향 성분의 곱셈 연산을 하는 과정을 나타낸다. 이 경우, 곱셈 연산단계(S1020)에서는 곱셈 연산기 2개를 이용할 수 있다.
S1010 및 S1020은, 일 실시예에 따라, 레이 트레이싱 처리 장치(100)가 도 8의 단일 좌표축 상에서 박스와 입력된 광선과의 교차점을 연산하는 단계(S810)를 구현한다. 또한, 일 실시예에 따라, 코드로 구현하면 도 9의 빗금 친 영역(910)과 같다.
제 1 비교 연산단계(S1030)는, 일 실시예에 따라, 도 8의 교차점들의 크기 비교하는 단계(S820)를 구현한다. 또한, 일 실시예에 따라, 코드로 구현하면, 도 9의 빗금 친 영역(920)과 같다. 이 경우, 제 1 비교 연산단계(S1030)에서는 비교 연산기 1개를 이용할 수 있다.
제 2 비교 연산단계(S1040)는, 일 실시예에 따라, 도 8의 Max of min 및 Min of max를 연산하는 단계(S830)를 구현한다. 또한, 일 실시예에 따라, 코드로 표현하면, 도 9의 빗금 친 영역(930)과 같다. 이 경우, 제 2 비교 연산단계(1040)에서는 비교 연산기 2개를 이용할 수 있다.
제 3 비교 연산단계(S1050)는, 일 실시예에 따라, 도 8의 교차 여부를 판단하는 단계(S840)를 구현한다. 레이 트레이싱 처리 장치(100)는 교차 여부 판단 결과, 교차가 된다면 max_t 및 min_t를 Min of max 및 Max of min으로 업데이트한다(860).
예를 들면, 광선의 x성분이 제 2 비교 연산단계(S1040)를 거쳐 제 3 비교 연산단계(S1050)에서 실행될 때, 동일 광선의 y성분이 제 1 비교 연산단계(S1030)를 거쳐 제 2 비교 연산단계(S1040)에서 실행되는 경우를 살펴보자. 이 경우, 광선의 x성분이 제 3 비교 연산단계(S1050)에서 실행 결과 박스와 교차가 되어 max_t 및 min_t가 업데이트가 될 때, 광선의 y성분이 제 2 비교 연산단계(S1040)에서 실행될 때에는 업데이트된 max_t 및 min_t를 이용하여 비교 연산과정이 실행된다.
이와 같이, 레이 트레이싱 처리 장치(100)는, 동일 광선이 파이프라인에서 연속적으로 처리되는 경우, 제 3 비교 연산단계(S1050)에서의 Min of max 및 Max of min을 제 2 비교 연산단계(S1040)에서의 max_t 및 min_t로 업데이트 하는 과정을 통해 광선과 교차되는 박스가 광원 또는 광선의 시점과 가장 가까이 있는 박스인지 여부도 판단할 수 있다.
구체적인 예로, 일 실시예에 따라, 제 1 박스와의 교차 검사를 수행하기 위한 광선의 x성분, y성분, z성분이 순차적으로 뺄셈 연산단계(S1010)로 들어가고, 이어서 동일 광선의 x성분, y성분, z성분이 연속적으로 제 2 박스와의 교차 검사를 수행하기 위해 뺄셈 연산단계(S1010)로 들어가는 경우를 살펴보자. 이 경우, 레이 트레이싱 처리 장치(100)는, 광선의 z성분까지 최종적으로 제 1 박스와 교차가 된다면, 제 3 비교연산단계(S1050)에서의 Min of max 및 Max of min을 제 2 비교 연산단계(S1040)에서의 max_t 및 min_t로 업데이트를 하게 된다. 이어서, 제 2 박스와의 교차 검사를 수행하기 위한 광선의 x성분은 제 2 비교 연산단계(S1080)에서, 업데이트된 max_t 및 min_t를 이용하여 연산이 된다. 따라서, 제 2 박스가 광선의 x성분부터 광선의 z성분과 모두 교차된다면, 제 2 박스는 광선과 교차하는 것뿐만 아니라 광원 또는 광선의 시점과의 거리가 제 1 박스보다 더 가까이 있는 박스인 것이다. 앞의 예를, 제 3 박스, 제 4 박스, … , 제 n 박스로 확장한다면, 레이 트레이싱 처리 장치(100)는, 해당 박스가 광선과 교차하는지 여부 뿐만 아니라 광원(광선의 시점)과 가장 가까이 있는 박스인지도 확인할 수 있을 것이다. 따라서, 레이 트레이싱 처리 장치(100)는, 동일 광선이 순차적으로 입력되는 경우, 제 2 비교 연산단계(S1040)의 기준값(max_t, min_t)이 제 3 비교 연산단계(S850)의 결과값(Min of max, Max of min)으로 업데이트되어, 광선의 마지막 좌표(예로, 광선의 z성분)와 박스와의 교차 여부를 판단하므로써, 광선과 박스가 교차하는지 여부뿐만 아니라 동시에 광원 또는 광선의 시점으로부터의 거리가 가장 가까운 박스인지 여부 또한 판단할 수 있는 것이다.
또한, 레이 트레이싱 처리 장치(100)는, 일 실시예에 따라, 광선의 x성분, y성분, z성분이 박스와 순차적으로 교차 검사를 수행하는 중에, 제 3 비교연산단계(S1050)에서 광선의 어느 하나의 성분이 박스와 교차하지 않는다면, 광선의 나머지 성분과 박스의 교차 검사를 수행하지 않고 광선과 박스는 교차하지 않는 것으로 판단할 수 있다. 즉, 레이 트레이싱 처리 장치(100)는, 광선의 x성분이 박스와 교차하지 않는다면, 광선과 박스는 교차하지 않는 것으로 보고 광선의 y성분, z성분과 박스의 교차 검사를 수행하지 않는다.
도 11는 도 8의 광선-박스 교차 검사를 수행하는 교차 검사부(610)를 나타내는 도면이다.
교차 검사부(610)는 일 실시예에 따라, 제 1 연산부(1110)와 제 2 연산부(1120)를 포함할 수 있다. 일 실시예에 따라, 제 1 연산부(1110)는 도 8의 S810과 도 10의 S1010 및 S1020을 수행할 수 있고, 제 2 연산부(1120)는 도 8의 S820 및 S830과 도10의 S1030 및 S1040 및 S1050을 수행할 수 있다.
Arithmetic Unit 3-Axis Single-Axis
Subtraction 6 2
Multiply 6 2
Compare 3 1
Compare 2 2
Compare 2 1
Compare 3
상기의 표 1은 광선-박스 교차 검사를 수행하는 방법을 공간상의 세 좌표에 대해 동시에 병렬적으로 처리하는 경우(3-Axis)와 도 10과 같이 단일 좌표에 대해 순차적으로 처리하는 경우(Single-Axis)를 파이프라인으로 구현하였을 때 연산기의 개수를 나타내는 표이다. 도 10과 같은 Single-Axis의 경우에는 총 5 단계의 파이프라인으로 구성되어 있으며, 각 단계의 연산기의 개수는 2, 2, 1, 2, 1과 같다. 이를 공간상의 세 좌표에 대해 동시에 병렬적으로 처리하는 경우에는 총 6 단계의 파이프라인으로 구성되어 있으며, 각 단계의 연산기의 개수는 6, 6, 6, 3, 2, 2, 3과 같다. 즉, Single-Axis의 파이프라인은 3-Axis의 파이프라인보다 연산기의 개수를 적게 사용하면서 동일한 내용의 광선-박스 교차 검사를 수행할 수 있다. 따라서, 본원발명은 Single-Axis의 파이프라인을 이용하여 하드웨어적인 비용을 줄일 수 있다.
도 12에서는, 일 실시예에 따라, 도 6의 교차 검사부(610)가 전처리필터(1210)를 구비하여 광선-박스 교차 검사를 수행하는 방법을 나타내는 도면이다. 즉, 교차 검사부(610)는 광선과 박스의 세 좌표축에 대한 연산을 시행하기 전에 전처리필터(1210)를 구비하여 미리 광선과 박스의 교차 여부를 판단할 수 있다. 예를 들어, 광선의 방향 및 원점 정보에 기초하여 박스와의 교차 여부를 미리 판단할 수 있다.
도 13 및 14은, 교차 검사부(610)가, 일 실시예에 따라, 광선의 방향 및 원점 정보에 기초하여 박스와의 교차 여부를 미리 판단하는 과정을 나타낸다. 이러한 과정은 도 12의 전처리필터(1210)에서 구현될 수 있다. 2차원상에서의 광선과 박스로 예를 들면, 광선(1330)의 방향이 x축의 양의 방향을 가리키고 광선(1330)의 원점이 박스(1310)의 x축에서의 최대값보다도 큰 경우에는, 별도의 단일 축 상에서의 순차적인 교차 검사를 수행할 필요 없이 광선(1330)과 박스(1310)는 교차하지 않는다고 교차 검사부(610)는 판단할 수 있다. 상기 예를 코드로 구현하면, 도 14의 빗금 친 영역(1410)으로 나타낼 수 있다. 또한, 일 실시예에 따라, 또 다른 광선(1320)의 방향이 x축의 음의 방향을 가리키고 광선(1320)의 원점이 박스(1310)의 x축에서의 최소값보다도 작은 경우에는, 별도의 단일 축 상에서의 순차적인 교차 검사를 수행할 필요 없이 광선(1320)과 박스(1310)는 교차하지 않는다고 교차 검사부(610)는 판단할 수 있다. 상기 예를 코드로 구현하면, 도 14의 빗금 친 영역(1420)으로 나타낼 수 있다. 따라서, 교차 검사부(610)는 도 10에서 광선이 5단계의 파이프라인에 입력되기 전에 전처리필터(1210)에서 미리 교차 여부를 판단할 수 있다.
한편, 상술한 광선-박스 교차 검사 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 실시예들에 따른 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.

Claims (20)

  1. 3차원 그래픽스 환경에 배치된 광원 및 오브젝트(Object)를 포함하는 바운딩 박스(Bounding box)에 대한 정보를 획득하는 단계;
    상기 획득된 정보에 기초하여, 상기 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 상기 광원으로부터 생성된 광선과 상기 바운딩 박스의 교차 여부를 검사하는 단계; 및
    상기 검사 결과, 상기 세 좌표축 모두에서 상기 광선과 상기 바운딩 박스가 교차되는 경우, 상기 오브젝트를 렌더링하는 단계;를 포함하는 레이 트레이싱 처리 방법.
  2. 제 1 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    상기 세 좌표축인 제 1 좌표축, 제 2 좌표축 및 제 3 좌표축 순으로 상기 세 좌표 축 각각에서 상기 광선과 상기 바운딩 박스의 교차 여부를 검사하는 것인 레이 트레이싱 처리 방법.
  3. 제 1 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    상기 바운딩 박스가 상기 광원으로부터의 거리가 가장 가까운 바운딩 박스인지 여부를 검사하는 단계;를 포함하고,
    상기 세 좌표축 모두에서 상기 광선과 상기 바운딩 박스가 교차되는 경우, 상기 바운딩 박스는 상기 광원으로부터의 거리가 가장 가까운 바운딩 박스인 것으로 판단되는 것인 레이 트레이싱 처리 방법.
  4. 제 1 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    상기 바운딩 박스가 상기 세 좌표축 상에서 순차적으로 상기 광선과 교차 여부를 검사하는 단계;를 포함하고,
    상기 세 좌표축 중 어느 하나의 좌표축 상에서 상기 바운딩 박스가 상기 광선과 교차되지 않는 경우, 상기 바운딩 박스는 상기 광선과 교차되지 않는 것으로 판단되는 것인 레이 트레이싱 처리 방법.
  5. 제 1 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    복수의 오브젝트 각각에 대응되는 복수의 바운딩 박스가 있을 때, 상기 복수의 바운딩 박스 각각에 대해 순차적으로 상기 광선과의 교차 여부를 검사하는 단계;를 포함하고,
    상기 세 좌표축 모두에서 상기 광선과 교차되는 바운딩 박스가 존재하는 경우, 상기 교차되는 바운딩 박스가 이전의 교차된 바운딩 박스보다 상기 광원에 더 가까이 있는 것으로 판단되는 것인 레이 트레이싱 처리 방법.
  6. 제 1 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    상기 세 좌표축 중 어느 하나의 단일 좌표축 상에서 상기 바운딩 박스와 상기 광선과의 교차점들을 연산하는 단계;
    상기 연산된 교차점들 중의 큰 값과 기 설정된 제 1 기준값 중의 최소값을 판단하고, 상기 연산된 교차점들 중의 작은 값과 기 설정된 제 2 기준값 중의 최대값을 판단하는 단계;
    상기 판단된 최대값보다 상기 판단된 최소값이 크거나 같은 경우, 상기 단일 좌표축 상에서 상기 바운딩 박스는 상기 광선과 교차되는 것으로 판단하는 단계; 및
    상기 판단된 최대값보다 상기 판단된 최소값이 작은 경우, 상기 단일 좌표축 상에서 상기 바운딩 박스는 상기 광선과 교차되지 않는 것으로 판단하는 단계;
    를 포함하는 레이 트레이싱 처리 방법.
  7. 제 6 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    상기 판단된 최대값보다 상기 판단된 최소값이 크거나 같은 경우, 상기 제 1 기준값은 상기 판단된 최소값으로 업데이트하고 상기 제 2 기준값은 상기 판단된 최대값으로 업데이트하는 단계;를 더 포함하는 레이 트레이싱 처리 방법.
  8. 제 1 항에 있어서,
    상기 바운딩 박스는 축 정렬된 바운딩 박스(Axis-Aligned Bounding Box)인 것인 레이 트레이싱 처리 방법.
  9. 제 1 항에 있어서,
    상기 교차 여부를 검사하는 단계는,
    상기 광선의 특징 정보를 이용하여, 상기 바운딩 박스가 상기 광선과 교차되는 지 여부를 판단하는 단계;를 더 포함하는 레이 트레이싱 처리 방법.
  10. 제 9 항에 있어서,
    상기 광선의 특징 정보는 광선의 시점(Origin) 및 방향(Direction) 정보를 포함하는 것인 레이 트레이싱 처리 방법.
  11. 3차원 그래픽스 환경에 배치된 광원 및 오브젝트(Object)를 포함하는 바운딩 박스(Bounding box)에 대한 정보에 기초하여, 상기 3차원 그래픽스 환경을 정의하는 세 좌표 축 각각에서 상기 광원으로부터 생성된 광선과 상기 바운딩 박스의 교차 여부를 검사하는 교차 검사부; 및
    상기 검사 결과, 상기 세 좌표축 모두에서 상기 광선과 상기 바운딩 박스가 교차되는 경우, 상기 오브젝트를 렌더링하는 렌더링부;를 포함하는 레이 트레이싱 처리 장치.
  12. 제 11 항에 있어서,
    상기 교차 검사부는,
    상기 세 좌표축인 제 1 좌표축, 제 2 좌표축 및 제 3 좌표축 순으로 상기 세 좌표 축 각각에서 상기 광선과 상기 바운딩 박스의 교차 여부를 검사하는 것인 레이 트레이싱 처리 장치.
  13. 제 11 항에 있어서,
    상기 교차 검사부는,
    상기 바운딩 박스가 상기 광원으로부터의 거리가 가장 가까운 바운딩 박스인지 여부를 검사하고,
    상기 세 좌표축 모두에서 상기 광선과 상기 바운딩 박스가 교차되는 경우, 상기 바운딩 박스는 상기 광원으로부터의 거리가 가장 가까운 바운딩 박스인 것으로 판단되는 것인 레이 트레이싱 처리 장치.
  14. 제 11 항에 있어서,
    상기 교차 검사부는,
    상기 바운딩 박스가 상기 세 좌표축 상에서 순차적으로 상기 광선과 교차 여부를 검사하고,
    상기 세 좌표축 중 어느 하나의 좌표축 상에서 상기 바운딩 박스가 상기 광선과 교차되지 않는 경우, 상기 바운딩 박스는 상기 광선과 교차되지 않는 것으로 판단되는 것인 레이 트레이싱 처리 장치.
  15. 제 11 항에 있어서,
    상기 교차 검사부는,
    복수의 오브젝트 각각에 대응되는 복수의 바운딩 박스가 있을 때, 상기 복수의 바운딩 박스 각각에 대해 순차적으로 상기 광선과의 교차 여부를 검사하고,
    상기 세 좌표축 모두에서 상기 광선과 교차되는 바운딩 박스가 존재하는 경우, 상기 교차되는 바운딩 박스가 이전의 교차된 바운딩 박스보다 상기 광원에 더 가까이 있는 것으로 판단되는 것인 레이 트레이싱 처리 장치.
  16. 제 11 항에 있어서,
    상기 교차 검사부는,
    상기 세 좌표축 중 어느 하나의 단일 좌표축 상에서 상기 바운딩 박스와 상기 광선의 교차점들을 연산하는 제 1 연산부; 및
    상기 연산된 교차점들 중의 큰 값과 기 설정된 제1기준값 중의 최소값을 판단하고, 상기 연산된 교차점들 중의 작은 값과 기 설정된 제2기준값 중의 최대값을 판단하는 제 2 연산부;를 포함하고,
    상기 판단된 최대값보다 상기 판단된 최소값이 크거나 같은 경우, 상기 단일 좌표축 상에서 상기 바운딩 박스는 상기 광선과 교차되는 것으로 판단하고,
    상기 판단된 최대값보다 상기 판단된 최소값이 작은 경우, 상기 단일 좌표축 상에서 상기 바운딩 박스는 상기 광선과 교차되지 않는 것으로 판단하는 것인 레이 트레이싱 처리 장치.
  17. 제 16 항에 있어서,
    상기 교차 검사부는,
    상기 판단된 최대값보다 상기 판단된 최소값이 크거나 같은 경우, 상기 제 1 기준값은 상기 판단된 최소값으로 업데이트하고 상기 제 2 기준값은 상기 판단된 최대값으로 업데이트하는 것인 레이 트레이싱 처리 장치.
  18. 제 11 항에 있어서,
    상기 교차 검사부는,
    상기 광선의 특징 정보를 이용하여, 상기 바운딩 박스가 상기 광선과 교차되는 지 여부를 판단하는 전처리필터;를 포함하는 레이 트레이싱 처리 장치.
  19. 제 18 항에 있어서,
    상기 광선의 특징 정보는 상기 광선의 시점(Origin) 및 방향(Direction) 정보를 포함하는 것인 레이 트레이싱 처리 장치.
  20. 상기 제 1 항 내지 제 10 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020140081219A 2014-06-30 2014-06-30 레이 트레이싱 처리 장치 및 방법 KR102242566B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140081219A KR102242566B1 (ko) 2014-06-30 2014-06-30 레이 트레이싱 처리 장치 및 방법
US14/591,757 US9569881B2 (en) 2014-06-30 2015-01-07 Method and apparatus processing ray bounding box intersection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140081219A KR102242566B1 (ko) 2014-06-30 2014-06-30 레이 트레이싱 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160002204A true KR20160002204A (ko) 2016-01-07
KR102242566B1 KR102242566B1 (ko) 2021-04-20

Family

ID=54931118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140081219A KR102242566B1 (ko) 2014-06-30 2014-06-30 레이 트레이싱 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9569881B2 (ko)
KR (1) KR102242566B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180071928A (ko) * 2016-12-20 2018-06-28 한국과학기술원 대표 광선 기반의 점유맵 업데이트 방법 및 시스템
CN113822788A (zh) * 2020-06-18 2021-12-21 辉达公司 光线追踪硬件中对资源的早期释放

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109377525B (zh) * 2018-09-13 2021-08-20 武汉雄楚高晶科技有限公司 一种拍摄目标的三维坐标估计方法和拍摄设备
US11748935B2 (en) * 2020-01-03 2023-09-05 Advanced Micro Devices, Inc. Bounding volume hierarchy traversal
CN112507571B (zh) * 2021-01-21 2022-01-04 博智安全科技股份有限公司 兵棋通视分析方法、终端设备和计算机可读存储介质
GB2599188B (en) 2021-03-23 2022-10-12 Imagination Tech Ltd Intersection testing in a ray tracing system
GB2599182B (en) * 2021-03-23 2022-10-26 Imagination Tech Ltd Intersection testing in a ray tracing system
GB2599183B (en) * 2021-03-23 2022-10-12 Imagination Tech Ltd Intersection testing in a ray tracing system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043018A1 (en) * 2000-06-19 2008-02-21 Alexander Keller Instant ray tracing
US20080088622A1 (en) * 2006-10-13 2008-04-17 Robert Allen Shearer Dynamic reallocation of processing cores for balanced ray tracing graphics workload
KR20090020924A (ko) * 2007-08-24 2009-02-27 연세대학교 산학협력단 3차원 광선 추적 시스템에서 적응형 다중 계층 케이디-트리구조 알고리즘을 이용한 광선 추적 방법 및 장치
KR20110136059A (ko) * 2010-06-14 2011-12-21 삼성전자주식회사 3차원 영상 시스템에서 광선 추적 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8411088B2 (en) * 2000-06-19 2013-04-02 Nvidia Corporation Accelerated ray tracing
US7659894B2 (en) * 2000-06-19 2010-02-09 Mental Images Gmbh Terminating spatial partition hierarchies by a priori bounding memory
US7088358B2 (en) 2002-02-19 2006-08-08 Siemens Corporate Research, Inc. Collision detection method for deformable objects in a scene
US8217935B2 (en) 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US8421801B2 (en) 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
US8564589B1 (en) * 2010-05-17 2013-10-22 Nvidia Corporation System and method for accelerated ray-box intersection testing
US9183667B2 (en) * 2011-07-15 2015-11-10 Kirill Garanzha Out-of-core ray tracing with memory-efficient page generation
US10970912B2 (en) * 2013-03-14 2021-04-06 Imagination Technologies Limited 3-D graphics rendering with implicit geometry

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043018A1 (en) * 2000-06-19 2008-02-21 Alexander Keller Instant ray tracing
US20080088622A1 (en) * 2006-10-13 2008-04-17 Robert Allen Shearer Dynamic reallocation of processing cores for balanced ray tracing graphics workload
KR20090020924A (ko) * 2007-08-24 2009-02-27 연세대학교 산학협력단 3차원 광선 추적 시스템에서 적응형 다중 계층 케이디-트리구조 알고리즘을 이용한 광선 추적 방법 및 장치
KR20110136059A (ko) * 2010-06-14 2011-12-21 삼성전자주식회사 3차원 영상 시스템에서 광선 추적 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Martin Eisemann et al., Fast Ray/Axis-Aligned Bounding Box Overlap Tests using Ray Slopes(2008.01.08. 공개) 1부.* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180071928A (ko) * 2016-12-20 2018-06-28 한국과학기술원 대표 광선 기반의 점유맵 업데이트 방법 및 시스템
CN113822788A (zh) * 2020-06-18 2021-12-21 辉达公司 光线追踪硬件中对资源的早期释放
CN113822788B (zh) * 2020-06-18 2023-10-03 辉达公司 光线追踪硬件中对资源的早期释放

Also Published As

Publication number Publication date
US9569881B2 (en) 2017-02-14
KR102242566B1 (ko) 2021-04-20
US20150379756A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
KR102242566B1 (ko) 레이 트레이싱 처리 장치 및 방법
US9996966B2 (en) Ray tracing method and apparatus
JP6476090B2 (ja) 加速構造の生成及び探索を行う方法並びに装置
KR102604737B1 (ko) 가속 구조를 생성하는 방법 및 장치
KR102493461B1 (ko) 렌더링 시스템 및 방법
KR102164541B1 (ko) 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
US10586375B2 (en) Hybrid raytracing approach for modeling light reflection
KR20150039496A (ko) 이전 렌더링의 결과를 이용하여 광선을 추적하는 방법 및 장치
KR20160125172A (ko) 레이 트레이싱 장치 및 방법
US10460506B2 (en) Method and apparatus for generating acceleration structure
CN105279783B (zh) 在光线跟踪系统中遍历加速结构的设备和方法
KR20150136348A (ko) 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법
KR102252374B1 (ko) 광선 추적 유닛 및 광선 데이터를 처리하는 방법
KR101585998B1 (ko) 영상 처리 장치 및 방법
KR102537529B1 (ko) 레이 트레이싱 장치 및 방법
KR102537530B1 (ko) 가속 구조를 생성하는 방법 및 장치
KR102467031B1 (ko) 가속 구조를 생성 및 탐색하는 방법
US20150186288A1 (en) Apparatus and method of operating cache memory
KR102365112B1 (ko) 레이 트레이싱 장치 및 방법
Pałka et al. Visibility determination in beam tracing with application for real-time sound simulation
Lysykh et al. The realistic rendering of scenes defined by the cloud of points
Aman Model-Based Camera Tracking for Augmented Reality

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