KR0172462B1 - 렌더링 및 와핑 영상 생성 시스템 및 방법 - Google Patents

렌더링 및 와핑 영상 생성 시스템 및 방법 Download PDF

Info

Publication number
KR0172462B1
KR0172462B1 KR1019940703784A KR19940703784A KR0172462B1 KR 0172462 B1 KR0172462 B1 KR 0172462B1 KR 1019940703784 A KR1019940703784 A KR 1019940703784A KR 19940703784 A KR19940703784 A KR 19940703784A KR 0172462 B1 KR0172462 B1 KR 0172462B1
Authority
KR
South Korea
Prior art keywords
database
voxel
rendering
warping
image
Prior art date
Application number
KR1019940703784A
Other languages
English (en)
Other versions
KR950701438A (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 스튜어트 아이. 무어
Publication of KR950701438A publication Critical patent/KR950701438A/ko
Application granted granted Critical
Publication of KR0172462B1 publication Critical patent/KR0172462B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

데이타베이스 및 소정의 안점(eyepoint) 및 시계(field of view)로부터 3 차원 장면(scene)의 복수의 이미지(image)를 생성하기 위한 방법 및 시스템(10), 본 방법은 이미지 프레임(image frame)을 렌더링(rendering)하는 단계, 및 안점 및 시계를 변경시킴으로써 이미지 프레임을 와핑(warping)하는 단계를 포함하고 있다. 와핑 과정은 이 이미지 프레임에 대해 최초로 디스플레이된 이미지와 마지막으로 디스플레이된 이미지사이의 왜곡(distortion)을 평가(evaluation)하는 것과 같은 소정의 기준에 따러서 동일 이미지 프레임에 대하여 계속된다. 와핑 단계는 안점 및 시계를 변경하기 위하여 컨벌루션(convolution)을 사용한다. 데이터베이스는 안점 및 시계를 결정할 수 있도록 하기 위한 횡단 벡터(traversal vector) 및 적어도 두 가지 형태의 복수의 복셀 요소(voxel element)를 포함하고 있다.

Description

[발명의 명칭]
렌더링 및 와핑 영상 생성 시스템 및 방법
[발명의 배경]
[발명의 분야]
본 발명은 일반적으로 영상 생성 시스템(image generation system)에 관한 것으로서, 특히, 실물사진과 같은 복셀 기반 영상(photorealistic and voxel-based image)를 실시간 및 거의 실시간으로 생성하는 데 요구되는 컴퓨터 용량(computer power)을 크게 감소시키는 방법 및 시스템에 관한 것이다.
[관련 기술의 설명]
이전에는 3 차원 실시간 영상을 생성하려면 만족할만한 영상을 제공하기 위하여 일반적으로 매우 비싼 주문 제작된 컴퓨터 시스템(expensive and/or custom computer system)을 사용해야만 했다. 다각형 기반(polygon-based) 영상 생성 시스템의 영상 품질이 향상되고는 있지만, 아직도 이들 영상은 만화 애니메이션(cartoon animation)의 장면들과 비슷한 경우가 종종 있다. 따라서, 최근에 영상 프레임(image frame)을 생성하는데 필요한 계산량을 감소하면서도 최종 장면은 보다 실물에 가깝게 만들어내는 영상 제작 방법(imaging method)을 개발하려는 노력이 상당히 이루어지고 있다. 그러나, 컴퓨터로 생성한 장면들의 이산적 디지털 특성(discrete digital nature)에 관련된 시간상 및 공간상 에일리어싱(temporal and spatial aliasing), 실물 같은 지형 생성(realistic terrain generation) 및 요구되는 디스크 저장 공간을 감소시킬 필요등의 문제점들은 단지 계산량을 더하기만 하고 있다.
이와같이, 실물사진같은 애니메이션 시퀀스들(photorealistic animated sequences)이 실시간 프레임 속도로 생성될 수 있도록 하는 비교적 저가인 해결책이 필요한 상황이다. 이와같은 저가의 해결책은 영화 제작, 비행 시뮬레이션, 의료영상(medical imagery) 및 군사 시뮬레이션등과 같은 다양한 분야에서 응용될 수 있을 것이다. 이와같은 해결책의 한 가지 잇점으로는 멀티미디어 실시간 애니메이션이 기존의 훈련 시스템을 실질적으로 향상시키는데 사용될 수 있다는 점이다.
따라서, 본 발명의 주요한 목적은 하나 이상의 범용 컴퓨터를 사용하여 데이타베이스로부터 실물사진과 같은 품질을 갖는 영상을 1Hz - 600Hz 의 실시간 속도로 생성하는 시스템 및 방법을 제공하는 것이다.
본 발명의 보다 특정한 목적은 오프 더 쉘프 컴퓨터(off the shelf computer) 기술을 사용하여 실시간 영상 시퀀스들을 생성하는 데 실물사진과 같은 복셀 데이타베이스(voxel database)를 사용할 수 있는 영상 생성 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 단일 영상 프레임으로부터 3 차원 영상 시퀀스를 생성할 수 있는 영상 생성 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 생성된 영상 시퀀스를 디스플레이하거나, 디지털 또는 아날로그 매체에 저장하거나 또는 다른 컴퓨터 시스템으로 전송할 수 있는 복셀 기반 영상 생성 시스템 및 방법을 제공하는 것이다.
[발명의 요약]
본 발명은 데이터베이스로부터 선정된 시점 및 시계 (a predetermined eye point and field of view)로부터 본 복수의 3 차원 장면의 영상들을 생성하는 방법 및 시스템을 제공한다. 상기 방법은 영상 프레임을 렌더링(rendering)하는 단계와 영상 프레임을 시점 및 시계를 변경시킴으로써 와핑(warping)하는 단계를 포함하고 있다. 와핑 과정은 영상 프레임에 대한 초기에 디스플레이된 영상과 마지막으로 디스플레이된 영상 사이의 왜곡(distortion)을 평가하는 것과 같은 소정의 기준에 따라 동일의 영상 프레임상에서 계속된다. 와핑 단계는 시점과 시계를 변경하는 데 컨벌루션(convolution)을 사용한다. 데이터베이스는 시점 및 시계가 결정될 수 있도록 하기 위한 횡벡터(traversal vector) 및 적어도 2 개의 다른 형태의 복수의 복셀 요소(voxel element)를 포함하고 있다.
본 발명의 한 잇점은 변경하려고 하는 각 영상에 대하여 영상 프레임을 렌더링할 필요가 없이 컴퓨터가 생성한 영상 시퀀스를 신속히 생성해준다는 것이다. 본 발명에 따른 한 실시예에 있어서, 데이터베이스는 3 차원 장면을 정의하기 위한 복수의 서브프레임(subframe)을 포함하고 있으며, 렌더링 단계는 각 데이터베이스 서브프레임으로부터 서브프레임 영상을 별도로 생성하고 있다. 이와같이, 복수의 컴퓨터 프로세서가 서브프레임을 각각 병렬 연산 방식으로 렌더링하는 데 사용될 수 있다.
[도면의 간단한 설명]
제1도는 시점 및 움직이는 물체의 위치를 규정하는데 사용하는 6 자유도(6 degrees of freedom)를 설명하는 개략도.
제2도는 영상 프레임을 렌더링하는 데 사용되는 시스템의 블럭선도.
제3도는 복셀 요소의 디스플레이 스크린으로의 투시도를 나타낸 도면.
제4도는 복셀 칼럼을 디스플레이하기 위한 방사상 스캔(radial scan) 기술을 나타낸 도면.
제5도는 안티에일리어싱(anti-aliasing)에 대한 기술을 설명하는 도면.
제6도는 본 발명에 따른 영상 생성 방법의 전체 플로우챠트.
제7a도 내지 제7e도는 제6도에 도시한 와핑 프로세스의 플로우챠트.
[발명의 상세한 설명]
어느 시각으로부터도 정확한 투시도를 제공하는 실시간 응용을 위한 파이프라인 아키텍쳐(pipeline architecture)를 갖는 복셀 기반 전방 투영 알고리즘(voxel-based forward projection algorithm)이 여기에 기술되어 있다. 렌더링 알고리즘은 안개(haze), 재배치가능한 표적 모델(repositionable target model), 매끄러운 음영표시(smooth shading) 및 거울 반사(specular reflection)등의 비행 시뮬레이션(flight simulation)에 응용할 수 있는 몇가지 특징을 제공한다. 그 외에, 다각형 기반(polygon-based) 시스템에서 통상적으로 이용할 수 있는 것보다 더 높은 해상도 및 더 많은 장면 내용을 제공하기 위하여 복셀(voxel), 즉 체적 요소(volumn element)를 사용하여 지형 및 물체(terrain and object) 데이터베이스를 구현하게 된다. 시점은 물체의 위치에서와 같이 6 자유도로 규정할 수 있다. 렌더링된 영상은 데이터베이스로부터 시점으로의 광선을 따라 복셀을 스크린에 원근법에 의해 투영한 것이 된다. 이렇게 함으로써 본 발명은 1988 년 8 월호 Proceedings of SIGGRAPH 의 59-64 페이지에 있는 업슨(Upson) 과 킬러(Keeler)가 제시한 V_BUFFER:Visible Volumn Rendering이라는 제목의 논문에서 논의한 셀별 처리방법(cell by cell processing)과 유사점을 갖는 전방 투영 알고리즘에 속하게 된다. 이 논문은 여기에 참조로 포함시키고 있다. 다수의 물체가 후방에서 전방으로 처리되어지며 범위는 수정된 Z-버퍼를 사용하여 분할되어진다.
여기에서 논의된 렌더링 알고리즘은 케이스 Ⅱ 및 케이스 Ⅲ 라고 하는 두가지 형태의 복셀을 사용한다. 케이스 Ⅱ 복셀은 지형 및 표면 데이타를 나타내는데 사용되며, 그 사이에 표면이 뻗어있는 4 개의 모서리 기둥(cormer post)으로 나타내어진 사각 기둥(rectangular solid)이다. 각 모서리에는 표면에 걸쳐서 이중선형으로 보간된(bilinearly interpolated) 높이 및 색이 부속되어 있다. 모서리 기둥들은 4 개의 이웃하는 복셀사이에 공유되어 있어서 그 표면은 연속적이다. 통상적으로, 단지 케이스 Ⅱ 복셀의 상부만을 볼 수 있다. 측면을 볼 수 있는 경우에는, 색이 불변인 것을 나타낸다.
어느 정도의 변화가 있는 수직 표면의 경우에는, 케이스 Ⅲ 복셀이 사용된다. 케이스 Ⅲ 복셀은 베이스를 나타내는 높이와 색깔, 및 베이스의 상부에 있는 수직 정보를 구성하는 패턴이라고 불리우는 수직으로 적층된 세그먼트(vertical stack of segment)에 대한 포인터를 포함하고 있다. 이 적층되어 있는 각 세그먼트는 높이 또는 길이와, 좌측 및 우측 색깔을 포함하고 있다. 좌측 및 우측 색깔은 복셀의 체적에 걸쳐서 색깔이 변화하는 상황에서 보간을 제공하게 된다. 세그먼트는 또한 음영표시 및 정반사를 취한 표면 법선 정보 및 몇 개의 플래그를 포함하고 있다. 세그먼트는 불투명, 투명 또는 반투명일 수 있다. 실제로는, 모든 복셀은 투명과 불투명사이에 있는 불투명도를 가질 수 있다. 본 기재에 있어서 이후부터의 모든 색깔을 언급함에는 수반하는 불투명도 및 정반사를 포함하고 있다. 탱크, 트럭, 함선, 비행기, 폭발 등과 같은 재배치가능한 물체들은 케이스 Ⅲ 복셀로 구성되어 있다. 지형 데이타베이스는 케이스 Ⅱ 복셀로 둘러싸인 빌딩 및 나무들과 같은 내장된 케이스 Ⅲ 복셀을 포함하고 있을 수 있다.
대부분의 케이스 Ⅲ 물체들은 아래의 논문에서 논의된 기술들을 사용하여 다각형 모델로부터 복셀화(복셀로 스캔 -변화된) (scan - converted to voxel)될 수 있다:1986 년 10 월호 Proceedings of 1986 ACM workshop on Interactive 3D Graphics 의 45 - 76 페이지에 있는 카우프만(Kaufman)과 시모니(shimony)의 논문인 복셀-기반 그래픽을 위한 3D 스캔-변환 알고리즘 (3D Scan-Conversion Algorithm for Voxel-Based Graphics); 1987 년 7 월 제 21 권 제 4 호 Proceedings of SIGGRAPH 의 171 - 179 페이지에 있는 카우프만의 논문인 파라메타 곡선, 표면, 체적의 3D 스캔-변환을 위한 효율적인 알고리즘(Efficient Algorithm for 3D Scan-Conversion of Paramettic Curves, Surfaces, and Volumns); 1987 년 8 월 Proceedins EUROGRAPHICS 의 197 - 208 페이지에 있는 카우프만의 논문인 다각형의 3D 스캔-변환의 알고리즘(An Algorithm of 3D Scan-Conversion of Polygon); 및 1990 년 Volumn Visualization, IEEE Computer Society Press 의 280 - 301 페이지에 있는 카우프만과 코헨(Cohen)의 논문인 선형 및 사분 물체에 대한 3D 스캔-변환 알고리즘(3D Scan-Conversion Algorithm for Linear and Quadratic Objects). 이들 논문들은 여기에 참고로 포함하고 있다.
데이타베이스는 몇 개의 층으로 이루어져 있는데, 각 층은 고도, 색, 플래그, 패턴 번호 등과 같은 특정 형태의 정보를 포함하고 있다. 층들은 주어진 해상도로 데이타베이스의 영역을 나타내는 직사각형 구역으로 나뉘어져 있다. 구역내의 모든 층들은 데이타베이스 생성동안에 여러 가지 직교 교정 및 영상 모자이크 단계를 통하여 서로 상관관계를 가진다. 관계되는 많은 단계들은 1986 년 Proceedings of SPIE 제 1075권 디지탈 영상 처리 응용(Digital Image Processing Application) 230 -237 페이지에 있는 화이트싸이드(Whiteside)의 논문인 원근법 장면 생성을 위한 데이타베이스 준비(Preparing Data Bases For Perspective Scene Generation)에서 논의되고 있다. 이 논문은 여기에 참조로 포함하고 있다.
다수의 해상도 레벨은 일반적으로 접근(approaches) 및 다른 저 고도 연산을 위한 높은 해상도 삽입물(inserts)을 갖는 넓은 영역에 걸쳐 보다 낮은 해상도를 제공하는 각 구역에 대하여 이용할 수 있다. 각 데이타베이스는 또한 데이타베이스내의 모든 구역에 있는 모든 케이스 Ⅲ 복셀에 대한 패턴을 포함하는 해당 패턴 세그먼트 테이블를 가진다. 각 데이타베이스는 고도(z)값이 0 인 (x,y) 평면인 베이스평면(baseplane)상에 있다.
데이타베이스 RGB 층을 갖는 가시광선이거나 또는 세기 층(intensity layer)을 갖는 적외선(IR)일 수 있다. 생성 과정동안에, IR 데이타베이스는 다중 스펙트럼 영상으로서 시작한다. 이 다중 스펙트럼 영상은 유사한 특징을 갖는 영역들로 세그먼트화되어 그 영역의 물질 형태가 결정된다. 데이타베이스에 있는 각 복셀에 대한 열복사를 결정하기 위하여 태양 위치 및 표면 법선과 함께, 알베도(albedo), 복사도 및 전도성 등과 같은 열적 파라메타가 그 다음에 사용된다. 복사층은 그 다음에 RGB 데이타베이스와 똑같이 렌더링된다. 이들 IR 데이타베이스를 생성하기 위한 과정은 1991년 4월 Proceedings of Ground Target Modelling and Validation Conference 에 있는 쿼라토(Quarato)등의 논문인 복셀 지형 물질 데이타베이스 및 합성 IR 장면 생성(Voxel Terrain Material Database and Synthetic IR Scene Generation)에서 논의되고 있다. 이 논문은 여기에 참조로 포함하고 있다. 이 방법은 상관 센서 데이터베이스(correlated sensor database)를 제공한다. 유사한 데이타베이스가 합성 개구(synthetic aperture), 실제 광선(real beam) 또는 밀리미터 파(milimeter wave) 레이다(RADER) 또는 레이저 레이다(LASER RADER) 영상 제작(imaging)을 위해 사용될 수 있다. 그러나, 렌더링을 위한 알고리즘은 약간 다를 수 있다. 복셀 표적 모델에대하여 IR 알고리즘을 사용하는 것이 1982 년 2 월 Navel Training Equipment Center를 위해 준비한 공개 보고서, 80-D-0014-2 에 있는 파쯔등의 실제 스캔 발달(Real Scan Evolution)란 보고서에서 논의되고 있다. 이 보고서는 여기에 참조로 포함하고 있다.
제1도에 도시한 바와 같이, 움직이는 물체의 위치 뿐만 아니라 시점도 6 자유도를 가지고 규정되어 있다:x,y,z,롤(roll), 피치(pitch) 및 빗놀이(yaw),x,y, 및 z의 값은 데이타베이스의 원점에 대해서 규정된다.(예를들어, 남서쪽 모서리). 빗놀이는 z(수직)축을 중심으로 데이타베이스의 x축에 대해서 측정한 회전이다. 피치는 y축을 중심으로한 수평선 위 또는 아래로의 회전이다. 롤은 보사이트(boresight)인 x축을 중심으로한 회전이다. 보사이트(boresight)는 시점과 스크린의 중심을 통과하는 선으로 정의된다.
제2도를 참조하면, 렌더링 알고리즘을 구현하는 시스템(10)이 도시되어 있다. 렌더링 알고리즘은 두개의 별도의 파이프라인가능한 섹션(pipelineable section), 즉 복셀 파이프(voxel pipe)(12)와 픽셀 파이프(pixel pipe)(14)로 나뉘어져 있다. 각 파이프는 적당한 산술을 행하는 몇개의 모듈로 구성되어 있다. 이들 모듈중 몇개는 패턴 프로세서(16)와 복셀 프로세서(18)등과 같은 별도의 컴퓨터 프로세서에서 구현될 수 있다. 그 외에, 각 서브프레임은 메모리를 공유할 수도 있는 다른 그룹의 분산 프로세서를 통하여 렌더링될 수 있다. 그러나, 하나 이상의 범용 디지탈 컴퓨터가 본 발명에 따른 방법을 수행하는데 사용될 수 있다는 것에 주의해야 한다. 본 발명의 한 형태에서는, UNIX 운영체제 및 X Windows 운영 환경하에서 운용할 수 있는 예를들어 선 스파크스테이션 2 (Sun SPARKstation 2)같은 컴퓨터가 사용될 수 있도록 요망되고 있다.
복셀 파이프(12)는 데이타베이스의 베이스평면으로 투영된 현재의 픽셀칼럼이 되는 직선을 따라서 데이타베이스 복셀에 억세스하게 된다. 이 복셀 칼럼은 그 다음에 픽셀 파이프(14)에 의해 프레임 버퍼(20)를 지나 픽셀의 칼럼으로 처리되는 픽셀 칼럼으로 맵핑된다. 픽셀의 데이타베이스로의 투영보다는 오히려 복셀의 스크린으로의 투영이 전방 알고리즘의 증명서의 구실을 한다.
제3도는 복셀을 스크린에 원근법 투영한 것을 도시하고 있다. 이와 관련하여, 제3도의 하단부에 있는 기준 그리드(reference grid)는 데이타베이스(예를들어, 데이타베이스 메모리(22))가 다른 해상도를 갖는 계층에서 어떻게 구성되어 있는가를 보여준다는 점에 주의한다. 제3도는 또한 시점으로부터 기준 그리드쪽으로 뻗어있는 횡벡터(24)를 나타내고 있다. 횡벡터(24)는 이하에서 설명하는 와핑 과정에서 새로운 시점 및 시계에 관한 정보및 2D 영상 프레임의 픽셀의 크기를 계산하는데 사용될 수 있다.
복셀의 칼럼은 시점 바로 아래에 있는 데이타베이스의 포인트인 천저(nadir)에서 시작하여 직선을 따라 뻗어 생성된다. 단계들은 베이스 평면으로 픽셀 칼럼을 투영하고 이와같이 생성된 직선과 데이타베이스의 축사이의 각을 계산함으로써 결정된다. 델타 x 및 델타 v는 계산된 각의 사인 및 코사인을 사용하여 찾는다. 데이타베이스를 억세스하는 이와같은 고정 패턴은 렌더링 시간이 비교적 장면의 복잡성에 독립적이다는 것을 의미한다. 각 단계는 상기에 열거한 두 가지 형태중의 하나일 수 있는 복셀위에서 시작한다. 복셀이 케이스Ⅱ인 경우에는, 높이 및 색깔은 4 개의 모서리로부터 복셀내의 단계 포인트쪽으로 서로 선형적으로 보간되어있다. 복셀이 케이스Ⅲ인 경우에는, 해당 패턴의 위치를 찾아 그 패턴의 각 세그먼트는 그 칼럼에서 다른 복셀로 된다. 이 때에는, 각 복셀은 높이, 색깔 및 눈으로부터의 지상 범위(ground range)로 구성되어 있다. 복셀의 높이, 눈의 높이 및 단계 포인트(step point)까지의 지상 범위로부터, 복셀의 상부로의 내림각(depression angle)이 산출된다. 내림각은 수평선의 위 또는 아래로의 각을 말하여 천저는 90 도이고, 천정(zenith)은 -90 도 이며 수평선은 0 도 이다.
복셀에 대한 내림각 뿐만아니라 현재의 칼럼에 대한 스크린의 상부 및 하부에 대한 내림각을 알게되면, 복셀에 의해 덮여진 칼럼의 부분을 계산할 수 있다. 케이스 Ⅲ 복셀이 처리되는 경우에는, 각 패턴 세그먼트의 상부 및 하부의 내림각은 피복도(coverage)를 계산하는데 사용된다. 이 칼럼은 픽셀로 분할되며 각 픽셀은 그 칼럼의 일정 각의 부분(fixed angular portion)을 차지한다. 그러므로, 간단한 각의 비교를 통하여 복셀에 의해 어느 픽셀, 또는 어느 부분의 픽셀들의 덮여져 있는지를 계산함으로써 복셀은 픽셀로 변환될 수 있다. 복셀은 전방에서 후방으로의 순서로 픽셀로 누적된다.
일단 픽셀의 전체 칼럼이 생성된 경우에는, 그것은 픽셀 파이프(pixel pipe) (14)로 된다. 픽셀 파이프(14)각각은 각의 픽셀(angular pixel)을 취하며 그에 대한 스크린, 또는 프레임 버퍼 위치를 계산한다. 이것은 픽셀의 내림각 및 현재의 칼럼과 스크린의 중심에 있는 칼럼사이의 각을 사용하여 극 좌표에서 평면 좌표로의 스크린 좌표 변환을 행함으로써 이루어진다. 동시에, 이것은 롤 계산을 행하여 픽셀들을 그들의 최종(x,y) 위치로 회전시키게 된다. 그 다음에 픽셀 파이프(14)는 스크린상에 이미 있는 픽셀의 뒤에 있는 픽셀들을 버리게 하여 Z-버퍼 범위 해상도 기능을 수행하고 그리고 나서 볼수있는 픽셀들을 통합하여 프레임 버퍼(20)에서 이웃하는 곳에 위치시킨다. 복셀 칼럼은 자기들이 항상 렌더링되는 데이타베이스의 베이스평면에 수직이 되도록 시점 및 천저를 통과하는 평면에 투영되는데 주의해야 한다. 이것은 수직 패턴의 모든 세그먼트가 동일한 칼럼으로 투영되어지는 것을 의미한다. 그러나, 픽셀의 칼럼은 스크린의 어느 모서리에 또는 다른 어떤 칼럼에 반드시 평행할 필요는 없다. 실제로는, 칼럼들은 제3도에 도시한 바와 같이, 천저 또는 천정이 중심에 있는 방사상 스포크 패턴(radial spoke pattern)을 형성한다. 상기한 바와 같이, 제4도는 렌더링 알고리즘 구현의 모듈로 구조(modular structure)의 블럭선도를 나타낸다. 이 블럭선도에 포함되어 있는 모듈들은 개별적으로 보다 상세히 논의될 것이다.
시스템 초기화 모듈(26)은 시스템을 초기화하고 데이타베이스를 로드하며 프레임 렌더링을 시작하게 된다. 데이타베이스 로드 기능의 기본적인 기능은 데이타베이스 영역을 로드하고 좌표 생성기 모듈(28)에 대해 유효한 영역 테이블을 갱신하는 것이다. 이 유효한 영역 테이블은 어느 영역이 어느 해상도 레벨로 데이타베이스의 어느 영역에 대하여 유효한지에 대한 정보를 포함하고 있다. 부분적으로 또는 전체적으로 중첩할 수 있는 다수의 영역들은 주어진 해상도 레벨에 대해 로드될 수 있다.
프레임 렌더링 모듈(30)은 몇가지 프레임 초기화 계산을 수행하여 그 프레임에 대하여 눈의 위치 및 물체의 위치를 읽어 들여, 그 다음에 적당한 모듈을 초기화함으로써 서브프레임을 렌더링한다. 특히, 프레임 초기화는 범위에 따라 움직이는 물체를 소팅하는 것을 포함하고 있다. 서브프레임은 지형이(있는 경우에는)먼저 렌더링되고 그 다음에 먼곳으로부터 가까운 곳으로 움직이는 물체를 렌더링하게 된다. 이 순서를 정하는 것이 중요한데 그 이유는 픽셀들은 반투명상태가 관여되어 있는 경우에 적당한 누적 및 감쇄를 위하여 먼곳으로부터 가까운 곳으로의 순서로 프레임 버퍼에 들어가야만 하기 때문이다. 서브프레임 초기화 모듈(32)은 그 다음에 물체 가시도, 스캔 한계, 트림 각도 및 픽셀 대향각을 결정하는 것, 및 실제 좌표에 있는 눈의 위치를 서브프레임 좌표에 있는 눈의 위치로 변환하는 것등의 서브프레임 초기화 작업을 수행하게 된다. 스캔 한계 계산은 스크린상에 있는 모든 픽셀들을 생성하여 칼럼의 수와 칼럼마다의 픽셀의 수를 최소화하도록 하게 되며, 픽셀들을 생성하기 이전에 스크린의 모서리 또는 물체의 경계에 있는 칼럼들을 트림하는 것이 바람직하다. 이와같이 하기 위하여, 적당한 칼럼 파라메타를 생성하기 위하여 스크린 파라메타(폭,높이, 시계, 피치, 롤 등)를 사용할 필요가 있다.
단일 프레임의 렌더링은 다수의 서브프레임의 렌더링으로 분할되어진다. 각 서브프레임은 단일 데이타베이스를 렌더링하는 것, 지형을 평균하는 것 또는 단일 물체로 구성되어있다. 서브프레임의 렌더링은 칼럼 파라메타 생성기(CPG) 모듈(Column Parameter Generator module)(34)의 제어하에서 행해진다. CPG 모듈(34)은 이전에 결정된 스캔 한계내에서 서브프레임을 완성하는데 필요한 각각의 칼럼을 처리하기 위한 여러가지의 파라메타를 생성한다. 이들은 지상 칼럼 각(ground column angle)(칼럼의 투영과 베이스평면 및 보사이트 칼럼(boresight column)의 투영사이의 각), 그 칼럼에 대한 스크린의 하부 및 상부에 대한 각(또는 트림 각), 델타 x 및 델타 y, 및 대각선 단계 크기(diagonal step size)의 사인 및 코사인이다. 지상 칼럼각이 주어지면, CPG 모듈(34)은 특정 칼럼에 대해서 스크린의 상부 및 하부에 대한 피치 각을 계산한다. 방사상 스캔 및 롤 때문에, 칼럼은 상부와 하부가 아니라 스크면을 절단하게 되는가를 결정한다. 스크린의 종횡비(aspect ratio)를 사용하여, CPG모듈(34)은 칼럼과 스크린 모서리들과의 교점(intersection)의 피치를 계산한다. 천저가 스크린상에 있는 경우에는, 하부 각은 +90 도를 설정된다. 마찬가지로, 상부 천저(upper nadir), 즉 천정이 스크린상에 있는 경우에는, 상부 각(top angle)은 -90 도로 설정된다.
좌표 생성기 모듈(Coordinate Generator module)(28)은 데이타베이스에 걸쳐 있는 일련의 복셀 어드레스를 발생하기 위하여 초기의 x 및 y 시작 위치 및 델타 x 및 y를 사용한다. 각각의 x 및 y 스텝에 대하여, 좌표 생성기(28)는 그 (x,y) 위치에서 이용가능한 최상의 해상도 데이타를 찾기 위하여 유효한 영역 테이블을 검사한다. 최상의 해상도는 적어도 경사범위(slant range)에 의해 결정된 소망의 해상도 레벨 정도로 거친 이용할 수 있는 고정세 해상도 데이타이다. 일단 이용할 수 있는 최상의 데이타의 해상도 레벨을 결정하게 되면, 데이타베이스 메모리내에서 그 데이타의 어드레스의 위치를 찾게 된다.
데이타베이스 메모리 모듈(Database Memory module)(22)은 복셀 어드레스의 열을 받아서 4 개의 이웃 모서리에 대한 색깔 및 고도 정보를 검색하기 위하여 그의 메모리를 억세스하게 된다. 복셀이 케이스 Ⅱ인 경우에는, 4 개의 모서리는 색깔 및 고도에 있어서 서로 선형적으로 보간되어 최종 복셀이 산출된다. 복세이 Ⅲ이면, 적당한 데이타가 검색된다.
패턴 프로세서 모듈(Pattern Processor module)은 케이스Ⅲ인 복셀을 다룬다. 케이스Ⅲ 복셀은 패턴 프로세서 모듈(16)로 하여금 베이스 복셀(base voxel)위의 수직 색깔(vertical color)및 고도 정보를 검색하기 위하여 패턴 메모리를 억세스할 수 있도록 해준다. 세그먼트(segment)라고 불리우는 수직 정보의 각 조각은 복셀 어레이(voxel array)내에서 별도의 복셀이 된다. 복셀을 픽셀로 적당히 누적시키기 위하여, 패턴 프로세서 모듈(16)은 눈의 고도로부터 위로 그 다음에 아래로 세그먼트의 적층을 출력하게 된다. 이것은 모든 복셀이 가장 가까운 곳으로부터 가장 먼 곳으로 픽셀에 기여하게 된다. 복셀/픽셀 칼럼내에서, 복셀은 전방으로부터 후방으로 처리된다. 어떤 플래그는 위로 올라가는 복셀 및 아래로 내려가는 복셀이 적당히 처리되도록 설정되어야 한다. 게다가, 패턴 프로세서(16)는 케이스Ⅲ복셀의 경우에 매끄러운 음영 표시를 계산하게 된다. 각 케이스Ⅲ패턴 세그먼트는 수평 및 수직 배향(orientation), 값을 가진다. 태양의 위치를 이용하여 패턴 프로세서(16)는 각 세그먼트에 대한 입사 태양 각(incident sun angle)을 계산하여 다음의 표준식을 사용하여 햇빛 색깔 (sunlight color), 주변 빛 색깔(ambient light color) 및 복셀 색깔을 결합시킨다.
Ifinal= Ivox* ( Iamo+ Isun* cos(입사각))
이 식은 각 채널에 대하여 IR 에 대하서는 한 번 또는 RGB 에 대해서는 3번계산된다.
복셀 프로세서(Voxel Processor)(18)는 패턴 프로세서에 의해 준비된 복셀 스트림(a stream of voxel)을 받아들여 각각에 대한 내림각 및 경사 범위를 계산한다. 경사각 및 내림각은 눈으로부터 복셀까지의 지상범위(거기에 도달하는데 걸리는 단계들의 수로 결정됨), 베이스평면위의 복셀의 높이 및 베이스평면위의 눈이 높이로부터 계산된다. 복셀은 사각 칼럼으로 처리되기 때문에 어떤 시각에서도 적당한 단면을 가진다.
복셀 프로세서(18)의 다른 주요 기능은 플래닝 스캔 (planning scan)이다. 파이프라인 프로세서(18)가 플래닝 스캔일 때. 파이프라인 프로세서가 칼럼을 처리하기 시작할 때, 파이프라인 프로세서는 각 영역에 대한 억세스를 하기 위한 정확한 계층구조를 결정하기 위하여 거친 해상도로 플래닝 스캔을 하는 것에서부터 시작한다. 복셀 프로세서(18)는 플래닝 스캔 동안에 소망의 계층구조를 계산한다. 정확한 계층구조는 시스템으로하여금 그 경사 범위에 있는 이웃한 칼럼사이의 거리보다 넓은 복셀을 선택하도록 함으로써 결정된다. 이는 알고리즘으로하여금 시점으로부터 데이타를 더 렌더링할 때 더욱더 거친 해상도를 선택하도록 하게 된다. 이 거리를 알기 위하여, 다음 식이 사용된다.
거리 = sin(칼럼 각(column angle))× 경사 범위(slant range)
일단 이 거리를 알게 되면, 적당한 크기의 복셀이 선택된다. 제3도는 경사 범위에 근거하여 적당한 크기의 복셀을 선택하는 것을 설명하고 있다. 플래닝 스캔을 위한 많은 처리 오버헤드(processing overhead)를 피하기 위하여, 기대한 것보다 더 거친 몇 개의 레벨로 된 복셀 데이터가 이용할 수 있다면, 계획을 위하여 사용된다. 이 방법으로 인하여 우리는 복셀에 대한 요망되는 계층구조를 결정할 수 있지만, 숨겨진 영역의 위치를 알 수 없으며 스크린상에서 볼 수 있는 제 1 의 복셀에 대한 스텝들의 수를 결정할 수 없다.
픽셀 버퍼(Pixel Buffer)(36)는 렌더러(renderer)에 있어서 가장 복잡한 기능들중의 하나이다. 그것은 복셀 프로세서(18)로부터 복셀을 받아들여 칼럼 버퍼에 저장된 픽셀을 산출해낸다. 칼럼 버퍼는 픽셀 버퍼 모듈(36)에 포함되어 있다. 들어오는 복셀(incoming voxel)은 복셀 프로세서(18)가 계산한 경사 범위 및 내림각을 갖는다. 내림각 및 복셀의 색깔 및 불투명도는 픽셀을 생성할 때 사용되는 주요 값이 된다.
픽셀 버퍼(36)에 들어가는 복셀은 색깔, 투명도, 경사 범위, 내림각 및 몇몇 플래그를 수반한다. 픽셀 버퍼(36)는 픽셀의 각 위치에 대한 현재의 내림각과 이전의 내림각을 비교하여 이 복셀에 의하여 전체 및 부분 픽셀이 덮여 있는 것을 결정한다. 전체 및 부분 픽셀은 두 가지 다른 방법으로 다루어진다. 비트 맵(bit map)은 채워진(filled in) 픽셀의 부분을 결정하는데 사용된다. 이것은 칼럼 버퍼 메모리(column buffer memory)를 보존하지만, 반투명의 픽셀 우물(pixel well)을 다루지는 않는다. 더 큰 칼럼 버퍼가 문제는 되지 않는 경우에는, 모든 픽셀은 서브픽셀로 세분될 수 있으며 각 서브픽셀은 칼럼 버퍼에서 단일의 완전픽셀(single,whole pixel)로서 작용한다. 각 서브픽셀내에서, 불투명하고 반투명한 섹션들은 서로 독립적으로 누적되어 이미 누적된 반투명한 부분에 의하여 감쇄되어진다. 복셀들은 전방에서 후방쪽으로의 순서로 픽셀로 누적되어진다. 불투명한 복셀이 픽셀을 채우게되면, 그 픽셀은 채워졌다고 표시가 되어지며 그에 대해 그 이상의 다른 어떤 기여도 하지않는다. 픽셀이 채워질 때, 픽셀 버퍼(36)는 칼럼의 채워진 부분의 상부에 대한 내림각을 유지한다. 그 각이 스크린의 상부에 도달한 때에는, 그 칼럼은 완성된 것이다. 그 다음에 픽셀 칼럼은 픽셀 파이프로 출력되고 n 개의 서브픽셀로 된 각 그룹들은 단일 출력 픽셀로 누적된다(평균되어진다)
또한, 픽셀 버퍼 모듈(36)은 픽셀들에 대한 정반사 계산(specularity calculati on)을 수행한다. 특정의 표면 법선을 갖는 주어진 복셀이 몇개의 픽셀을 덮을 수 있기 때문에, 정반사는 각 픽셀에 대하여 개별적으로 계산되어야만 한다. 정반사 계산을 수행하기 위하여, 픽셀 버퍼(36)는 복셀로부터 시점으로의 벡터를 계산하기 위하여 그 픽셀의 내림각 및 칼럼각을 사용한다. 그 다음에 픽셀 버퍼는 태양으로의 벡터와 함께 그 벡터를 사용하여 절단 벡터(bisecting vector)를 계산한다. 그 다음에 절단 벡터와 표면 법선사이의 각의 코사인이 복셀의 정반사(specularity) 또는 광휘(shininess)와 함께 사용되어 눈으로 반사된 햇빛의 양을 계산한다. 햇빛은 그 다음에 이 복셀이 이 특정 픽셀에 전달하게 되는 최종 색깔을 주기 위하여 패턴 프로세서가 계산한 매끄러운 음영 세기(smooth shaded intensity)와 결합된다. 거울 반사의 불투명은 복셀의 불투명도(opacity)에 종속되어 있는 것이 아니라 거울반전(specular highlight)의 세기에 종속되어 있다는 것에 주의해야 한다. 이와같이, 투명한 유리는 그 뒤에 있는 어떤 것도 차폐(mask)하는 밝은 반사점(bright reflective spot)을 가질 수 있다.
픽셀로 된 완전 칼럼이 완성되면, 그것은 픽셀 파이프(14)로 보내야 한다. 제 1 의 모듈은 각 픽셀을 극 좌표로부터 평면 스크린 좌표로 맵핑하는 픽셀 매퍼(Pixel Mapper)이다. 극 좌표는 지상 칼럼 각과 픽셀의 내림각에 의해 나타내어진다. 피치, 롤, 스크린 크기 및 시계를 사용하여, 픽셀은 스크린상의 (x,v) 위치에 맵핑된다. 그 다음에, 롤 각이 회전 중심에 대하여 적용된다.
성능의 향상을 위하여, 계산은 다음과 같이 접지 변환 알고리즘(folded algorithm)을 사용하여 행해진다.
kn 값은 각 칼럼에 대하여 CPG 모듈(34)에 의해 계산된 서브프레임 및 칼럼 상수이고 θ는 픽셀 피치이다.
픽셀 매퍼(38)의 다른 기능은 안개 알고리즘(haze algorithm)을 구현하는 것이다. 안개는 IR 또는 RGB에서 얼마간의 픽셀의 세기를 얼마간의 안개의 세기로 대체하는 대체물로서 나타난다. 남아있는 픽셀의 세기의 양은 피치가 0 이 아닐 때 다음과 같이 경사 범위, 피치, 안개 세기의 함수이다.
피치가 0 이 아닐 때는 다음과 같다.
여기서 Rs 는 눈으로부터 픽셀까지의 경사범위이고 Zeye 는 시점의 고도이며 pitch 는 수평으로부터의 픽셀의 각도이고 A 와 B 는 각각 안개 밀도(haze density) 및 수직 분포(vertical distribution) 파라메타이다. 안개 및 원래의 픽셀은 다음과 같이 결합된다.
Ifinal= Ipixel* WO+ Ihaze* (1.0 - WO)
움직이는 물체의 경우에는 안개 밀도는 움직이는 물체에 있어서 크게 변동하지 않으며(그들이 가까이 있는 경우에는 그들은 작아야만 한다) 또 밀집되어 있지도 않아서 물체의 무게중심(centroid)에 대한 피치는 픽셀 피치대신에 사용된다. 이것은 물체의 픽셀 피치가 서브프레임 좌표 공간에 대한 것이며 안개가 존재하는 지형 좌표 공간에 대한 것이 아니기 때문이다.
프레임 버퍼 모듈(Frame Buffer module)(20)은 픽셀로 된 칼럼을 받아들여 픽셀을 들어오는 픽셀의 (x,y) 위치 주위에 있는 4 개의 모서리 픽셀 각각으로 누적시킴으로써 그들을 프레임 버퍼로 밀어넣는다(blast). 픽셀 매퍼 모듈(20)은 단순히 적당한 (x,y) 위치를 찾는데 필요한 정확도보다 더 높은 정확도로 맵핑 기능을 수행한다. 여분의 해상도는 목적지 픽셀(destination pixel)내에서 맵핑된 픽셀의 위치를 결정하는데 사용된다. 4 개의 이웃 모서리 픽셀로의 누적은 맵핑된 픽셀 위치의 각 모서리로부터의 거리의 역수로 가중된다. 이 기법은 스플라팅(splatting)이라고 하는 것과 유사하다. 각 픽셀은 들어오는 픽셀의 가중치(weight)들의 합과 가중치와 세기의 곱의 합을 누적한다. 가중된 픽셀들은 표준 Z-버퍼 구현에 있어서 범위분할된다(range resolved).
프레임 버퍼는 비록 픽셀 버퍼에서도 행해지지만, 반투명 픽셀들이 결합되는 1 차 장소이다. 반투명 물질의 뒤에 보이는 색깔을 감쇄하는 알고리즘은 다른 응용에 대해서는 달라질 수 있다. 전송 방정식(transport equation)은 배경 정보가 불투명하지 않은 복셀에 의해 어떻게 감쇄되는가를 정의한다. 가시광 대역(visible band)(EO)에서는, 반투명 물질은 에어러솔(aerosol)로서 취급된다. 이와같이, 물질이 더 불투명해질수록 더 많은 부분을 보게 되고 배경은 더 적어지게 된다. 물질이 투명한 경우에는, 픽셀에는 전혀 색깔이 제공되지 않는다. 그와 반대로, 적외선 대역(infrared band)(IR)에서는, 물질의 전도계수(transmissivity) 및 복사도(emissivity)는 비교적 독립적이다. 그러므로, 물질은 투명할 수 있고 따라서 모든 배경 기여(background contribution)를 통하여 통과하게 되며 여전히 동일한 주파대(waveband)에서 복사하여 픽셀에 추가의 세기를 주게 된다. 실제의 치환(transpose) 방정식은 다음과 같다.
여기서 , Ip는 최종 픽셀 세기이고, Ifg는 전경 물질 세기(foreground material intensity)이며, Ibg는 배경 물질 세기, Ofg는 전경 물질의 불투명도이고, Obg는 배경 물질의 불투명도이다. 방정식에서의 차이는 각 물질의 세기 기여도가 EO 방정식의 경우에는 그 자신의 불투명도의 함수이지만 IR 방정식의 경우에는 그러하지 않다는 것에 주의하여야 한다.
디스플레이 모듈(Display module)(40)은 프레임 버퍼내의 누적된 세기를 최종 영상을 생성하기 위하여 누적된 가중치들로 나눔으로써 정규화한다. 소망의 영상이 가시광 대역에 있게 되면, 3 개의 채널(적색, 녹색 및 청색)이 처리되는 반면, 적외선의 경우는 하나의 채널이 처리된다.
움직이는 물체를 렌더링할 때에는, 각 물체는 개별의 서브프레임으로서 렌더링되며 픽셀 영상들은 프레임 버퍼내에서 범위분해되어 합병된다. 각 물체는 개별 데이타베이스로서 나타내어지며 독럽적으로 렌더링된다. 서브프레임 초기화 모듈(32)은 물체 데이타베이스의 축과 원점에 대해서 실제 좌표(world coordinate)에 있는 시점과 실제 좌표에 있는 물체 위치를 물체 좌표(object coordinate)에 있는 시점으로 변환된다. 다수의 물체는 각 프레임에서 렌더링될 수 있으며 다른 위치에 있는 동일 물체의 다수의 복사본도 또한 렌더링될 수 있다. 물체들은 렌더링하기 위하여 먼곳으로부터 가까운곳으로 범위가 순서가 매겨져 있으며(range ordered) 따라서 프레임 버퍼는 픽셀들을 적당하게 범위분해할 수 있다. 이것은 프레임 버퍼가 불투명도를 저장하지 않고 단지 범위 및 색깔만을 저장하기 때문이다. 그러므로, 픽셀이 이미 기여를 하고 있는 경우에는, 그것은 불투명하다고 가정한다. 이 조건이 실제의 픽셀 순서 매김(pixel ordering)과 매칭하도록 하기 위하여, 불투명 픽셀로 스크린을 채우는 지형이 먼저 렌더링된다. 그 다음에 각 물체는 렌더링되고 불투명 지형으로 범위분해된다. 물체들은 전송 방정식을 통하여 배경을 감쇄시키는 반투명 부분들을 가질 수 있지만, 감쇄된 픽셀들은 여전히 프레임 버퍼에서 불투명하다. 이와같이, 반투명 색깔을 적당히 누적시키기 위하여 물체들은 먼 곳으로부터 가까운 곳으로 렌더링되어야만 한다.
에일리어싱(aliasing)은 실시간 렌더링 응용에 있어서 중요한 문제이다. 단일 프레임에서는 볼 수 없는 문제들은 프레임 시퀀스가 실시간으로 디스플레이되는 때에 더욱 심하게 된다. 이들 시간상의 에일리어싱 문제들에는 플리커링(flickering), 스위밍(swimming), 스트로빙(strobing), 및 다른 이상(anomalies)이 포함된다. 물론, 재기(jaggies)등의 공간상의 에일리어싱 문제들도 역시 제어될 필요가 있다. 이 렌더링 알고리즘은 공간상 및 시간상의 에일리어싱 모두를 제어하기 위하여 여러가지 기법들을 사용하고 있다. 예를 들어, 픽셀의 칼럼을 생성하는 때에는, 픽셀들을 수직 방향으로 수퍼샘플링(supersample)되어 다수의 픽셀들이 픽셀 파이프에 보내지기 전에 단일 픽셀로 결합된다. 이는 엣지를 따라서 재기들(jaggies)을 감소시킬 뿐만아니라 한 픽셀로부터 그 다음의 픽셀로의 팝핑(popping)을 막기 위하여 물체의 수평 엣지(edge)들이 더욱 정확하게 샘풀링되도록 한다.
여기에서 사용된 다른 안티-에일리어싱 기법은 수직 형상 안티-에일리어싱(vertical feature anti-aliasing)이라고 한다. 칼럼이 벽과 같은 수직 형상(vertical feature)과 작은 각도(shallow angle)로 교차하는 경우에는, 인접한 복셀 칼럼들은 몇개의 복셀만큼 떨어져 그 벽에 교차하게 된다. 그 다음에, 시점이 움직이게 될 때, 칼럼들은 전에 지나쳐온 복셀들과 교차하도록 이동하게 되면 벽은 흔들리고 깜박거리는 것처럼 보인다. 이 문제점은 칼럼이 통과하는 벽을 따라 있는 모든 복셀들의 기여를 결합함으로서 경감된다. 알고리즘은 칼럼이 벽의 전방으로부터 후방으로 통과하는데 몇개의 단계를 거치게 되는가를 결정하기 위하여 칼럼과 벽의 표면 법선과의 각을 사용한다. 그 다음에, 복셀의 불투명도는 얼마의 단계가 남아 있는가에 비례하여 수정(감소)된다. 마지막 복셀은 벽이 반투명하게 되지 않도록 하기 위하여 불투명으로 남아 있는다. 이 기법은 여분의 픽셀 또는 칼럼들을 사용하지 않고 벽 복셀을 수퍼샘플링하는 것과 동등하다. 제5도는 이 기법을 설명한다.
물론, 이 기법에서는 두 칼럼사이의 수평 거리가 복셀의 나비보다 작다고 가정하고 있다. 이것은 눈으로부터 복셀까지의 경사 범위에 근거하여 적당한 해상도 복셀을 선택함으로써 좌표 생성기(28)에 의해 다루어진다. 이 과정도 역시 어느 복셀도 인접 칼럼이 지나가버리지 않는다는 점에서 추가의 안티-에일리어싱을 수행한다. 복셀들을 그냥 지나가버린 경우에는, 복셀에 부딪치고 시점이 움직임에 따라 그냥 지나가게 될 때 플리커(fliker)가 생기게 된다.
이전에 논의한 다른 기법은 프레임 버퍼에서의 블라스터링(blastering), 또는 스플레팅(splatting)이 있다. 픽셀이 프레임 버퍼에 들어갈 때, 그것은 모서리로부터의 거리의 역에 비례하여 4 개의 인접한 픽셀들에 기여하게 된다. 이것은 엣지가 한 픽셀로부터 다른 픽셀로 팝핑하는 것을 막아준다. 블라스터링 이외에, 움직이는 물체의 엣지, 또는 서브프레임이 검출되어 보다 적은 재기와 보다 적은 팝핑을 갖는 보다 매끄러운 엣지를 얻기 위하여 배경 픽셀과 혼합된다.
제6도를 참조하면, 본 발명에 따른 방법(100)의 전체 플로우챠트가 도시되어 있다. 이 점에서, 가사 및 설정 블록(housekeeping and setup block) (102)은 일반적으로 제2도에 도시한 시스템 초기화 모듈(26)에 대응한다. 마찬가지로, 영상 렌더링블럭(render image block)(104)은 일반적으로 제2도에 도시한 다른 모든 모듈들의 결합을 나타낸다. 따라서, 가사 및 설정 블럭(102)은 렌더링 과정에 대한 초기 파라메타를 제공한다는 것을 알아야 한다. 그 외에, 영상 렌더링 블럭(104)은 데이타베이스로부터 3 차원 정보를 추출하여 영상 프레임을 생성하는데 사용된다. 특히, 영상프레임은 특정의 시점 및 시계에서의 3 차원 장면의 2 차원 그림이다. 궁극적으로는, 영상 프레임은 실시간 또는 거의 실시간으로 움직이는 영상 시퀀스를 생성하기 위하여 시간상 분리되어 있는 일단의 영상 프레임의 일부를 형성한다. 상기한 바와 같이, 렌더링 과정은 시점 및 시계와 픽셀에서의 2 차원 영상 프레임의 크기에 관한 정보 3 차원 데이타베이스를 통하여 횡벡터를 이용한다. 횡벡터, 위치, 시점 및 시계는 초기 값으로서 제공되며 이들 값은 다른 동시 과정으로 대체될 수 있다. 또한, 여러가지의 렌더링 과정들이 적당한 응용에서 이용될 수 있다는 것을 알아야 한다.
일단 영상 프레임이 렌더링 된 경우에는, 이 방법은 영상 와핑 블록(warp image block)(106)으로 진행된다. 와핑의 과정은 일반적으로 시점 및 시계를 조절하는 동작에 의해서 기존의 영상 프레임으로부터 영상 프레임을 생성하는 것으로 구성되어 있다. 달리 말하면, 와핑 과정은 렌더링 과정을 거칠 필요가 없이 시점(또는 시점 및 시계)의 왜곡을 포함하게 된다. 와핑 과정의 결과는 영상 프레임내의 몇몇 픽셀들이 효과적으로 신장되는 반면에, 영상 프레임내의 다른 픽셀들은 압축되어진다. 이와 관련하여, 픽셀의 신장(stretching)은 신장되는 픽셀과 동일한 디스플레이되어질 픽셀의 수를 증가시킴으로써 달성된다. 마찬가지로, 픽셀 압축은 그렇지않으면 디스플레이되는 많은 픽셀들을 제거하는 것을 의미한다.
와핑 과정은 제7a도 내지 제7d도의 플로우챠트에 도시한 과정을 통하여 달성된다. 그 대신에, 컨벌루션(convolution)이 소망의 와핑을 실시하는데 이용될 수 있다. 또한, 와핑에 의해 생기는 시각적 효과는 디스플레이될 영상이 급속하게 변하지 않을 때에 가장 양호하게 달성된다. 이 점에서, 와핑 과정과 결합하여 영상의 적은 부분을 렌더링하는 것이 바람직하다는 것을 알아야 한다. 달리 말하면, 혼탁한 영상(blurred image)를 피하기 위하여 영상의 작은 섹션이 렌더링 과정(예를 들어, 광선 트레이싱(raytracing))을 겪게 될 수 있는 반면, 영상 프레임의 나머지는 와핑한다.
본 발명에 따르면, 와핑 과정(106)은 다른 영상 프레임을 렌더링 하는 것이 적당하기 이전에 여러번 계속될 수 있다. 이 점에서, 다이아몬드(108)는 와핑 과정이 계속되어야하는지를 계산하는 단계를 나타낸다. 와핑 계속 단계(continue warp step)(108)는 단지 카운트를 사용하거나 인접한 영상 프레임사이의 왜곡의 양에 근거하여 평가를 행하거나 할 수 있다. 예를 들어, 특정 영상 시퀀스에 디스플레이된 매 열번째 영상에 대한 렌더링 단계를 수행하는 것이 바람직하다. 기준으로서 왜곡의 양을 사용하는 것이 요망되는 경우에는, 적당한 영상 프레임의 적은 부분이 렌더링된 영상의 해당 부분에서의 와핑 과정의 결과 얼마나 멀리 떨어져 특정 부분의 영상이 디스플레이되는지를 결정하기 위하여 렌더링될 수 있다. 예를들어, 지형상의 특정 높은 점은 와핑 과정이 계속되어야 하는지를 평가하는데 사용될 수 있다.
또한, 제6도의 플로우챠트는 영상 생성 과정을 중지시키기 위한 블럭(110)을 포함하고 있다. 영상 생성 중지 블록(halt image generation block)(110)은 영상 렌더링 블럭(104) 또는 영상 와핑 블럭(106)에 응답한다. 이와같이, 영상 생성 과정은 렌더링된 마지막 영상 또는 와핑된 마지막 영상으로부터 종료될 수 있다.
상기한 바와 같이, 제7a도 내지 제7d도는 제6도에 도시한 와핑 과정의 플로우챠트를 나타낸다. 이 점에서, 이 특정 플로우챠트는 C 언어로 생성된 와핑 과정 코드로부터 자동적으로 생성되었다는 점에 주의해야 한다. 또한, 이 와핑 과정 코드는 프로그램의 테스트를 용이하게 하는 와핑 과정의 변형을 나타낸다. 예를들어, 블럭(112)은 사용자가 새로운 수평 시계(hfov)와 기타의 것을 입력하도록 요구하는 문장을 포함하고 있다. 프로그램의 최종판에 있어서는, 이 정보를 추출하기 위하여 적당한 파일을 열게 된다. 이 코드 기반 플로우챠트에 도시한 바와 같이, 이 와핑 과정 프로그램은 두 개의 주 루프(major loop), 즉 새로운 시점에 응담하는 루프 및 픽셀들을 신장/압축하는 루프를 포함하고 있다. 그러나, 상기한 바와 같이, 다른 적당한 와핑 프로그램들이 컨벌루션에 근거한 와핑 프로그램들의 적당한 응용에 이용될 수 있다.
상기한 설명이 본 발명의 양호한 실시예를 설명한 것이지만, 본 발명은 첨부된 청구범위의 범위 및 정확한 의미를 벗어나지 않고 수정 및 변경을 할 수 있다는 것을 알아야 한다.

Claims (10)

  1. 3차원 장면의 복수의 영상을 생성하는 방법에 있어서, 선정된 시점 및 시계 (a predetermined eye point and field of view)로부터의 상기 3차원 장면을 정의하는 데이타베이스를 제공하는 단계; 상기 데이타베이스로부터 영상 프레임을 렌더링(rendering)하는 단계; 상기 선정된 시점 및 시계를 변경함으로써 상기 영상 프레임을 와핑(warping)하는 단계; 및 다른 시점 및 시계에 대해 상기 와핑 단계를 적어도 한 번 이상 반복하여야 하는지를 결정하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 데이타베이스는 상기 선정된 시점 및 시계를 결정하기 위한 횡벡터 (traversal vector)의 초기 내역 (initial specification)을 포함하는 방법.
  3. 제2항에 있어서, 상기 렌더링 단계는 상기 데이타베이스로부터 3 차원 정보를 추출하는 것과 상기 선정된 시점 및 시계를 결정하는 것을 포함하는 방법.
  4. 제1항에 있어서, 상기 와핑 단계는 영상 프레임의 일부를 렌더링하는 것과 조합하여 사용되는 방법.
  5. 제1항에 있어서, 상기 와핑 단계의 반복은 선정된 횟수 동안 계속되는 방법.
  6. 제1항에 있어서, 상기 와핑 단계의 반복은 인접한 영상들 사이에 선정된 왜곡 (distortion)이 달성될 때까지 계속되는 방법.
  7. 제1항에 있어서, 상기 데이타베이스는 복수의 복셀 요소(voxel)를 포함하는 방법.
  8. 제1항에 있어서, 상기 데이타베이스는 상기 3 차원 장면을 정의하기 위한 복수의 서브 프레임(sub-frame)을 포함하며, 상기 렌더링 단계는 상기 데이타베이스 서브 프레임들로부터 서브 프레임 영상을 개별적으로 생성하는 방법.
  9. 3차원 장면의 복수의 영상을 생성하기 위한 시스템에 있어서, 선정된 시점 및 시계로부터의 상기 3차원 장면을 정의하기 위한 데이타베이스 수단; 상기 데이타베이스로부터 영상 프레임을 렌더링하기 위한 수단; 상기 선정된 시점 및 시계를 변경함으로써 상기 영상 프레임을 와핑하기 위한 수단; 및 다른 시점 및 시계에 대해 상기 영상 와핑을 적어도 한 번 이상 반복하기 위한 수단을 포함하는 시스템.
  10. 제9항에 있어서, 상기 데이타베이스 수단은 적어도 두 가지 다른 형태의 복수의 복셀 요소를 포함하는 시스템.
KR1019940703784A 1993-02-25 1994-02-17 렌더링 및 와핑 영상 생성 시스템 및 방법 KR0172462B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US2324593A 1993-02-25 1993-02-25
US08/023.245 1993-02-25
US8/023,245 1993-02-25
PCT/US1994/001626 WO1994019771A1 (en) 1993-02-25 1994-02-17 A rendering and warping image generation system and method

Publications (2)

Publication Number Publication Date
KR950701438A KR950701438A (ko) 1995-03-23
KR0172462B1 true KR0172462B1 (ko) 1999-03-30

Family

ID=21813932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940703784A KR0172462B1 (ko) 1993-02-25 1994-02-17 렌더링 및 와핑 영상 생성 시스템 및 방법

Country Status (6)

Country Link
US (1) US5684935A (ko)
KR (1) KR0172462B1 (ko)
CA (1) CA2130270C (ko)
GB (1) GB2280090B (ko)
IL (1) IL108668A (ko)
WO (1) WO1994019771A1 (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08279877A (ja) * 1995-04-04 1996-10-22 Ricoh Co Ltd 情報処理装置及びそれによる情報判断方法と情報処理方法
US5999189A (en) * 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5870097A (en) 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5949428A (en) * 1995-08-04 1999-09-07 Microsoft Corporation Method and apparatus for resolving pixel data in a graphics rendering system
US5880737A (en) * 1995-08-04 1999-03-09 Microsoft Corporation Method and system for accessing texture data in environments with high latency in a graphics rendering system
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6005582A (en) * 1995-08-04 1999-12-21 Microsoft Corporation Method and system for texture mapping images with anisotropic filtering
US6064393A (en) * 1995-08-04 2000-05-16 Microsoft Corporation Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US6097394A (en) * 1997-04-28 2000-08-01 Board Of Trustees, Leland Stanford, Jr. University Method and system for light field rendering
GB2329810B (en) * 1997-09-29 2002-02-27 Science Res Foundation Generation and use of compressed image data
US6466207B1 (en) * 1998-03-18 2002-10-15 Microsoft Corporation Real-time image rendering with layered depth images
US6466185B2 (en) 1998-04-20 2002-10-15 Alan Sullivan Multi-planar volumetric display system and method of operation using psychological vision cues
US6100862A (en) * 1998-04-20 2000-08-08 Dimensional Media Associates, Inc. Multi-planar volumetric display system and method of operation
US6377229B1 (en) * 1998-04-20 2002-04-23 Dimensional Media Associates, Inc. Multi-planar volumetric display system and method of operation using three-dimensional anti-aliasing
US6215503B1 (en) 1998-05-29 2001-04-10 Microsoft Corporation Image generator and method for resolving non-binary cyclic occlusions with image compositing operations
KR100354824B1 (ko) * 1999-11-22 2002-11-27 신영길 시간 일관성을 이용한 실시간 렌더링 방법 및 렌더링 장치
US6580424B1 (en) * 2000-10-21 2003-06-17 Microsoft Corporation System and method for interactive room modeling from camera images
US6774869B2 (en) * 2000-12-22 2004-08-10 Board Of Trustees Operating Michigan State University Teleportal face-to-face system
US6894690B2 (en) * 2001-06-20 2005-05-17 Engineering Technology Associates, Inc. Method and apparatus for capturing and viewing a sequence of 3-D images
US6934422B2 (en) * 2001-12-18 2005-08-23 Honeywell International Inc. Methods, data, and systems to warp an image
US7447380B2 (en) * 2002-09-12 2008-11-04 Inoe Technologies, Llc Efficient method for creating a viewpoint from plurality of images
US7631261B2 (en) * 2002-09-12 2009-12-08 Inoue Technologies, LLC Efficient method for creating a visual telepresence for large numbers of simultaneous users
KR100519779B1 (ko) * 2004-02-10 2005-10-07 삼성전자주식회사 깊이영상기반 3차원 그래픽 데이터의 고속 시각화 방법 및장치
US7571081B2 (en) * 2004-07-15 2009-08-04 Harris Corporation System and method for efficient visualization and comparison of LADAR point data to detailed CAD models of targets
US7362330B2 (en) * 2005-09-15 2008-04-22 International Business Machines Corporation Adaptive span computation when ray casting
CN100346357C (zh) * 2006-01-19 2007-10-31 上海交通大学 用三维标记点直接进行三维模型变形的方法
US8315477B2 (en) * 2007-11-14 2012-11-20 Integraph Software Technologies Company Method and apparatus of taking aerial surveys
US8548194B1 (en) * 2008-11-12 2013-10-01 Mustang Tchnology Group, L.P. System and method for determining altitude
US8525834B2 (en) * 2010-02-17 2013-09-03 Lockheed Martin Corporation Voxel based three dimensional virtual environments
EP2437220A1 (en) * 2010-09-29 2012-04-04 Alcatel Lucent Method and arrangement for censoring content in three-dimensional images
US9460546B1 (en) 2011-03-30 2016-10-04 Nvidia Corporation Hierarchical structure for accelerating ray tracing operations in scene rendering
US8681182B2 (en) 2011-04-19 2014-03-25 Deluxe 3D Llc Alternate viewpoint rendering
US9142043B1 (en) 2011-06-24 2015-09-22 Nvidia Corporation System and method for improved sample test efficiency in image rendering
US9147270B1 (en) 2011-06-24 2015-09-29 Nvidia Corporation Bounding plane-based techniques for improved sample test efficiency in image rendering
US8970584B1 (en) 2011-06-24 2015-03-03 Nvidia Corporation Bounding box-based techniques for improved sample test efficiency in image rendering
US9269183B1 (en) 2011-07-31 2016-02-23 Nvidia Corporation Combined clipless time and lens bounds for improved sample test efficiency in image rendering
US9305394B2 (en) 2012-01-27 2016-04-05 Nvidia Corporation System and process for improved sampling for parallel light transport simulation
US9347793B2 (en) * 2012-04-02 2016-05-24 Honeywell International Inc. Synthetic vision systems and methods for displaying detached objects
US9171394B2 (en) 2012-07-19 2015-10-27 Nvidia Corporation Light transport consistent scene simplification within graphics display system
US9159158B2 (en) 2012-07-19 2015-10-13 Nvidia Corporation Surface classification for point-based rendering within graphics display system
US9557415B2 (en) 2014-01-20 2017-01-31 Northrop Grumman Systems Corporation Enhanced imaging system
CN105953925A (zh) * 2016-06-03 2016-09-21 华中科技大学 一种基于快速射线追踪的毫米波辐射亮温获取方法
US10268889B2 (en) * 2017-03-31 2019-04-23 The Boeing Company System for target material detection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4835532A (en) * 1982-07-30 1989-05-30 Honeywell Inc. Nonaliasing real-time spatial transform image processing system
US4645459A (en) * 1982-07-30 1987-02-24 Honeywell Inc. Computer generated synthesized imagery
EP0168981B1 (en) * 1984-07-20 1993-10-27 Tektronix, Inc. Method and apparatus for spherical panning
US4897806A (en) * 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
US4952922A (en) * 1985-07-18 1990-08-28 Hughes Aircraft Company Predictive look ahead memory management for computer image generation in simulators
US4805121A (en) * 1986-05-30 1989-02-14 Dba Systems, Inc. Visual training apparatus
DE3782160T2 (de) * 1986-09-11 1993-02-11 Hughes Aircraft Co Digitales simulationssystem zur erzeugung von realistischen szenen.
US4855822A (en) * 1988-01-26 1989-08-08 Honeywell, Inc. Human engineered remote driving system
US5315692A (en) * 1988-07-22 1994-05-24 Hughes Training, Inc. Multiple object pipeline display system
US5091960A (en) * 1988-09-26 1992-02-25 Visual Information Technologies, Inc. High-speed image rendering method using look-ahead images
US5175808A (en) * 1989-09-12 1992-12-29 Pixar Method and apparatus for non-affine image warping

Also Published As

Publication number Publication date
GB2280090A (en) 1995-01-18
GB2280090B (en) 1997-04-30
GB9416869D0 (en) 1994-11-16
CA2130270C (en) 1999-12-28
IL108668A (en) 1998-09-24
WO1994019771A1 (en) 1994-09-01
KR950701438A (ko) 1995-03-23
US5684935A (en) 1997-11-04

Similar Documents

Publication Publication Date Title
KR0172462B1 (ko) 렌더링 및 와핑 영상 생성 시스템 및 방법
US5480305A (en) Weather simulation system
US5363475A (en) Image generator for generating perspective views from data defining a model having opaque and translucent features
US5598359A (en) Weather effects generator for simulation systems
US5409379A (en) Weather simulation system
EP0282504B1 (en) Digital simulation system for generating realistic scenes
EP0454129B1 (en) System for generating a texture mapped perspective view
Greene et al. Creating raster omnimax images from multiple perspective views using the elliptical weighted average filter
Weinhaus et al. Texture mapping 3D models of real-world scenes
Wright et al. A voxel-based, forward projection algorithm for rendering surface and volumetric data
Vyatkin et al. Voxel Volumes volume-oriented visualization system
Chang et al. Image shading taking into account relativistic effects
Sobierajski Global illumination models for volume rendering
Mueller Architectures of image generators for flight simulators
Graf et al. Computer graphics and remote sensing–a synthesis for environmental planning and civil engineering
GB2265801A (en) Image generator
Vyatkin et al. Voxel volumes visualization system
Blanton Image extrapolation for flight simulator visual systems
Sunar et al. Real-Time Daylight Sky Color Modeling
GB2265802A (en) Image generator
GB2265803A (en) Processing model data
GB2265804A (en) Scan converting rectilinear edged objects

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: 20011010

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee