KR100939212B1 - 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 - Google Patents
광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 Download PDFInfo
- Publication number
- KR100939212B1 KR100939212B1 KR1020070131731A KR20070131731A KR100939212B1 KR 100939212 B1 KR100939212 B1 KR 100939212B1 KR 1020070131731 A KR1020070131731 A KR 1020070131731A KR 20070131731 A KR20070131731 A KR 20070131731A KR 100939212 B1 KR100939212 B1 KR 100939212B1
- Authority
- KR
- South Korea
- Prior art keywords
- ray
- information
- light
- scene
- tracing
- Prior art date
Links
Images
Classifications
-
- 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
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
본 발명은 광선 집합을 이용한 병렬 광선 추적 기술에 관한 것으로, 광선 추적을 통하여 사실적인 영상 표현을 위한 광선 발생을 수행하고, 광선의 기본 정보인 위치 및 방향과, 결과가 저장될 픽셀위치 정보, 광선 깊이 정보를 포함하는 광선들로 구성된 광선 집합을 구성하며, 광선 집합의 광선과, 입력된 장면 정보를 이용하여 장면 내부를 탐색하고, 장면 정보에서 교차 객체가 없는 광선 집합을 제거하고 최초 교차된 객체 정보를 포함하는 광선들로 구성된 광선 집합을 구성하고, 최초 교차된 객체가 조명과 광선에 의해 표현되는 광량을 계산하며, 광량 계산부로부터 계산된 최종 결과를 광선 집합의 픽셀 위치 정보를 이용하여 독립된 이미지의 해당 위치에 누적 저장하는 것을 특징으로 한다. 본 발명에 의하면, 병렬 처리에 용이하게 광선에 처리 정보를 포함함으로써 각 모듈별로 처리 단계를 세분화 할 수 있고, 각 세분화 단계에서 필요한 광선만을 처리함으로써 병렬 처리 및 프로세서의 사용 효율성을 높일 수 있고, 병렬처리에서 처리되는 프로세스 수와 광선 추적 깊이에 비례하여 광선 집합의 크기를 구성할 수 있어, 메모리 용량이 작을 경우, 병렬 처리되는 프로세스 수를 조정함으로써 손쉬운 병렬처리를 가능하게 할 수 있다.
광선 추적법(ray tracing), 병렬 처리(parallel processing), 광선 구조(ray data structure)
Description
본 발명은 사진과 같은 사실적인 영상(photo-realistic image)을 표현하기 위해 이용되는 광선 추적(ray tracing) 기술에 관한 것으로서, 특히 병렬 처리 방식에 적합하게 광선 추적법의 광선을 처리 정보와 함께 구성함으로써, 단일명령 복수 데이터(SIMD: Single Instruction Multiple Data) 처리와 같이 동일 구조 내에서 광선이 독자적으로 처리될 수 있도록 구성하여 병렬 처리(parallel processing)의 효율성을 높일 수 있는 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-045-02, 과제명: 기능 확장형 초고속 랜더러 개발].
최근 들어 디지털 콘텐츠가 많이 쓰이는 영화나 게임에서 점점 더 사실적 표현을 위해 광선 추적법이 많이 사용되고 있다.
광선 추적법은 인간이 물체를 볼 수 있는 것은 물체에서 반사된 빛을 감지함 으로써 물체를 인식하지만, 물체에 반사된 빛이 관찰자의 눈으로까지 도달하는 경로를 추적하는 것은 불가능하므로 관찰자로부터 물체까지, 그리고 물체에서 광원까지의 경로를 역으로 추적하는 것이다. 이와 같은 역추적을 통하여 광선의 굴절, 반사를 계산한 후 화면에 그려나가는 것이다.
다만, 광선 추적법은 많은 계산 시간을 요구하여 콘텐츠 제작 효율을 저하시킬 수 있으므로, 근래에는 병렬처리 방식을 이용하여 광선 추적 계산을 빠르게 수행하여 콘텐츠 제작 효율을 높이려는 연구가 진행되고 있다.
광선 추적법에서 광선의 구성은 주로, 광선의 시작과 방향, 그리고 광선의 진행 거리 정도로 구성하고, 나머지 정보들은 각각의 프로세서에서 관리하였다. 이 방법은 광선을 발생하는 광선 발생부와, 발생된 광선과 장면 내부를 탐색하며 최초 교차되는 객체를 찾는 장면 탐색부와, 최초 교차된 객체가 조명과 광선에 의해 어떤 색으로 표현되는지를 계산하는 광량 계산부, 각각이 일부 요소를 필요로 하기 때문에, 순차 처리 방식에서는 저장 공간 측면에서도 효율적이고 재귀호출을 이용하므로 새로 발생된 광선 처리에도 효과적이었다.
다만, 픽셀값이 순차적으로 처리되므로 처리 정보를 따로 저장할 필요가 없는 순차 처리 방식과 달리, 병렬 처리에서는 재귀호출이 안 되거나 제약이 많으므로 광선과 연관 정보를 각각 관리하는 것은 오류를 발생하기 쉽고, 광선 간에 물체 교차에 따라 또는 광량 계산 방식에 따라 처리 절차가 각각 다르므로, 그 정보를 연관 시켜 유지하는 것이 오히려 비효율적일 수 있다.
다만, 픽셀값이 순차적으로 처리되므로 처리 정보를 따로 저장할 필요가 없는 순차 처리 방식과 달리, 병렬 처리에서는 재귀호출이 안 되거나 제약이 많으므로 광선과 연관 정보를 각각 관리하는 것은 오류를 발생하기 쉽고, 광선 간에 물체 교차에 따라 또는 광량 계산 방식에 따라 처리 절차가 각각 다르므로, 그 정보를 연관 시켜 유지하는 것이 오히려 비효율적일 수 있다.
이에, 병렬 처리시에는 여러 광선이 광선 발생부에서 발생되어, 장면 탐색부를 거치면서 물체와 교차되는 것과 교차되지 않는 광선을 따로 처리해야 하고, 교차된 정보와 광선의 연관성을 유지하면서 광량 계산부에 의해 처리되어야 한다. 광량 계산부에서는 교차된 물체의 속성에 따라 새로운 광선이 발생되는 것과 되지 않는 것이 있고, 새롭게 발생된 광선은 장면 탐색부를 거쳐 계산되어야 하는데, 이런 과정은 병렬처리 보다는 순차 처리에 적합한 경향이 강하다. 그래서 종래의 병렬 처리 시스템에서는 각 광선에서 픽셀 계산 단계까지 순차적으로 유지하고, 각각의 광선은 독립적으로 유지하는 방법이 있었다.
이러한 예로, 마야나 렌더맨에서 제공하는 장면 분할 렌더링 방식이 이에 해당되며, "SGI Origin 2000"과 같은 시스템에서는 각 프로세서마다 처리할 블록 내 픽셀 수를 설정하여 처리하였다.
상기한 바와 같이 동작하는 종래 기술에 의한 병렬 처리를 통한 광선 추적기술에 있어서는, 빨리 계산이 끝나는 광선과 계산이 많이 발생하는 광선들의 차이로 대기 시간이 발생할 수 있어 이를 줄이기 위해서는 장면에 따라 픽셀 블록을 잘 분할하는 것이 필요했다. 그리고 순차 처리처럼 병렬처리를 수행하기 위해서는 순차 처리에 소요되는 메모리 용량에 병렬 처리하려는 수만큼의 메모리가 필요하게 되어 대량의 메모리가 필요하기 때문에 수행이 어렵다는 문제점이 있었다.
이에 본 발명은, 광선 추적법에 쓰이는 광선의 효율적인 병렬 처리를 수행하기 위하여, 독립된 광선에 처리 정보를 포함함으로써 독립적인 모듈화 형태로 병렬처리를 수행하는 병렬 광선 추적 방법 및 시스템을 제공한다.
또한 본 발명은, 광선 발생부, 장면 탐색부, 광량 계산부를 포함하는 광선 추적 시스템에서 각 기능부별로 필요한 정보를 광선에 포함시켜 구성된 광선 집합을 이용하여 병렬처리를 수행하는 병렬 광선 추적 방법 및 시스템을 제공한다.
본 발명의 일 실시예 방법은, 광선 추적을 통하여 사실적인 영상 표현을 위한 광선 발생을 수행하는 경우, 상기 광선의 기본 정보인 위치 및 방향과, 결과가 저장될 픽셀위치 정보, 광선 깊이 정보를 포함하는 광선들로 구성된 광선 집합을 구성하는 과정과, 상기 광선 집합의 광선과, 입력된 장면 정보를 이용하여 장면 내부를 탐색하고, 상기 장면 정보에서 교차 객체가 없는 광선 집합을 제거하고 최초 교차된 객체 정보를 포함하는 광선들로 구성된 광선 집합을 구성하는 과정과, 상기 최초 교차된 객체가 조명과 광선에 의해 표현되는 광량을 계산하는 과정과, 상기 광량 계산부로부터 계산된 최종 결과를 상기 광선 집합의 픽셀 위치 정보를 이용하여 독립된 이미지의 해당 위치에 누적 저장하는 과정을 포함한다.
본 발명의 일 실시예 시스템은, 광선 추적을 통하여 사실적인 영상 표현을 위한 광선 발생을 수행하는 경우, 상기 광선의 기본 정보인 위치 및 방향과, 결과가 저장될 픽셀위치 정보, 광선 깊이 정보를 포함하는 광선들로 구성된 광선 집합을 구성하는 광선 발생부와, 상기 광선 집합의 광선과, 입력된 장면 정보를 이용하여 장면 내부를 탐색하고, 상기 장면 정보에서 최초 교차된 객체를 찾고, 상기 최초 교차된 객체 정보를 포함하는 광선들로 구성된 광선 집합을 구성하는 장면 탐색부와, 상기 최초 교차된 객체가 조명과 광선에 의해 표현되는 광량을 계산하는 광량 계산부와, 상기 광량 계산부로부터 계산된 최종 결과를 상기 광선 집합의 픽셀 위치 정보를 이용하여 독립된 이미지의 해당 위치에 누적 저장하는 독립 이미지부를 포함한다.
본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 병렬 처리에 용이하게 광선에 처리 정보를 포함함으로써 각 모듈별로 처리 단계를 세분화 할 수 있고, 각 세분화 단계에서 필요한 광선만을 처리함으로써 병렬 처리 및 프로세서의 사용 효율성을 높일 수 있으면서, 처리 정보를 동 일한 방식으로 관리하므로 독립 모듈화가 용이하다. 그리고 병렬처리에서 처리되는 프로세스 수와 광선 추적 깊이에 비례하여 광선 집합의 크기를 구성할 수 있어, 메모리 용량이 작을 경우, 병렬 처리되는 프로세스 수를 조정함으로써 손쉬운 병렬처리를 가능하게 할 수 있다.
또한, 본 발명을 이용하여 GPU를 이용한 병렬 처리 광선 추적 시스템이나 이 방법을 하드웨어화하여 제작된 하드웨어 광선 추적기를 제작하면 병렬처리 효율성이 높으므로, 광선 추적 방법으로 사실적인 영상을 빠르게 렌더링할 수 있다. 요즘처럼 영화 뿐 아니라 게임에서 조차 보다 사실적인 영상 표현을 요구하는 분야의 콘텐츠 제작에 이를 활용함으로써 여러 병렬 시스템을 효율적으로 사용하고 고품질의 영상을 빠르게 제작함으로써 콘텐츠 제작 단가를 낮춰서 콘텐츠 제작 경쟁력을 높일 수 있는 효과 가 있다.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 광선 추적법에 쓰이는 광선의 효율적인 병렬 처리를 수행하기 위하여, 독립된 광선에 처리 정보를 포함하여 병렬처리를 수행하는 것이다.
즉, 본 발명은, 기존의 광선 구성에 필요에 따라 광선의 계산 결과가 누적 저장된 저장(픽셀) 위치 정보, 광선 추적을 무한 반복을 방지하기 위한 광선 추적 깊이 정보, 광선과 처음으로 교차한 객체의 정보 등을 광선의 구성 요소로 함께 포함함으로써, 순서와 상관없이 광량(픽셀의 색)이 계산된 후 최종 이미지에는 저장 위치 정보를 이용하여 누적할 수 있도록 하여 효율적인 병렬 광선 추적을 수행하는 것이다.
이를 통해, 광선에 처리 정보가 있기 때문에 어떤 프로세서에 의해 수행될 수 있고, 각각의 처리부가 끝나면 계속 처리된 광선들만 모아 메모리를 줄일 수 있어 병렬 처리가 용이하다. 또한, 모든 계산이 끝날 때까지 대기하기 보다는 각 단계에서 계산되어야 할 것만 처리되어 효율적으로 프로세서들을 활용할 수 있으므로 고품질 디지털 콘텐츠 제작에 활용하는 것이 가능하다.
이하, 하기 실시예에서는 첨부된 도면을 참조하여 본 발명에 대해 구체적으로 설명하도록 한다.
도 1은 본 발명의 바람직한 실시예에 따른 처리 정보를 포함한 광선 집합을 이용한 광선 추적 시스템의 구조를 도시한 도면이다.
도 1을 참조하면, 광선 추적 시스템은 크게 광선 추적을 위한 광선을 발생하는 광선 발생부(102), 발생된 광선과 장면 내부를 탐색하며 최초 교차되는 객체를 찾는 장면 탐색부(104), 최초 교차된 객체가 조명과 광선에 의해 어떤 색으로 표현되는지를 계산하는 광량 계산부(106)로 나눌 수 있으며, 각 블록별로, 광선에 필요 한 정보를 광선 요소로서 광선 집합에 저장하여 병렬처리에 효율적으로 활용할 수 있도록 한다.
광선 추적법 시작기(100)에서 광선 추적 수행을 광선 발생부(102)로 요청하고, 광선 발생부(102)에서는 광선 추적법 시작기(100)의 광선 추적 수행 요청에 따라 광선을 발생하면서 광선 집합(110)을 구성하게 되는데, 이때 광선이 발생하는 픽셀위치 정보도 함께 저장한다. 그리고 무한 반복 광선 추적을 제한하기 위해 현재 광선 추적 단계의 광선 깊이 정보를 함께 저장할 수도 있다. 이와 같이 구성된 광선 집합(110)은 장면 탐색부(104)로 전달된다.
장면 탐색부(104)에서는 수신한 광선 집합(110)과 가속 구조를 포함하는 장면 정보(112)에서 최초 교차 객체를 찾아, 찾게된 최초 교차 객체를 포함하는 교차 정보를 광선 집합(110)에 저장하고, 이를 광량 계산부(106)로 전달한다. 광량 계산부(106)에서는 최초 교차 객체와 광선 정보, 광원 정보(114) 및 쉐이딩 방법(116)에 따라 광량(색)이 계산되고, 그 결과가 광선 집합(110)의 픽셀 위치 정보를 이용하여 이미지의 해당 위치에 누적되며, 객체의 속성에 따라 추가적으로 발생하는 반사/굴절 광선은 광선 집합(110)에 저장하여, 이를 광선 발생부(102)로 전달한다. 이러한 블록들을 통해 처리된 최종 결과는 독립 이미지 저장부(108)에 저장된다.
도 2는 본 발명의 바람직한 실시예에 따른 처리 정보를 포함한 광선 집합의 구성 요소를 도시한 도면이다.
도 2를 참조하면, 광선 집합(110)은 일반적인 광선 추적법을 기준으로 했을 때, 계산 결과가 쓰일 픽셀 위치 정보, 교차 물체의 광량 계산을 위한 교차 객체 정보 등을 필수로 필요하며, 무한 반복하는 광선 추적을 막기 위해 현재의 광선 추적 깊이 정보와, 현재 광량의 계산이 전체 이미지에 차지하는 역할을 나타내는 가중치 정보, 객체 속성에 따라 나타나는 반사/굴절 정보 등이 필요하며, 필요에 따라 장면 탐색부(104)에서 광선 추적 유효 범위를 추가하거나 모션 블러(motion blur) 같은 애니메이션을 위한 시간 정보 등을 포함할 수 있다. 물론, 광선 추적기 구성이나 처리 내용에 따라 위의 구성 요소는 달라질 수 있으며, 광선 집합을 유지함으로써, 연관 정보의 응집성과 매개 전달 편의 등 처리의 효율성을 얻을 수 있다. 특히, 도 1의 장면 탐색부(104) 처리과정에서는 최초 만나는 물체와 관련된 정보만을 필요로 하며, 픽셀정보나 광선 깊이 정보 등은 활용되지 않으므로, 전달되는 데이터양을 줄이기 위해 하기 도 4에서 광선 집합 요소 전체를 사용하지 않고, 일부 요소만을 사용할 수도 있다.
한편, 광선 집합(110)의 크기는 병렬처리 할 수 있는 용량 및 광선 추적 깊이에 따라 그 크기를 설정해야 한다. 일반적으로, 최대 용량으로 잡아야 하기 때문에 동시 처리 수를 n, 광선 추적 깊이를 d, 1개의 광선 용량을 s라 할 때, 최대 할당 광선 집합(110) 메모리 크기는 n*s*(d+2)이 필요하다.
도 3는 본 발명의 바람직한 실시예에 따른 광선 발생부의 처리 과정을 도시한 도면이다.
도 3을 참조하면, 광선 발생부(102)는 광선 추적법 시작기(100)의 요청에 의해 구동하여, 샘플링 발생기(300)에 의해 샘플링 데이터가 발생된다. 샘플링 방법은 랜덤 샘플링(random sampling), 층화(層化) 샘플링(stratified sampling), 최상 후보 샘플링(best candidate sampling) 등 기존에 알려진 방법을 이용한다. 카메라 광선 발생기(302)에서는 스크린 크기에 맞춰 각 픽셀의 위치에 발생된 샘플링 데이터를 적용하여 광선을 발생하여 광선 집합(110)의 기본 정보인 광선의 원점, 광선의 방향을 설정하고, 추가적으로 광선이 발생되고 계산 결과가 저장될 위치인 픽셀 위치 정보를 광선 요소에 저장하여 광선 집합(110)을 구성한다. 그리고 광선 추적의 무한 반복을 방지하기 위한 초기 광선 깊이와 초기 광선 결과가 최종 픽셀에 미치는 영향의 가중치 정보와, 광선 추적 유효 거리를 추가하거나 모션 블러와 같은 애니메이션을 위한 시간 정보를 초기화하여 저장한다.
이때, 광선 집합(110)은 병렬처리 단위로 생성하여 처리하게 되며, 병렬처리 단위 보다 처리할 광선 집합이 작으면 다음 처리할 광선들을 발생하여 광선 집합에 추가한 후 처리하고, 이미지를 생성할 모든 광선이 다 발생된 경우에는 남은 광선 집합(110)을 처리하는 방식으로 병렬처리 효율을 높이게 된다.
도 4는 본 발명의 바람직한 실시예에 따른 장면 탐색부의 처리 과정을 도시한 도면이다.
도 4를 참조하면, 장면 탐색부(104)에서 장면 탐색기(400)는, 가속 구조를 포함하며, Kd-tree나 BVH(Bounding Volume Hierarchy)와 같이 빠르게 장면 내 객체를 탐색할 수 있도록 구성된 장면 정보(112)가 제공된다. 광선 집합(110)은 모든 요소를 쓸 수 있지만, 데이터 전달량을 줄이기 위해 장면 탐색부(104)에서는 쓰이지 않는 광선 깊이 정보와 픽셀 정보 등을 제외한 광선의 기본 정보인 광선의 원점, 방향 및 거리(기본 광선 구성:ray.pos(원점) + t(거리) * ray.dir(방향)) 등을 이용하여 장면 탐색을 수행한다. 이후 객체 교차 테스트(402)부에서는 가속 구조의 장면 정보(112)에서 제공하는 테스트할 객체들을 테스트하여 최초 교차하는 객체를 찾는 일반적인 광선 추적법 과정을 따른다. 이후 최초 교차 객체 정보는 광선에 포함하여 광선 집합(110)에 저장되고, 교차 객체정보가 없는 광선은 광선 집합에서 제거된다. 특히, 장면 탐색부(104)에 제공된 광선 집합의 유효 범위에 따라, 유효 범위 내의 물체에 대해서만 탐색함으로써 실세계와 다른 효과(예를 들어, 투시 효과)를 줄 수도 있다.
제거 방법으로는 원자 연산(automic operation)이 제공되는 시스템에서는 교차하는 광선일 때 광선 집합(110)에 추가하면 되고, 원자 연산이 제공되지 않는 시스템에서는 순차적인 검색 연산을 수행하여 교차했다고 설정된 광선만, 광선 집합(110)에 추가함으로써 처리할 수 있다. 순차 처리를 수행할 시, 광선 정보 중에 처리에 영향이 없는 요소(예를 들어, 교차객체 정보)를 미리 정보가 될 수 없는 특정 값으로 설정해 놓으면, 순차 검색 때 해당 요소에 특정 값으로 설정되었는지 여부로 광선을 관련 요소들과 함께 쉽게 제거할 수 있는 장점을 얻을 수 있다.
도 5은 본 발명의 바람직한 실시예에 따른 광량(색) 계산부 처리 과정을 도시한 도면이다.
도 5를 참조하면, 광선집합(110)에는 교차된 객체 정보를 포함한 교차된 광선들만이 존재하므로, 불필요한 프로세스 할당 없이 모두 광량 계산부(106)에 의해 처리된다. 즉, 광량 계산부(106)에서는 교차 정보를 포함한 광선 집합(110)과 광원 정보(114)를 입력 받아 쉐이딩 방법(116)에 따라 현재 교차 객체에 광원이 미치는 영향을 계산한다. 계산 방법은 객체에 할당된 쉐이딩 방법이나 따로 제시된 쉐이딩 방법 등에 따라 계산된다.
그리고 광량 계산 결과와 광선의 가중치 값이 계산된 최종 결과가 광선 집합(110)의 픽셀 위치 정보를 이용하여 독립된 이미지 저장부(108)의 해당 위치에 누적 저장된다. 독립된 이미지 저장부(108)는 최종 이미지 크기로 모든 픽셀 계산 정보를 누적하여 저장하고 있으며, 각 채널(channel)별로 부동 소수점 정보로 유지하여 같은 픽셀에 대해서 이전 계산된 광량 정보를 담고 있다. 같은 픽셀의 모든 가중치 값은 합이 1 이하이므로, 단순 누적으로 같은 픽셀에 행해진 여러 계산의 최종 결과를 얻을 수 있다. 이에 독립 이미지 저장부(108)에 저장된 정보의 최종 결과는 요청된 이미지 포맷에 맞게 재가공 되거나 톤 매핑(tone mapping)을 통해 재처리되어 최종 이미지로 나타날 수 있다.
그리고 객체의 속성에 따라 추가적으로 발생하는 반사/굴절 광선은 기존 광선의 픽셀 위치 정보와 동일하게 설정하고, 광선 깊이 정보는 기존 광선 깊이 정보보다 1 증가 시켜 그 값이 최대 광선 깊이보다 크지 않도록 광선의 깊이 정보를 체크하여 무한 반복되는 광선 추적을 방지할 수 있다. 추가적으로 기존 광선의 가중치 정보는 합이 1이하로 초기화 되어 있으며, 반사/굴절을 통해 줄어든 가중치 정보를 계산하여 기존 광선의 가중치 정보를 곱하여 반사/굴절 광선의 가중치 정보를 설정한다. 만약 반사 또는 굴절 광선이 발생하지 않으면, 광선 집합(110)은 처리된 광선만큼 줄어들고, 반사/굴절 광선이 발생했다면 발생한 만큼 광선 집합(110)의 크기는 증가한다. 그리고 광선 집합(110)에 광선이 저장되는 순서는 크게 상관이 없지만, 광선의 깊이 정보가 큰 것이 먼저 처리되도록 수행하면 광선 집합(110)의 크기를 줄일 수 있다. 이는 광선 깊이 정보가 최대에 도달하면 더 이상 광선이 발생되지 않기 때문이다.
한편, 추가 발생된 광선 집합(110)이 병렬처리 수보다 많으면 장면 탐색부(104)를 수행하고, 병렬처리 수보다 작으면 광선 발생부(102)를 통해 병렬처리 광선을 추가한다.
이상 설명한 바와 같이, 본 발명은 광선 추적법에 쓰이는 광선의 효율적인 병렬 처리를 수행하기 위하여 독립된 광선에 처리 정보를 포함하여 병렬처리를 수행하는 것으로서, 각 블록별로 발생하는 필요 정보를 광선 집합의 구성 요소에 저장하여 다음 단계로 처리하고, 처리가 불필요한 것은 제거함으로써, 병렬 처리 효율을 높이도록 한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 바람직한 실시예에 따른 처리 정보를 포함한 광선 집합을 이용한 광선 추적 시스템의 구조를 도시한 도면,
도 2는 본 발명의 바람직한 실시예에 따른 처리 정보를 포함한 광선 집합의 구성 요소를 도시한 도면,
도 3는 본 발명의 바람직한 실시예에 따른 광선 발생부의 처리 과정을 도시한 도면,
도 4는 본 발명의 바람직한 실시예에 따른 장면 탐색부의 처리 과정을 도시한 도면,
도 5은 본 발명의 바람직한 실시예에 따른 광량(색) 계산부 처리 과정을 도시한 도면.
〈도면의 주요부분에 대한 부호의 설명〉
100 : 광선 추적법 시작기 102 : 광선 발생부
104 : 장면 탐색부 106 : 광량(색) 계산부
108 : 독립 이미지 저장부 110 : 광선 집합
Claims (11)
- 광선 추적을 통하여 사실적인 영상 표현을 위한 광선 발생을 수행하는 경우, 기본 광선 정보와 상기 광선이 발생하는 픽셀 위치 정보로 광선 집합을 구성하는 과정과,상기 광선 집합의 광선과, 입력된 장면 정보를 이용하여 장면 내부를 탐색하고, 상기 장면 정보에서 최초 교차된 객체를 찾아, 상기 최초 교차된 객체를 포함하는 광선들로 광선 집합을 구성하는 과정과,상기 최초 교차된 객체가 조명과 광선에 의해 표현되는 광량을 계산하는 과정과,상기 계산된 결과를 상기 광선 집합의 픽셀 위치 정보를 이용하여 독립된 이미지의 해당 위치에 누적 저장하는 과정을 포함하는 광선 집합을 이용한 병렬 광선 추적 방법.
- 제 1항에 있어서,상기 광선 집합은,광선의 원점, 방향 및 거리의 기본 광선 정보와,계산 결과가 쓰일 상기 픽셀 위치 정보, 최초 교차 객체 정보, 현재의 광선 추적 깊이 정보, 현재 광선의 가중치 정보로 구성되는 추가 핵심 정보와,광선 추적 유효 거리 정보, 시간 정보의 추가 부가 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 광선 집합을 이용한 병렬 광선 추적 방법.
- 제 1항에 있어서,상기 최초 교차된 객체는,장면 내 객체를 탐색할 수 있도록 구성된 상기 장면 정보와, 상기 광선 집합의 기본 정보를 이용하여 장면 탐색을 수행하고,상기 장면 정보에 포함된 테스트할 객체들을 테스트하여 찾는 것을 특징으로하는 광선 집합을 이용한 병렬 광선 추적 방법.
- 제 1항에 있어서,상기 광선 집합을 구성하는 과정은,상기 장면 정보에서 교차 객체가 없는 광선은 제거하는 것을 특징으로 하는 광선 집합을 이용한 병렬 광선 추적 방법.
- 제 1항에 있어서,상기 광량을 계산하는 과정은,상기 광선 집합에 포함된 상기 최초 교차된 객체 정보와 외부로부터 광원 정 보를 입력 받아 쉐이딩 방법에 따라 광량을 계산하는 과정과,상기 광량 계산 결과와 광선의 가중치 값이 계산된 최종 결과를 상기 독립 이미지에 전달하는 과정과,상기 광량 계산으로 발생된 반사/굴절 정보를 광선에 포함하여 상기 광선 집합에 구성하는 과정을 포함하는 광선 집합을 이용한 병렬 광선 추적 방법.
- 광선 추적을 통하여 사실적인 영상 표현을 위한 광선 발생을 수행하는 경우, 기본 광선 정보와 상기 광선이 발생하는 픽셀 위치 정보로 광선 집합을 구성하는 광선 발생부와,상기 광선 집합의 광선과, 입력된 장면 정보를 이용하여 장면 내부를 탐색하고, 상기 장면 정보에서 최초 교차된 객체를 찾고, 상기 최초 교차된 객체를 포함하는 광선들로 구성된 광선 집합을 구성하는 장면 탐색부와,상기 최초 교차된 객체가 조명과 광선에 의해 표현되는 광량을 계산하는 광량 계산부와,상기 광량 계산부로부터 계산된 최종 결과를 상기 광선 집합의 픽셀 위치 정보를 이용하여 독립된 이미지의 해당 위치에 누적 저장하는 독립 이미지부를 포함하는 광선 집합을 이용한 병렬 광선 추적 시스템.
- 제 6항에 있어서,상기 광선 집합은,광선의 원점, 방향 및 거리의 기본 광선 정보와,계산 결과가 쓰일 상기 픽셀 위치 정보, 최초 교차 객체 정보, 현재의 광선 추적 깊이 정보, 현재 광선의 가중치 정보로 구성되는 추가 핵심 정보와,광선 추적 유효 거리 정보, 시간 정보의 추가 부가 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 광선 집합을 이용한 병렬 광선 추적 시스템.
- 제 6항에 있어서,상기 광선 발생부는,스크린 크기에 맞춰 각 픽셀의 위치에서 샘플링 데이터를 발생시키는 샘플링 발생기와,상기 발생된 샘플링 데이터를 적용하여 광선을 발생하는 카메라 광선 발생기를 포함하는 광선 집합을 이용한 병렬 광선 추적 시스템.
- 제 6항에 있어서,상기 장면 탐색부는,장면 내 객체를 탐색할 수 있도록 구성된 상기 장면 정보와, 상기 광선 집합의 기본 정보를 이용하여 장면 탐색을 수행하는 장면 탐색기와,상기 장면 정보에 포함된 테스트할 객체들을 테스트하여 최초 교차하는 객체를 찾는 객체 교차 테스트부를 포함하는 광선 집합을 이용한 병렬 광선 추적 시스템.
- 제 6항에 있어서,상기 장면 탐색부는,상기 최초 교차된 객체를 광선에 포함하여 상기 광선 집합에 구성하고, 상기 객체와 교차하지 않는 광선을 제거하는 것을 특징으로 하는 광선 집합을 이용한 병렬 광선 추적 시스템.
- 제 6항에 있어서,상기 광량 계산부는,상기 광선 집합에 포함된 최초 교차된 객체 정보와 외부로부터 광원 정보를 입력 받아 쉐이딩 방법에 따라 광량을 계산하고,상기 광량 계산 결과와 광선의 가중치 값이 계산된 최종 결과를 상기 독립 이미지부로 전달하고,상기 광량 계산으로 발생된 반사/굴절 정보를 광선에 포함하여 상기 광선 집합에 구성하는 것을 특징으로 하는 광선 집합을 이용한 병렬 광선 추적 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070131731A KR100939212B1 (ko) | 2007-12-15 | 2007-12-15 | 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070131731A KR100939212B1 (ko) | 2007-12-15 | 2007-12-15 | 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090064155A KR20090064155A (ko) | 2009-06-18 |
KR100939212B1 true KR100939212B1 (ko) | 2010-01-28 |
Family
ID=40992989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070131731A KR100939212B1 (ko) | 2007-12-15 | 2007-12-15 | 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100939212B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101705581B1 (ko) | 2010-09-30 | 2017-02-22 | 삼성전자주식회사 | 데이터 처리 장치 및 방법 |
KR101228118B1 (ko) * | 2010-12-22 | 2013-01-31 | 서강대학교산학협력단 | 다각형 중요도에 기반을 둔 교차 검사 가속화 자료 구조 구성 방법 |
KR102042539B1 (ko) | 2012-07-24 | 2019-11-08 | 삼성전자주식회사 | 레이 트레이싱 방법 및 장치 |
KR102080851B1 (ko) | 2012-09-17 | 2020-02-24 | 삼성전자주식회사 | 레이 추적의 스케쥴링을 위한 장치 및 방법 |
KR102161749B1 (ko) * | 2013-10-21 | 2020-10-05 | 삼성전자 주식회사 | 화상의 렌더링을 위하여 광선 추적을 수행하는 방법 및 장치. |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03135681A (ja) * | 1989-10-20 | 1991-06-10 | Brother Ind Ltd | 画像生成方法 |
JPH07160729A (ja) * | 1993-12-06 | 1995-06-23 | Matsushita Electric Ind Co Ltd | 画像登録検索装置 |
KR0151483B1 (ko) * | 1995-07-21 | 1998-10-15 | 배순훈 | 고속 레이 트레이싱 장치 |
JPH11353496A (ja) | 1998-06-10 | 1999-12-24 | Ken Nishimura | 光線追跡のための交点探索装置 |
-
2007
- 2007-12-15 KR KR1020070131731A patent/KR100939212B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03135681A (ja) * | 1989-10-20 | 1991-06-10 | Brother Ind Ltd | 画像生成方法 |
JPH07160729A (ja) * | 1993-12-06 | 1995-06-23 | Matsushita Electric Ind Co Ltd | 画像登録検索装置 |
KR0151483B1 (ko) * | 1995-07-21 | 1998-10-15 | 배순훈 | 고속 레이 트레이싱 장치 |
JPH11353496A (ja) | 1998-06-10 | 1999-12-24 | Ken Nishimura | 光線追跡のための交点探索装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20090064155A (ko) | 2009-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11804002B2 (en) | Techniques for traversing data employed in ray tracing | |
KR100924122B1 (ko) | 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법 | |
US20200051316A1 (en) | Method for handling of out-of-order opaque and alpha ray/primitive intersections | |
US11373358B2 (en) | Ray tracing hardware acceleration for supporting motion blur and moving/deforming geometry | |
KR101054702B1 (ko) | 광선 추적 이미지 처리 시스템의 픽셀 컬러 결정 | |
JP4954005B2 (ja) | メモリ・キャッシュ内のデータを無効化する方法、コンピュータ可読媒体及びイメージ処理システム | |
US11450057B2 (en) | Hardware acceleration for ray tracing primitives that share vertices | |
JP5043939B2 (ja) | 3次元シーンの境界ボリュームを定めるノードを有する空間インデックスを用いる光線追跡のための操作を行なうプログラムを含むコンピュータ可読媒体及びシステム | |
US11816783B2 (en) | Enhanced techniques for traversing ray tracing acceleration structures | |
US9483864B2 (en) | System and method for photorealistic imaging using ambient occlusion | |
CN113781624A (zh) | 具有可选的世界空间变换的光线跟踪硬件加速 | |
US9123162B2 (en) | Integration cone tracing | |
US20230041724A1 (en) | Early release of resources in ray tracing hardware | |
KR100939212B1 (ko) | 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 | |
US8102389B2 (en) | Box casting using an integrated acceleration data structure | |
US20240009226A1 (en) | Techniques for traversing data employed in ray tracing | |
Jaspe Villanueva | Scalable exploration of 3D massive models | |
Lin et al. | Time‐varying light motion in single convergence | |
Yoon et al. | Visibility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |