KR100256472B1 - 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링 - Google Patents

사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링 Download PDF

Info

Publication number
KR100256472B1
KR100256472B1 KR1019970034854A KR19970034854A KR100256472B1 KR 100256472 B1 KR100256472 B1 KR 100256472B1 KR 1019970034854 A KR1019970034854 A KR 1019970034854A KR 19970034854 A KR19970034854 A KR 19970034854A KR 100256472 B1 KR100256472 B1 KR 100256472B1
Authority
KR
South Korea
Prior art keywords
room
objects
scene
camera
coordinate system
Prior art date
Application number
KR1019970034854A
Other languages
English (en)
Other versions
KR19980041796A (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 KR19980041796A publication Critical patent/KR19980041796A/ko
Application granted granted Critical
Publication of KR100256472B1 publication Critical patent/KR100256472B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Abstract

사용자가 하나 이상의 룸을 정의하는 것을 허용하는 메카니즘을 제공한다. 룸은 카메라가 룸 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 특정 물체와 연관된, 부피를 갖는 볼륨 셀 같은 공간 영역이다. 룸은 장면을 표현하는 물체들과는 구별된다. 사전처리 단계는 카메라가 룸 내에 위치하는 지를 검사하고, 만일 그렇다면 장면의 물체들이 룸 내로부터 잠재적으로 가시적임(또는 잠재적으로 비가시적임)을 결정한다. 그 후, 룸 내로부터 잠재적으로 가시적인 물체들만이 디스플레이를 위해 렌더링된다.

Description

사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링
본 발명은 컴퓨터 그래픽 시스템, 특히 복합 형상 모델(complex geometric model)의 시각적 제공을 실시간 대화형으로 하는 컴퓨터 그래픽 시스템에 관한 것이다.
3차원 물체들로 이루어지는 장면(scene)을 모델링(modeling)하고 음극선관이나 액정 디스플레이 같은 평면 디스플레이장치 상에 디스플레이하기 위해 이 장면을 렌더링(rendering)하는데 통상 컴퓨터 그래픽 시스템이 사용된다. 통상, 장면의 3차원 물체들 각각은 물체의 모양을 근사화시키는 수 많은 폴리곤[또는 프리미티브(primitives)]으로 표현된다. 물체를 정의하는 프리미티브는 보통 국부좌표계(local coordinate system)의 좌표값으로 정해진다. 예를 들면, 물체를 정의하는데 사용될 수 있는 프리미티브들 중 하나에 삼각형이 있는데, 이는 국부좌표계에서 3 정점의 좌표값으로 정해진다.
통상적으로 장면의 렌더링 처리는 형상 처리(geometry processing) 및 래스터화 처리(rasterization)의 2 단계로 수행된다. 형상 처리는 통상 모델링 변환, 조명 계산, 뷰잉 변환(viewing transformation), 클리핑 기능(clipping function) 및 뷰포트 맵핑(viewport mapping) 단계를 포함한다. 모델링 변환에서는 프리미티브의 좌표계를 국부좌표계에서 실세계 좌표계로 변환한다. 조명 계산에서는 일루미네이션 모델을 여러 위치에서 계산한다. 이 계산은 상수 쉐이딩에 대해 프리미티브 당 한 번, 구로드 쉐이딩(Gouraud shading)에 대해 정점 당 한 번 또는 퐁 쉐이딩(Phong shading)에 대해 픽셀 당 한 번이다. 뷰잉 변환에서는 실세계 좌표계의 프리미티브를 3차원 화면 좌표계(때로는 정규 투영 좌표계라고 함)로 변환한다. 클리핑 기능에서는 프리미티브(또는 그 일부분)가 가시 절두체(viewing frustrum) 내에 있는지를 결정한다. 뷰포트 맵핑에서는 클립된 프리미티브의 좌표값을 정규 장치 좌표계(때로는 2차원 장치 좌표계라고 함)에 맵핑한다.
래스터화 처리에서는 형상 처리시 생성된 클립된 프리미티브의 표현(description)을 디스플레이를 위해 픽셀로 변환한다. 도 1a에 도시한 바와 같이 통상의 프리미티브는 삼각형 T1이다. 통상적으로 래스터화하기 전에 다른 영역이나 표면 프리미티브를 하나 이상의 삼각형으로 변환한다. 따라서, 종래의 래스터화 처리에서는 삼각형만을 조작하였다. 삼각형 T1은 각 정점에서의 좌표 (x, y, z)로 표현된다. 정점의 좌표 (x, y)는 디스플레이 평면에서의 위치를 말하며 좌표 z는 정점이 3차원 장면의 선택된 시점(view point)으로부터 얼마나 멀리 떨어져 있는지를 말한다. 래스터화 처리는 통상 주사 변환, 쉐이딩 및 가시성 결정(visibility determination)의 3 단계로 나눠진다.
주사 변환에서는 각 삼각형의 정점의 좌표값 (x, y)를 이용하여 삼각형이 커버하는 픽셀 집합 S를 계산한다.
쉐이딩에서는 각각의 삼각형에 의해 커버되는 픽셀 집합 S의 색상을 계산한다. 색상을 계산하는 기법에는 여러가지가 있는데, 그 중 일부에는 텍스춰 맵핑(texture mapping) 같은 집중적인 계산을 요하는 기법이 포함되어 있다. 쉐이딩에서는 통상적으로 형상 처리에 대해 상술한 조명 계산을 이용한다.
가시성 결정에서는 각 삼각형의 z 좌표를 이용하여 삼각형에서 "가시적인" 픽셀 집합 Sv(S의 부분집합)를 계산한다. 집합 S의 픽셀들 중의 어느 하나라도 이미 래스터화되어 그 z 좌표값이 선택된 시점에 근접한 삼각형으로 커버되어 있을 경우에는 집합 Sv는 집합 S와 다르다. 따라서, 이미 처리된 모든 삼각형에 의해 표현되는 장면내의 각 삼각형에 대해서 픽셀은 삼각형이 집합 Sv내에 있으면 "가시적"이고, 집합 Sv에는 속하지 않으면서 집합 S 내에 있으면 "은폐"된다. 더구나, 삼각형은 집합 Sv가 집합 S와 일치하면 "전부 가시적"이고, 집합 Sv가 집합 S와 일치하지 않으며 집합 Sv가 공집합이 아니면 "부분적으로 은폐"되며, 집합 Sv가 공집합이면 "전부 은폐"된다. 예를 들면, 도 1b는 2개의 삼각형 T1, T2를 도시하는데, 여기서 삼각형 T1은 삼각형 T2에 의해 부분적으로 은폐된다. 가시성 결정은 통상 z-버퍼 기법을 사용하여 수행된다. z-버퍼는 소정 픽셀에서 가시적인 프리미티브의 z값을 나타내는 각 픽셀용의 엔트리(entry)를 저장한다. 소정 삼각형에 의해 커버되는 픽셀 집합의 z값(Znew)은 보간법에 의해 결정된다. 집합 내의 각 픽셀에 대해 소정 픽셀에서의 Znew는 소정 픽셀에 대응하는 z-버퍼의 엔트리로서 저장된 z값(Zold)과 비교되고, 엔트리 Zold는 비교 연산의 결과에 따라 Znew로 갱신된다.
래스터화 처리는 가시적인 픽셀 집합 Sv의 색상을, 디스플레이를 위해 이미지 버퍼에 기록함으로써 완료된다.
장면이 더욱 더 복잡화함에 따라 많은 그래픽 시스템에서는 종래의 렌더링 기법이 지나치게 집중적인 계산을 요했으므로 성능 하락을 야기하였다. 이에 따라 복잡한 장면의 처리에 적합한 렌더링 기법이 새로이 제안되었다. 예를 들면, 뮬멀리(Mulmuley)에 허여된 미국특허 제5,086,496호 "Method for hidden line and surface removal in a three dimensional display"는 뷰잉 윈도우(viewing window)의 스트립형 파티션들(stripped partitions)(적어도 하나의 이미지 정점을 교차하는 경계로서 정의됨)과 소정 파티션 내에서 가시적인 면들에 대한 가시 포인터들을 이용하여 면들의 가시성 결정을 수행한다.
다른 예로 그린(Green) 등의 논문 "Hierarchical Z-buffer visibility", Proc. ACM SIGGRAPH 93, pp. 231-238, 1993에는 주사 변환을 신속하게 하기 위한, 물체-공간 옥트리(octree) 및 이미지-공간 Z-피라미드의 2개의 계층 데이터 구조의 조합이 개시되어 있다.
또, 텔러(Teller) 등의 논문 "Visibility preprocessing for interactive graphics", Proc. ACM SIGGRAPH 91, pp. 61-69, 1991에는 모델을 다수의 셀로 세분하고 셀-대-셀 가시성 정보(cell-to-cell visibility information)(소정 셀에 대해 소정 셀 내의 적어도 하나의 지점으로부터 부분적으로 또는 완전히 가시적인 셀들의 집합을 표현함)를 생성하는 가시성 사전 처리 단계시 이용되는 알고리즘이 개시되어 있다. 인터랙티브 워크스루 단계시(during interactive walkthrough phase), 가시 절두체를 갖는 알려진 위치의 관찰자는 모델을 관통해 이동한다. 각 프레임에서, 관찰자를 내포하는 셀이 식별되고 잠재적으로 가시적인 셀들(사전처리 단계시 생성된 셀-대-셀 가시성 정보로부터 유도됨)의 내용이 저장장치로부터 검색된다. 관찰자의 가시 절두체에 대해 셀을 컬링(culling)함으로써 잠재적으로 가시적인 셀들의 집합은 감소되어 아이-대-셀(eye-to-cell) 정보(지정된 가시 절두체 내의 관찰자에게 부분적으로 또는 완전히 가시적인 셀들의 집합을 표현함)를 생성한다. 그 후, 아이-대-셀 정보로부터 식별되는 남아있는 가시적인 셀들의 내용은 은폐면 제거와 렌더링을 위해 그래픽 파이프라인(graphics pipeline)으로 전송된다. 텔러(Teller) 등의 논문 "Global visibility algorithms for illumination computations", Proc. ACM SIGGRAPH 93, pp. 239-246, 1993에서는 가시성 사전처리 알고리즘을 레디오시티 계산(radiosity computations)에 제공한다.
이러한 대체 기술은 래스터화 처리시 가시성 결정을 신속하게 하도록 설계되었지만 융통적이지 못하여 대부분의 경우에 그 이점을 살리지 못하고 렌더링 프로세스에 과도한 계산 작업을 부가하고 있다. 따라서, 이 기술 분야에서는 오늘날의 3차원 모델 및 장면에서 보여지는 다양한 특성 및 복잡성이 요구하는 조건을 만족시킬 수 있는 유연한 렌더링 기법을 제공할 필요가 있다.
종래 기술의 상술한 문제들 및 관련 문제들은 본 발명의 원리인 사용자 정의 룸(room)을 이용한 효율적인 렌더링에 의해 해결된다. 이 기법에서는 사용자로 하여금 하나 이상의 룸을 정의하게 하는 메카니즘이 제공된다. 룸은 부피를 갖는 볼륨 셀(volumetric cell)과 같은 공간 영역이다. 카메라가 룸 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 특정 물체와 룸을 연관시키는 데이터가 저장된다. 룸은 장면을 표현하는 물체들과는 구별된다. 사전처리 단계에서는 카메라가 룸 내에 위치하는 지를 검사하고, 만일 위치한다면 저장된 데이터를 이용하여 장면의 물체들이 룸 내로부터 잠재적으로 가시적인 지(또는 잠재적으로 비가시적인 지)를 결정한다. 그 후, 룸 내로부터 잠재적으로 가시적인 것으로 결정된 물체들만이 디스플레이를 위하여 렌더링된다.
또, 하나 이상의 윈도우를 룸과 연관시키는 데이터가 저장될 수 있다. 윈도우는 윈도우에 대한 카메라의 위치, 방향 및 시야(field of view)에 의존하는 가시/비가시 영역을 정의하는 하나의 기하 형상이다. 윈도우가 정의하는 가시 영역 내에 현재 위치하는 룸과 연관된 물체들 집합의 외부에 있는 물체들은 바람직하게는 디스플레이를 위해 렌더링된 물체들에 추가된다.
도 1a는 삼각형 T1의 래스터화 처리를 표현하는 회화도.
도 1b는 삼각형 T1 및 T2(여기서 삼각형 T1은 삼각형 T2에 의해 부분적으로 은폐됨)의 래스터화 처리를 표현하는 회화도.
도 2는 그래픽 워크스테이션의 기능 블럭도.
도 3은 도 2에 도시되는 그래픽 워크스테이션의 그래픽 서브시스템의 기능 블럭도.
도 4a는 본 발명에 따른 룸을 도시하는 도면.
도 4b는 룸을 물체들의 집합과 연관시키는 데이터 구조.
도 5는 본 발명에 따른 룸의 사전처리 단계를 도시하는 흐름도.
도 6a는 본 발명에 따른 윈도우가 있는 룸을 도시하는 도면.
도 6b는 도 6a의 가시 절두체와 윈도우의 교차부를 2차원 공간으로 도시하는 도면.
도 7은 본 발명에 따른 연관 윈도우가 있는 룸의 사전처리를 도시하는 흐름도.
도 8a 및 8b는 본 발명에 따라 하나 이상의 룸 및 연관 사전처리를 가시성 집합과 함께 이용하는 경우의 그래픽 시스템의 연산을 도시하는 흐름도.
도 9a는 비볼록 룸 R 및 연관 윈도우 A, B, C, D의 횡단면도.
도 9b는 윈도우의 외양이 적절하게 평가되도록 룸 R의 윈도우와 연관된 컬링 연산을 순서화하는데 사용된 룸 R과 윈도우 A, B, C, D의 연관을 표현하는 계층 적 트리 구조를 도시하는 회화도.
도면의 주요 부분에 대한 부호의 설명
102 : 호스트 CPU 104 : 시스템 메모리
106 : 시스템 버스 110 : 그래픽 서브시스템
112 : 디스플레이 200 : 제어 유닛
202 : 형상 엔진 212 : 래스터화 스테이지
214 : Z-버퍼 216 : 프레임 버퍼
401 : 빔 402 : 파이프
403 : 펌프
도 2에 도시한 바와 같이, 종래의 그래픽 시스템에는 시스템 버스(106)를 통해 시스템 메모리(104)에 결합되어 있는 호스트 프로세서(102)가 포함되어 있다. 시스템 메모리(104)는 하나 이상의 3차원 모델로 포함되어 있는 물체들을 정의하는 그래픽 데이터를 저장하는 RAM(random access memory)으로 구성된다. 각각의 물체를 정의하는 그래픽 데이터는 프리미티브의 국부좌표계의 좌표와 속성들(예로 색상, 반사율, 텍스춰)로 구성된다. 프리미티브는 폴리곤, 선, 면 등의 형상 엔트리이다. 전형적으로, 프리미티브는 국부좌표계의 3 정점의 좌표에 의해 정의되는 삼각형이다. 이 경우에, 시스템 메모리(104)는 3차원 장면을 구성하는 물체들의 면을 정의하는 삼각형들의 정점의 순서화된 리스트를 포함한다. 또, 시스템 메모리(104)는 삼각형 각각에 대응하는 삼각형 식별자 리스트 및 변환 매트릭스를 저장할 수 있다. 변환 매트릭스는 장면의 물체들을 국부좌표계로부터 실세계 좌표계로 변환하는데 사용되며 따라서 장면 내에서 삼각형들의 위치, 방향, 스케일을 지정한다.
입출력(I/O) 장치(108)는 시스템 버스(106)를 경유하여 호스트 프로세서(102)와 인터페이스한다. 입출력 장치에는 텍스트 입력용의 키보드, 템플릿 또는 텃치 패드, 사용자 입력용의 마우스, 트랙볼, 스페이스볼 또는 라이트 펜 등의 포인팅 장치 및 그래픽 데이터나 임의 응용 소프트웨어를 저장하기 위한 하드 디스크나 CD-ROM 등의 불휘발성 저장장치가 있다. 통상적으로, 그래픽 데이터와 응용 소프트웨어는 시스템 프로세서(102)가 액세스할 수 있도록 불휘발성 저장장치로부터 시스템 메모리(104)로 로드된다.
응용 소프트웨어에는 보통 사용자에게 시점(또는 카메라)을 갱신함으로써 장면을 통하여 이동하게 하는 능력을 제공하는 하나 이상의 사용자 인터페이스가 포함되어 있다. 또, 응용 소프트웨어에는 보통 일련의 기정의된 시점으로부터 보여지는, 애니메이션을 수행하는 능력을 사용자에게 제공하는 하나 이상의 사용자 인터페이스가 포함되어 있다. 응용 소프트웨어는 시점이 갱신될 때에는 보통 시스템 메모리(104)에 저장된 변환 매트릭스를 이용하여 장면의 프리미티브를 국부좌표계로부터 실세계 좌표계로 변환한다. 그 후, 호스트 프로세서(102)에 올려져 수행되는 응용 소프트웨어는 장면을 렌더링하기 위한 그래픽 데이터를, 시스템 버스(106)를 경유하여 시스템 메모리(104)와 인터페이스하는 그래픽 서브시스템(110)으로 공급한다.
일반적으로, 그래픽 서브시스템(110)은 호스트 프로세서(102)로부터 그래픽 서브시스템(110)으로 전송되는 그래픽 명령(graphics orders)에 따라 디스플레이 장치(112)의 디스플레이 영역 상에 디스플레이하기 위해 시스템 메모리(104)에 저장된 그래픽 데이터를 렌더링하도록 동작한다. 디스플레이 장치(112)는 픽셀을 디스플레이하는데 래스터 주사 방식이나 액정 디스플레이 방식을 이용할 수 있다. 그래픽 서브시스템(110)이 생성한 픽셀 데이터는 디지털 형태이다. 전형적으로, 디스플레이 장치(112)는 보통 아날로그 형태의 픽셀 데이터를 필요로 한다. 이러한 경우에는 도 3에 도시한 바와 같이 D/A 변환기(114)를 그래픽 서브시스템(110)과 디스플레이 장치(112) 사이에 배치하여 픽셀 데이터를 디지털에서 아날로그 형태로 변환할 수 있다.
그래픽 명령은 보통 장면의 프리미티브를 정의하는 그래픽 데이터(예로 하나 이상의 프리미티브의 좌표 및 속성), 연관된 변환 매트릭스 및 그래픽 서브시스템(110)이 요구하는 임의의 다른 필요 정보를 지적하거나 포함하는 일련의 데이터 블럭으로 구성된다. 그래픽 명령과 연관된 프리미티브들은 보통 프리미티브의 각 정점에 대한 형상 좌표 또는 동차의 좌표(geometric coordinates or homogeneous coordinates) 값에 의해 규정된다. 또, 그래픽 명령은 보통 각 프리미티브의 정점에 대한 정규 벡터를 정의하는 데이터를 지적하거나 포함한다. 이들 좌표와 정규 벡터의 값은 실세계 좌표계에서 지정된다.
또, 장면의 프리미티브가 국부좌표계로부터 실세계 좌표계로 변환되는 것은 호스트 프로세서 상에서 수행되는 응용 작업에 의해서는 수행될 수 없지만, 그래픽 서브시스템에 의해서는 수행될 수 있다. 이러한 경우에는 그래픽 서브시스템으로 공급된 그래픽 명령이 시스템 메모리(104)에 저장된 변환 매트릭스를 지적하거나 포함하며, 그래픽 서브시스템은 이 변환 매트릭스를 이용하여 장면의 프리미티브들을 국부좌표계로부터 실세계 좌표계로 변환한다.
그래픽 서브시스템(110)이 그래픽 워크스테이션의 일부로서 도시되어 있지만, 본 발명의 범위가 여기에 국한되는 것은 아니다. 즉, 후술되는 바와 같이 본 발명의 그래픽 서브시스템(110)은 필요하다면 적어도 하나의 프로그래머블 시퀀서, 메모리, 적어도 하나의 정수 처리장치 및 적어도 하나의 부동소숫점 처리장치를 포함하는 게이트 어레이 또는 칩 세트 같은 하드웨어로 구현될 수 있다. 또, 그래픽 서브시스템(110)은 여기에 참고로 인용된 미국특허 제4,876,644호에 개시되어 있는 병렬 및/또는 파이프라인 아키텍처를 포함할 수 있다.
다른 예로서, 그래픽 서브시스템(110)(또는 그 일부)은 후술하는 바와 같이 프로세서와 더불어 소프트웨어로 구현될 수도 있다. 여기서, 프로세서는 통상적인 범용 프로세서, 호스트 프로세서 또는 호스트 프로세서(128)와 통합된 코프로세서일 수 있다.
도 3에 도시한 바와 같이, 그래픽 서브시스템(110)에는 그래픽 서브시스템(110)의 동작을 감독하는 제어 유닛(200)이 포함되어 있다. 장면을 렌더링하기 위한 그래픽 명령의 수신시 제어 유닛(200)은 그래픽 명령과 연관된 그래픽 데이터를 형상 엔진(202)으로 넘긴다. 형상 엔진(202)은 그래픽 명령과 연관된 그래픽 데이터를 실세계 좌표계로부터 3차원 화면 좌표계(때로는 정규 투영 좌표계라고 함)로 변환하고, 이 그래픽 데이터를 사전 결정된 뷰 볼륨(view volume)에 대해 클립하고, 클립된 데이터를 3차원 화면 좌표계로부터 표준 장치 좌표계(때로는 2차원 장치 좌표계 또는 화면 좌표계라고 함)로 변환한다. 또, 적용되는 쉐이딩 알고리즘에 따라 일루미네이션 모델은 여러 위치(즉, 프리미티브들의 정점들 및/또는 소정 프리미티브에 의해 커버되는 픽셀들)에서 평가된다. 그 후, 정규 장치 좌표계의 좌표값에 의해 정해지는 변환 및 클립된 그래픽 데이터는 래스터화 스테이지(212)로 넘어간다.
래스터화 스테이지에서는 주사 변환을 수행함으로써 변환된 프리미티브들을 픽셀로 변환하고, 각 픽셀에서의 각 프리미티브의 기여분을 적어도 하나의 프레임 버퍼(216) 및 z-버퍼(214)에 일반적으로 저장하는 가시성 결정과 쉐이딩 계산을 수행한다. z-버퍼(214)는 바람직하게는 디스플레이(112)의 각 픽셀에 대한 깊이 값을 저장하기에 충분한 메모리를 갖추고 있다. 통상적으로 깊이 값은 각 픽셀에 대해 24비트 정수로 저장된다. 프레임 버퍼(216)는 바람직하게는 디스플레이(112)의 각 픽셀에 대한 색상 데이터를 저장하도록 충분한 메모리를 갖추고 있다. 통상적으로 색상 데이터는 각 픽셀에 대해 적녹청(r, g, b) 색값을 나타내는 세 개의 8비트 정수로 구성된다. 픽셀 데이터는 디스플레이 장치(112) 상에 디스플레이하기 위해 주기적으로 프레임 버퍼(216)에서 출력된다. 형상 엔진(202) 및 래스터화 스테이지(212)의 기능은 여러 가지 다양한 아키텍처로 조직된다. 이러한 아키텍처의 상세한 설명은 폴리(Foley) 등의 "Computer graphics : principles and practice", pp. 855-920 (2nd Ed. 1990)에 개시되어 있으며 여기에 참고로서 인용된다.
본 발명에 따르면, 사용자로 하여금 하나 이상의 룸을 정의하게 하는 메카니즘이 제공된다. 룸은 카메라가 룸 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 특정 물체와 연관되는, 부피를 갖는 볼륨 셀과 같은 공간 영역이다. 룸은 장면을 표현하는 물체들과는 구별된다. 물체는 장면(룸 내의 하나의 가구와 같은)의 의미있는 부분집합에 대응하는 프리미티브들(삼각형과 같은)의 모임이다. 사전처리 단계에서는 카메라가 룸 내에 위치하는 지를 검사하고, 만일 위치한다면 장면의 물체들이 룸 내로부터 잠재적으로 가시적인 지(또는 잠재적으로 비가시적인 지)를 결정한다. 그 후, 룸 내로부터 잠재적으로 가시적인 것으로 결정된 물체들만이 디스플레이를 위하여 렌더링된다.
특히, 본 발명의 메카니즘은 사용자로 하여금 하나 이상의 룸을 정의하게 하는 사용자 인터페이스를 포함한다. 룸은 카메라가 룸 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 물체들의 집합과 연관되는 공간 영역이다. 룸은 2차원(예를 들면 직사각형) 또는 3차원(예를 들면 볼륨 셀)일 수 있다. 사용자로 하여금 공간내의 영역을 지정(또는 드로잉)하고 물체들(또는 그 일부)을 지정된 영역과 연관시키게 하는 어떤 사용자 인터페이스도 사용할 수 있다. 카메라가 룸 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 물체들의 집합과 룸을 표현하는 데이터가 생성되고 바람직하게는 시스템 메모리(104)에 저장된다. 여기서 유의할 점은 카메라가 룸 내에 위치할 때 잠재적으로 가시적인 것으로 식별되는 물체들이 룸 내에 위치하지 않을 수도 있다는 것이다. 룸은 모델 좌표계에서 정의되거나 실세계 좌표계에서 정의될 수 있다.
또, 사용자는 사용자 인터페이스를 통해 룸이 장면의 물체들과 더불어 디스플레이될 지를 제어할 수 있다. 룸을 보기 위해서는 각 룸을 정의하는 형상을 표현하는 데이터를 그래픽 시스템에 공급되는 그래픽 명령과 통합(integrate)한다. 이 경우에, 룸은 자신을 다른 물체들과 구별시키는 특성을 가질 수 있다. 예를 들면, 룸의 각각은 와이어-프레임 모델(wire-frame model)로 표현되거나, 특유의 색상 또는 사선의 음영을 가지거나 또는 룸의 벽 뒤에 장면들의 텍스춰(textures of scenes)를 포함할 수 있다.
룸의 개념을 더 잘 설명하기 위하여 도 4a에 도시한 바와 같은 예를 들자. 여기서 룸 A는 8개의 점 P1, P2, P3, P4, P5, P6, P7, P8으로 정의되는 볼륨 셀이고 점 P1, P2, P3, P4, P5, P6, P7, P8의 각각은 실세계 좌표계의 형상 좌표로 표현된다. 장면은 룸 내에서 가시적인 3개의 물체들, 예컨대 빔(401), 파이프(402), 펌프(403)를 포함한다. 카메라가 룸 A 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 물체들의 집합을 표현하는 데이터가 생성되어, 도 4b에 도시한 바와 같이 시스템 메모리(104)에 저장된다. 데이터는 바람직하게는 소정 룸 A와 연관된 엔트리를 포함하는 어레이를 포함한다. 각 엔트리는 바람직하게는 소정 엔트리와 연관된 룸 내에서 가시적인 물체를 식별하는 레퍼런스(reference)를 포함한다. 바람직하게는, 도시한 바와 같은 연결 리스트 구조를 이용하여 어레이의 엔트리들과 소정 룸 간을 연관시킨다.
도 5의 흐름도에 도시한 바와 같이, 카메라가 룸 A에 위치하는 지를 단계(503)에서 검사함으로써 사전처리 단계를 시작한다. 만일 위치한다면, 연산은 단계(505)로 넘어가서 카메라가 룸 A 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 물체들의 집합(또는 그 일부)을 표현하는 데이터가 시스템 메모리(104)로부터 판독된다. 단계(507)에서는 룸 A 내로부터 잠재적으로 가시적인 물체들(또는 그 일부) 만을 렌더링하도록 그래픽 명령이 생성되는데, 이 명령은 단계(505)에서 메모리(104)로부터 판독된 데이터에 의해 지시된다. 단계(509)에서는 단계(507)에서 생성된 그래픽 명령을 그래픽 서브시스템으로 공급하여 디스플레이하도록 물체들을 렌더링한다.
카메라가 룸 A 내에 위치하지 않으면, 사전처리 단계는 룸 A에 대해 종료한다. 사용자가 지정한 각각의 룸에 대해 상술한 동일 단계를 반복한다. 카메라가 하나 이상의 룸 내에 위치하면, 이들 룸 중의 하나와 연관된 물체들(또는 카메라가 위치하는 각 룸과 연관된 물체들)이 디스플레이를 위해 렌더링될 수 있다.
본 발명의 다른 실시예에 있어서, 상술한 룸은 하나 이상의 연관된 윈도우를 구비할 수 있다. 이 실시예에서 윈도우는 윈도우에 대한 카메라의 위치, 방향 및 가시 필드에 의존하는 실세계 좌표계의 가시/비가시 영역을 정의하는 소정 룸과 연관되는, 직사각형 같은 하나의 기하 형상이다. 카메라가 윈도우와 연관된 룸 외부에 위치하면, 룸 및 연관 윈도우(들)는 장면 내의 물체들의 가시성에 영향을 미치지 않는다. 그러나, 카메라가 룸 내에 위치하면, 윈도우가 정의하는 가시/비가시 영역은 물체들의 가시성에 영향을 미칠 수 있다. 바람직하게는 룸과 연관된 물체들 집합 외부에 위치하는 물체들의 가시성을 결정하는 데 윈도우의 위치를 이용한다. 윈도우를 표현하는 데이터는 바람직하게는 실세계 좌표계(또는 모델 좌표계)의 좌표 집합, 예컨대 윈도우의 모서리 좌표로 표현되어 시스템 메모리(104)에 저장된다. 후술하는 바와 같이 비볼록 룸(non-convex rooms)에 대해 이점이 있는 계층적 트리 데이터 구조로 룸과 윈도우 간의 연관을 표현할 수 있다.
도 6a 및 6b는 카메라가 윈도우와 연관된 룸 내에 위치하는 경우에 윈도우에 의해 정해지는 가시/비가시 영역을 도시한다. 예를 들면, 도 6a에 도시한 바와 같이 볼륨 룸은 점 P3, P4, P7, P8에 의해 정해지는 셀 쪽에 사각형의 윈도우를 가질 수 있다. 카메라의 위치, 방향 및 가시 필드가 가시 절두체를 정의한다. 도시한 바와 같이, 카메라는 룸 내에 위치하며 따라서 윈도우가 정의하는 가시/비가시 영역은 바람직하게는 룸과 연관된 물체들 집합 외부에 위치하는 물체들의 가시성에 영향을 미친다. 카메라가 윈도우와 연관된 룸 외부에 위치하였으면, 룸 및 연관 윈도우(들)는 장면 내의 물체들의 가시성에 영향을 미치지 않는다.
도 6b에 도시한 바와 같이, 윈도우 상에 가시 절두체를 투영하면 가시 절두체가 윈도우와 교차하는 사선의 음영부 A와 가시 절두체가 윈도우와 교차하지 않는 제 2부 B가 정해진다. 도 6a의 윈도우에 의해 정해지는 가시 영역은 사선의 음영부 A에 투영되는 가시 절두체의 부분이다. 마찬가지로 도 6a의 윈도우에 의해 정해지는 비가시 영역은 제 2부 B에 투영되는 가시 절두체의 부분이다. 소정 룸과 연관된 물체들 집합 외부에 위치하는 물체들은 윈도우의 가시 영역 A를 통해 보여질 수 있다.
룸 및 연관 윈도우와 관련된 사전처리 단계는 카메라가 소정 룸 내에 위치하는 지를 검사한다. 카메라가 소정 룸 내에 위치하면, 소정 룸과 연관된 물체들 집합 내에 있는 물체들(또는 그 일부)이 식별된다. 또, 카메라가 소정 룸 내에 위치하면 다음의 특성을 갖는 물체들(또는 그 일부)이 식별된다.
(1) 소정 룸과 연관된 물체들 집합 외부에 위치하는 물체들
(2) 소정 룸과 연관된 윈도우(들)에 의해 정해지는 가시 영역 내에 위치하는 물체들.
그 후, 식별된 물체들(또는 그 일부)은 그래픽 서브시스템으로 공급되어 디스플레이를 위해 렌더링된다.
도 7에 도시한 바와 같이, 단계(703)에서 룸들을 깊이 방향으로 정렬(sorting)함으로써 사전처리 단계는 바람직하게 시작된다. 그 후, 단계(705)에서는 바람직하게는 카메라 위치에 근접한 하나 이상의 룸에 의해 은폐(또는 부분적으로 은폐)된 특정 룸을 제거한다. 이것은 카메라 위치로부터 두 번째로 가장 먼 룸에서 시작되는 룸들을 루핑(looping)하고 카메라에 가장 근접한 룸이 다음과 같이 처리될 때까지 계속됨으로써 수행될 수 있다. 현재의 룸이 자신의 뒤의 룸을 선정된 기준에 따라 은폐(또는 부분적으로 은폐)되면, 은폐된 룸(또는 그 일부)을 제거할 수 있다. 그 후, 단계(705)에서 제거되지 않은 각 룸(또는 그 일부)에 대해 단계(707 내지 713)를 수행한다. 바람직하게는, 단계(705)에서 제거되지 않은 각 룸에 대해 수행되는 단계(707 내지 713)는 최후방 룸(카메라로부터 가장 먼 룸)으로부터 최전방 룸(카메라에 가장 가까운 룸)으로 순차로 수행된다.
단계(707)에서는 카메라가 룸 내에 위치하는 지를 결정한다. 단계(707)에서 카메라가 룸 내에 위치하는 것으로 결정되면, 연산은 룸과 연관된 각 윈도우에 대해 단계(709)부터 단계(717)까지를 계속한다. 단계(707)에서 카메라가 룸 외부에 위치하는 것으로 결정되면, 사전처리 단계는 단계(719)로 계속된다.
단계(709)에서는 룸과 연관된 물체들 집합 내의 모든 물체들이 잠재적으로 가시적인 물체들이 된다. 단계(711)에서는 룸과 연관된 물체들 집합 외의 모든 물체들이 은폐 물체로 표시된다.
단계(713)에서는 가시 절두체가 룸에서 윈도우와 교차되는 지를 결정한다. 이것은 시 엠 호프만(C.M. Hoffman)에 의한 "Geometric and solid modeling", Morgan Kaufmann Publishers, San Mateo, California, 1989, pp. 67-109에 개시되어 있으며 여기에 참고로 통합되어 있는 기술인 형상 모델링에서 잘 알려진 기술을 사용하여 수행될 수 있는 기하 형상 테스트이다. 단계(713)에서 가시 절두체가 룸에서 윈도우와 교차되는 것으로 결정되면 연산은 단계(715)로 계속되고, 그렇지 않으면 사전처리 단계는 단계(719)로 계속된다.
단계(715)에서는 윈도우에 의해 정해지는 가시 영역을 결정하고나서 단계(717)로 연산을 계속한다. 윈도우의 가시 영역은 윈도우와 가시 절두체의 교차부로부터 결정된다. 가시 영역은 바람직하게는 평면의 적절한 부울 조합(appropriate boolean combination of planes)으로 표현된다. 평면의 부울 조합을 유도하는 상세한 설명은 레퀴차(Requicha)에 의한 "Representation of Rigid Solids: Theory, Methods and Systems", ACM Computer Surveys, Vol.12, No. 4, 1980, pp. 437-464에 개시되어 있는데, 여기에도 참고로 인용된다. 가시 영역의 기하 형상이 복잡성을 가지는 경우에는 표현을 근사치의 덜 복잡한 기하 형상으로 대체할 수 있다.
단계(717)에서는 컬링 연산을 수행하여 윈도우에 의해 정해지는 가시 영역에 위치하는 물체들(또는 그 일부)을 식별하고 식별된 물체들(또는 그 일부)을 잠재적으로 가시적인 것으로 표시한다. 이것은 식별된 물체들(또는 그 일부)과 연관된 식별자를, 물체(또는 그 일부)가 잠재적으로 가시적임을 표시하는 사전결정된 값으로 설정함으로써 수행될 수 있다. 바람직하게는 은폐로 표시된 물체들(또는 그 일부)(즉, 룸과 연관된 물체들 집합의 외부에 위치하는 물체들)에 대해서도 단계(717)의 컬링 연산을 수행한다. 그 후, 연산은 단계(719)로 계속된다.
단계(719)에서는 모든 룸이 처리되었는 지를 결정한다. 만일 그렇다면 연산은 단계(721)로 계속되고, 그렇지 않다면 연산은 처리되지 않은 다음의 룸을 위해 단계(707)로 되돌아간다.
단계(721)에서는 그래픽 명령을 그래픽 시스템으로 전송하고 잠재적으로 가시적인 것으로 표시된 모든 물체들(또는 그 일부)을 렌더링하고나서 사전처리 단계를 종료한다. 사전처리 과정중에 생성된 그래픽 명령의 수신시 그래픽 서브시스템은 디스플레이 장치 상에 표시하기 위해 잠재적으로 가시적인 물체들(또는 그 일부)을 렌더링한다.
룸은 비볼록일 수도 있다. 예를 들면, 도 9a는 4개의 윈도우 A, B, C, D를 구비한 비볼록 룸 R의 횡단면도이다. 여기서 주의할 점은 이러한 기법에서는 하나 이상의 윈도우가 룸 외부에 위치하는 물체들의 가시성에 영향을 미칠 수 있다는 것이다. 예컨대, 시점이 벡터 X에 의해 주어지면, 룸 외부의 물체들의 가시성에 영향을 미치는 윈도우들은 도시한 바와 같이 윈도우 B, C, D이다. 바람직하게는 도 9b에 도시된 계층적 데이터 구조를 사용하여 적절한 윈도우의 효과가 평가되도록 윈도우 A, B, C, D와 룸 R의 연관을 표현하고 룸 R의 윈도우와 연관된 컬링 연산을 순서화한다. 특히, 단계(709 내지 717)가 상술한 바와 같은 각각의 룸에 대해 수행되지는 않는다. 그 대신에, 트리의 레벨 1 노드의 윈도우들을 트래버스(traverse)하여 WC1으로 표시되며 가시 절두체와 교차하는 가장 근접한 윈도우(시점의 위치와 관련하여)를 식별한다. 그 후, 이 가장 근접한 윈도우 WC1에 대해 단계(709, 715 및 717)를 수행한다. 이러한 단계들의 결과로 윈도우 WC1에 의해 정해지는 가시 영역에 위치하는 물체들(또는 그 일부)이 잠재적으로 가시적인 것으로 표시된다. 도 9a에 도시된 예에서, 가장 근접한 레벨 1의 윈도우 WC1은 윈도우 B이다. 그 후, 존재한다면 WC1 노드의 자식인 레벨 2 노드의 윈도우들을 트래버스하여 WC2로 표시되며 가시 절두체와 교차하는, 이러한 자식 노드들의 가장 근접한 윈도우(시점의 위치와 관련하여)를 식별한다. 그 후, 레벨 1 노드 처리 단계에서 잠재적으로 가시적인 것으로 표시된 물체들(또는 그 일부) 용의 윈도우 WC2에 대해 단계(715 및 717)를 수행한다. 그러나, 이러한 레벨 2 노드에 대해 윈도우 WC2에 의해 정해지는 가시 영역 내에 위치하는 물체들(또는 그 일부)은 비가시적인 것으로 표시된다. 도 9a에 도시된 예에서, 가장 근접한 레벨 2의 윈도우 WC2는 윈도우 C이다. 그 후, 존재한다면 WC2 노드의 자식인 레벨 3 노드의 윈도우들을 트래버스하여 WC3로 표시되며 가시 절두체와 교차하는, 이러한 자식 노드들의 가장 근접한 윈도우(시점의 위치와 관련하여)를 식별한다. 그 후, 레벨 2 노드 처리 단계에서 비가시적인 것으로 표시된 물체들(또는 그 일부) 용의 윈도우 WC3에 대해 단계(715 및 717)를 수행한다. 그러나, 이러한 레벨 3 노드에 대해 윈도우에 의해 정해지는 가시 영역 내에 위치하는 물체들(또는 그 일부)은 잠재적으로 가시적인 것으로 표시된다. 바람직하게는, 존재한다면 차후의 모든 짝수 레벨(4, 6, 8...)에 대해 레벨 2 노드 처리 단계를 반복한다. 그리고, 바람직하게는 존재한다면 차후의 모든 홀수 레벨(5, 7, 9...)에 대해 레벨 3 노드 처리 단계를 반복한다.
요컨대, 룸은 셀 및 셀-대-셀 가시성 정보를 결정하고 사전저장함에 있어 집중 계산 처리를 요하는 작업을 방지한다. 윈도우가 없는 룸은 기하 형상 계산이 필요없는 반면, 윈도우가 있는 룸은 윈도우의 보호 범위에만 공간적으로 집중되는 기하 형상 질의를 필요로 한다. 따라서, 룸은 빠르고, 사용자 제어가 가능하며, 계산이 효율적이고, 편리하며, 어떤 장면에 대해서도 적응성이 있다.
본 발명의 다른 실시예에 있어서, 상술한 룸 및 사전처리는 카메라가 시점 간을 이동할 때 가시성 집합과 더불어 이용되어 가시성 결정을 효율적으로 할 수 있게 한다. 도 8a 및 8b에 도시한 바와 같이, 단계(801)에서는 하나 이상의 룸(그리고 가능하다면 연관 윈도우)을 사용자가 정의하고 장면과 연관시킨다. 단계(803)에서는 제 1 시점(즉 제 1 카메라 위치, 방향 및 시야각)을 사용자 입력에 따라 설정한다. 단계(805)에서는 룸을 갖는 실시예에 대한(또는 룸 및 윈도우를 갖는 실시예에 대한) 상술한 사전처리 및 렌더링을 제 1 시점에서 수행하고, 제 1 시점에서 보여지는 장면을 구성하는 물체들의 제 1 가시성 집합을 예를 들면 시스템 메모리(104)에 저장한다.
단계(807)에서는 제 2 시점(즉 제 2 카메라 위치, 방향 및 시야각)을 사용자 입력에 따라 설정한다. 단계(809)에서는 룸에 대한(또는 룸 및 윈도우를 갖는 실시예에 대한) 상술한 사전처리 및 렌더링을 제 2 시점에서 수행하고, 제 2 시점에서 보여지는 장면을 구성하는 물체들의 제 2 가시성 집합을 예를 들면 시스템 메모리(104)에 저장한다.
단계(811)에서는 카메라가 제 1 시점(또는 제 1 시점으로부터 선정된 허용 오차 대역 내의 지점)에 위치하는 지를 결정하고, 만일 위치한다면 단계(813)에서 제 1 가시성 집합의 물체들을 사용하여 장면을 렌더링한다.
단계(815)에서는 카메라의 위치가 제 1 시점(또는 제 1 시점으로부터 선정된 허용 오차 대역 내의 한 지점)으로부터 제 2 시점(또는 제 2 시점으로부터 선정된 허용 오차 대역 내의 한 지점)으로 이동하는 지를 결정하고, 만일 이동한다면 단계(817)에서 제 1 및 제 2 가시성 집합의 합집합으로 표현되는 물체들을 사용하여 장면을 렌더링한다. 바람직하게는 카메라의 위치가 제 2 시점에 삽입되는 동안 단계(817)를 수행한다. 단계(817)의 다음에 수행되거나 또는 병렬 수행되는 단계(819)를 수행함으로써 제 2 가시성 집합의 물체들을 사용하여 제 2 시점에 따라 장면을 렌더링한다.
전형적으로는 룸과 가시성 집합의 조합의 결과로 복잡 형상의 장면에서 렌더링되는 물체들의 수를 획기적으로 줄이게 되었다. 중요한 것은 복잡 형상의 장면에서 렌더링되는 물체들의 수의 감소가 특정 영역[예로 축-정렬 구조 모델(axis-aligned architectural models)]에만 국한되는 것은 아니라는 것이다. 더구나, 카메라 삽입시의 가시성 집합의 연산에서 이동시의 영상의 충실도와 지각의 일관성을 통상적으로 유지하려고 함으로써 동일 장면의 복잡성에 있어서 더 나은 성능(보다 빠른 프레임 갱신)과 더 나은 충실도(더 나은 해상도)를 달성하게 되었다.
본 발명이 특정 실시예를 참고로 도시 및 설명되었지만, 이 분야의 기술자들은 상술한 실시예의 다른 변형이 본 발명의 정신 및 범위를 이탈하지 않으면서 이루어질 수 있다는 것을 이해할 것이다.
본 발명에 의하면, 사용자로 하여금 하나 이상의 룸을 정의하게 하는 메카니즘이 제공된다. 룸은 부피를 갖는 볼륨 셀(volumetric cell)과 같은 공간 영역이다. 카메라가 룸 내에 위치할 때 잠재적으로 가시적인(또는 잠재적으로 비가시적인) 특정 물체와 룸을 연관시키는 데이터가 저장된다. 룸은 장면을 표현하는 물체들과는 구별된다. 사전처리 단계에서는 카메라가 룸 내에 위치하는 지를 검사하고, 만일 위치한다면 저장된 데이터를 이용하여 장면의 물체들이 룸 내로부터 잠재적으로 가시적인 지(또는 잠재적으로 비가시적인 지)를 결정한다. 그 후, 룸 내로부터 잠재적으로 가시적인 것으로 결정된 물체들만이 디스플레이를 위하여 렌더링된다.
또, 하나 이상의 윈도우를 룸과 연관시키는 데이터가 저장될 수 있다. 윈도우는 윈도우에 대한 카메라의 위치, 방향 및 시야(field of view)에 의존하는 가시/비가시 영역을 정의하는 하나의 기하 형상이다. 윈도우가 정의하는 가시 영역 내에 현재 위치하는 룸과 연관된 물체들 집합의 외부에 있는 물체들은 바람직하게는 디스플레이를 위해 렌더링된 물체들에 추가된다.

Claims (16)

  1. 제 1 좌표계에 위치된 다수의 3차원 물체(three dimensional objects)로 장면(scene)을 표현하고, 하나 이상의 프리미티브(primitives)를 표현하는 그래픽 데이터로 각 물체를 표현하는 컴퓨터 그래픽 시스템에서, 상기 제 1 좌표계에서의 특성 위치, 방향 및 가시 필드(field of view)를 갖는 카메라에 따라 상기 장면을 렌더링(rendering)하기 위한 방법에 있어서,
    ① 사용자 입력에 응답하여,
    ⓐ 상기 제 1 좌표계에서 제 1 영역을 표현하는 룸(room)을 정의하는 단계―상기 룸은 상기 장면을 표현하는 상기 다수의 물체와는 다름―,
    ⓑ 상기 장면을 표현하는 상기 다수의 물체를 상기 룸 내로부터 잠재적으로 가시적인(potentially visible from within said room) 물체들의 제 1 집합과 상기 룸 내로부터 은폐되는 물체들의 제 2 집합으로 분할하는 단계,
    ⓒ 상기 물체들의 제 1 집합과 상기 물체들의 제 2 집합 중의 하나의 집합을 상기 룸과 연관시키는 데이터를 저장하는 단계와,
    ② 상기 카메라가 상기 룸 내에 위치하는 지를 결정하는 단계와,
    ③ 상기 카메라가 상기 룸 내에 위치하는 것으로 결정될 때, 상기 물체들의 제 1 집합과 상기 물체들의 제 2 집합 중의 하나의 집합을 상기 룸과 연관시키는 상기 데이터에 의해 상기 물체들의 제 1 집합을 식별하고, 상기 물체들의 제 1 집합의 일부를 표현하는 제 1 그래픽 데이터를 생성하는 단계―상기 물체들의 제 1 집합의 상기 일부는 상기 룸 내로부터 잠재적으로 가시적임―와,
    ④ 상기 물체들의 제 2 집합의 일부를 렌더링하지 않은 채 상기 제 1 그래픽 데이터를 렌더링하여 상기 물체들의 제 1 집합의 일부를 렌더링하는 단계
    를 포함하는 장면의 렌더링 방법.
  2. 제 1 항에 있어서,
    상기 룸은 상기 제 1 좌표계에 위치된 2차원의 기하 형상인 장면의 렌더링 방법.
  3. 제 2 항에 있어서,
    상기 룸은 직사각형인 장면의 렌더링 방법.
  4. 제 1 항에 있어서,
    상기 룸은 상기 제 1 좌표계에 위치된 3차원의 기하 형상인 장면의 렌더링 방법.
  5. 제 1 항에 있어서,
    상기 룸은 상기 장면과 연관된 적어도 하나의 윈도우를 구비하는 장면의 렌더링 방법.
  6. 제 5 항에 있어서,
    제 1 그래픽 데이터를 생성하는 상기 단계는
    상기 카메라의 상기 제 1 좌표계에서의 특성 위치, 방향 및 가시 필드에 의해 정해지는 가시 절두체(viewing frustrum)가 상기 윈도우와 교차하는 지를 결정하는 단계와,
    상기 가시 절두체가 상기 윈도우와 교차하는 것으로 결정될 때 상기 가시 절두체와 상기 장면의 교차부에 의해 제 1 영역을 결정하는 단계와,
    상기 제 1 그래픽 데이터를 생성하는 컬링 연산(culling operation)을 수행하는 단계―상기 제 1 그래픽 데이터는 상기 제 1 영역 내에 위치하는 상기 물체들의 제 1 집합의 일부를 표현함―를 포함하는 장면의 렌더링 방법.
  7. 제 6 항에 있어서,
    상기 제 1 영역은 평면의 부울 합성(boolean composition of planes)으로 표현되는 장면의 렌더링 방법.
  8. 제 1 항에 있어서,
    상기 물체들의 제 1 집합과 상기 물체들의 제 2 집합 중의 하나의 집합을 상기 룸과 연관시키는 상기 데이터는 상기 카메라의 위치와 연관된 가시성 집합(visibility set)으로서 저장되는 장면의 렌더링 방법.
  9. 제 1 좌표계에 위치된 다수의 3차원 물체(three dimensional objects)로 장면(scene)을 표현하고, 하나 이상의 프리미티브(primitives)를 표현하는 그래픽 데이터로 각 물체를 표현하는 컴퓨터 그래픽 시스템에서, 상기 제 1 좌표계에서의 특성 위치, 방향 및 가시 필드(field of view)를 갖는 카메라에 따라 상기 장면을 렌더링(rendering)하기 위한 장치에 있어서,
    ① 사용자 입력에 응답하여, 상기 제 1 좌표계에서 제 1 영역을 표현하는 룸(room)을 정의하고―상기 룸은 상기 장면을 표현하는 상기 다수의 물체와는 다름―, 상기 장면을 표현하는 상기 다수의 물체를 상기 룸 내로부터 잠재적으로 가시적인(potentially visible from within said room) 물체들의 제 1 집합과 상기 룸 내로부터 은폐되는 물체들의 제 2 집합으로 분할하고, 상기 물체들의 제 1 집합과 상기 물체들의 제 2 집합 중의 하나의 집합을 상기 룸과 연관시키는 데이터를 저장하는 수단과,
    ② 상기 카메라가 상기 룸 내에 위치하는 지를 결정하는 수단과,
    ③ 상기 카메라가 상기 룸 내에 위치하는 것으로 결정될 때, 상기 물체들의 제 1 집합과 상기 물체들의 제 2 집합 중의 하나의 집합을 상기 룸과 연관시키는 상기 데이터에 의해 상기 물체들의 제 1 집합을 식별하는 수단과,
    ④ 상기 물체들의 제 1 집합의 일부를 표현하는 제 1 그래픽 데이터를 생성하는 수단과,
    ⑤ 상기 물체들의 제 2 집합의 일부를 렌더링하지 않은 채 상기 제 1 그래픽 데이터를 렌더링하여 상기 물체들의 제 1 집합의 일부를 렌더링하는 수단
    을 포함하는 장면의 렌더링 장치.
  10. 제 9 항에 있어서,
    상기 룸은 상기 제 1 좌표계에 위치된 2차원의 기하 형상인 장면의 렌더링 장치.
  11. 제 10 항에 있어서,
    상기 룸은 직사각형인 장면의 렌더링 장치.
  12. 제 9 항에 있어서,
    상기 룸은 상기 제 1 좌표계에 위치된 3차원의 기하 형상인 장면의 렌더링 장치.
  13. 제 9 항에 있어서,
    상기 룸은 상기 장면과 연관된 적어도 하나의 윈도우를 구비하는 장면의 렌더링 장치.
  14. 제 13 항에 있어서,
    제 1 그래픽 데이터를 생성하는 상기 수단은
    상기 카메라의 상기 제 1 좌표계에서의 특성 위치, 방향 및 가시 필드에 의해 정해지는 가시 절두체(viewing frustrum)가 상기 윈도우와 교차하는 지를 결정하는 수단과,
    상기 가시 절두체가 상기 윈도우와 교차하는 것으로 결정될 때 상기 가시 절두체와 상기 장면의 교차부에 의해 제 1 영역을 결정하는 수단과,
    상기 제 1 그래픽 데이터를 생성하는 컬링 연산(culling operation)을 수행하는 수단―상기 제 1 그래픽 데이터는 상기 제 1 영역 내에 위치하는 상기 물체들의 제 1 집합의 일부를 표현함―을 포함하는 장면의 렌더링 장치.
  15. 제 14 항에 있어서,
    상기 제 1 영역은 평면의 부울 합성(boolean composition of planes)으로 표현되는 장면의 렌더링 장치.
  16. 제 9 항에 있어서,
    상기 물체들의 제 1 집합과 상기 물체들의 제 2 집합 중의 하나의 집합을 상기 룸과 연관시키는 상기 데이터는 상기 카메라의 위치와 연관된 가시성 집합(visibility set)으로서 저장되는 장면의 렌더링 장치.
KR1019970034854A 1996-11-19 1997-07-25 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링 KR100256472B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/752,139 1996-11-19
US08/752,139 US5926183A (en) 1996-11-19 1996-11-19 Efficient rendering utilizing user defined rooms and windows

Publications (2)

Publication Number Publication Date
KR19980041796A KR19980041796A (ko) 1998-08-17
KR100256472B1 true KR100256472B1 (ko) 2000-05-15

Family

ID=25025058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970034854A KR100256472B1 (ko) 1996-11-19 1997-07-25 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링

Country Status (5)

Country Link
US (1) US5926183A (ko)
JP (1) JP4047421B2 (ko)
KR (1) KR100256472B1 (ko)
CN (1) CN1108591C (ko)
TW (1) TW338142B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6831636B1 (en) * 1999-06-29 2004-12-14 International Business Machines Corporation System and process for level of detail selection based on approximate visibility estimation
US6330003B1 (en) * 1999-07-30 2001-12-11 Microsoft Corporation Transformable graphical regions
EP1363246A4 (en) * 2001-02-23 2006-11-08 Fujitsu Ltd "DISPLAY CONTROL DEVICE, INFORMATION EQUIPMENT EQUIPPED WITH THE DISPLAY CONTROL DEVICE AND VIEWPOINT POSITION CONTROL DEVICE"
US20050195186A1 (en) * 2004-03-02 2005-09-08 Ati Technologies Inc. Method and apparatus for object based visibility culling
US9336624B2 (en) * 2008-10-07 2016-05-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for rendering 3D distance fields
KR101068324B1 (ko) * 2009-10-28 2011-09-28 중앙대학교 산학협력단 구좌표계 렌더링 방법 및 시스템
US8791945B2 (en) * 2011-05-18 2014-07-29 Intel Corporation Rendering tessellated geometry with motion and defocus blur
CN110136082B (zh) 2019-05-10 2021-06-01 腾讯科技(深圳)有限公司 遮挡剔除方法、装置及计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027292A (en) * 1989-04-19 1991-06-25 International Business Machines Corporation Multiple depth buffers for graphics and solid modelling
US5268995A (en) * 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5359704A (en) * 1991-10-30 1994-10-25 International Business Machines Corporation Method for selecting silhouette and visible edges in wire frame images in a computer graphics display system
US5428716A (en) * 1991-12-26 1995-06-27 International Business Machines Corporation Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers

Also Published As

Publication number Publication date
US5926183A (en) 1999-07-20
JP4047421B2 (ja) 2008-02-13
TW338142B (en) 1998-08-11
KR19980041796A (ko) 1998-08-17
JPH10162161A (ja) 1998-06-19
CN1108591C (zh) 2003-05-14
CN1182925A (zh) 1998-05-27

Similar Documents

Publication Publication Date Title
US5579455A (en) Rendering of 3D scenes on a display using hierarchical z-buffer visibility
US5377313A (en) Computer graphics display method and system with shadow generation
US5570460A (en) System and method for volume rendering of finite element models
US5579454A (en) Three dimensional graphics processing with pre-sorting of surface portions
US6456285B2 (en) Occlusion culling for complex transparent scenes in computer generated graphics
Naylor Interactive solid geometry via partitioning trees
US7215344B2 (en) Triangle clipping for 3D graphics
US5926182A (en) Efficient rendering utilizing user defined shields and windows
EP0854441A2 (en) Method and apparatus for rapidly rendering computer generated images of complex structures
JPH0757117A (ja) テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム
WO2000030040A9 (en) Advanced deferred shading graphics pipeline processor
JP2001283248A (ja) グラフィックオブジェクトの表面点を投影する方法
JP2001266172A (ja) グラフィックオブジェクトの表面点の陰属性をフィルタリングする方法
US7158133B2 (en) System and method for shadow rendering
US5745667A (en) 3d graphics apparatus using texture images with displacement information
US6542154B1 (en) Architectural extensions to 3D texturing units for accelerated volume rendering
KR100256472B1 (ko) 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링
US7834879B2 (en) Drawing apparatus for displaying image data about a plurality of objects including semitransparent object and opaque object on computer display screen
US6664957B1 (en) Apparatus and method for three-dimensional graphics drawing through occlusion culling
Wimmer et al. Fast walkthroughs with image caches and ray casting
US5649078A (en) Efficient two-pass rasterization scheme utilizing visibility information
Pajarola et al. Fast depth-image meshing and warping
JP2952585B1 (ja) 画像生成方法
JP3733493B2 (ja) 画像合成回路
KR0153664B1 (ko) 3차원 도형 생성기

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee