KR100637612B1 - 하드웨어 가속 렌더링 구조로 3 차원 데이터를 변환하기 위한 필터 - Google Patents

하드웨어 가속 렌더링 구조로 3 차원 데이터를 변환하기 위한 필터 Download PDF

Info

Publication number
KR100637612B1
KR100637612B1 KR1020007001924A KR20007001924A KR100637612B1 KR 100637612 B1 KR100637612 B1 KR 100637612B1 KR 1020007001924 A KR1020007001924 A KR 1020007001924A KR 20007001924 A KR20007001924 A KR 20007001924A KR 100637612 B1 KR100637612 B1 KR 100637612B1
Authority
KR
South Korea
Prior art keywords
dimensional
data
filter
graphics
viewpoint
Prior art date
Application number
KR1020007001924A
Other languages
English (en)
Other versions
KR20010023290A (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 claimed from PCT/IB1999/001104 external-priority patent/WO2000000934A2/en
Publication of KR20010023290A publication Critical patent/KR20010023290A/ko
Application granted granted Critical
Publication of KR100637612B1 publication Critical patent/KR100637612B1/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/005General purpose rendering architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/286Image signal generators having separate monoscopic and stereoscopic modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

그래픽스 오브젝트에 대한 다수의 시야를 생성하는 방법 및 장치는 데이터의 3 차원 컨텐트를 변환하기 위한 필터를 사용한다. 이 필터는 3 차원 렌더링 엔진으로부터 함수 호출들을 수신하고, 상기 그래픽스 오브젝트의 3 차원 컨텐트에 기초하여 다시점 데이터를 발생한다. 그 다음에 디스플레이 디바이스에 디스플레이 하기 위해 이 필터는 이 시점 데이터를 드라이버로 전송한다. 일실시예에서, 디스플레이 디바이스는 좌측 눈의 시점 데이터 및 우측 눈의 시점 데이터를 보여주기 위한 입체 디스플레이이다.
3 차원 그래픽스, 가속 드라이버, 렌드링 엔진, 3 차원 데이터 변환 필터

Description

하드웨어 가속 렌더링 구조로 3 차원 데이터를 변환하기 위한 필터{Filter for transforming 3D data in a hardware accelerated rendering architecture}
본 출원은 공동 양도되고 동시에 계류 중인 출원들인, 1997년 11월 18일자로 출원되고 제목이 "추출 정보를 위한 드라이버와 그래픽스 엔진 사이의 필터(FILTER BETWEEN GRAPHICS ENGINE AND DRIVER FOR EXTRACTING INFORMATION)"인 미국 특허 출원 제 08/972,511호와, 1997년 12월 31일자로 출원되고 제목이 "디스플레이 모니터상의 오브젝트의 밝기를 동적으로 제어하는 장치 및 방법(APPARATUS AND METHOD FOR DYNAMICALLY CONTROLLING BRIGHTNESS OF OBJECTS ON A DISPLAY MONITOR)"인 미국 특허 출원 제 09/002,139호와 관련되며, 이들은 참조되어 본원에 포함된다.
본 발명은 그래픽스를 생성하는 컴퓨터 시스템들에 관한 것으로서, 더욱 상세하게는 3 차원(3D) 그래픽스 생성에 관한 것이다.
보다 많은 그래픽스를 사용하는 소프트웨어 애플리케이션 프로그램들이 보다 일반화되고 있다. 예를 들면, 비디오 게임들은 통상의 개인용 컴퓨터(PC) 모니터 상에 디스플레이하기 위해 종종 다량의 3 차원 그래픽스를 사용한다. 이들 그래픽스 어플리케이션들은 이 컴퓨터 시스템이 그래픽스 컨텐트를 지원하는 3 차원 렌더링 소프트웨어를 포함하는 것을 요구한다. 도 1은 통상적인 그래픽스 애플리케이션 프로그램들을 실행하여 그 그래픽스를 디스플레이하는 종래의 컴퓨터 시스템을 도시한 블록도이다.
도 1을 참조하면, 컴퓨터 시스템(10)은 예를 들어, 마이크로소프트사의 윈도우즈 9x 또는 윈도우즈 NT 오퍼레이팅 시스템을 사용하는 펜티엄 사양의 PC로서 구현될 수 있다. 컴퓨터 시스템(10)은 소프트웨어부(12)와 하드웨어 디스플레이부(14)를 포함한다. 소프트웨어부(12)는 애플리케이션 프로그램(16), 오퍼레이팅 시스템 3 차원 렌더링 엔진(18), 및 제 3 자의 2 차원(2D) 디스플레이 드라이버(20)를 포함한다. 애플리케이션(16)은 OS 서비스들을 수행하기 위하여 컴퓨터 시스템(10)의 오퍼레이팅 시스템(OS)에 대한 함수 호출들을 생성한다. 상세하게는, 애플리케이션(16)은 오퍼레이팅 시스템의 정의된 애플리케이션 프로그래머 인터페이스(API : applications programmer interface)를 통하여, 그래픽스 모듈이라고도 하는 3 차원 렌더링 엔진(18)에 대한 함수 호출을 발생한다.
3 차원 렌더링 엔진(18)은, 화면의 상태를 추적하고, 형상(geometry) 및 무늬(texture)를 내부적인 표현들로 저장하고, 상기 애플리케이션 호출 등에 따라서 렌더링 엔진(18)을 설정하는(customizing) 등과 같은 그래픽스와 연관된 동작들을 수행한다. 3 차원 렌더링 엔진(18)은 3 차원 오브젝트들을 조종하며, 렌더링된 프레임을 위한 하나 이상의 최종 결과 2 차원 버퍼들, 및 스텐슬 버퍼들(stencil buffers)과 Z 버퍼들과 같은 임시 버퍼들을 사용하여 이들을 처리한다. 3 차원 렌더링을 수행한 후에, 애플리케이션(16)은 상기 화면을 2 차원 디스플레이 드라이버(20)를 통하여 결과로서 생긴 프레임 버퍼로 렌더링하도록 3 차원 렌더링 엔진(18)에 명령한다. 3 차원 렌더링 엔진은 오퍼레이팅 시스템의 API를 통하여 2 차원 디스플레이 드라이버(20)와 통신한다. 3 차원 렌더링 엔진(18)은 3 차원 화면을, 통상적으로 2 차원 디스플레이 어댑터(22)에 위치한 프레임 버퍼내의 최종 2 차원 이미지로 렌더링한다. 그 다음에 2 차원 디스플레이 어댑터는 프레임 버퍼 내의 비디오 데이터를 아날로그 비디오(RGB) 신호들로 변환하고, 디스플레이 모니터(24)는 상기 최종 이미지를 디스플레이한다.
도 1에 도시된 소프트웨어 렌더링 구조의 단점은 3 차원 렌더링 엔진(18)으로부터의 출력이 단지 2 차원 디스플레이 어댑터(22)의 프레임 버퍼 내의 2 차원(2D) 이미지라는 점이다. 2 차원 이미지는 종래의 PC 모니터와 같은 모니터(24)에 출력된다. 따라서 소프트웨어 렌더링 구조는 입체적인(stereoscopic) 3 차원 컨텐트를 발생할 수 없다.
또한, 하드웨어 렌더링 구조들을 사용하는 다른 시스템들에서, 3 차원 가속 장치들은 하드웨어에서 일부 또는 모든 렌더링 요청들을 실행하는데 사용될 수 있다. 그러나, 3 차원 렌더링의 결과 출력은 여전히 3 차원 가속기의 프레임 버퍼 내의 2 차원 이미지일 뿐이다. 따라서, 하드웨어 렌더링 구조들을 사용하는 시스템들에서, 상기 시스템은 입체적인 3 차원 컨텐트를 발생할 수 없다.
그래픽스 오브젝트들, 예를 들면 헤드 장착형(head-mounted) 디스플레이들에 대한 입체적인 3 차원 이미지들의 발생을 가능하게 하는 컴퓨터 시스템의 구성이 필요하다. 또한, 입체적인 3 차원 이미지들이 발생하여 종래의 하드웨어 드라이버들 및 3 차원 가속 하드웨어를 사용하여 출력되도록 하는 구성이 필요하다.
이들 및 다른 요구사항들은 본 발명에 의해 충족된다. 본 발명에서는 입체 필터가, 오퍼레이팅 시스템 그래픽스 모듈로부터 그래픽스 오브젝트에 대한 3 차원 렌더링 동작들을 요구하는 디스플레이 드라이버로의 호출을 가로챈다(intercept). 상기 필터는 그 다음에 좌안의 시점과 우안의 시점에 대한 입체 이미지 데이터를 생성하고, 이 데이터는 프레임 버퍼 내에 저장된다. 그 다음에 상기 디스플레이 드라이버로부터의 출력은 아날로그 비디오 신호들로 변환되어, 입체 디스플레이 디바이스에 출력될 수 있다.
본 발명의 한 특징에 따르면, 그래픽스 오브젝트에 대한 3 차원 데이터를 생성하기 위한 방법이 제공된다. 상기 방법은 3 차원 렌더링 모듈에서, 그래픽스 오브젝트에 대한 3 차원 렌더링 동작을 위한 함수 호출 요청을 생성하는 단계를 포함한다. 상기 방법은 또한 필터에 의해 상기 함수 호출 요청을 수신하고, 3 차원 그래픽스 오브젝트에 대한 다시점 데이터를 발생하는 단계를 포함한다.
본 발명의 다른 특징은 프로세서에 의해 실행되는 저장된 명령들의 시퀀스들을 포함하는 컴퓨터 판독 가능한 매체를 제공한다. 상기 명령들은 프로세서가 그래픽스 오브젝트에 대한 3 차원 동작을 요청하는, 3 차원 렌더링 모듈에 의해 발생된 함수 호출을 수신하도록 한다. 상기 명령들은 또한 상기 프로세서가 그래픽스 오브젝트에 대한 다시점 데이터를 발생하도록 한다.
당업자들은 다음의 상세한 설명으로부터 본 발명의 다른 목적들 및 이점들을 쉽게 알 수 있을 것이다. 도시되고 기술된 실시예들은 본 발명을 수행하기 위해 숙고된 최고의 모드의 실례를 제공한다. 본 발명은 본 발명의 범주를 벗어나지 않고 다양하게 변형될 수 있다. 따라서, 도면에 나타낸 사항들은 예시일 뿐 본 발명을 한정하는 것은 아니다.
도 1은 소프트웨어 렌더링을 사용한 종래의 컴퓨터 디스플레이 시스템의 블록도,
도 2는 본 발명을 구현할 수 있는 컴퓨터 시스템의 블록도,
도 3은 본 발명의 일실시예에 따른 컴퓨터 시스템의 동작을 도시한 흐름도,
도 4a 내지 4c는 본 발명에 사용될 수 있는 다양한 수평 입체 모드들을 도시한 도면,
도 5a 내지 5c는 본 발명에 사용될 수 있는 다양한 수직 입체 모드들을 도시한 도면,
도 6a 및 6b는 시점(viewpoint) 렌더링을 도시한 도면,
도 7a 내지 7c는 본 발명의 일실시예에 따른 시점 렌더링을 도시한 도면,
도 8은 뷰어(viewer) 모델에 사용된 가상 초점의 시점(eye point)을 도시한 도면,
도 9는 도 8에서 오브젝트에 대한 향상된 투영을 도시한 도면,
도 10은 도 9의 투영에 대한 좌측 시야(view)의 좌표계를 도시한 도면, 그리고,
도 11은 본 발명을 구현할 수 있는 컴퓨터 시스템의 단순화된 블록도이다.
첨부 도면들을 참조하며, 여기서 동일 참조 번호를 갖는 소자들은 전반에 걸쳐 동일 소자들을 표시한다.
본 발명은 입체 필터를 사용하여 입체적인 3 차원 그래픽스를 생성하는 장치 및 방법을 제공한다. 입체 필터는 컴퓨터 시스템의 오퍼레이팅 시스템에 있는 소프트웨어 모듈로서 3 차원 하드웨어 가속 드라이버에 대한 함수 호출들을 가로채도록 구성되어 있다. 입체 필터는 그래픽스 오브젝트에 대한 좌안과 우안의 시점 데이터를 생성하여 프레임 버퍼 내에 저장하기 위해 데이터를 디스플레이 드라이버에 출력한다.
도 2에 도시된 본 발명의 일실시예에 따르면, 컴퓨터 시스템(100)은 후술하는 애플리케이션(16) 실행을 지원하는 오퍼레이팅 시스템을 사용하는 소프트웨어(40), 및 하드웨어부(50)를 포함한다. 상기 오퍼레이팅 시스템은 도 1과 관련하여 상세하게 상술한, 소프트웨어 애플리케이션(16)을 위한 그래픽스를 생성하기 위한 3 차원 렌더링 엔진(18)을 포함한다. 특히, 애플리케이션(16)은 상기 오퍼레이팅 시스템의 정의된 애플리케이션 프로그래머 인터페이스(API)를 통하여, 그래픽스 모듈로서 언급된 3 차원 그래픽스 렌더링 엔진(18)에 대한 함수 호출들을 생성한다.
3 차원 렌더링 엔진(18)은 그래픽스와 연관된 동작을 수행하고, 하드웨어 가속 렌더링 모드로 구성된다. 즉, 3 차원 렌더링 엔진(18)은 디스플레이 드라이버에 대한 함수 호출들을 생성하도록 구성된다. 특히, 3 차원 렌더링 엔진(18)은, 그래픽스 오브젝트에 대한 그래픽스와 연관된 동작의 수행을 요구하는 3 차원 가속 드라이버(28)를 위한 함수 호출들을, API를 통해 전송한다.
입체 필터(26)는 소프트웨어 구성요소이며, 종래의 디스플레이 드라이버를 로딩하는 것과 유사한 방식으로 컴퓨터 시스템(100)의 OS에 의해 로딩된다. 입체 필터(26)는 3 차원 렌더링 엔진(18)에 의해 호출된 그래픽스 동작들을 수행하도록 구성된 종래의 제 3 자의 디스플레이 드라이버로서 3 차원 렌더링 엔진(18)에 나타난다. 이와 같이, 입체 필터(26)는 3 차원 렌더링 엔진(18)에 투명하다(transparent).
하드웨어 가속 드라이버(28)는 3 차원 렌더링 엔진(18)을 확장하는 별개의 코드 모듈로서 구현된다. 따라서, OS 3 차원 렌더링 엔진(18)의 환경에서 실행된다. 3 차원 가속 드라이버(28)는 또한 OS 3 차원 렌더링 엔진(18)에 의한 루틴 호출로 불리는 엔트리 포인트들의 배열을 통하여 인터페이스를 나타낸다. 입체 필터(26)는 상기 인터페이스를 사용하며 3 차원 가속 드라이버(28)와 동일한 엔트리 포인트들을 사용한다.
예를 들면, 마이크로소프트사의 윈도우즈 OS에서, 3 차원 렌더링 엔진(18) 및 3 차원 하드웨어 가속 드라이버(28)는 동적 링크 라이브러리(DLL : dynamic link library)로서 구현된다. 이와 같이 각각의 실행 가능한 코드 모듈은 외부 코드가 링크하여 호출할 수 있는 익스포트 함수들(exported functions)의 엔트리 포인트들을 갖는다. 입체 필터(26)에서 동일한 요구된 엔트리 포인트들을 구현함으로서, 3 차원 렌더링 엔진(18)은 입체 필터(26)를 종래의 OEM 드라이버처럼 사용한다.
따라서, 입체 필터(26)는 3 차원 하드웨어 가속 드라이버(28)를 위한 함수 호출들을 가로채어, 예를 들어 초기화 작업, 렌더링 작업, 및 모드 변경 작업과 같은 다양한 그래픽스 동작을 수행한다. 3 차원 렌더링 엔진이 3 차원 하드웨어 가속 드라이버(28)에 대한 함수 호출들을 발생하도록 구성된다 하더라도, 실제 3 차원 가속기(30)는 요구되지 않는다. 실제 3 차원 렌더링은, 소프트웨어로 함수 호출들을 에뮬레이트하기 위하여 3 차원 렌더링 엔진(18)을 다시 호출함으로써, 소프트웨어로 행해질 수 있다. 그러나, 예증을 위하여, 도 2에 도시된 실시예는 3 차원 가속기(30)를 포함한다.
도 2를 참조하면, 3 차원 하드웨어 가속 드라이버(28)는 3 차원 가속기(30)를 제어한다. 3 차원 가속 드라이버(28)는 3 차원 데이터를 비디오 데이터 및 제어 데이터 형식으로 3 차원 가속기에 출력한다. 3 차원 가속기는 통상적으로 상기 비디오 데이터를 저장하는 프레임 버퍼(31)와 비디오 데이터를 아날로그 RGB 신호들로 변환하는 디지털-아날로그 변환기(DAC)(32)를 포함한다.
입체 필터(26) 소프트웨어 동작은 다음과 같은 3개의 주요한 엔트리 포인트들의 세트들을 사용한다:
1) 로딩 엔트리 포인트들 - 이들은 컴퓨터 시스템(100)에 의한 입체 필터(26)의 로딩, 및 3 차원 렌더링 엔진(18)으로부터의 요청들을 정확하게 필터링하도록 하는 다른 초기화 작업들을 포함한다.
2) 모드 설정 엔트리 포인트들 - 이들은 특정한 입체 모드가 설정될 수 있도록 한다. 이것은 2 차원 프레임 버퍼(31)의 관리를 하나의 시점으로부터 입체적 디스플레이를 위한 좌우 시점들로 변경한다.
3) 실행 시간 엔트리 포인트들 - 이들은 단일 시점 3 차원 오브젝트 형상을 정의된 입체 모드에서의 좌우 시점으로 필수적으로 변환하는 것을 포함한다.
도 3은 도 2의 컴퓨터 시스템(100)의 동작을 도시한 흐름도이다. 단계 60에서, 입체 필터(26)는 종래의 하드웨어 가속 드라이버를 로딩하는 방식과 유사하게 컴퓨터 시스템(100)으로 로딩된다. 예를 들면, 입체 필터(26) 설치 절차는 입체 필터(26)를 상기 시스템을 위한 3 차원 가속 드라이버(28)로서 시스템 데이터베이스에 등록한다. 사용되는 특정 3 차원 렌더링 엔진에 따라서 다른 여러 가지 초기화가 필요할 수도 있다. 예를 들면, 상이한 3 차원 렌더링 엔진(18)은 상기 엔진이 임의의 렌더링 작업을 위해 항상 드라이버(본 경우에는 입체 필터(26))를 호출하도록 하는 상이한 메커니즘들을 갖는다.
입체 필터(26)는 3 차원 렌더링 엔진이 이미지를 직접 2 차원 프레임 버퍼(31)로 주지 않도록 동작한다. 입체 필터(26)가 이것을 달성하는 방법은 다양하다. 예를 들면, 입체 필터(26)는 자신을 디바이스 관리 표면 드라이버(device managed surface driver) 또는 3 차원 렌더링 엔진(18)에 대한 완전히 가속된 드라이버로서 선언할 수 있다. 그러면, 입체 필터(26)는 3 차원 렌더링 엔진(18)으로부터의 형상 함수 호출들을 처리한다.
형상 호출들은 3 차원 오브젝트들을 프레임 버퍼(31) 내의 2 차원 픽셀들로 맵핑한다. 그 다음에 후술하는 바와 같이, 입체 필터(26)는 2개의 시야들을 생성하기 위해 3차원 오브젝트들을 뷰어 모델로 전달하고, 이로부터 재구성된 2 차원 버퍼들로 전달한다.
입체 필터(26)를 로딩한 후에, 단계 62에서 입체 필터(26)는 프레임 버퍼(31) 내의 특정 입체 모드를 정의한다. 주어진 입체 모드에 대하여, 좌안의 시점 및 우안의 시점 프레임들은 프레임 버퍼(31)로 패킹된다(packed). 상기 특정 모드는 라인 단위의 수평 입체 모드일 수 있다. 예를 들면, 도 4a 내지 4c를 참조하면, 도 4a는 종래의 프레임 버퍼 내에 저장된 그래픽스 오브젝트를 나타낸다. 도 4b는 프레임 버퍼가 종래의 프레임 버퍼의 길이의 두 배인 모드를 나타낸다. 이 경우, 물리적 프레임 버퍼(31)는 2개의 프레임들로 분할되고 물리적 프레임 버퍼(31)의 각 라인은 도 4b에 도시되어 있는 바와 같이 좌측 라인과 우측 라인을 포함하도록 분할된다. 한편, 프레임 버퍼의 크기가 프레임 버퍼의 실제 길이의 두 배가 될 수 없다면, 도 4c에 도시되어 있는 바와 같이 좌우 프레임들은 원래의 프레임 버퍼의 라인 길이를 유지하도록 X 방향으로 압축될 수 있다.
또한, 입체 모드는 프레임 단위의 수직 입체 모드일 수 있다. 예를 들면, 도 5a 내지 5c를 참조하면, 도 5a는 종래의 프레임 버퍼 내에 저장된 그래픽스 오브젝트를 나타낸다. 도 5b는 프레임 버퍼가 종래의 프레임 버퍼의 높이의 두 배인 모드를 나타낸다. 이 경우, 상기 물리적 프레임 버퍼(31)는 두 영역으로 분할된다. 도 5b에 도시되어 있는 바와 같이, 상반은 좌측 시야의 프레임(또는 우측 시야의 프레임)을 유지하고 하반은 우측 시야의 프레임(또는 좌측 시야의 프레임)을 유지한다. 한편, 프레임 버퍼(31)의 크기가 프레임 버퍼의 실제 높이의 두 배가 될 수 없으면, 도 5c에 도시되어 있는 바와 같이 원래의 프레임 버퍼 세로 크기를 유지하기 위해 좌우 프레임은 Y 방향으로 압축될 수 있다.
좌우 시야를 유지하는 다른 공지된 입체 모드들은, 사용되는 특정 입체 디스플레이(34)에 따라서 입체 필터(26)에서 또한 구현될 수 있다. 일반적으로 3 차원 가속기(30) 상에 위치하는 디지털-아날로그 변환기(DAC)(32)는, 프레임 버퍼(31)를 스캔하여 좌측 프레임과 후속하는 우측 프레임으로 구성된 아날로그 비디오 신호를 생성한다. 입체 디스플레이(34)는 아날로그 신호를 디코딩하여 그 신호로부터 각각의 시야를 추출한다.
프레임 버퍼(31)는 입체 필터(26)에 의해 변경될 수 있으므로, 더 많은 메모리 또는 상이한 메모리 할당이 필요할 수도 있다. 그러나, 입체 필터(26)는 요구조건들을 만족시키는 용량들을 갖는 모드를 정의하도록 구성된다. 단계 64에서, 입체 필터(26)의 실행 시간 단계가 실행된다. 즉, 입체 필터(26)는 3 차원 렌더링 엔진(18)으로부터의 형상 요청을 가로챈다. 전술한 실시예에서, 입체 필터(26)는 프레임 버퍼(31)에 대한 임의의 직접 기록들을 제거하기 위해 자신을 디바이스 관리 드라이버로 선언할 수 있고, 3 차원 렌더링 엔진(18)은 프레임 버퍼(31)로 직접 에뮬레이트하려 하지않고 상기 입체 필터(26)를 우회(bypass)할 것이다.
입체 필터(26)는 3 차원 렌더링 엔진(18)으로부터 렌더링 요청들을 수신한다. 3 차원 렌더링 엔진(18)은 통상적으로 3 차원 오브젝트들이 인수들(arguments)로 표현된 렌더링 요청들을 전달한다. 3 차원 데이터가 인코딩되는 방법에 대한 상세한 것들은 상이한 엔진 구조들 사이에 따라 변한다. 그러나, 각각의 3 차원 엔진은 원자적 3 차원의 형상 용어를 정의하여야 하는데, 왜냐하면 이들은 3 차원 화면에 대한 기초적인 블록(building block)이기 때문이다. 본 기술분야에서 공지되어 있는 일반적인 3 차원 오브젝트의 표현들은 다각형들, 통상적으로 3 차원 오브젝트를 형성하는 오브젝트 표면을 연결하는 삼각형을 나타내는 공간상의 점들을 사용한다.
그 다음에 단계 66에서, 입체 필터(26)는 각 눈에 대한 형상 값들을 생성함으로써, 3 차원 오브젝트의 형상 요청들을 수정한다. 화면 내의 모든 3 차원 오브젝트는 공간상의 다른 점으로부터의 투영을 반영하기 위해, 입체 필터(26) 내의 뷰어 모델 알고리즘에 의해 수정된다.
본 발명은 최종 렌더링 시점들과 관련한 3 차원 오브젝트의 뷰어 모델 표현과 관련하여 설명될 것이다. 많은 가능한 뷰어 모델들이 입체 필터(26)에서 구현될 수 있다. 각각의 특정한 뷰어 모델은 3 차원의 깊이 인식(3D depth perception)에 대하여 상이한 면들을 강조하고 상이한 머리 및 눈 구성들을 설계한다. 본 발명을 애매하지 않게 하기 위해 후술하는 바와 같이, 입체 필터(26)에 필요한 입력들과 그 출력들만을 설명한다. 그러나, 본 명세서에 기술된 안내 및 목적들을 고려하여, 뷰어 모델 처리의 특별히 구체적인 것들은, 다른 시스템 제약들뿐만 아니라 사용되는 특정 3 차원 렌더링 엔진(18)을 기초로 쉽게 구현될 수 있다.
뷰어 모델 처리에서, 모든 3 차원 오브젝트는 두 경우들 또는 두 시점들, 즉, 좌측 시점과 우측 시점으로 분리된다. 3 차원 형상의 주어진 타겟의 투사면은, 각 눈에 대하여 하나씩 2개의 새로운 투사면으로 대체된다. 원래의 투사면에 대한 새로운 면의 3 차원 위치에 대한 정확한 관계가 뷰어 모델이다. 상기 뷰어 모델의 특별히 구체적인 것은 OS 3 차원 렌더링 엔진(18) 형상 표현에 따라 달라지며, 3 차원 렌더링 엔진(18)은 타겟 2 차원 렌더링 면을 지정한다.
예를 들면, 3 차원 화면을 공간상의 점의 투영으로 렌더링하는 시스템에서, 입체 필터(26) 뷰어 모델 표현은 3 차원 렌더링 엔진(18)으로부터의 렌더링 요청을 3 차원 가속 드라이버(30)에 대해서 2개의 상이한 렌더링 요청들로 대체한다.
도 6a 및 6b는 입체 필터없이 통상의 시점 렌더링을 사용하는 3 차원 렌더링을 도시하고 있고, 도 7a 내지 7c는 입체 필터(26)를 사용하는 시점 렌더링을 도시하고 있다. 도 7c에 도시되어 있는 바와 같이, 입체 필터(26)는 좌측 시점에 대하여 상기 요구된 시점을 좌측으로 변위시키고(displace), 그 결과를 프레임 버퍼(31) 내의 좌측 프레임에 할당한다. 두번째 요청은 유사한 방식으로 우측 시점을 처리한다. 입체 필터(26) 뷰어 모델에서, 시점 렌더링 요청들만이 각 눈에 대하여 하나씩 2개의 시점들을 생성하고, 결과로서 생긴 프레임들은 프레임 버퍼(31) 내에 저장된다.
한편, 고정된 점의 렌더링 엔진에서, 화면은 항상 XY 평면으로 렌더링되고, 형상은 XYZ 좌표 공간 내에 있으며, 화면 내의 모든 점은 재배치되어 좌측 시점을 나타내고 다시 우측 시점에 대해서도 나타낸다. 정확한 변위는 공간상의 눈의 위치에 따라 달라진다.
3 차원 오브젝트들에 대한 물리적 시점들을 발생하는데 사용될 수 있는 본 기술분야에 공지되어 있는 다른 많은 모델들이 있다. 그러나, 설명을 위하여, 다음의 뷰어 모델 변환은 입체 필터(26)에 의한 처리 단계들을 나타내는 예이다. 상기 예에서, 모델은 3 차원 렌더링 엔진이 XYZ로 표현된 3 차원 오브젝트들을 XY 평면으로 렌더링하는 것을 요청하는 경우에 대한 것이다.
도 8은 가상 초점의 시점(eye point) 모델 표현을 도시한 것이다. 도 8에 도시되어 있는 바와 같이, 타겟 2 차원 평면의 폭과 높이가 W ×H일 때, 공간 내의 시점은 투영면으로부터 h 떨어지고 타겟 XY 평면의 중앙에 설정된다. 이러한 점 h는 눈의 초점을 에뮬레이트한다. 각각의 좌우 시야를 생성하기 위해, 시야의 초점은 좌우로 재배치되고 입체 필터(26)는 재배치된 점에 대하여 3 차원 오브젝트의 XYZ 위치를 재계산한다.
초점은 d 만큼 X축 방향으로 이동한다. 좌안 좌표는 (W/2-d, H/2, h)가 되고 및 우안에 대해서는 (W/2+d, H/2, h)가 된다. 그러면, 입체 필터(26)는 도 9에 도시되어 있는 바와 같이, 새로운 초점을 사용하여, 원래의 Y축을 XYZ 좌표 시스템과 공유하고, X'축상의 중심위치 W/2 및 Y축상의 H/2를 복원하기 위해 새로운 초점쪽으로 각 α 만큼 오프셋된 새로운 좌표 시스템 X'YZ'을 생성한다. 새로운 시야에 대하여, 변환된 3 차원 오브젝트는 새로운 좌표 시스템 X'YZ'으로 표현되고 시야 2 차원 버퍼로 렌더링된다.
상기 모델은 뷰어의 깊이 인식을 나타내는 h 및 d 파라미터들로 정의되었지만, 입체 필터(26)는 경사각 α에만 기초하여 모델을 파라미터화할 수 있다.
도 10은 도 9로부터의 좌측 시야 투영면의 상면도(top view)를 도시한 것이다. 새로운 X'YZ' 좌표 시스템은 원래의 좌표 시스템과 Y축을 공유하기 때문에, 3 차원 점의 Y 값들은 동일하다. 도 10으로부터, α에 대한 다음 방정식들이 정의된다.
ⅰ) sinα = k/(z+l) = 1/(x'+k)
ⅱ) cosα = z'/(z+l) = x/(x'+k)
ⅲ) tanα = 1/x = k/z'
방정식 ⅲ)으로부터, l = xtanα를 얻고, 방정식 ⅱ)로부터 z' = (z+1)cosα = (z+xtanα)cosα = zcosα+ xsinα을 얻는다. 또한, 방정식 ⅲ)으로부터 k = z'tanα = zsinα+ xsinαtanα를 얻고, 방정식 ⅱ)로부터 x' = (x-kcosα)/cosα = x/cosα- k = x(1/cosα- sinαsinα/cosα)-zsinα = xcosα- zsinα를 얻는다. 상기 방정식들을 사용하여, 입체 필터(26)는 좌측 시점에 대한 다음의 새로운 좌표들을 얻는다.
ⅳ) x' = xcosα-zsinα
z' = zcosα+xsinα
y' = y
그러면 입체 필터(26)는 좌측 시야로부터의 결과들을 반영함으로써(mirroring), 동일한 점에 대한 우측 시야를 계산한다. 즉, 입체 필터(26)는 (x,y,z)로부터 (W-x,y,z)로 좌측에 대한 점을 반영한다. 그 다음에, 입체 필터(26)는 상기 방정식 ⅳ) 변환을 사용하여 그 점에 대한 좌측 값을 계산한다. 마지막으로, 입체 필터는 결과로서 생긴 점을 우측으로 돌려, 즉 (x', y', z')로부터 (W-x', y', z')로 하여 반영한다(mirror).
상기 점의 좌우측 값들을 계산한 후에, 입체 필터(26)는 좌우 점을 입체 모드에서 이들의 적절한 위치로 변위시킨다. 변환의 상세는 입체 모드에서 프레임 버퍼(31)의 정확한 포맷에 달려 있으며, 이것은 전술한 입체 필터(26)에 의해 설정된다. 예를 들면, 도 4b에 도시되어 있는 동일 길이의 버퍼 수평 모드가 사용되면, 입체 필터는 원래의 프레임 버퍼의 좌반측에 좌측 시야를 위치시키고 우반측에 우측 시야를 위치시킨다. 그래서 좌측 포인트(x', y', z')는 (x'/2, y', z')로 이동하고, 우측 포인트는 (W/2+x'/2, y', z')로 이동할 것이다. 다른 모드들은 스케일링(scale) 없이 또는 스케일링하여 Y값을 변화시킬 것이다. 마지막으로, 입체 필터(26)는 상기 새로운 형상을 3 차원 가속 드라이버(28)에서의 렌더링 단계로 넘겨준다.
도 3을 참조하면, 단계 68에서, 좌우 시점 데이터가 발생한 후에, 입체 필터(26)는 3 차원 오브젝트를 3 차원 가속 드라이버(28)로 재지정(redirect)하여 좌측 시야의 오브젝트를 좌측 프레임으로 주고 우측 오브젝트를 프레임 버퍼(31) 내의 우측 프레임으로 준다. 2 차원 컨텐트는 좌측 프레임 버퍼와 우측 프레임 버퍼로 복사된다.
그 다음에, 단계 70에서 3 차원 가속 드라이버는 기설정된 입체 모드에 따라서 상기 오브젝트 데이터를 프레임 버퍼(31)에 저장한다. 단계 72에서, DAC(32)는 아날로그 RGB 신호들을 입체 디스플레이(34)에 출력한다. 입체 디스플레이(34)의 특정 구현에 대한 상세한 것은 사용되는 디바이스에 따라 달라진다. 그러나, 입체 디스플레이(34)는 뷰어의 마음에 실재적인 입체 효과를 발생하도록 설계되고, 2개의 프레임들이 두 눈 사이의 거리와 매치하도록 정확히 변위되도록 한다.
예를 들면, 각 눈에 대해 별도의 모니터를 갖는 헤드 장착형 디스플레이가 사용될 수도 있다. 이런 타입의 디스플레이에서, RGB 신호는 깊이 시각(depth vision)을 시뮬레이트한 효과가 발생하도록 조정된다.
한편, 2개의 시야들을 투영하는 투영 시스템 디스플레이가 또한 사용될 수도 있다. 그러한 디스플레이에서, 뷰어는 하나의 시야를 차단하고 다른 시야를 눈에 들어오게 하는 특별한 글라스들을 사용하여 상이한 시야를 각 눈에 전달한다. 일반적으로는 글라스 상에 컬러 필터 또는 편광 필터을 사용하여 상이한 컬러 또는 편광을 구성이 이용된다.
어떠한 경우든지, DAC(32)로부터의 RGB 비디오 신호 출력이 산업 표준들을 만족시키도록 발생되기 때문에, 입체 필터(26)는 입체 디스플레이 디바이스와 함께 사용될 수 있다.
이상 하드웨어 가속 렌더링 구조를 사용하여 그래픽스 오브젝트들에 대한 입체적인 3 차원 화상들을 발생하는 방법 및 장치를 기술하였다. 도 2의 컴퓨터 시스템(100)은 예를 들면, 마이크로소프트사의 윈도우 9x 또는 윈도우즈 NT 오퍼레이팅 시스템을 사용하는 펜티엄급 PC로서 구현될 수도 있다. 그러나, 입체 필터는 임의의 특정 오퍼레이팅 시스템을 사용하는지에 대해 제한되지 않는다. 예를 들면, 도 11은 본 발명의 실시예를 구현할 수 있는 컴퓨터 시스템(200)을 단순화한 블록도이다. 컴퓨터 시스템(200)은 정보를 주고받기 위한 버스(210) 또는 다른 통신 매체와, 정보를 처리하기 위해 버스(210)에 결합된 프로세서(202)를 포함한다. 컴퓨터 시스템(200)은 프로세서(202)에 의해 실행되는 정보 및 명령을 저장하기 위해 버스(210)에 결합된 동적 억세스 메모리(RAM) 또는 다른 동적 저장 장치(204)(메인 메모리)를 더 포함한다. 메인 메모리(204)는 또한 프로세서(202)에 의해 명령을 실행하는 동안 임시 변수들 또는 다른 중간 정보를 저장하는데 사용될 수도 있다. 컴퓨터 시스템(200)은 또한 프로세서(202)에 대한 명령들 및 정적 정보를 저장하기 위해 버스(210)에 결합된 판독 전용 메모리(ROM) 및/또는 다른 정적 저장 장치(206)를 포함한다. 자기 디스크 또는 광 디스크와 같은 데이터 저장 장치(208) 및 이들에 대응하는 디스크 드라이브가 정보 및 명령들을 저장하기 위해 버스(210)에 결합될 수 있다.
양호하게는 본 발명의 입체 필터가 마이크로소프트사의 OpenGL 또는 Diredt3D와 같은 임의의 벤더(vendor) 3 차원 렌더링 엔진과 인터페이스하도록 구성될 수 있다. 그러나, 필터는 렌더링 엔진의 특정 인터페이스 포인트들과 인터페이스하기 때문에, 특정한 입체 필터의 구현은 특정 3 차원 렌더링 엔진과 함께 사용될 수 있다. 또한, 입체 필터(26)와 가속 드라이버 사이의 통신은 동일한 API 을 통해 이루어지기 때문에, 입체 필터(26)는 어떠한 특정 3 차원 가속 드라이버와 함께 사용되어도 무방하다.
또한, 입체 필터는 제 3의 3 차원 가속기 또는 비디오 어댑터와 함께 양호하게 사용될 수 있다. 입체 필터는 사용된 실제 디바이스에 기초하여, 입체 모드를 설정하도록 구성된다. 또한, 입체 필터는 그 입체 모드를 지원하는 임의의 입체 디스플레이 디바이스와 함께 사용될 수 있다. 본 발명의 다른 이점은 OS 소프트웨어 및 제 3 자의 구성요소들이 입체 필터와 조화를 이루기 위해 변경되지 않아도 되며, 따라서 다양한 소프트웨어 요소들과 하드웨어 구성요소들을 설정하는 것(customizing)과 연관된 시간 및 비용을 상당히 절감할 수 있다는 것이다.
전술한 뷰어 모델와 관련한 본 발명의 중요한 특징은 뷰어의 시점을 3 차원 공간의 임의의 장소로 변화시킬 수 있다. 사용자는 애플리케이션 레벨에서 3 차원 컨텐트와 무관한 방법으로 장면 내에서 움직일 수 있도록 하기 위해 입체 필터를 제어한다. 따라서, 본 발명은 사용자의 제어 감각을 증가시킨다. 또한, 본 발명은 입력 3 차원 컨텐트에 대한 상호작용의 범위를 증가시킨다. 시점을 변화시킴으로써 발생하는 문제는 예를 들면, 필요한 계산 측면에서는 특정 시점 상의 중심에 둠으로써, 3 차원 렌더링 엔진이 3 차원의 형상 모델을 최적화할 수 있다. 이 방법은 상기 특정 시점으로부터 보이지 않는 상세한 것들을 볼 수 있도록 한다. 이것은 숨겨진 표면 영역들 내에 있는 다각형들의 제거할 뿐 아니라, 시점에 대한 거리에 따른 상세한 것들도 포함한다. 대체로, 3 차원 모델들을 완전히 렌더링하는 3 차원 렌더링 엔진들은, 본 발명의 3 차원 필터에 의해 조종될 수 있으며, 아티팩트들(artifacts)을 발생하지 않고 애플리케이션에 무관하게 시점을 변경할 수 있다.
본 발명의 다른 특징은 입체 필터가 동일한 3 차원 컨텐트를 기초로 상이한 시점들로부터 렌더링된 다수(둘 이상)의 시야를 제공하도록 일반화될 수 있다는 점이다. 따라서 기본적으로는, 공식 ⅰ) 내지 ⅳ)에서 논의한 계산들은 다른 적절한 공식들로 대체된다. 예를 들면, 멀티-유저 소프트웨어 애플리케이션, 예를 들면, 상이한 유저들이 동일 목적을 가지고 가상 현실에서 한 팀으로서 함께 사용하는 비디오 게임에서, 필터는 하나의 3 차원 컨텐트 및 상이한 시점을 기초로 오브젝트로부터 상이한 시점들을 생성한다. 각각의 사용자에 대하여 생성한 시점들은 사실상 입체적일 수도 있지만 반드시 입체적일 필요는 없다. 예를 들면, 상기 시점들은 다수의 단안용 이미지들일 수도 있다.
동작의 입체 모드에서 필터에 의해 행해진 데이터 변환들을 구현하는 방법들은 많이 있다. 그 중 한가지 방법은 새로운 초점 중심을 위치시켜서 서로 반사된 이미지들인 2개의 상이한 시점들을 생성하는 전술한 변환을 수행함으로써, 좌안과 우안의 시점을 생성하는 것이다. 한편, 초점의 시점은 좌안(또는 우안)의 시점을 취할 수 있으며, 수평으로 거리 W 만큼 이동한 시점은 우안(또는 좌안)의 시점으로 취해질 수 있다.
이상, 본 발명의 양호한 실시예를 도시하고 설명하였다. 그러나, 전술한 바와 같이 본 발명은 다양한 다른 조합들 및 환경들에 사용할 수 있으며, 본원 명세서에 표현된 신규한 개념의 범위 내에서 변화 및 수정이 이루어질 수 있음을 주지하라.

Claims (14)

  1. 컴퓨터 시스템(100, 200)에서 그래픽스 오브젝트를 위한 3 차원 데이터 생성 방법에 있어서,
    3 차원 렌더링 모듈(18)에서 상기 그래픽스 오브젝트에 대한 3 차원 렌더링 동작을 위해 함수 호출 요청을 생성하는 단계;
    필터(26)에 의해 상기 함수 호출 요청을 수신하는 단계; 및
    상기 필터(26)에서, 상기 3 차원 그래픽스 오브젝트에 대한 다수의 시점 데이터(viewpoint data)를 생성하는 단계;를 포함하는 3 차원 데이터 생성 방법.
  2. 제 1 항에 있어서,
    상기 필터에서는 상기 3 차원 그래픽스 오브젝트에 대한 좌안의 시점 데이터 및 우안의 시점 데이터를 생성하는 단계(66); 및
    상기 좌안의 시점 데이터 및 우안의 시점 데이터를 디스플레이 드라이버(28)에 전송하는 단계(68);를 포함하는 3 차원 데이터 생성 방법.
  3. 제 2 항에 있어서,
    상기 좌안의 시점 데이터 및 우안의 시점 데이터를 프레임 버퍼(31)에 저장하는 단계(70);를 포함하는 3 차원 데이터 생성 방법.
  4. 제 3 항에 있어서,
    상기 프레임 버퍼 내의 각 라인을 좌안의 데이터를 저장하기 위한 제 1 영역과 우안의 데이터를 저장하기 위한 제 2 영역의 두 영역으로 분할하는 단계(도 4b, 4c);를 포함하는 3 차원 데이터 생성 방법.
  5. 제 3 항에 있어서,
    상기 프레임 버퍼를 상부 영역과 하부 영역으로 분할하는 단계(도 5b, 5c)를 포함하며, 상기 두 영역들 중 한 영역은 좌안의 데이터를 저장하고 다른 영역은 우안의 데이터를 저장하는 3 차원 데이터 생성 방법.
  6. 제 2 항에 있어서,
    상기 좌안의 시점 데이터와 및 우안의 시점 데이터를 생성하는 단계는,
    인수들로서 3 차원 오브젝트들과 함께 상기 3 차원 렌더링 모듈로부터 렌더링 요청들을 수신하고,
    뷰어 모델 입력에 기초하여, 주어진 타겟 투영면을 2개의 투영면들로 대체하는 단계(도 7b, 7c);를 포함하는 3 차원 데이터 생성 방법.
  7. 제 6 항에 있어서,
    상기 뷰어 모델 입력은 3 차원 렌더링 모듈의 3 차원 오브젝트의 형상(geometry) 표현 및 상기 타겟 2 차원 렌더링 면의 표현에 기초하는(도 10) 3 차원 데이터 생성 방법.
  8. 제 1 항에 있어서,
    상기 필터를, 프레임 버퍼로 출력을 생성하는 하드웨어 가속 드라이버로서 구성하는 단계;를 더 포함하는 3 차원 데이터 생성 방법.
  9. 그래픽스 데이터를 생성하는 컴퓨터 시스템(100)에 있어서,
    상기 컴퓨터 시스템에 의해 실행되는 소프트웨어 애플리케이션용 그래픽스 데이터를 생성하도록 구성되며, 3 차원 그래픽스 동작들의 실행을 요청하는 함수 호출들을 전송하도록 구성되는 그래픽스 모듈(18);
    상기 함수 호출들을 수신하고 그래픽스 오브젝트의 다수의 시점 데이터를 생성하도록 구성되는 필터(26); 및
    상기 다수의 시점 데이터를 수신하도록 구성되는 디스플레이 드라이버(28);를 포함하는 컴퓨터 시스템.
  10. 제 9 항에 있어서,
    상기 필터는 상기 그래픽스 오브젝트의 좌안의 시점 데이터 및 우안의 시점 데이터를 생성하도록 구성되는(66) 컴퓨터 시스템.
  11. 제 10 항에 있어서, 상기 필터(26)는,
    인수들로서 3 차원 오브젝트들과 함께 상기 그래픽스 모듈로부터 렌더링 요청들을 수신하고,
    뷰어 모델 입력에 기초하여, 주어진 타겟 투영면을 2개의 투영면들로 대체하도록 구성되는(도 10) 컴퓨터 시스템.
  12. 제 11 항에 있어서,
    상기 뷰어 모델 입력은 상기 그래픽스 모듈의 3 차원 오브젝트의 형상 표현 및 상기 타겟 2 차원 렌더링 면의 표현에 기초하는(도 10) 컴퓨터 시스템.
  13. 저장된 복수의 명령 시퀀스들을 갖는 컴퓨터 판독 가능한 매체(208)에 있어서,
    상기 복수의 명령 시퀀스들은 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    그래픽스 오브젝트에 대한 3 차원 동작을 요청하는, 3 차원 렌더링 모듈(18)에 의해 발생된 함수 호출을 수신하고;
    상기 그래픽스 오브젝트에 대한 다수의 시점 데이터를 생성하도록 하는 컴퓨터로 판독 가능한 매체.
  14. 제 13 항에 있어서,
    상기 복수의 명령 시퀀스들은 상기 프로세서가,
    좌안의 시점 데이터 및 우안의 시점 데이터를 생성하고(66);
    상기 좌안의 시점 데이터 및 우안의 시점 데이터를 디스플레이 드라이버에 전송하도록 하는(68) 컴퓨터로 판독 가능한 매체.
KR1020007001924A 1998-06-30 1999-06-14 하드웨어 가속 렌더링 구조로 3 차원 데이터를 변환하기 위한 필터 KR100637612B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/107,918 US6496183B1 (en) 1998-06-30 1998-06-30 Filter for transforming 3D data in a hardware accelerated rendering architecture
US09/107,918 1998-06-30
PCT/IB1999/001104 WO2000000934A2 (en) 1982-08-31 1999-06-14 Filter for transforming 3d data in a hardware accelerated rendering architecture

Publications (2)

Publication Number Publication Date
KR20010023290A KR20010023290A (ko) 2001-03-26
KR100637612B1 true KR100637612B1 (ko) 2006-10-24

Family

ID=22319158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007001924A KR100637612B1 (ko) 1998-06-30 1999-06-14 하드웨어 가속 렌더링 구조로 3 차원 데이터를 변환하기 위한 필터

Country Status (7)

Country Link
US (1) US6496183B1 (ko)
EP (1) EP1038271B1 (ko)
JP (1) JP4364436B2 (ko)
KR (1) KR100637612B1 (ko)
CN (1) CN1143244C (ko)
DE (1) DE69912576T2 (ko)
TW (1) TW514836B (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7159041B2 (en) * 2000-03-07 2007-01-02 Microsoft Corporation Method and system for defining and controlling algorithmic elements in a graphics display system
JP3841630B2 (ja) * 2000-08-29 2006-11-01 オリンパス株式会社 画像取り扱い装置
US20020154214A1 (en) * 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US6828975B2 (en) 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6874150B2 (en) * 2001-03-01 2005-03-29 Microsoft Corporation Method and system for maintaining connections between surfaces and objects in a graphics display system
US7451457B2 (en) * 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
US7219352B2 (en) * 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
EP1359773B1 (en) * 2002-04-15 2016-08-24 Microsoft Technology Licensing, LLC Facilitating interaction between video renderers and graphics device drivers
AU2003303111A1 (en) * 2002-11-29 2004-07-29 Bracco Imaging, S.P.A. Method and system for scaling control in 3d displays
US6862530B2 (en) * 2003-04-11 2005-03-01 Schlumberger Technology Corporation System and method for visualizing multi-scale data alongside a 3D trajectory
US7158668B2 (en) * 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
EP1727093A1 (en) * 2003-12-19 2006-11-29 Tdvision Corporation S.A. DE C.V. 3d videogame system
WO2005083637A1 (es) 2004-02-27 2005-09-09 Td Vision Corporation, S.A. De C.V. Método y sistema de decodificación digital de imágenes de video 3d estereoscópicas
US20080246757A1 (en) * 2005-04-25 2008-10-09 Masahiro Ito 3D Image Generation and Display System
KR100913173B1 (ko) * 2005-07-05 2009-08-19 삼성모바일디스플레이주식회사 3d 그래픽 처리장치 및 이를 이용한 입체영상 표시장치
KR100932977B1 (ko) * 2005-07-05 2009-12-21 삼성모바일디스플레이주식회사 입체 영상 표시 장치
KR100898287B1 (ko) 2005-07-05 2009-05-18 삼성모바일디스플레이주식회사 입체 영상 표시 장치
US7505170B2 (en) * 2005-07-13 2009-03-17 Microsoft Corporation Conversions between spool files and PDL within a pipeline of modular filters
US8279221B2 (en) * 2005-08-05 2012-10-02 Samsung Display Co., Ltd. 3D graphics processor and autostereoscopic display device using the same
WO2007064280A1 (en) * 2005-12-01 2007-06-07 Swiftfoot Graphics Ab Computer graphics processor and method for rendering a three-dimensional image on a display screen
US8284204B2 (en) * 2006-06-30 2012-10-09 Nokia Corporation Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering
CN101105746B (zh) * 2006-07-14 2010-05-12 联想(北京)有限公司 采用过滤驱动获取图形设备接口调用的方法
CN101286225B (zh) * 2007-04-11 2010-10-06 中国科学院自动化研究所 一种基于三维纹理硬件加速的海量数据体绘制方法
US8279222B2 (en) * 2008-03-14 2012-10-02 Seiko Epson Corporation Processing graphics data for a stereoscopic display
US8817054B1 (en) * 2008-05-13 2014-08-26 Google Inc. Methods and systems for rendering in a multi-process browser using a shared memory area
USD666663S1 (en) 2008-10-20 2012-09-04 X6D Limited 3D glasses
USD603445S1 (en) 2009-03-13 2009-11-03 X6D Limited 3D glasses
USD624952S1 (en) 2008-10-20 2010-10-05 X6D Ltd. 3D glasses
USRE45394E1 (en) 2008-10-20 2015-03-03 X6D Limited 3D glasses
US8542326B2 (en) 2008-11-17 2013-09-24 X6D Limited 3D shutter glasses for use with LCD displays
CA2684513A1 (en) 2008-11-17 2010-05-17 X6D Limited Improved performance 3d glasses
USD646451S1 (en) 2009-03-30 2011-10-04 X6D Limited Cart for 3D glasses
USD650956S1 (en) 2009-05-13 2011-12-20 X6D Limited Cart for 3D glasses
USD672804S1 (en) 2009-05-13 2012-12-18 X6D Limited 3D glasses
USD669522S1 (en) 2010-08-27 2012-10-23 X6D Limited 3D glasses
USD671590S1 (en) 2010-09-10 2012-11-27 X6D Limited 3D glasses
USD692941S1 (en) 2009-11-16 2013-11-05 X6D Limited 3D glasses
USD662965S1 (en) 2010-02-04 2012-07-03 X6D Limited 3D glasses
KR101085676B1 (ko) * 2010-04-21 2011-11-22 김성도 단안식 3d영상촬영장치 및 3d카메라
US9053562B1 (en) 2010-06-24 2015-06-09 Gregory S. Rabin Two dimensional to three dimensional moving image converter
USD664183S1 (en) 2010-08-27 2012-07-24 X6D Limited 3D glasses
US9578299B2 (en) 2011-03-14 2017-02-21 Qualcomm Incorporated Stereoscopic conversion for shader based graphics content
KR101227183B1 (ko) * 2011-03-22 2013-01-28 주식회사 넥서스칩스 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법
JP5770018B2 (ja) * 2011-06-03 2015-08-26 任天堂株式会社 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム
CN102681849A (zh) * 2012-05-07 2012-09-19 禹芙蓉 手持移动终端的数字时间3d显示方法
USD711959S1 (en) 2012-08-10 2014-08-26 X6D Limited Glasses for amblyopia treatment
US9992021B1 (en) 2013-03-14 2018-06-05 GoTenna, Inc. System and method for private and point-to-point communication between computing devices
WO2015142936A1 (en) * 2014-03-17 2015-09-24 Meggitt Training Systems Inc. Method and apparatus for rendering a 3-dimensional scene
CN104200520B (zh) * 2014-08-29 2017-05-10 杭州易上弘网络技术有限公司 一种基于部件模型组合的三维云渲染方法及三维云渲染系统
US20180300840A1 (en) * 2017-04-17 2018-10-18 Joydeep Ray Display link compression by render engine

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456952B1 (ko) * 1996-06-26 2005-01-17 마츠시타 덴끼 산교 가부시키가이샤 입체 컴퓨터 그래픽스 동화상 발생 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993022699A1 (en) * 1992-04-24 1993-11-11 Depth Enhancement Inc Three-dimensional visualization by altered multiple two-dimensional perspective imagery
DE4416935C2 (de) * 1994-05-13 1996-03-14 Terlutter Rolf Dr Verfahren zum Erzeugen räumlich wirkender Bilder
DE69621778T2 (de) * 1995-12-19 2003-03-13 Koninkl Philips Electronics Nv Tiefenabhängige parallaktische pixelverschiebung
US5867210A (en) 1996-02-09 1999-02-02 Rod; Samuel R. Stereoscopic on-screen surgical microscope systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456952B1 (ko) * 1996-06-26 2005-01-17 마츠시타 덴끼 산교 가부시키가이샤 입체 컴퓨터 그래픽스 동화상 발생 장치

Also Published As

Publication number Publication date
EP1038271A2 (en) 2000-09-27
JP4364436B2 (ja) 2009-11-18
DE69912576T2 (de) 2004-08-19
DE69912576D1 (de) 2003-12-11
KR20010023290A (ko) 2001-03-26
CN1143244C (zh) 2004-03-24
US6496183B1 (en) 2002-12-17
JP2002519792A (ja) 2002-07-02
TW514836B (en) 2002-12-21
CN1277698A (zh) 2000-12-20
EP1038271B1 (en) 2003-11-05

Similar Documents

Publication Publication Date Title
KR100637612B1 (ko) 하드웨어 가속 렌더링 구조로 3 차원 데이터를 변환하기 위한 필터
US11748840B2 (en) Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US10083538B2 (en) Variable resolution virtual reality display system
US10089790B2 (en) Predictive virtual reality display system with post rendering correction
KR101041723B1 (ko) 3차원 비디오게임 시스템
KR101556835B1 (ko) 셰이더 기반 그래픽 콘텐츠를 위한 입체 변환
US20060161572A1 (en) Method and system for visualization of dynamic three-dimensional virtual objects
JP2002074388A (ja) グラフィクスシステムにおいて環境を写し込んだバンプマッピングのための方法および装置
US20040085310A1 (en) System and method of extracting 3-D data generated for 2-D display applications for use in 3-D volumetric displays
US6529194B1 (en) Rendering method and apparatus, game system, and computer readable program product storing program for calculating data relating to shadow of object in virtual space
KR19990045321A (ko) 폴리곤이 분할되는 화상처리
JPH09161100A (ja) 表示方法及び装置
WO2000000934A2 (en) Filter for transforming 3d data in a hardware accelerated rendering architecture
Bonatto et al. Real-time depth video-based rendering for 6-DoF HMD navigation and light field displays
WO2018064287A1 (en) Predictive virtual reality display system with post rendering correction
US20140300713A1 (en) Stereoscopic three dimensional projection and display
KR100381817B1 (ko) 제트버퍼를 이용한 입체영상 생성방법 및 기록매체
US6559844B1 (en) Method and apparatus for generating multiple views using a graphics engine
KR20120119774A (ko) 곡면 투사를 이용한 입체 영상 생성 방법, 장치 및 시스템, 이를 위한 기록 매체
KR20220128406A (ko) 멀티뷰 스타일 전이 시스템 및 방법
KR101227183B1 (ko) 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법
JP2002251627A (ja) 画像データ生成方法および装置
JPH11184453A (ja) 表示装置及びその制御方法、コンピュータ可読メモリ
KR100914915B1 (ko) 저비용의 뷰-체적 클리핑 방법 및 장치
JP2007299080A (ja) 画像生成方法及び画像生成装置

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131007

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141014

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151014

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161007

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171011

Year of fee payment: 12

EXPY Expiration of term