KR102159262B1 - 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치 - Google Patents

레이 트레이싱에서의 오류 교차점 제거 방법 및 장치 Download PDF

Info

Publication number
KR102159262B1
KR102159262B1 KR1020140030459A KR20140030459A KR102159262B1 KR 102159262 B1 KR102159262 B1 KR 102159262B1 KR 1020140030459 A KR1020140030459 A KR 1020140030459A KR 20140030459 A KR20140030459 A KR 20140030459A KR 102159262 B1 KR102159262 B1 KR 102159262B1
Authority
KR
South Korea
Prior art keywords
ray
intersection
intersection point
primitive
point
Prior art date
Application number
KR1020140030459A
Other languages
English (en)
Other versions
KR20150107466A (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 KR1020140030459A priority Critical patent/KR102159262B1/ko
Priority to US14/644,548 priority patent/US9552662B2/en
Publication of KR20150107466A publication Critical patent/KR20150107466A/ko
Application granted granted Critical
Publication of KR102159262B1 publication Critical patent/KR102159262B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)

Abstract

레이 트레이싱에서의 교차검사 오류 제거 방법 및 장치가 개시된다.
레이 트레이싱에서의 교차검사 오류 제거 방법에 있어서, 광선과 프리미티브의 교차검사를 수행하여 교차점을 구하는 단계; 상기 교차점이 물체 내부인지 외부인지 판별하는 단계; 및 교차점의 위치정보와 광선의 경로정보를 비교하여 동일하지 않으면 잘못된 교차점으로 판단하는 단계를 포함한다.
본 발명의 실시예에 의하면, 레이 트레이싱 시스템에서 광선과 물체 교차검사에서 부동소수점 정밀도 오차로 인해 발생하는 교차점 오류를 제거해서 렌더링 화면에 홀(hole)이 발생하는 것을 막을 수 있다.

Description

레이 트레이싱에서의 오류 교차점 제거 방법 및 장치{Method and apparatus for removing false-intersection in ray tracing}
레이 트레이싱에서의 오류 교차점을 제거하는 방법 및 장치에 관한 것이다.
광선 추적 기법이라고도 하는 레이 트레이싱(Ray tracing) 기법은 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 방법으로, 빛의 물리적 성질인 반사, 굴절, 투과 등을 렌더링(rendering) 결과에 반영하므로 고품질의 영상을 생성할 수 있다. 그래서 보다 사실적인 장면을 렌더링해야 하는 영화나 에니메이션 등의 3D 렌더링 분야에서 널리 사용되고 있다.
레이 트레이싱은 광선과 교차하는 물체의 교차점을 찾고, 해당 점에서 반사, 굴절되는 광선을 다시 추적하여 교차점을 찾는 과정을 반복하면서 화면을 렌더링한다. 그런데 컴퓨터 시스템에서 실수를 표현할 때 사용하는 부동 소수점 표현이 실제 값과 미세한 차이가 있을 수 있기 때문에, 교차점을 찾고 해당 점으로부터 이차 광선들을 생성하는 과정에서 오차가 발생할 수 있다. 이처럼 교차점에서 오차가 발생하면 광선이 잘못된 물체와 부딪힌다고 판별되어 렌더링 결과 화면에 홀(hole)이 발생할 수 있다.
레이 트레이싱 시스템에서 광선과 물체 교차검사에서 부동 소수점 정밀도 오차로 인해 발생하는 교차점 오류를 제거하여 렌더링 화면에 홀(hole)이 발생하는 것을 막기 위한, 레이 트레이싱에서의 교차검사 오류 제거 방법을 제공한다.
레이 트레이싱 시스템에서 광선과 물체 교차검사에서 부동 소수점 정밀도 오차로 인해 발생하는 교차점 오류를 제거하여 렌더링 화면에 홀이 발생하는 것을 막기 위한, 레이 트레이싱에서의 교차검사 오류 제거 장치를 제공한다.
레이 트레이싱 시스템에서 광선과 물체 교차검사에서 부동 소수점 정밀도 오차로 인해 발생하는 교차점 오류를 제거하여 렌더링 화면에 홀이 발생하는 것을 막기 위한, 레이 트레이싱에서의 교차검사 오류 제거 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
일 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법은, 레이 트레이싱에서의 교차검사 오류 제거 방법에 있어서, 광선과 프리미티브의 교차검사를 수행하여 교차점을 구하는 단계; 상기 교차점이 물체의 내부 또는 외부에서 발생하는지를 나타내는 위치정보를 판단하는 단계; 및 상기 교차점의 위치정보와 상기 광선의 경로정보의 비교에 기초하여 교차점 오류를 판단하는 단계를 포함할 수 있다.
상기 교차점 오류를 판단하는 단계는, 광선이 물체의 내부를 지나고 있으면 광선의 경로정보를 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 광선의 경로정보를 OUT_RAY라 할 때, 광선의 경로정보가 IN_RAY 일 때 상기 교차점이 물체의 외부에서 발생하거나 광선의 경로정보가 OUT_RAY 일 때 상기 교차점이 물체의 내부에서 발생한 경우 교차점 오류로 판단할 수 있다.
상기 교차점의 위치정보를 판단하는 단계는 상기 광선과 상기 프리미티브의 법선 벡터의 내적값을 구하는 단계; 및 상기 내적값이 음수이면 상기 교차점이 물체 외부에서 발생한 것으로 판단하고 양수이면 상기 교차점이 물체 내부에서 발생한 것으로 판단하는 단계를 포함할 수 있다.
상기 광선의 경로정보는 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선이 primary ray 라면 OUT_RAY로 설정될 수 있다. , 상기 광선의 경로정보는 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선이 refracted ray 라면 입사광선의 경로 정보와 반대로 설정될 수 있다. 상기 광선의 경로정보는 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선이 reflected ray 라면 입사광선의 경로정보와 동일하게 설정될 수 있다.
일 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법은 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보를 비교하는 단계; 및 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 같으면 교차점 오류로 판단하는 단계를 더 포함할 수 있다.
일 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법은 상기 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값 (ε)과 비교하는 단계; 및 상기 거리가 소정의 값(ε)보다 작으면 교차점 오류로 판단하는 단계를 더 포함할 수 있다.
다른 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 장치는, 광선과 프리미티브의 교차검사를 수행하여 교차점을 구하고 교차점이 오류는 교차점인지 판별하는 프로세서; 및 광선의 경로정보를 저장하고 있는 메모리를 구비하고, 상기 교차점의 위치정보와 상기 광선의 경로정보를 비교하여 교차점 오류를 판단할 수 있다.
상기 프로세서는 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선의 경로정보가 IN_RAY 일 때 상기 교차점이 물체의 외부에서 발생한 경우 또는 광선의 경로정보가 OUT_RAY 일 때 상기 교차점이 물체의 내부에서 발생한 경우 교차점 오류로 판단할 수 있다.
상기 프로세서는 상기 광선과 상기 프리미티브의 법선 벡터 내적값을 구하고, 상기 내적값이 음수이면 상기 교차점이 물체 외부에서 발생한 것으로 판단하고 양수이면 상기 교차점이 물체 내부에서 발생한 것으로 판단할 수 있다.
상기 프로세서는 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선이 primary ray 라면 OUT_RAY로 설정할 수 있으며, 광선이 refracted ray 라면 입사광선의 경로정보와 반대로 설정할 수 있으며, 광선이 reflected ray 라면 입사광선의 경로정보와 동일하게 설정할 수 있다.
상기 프로세서는 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보를 비교하고, 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 같으면 교차점 오류로 판단할 수 있다.
상기 프로세서는 상기 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값(ε)과 비교하고, 상기 거리가 소정의 값(ε)보다 작으면 교차점 오류로 판단할 수 있다.
또 다른 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 장치는, 광선과 프리미티브의 교차검사를 수행하여 교차점을 구하는 교차점 획득부; 상기 교차점이 물체 내부인지 외부인지 판별하는 교차점 위치정보 생성부; 및 교차점의 위치정보와 광선의 경로정보를 비교하여 교차점 오류를 판단하는 오류 교차점 판별부를 포함한다.
상기 오류 교차점 판별부는 광선이 물체의 내부를 지나고 있으면 광선의 경로정보를 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 광선의 경로정보를 OUT_RAY라 할 때, 광선의 경로정보가 IN_RAY 일 때 상기 교차점이 물체의 외부에서 발생하거나 광선의 경로정보가 OUT_RAY 일 때 상기 교차점이 물체의 내부에서 발생한 경우 교차점 오류로 판단할 수 있다.
상기 교차점 위치정보 생성부는 상기 광선과 교차한 프리미티브의 법선 벡터의 내적값을 구하고, 상기 내적값이 음수이면 상기 교차점이 물체 외부이고 양수이면 물체 내부로 판단할 수 있다.
또 다른 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 장치는, 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선이 primary ray 라면 광선의 경로정보를 OUT_RAY로 설정하고, 광선이 refracted ray라면 광선의 경로정보를 입사광선의 경로정보와 반대로 설정하고, 광선이 reflected ray라면 광선의 경로정보를 입사광선의 경로정보와 동일하게 설정하는 광선 경로정보 생성부를 더 포함할 수 있다.
또 다른 측면에 따른 레이 트레이싱에서의 교차검사 오류 제거 장치는, 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보를 비교하는 식별정보 비교부;
상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 다르면 상기 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값(ε)과 비교하는 교차점 거리 비교부; 및 상기 거리가 소정의 값(ε)보다 작으면 잘못된 교차점으로 판단하는 오류 교차점 판단부를 더 포함하고,
상기 오류 교차점 판별부는 상기 오류교차점 판단부에서 교차점의 위치정보와 광선의 경로정보를 비교하여 동일하지 않으면 잘못된 교차점으로 판단할 수 있다.
상기 오류 교차점 판별부는 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 동일하면 상기 교차점이 잘못된 것으로 판단할 수 있다.
또 다른 측면에 따라 상기된 레이 트레이싱에서의 교차검사 오류제거 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
레이 트레이싱 시스템에서 광선과 물체 교차검사에서 부동소수점 정밀도 오차로 인해 발생하는 교차점 오류를 제거해서 렌더링화면에 홀(hole)이 발생하는 것을 막을 수 있다.
도 1은 일 실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법을 실행할 수 있는 시스템의 일 예를 나타낸 것이다.
도 2는 부동 소수점 오차로 인해 교차점 오류가 발생하는 상황을 나타낸 것이다.
도 3은 일실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법을 흐름도로 나타낸 것이다.
도 4는 광선의 경로정보를 설정하는 것에 대한 일 예를 흐름도로 나타낸 것이다.
도 5는 도 2의 상황에서 발생하는 교차점 오류를 검출하는 방법의 일 예를 나타낸 것이다.
도 6은 일실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법의 보다 구체적인 예를 흐름도로 나타낸 것이다.
도 7은 일실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법을 수행하기 위한, 프로세서와 메모리를 포함하는 시스템을 나타낸다.
도 8은 일실시예에 의한 레이 트레이싱에서의 교차검사 오류 제거 장치의 구성을 블록도로 나타낸 것이다.
이하에서는 도면을 참조하여 실시예들을 상세히 설명한다. 도 1은 일 실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법을 실행할 수 있는 시스템의 일 예를 나타낸 것이다.
도 1을 참조하면, 병렬 프로세서(parallel processor, 100)는 복수의 프로세서를 포함할 수 있으며, 대량의 쓰레드(thread)를 처리할 수 있으며, 대량의 그래픽 데이터를 효율적으로 처리하기 위해 프로세서들이 병렬 처리 가능하다. 그리고 상기 시스템은 로컬 공유메모리(local shared memory, 110)를 구비한다. 상기 로컬 공유메모리는 복수의 메모리를 구비할 수 있으며, 각각의 메모리는 병렬처리 프로세서에 각각 할당되어, 병렬처리 프로세서는 자신의 메모리로부터 데이터를 읽고 처리된 데이터를 저장한다. 그리고 상기 시스템은 글로벌 메모리(global memory, 120)를 구비할 수 있다. 글로벌 메모리(global memory, 120)는 복수의 병렬프로세서(100)들이 이용가능하며, 집적회로 상에 구현될 수 있다. 그리고 복수의 병렬 프로세서(100)를 제어하는 드라이버(미도시)를 더 포함할 수 있다.
도 2는 부동 소수점 오차로 인해 교차점 오류가 발생하는 상황을 나타낸 것이다. 부동 소수점 오차로 인해서 광선의 시작점이 잘못 계산되면 교차점이 속한 프리미티브(primitive)에 광선이 다시 교차하는 것으로 잘못 판별될 수 있다. 만일 교차점이 프리미티브의 가장자리 부분이라면 교차점이 속한 프리미티브에 인접한 프리미티브에 교차하는 것으로 잘못 판별될 수 있다.
실시예에서 생성광이란 입사광이 프리미티브에 교차한 교차점을 계산하여 교차점을 광선의 시작점으로 하여 생성되는 광선을 말한다.
도 3은 일 실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법을 흐름도로 나타낸 것이다. 도 3을 참조하면, 먼저 상기 광선과 상기 프리미티브의 교차검사를 수행하여 교차점을 구한다.(S300 단계) 그리고 나서 교차점이 물체(복수의 프리미티브의 집합)의 내부인지 외부인지 판별하여 교차점의 위치정보를 생성한다.(S310단계) S310단계에서의 교차점이 물체 내부인지 외부인지 판별은 다음과 같이 할 수 있다. 상기 광선과 상기 프리미티브의 법선 벡터의 내적값을 구한다. 그 내적값이 음수이면 상기 교차점이 물체 외부에서 발생한 것으로 판단하고 양수이면 상기 교차점이 물체 내부에서 발생한 것으로 판단한다.
교차점의 위치정보와 광선의 경로정보를 비교하여 동일하지 않으면 잘못된 교차점(false intersection)으로 판정하고 다음 교차점을 구한다.(S340단계) 예를 들어, 다시 트리 탐색 루틴을 거친 후 다른 프리미티브와의 교차점을 구한다. 그리고 교차점의 위치정보와 광선의 경로정보를 비교하여 동일하면 올바른 교차점(true intersection)으로 판정하고 트리 탐색 루틴으로 교차점 값을 리턴한다.(S330단계)
도 4는 광선의 경로정보를 설정하는 것에 대한 일 예를 흐름도로 나타낸 것이다. 도 4를 참조하면, 먼저 광선을 생성한다.(S400단계) 그리고 나서 상기 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 하기로 한다. 생성한 광선의 type이 primary ray 인지 굴절광(refracted ray) 인지 반사광(reflected ray) 인지 체크한다.(S410단계), 상기 광선의 type이 primary ray 라면 광선은 물체의 외부를 지나고 있으므로 광선의 경로정보를 OUT_RAY로 설정한다.(S420단계)
S410단계에서 광선의 type이 굴절광(refracted ray) 라면 광선이 물체의 표면을 통과하는 것이므로 광선의 경로정보를 입사광의 경로정보와 반대로 설정한다.(S430단계) 예를 들어 상기 광선이 refracted ray 라면 광선이 물체의 표면을 통과하는 것이므로 입사 광선의 경로정보가 OUT_RAY 이면 생성된 refracted ray의 경로정보는 IN_RAY로 설정된다. 한편 S410단계에서 상기 광선의 type이 반사광(reflected ray)이면 입사광의 경로정보와 동일하게 설정한다.(S440단계) 추가적으로, S440에서 상기 광선의 type이 shadow ray 인 경우에도 입사광의 경로정보와 동일하게 설정할 수 있으며, 다만 shadow ray 인 경우에는 광원의 위치에 따라 경로정보와 다르게 설정될 수도 있다.
그리고 도 4에서, 생성된 광선의 타입을 판단함에 있어서, 생성된 광선이 primary ray 인지를 먼저 판단하고, primary ray가 아니면 굴절광(refracted ray)인지 판단하고, refracted ray가 아니면 반사광(reflected ray)인지 판단하는 등 광선의 type에 순서를 두어 판단할 수도 있다. 일 실시예에 따르면 생성된 광선의 type 판단 순서는 primary ray 인지, refracted ray인지, reflected ray인지 등의 광선의 type에 순서를 두어 판단하지 않을 수도 있어 광선의 type에 따라 광선 type의 판단순서를 두는 것에 일실시예가 한정되지는 않는다.
도 5는 도 2의 상황에서 발생하는 교차점 오류를 검출하는 방법의 일 예를 나타낸 것이다. 광선이 물체의 외부를 지나고 있을 때 교차점이 물체의 내부 표면에서 발생하거나, 광선이 물체의 내부를 지나고 있을 때 교차점이 물체의 외부 표면에서 발생할 경우 교차점 오류가 발생했다고 판정한다. 레이 트레이싱 과정에서 계산으로 구한 광선 벡터(520, 530, 560)와 프리미티브의 법선 벡터(500, 510, 550)의 내적 값이 양수이면 물체 내부 표면에서 교차점이 생성된 것이고, 내적 값이 음수이면 물체 외부 표면에서 교차점이 생성된 것이다.
도 6은 일의 실시예에 따른 레이 트레이싱에서의 교차검사 오류 제거 방법의 보다 구체적인 예를 흐름도로 나타낸 것이다. 도 6을 참조하면, 먼저 광선과 프리미티브의 교차검사를 수행하여 교차점을 구한다.(S600 단계) 그 후 교차점이 제대로 구해졌는지 테스트한다.
우선 광선의 출발점이 속한 프리미티브의 식별정보(출발 Primitive_id)와 교차점이 속한 프리미티브의 식별정보(교차 Primitive_id)를 비교한다.(S610단계) 비교 결과, 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 동일하면 잘못된 교차점(false intersection)으로 판정한다.(S680단계)
광선의 출발점이 속한 프리미티브의 식별정보(출발 Primitive_id)와 교차점이 속한 프리미티브의 식별정보(교차 Primitive_id)가 다르면 광선의 출발점과 교차점의 거리를 구하여 소정의 값(ε)과 비교한다.(S620단계)
비교 결과, 광선의 출발점과 교차점의 거리가 소정의 값(ε)보다 작으면 잘못된 교차점으로 판단한다.(S680단계) 광선의 출발점과 교차점의 거리가 소정의 값(ε)보다 작지 않으면, 상기 교차점이 물체 내부인지 외부인지 판별한다.(S640단계)
상기 S610단계에서의 검사와 S620단계에서의 검사는 광선의 경로를 이용한 교차점 오류 검사 전에 수행해서, 오류 검사 연산을 줄이는 데 사용할 수 있으며, S610단계와 S620단계는 생략될 수도 있다
광선의 경로를 이용한 교차점 오류 검사는 우선 교차점이 물체의 내부인지 외부인지 판별하기 위해서 교차한 프리미티브의 법선 벡터와 광선의 내적 값을 구한다.(S630단계) 내적값이 음수이면 교차점이 물체 외부이고 양수이면 물체 내부로 판단한다. 도 5를 참조하면, 레이 트레이싱 과정에서 계산으로 구한 광선 벡터(520, 530, 560)와 프리미티브의 법선 벡터(500, 510, 550)의 내적 값이 양수이면 물체 내부 표면에서 교차점이 생성된 것이고, 내적 값이 음수이면 물체 외부 표면에서 교차점이 생성된 것이다.
교차점의 위치 정보와 광선의 경로 정보를 비교해서 같으면 교차점이 올바르게 구해진 것으로 판별하고, 계산된 교차점을 리턴한다. 만일 교차점의 위치 정보와 광선의 경로 정보가 다르면 잘못된 교차점이 구해진 것이다. 잘못된 교차점으로 판별되었을 경우는 다시 다음 교차점을 구한다.
구체적으로, S640단계에서, 교차점이 물체의 외부에 존재하면, 광선 경로정보가 OUT_RAY인지 체크한다.(S650단계) 광선경로정보가 OUT_RAY 이면 교차점이 물체의 외부에 있으므로 올바른 교차점(true intersection)으로 판정한다.(S670단계) 만일 광선경로정보가 OUT_RAY 아니면 교차점이 물체의 외부에 있으므로 잘못된 교차점(false intersection)으로 판정하고(S680단계) 다음 교차점을 구한다.(S600단계)
S640단계에서, 교차점이 물체의 내부에 존재하면, 광선 경로정보가 IN_RAY인지 체크한다.(S660단계) 광선경로정보가 IN_RAY 이면 교차점이 물체의 내부에 있으므로 올바른 교차점(true intersection)으로 판정한다.(S670단계) 만일 광선경로정보가 IN_RAY 가 아니면 교차점이 물체의 내부에 있으므로 잘못된 교차점(false intersection)으로 판정하고(S680단계) 다음 교차점을 구한다.(S600단계)
한편, 일 실시예에 따른 레이 트레이싱(ray tracing)에서의 교차검사 오류 제거 장치는 일실시예에 의한 레이 트레이싱에서의 교차검사 오류 제거 방법을 수행하는 프로그램을 저장하고 있는 메모리와 프로그램을 실행하는 프로세서를 포함하여 이루어진다. 도 7은 메모리(730, 740)와 프로세서(700, 710)를 포함하는 시스템을 나타내며, 프로세서에 의해 실행된 결과를 디스플레이하는 디스플레이 장치(720)를 더 포함할 수 있다.
프로세서(700, 710)는 광선과 프리미티브의 교차검사를 수행하여 교차점을 구하고 교차점이 오류 교차점(false intersection) 인지 판별한다. 메모리(730, 750)는 광선의 경로정보를 저장하고 있다.
광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 상기 프로세서(700, 710)는 프로그램 코드를 실행하여, 광선이 primary ray 라면 OUT_RAY, 광선이 refracted ray 라면 입사광선의 경로 정보와 반대로 설정하고, 광선이 reflected ray 라면 입사광선의 경로정보와 동일하게 설정하고, 상기 교차점이 물체 내부인지 외부인지 판별하여 교차점의 위치정보를 생성하고, 상기 교차점의 위치정보와 상기 광선의 경로정보를 비교하여 동일하지 않으면 오류 교차점(false intersection)으로 판단한다.
또한 프로세서(700, 710)는 상기 광선과 교차한 프리미티브의 법선 벡터(500, 510, 550)와 상기 광선(520, 530, 560)의 내적값을 구하고, 상기 내적값이 음수이면 상기 교차점의 위치정보를 물체 외부인 것으로 생성하고 상기 내적값이 양수이면 상기 교차점의 위치정보를 물체 내부인 것으로 생성한다.
또한 프로세서(700, 710)는 광선의 경로정보가 OUT_RAY 일 때 교차점이 물체의 내부 표면에서 발생하거나 광선의 경로정보가 IN_RAY 일 때 교차점이 물체의 외부 표면에서 발생할 경우 교차점 오류로 판단하고 다음 교차점을 구한다.
프로세서는 광선의 출발점이 속한 프리미티브의 식별정보(출발 primitive_id)와 교차점이 속한 프리미티브의 식별정보(교차 primitive_id)를 비교하고, 광선의 출발점이 속한 프리미티브의 식별정보(출발 primitive_id)와 상기 교차점이 속한 프리미티브의 식별정보(교차 primitive_id)가 다르면 상기 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값(ε)과 비교하여 상기 거리가 소정의 값(ε)보다 작으면 잘못된 교차점으로 판단한다. 또한 광선의 출발점이 속한 프리미티브의 식별정보(출발 primitive_id)와 교차점이 속한 프리미티브의 식별정보(교차 primitive_id)를 비교하여 다를 경우 상기 광선의 출발점과 상기 교차점의 거리 비교없이 바로 잘못된 교차점으로 판별할 수도 있다.
프로세서는 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 동일하면 상기 교차점이 잘못된 것으로 판단한다.
그리고 프로세서(700, 710)는 메모리(730, 740)와 디스플레이(720)와 버스를 통해 통신할 수 있다.
한편, 일 실시예에 의한 레이 트레이싱에서의 교차검사 오류 제거 방법은 하드웨어 장치로 구현될 수 있다.
도 8은 일 실시예에 의한 레이 트레이싱에서의 교차검사 오류 제거 장치의 구성을 블록도로 나타낸 것으로서, 교차점 획득부, 교차점 위치정보 생성부(830) 및 오류 교차점 판별부(840)을 포함하여 이루어진다. 일 실시예에 의한 레이 트레이싱에서의 교차검사 오류 제거 장치는 광선 경로정보 생성부(820),식별정보 비교부(800) 및 교차점 거리 비교부(810)를 더 포함할 수 있다.
교차점 획득부는 광선과 프리미티브의 교차검사를 수행하여 교차점을 구한다.
교차점 위치정보 생성부(830)는 상기 교차점이 물체 내부인지 외부인지 판별한다. 교차점 위치정보 생성부(830)는 상기 교차점이 물체 내부인지 외부인지 판별하기 위해, 광선과 교차한 프리미티브의 법선 벡터의 내적값을 구하여, 상기 내적값이 음수이면 상기 교차점이 물체 외부이고 양수이면 물체 내부로 판단한다.
오류 교차점 판별부(840)는 교차점의 위치정보와 광선의 경로정보를 비교하여 동일하지 않으면 잘못된 교차점으로 판단한다. 오류 교차점 판별부(840)는 광선의 경로정보가 OUT_RAY 일 때 교차점이 물체의 내부 표면에서 발생하거나 광선의 경로정보가 IN_RAY 일 때 교차점이 물체의 외부 표면에서 발생할 경우 교차점 오류로 판단한다.
광선 경로정보 생성부(820)는 광선이 물체의 내부를 지나고 있으면 IN_RAY라 하고, 광선이 물체의 외부를 지나고 있으면 OUT_RAY라 할 때, 광선이 primary ray 라면 OUT_RAY, 광선이 refracted ray 라면 입사광선의 경로 정보와 반대로 설정하고, 광선이 reflected ray 라면 입사광선의 경로정보와 동일하게 설정한다. 식별정보 비교부(800)는 광선의 출발점이 속한 프리미티브의 식별정보와 교차점이 속한 프리미티브의 식별정보를 비교한다.
교차점 거리 비교부(810)는 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 같으면 잘못된 교차점으로 판단하고, 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 다르면, 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값(ε)과 비교한다.
이 때 오류 교차점 판별부(840)는 거리가 소정의 값(ε)보다 작으면 잘못된 교차점으로 판단한다. 또한 오류교차점 판별부(840)는 교차점의 위치정보와 광선의 경로정보를 비교하여 동일하지 않으면 잘못된 교차점으로 판단한다.
한편, 일 실시예 의한 레이 트레이싱에서의 교차검사 오류 제거 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
예를 들어, 레이 트레이싱에서의 교차검사 오류 제거 방법을 수행하는 코드를 하는 프로그램은 기록매체 저장된다. 상기 기록매체는 컴퓨터가 읽을 수 있다.
프로그램은 다음과 같은 컴퓨터 프로그램 코드들로 이루어진다. 즉, 광선과 프리미티브의 교차검사를 수행하여 교차점을 구하는 컴퓨터 프로그램 코드와, 상기 교차점이 물체 내부 또는 외부에서 발생하는 지를 나타내는 위치정보를 판단하는 컴퓨터 프로그램 코드 및 교차점의 위치정보와 상기 광선의 경로정보의 비교에 기초하여 교차점 오류를 판단하는 컴퓨터 프로그램 코드를 포함한다.
그리고 교차점이 물체 내부인지 외부인지 판별하는 컴퓨터 프로그램 코드는 광선과 교차한 프리미티브의 법선 벡터의 내적값을 구하는 컴퓨터 프로그램 코드 및 내적값이 음수이면 상기 교차점이 물체 외부이고 양수이면 물체 내부로 판단하는 컴퓨터 프로그램 코드를 포함할 수 있다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100 ... 병렬프로세서(parallel processor)
110 ... 로컬공유메모리(local shared memory)
120 ... 글로벌 메모리(global memory)
700 ... CPU
710 ... GPU
720 ... 디스플레이
730 ... 메인 메모리(main memory)
740 ... 저장장치(storage device)
800 ... 식별정보 비교부
810 ... 교차점 거리 비교부
820 ... 광선 경로정보 생성부
830 ... 교차점 위치정보 생성부
840 ... 오류 교차점 판별부

Claims (24)

  1. 레이 트레이싱에서의 교차검사 오류 제거 방법에 있어서,
    광선과 프리미티브의 교차검사를 수행하여 교차점을 획득하는 단계;
    상기 교차점이 물체의 내부 또는 외부에서 발생하는지를 나타내는 위치정보를 판단하는 단계; 및
    상기 위치정보와 상기 광선의 경로정보를 비교하여, 상기 위치정보가 상기 교차점이 상기 물체의 내부 표면에 위치함을 지시할 때, 상기 경로정보가 OUT_RAY에 상응하거나, 상기 위치정보가 상기 교차점이 상기 물체의 외부 표면에 위치함을 지시할 때, 상기 경로정보가 IN_RAY에 상응하는 경우, 교차 에러가 발생하였음을 결정하는 단계를 포함하고,
    상기 IN_RAY는 상기 물체의 내부를 패싱(passing)하는 광선의 경로 정보이고, 상기 OUT_RAY는 상기 물체의 외부를 패싱하는 광선의 경로 정보이고,
    상기 광선의 경로정보는,
    상기 광선이 프라이머리 광선인 경우, 상기 OUT_RAY로 설정하고,
    상기 광선이 굴절 광선인 경우, 입사광선의 경로정보와 반대로 설정하고,
    상기 광선이 반사 광선인 경우, 입사광선의 경로정보와 동일하게 설정하는 레이 트레이싱에서의 교차검사 오류 제거 방법.
  2. 제1항에 있어서, 상기 교차점의 위치정보를 판단하는 단계는,
    상기 광선과 상기 프리미티브의 법선 벡터의 내적값을 구하는 단계; 및
    상기 내적값이 음수이면 상기 교차점이 물체 외부에서 발생한 것으로 판단하고 양수이면 상기 교차점이 물체 내부에서 발생한 것으로 판단하는 단계를 포함하는 레이 트레이싱에서의 교차검사 오류 제거 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보를 비교하는 단계; 및
    상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 같으면 교차점 오류로 판단하는 단계를 더 포함하는 것을 특징으로 하는 레이 트레이싱에서의 교차검사 오류 제거 방법.
  5. 제1항에 있어서,
    상기 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값(ε)과 비교하는 단계; 및
    상기 거리가 소정의 값(ε)보다 작으면 교차점 오류로 판단하는 단계를 더 포함하는 것을 특징으로 하는 레이 트레이싱에서의 교차검사 오류 제거 방법.
  6. 광선과 프리미티브의 교차검사를 수행하여 교차점을 획득하고 상기 교차점이 물체의 내부 또는 외부에서 발생하는지를 나타내는 위치정보를 획득하는 프로세서; 및
    광선의 경로정보를 저장하고 있는 메모리를 구비하고,
    상기 프로세서는,
    상기 위치정보와 상기 광선의 경로정보를 비교하여, 상기 위치정보가 상기 교차점이 상기 물체의 내부 표면에 위치함을 지시할 때, 상기 경로정보가 OUT_RAY에 상응하거나, 상기 위치정보가 상기 교차점이 상기 물체의 외부 표면에 위치함을 지시할 때, 상기 경로정보가 IN_RAY에 상응하는 경우, 교차 에러가 발생하였음을 결정하고,
    상기 IN_RAY는 상기 물체의 내부를 패싱(passing)하는 광선의 경로 정보이고, 상기 OUT_RAY는 상기 물체의 외부를 패싱하는 광선의 경로 정보이고,
    상기 광선의 경로정보는,
    상기 광선이 프라이머리 광선인 경우, 상기 OUT_RAY로 설정하고,
    상기 광선이 굴절 광선인 경우, 입사광선의 경로정보와 반대로 설정하고,
    상기 광선이 반사 광선인 경우, 입사광선의 경로정보와 동일하게 설정하는 레이 트레이싱에서의 교차검사 오류 제거 장치
  7. 제6항에 있어서, 상기 프로세서는,
    상기 광선과 상기 프리미티브의 법선 벡터 내적값을 구하고, 상기 내적값이 음수이면 상기 교차점이 물체 외부에서 발생한 것으로 판단하고 양수이면 상기 교차점이 물체 내부에서 발생한 것으로 판단하는 것을 특징으로 하는 레이 트레이싱에서의 교차검사 오류 제거 장치.
  8. 삭제
  9. 제6항에 있어서, 상기 프로세서는,
    상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보를 비교하고, 상기 광선의 출발점이 속한 프리미티브의 식별정보와 상기 교차점이 속한 프리미티브의 식별정보가 같으면 교차점 오류로 판단하는 것을 특징으로 하는 레이 트레이싱에서의 교차검사 오류 제거 장치.
  10. 제6항에 있어서, 상기 프로세서는,
    상기 광선의 출발점과 상기 교차점의 거리를 구하여 소정의 값(ε)과 비교하고, 상기 거리가 소정의 값(ε)보다 작으면 교차점 오류로 판단하는 것을 특징으로 하는 레이 트레이싱에서의 교차검사 오류 제거 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020140030459A 2014-03-14 2014-03-14 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치 KR102159262B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140030459A KR102159262B1 (ko) 2014-03-14 2014-03-14 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치
US14/644,548 US9552662B2 (en) 2014-03-14 2015-03-11 Method and apparatus for removing false intersection in ray tracing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140030459A KR102159262B1 (ko) 2014-03-14 2014-03-14 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150107466A KR20150107466A (ko) 2015-09-23
KR102159262B1 true KR102159262B1 (ko) 2020-09-23

Family

ID=54069414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140030459A KR102159262B1 (ko) 2014-03-14 2014-03-14 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치

Country Status (2)

Country Link
US (1) US9552662B2 (ko)
KR (1) KR102159262B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9852537B2 (en) * 2015-05-01 2017-12-26 Otoy Inc. Rendering via ray-depth field intersection
US10771776B2 (en) * 2017-09-12 2020-09-08 Sony Corporation Apparatus and method for generating a camera model for an imaging system
KR102517344B1 (ko) * 2017-12-20 2023-04-03 삼성전자주식회사 병렬 처리 시스템 및 그 동작 방법
GB2599183B (en) 2021-03-23 2022-10-12 Imagination Tech Ltd Intersection testing in a ray tracing system
GB2599188B (en) * 2021-03-23 2022-10-12 Imagination Tech Ltd Intersection testing in a ray tracing system
GB2607350B (en) * 2021-06-04 2023-12-13 Advanced Risc Mach Ltd Graphics processing
GB2607348A (en) * 2021-06-04 2022-12-07 Advanced Risc Mach Ltd Graphics processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001148028A (ja) 1999-11-24 2001-05-29 Victor Co Of Japan Ltd 図形表示装置及びその方法
JP2009514059A (ja) * 2005-06-23 2009-04-02 メンタル イメージス, ゲーエムベーハー 高精度の実時間レイトレーシング
JP2011138445A (ja) 2009-12-29 2011-07-14 Kaadeikku Corporation:Kk 透明物体表示回路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3364343B2 (ja) * 1994-12-20 2003-01-08 松下電器産業株式会社 動画像生成装置
US8411088B2 (en) 2000-06-19 2013-04-02 Nvidia Corporation Accelerated ray tracing
US7164420B2 (en) 2003-07-24 2007-01-16 Autodesk, Inc. Ray tracing hierarchy
US7884819B2 (en) 2006-09-27 2011-02-08 International Business Machines Corporation Pixel color accumulation in a ray tracing image processing system
US8063902B2 (en) 2007-10-12 2011-11-22 Caustic Graphics, Inc. Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing
US8797322B2 (en) 2009-06-24 2014-08-05 Imagination Technologies, Limited Systems and methods of defining rays for ray tracing rendering
US8441482B2 (en) 2009-09-21 2013-05-14 Caustic Graphics, Inc. Systems and methods for self-intersection avoidance in ray tracing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001148028A (ja) 1999-11-24 2001-05-29 Victor Co Of Japan Ltd 図形表示装置及びその方法
JP2009514059A (ja) * 2005-06-23 2009-04-02 メンタル イメージス, ゲーエムベーハー 高精度の実時間レイトレーシング
JP2011138445A (ja) 2009-12-29 2011-07-14 Kaadeikku Corporation:Kk 透明物体表示回路

Also Published As

Publication number Publication date
KR20150107466A (ko) 2015-09-23
US20150262408A1 (en) 2015-09-17
US9552662B2 (en) 2017-01-24

Similar Documents

Publication Publication Date Title
KR102159262B1 (ko) 레이 트레이싱에서의 오류 교차점 제거 방법 및 장치
US9996966B2 (en) Ray tracing method and apparatus
US9576389B2 (en) Method and apparatus for generating acceleration structure in ray tracing system
US9916653B2 (en) Detection of defects embedded in noise for inspection in semiconductor manufacturing
US10024653B2 (en) Information processing apparatus, information processing method, and storage medium
KR20170036416A (ko) 트리를 탐색하는 장치 및 방법
US11928805B2 (en) Information processing apparatus, information processing method, and storage medium for defect inspection and detection
KR101592798B1 (ko) 배향 센서들에 기초한 호모그래피 분해 모호성의 해결
KR20150039493A (ko) 레이 트레이싱 처리 장치 및 방법
US20150091894A1 (en) Method and apparatus for tracing ray using result of previous rendering
JP2020107016A (ja) 類似度判定装置および異常検出装置
KR20150136348A (ko) 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법
KR20160029601A (ko) 광선 추적 유닛 및 광선 데이터를 처리하는 방법
CN105911062B (zh) 光学膜的不良检测装置及方法
EP3232405B1 (en) Image processing apparatus and method for processing images
CN111814294A (zh) 估计对象的可见性的方法
US20220335650A1 (en) Methods and Systems for Training a Machine Learning Method for Determining Pre-Determined Points in an Image
CN114997264A (zh) 训练数据生成、模型训练及检测方法、装置及电子设备
US11023706B2 (en) Measurement system and measurement method
US9673022B2 (en) Review of suspected defects using one or more reference dies
US9563816B2 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
US8886494B2 (en) Electronic device and method of optimizing measurement paths
US20150186288A1 (en) Apparatus and method of operating cache memory
CN112269378B (zh) 一种激光定位方法及装置
KR20210013834A (ko) 반사 영상 제거 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant