KR0147439B1 - 굴절 현상에 대해 하드웨어에 근거한 그래픽 워크스테이션 솔루션 - Google Patents
굴절 현상에 대해 하드웨어에 근거한 그래픽 워크스테이션 솔루션Info
- Publication number
- KR0147439B1 KR0147439B1 KR1019940022687A KR19940022687A KR0147439B1 KR 0147439 B1 KR0147439 B1 KR 0147439B1 KR 1019940022687 A KR1019940022687 A KR 1019940022687A KR 19940022687 A KR19940022687 A KR 19940022687A KR 0147439 B1 KR0147439 B1 KR 0147439B1
- Authority
- KR
- South Korea
- Prior art keywords
- pixel
- rendering
- vector
- refractive
- polygons
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
본 발명은 현실적인 굴절 속성을 갖는 비-불투명(non-opaque) 물체를 작도하기 위한 시스템 및 방법에 관한 것이다. 이 시스템은 1 이외의 굴절률을 갖는 물체에 대한 화소 값들을 조정하여 최종적인 이미지가 굴절 이미지에 근사될 수 있도록 한다. 인접해 있는 화소 값들을 복사하고, 이 값들을 계산된 굴절 값에 기초하여 렌더링될 화소와 합성시킨다. 굴절은, 오프셋 벡터(offset vector)에 의한 표면 효과로서, 평행한 전면 및 배면을 갖는 물체의 성질로서, 그리고 평행하지 않은 대향 표면을 갖는 임의의 물체로서 근사될 수 있다. 좀 더 복잡한 표현은 굴절 이미지에 대한 근사치를 향상시킨다. 따라서, 최종적인 이미지는 굴절 이미지를 좀 더 사실적으로 나타낸다.
Description
제1도는 그래픽 어댑터 시스템의 총체적인 구조.
제2도는 제1도의 래스터기(rasterizer)를 상세히 도시한 도면.
제3a도 내지 제3d도는 본 발명을 이용하는 경우와 그렇지 않은 경우에 삼각형을 렌더링하는 것을 비교한 도면으로서, 제3a도는 종래 기술을 나타낸 도면.
제4도는 굴절이 존재하는 물체에 입사하는 광선을 나타낸 도면.
제5도는 오프셋 벡터(offset vector)를 계산하는데 관련된 기하학을 도시한 도면.
제6도는 공기/유리 계면에서 발생하는 굴절에 관련된 기하학을 도시한 도면.
제7도는 공기 속에 있는 유리 판(glass slab)에서 발생하는 굴절에 관련된 기하학을 도시한 도면.
제8도는 흔히 볼 수 있는 굴절 작용을 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
100 : 호스트 프로세서 101 : 기하학 프로세싱 서브시스템
102 : 래스터화 서브시스템 103 : 프레임 버퍼
106 : 스크린 제어기 107 : 모니터
200 : 입력단 201 : 셋업단
202 : 보간기 203 : 변경 논리부
204 : 메모리 제어기
본 발명은 물체의 그래픽 이미지를 생성하는 장치에 관한 것이다. 구체적으로, 본 발명은 디스플레이 표면상에 3차원 물체를 2차원 이미지로 표현하기 위한 컴퓨터 그래픽 시스템에 관한 것이다. 좀더 구체적으로, 본 발명은 1 이외의 굴절률(index of refraction other than unity)를 갖는 비-불투명의(non-opaque) 3차원 물체를 렌더링(rendering)하기 위한 그래픽 시스템에 관한 것이다.
자연적으로 발생하는 많은 비-불투명 물질은 1이 아닌 굴절률을 갖는다.
이로 인해, 이들 물체를 투과하는 빛이 휘게 된다. 컴퓨터 그래픽에서는 알파 합성(alpha blending) 방법을 사용하여 비-불투명 물질을 근사시킨다. 투과성 물질을 통해 보이는 색은 해당 화소에서의 물체의 색과 프레임 버퍼에 저장된 이전 색을 조합한 것이다.
이러한 제한된 모델은 굴절률을 1로 한정시키기 때문에, 컴퓨터에 의해 생성된 투명 물체가 대부분의 경우에는 실체와 다르게 보인다. 광학적으로 밀집된(dense) 물질을 통해 보이는 이미지를 적절히 렌더링하기 위해서는 투과성 물질의 기하학적 및 물리적 성질에 기초하여 스크린 상의 주변 장소로부터 화소를 훼치(fetch)하여야 한다.
본 발명은 광학적으로 희박하거나(optically rare) 광학적으로 밀집된 비-불투명 매체를 래스터 서브시스템으로 근사시킬 수 있는 장치 및 알고리즘을 제공한다. 굴절 과정을 정확하게 모델링하는 것은 본 발명의 범위를 벗어나는 것이므로 본 발명에서는 이를 개략적으로 다루기로 한다. 전자기 이론 수준에서 굴절 과정에 대한 심도 있는 논의는 Born, Max 및 Emil Wolf의 광학 원리(1980, Pergamon 출판사, 제6판)을 참조하기 바란다. 특히, 본 발명에서는 유리와 같이 균질이고 등방성인 유전성 매체를 고려한다.
종래의 하드웨어 래스터 그래픽 시스템은 굴절을 처리하지 않았다. 종래에는, 굴절을 광선 추적 전역 조사 알고리즘(ray tracing global illumination algorithm)의 일부로서 다루었다. 예를 들어, 폴시 제임즈 디(Folcy, James D.), 안드리스 반 담(Andries van Dam), 스티븐 케이 훼이너(Steven K. Feiner), 및 존 에프. 휴즈(John F. Hughes)의 컴퓨터 그래픽-원리 및 실제 [1990, Reading Mass의 Addison-Wesley 출판(주) 제2판] 또는 앤드류 에스 글래스너(Andrew S. Glassner)가 편집한 광선 추적 입문서 [1989, Academic 출판(주)]를 참조하기 바란다.
[배경이 되는 물리학과 수학]
굴절은 빛이 하나의 광학 밀도를 갖는 매체를 거쳐 다른 광학 밀도를 갖는 매체를 통과할 때 발생하는 광학 현상이다. 광학 밀도가 변함으로써 빛의 속도가 변하게 되어, 결국 전달 방향이 휘게 된다.
제6도는 굴절이 존재할 때 발생하는 광선 벡터의 굴곡을 기하학적으로 도시한 것이다. 벡터(602)는 법선 벡터(603)에 대해 입사각(θi)으로 물질 표면(601)에 입사한다. 투과된 벡터(604)는 안쪽으로 향하는 법선에 대해 각(θt)를 이룬다. 스넬 법칙(Snell's law)에 해당하는 식(1)은 소정의 이상적인 환경에서 입사각과 투과각 간의 관계를 제공한다.
공기의 굴절률은 거의 1에 가깝다. 여러 종류의 유리와 플래스틱은 1 바로 위부터 2 또는 3 범위 내의 굴절률을 가질 수 있다. 흔히 사용되는 물질의 굴절률 값은 로버트 씨. 위스트(Robert C. Weast)가 편집한 화학과 물리학의 CRC 핸드북 [1988, CRC 출판(주) 학생용 제1판]에 찾아보면 알 수 있다.
제7도에는 투과에 대한 보다 상세한 도면이 도시되어 있다. 여기서 두께(d)를 갖는 투과성 판이 굴절률(ηt)을 갖는 것으로 도시되어 있다. 제6도에서와 같이, 입사 광선(702)은 입사각(θi)으로 도달한다. 투과 광선(704)은 각(θt)을 이룬다. 투과 광선(704)는 유리판(slab)의 바닥 표면에 도달하면 재굴절되어, 참조번호 706으로 도시된 바와 같이, 초기의 입사광선과 평행하게 된다. 이와 같은 상황은 다음과 같은 두 가지 조건, 즉 판의 두 표면이 평행하고, 예를 들면 공기에 의해 감싸여진 판과 같이, 판의 양쪽 면상에 있는 물질 굴절률이 동일하다는 조건이 충족될 때 발생한다. 물체의 두 면이 평행하지 않다면, 일반적으로 광선(702)와 광선(706)은 더 이상 평행하지 않다.
일반적으로, 광선이 표면에 부딪힐 때 반사되고 투과되는 광선의 방향은 멕스웰 방정식을 풀고 임의의 연속성 계면 조건(certain boundary conditions for continuity)을 부과함으로써 설명될 수 있다. 그러나, 본 발명에서는 간단한 기하학적 접근 방법으로 충분하다.
투명 매체에 대해, 투과된 광선의 벡터는 다음과 같다 :
여기서,
θi는 입사광선과 법선 벡터 사이의 각이다.
ηit는 투과된 광선을 포함하는 물질의 굴절률에 대한 입사광선을 포함하는 물질의 굴절률의 비율, 즉 비율 : ηi/ηt= ηit이다.
는 교차점을 향하는 단위 입사 벡터이며,
는 바깥쪽으로 감지된 단위 법선 벡터이고,
는 교차점을 벗어난 물질로 투과된 단위 벡터이다.
주의 : 투과된 광선 벡터의 식에서 근의 인수(the argument of radical)가에 대해 복소수 계수(complex coefficient)를 초래하는 음의 값일 때 내부 전반사(total internal reflection)가 일어난다.
굴절률(The index of refraction)이 반드시 실수(real quantity)일 필요는 없다. 복소수 굴절률은 흡수 정도를 가리키고, 그 허수 성분(imaginary component)은 흡수 지수(the absorption exponent)에 해당한다. 투과 매체에 의한 흡수는 지수 함수인 e-ηid로 근사시킴으로써 설명되는데, 이 지수 함수는 알파(alpha) 대신에 사용된다.(ηi는 입력으로서 공급된 굴절률의 허수 성분이고, d는, 예를 들면 제4도에 도시된 바와 같이, 전면 및 배면 교차점에서의 좌표차에 의해 결정된 물체의 두께이다). 샘플을 통해 부과된 세기를 이 두께에 기초하여 지수적으로 감소시킨다. 본 발명은 굴절된 이미지를 정확하게 표현하는 세 가지 선택적인 솔루션을 제공하는 데 있다. 첫번째 솔루션은 한 표면만을 고려하기 때문에, 감쇄 항(attenuation term), e-ηid는 두 번째와 세 번째 솔루션에만 필요하게 된다.
이하의 솔루션은 굴절 현상을 근사시키기 때문에 종래의 하드웨어 래스터화기에 비해 향상된 것이다. 다른 그래픽 하드웨어는 굴절을 전적으로 무시하였다. 이러한 문제에 대한 종래의 해결 방법에서는 전적으로 소프트웨어에 달려 있기 때문에, 하드웨어적으로 실시간 속도로 작동될 수 없다.
굴절 현상의 영향을 받는 이미지의 질은 최종 이미지를 관찰하면 쉽게 알 수 있다. 한 컵의 물에 부분적으로 잠긴 상태로 보일 때 끊어진것으로 보이는 널리 공지된 룰러 효과(effect of a ruler)가 가장 흔히 접할 수 있는 굴절의 예이다.(제8도를 참조한다.) 기존의 광선 추적 방법은 굴절된 이미지를 정확하게 표현할 수 있지만, 성능은 그다지 우수하지 못하다. 광선 추적은 매우 계산 집중적인 연산을 필요로 하기 때문에, 광선 추적을 이용하여 굴절을 계산하는 것은 작도 성능(drawing performance)을 매우 저하시키게 된다.
본 발명은 두 부분으로 구성되어 있다. 첫 번째 부분은 화소마다의 제어 하(under per pixel control)에 임의의 한 위치에서 다른 위치로 화소 데이타를 이동시키기 위한 메커니즘으로서, 데이터-구동(data-driven) 방식의 스크린대 스크린 복사 메카니즘으로 고려될 수 있다. 소정의 화소를 상기 소정의 화소 데이타에 따라 주변 화소로부터 복사하는 것이다.
본 발명의 두 번째 부분은 굴절 현상을 최적으로 근사시키기 위해 화소를 어떻게 이동시키는 것이 적절한지를 판단하기 위한 수단을 포함한다. 이 부분은 화소 데이타의 근원지 및 목적지를 제어하는 입력을 제공한다. 이하에서는, 두 번째 부분에 중점을 두고 논의하기로 한다.
빛이 굴절 물질을 통과함에 따라 빛이 휘는 것을 설명하기 위해서는 화소 데이타를 이동시킬 필요가 있다. 생성된 이미지는 더 이상 표면 바로 뒤의 화소에 의해(즉, 좀더 깊은 Z 깊이에서 동일한 관측 벡터를 따라)형성되지 않는다. 굴절된 이미지는 굴절 현상으로 인해 좀더 깊은 Z 깊이에 있으면서 X 및 Y 차원에 오프셋되어 있는 화소를 포함한다. Z 차원의 오프셋 벡터가 디스플레이 가능한 화소 데이타와 교차할 때까지 이 오프셋 벡터를 추적함으로써, 특정 디스플레이 위치(X, Y)에서 이미지로 합성될 화소 데이타의 위치를 판단할 수 있다.
제2도에 도시된 바와 같이, 한 개의 래스터 파이프라인(raster pipeline)을 갖는 시스템에서, 보간된 Z와 비교하기 위해 프레임 버퍼로부터 정확한 Z 데이타를 얻기 위한 메카니즘은 매우 단순하다. 이 경우, 메모리 제어기는 프레임 버퍼의 모든 화소를 액세스하고, 새로이 보간된 Z 위치를 나타내는 X, Y에 의해 정의된 주소에서의 Z 버퍼를 직접 판독할 수 있다. 또한, 이는 각 래스터기에 대한 메모리 제어기와 프레임 버퍼 사이에 크로스바 매트릭스(crossbar matrix)가 설계되어 있는 병력 래스터 시스템의 경우에도 적용된다. 각 파이프 라인용 메모리 제어기는 사용된 굴절 솔루션에 의해 요구되는 Z 버퍼의 임의의 장소를 액세스할 수 있다. 메모리 제어기가 프레임 버퍼에 하드와이어된(hardwired)(즉, 크로스바 매트릭스가 없는) 병렬 래스터 시스템의 경우, Z 버퍼 값을 액세스하기 위한 메카니즘은 프레임 버퍼의 구조에 따라 달라진다. 그러나, 어떤 경우이든 각각의 병렬 래스터 파이프라인이 다른 파이프라인과 통신할 수 있어야 하거나, 병렬 파이프라인간에 데이타가 교환될 수 있는 중앙 메가니즘이 존재하여야 한다.
본 발명은 복수의 3차원 물체에 대한 2차원 표현을 생성하는 시스템에 관한 것으로서, 복수의 물체중 적어도 하나는 1이 아닌 굴절률을 갖는 굴절 물체이다. 이 시스템은 굴절률에 기초하여 오프셋 벡터를 생성하기 위한 수단과, 굴절 물체의 각 화소 위치에 대해, 오프셋 벡터의 함수로서 현재의 화소 위치로 부터 오프셋된 제2 화소 위치의 제2 화소 값에 의해 현재 화소 값을 변경하는 것으로 판단함으로써 굴절 물체를 렌더링(rendering)하기 위한 수단을 구비한다.
따라서, 본 발명의 한 가지 목적은 3차원 데이타를 사실적인 그래픽으로 디스플레이하는 향상된 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 투명 매체가 그래픽 렌더링 시스템에 의해 지원되는 프리미티브 클래스(primitive class)로 허용될 수 있도록 하는 것이다.
본 발명의 또 다른 목적은 투명 물체를 렌더링할 때 굴절 현상을 근사시키는데 있다.
본 발명의 상기 및 다른 목적, 특징 및 장점은 유사한 참조번호가 유사한 부분을 가리키는 첨부하는 도면에 도시된 바와 같이 본 발명의 바람직한 실시예에 대한 다음의 상세한 설명으로부터 명확해질 것이다.
본 발명의 신규한 특성이라고 생각되는 특징은 첨부된 특허 청구의 범위에 개시되어 있다. 그러나, 본 발명의 바람직한 실시예, 부가적인 목적, 및 장점은 동일한 부분에는 동일한 참조번호로 되어 있는 첨부된 도면과 함께 다음의 예시적인 실시예에 대한 상세한 설명으로부터 잘 이해될 수 있을 것이다.
제1도에 도시된 그래픽 시스템을 참조한다. 이 시스템은 그래픽 명령을 기하학 프로세싱 서브시스템(101)으로 전달하는 호스트 프로세서(100)를 포함한다. 기하학 프로세서(101)는 또한 호스트 프로세서(100)에 의해 수행되는 기능의 일부로 포함될 수 있고, 물리적으로 또는 논리적으로 반드시 별개의 독립체일 필요는 없다. 바람직한 실시예에 의하면, 래스터화 서브시스템(102)은 프리미티브 스트림(a stream of primitives)을 수신한다. 본 발명에 관련된 스트림의 부집합은 삼각형을 정의하는 장점으로 구성된다. 본 발명을 위한 데이타 스트림의 확장은 이하에 상세히 논의된다.
데이타 스트림을 처리한 후에, 래스터 서브시스템(102)은 프레임 버퍼(103)로 전달되어질 복수의 화소를 생성하며, 디스플레이 가능한 화소 부분은 통상적으로 비디오 랜덤 액세스 메모리(VRAM, 104)로 보내지고, Z 버퍼, 즉 스텐슬 버퍼(stencil buffer)등으로 향하는 디스플레이 불가능한 부분은 동적 랜덤 액세스 메모리(DRAM)(104)로 보내진다. RAMDAC(106)는 스캔된 데이타를 VRAM(104)으로부터 순차적으로 수신하고, 디지탈 데이타를 CRT 모니터(107)에 의해 사용되는 아날로그 제어 신호로 변환한다.
본 발명의 바람직한 실시예는 래스터화 서브시스템(102)의 일부에 해당한다. 제2도는 래스터화 서브시스템의 세부 구조를 도시한 것이다. 입력단(200)은 기하학 프로세서(101)로부터 데이타를 수신하고, 통신용 인터-서브시스템 프로토콜을 처리한다. 셋업단(201)은 삼각형 보간 알고리즘에 사용되는 부분곱(partial products)을 계산한다. 이것은 본 발명의 일부로서 오프셋 벡터(offset vector) 선분을 포함한다. 보간기(202)는 셋업단(201)에 의해 제공되는 부분곱에 응답하고, 변경 논리부(203)에 의해 연산될 복수의 화소를 생성한다. 오프셋 벡터는 본 발명의 일부로 도입된 새로운 개념으로서 이하에서 설명하기로 한다. 변경 논리부(203)는 프래그먼트 연산, 예를 들면, 부울린 연산, 합성(blends) 및 Z 비교 등을 수행한다. 메모리 제어기(204)는 래스터화 서브시스템(102)과 프레임 버퍼(103) 간의 인터페이스 역할을 하며, 프레임 버퍼(103)를 구성하는 복수의 VRAM(104)과 DRAM(105)에 대해 표준 제어 신호를 생성한다.
제2도에는, 초대형 집적회로(VLSI) 방식의 솔루션이 도시되어 있다. 프로세서 보조(processor assist)방식의 솔루션을 포함하는 다른 실시예도 고려할 수 있다. 예를 들면, 제2도의 블럭에 할당된 한 개 이상의 태스크를 수행하기 위해 범용 프로세서가 래스터화 서브시스템(102)에 접속될 수 있다. VLSI에 크게 의존하는 접근 방법에 프로세서 방식 시스템의 상대적인 장점은 유연성과 범용성이 추가된다는 것이다. 도면이 복잡해지는 것을 피하기 위해, 본 발명은 VLSI 집약 방식만을 사용하여 도시하였다.
이제까지는 본 발명의 배경을 설명하였으므로, 이하에서는 속도, 정확성 및 시스템 자원간에 취사 절충하는 선택적인 솔루션을 구현하는 몇 가지 실시 예를 제시하기로 한다. 굴절 현상의 기초가 되는 물리학은 상기 물리학 배경절에 인용된 참조문헌에 설명되어 있다.
첫 번째 솔루션(가장 빠른 성능, 최저의 정확도)
이 알고리즘에서는, 투명 물질을 단일 표면으로 근사시킨다. 따라서, 모든 굴절 현상은 표면 경계 효과로서 일률적으로 처리된다. 제3A내지 제3D도에는, 투명 물체로 된 동일한 두 개의 삼각형 패치(patch)가 줄무늬 기준 백그라운드(striped reference background) 위에 놓여 있는 것이 도시되어 있다. 제3도에 도시된 바와 같이, 종래 기술의 방법에 따른 삼각형(301) 이미지의 생성은 굴절률 1에 기초하여 작성된 것이다. 제3C도를 참조하면, 본 발명에 의해 가능해진 바와 같이, 삼각형(302)을 통해 보여지는 줄무늬가 삼각형(302)의 1이 아닌 굴절률에 따라 변위되어 있다. 제3B도는 1이 아닌 굴절률로 존재하는 상황의 측면도를 도시한 것이다. 굴절 결과로서 광선이 휜다. 삼각형(302)의 한 정점과 연결된 데이타가 제3D도에 열거되어 있다.
기하학 프로세서(101)는 통상적으로 RGB 3색, 투과도 알파(transparency alpha), 및 위치 데이타(X,Y,Z)를 포함하는 삼각형의 좌표를 래스터화 서브시스템(102)으로 전달한다. 부수적으로, (특히, 본 발명의 일부로서) 오프셋 벡터[○x,○y]가 삼각형(302)의 각 정점(a,b 및 c)에 연관되어 있다. 이들 세 개(정점마다 한 개씩)의 오프셋 벡터는 퐁 셰이딩(Phong shading)에 대한 정점 법선 벡터와 동일한 방식으로 삼각형 면적에 걸쳐 보간된다. 렌더링될 특정 화소에서, 상기 보간된 오프셋 백터를 사용하여 화소 이동 메커니즘을 제어함으로써, 굴절 투과된 빛에 대응하는 정확한 프레임 버퍼 값을 판독한다.
이 방법에서, 시스템 소프트웨어(어플리케이션 또는 어플리케이션 프로그램 인터페이스)는 적절한 오프셋 벡터를 제공하고, 기하학 프로세서(101)는 물체에 적용되는 기하학 변형 매트릭스의 변화에 응답하여 오프셋 벡터를 변형시켜야 한다.
제3A도 내지 제3D도에 도시된 예에서, 오프셋 벡터는 다소 우측을 가리키게 된다. 오프셋 벡터는 굴절로 인한 휨 방향을 가리킨다. 삼각형(302)이 렌더링됨에 따라, 삼각형 위의 소정의 화소에 대해, 소정 화소의 우측에 위치된 화소에서의 화소 데이타를 판독하여 소정 화소의 데이타와 합성한다. 관련된 광이 제3B도에 도시된 것과 반대 방향으로 이동할지라도, 기하학과 물리학의 가역성이 이용될 수 있기 때문에 이 구성은 유효하다.
굴절을 표면 특성으로 간주하는 이 방법의 장점은 빠르고 간단하지만, 호스트 프로세서(100)와 기하학 프로세서(101)가 오프셋 벡터를 계산하고 변환하는 것을 명시적으로 처리할 필요가 있다. 굴절을 표면 현상으로써 모델링하여 근사시키기 때문에 정확성이 떨어진다. 실제로, 굴절을 좀 더 복잡한 물체에 대해 정확하게 근사시킬 수 있게 위해서는 물질 두께와 표면 상태에 대한 약간의 지식을 필요로 한다.
두번째 솔루션(정확도는 좀더 향상되는 대신, 성능이 약간 떨어짐)
본 실시예에 의하면, 투과 물체의 두께를 고려함으로써 굴절을 좀 더 정확하게 모델링할 수 있는 대신에 성능은 약간 저하된다. 이 구성에 대한 측면도가 제4도에 도시되어 있다. 물체의 두 표면(401,402)은 평행하다고 가정하지만, 물체 두께가 표면 패치에 걸쳐 일정하게 유지될 필요는 없다. 논리적으로 모순되는 가정일지라도, 이와 같이 근사시킴으로써 만족할 만한 가시적인 효과를 얻을 수 있다.
이제, 적절한 오프셋 벡터를 결정하는 방법이 이하의 단계를 거쳐 이루어진다.
우선, 배면에서 전면까지 물체의 삼각형을 정렬(sort)한다. 이 동작은 호스트 프로세서(100)또는 기하학 프로세서(101) 또는 임의의 두 가지 조합에 의해 수행된다.
통상적으로, 배향(back facing) 다각형(삼각형)을 DRAM(105)에 있는 Z-버퍼에 렌더링한다.
처음 두 단계는 물체를 두번 렌더링함으로써 이루어질 수 있는데, 처음에는 배향 삼각형만을 렌더링하고, 그 다음에 전향(front facing) 삼각형을 렌더링한다. PHIGS 그래픽 프로그래밍 인터페이스는 이러한 선택적인 렌더링 방식의 기능을 제공한다. 그 후에, (배면을 나타내는) 삼각형(402)을 Z-버퍼에 기록하게 된다.
투과 벡터(transmitted vector, 408)을 보간하면서 전면 이미지를 렌더링한다. 이러한 보간은 2차원 오프셋 벡터(501)를 보간하는 형태를 취한다. 제5도를 참조하기 바란다. 식(2)을 사용하여 벡터(408)을 계산한다. 기하학 프로세서는 각 정점에 대한 벡터(408)를 계산할 수 있고, 다음에 이들을 보간하여 굴절 물체의 전향 삼각형(401)의 소정 화소에 대해 사용되는 벡터(408)를 제공한다.
전향 삼각형(401)상의 소정 화소를 투과 벡터(408)의 XY 평면상으로의 투사 벡터(projection, 501)를 따라 보간한다. 투사된 베터를 따라 있는 각 화소에 대해, 보간된 Z값과 이전에 프레임 버퍼(103)에 렌더링된 Z값을 비교한다.
소정의 엡실론(epsilon)내에서 프레임 버퍼 값과 보간된 Z값이 같다면, 보간하는 것을 중지하고, 현재 화소의 색을 합성용 색으로 사용한다. 이것은 벡터(408)가 이전에 렌더링된 표면(402)과 교차하는 점이다.
투사 동작이 제5도에 도시되어 있다. 투사(501)은 화소(502)에서 화소(503, 504 등)로 연장된다. 각 화소(502,503,504...)에 대해, Z-버퍼(프레임 버퍼(103)의 일부)의 값과 보간된 Z값을 비교한다. 보간된 값이 소정의 엡실론내에서 Z-버퍼값과 같을 때까지 또는 활성 윈도우의 모서리에 도달할 때까지 보간 프로세스를 계속한다. 후자의 종료 기준은 무한대의 검색을 방지한다. 이러한 상태가 되는 한가지 원인은, 이하에서 서술되는 바와 같이 화소가 방해되는 경우이다. 제5도의 구성의 경우, 투과된 벡터(408)의 보간된 Z값은 화소(504)에서의 Z 버퍼 값과 같다. 따라서, 화소(504)은 투과 벡터(408)과 투과 물체의 배면(402)과 교차하는 위치를 나타낸다.
물체를 통한 굴절이(굴절되지 않으면) 가려질 물체를 보이게 할 때, 잠재적인 문제가 존재한다. 예를 들어, 전면에 얇은 원기둥이 놓이고 굴절성 물질이 이 원기둥에 인접한다면, 이때 이 원기둥 바로 뒤의 화소가 굴절 물질을 통해 보일 수 있다. 이와 같은 상황에서, 굴절된 광선에 요구되는 색정보는 이용할 수 없다. 일부의 중간 배경색을 선택하거나, 또는 보간된 투영벡터를 따라 인접해 있는 화소의 색을 사용할 수 있다. 이 문제를 완화시키기 위한 적당한 조치는 환경에 따라 달라진다. 따라서, 본 발명은 화소의 정보를 이용할 수 없을 때 사용자로 하여금 적당한 조치를 선택할 수 있도록 한다.
세 번째 솔루션(가장 정확하지만 가장 느린 성능)
세 번째 실시예는 물체의 전면 및 배면이 평행하다는 제한을 없앴다는 점에서 두 번째에 비해 정확도가 향상된 것이다. 물체의 기하학은 제한되지 않고, 물체의 두께 및 표면 상태는 다양할 수 있다.
굴절을 계산하는 프로세스는 전술한 두 번째 방법과 동일한 세 단계로 시작한다.
후면에서 전면까지 물체의 삼각형을 정렬한다.
배향 다각형(삼각형)을 여분의 Z 버퍼 및 상태를 저장하는 프레임 버퍼에 렌더링한다.
전향 삼각형을 렌더링하고 투과 벡터(408)를 보간한다. 투과 벡터의 XY 평면상으로의 투사(501)을 따라 보간한다. 투사된 벡터를 따라 있는 각 화소에 대해, 보간된 Z값과 프레임 버퍼의 Z값과 비교한다. 보간된 Z값이 프레임 버퍼의 값을 초과할 때 보간을 중지한다.
(이전의 단계들은 전술한 두 번째 방법에 대한 것과 동일하다.)
굴저 매체로부터 다시 주변 매체로 투과된 벡터(406)를 계산한다. 이 계산은 식(2)에 주어진 투과된 벡터에 대한 근사식을 이용하여 수행된다. 투과된 벡터(406)의 투사(projection)를 따라 보간하고, 다시 보간된 Z값과 이에 대응하는 Z버퍼 위치로부터 판독된 Z값을 비교한다. Z 교차점에 도달하면, 프레임 버퍼의 색을 판독한다. 물체가 발견되기 전에 활성 윈도우의 모서리에 도달하면, 이전에 할당된 주변 색을 이용한다. 구해진(또는 주변 색) 값을 최종 합성에 사용한다.
비록 본 발명이 기하학 프로세서의 프론트-엔드(front-end)를 구비하는 시스템의 일부로 서술되었지만, 이는 단지 예시적인 목적을 위한 것이다. 명시적인 기하학 프로세서가 존재할 필요는 없다. 임의의 제한된 계산용 단일 수단도 연산용 장치로서 충분하다.
임의로 화소를 이동시키는 메커니즘은 이미지 프로세싱과 같은 그 밖의 응용 분야에서도 용이하게 이용될 수 있다. 동방성 균질 매체의 굴절 현상만을 고려하였지만, 이 개념은 비등방성 매체와 같이 보다 복잡한 광학 물리학에까지 일반화될 수 있다.
본 발명의 참된 정신으로부터 벗어나지 않고 본 발명의 바람직한 실시예가 여러가지로 변형될 수 있다는 것을 상기 설명으로부터 알 수 있을 것이다.
본 설명은 단지 예시적인 목적을 위한 것이며 한정하는 의미로 해석되어서는 안된다. 본 발명의 범위는 이하의 특허청구 범위에 의해서만 제한되어야 한다.
Claims (8)
- 복수의 3차원 물체(three dimensional objects)에 대한 2차원 표현(two dimensional representation)을 생성하기 위한 시스템-상기 복수의 물체중 적어도 하나의 물체는 1이 아닌 굴절률을 갖는 굴절 물체(refractive object)임-에 있어서, 상기 복수의 물체중 1이 아닌 굴절률을 갖는 상기 적어도 하나의 물체의 화소 각각에 대한 오프셋 벡터(offset vector)를 상기 굴절률에 기초한 보간(interpolation)에 의해 생성하기 위한 수단, 및 상기 복수의 물체 각각을, 하나의 물체씩, 렌더링(rendering)하기 위한 수단-상기 굴절 물체는 상기 굴절 물체의 각 화소 위치에 대한 현재 화소 값을 결정함으로써 렌더링되고, 상기 결정은 제2 화소 위치에 있는 제2 화소 값에 의해 상기 현재 화소 값을 변경함으로써 이루어지며, 상기 제2 화소 위치는 상기 오프셋 벡터의 변위만큼 상기 현재 화소 위치로부터 오프셋되어 있음-을 포함하며, 상기 렌더링하기 위한 수단은 상기 물체들을 뷰포인트(viewpoint)에서 가장 먼 것부터 가장 근접한 것까지 렌더링하기 위한 수단, 상기 굴절 물체를 렌더링하기 위해 복수의 다각형으로 분할하기 위한 수단, 상기 복수의 다각형을 뷰포인트에서 가장 먼 것부터 가장 근접한 것까지 정렬하기 위한 수단, 상기 굴절 물체의 배면(back surface)을 생성하기 위해 상기 정렬된 다각형을 렌더링하기 위한 수단, 및 상기 뷰포인트에 가장 근접한 다각형을 렌더링하기 위한 수단-상기, 렌더링된 다각형의 화소 데이타는 상기 오프셋 벡터에 기초하여 상기 가장 근접한 다각형의 화소 데이타와 결합됨-을 포함하는 3차원 물체에 대한 2차원 표현 생성 시스템.
- 제1항에 있어서, 상기 오프셋 벡터를 X-Y 평면상으로 투사하기 위한 수단과, 상기 벡터가 상기 배면의 평면과 교차하는 상기 벡터 상의 지점을 판단하기 위한 수단을 더 포함하는 3차원 물체에 대한 2차원 표현 생성 시스템.
- 3차원 물체에 대한 2차원 이미지를 디스플레이 장치 상에 렌더링하기 위한 시스템-상기 디스플레이 장치는 복수의 열 위치를 갖는 복수의 행으로 구성된 복수의 화소를 포함하며, 상기 3차원 물체는 1 이외의 굴절률을 갖는 적어도 하나의 굴절 물체를 포함함-에 있어서, 상기 3차원 물체의 각각을 나타내는 데이타를 저장하기 위한 저장 수단, 상기 2차원 이미지를 나타내는 데이타를 저장하기 위한 프레임 버퍼 수단-상기 프레임 상기 복수의 화소 각각에 대응하는 저장 위치를 포함함-, 상기 적어도 하나의 굴절 물체의 상기 복수의 화소 각각에 대한, 상기 굴절 물체의 상기 굴절률을 표시하는 오프셋 벡터를 보간하기 위한 수단, 및 상기 3차원 물체 각각의 복수의 화소 각각에 대한 값을 판단하기 위한 렌더링 수단-상기 렌더링 수단은 하나의 물체씩 렌더링하고, 상기 렌더링 수단은 제2 화소 위치에 있는 제2 화소 값에 기초하여 상기 화소 값을 변경하고, 상기 제2 화소 위치는 상기 적어도 하나의 굴절 물체의 상기 복수의 화소 각각에 대한 상기 오프셋 벡터에 의해 표시됨-을 포함하며, 상기 렌더링 수단은 상기 오프셋 벡터를 상기 X-Y 평면상으로 투사하고 보간된 깊이 값을 이전에 렌더링된 다각형 표면의 깊이 값과 비교 검사(test)하여 상기 깊이 값들이 일치하는 상기 제2 화소 위치를 선택함으로써 상기 제2화소 위치를 판단하는, 3차원 물체에 대한 2차원 이미지 렌더링 시스템.
- 제3항에 있어서, 상기 굴절 물체로부터 나오는 투과 벡터(transmitted vector)를 계산하기 위한 수단, 상기 투과 벡터가 렌더링된 다각형과 교차할 때까지 상기 투과 벡터를 따라 보간하기 위한 수단, 및 상기 현재 화소와 결합시키기 위한 상기 교차점의 화소 값을 선택하기 위한 수단을 더 포함하는 3차원 물체에 대한 2차원 이미지 렌더링 시스템.
- 1이 아닌 굴절률을 갖는 물질을 나타내는 물체의 2차원 이미지를 렌더링하는 방법-상기 물체는 3차원의 복수의 다각형에 의해 표현되고, 상기 복수의 다각형 각각은 복수의 정점(vertices)을 포함함-에 있어서, 상기 정점의 각각에 굴절 효과를 나타내는 오프셋 벡터를 연관시키는 단계, 상기 복수의 다각형을 가장 깊은 배향 다각형(back-facing polygon)부터 가장 근접한 전향 다각형(front-facing polygon)까지 뷰포인트로부터의 변위에 따라 정렬하는 단계, 상기 다각형들을 렌더링하는 단계, 및 상기 오프셋 벡터를 보간하고 상기 보간된 벡터에 의해 표시되는 제2 화소를 현재 이미지 화소와 합성(blend)시키면서 상기 다각형들을 두 번째 렌더링하는 단계를 포함하는 물체의 2차원 이미지 렌저링 방법.
- 제5항에 있어서, 상기 전향 다각형을 렌더링하는 상기 단계에서 수행되는 보간은, 상기 오프셋 벡터를 투사하되 상기 투사(projection)가 상기 이전에 렌더링된 다각형중의 하나와 교차할 때까지 투사하여 이루어지는 물체의 2차원 이미지 렌더링 방법.
- 제5항에 있어서, 상기 물체로부터 주변 매체로 투과된 벡터를 계산하는 단계, 상기 투과 벡터가 상기 렌더링된 다각형중 하나의 다각형과 교차할 때까지 상기 투과 벡터를 보간하는 단계, 및 상기 원래의 화소 위치 및 상기 보간된 화소 위치로부터의 데이타를 결합시켜 상기 화소를 렌더링하는 단계를 더 포함하는 물체의 2차원 이미지 렌더링 방법.
- 제6항에 있어서, 상기 물체로부터 주변 매체로 투과된 벡터를 계산하는 단계, 상기 투과 벡터가 상기 렌더링된 다각형중 하나의 다각형과 교차할 때까지 상기 투과 벡터를 보간하는 단계, 및 상기 원래 화소 위치 및 상기 보간된 화소 위치로부터의 데이타를 결합시킴으로써 상기 화소를 렌더링하는 단계를 더 포함하는 물체의 2차원 이미지 렌더링 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19232394A | 1994-02-04 | 1994-02-04 | |
US08/192,323 | 1994-02-04 | ||
US8/192,323 | 1994-02-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950025512A KR950025512A (ko) | 1995-09-18 |
KR0147439B1 true KR0147439B1 (ko) | 1998-09-15 |
Family
ID=22709177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940022687A KR0147439B1 (ko) | 1994-02-04 | 1994-09-09 | 굴절 현상에 대해 하드웨어에 근거한 그래픽 워크스테이션 솔루션 |
Country Status (8)
Country | Link |
---|---|
US (1) | US5720020A (ko) |
EP (1) | EP0666548A1 (ko) |
JP (1) | JP2692783B2 (ko) |
KR (1) | KR0147439B1 (ko) |
CN (1) | CN1122946C (ko) |
BR (1) | BR9500330A (ko) |
MY (1) | MY114148A (ko) |
TW (1) | TW324082B (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5914724A (en) * | 1997-06-30 | 1999-06-22 | Sun Microsystems, Inc | Lighting unit for a three-dimensional graphics accelerator with improved handling of incoming color values |
JP3627544B2 (ja) * | 1998-12-02 | 2005-03-09 | トヨタ自動車株式会社 | 物体画像表示方法 |
US20040004623A1 (en) * | 1998-12-11 | 2004-01-08 | Intel Corporation | Apparatus, systems, and methods to control image transparency |
AU2459700A (en) | 1999-02-19 | 2000-09-04 | Sony Computer Entertainment Inc. | System for and method of implementing refraction mapping |
JP3417883B2 (ja) | 1999-07-26 | 2003-06-16 | コナミ株式会社 | 画像作成装置、画像作成方法、画像作成プログラムが記録されたコンピュータ読み取り可能な記録媒体およびビデオゲーム装置 |
TW475155B (en) * | 1999-09-10 | 2002-02-01 | Sony Computer Entertainment Inc | Method of and apparatus for rendering image, recording medium, and program |
JP2002042153A (ja) * | 2000-07-27 | 2002-02-08 | Namco Ltd | ゲームシステム及び情報記憶媒体 |
GB2371460B (en) * | 2001-01-19 | 2004-12-22 | Pixelfusion Ltd | Computer graphics |
US6801215B1 (en) * | 2001-11-29 | 2004-10-05 | At&T Corp. | Hardware-assisted visibility-ordering algorithm |
GB2473247B (en) * | 2009-09-04 | 2015-02-11 | Sony Corp | A method and apparatus for image alignment |
TWI471774B (zh) * | 2011-09-30 | 2015-02-01 | Wintek Corp | 觸控裝置及觸控顯示裝置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5224208A (en) * | 1990-03-16 | 1993-06-29 | Hewlett-Packard Company | Gradient calculation for texture mapping |
US5280570A (en) * | 1992-09-11 | 1994-01-18 | Jordan Arthur J | Spectacle imaging and lens simulating system and method |
-
1994
- 1994-09-09 KR KR1019940022687A patent/KR0147439B1/ko not_active IP Right Cessation
- 1994-12-07 JP JP6304077A patent/JP2692783B2/ja not_active Expired - Fee Related
- 1994-12-30 MY MYPI94003586A patent/MY114148A/en unknown
- 1994-12-30 TW TW083112393A patent/TW324082B/zh active
-
1995
- 1995-01-19 EP EP95300325A patent/EP0666548A1/en not_active Withdrawn
- 1995-01-24 CN CN95101688A patent/CN1122946C/zh not_active Expired - Fee Related
- 1995-01-26 BR BR9500330A patent/BR9500330A/pt not_active Application Discontinuation
- 1995-09-01 US US08/522,798 patent/US5720020A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW324082B (en) | 1998-01-01 |
MY114148A (en) | 2002-08-30 |
CN1122946C (zh) | 2003-10-01 |
US5720020A (en) | 1998-02-17 |
EP0666548A1 (en) | 1995-08-09 |
KR950025512A (ko) | 1995-09-18 |
JPH07225854A (ja) | 1995-08-22 |
CN1121225A (zh) | 1996-04-24 |
JP2692783B2 (ja) | 1997-12-17 |
BR9500330A (pt) | 1995-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5704024A (en) | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map | |
Catmull | Computer display of curved surfaces | |
US6903741B2 (en) | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene | |
US8013857B2 (en) | Method for hybrid rasterization and raytracing with consistent programmable shading | |
Bartz et al. | Extending graphics hardware for occlusion queries in OpenGL | |
KR100700307B1 (ko) | 굴절이 있는 이미지를 렌더링하는 방법 및 장치 | |
KR0147439B1 (ko) | 굴절 현상에 대해 하드웨어에 근거한 그래픽 워크스테이션 솔루션 | |
Darsa et al. | Walkthroughs of complex environments using image-based simplification | |
CN114758051A (zh) | 一种图像渲染方法及其相关设备 | |
US8462156B1 (en) | Method and system for generating shadows in a graphics processing unit | |
JP4584956B2 (ja) | グラフィックスプロセッサおよび描画処理方法 | |
Policarpo et al. | Deferred shading tutorial | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
Yu | Efficient visibility processing for projective texture mapping | |
US20050231533A1 (en) | Apparatus and method for performing divide by w operations in a graphics system | |
JP2004054634A (ja) | 画像処理装置およびその方法 | |
US11887245B2 (en) | Techniques for rendering signed distance functions | |
US20230063422A1 (en) | Techniques for rendering signed distance functions | |
CN117437345B (zh) | 基于三维引擎实现渲染纹理镜面反射效果的方法及*** | |
US20230316628A1 (en) | Techniques for avoiding self-intersections when rendering signed distance functions | |
JP2952585B1 (ja) | 画像生成方法 | |
JPH0546782A (ja) | 図形表示装置 | |
Leshonkov et al. | Real-time Rendering of Small-scale Volumetric Structure on Animated Surfaces | |
Präntare | Real-time Global Illumination Using Voxel Cone Tracing | |
CN117523069A (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 | ||
FPAY | Annual fee payment |
Payment date: 20030307 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |