KR20010114046A - 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법 - Google Patents

지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법 Download PDF

Info

Publication number
KR20010114046A
KR20010114046A KR1020000033962A KR20000033962A KR20010114046A KR 20010114046 A KR20010114046 A KR 20010114046A KR 1020000033962 A KR1020000033962 A KR 1020000033962A KR 20000033962 A KR20000033962 A KR 20000033962A KR 20010114046 A KR20010114046 A KR 20010114046A
Authority
KR
South Korea
Prior art keywords
buffer
ray tracing
value
pixel
current
Prior art date
Application number
KR1020000033962A
Other languages
English (en)
Other versions
KR100372901B1 (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 KR10-2000-0033962A priority Critical patent/KR100372901B1/ko
Publication of KR20010114046A publication Critical patent/KR20010114046A/ko
Application granted granted Critical
Publication of KR100372901B1 publication Critical patent/KR100372901B1/ko

Links

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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법에 관한 것이다. 컴퓨터 그래픽스 분야의 광선추적법에 의한 영상 생성 기법에 있어서: 렌더링할 물체의 기하 정보 및 물체의 표면속성을 추출하는 단계; ZF-버퍼를 위한 전처리 단계; 광선추적법 본처리 단계; 및 결과 영상 출력 단계로 구성된다.
따라서, ZF-버퍼를 이용하여 광선추적법의 속도를 vista-버퍼에 비해 3배 이상의 속도를 개선함으로써 영상 제작도구에 적용할 경우 영상물 제작시간을 단축할 수 있다.

Description

지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법{Ray-tracing acceleration method using ZF-buffer}
본 발명은 광선추적법의 속도를 개선하는 방법에 관한 것으로써, 특히 컴퓨터 그래픽스 분야의 광선추적법에 의한 영상 생성기법으로서 생성된 영상의 사실성을 추구하는 기존의 광선추적법에 속도를 개선한 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법에 관한 것이다.
일반적으로, 기존의 광선추적법은 관찰자 시점으로부터 사물을 향하는 빛을 매 화소마다 생성하여 이 빛의 경로를 추적해 가면서 화소의 색상을 결정하는 방법이다. 광선추적법은 빛의 경로 상에 물체가 있는지 여부를 판별하는데 많은 연산이 필요하여 영상물 제작에 많은 시간이 소요되었다. 이를 개선하기 위하여 디렉션 큐브(direction cube,[1]), Vista-버퍼[2]와 같은 기술이 개발되었다. 이는 기본적으로 관찰자 시점에서 빛이 나가는 방향에서 맞닿을 수 있는 물체를 미리 뽑아놓아 교차판별 될 대상의 범위를 줄이는 목적으로 사용한다.
디렉션 큐브란 관찰자 시점에 큐브를 씌우고 이 큐브의 표면 각 방향을 세분하여 관찰자 시점으로부터 출발한 빛이 교차할 수 있는 물체가 열거된 보조 자료를 기록하는 방법이다.
Vista-버퍼는 디렉션 큐브와 비슷하지만 관찰자 시점에 큐브를 씌우는 대신 화면버퍼와 동일하게 구성된 면을 놓아 그 표면에 물체를 투영함으로써 화면 좌표를 인덱스로 그 교차 후보자를 검색할 수 있는 방법이다.
앞서 예로 들은 디렉션 큐브나 Vista-버퍼 등은 교차판별 대상을 줄이기는 하였지만, 빛과 바운딩 볼륨과의 교차여부 판별을 사용하기 때문에 개선된 연산량이 만족스럽지 못했다. 빛이 교차할 바운딩 볼륨이 결정되었어도 물체 자체를 구성하는 요소들과의 교차여부를 판별해야 하는데, 이 또한 많은 연산을 필요로 한다.물체를 구성하고 있는 요소는 바운딩 볼륨보다 교차판별 연산 시간이 오래 걸릴 뿐만 아니라 그 수도 통상 바운딩 볼륨 수보다 많다.
따라서, 광선추적법에 있어서 속도 개선은 근본적으로 물체를 구성하고 있는 요소와 빛과의 교차판별에 드는 시간을 줄이는데 있다. 바운딩 볼륨이란 물체를 대표하면서 교차판별 연산에 시간이 적게 걸리는 또 다른 물체를 말한다. 바운딩 볼륨으로는 물체를 완전히 감쌀 수 있는 구(sphere)나 육면체(cube) 등이 사용되며, 연산 시간을 줄이기 위해 바운딩 볼륨간의 계층 구조를 사용하기도 한다.
그러나, 기존의 광선추적법은 물체와 빛간의 교차판별에 수행시간 대부분을 소비하므로, 이를 개선한 기술도 그 개선 효과가 크지 않아 사용자와 상호작용이 필요한 응용분야에는 적합하지 않는 단점이 있다. 빛과의 교차판별 연산을 수행할 물체의 수는 줄일 수 있지만 물체를 구성하고 있는 구성요소와의 교차판별 문제를 해결하지 못하기 때문이다. 이러한 분야에는 통상 Z-버퍼 렌더링 기법이 사용된다. 사실적인 영상물 제작은 불가능하지만 그 처리 과정이 단순하여 하드웨어 가속기의 적용이 가능하여 실시간적 처리를 보장할 수 있기 때문이다.
그러나, 광선추적법은 그 처리 과정이 복잡하기 때문에 특수 목적적인 하드웨어의 제작이 불가능한 문제점이 있다.
본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 제안된 것으로써, 본 발명의 목적은 광선추적법의 처리 과정의 일부를 단순화하여 CPU의 연산으로도 충분한 가속 효과가 있지만 현존하는 Z-버퍼 하드웨어를 사용하여 그 효율성을 극대화 할 수 있도록 광선추적법 처리중 시간을 가장 많이 소비하는 교차판별 과정을 개선한 것으로서 결과적으로 광선추적법의 실시간적 처리를 할 수 있는 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법을 제공한다.
도 1은 타겟 이미지.
도 2는 Z-버퍼 렌더링과 ZF-버퍼 교차판별 비교.
도 3은 ZF-버퍼 방법의 반사효과를 위한 재귀 반복.
도 4는 평면 P를 기준으로 X의 반대편 대응위치 X′.
도 5는 유타 주전자 영상(다각형 수:9216).
도 6은 거울에 반사된 유타주전자 영상.
도 7a는 본 발명의 일 실시예에 의한 불투명/무반사 물체를 위한 광선추적법을 설명한 흐름도.
도 7b는 본 발명의 일 실시예에 의한 반사/굴절 효과를 위한 재귀적 광선추적법을 설명한 흐름도.
* 도면의 주요 부분에 대한 부호 설명 *
상기한 목적을 달성하기 위해 본 발명은 컴퓨터 그래픽스 분야의 광선추적법에 의한 영상 생성 기법에 있어서: 렌더링할 물체의 기하 정보 및 물체의 표면속성을 추출하는 단계; ZF-버퍼를 위한 전처리 단계; 광선추적법 본처리 단계; 및 결과 영상 출력 단계로 구성되는 것을 특징으로 하는 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법을 제공한다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세하게 설명한다.
(1) 1차 광선에 대한 ZF-버퍼 알고리즘
ZF-버퍼란 Z-버퍼와 Face 버퍼(이하 F-버퍼)의 두 가지 버퍼를 의미한다. Z-버퍼, F-버퍼, 그리고 화면은 모두 같은 크기이며 2차원적인 자료구조로 모든 좌표는 1대1 대응관계를 갖는다. Z-버퍼는 기존의 은면 제거에서 사용되는 버퍼이다. 광선추적법의 전처리 단계에서 적용되는 ZF-버퍼 방법은 Z-버퍼에서 결정한 물체의 깊이 값('z'값)의 주인이 되는 면(face) 자료의 식별자(pointer)를 F-버퍼에 수록한다.
도 1에 도시된 바와 같이, 삼각형 그림을 만들기 위한 기존의 Z-버퍼 방법은 도 2(a)와 같이 카메라로부터 물체에 대한 거리를 계산한 후, 도 2(b)와 같이 가시성이 결정된 화소에 쉐이딩 모델을 적용하여 디스플레이 될 화면의 화소값을 결정한다.
그러나, 도 2c에 도시된 바와 같이 ZF-버퍼 방법에서 가까운 화소를 판별하는 과정은 Z-버퍼 방법과 같지만 화소값을 결정하는 대신에 화소를 포함하는 면의 식별자(pointer)를 F-버퍼에 기록한다 . 전처리 과정에서 F-버퍼를 생성하는 알고리즘은 다음 표 1과 같다.
ZF-버퍼를 위한 광선추적법 전처리 과정
for(모든 화소(x,y)) {Z-buffer[x][y]를 아주 큰 값(무한대)으로 초기화.F-buffer[x][y]를 NULL값으로 초기화. // NULL의 의미는 현재 z값의 주인이 아무도 없음을 나타낸다.}// 좌표계 변환for(모든 정점(vertex)){정점을 시각변환과 투영을 이용해 화면 좌표로 바꾼다.//세계좌표계에서 카메라 좌표계로 정점 변환}//ZF-버퍼의 내용 결정for(모든 면(face)) {모든 면(폴리곤)의 경계설정for(면 상의 모든 화소위치(x,y)) {if(현재 화소의 z값 < Z-buffer[x,y]에 기록된 현재 화소 위치의 z값) {Z-buffer[x][y]에 현재 화소의 z값을 넣는다.F-buffer[x][y]에 현재 면, 즉 폴리곤의 지료구조의 메모리 포인터(pointer)를 넣는다.}}}
표 1의 과정을 마치면 Z-버퍼에는 화면상에 나타낼 각 화소에 대한 카메라로부터의 거리 정보를 가지게 되고 F-버퍼에는 화면상에 나타낼 각 화소의 주인이 되는 면의 식별자를 가진다. 따라서, 광선추적법의 1차 광선과 만나는 면의 정보는 F-버퍼에 수록된 자료의 식별자를 이용함으로써 쉽게 결정할 수 있다. Z-버퍼는 F-버퍼를 결정하기 위해서 사용되고 렌더링 과정에서는 더 이상 사용되지 않는다.
광선추적법 본 처리 과정에서는 F-버퍼 내용을 이용하여 쉐이딩 기법적용 텍스쳐 매핑 등의 기법을 적용한다. 이 과정은 기존의 광선추적법에서 교차판별이 수행된 후 가장 가까운 물체에 적용되는 기존의 알고리즘과 같으며 이에 대한 알고리즘은 표Ⅱ와 같다. ZF-버퍼는 기본적으로 vista 버퍼와 유사하지만, 바운딩 볼륨을 기록하는 것이 아니라 실제로 화면에 나타날 면의 식별자를 F-버퍼에 기록한다.
따라서, 바운딩 볼륨을 사용했을 때 문제가 되는 추가 교차판별시간을 줄일 수 있고, F-버퍼에 기록된 면의 정보만을 이용하여 1차 광선에 보이는 면의 화소값을 결정할 수 있으므로 매우 빠른 수행시간을 갖는다.
ZF-버퍼 방법의 광선추적법 본처리 과정
for(화면상의 모든 화소위치(x,y)) {if(F-buffer[x][y]의 값이 NULL이 아니면) {카메라로부터 화소방향으로 나가는 빛을 생성한다.이 빛과 물체가 만나는 위치를 계산한다.if 현재 면이 반사/굴절체 이면{if현재면에 ZF-버퍼가 생성되어 있지 않으면{새로운 카메라를 설정한다.새로운 카메라에 대응되는 화면을 설정한다.새로운 카메라에 대응되는 F-버퍼를 설정한다.이 함수를 재귀실행한다.결과 영상을 현재 면의 텍스쳐 뱁으로 지정한다.}텍스처 맵과 조명 정보를 이용해 반사후 색상을 결정한다.}}
도 7a는 본 발명의 일 실시예에 의한 불투명/무반사 물체를 위한 광선추적법을 설명한 흐름도이다.
렌더링할 물체의 기하 물체 및 물체의 표면 속성은 컴퓨터 그래픽스에서 표현하는 방법 중 하나로 polygon mesh를 사용한다. 폴리곤(polygon)이란 n개의 정점(vertex)을 연결한 직선으로 구획된 하나의 평면이다. 폴리곤이 여러 개 모여 물체의 모양을 구성한 것을 폴리곤 메쉬(polygon mesh)라고 한다. 물체의 모양과 더불어 물체를 표현하는 또 하나의 요소가 물체의 표면 속성정보이다. 색상이나 무늬 등이 이에 속한다.
물체를 시각화하는 렌더링할 물체의 기하정보 및 물체의 표면속성을 설정하기 위해 모든 화소 위치 (x,y)에 대해 Z-버퍼[x,y]를 무한대로 설정하고 F-버퍼[x,y]를 널(NULL)로 설정하여 ZF-버퍼를 초기화한다(단계 S1).
Z-버퍼와 F-버퍼는 화면과 동일한 크기를 갖는 2차원 배열이다. Z-버퍼는 카메라와 가장 가까운 물체의 깊이 정보를 갖는 배열로서 초기값으로 무한대(혹은 무한대에 가까운 큰 값)를 넣는다. F-버퍼는 카메라와 가장 가까운 물체의 식별자를 갖는 배열로서 초기값으로 아무것도 없음을 의미하는 NULL 값을 넣는다.
모든 정점(vertex)에 대해 물체가 놓일 수 있는 절대 좌표인 세계 좌표계에서 관찰자 시점에서 본 카메라 좌표계(시각 좌표계)로 정점변환을 하는 좌표계를 변환하고(단계 S2) 모든 폴리곤(polygon)의 경계를 설정한다(단계 S3).
폴리곤에 속한 모든 화소 위치(x,y)에 대해 Z-버퍼[x,y]의 값이 현재 화소의 깊이(depth) 값보다 큰지를 체크하여(단계 S4) 크면 Z-버퍼[x,y] 값에 현재 화소의 깊이값을 할당하고 F-버퍼[x,y] 값에 현재 폴리곤 자료구조의 메모리 포인터를 할당한다(단계 S5).
ZF-버퍼의 내용결정은 Z-버퍼 방법으로 빛과 교차할 물체를 결정하는 방법이다. Z-버퍼 방법이란 물체를 렌더링하는 방법 중 하나로서 3차원 물체를 2차원의 화면으로 나타날 때 생기는 차원정보의 소실을 Z-버퍼라는 보조 버퍼를 사용하여 보완하는 방법이다. Z-버퍼는 화면의 각 화소와 1대1 대응관계를 가지며 화면상에 표현된 화소의 깊이 정보를 갖는다.
불투명/무반사 물체를 위한 광선추적법을 사용하는 경우 광선추적법 본처리 단계는 화면상의 모든 화소 위치(x,y)에 대해 F-버퍼[x,y]값=NULL인지를 체크하여(단계 S6) 널이 아니면(현재 위치에 면 식별자가 있으면) 카메라로부터 화소방향으로 나가는 빛을 생성, 이 빛과 물체가 만나는 위치 계산, 위치 값과 F-버퍼를 참조하여 얻어진 물체의 표면 속성으로부터 현재 화소의 색상을 결정하고(단계 S7), F-버퍼[x,y]값=NULL이면 현재 화소 위치의 색상을 배경색으로 결정한다(단계 S8).
현재 화소의 색상 결정 후, 결과 영상을 출력한다(단계 S9).
○광선추적법의 본처리
광선추적법이란 카메라로부터 화면상의 모든 화소 방향으로 향하는 빛을 만들어 이와 만나는 물체의 표면 정보로 화소의 색상을 결정하는 방법이다. 이때, 빛과 만나는 물체를 판단하는 과정에서 많은 수행 시간이 요구되는데 이를 전처리 과정에서 만든 F-버퍼의 내용 참조로 속도를 개선하였다. F-버퍼[x,y]에 NULL이 아닌 값이 기록되어 있으면 광선이 어떤 물체와 만나며 F-버퍼에 기록된 값이 그 물체의 식별자이다. F-버퍼[x,y]의 값이 NULL이면 광선이 만나는 물체가 없음을 의미한다.
○재귀적 광선추적법
재귀적 광선추적법이란 반사/굴절체를 표현하기 위하여 반사/굴절의 성질을갖는 물체에 입사된 광선이 반사/굴절되어 새로운 방향으로 나아가 또 다른 물체를 탐색하는 방법이다. ZF-버퍼 방법을 이용한 재귀적 광선추적법은 하나의 폴리곤에 의해 반사/굴절되는 모든 광선을 개별적으로 탐색하는 기존의 방법을 개선하여 폴리곤의 반대편에 새로운 카메라를 위치시켜 렌더링하고 이 결과 영상을 폴리곤에 매핑시키는 방법으로 재귀적 광선추적법을 구현하였다.
(2) 2차 광선에 대한 ZF-버퍼 적용
ZF-버퍼방법은 광선이 나아갈 방향을 미리 예측할 수 있고 또 그 광선이 나아갈 방향을 쉽게 계산할 수 있는 경우에 적용할 수 있는 방법이기 때문에 기본적으로 1차 광선에 대해서만 적용이 가능하다. 그러나, 반사/굴절 등을 위한 2차 이후의 광선에 대해서도 1차 광선과 같은 조건을 만들어줄 경우 ZF-버퍼를 적용할 수 있다. 기존의 광선추적법에서는 1차 광선이 반사체에 닿으면 반사체와 광선의 상관관계에 따라 반사광선을 생성하고 반사광선의 시작점으로부터 동일 과정을 반복함으로써 반사 효과를 구현한다. 이에 반해 ZF-버퍼 방법을 이용한 재귀적 광선추적법은 광선 하나 하나의 반사를 이용하는 것이 아니라 반사면을 새로운 화면으로 설정하고 반사면 뒤에서 새로운 카메라를 설정하여 1차 광선과 같은 과정을 적용하는 것이다.
도 3은 카메라C 0 의 위치에서 반사체의 한 면f를 바라보았을 때 일어나는 반사과정을 나타낸다. 1차 광선을 생성하는 최초의 카메라C 0 에서 생성된 1차 광선이 반사면f를 만나면 2차 광선r을 생성한다.r을 이용하여 반사면f의 반대쪽에생성한 새로운 카메라C 1 은 최초의 카메라C 0 와 동일한 거리의 반대편에 위치하게 된다.C 1 에 의해서 생성된 광선은 최초의 카메라C 0 에 대해서는 면f에 의해 반사된 2차 광선이 되지만, 카메라C 1 에 대해서는 1차 광선이다.C 1 을 구하기 위해서는 임의의 면을 기준으로 주어진 점의 반대편 대응 위치를 구해야 하며 그 과정은 다음과 같다.
도 4를 참조하면,tX에서 평면P상의 가장 가까운 점이고,Xt와의 거리를 α라고 할 때, 다음 수학식 (1)과 같은 관계를 갖는다.
t는 평면P상의 점이므로 P(t)=0이고 t=x-α*normal(P)이므로 다음 수학식 (2)에 의해 α값을 계산할 수 있다.
또한,이고X't를 기준으로P노멀(normal)의 반대 방향이므로 상기 수학식 (3)에 의해 반대방향의 점X'가 결정된다.
이때, 평면P의 식을 ax+by+cz+d이라 하고, 수학식(2)와 (3)을 이용하면, 다음 수학식 (4)가 된다.
그러나, 카메라 좌표계의 축을 나타내는 U, V, N 방향벡터를 계산할 때,P의 평면 방정식 중 d는 의미가 없으므로, 다음 수학식(5)에 의해 위치성분X'와 방향성분X''를 계산한다.
위 식에서 (4)의 식을 f(x), (5)의 식을 g(x)라고 하면, 다음 수학식 (6)을 이용하여 C1의 카메라 행렬을 다음과 같이 결정한다.
위와 같이 결정된 카메라 위치C 1 으로부터 ZF-버퍼 방법을 적용하면C 0 로부터의 반사 효과를 구현할 수 있다. 표 3은 ZF-버퍼 방법의 재귀적 광선추적법을 위한 의사(pseudo) 코드이다.
도 7b는 본 발명의 일 실시예에 의한 반사/굴절 효과를 위한 재귀적 광선추적법을 설명한 흐름도이다.
반사/굴절 효과를 위한 재귀적 광선추적법을 사용하는 경우 상기 광선추적법 본처리 단계는 화면상의 모든 화소 위치(x,y)에 대해 F-버퍼[x,y]값=NULL인지를 체크하여(단계 S16) 널이 아니면 카메라로부터 화소 방향으로 나가는 빛을 생성하고 이 빛을 물체가 만나는 위치를 계산하고(단계 S17) 현재면이 반사/굴절체인지를 체크한다(단계 S18).
F-버퍼[x,y]값=NULL이면 현재 화소 위치의 색상을 배경색으로 설정하고(S22) 상기 결과 영상을 출력하는 단계(S23); 및
현재면의 반사/굴절체이면 현재면에 ZF-버퍼가 생성되어 있는지를 체크하여(단계 S19) 상기 ZF-버퍼가 생성되어 있지 않으면 새로운 카메라를 설정, 새로운 카메라에 대응하는 화면 설정, 새로운 카메라에 대응하는 F-버퍼 설정, 이 함수를 재귀 실행, 결과 영상을 현재 면의 텍스쳐 맵으로 지정하고(단계 S20), 상기 ZF-버퍼가 생성되어 있으면 텍스쳐 맵과 조명정보를 이용하여 반사후 색상을 결정한(단계 S21) 다음 상기 결과 영상을 출력한다(단계 S23).
ZF-버퍼 재귀적 광선추적법
for (화면상의 모든 화소위치(x,y)){if(F-버퍼[x,y]의 값이 NULL이 아니면){카메라로부터 화소방향으로 나가는 빛을 생성한다.이 빛과 물체가 만나는 위치를 계산한다.if(현재 면이 반사/굴절체이면){if(현재면에 ZF-버퍼가 생성되어 있지 않으면){새로운 카메라를 설정한다. 새로운 카메라에 대응되는 화면을 설정한다. 새로운 카메라에 대응되는 F-버퍼를 설정한다. 이 함수를 재귀실행한다. 결과여상을 현재 면의 텍스쳐 뱁으로 지정한다.}텍스쳐 뱁과 조명 정보를 이용해 반사후 색상을 결정한다.}··
도 5는 유타 주전자 영상(다각형 수:9216)을 나타내고, 도 6은 거울에 반사된 유타주전자 영상을 나타낸다.
본 발명에 의한 ZF-버퍼를 이용하여 광선추적법은 구현결과 vista-버퍼와 같은 기존 방법에 비해서 다음 표 4 및 표 5와 같은 속도 향상이 있었다. 이는 하드웨어 가속 없이 테스트 한 결과이다.
ZF-버퍼와 vista-버퍼 수행 시간 비교
다각형수 ZF-버퍼(초) vista-버퍼(초) 속도개선(배)
1248230440969216 0.2250.2300.2310.240 0.6950.7200.7540.820 3.083.133.263.41
ZF-버퍼와 vista-버퍼 수행 시간 비교
반사면 크기세계좌표계 \ 다각형수 200x200 400x400
1248230440969216 0.741초0.745초0.750초0.760초 2.010초2.011초2.015초2.021초(도6)
따라서, ZF-버퍼를 이용하여 광선추적법의 속도를 vista-버퍼에 비해 3배 이상의 속도를 개선함으로써 영상 제작도구에 적용할 경우 영상물 제작시간을 단축할 수 있어 실시간 처리가 가능하다.
상술한 바와 같이, 본 발명에 의한 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법은 처리 시간에 있어서 vista-버퍼에 비해 3배 이상의 개선이 있었으며 처리하는 개체 수가 많아질수록 속도 개선 효과가 있다.
또한, ZF-버퍼를 이용하여 광선추적법의 속도 개선 기술을 영상제작도구에 적용할 경우 영상물 제작시간 단축이 가능하며, 하드웨어 가속기를 사용할 경우 실시간적인 처리가 가능할 것으로 예측된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (4)

  1. 컴퓨터 그래픽스 분야의 광선추적법에 의한 영상 생성 기법에 있어서:
    렌더링할 물체의 기하 정보 및 물체의 표면속성을 추출하는 단계;
    ZF-버퍼를 위한 전처리 단계;
    광선추적법 본처리 단계; 및
    결과 영상 출력 단계로 구성되는 것을 특징으로 하는 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법.
  2. 제 1 항에 있어서,
    상기 ZF-버퍼를 위한 전처리 단계는
    렌더링할 물체의 기하정보 및 물체의 표면속성을 설정하기 위해 모든 화소 위치 (x,y)에 대해 Z-버퍼[x,y]를 무한대로 설정하고 F-버퍼[x,y]를 널(NULL)로 설정하여 ZF-버퍼를 초기화하는 단계(S1);
    모든 정점(vertex)에 대해 세계좌표계에서 카메라 좌표계로 정점변환을 하는 좌표계를 변환하고(S2) 모든 폴리곤(polygon)의 경계를 설정하는 단계(S3); 및
    폴리곤에 속한 모든 화소 위치(x,y)에 대해 Z-버퍼[x,y]의 값이 현재 화소의 깊이(depth) 값보다 큰지를 체크하여(S4) 크면 Z-버퍼[x,y] 값에 현재 화소의 깊이값을 할당하고 F-버퍼[x,y] 값에 현재 폴리곤 자료구조의 메모리 포인터를 할당하는 단계(S5)로 구성되는 것을 특징으로 하는 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법.
  3. 제 1 항에 있어서,
    불투명/무반사 물체를 위한 광선추적법을 사용하는 경우, 상기 광선추적법 본처리 단계는
    화면상의 모든 화소 위치(x,y)에 대해 F-버퍼[x,y]값=NULL인지를 체크하여(S6) 널이 아니면(현재 위치에 면 식별자가 있으면) 카메라로부터 화소방향으로 나가는 빛을 생성, 이 빛과 물체가 만나는 위치 계산, 위치 값과 F-버퍼를 참조하여 얻어진 물체의 표면 속성으로부터 현재 화소의 색상을 결정하고(S7), F-버퍼[x,y]값=NULL이면 현재 화소 위치의 색상을 배경색으로 결정하는 단계(S8)로 구성되는 것을 특징으로 하는 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법.
  4. 제 1 항에 있어서,
    반사/굴절 효과를 위한 재귀적 광선추적법을 사용하는 경우, 상기 광선추적법 본처리 단계는
    화면상의 모든 화소 위치(x,y)에 대해 F-버퍼[x,y]값=NULL인지를 체크하여(S16) 널이 아니면 카메라로부터 화소 방향으로 나가는 빛을 생성하고 이 빛을 물체가 만나는 위치를 계산하고(S17) 현재면이 반사/굴절체인지를 체크하는 단계(S18);
    F-버퍼[x,y]값=NULL이면 현재 화소 위치의 색상을 배경색으로 설정하고(S22) 상기 결과 영상을 출력하는 단계(S23); 및
    현재면의 반사/굴절체이면 현재면에 ZF-버퍼가 생성되어 있는지를 체크하여(S19) 상기 ZF-버퍼가 생성되어 있지 않으면 새로운 카메라를 설정, 새로운 카메라에 대응하는 화면 설정, 새로운 카메라에 대응하는 F-버퍼 설정, 이 함수를 재귀 실행, 결과 영상을 현재 면의 텍스쳐 맵으로 지정하고(S20), 상기 ZF-버퍼가 생성되어 있으면 텍스쳐 맵과 조명정보를 이용하여 반사후 색상을 결정한(S21) 다음 상기 결과 영상을 출력하는 단계(S23)로 구성되는 것을 특징으로 하는 ZF-버퍼를 이용하여 광선추적법의 속도를 개선하는 방법.
KR10-2000-0033962A 2000-06-20 2000-06-20 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법 KR100372901B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0033962A KR100372901B1 (ko) 2000-06-20 2000-06-20 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0033962A KR100372901B1 (ko) 2000-06-20 2000-06-20 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법

Publications (2)

Publication Number Publication Date
KR20010114046A true KR20010114046A (ko) 2001-12-29
KR100372901B1 KR100372901B1 (ko) 2003-02-19

Family

ID=19672808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0033962A KR100372901B1 (ko) 2000-06-20 2000-06-20 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법

Country Status (1)

Country Link
KR (1) KR100372901B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692828B2 (en) 2008-02-27 2014-04-08 Samsung Electronics Co., Ltd. 3-dimensional image processor and processing method
WO2017123321A1 (en) * 2016-01-15 2017-07-20 Intel Corporation Texture space shading and reconstruction for ray tracing

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101630181B1 (ko) * 2010-05-12 2016-06-14 삼성전자주식회사 영상 처리 장치 및 방법
KR102166426B1 (ko) 2014-07-07 2020-10-16 삼성전자주식회사 렌더링 시스템 및 이의 렌더링 방법

Family Cites Families (4)

* 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 レイ・トレーシング処理方式
KR0170665B1 (ko) * 1995-02-28 1999-03-30 김광호 3차원 그래픽스용 램
KR100273267B1 (ko) * 1997-12-30 2000-12-15 김영환 선입선출기를 이용한 고속 제트 버퍼 회로
JPH11353496A (ja) * 1998-06-10 1999-12-24 Ken Nishimura 光線追跡のための交点探索装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692828B2 (en) 2008-02-27 2014-04-08 Samsung Electronics Co., Ltd. 3-dimensional image processor and processing method
WO2017123321A1 (en) * 2016-01-15 2017-07-20 Intel Corporation Texture space shading and reconstruction for ray tracing
US10354432B2 (en) 2016-01-15 2019-07-16 Intel Corporation Texture space shading and reconstruction for ray tracing

Also Published As

Publication number Publication date
KR100372901B1 (ko) 2003-02-19

Similar Documents

Publication Publication Date Title
US11704863B2 (en) Watertight ray triangle intersection
US7362332B2 (en) System and method of simulating motion blur efficiently
Appel et al. The haloed line effect for hidden line elimination.
US6034691A (en) Rendering method and apparatus
US7030879B1 (en) System and method of improved calculation of diffusely reflected light
US8013857B2 (en) Method for hybrid rasterization and raytracing with consistent programmable shading
US7009608B2 (en) System and method of using multiple representations per object in computer graphics
JP3759971B2 (ja) 3次元像を陰影付けする方法
US6825840B2 (en) System and method of adjusting ray origins when shading vertices with rays
JPH06223198A (ja) 光線追跡による画像生成装置及び方法
JPH0757117A (ja) テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム
McLaren et al. Visualisation of digital terrain models: techniques and applications
US8698799B2 (en) Method and apparatus for rendering graphics using soft occlusion
KR102151443B1 (ko) 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
US6791544B1 (en) Shadow rendering system and method
Vyatkin et al. Voxel Volumes volume-oriented visualization system
JP3629243B2 (ja) モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法
KR100372901B1 (ko) 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법
KR950025512A (ko) 굴절 현상에 대해 하드웨어에 근거한 그래픽 워크스테이션 솔루션
KR100256472B1 (ko) 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링
CN117726496A (zh) 使用光线剪裁减少假阳性光线遍历
Yu Efficient visibility processing for projective texture mapping
US20110074777A1 (en) Method For Displaying Intersections And Expansions of Three Dimensional Volumes
CN116993894B (zh) 虚拟画面的生成方法、装置、设备、存储介质及程序产品
CN110827389B (zh) 严密的光线三角形相交

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
LAPS Lapse due to unpaid annual fee