KR20130136536A - 네이티브 모노스코픽 3d의 입체 3d 로의 런 타임 변환 - Google Patents

네이티브 모노스코픽 3d의 입체 3d 로의 런 타임 변환 Download PDF

Info

Publication number
KR20130136536A
KR20130136536A KR1020137027107A KR20137027107A KR20130136536A KR 20130136536 A KR20130136536 A KR 20130136536A KR 1020137027107 A KR1020137027107 A KR 1020137027107A KR 20137027107 A KR20137027107 A KR 20137027107A KR 20130136536 A KR20130136536 A KR 20130136536A
Authority
KR
South Korea
Prior art keywords
view
projection matrix
content
stereoscopic
model view
Prior art date
Application number
KR1020137027107A
Other languages
English (en)
Other versions
KR101529812B1 (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 KR20130136536A publication Critical patent/KR20130136536A/ko
Application granted granted Critical
Publication of KR101529812B1 publication Critical patent/KR101529812B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • 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/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • 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/20Image signal generators
    • H04N13/286Image signal generators having separate monoscopic and stereoscopic modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

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

Abstract

본 개시물은 디바이스로 하여금 네이티브 3 차원 (3D) 그래픽 콘텐츠를 입체 3D 로 렌더링하게 할 수 있는 방식으로 애플리케이션 프로그램 인터페이스 (API) 호출들을 수정하는 기법들을 설명한다. 본 개시물의 기법들은, API 기법들 자체가 수정되지만 API 자체 및 GPU 하드웨어는 수정되지 않는 방식으로 구현될 수 있다. 본 개시물의 기법들은 오리지널 콘텐츠에 의해 정의된 동일한 뷰잉 프루스텀을 사용하여 좌안 이미지 및 우안 이미지를 생성하는 것, 및 좌안 이미지 및 우안 이미지의 뷰포트 오프셋을 시프트시키는 것을 포함한다.

Description

네이티브 모노스코픽 3D의 입체 3D 로의 런 타임 변환 {RUN-TIME CONVERSION OF NATIVE MONOSCOPIC 3D INTO STEREOSCOPIC 3D}
본 출원은 2011 년 3 월 14 일에 출원된 미국 가출원 제 61/452,289 호 및 2011 년 4 월 12 일에 출원된 미국 가출원 제 61/474,638 호의 이점을 주장하며, 이들 미국 가출원 각각의 내용은 그 각각의 전체가 참조로서 여기에 포함된다.
분야
본 개시물은 그래픽 데이터 프로세싱에 관한 것이며, 더 구체적으로는, 입체 뷰에 대한 그래픽 데이터 프로세싱에 관한 것이다.
입체 뷰 (stereoscopic view) 는 3 차원 (3D) 볼륨을 이룬 것으로 보여지는 인식된 이미지를 말한다. 입체 뷰를 생성하기 위해, 디바이스는 디스플레이의 2 차원 (2D) 영역 상에 두 개의 이미지들을 디스플레이한다. 이들 두 개의 이미지들은 실질적으로 유사한 콘텐츠를 포함하지만, 두 개의 이미지들에서 하나 이상의 대응하는 픽셀들의 수평 축을 따라 약간의 변위를 가진다. 2D 영역에서의 이들 두 개의 이미지들의 동시적 뷰잉은, 뷰어가 두 개의 이미지들을 디스플레이하고 있는 2D 디스플레이 밖으로 튀어나오거나 그 속으로 밀려들어간 이미지를 인식하게 한다. 이 방식으로, 두 개의 이미지들이 디스플레이의 2D 영역 상에 디스플레이됨에도 불구하고, 뷰어는 3D 볼륨을 이룬 것으로 보이는 이미지를 인식한다.
입체 뷰의 두 개의 이미지들은 각각 좌안 이미지 (left-eye image) 및 우안 이미지 (right-eye image) 라고 지칭된다. 좌안 이미지는 뷰어의 좌안에 의해 뷰잉 가능하고, 우안 이미지는 뷰어의 좌안에 의해서는 뷰잉 가능하지 않다. 마찬가지로, 우안 이미지는 뷰어의 우안에 의해 뷰잉 가능하고, 좌안 이미지는 뷰어의 우안에 의해서는 뷰잉 가능하지 않다. 예를 들어, 뷰어는 안경의 좌측 렌즈가 우안 이미지를 차단하고 좌안 이미지를 통과시키며 안경의 우측 렌즈가 좌안 이미지를 차단하고 우안 이미지를 통과시키는 특수 안경을 착용할 수도 있다.
좌안 및 우안 이미지들이 수평 축을 따르는 약간의 변위를 갖는 실질적으로 유사한 콘텐츠를 포함하지만 (예컨대, 특수 안경 때문에) 뷰어의 양안에 의해서 동시에 뷰잉 가능하지는 않기 때문에, 뷰어의 뇌는 두 개의 이미지들을 합침으로써 대응하는 픽셀들 사이의 약간의 변위를 해결한다. 이 합침 (commingling) 은 뷰어가 두 개의 이미지들을 3D 볼륨을 갖는 이미지로서 인식하게 한다.
본 개시물은 디바이스로 하여금 3 차원 (3D) 그래픽 콘텐츠를 입체 3D 로 렌더링하게 할 수 있는 애플리케이션 프로그램 인터페이스 (API) 호출들을 수정하는 기법들을 설명한다. 본 개시물의 기법들은 API 호출들 자체가 수정되지만 API 자체 및 GPU 하드웨어는 수정되지 않는 방식으로 구현될 수 있다.
일 예에서, 비입체 3D 콘텐츠를 S3D 콘텐츠로 변환하는 방법은, 애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하는 단계; API 호출로부터, 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하는 단계; 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하는 단계; 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하는 단계; 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하는 단계; 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하는 단계; 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하는 단계; 및 좌측 뷰 및 우측 뷰에 기초하여, S3D 이미지를 렌더링하는 단계를 포함한다.
다른 예에서, 디바이스는 명령들을 저장하는 메모리, 그래픽 프로세싱 유닛 (GPU), 및 프로세서를 포함한다. 프로세서는, 명령들의 실행 시, 애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하고; API 호출로부터, 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하고; 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하고; GPU 로 하여금, 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하고; GPU 로 하여금, 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하고; GPU 로 하여금, 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하고; GPU 로 하여금, 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하고; GPU 로 하여금, 좌측 뷰 및 우측 뷰에 기초하여, S3D 이미지를 렌더링하도록 동작 가능하다.
다른 예에서, 비입체 3 차원 (3D) 콘텐츠를 입체 3D (S3D) 콘텐츠로 변환하는 장치는, 애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하는 수단; API 호출로부터, 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하는 수단; 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하는 수단; 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하는 수단; 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하는 수단; 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하는 수단; 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하는 수단; 및 좌측 뷰 및 우측 뷰에 기초하여, S3D 이미지를 렌더링하는 수단을 포함한다.
다른 예에서, 컴퓨터 판독가능 저장 매체는, 실행 시, 하나 이상의 프로세서들로 하여금, 애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하게 하고; API 호출로부터, 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하게 하고; 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하게 하고; 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하게 하고; 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하게 하고; 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하게 하고; 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하게 하고; 좌측 뷰 및 우측 뷰에 기초하여, S3D 이미지를 렌더링하게 하는 명령들을 저장한다.
본 개시물의 하나 이상의 양태들의 상세는 첨부 도면들 및 다음의 설명에서 언급된다. 본 개시물의 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명확하게 될 것이다.
도 1 은 본 개시물에 설명된 하나 이상의 예시적인 기법들을 구현할 수도 있는 예시적 시스템의 기능을 예시한 블록도이다.
도 2 는 본 개시물에 설명된 하나 이상의 예시적인 기법들을 구현할 수도 있는 디바이스의 일 예를 데시한 블록도이다.
도 3a 는 본 개시물의 기법들을 이용하여 생성된 S3D 뷰잉 영역의 기하학적 표현을 도시한다.
도 3b 는 본 개시물의 기법들에 따라 수행될 수 있는 뷰포트 시프트의 기하학적 표현을 도시한다.
도 4 는 도 2 의 예시적인 디바이스를 더 상세히 예시한 블록도이다.
도 5 는 본 개시물에서 설명된 하나 이상의 예시적인 기법들에 따른 예시적인 동작을 예시한 흐름도이다.
본 개시물에서 설명되는 예시적인 기법들은 실행 또는 런타임 동안에 입체 3차원 (stereoscopic 3-dimensional: S3D) 그래픽들을 렌더링하는 것에 관한 것이다. 종래의 3D 그래픽 렌더링에서, 그래픽 프로세싱 유닛 (GPU) 은 단일 시점 (예컨대, 모노 뷰) 으로부터 3D 그래픽들을 생성한다. 이 단일 시점은 뷰어의 우안 및 좌안 양측 모두에 의해 뷰잉 가능한 단일 이미지를 의미할 수도 있다.
S3D 그래픽은 S3D 그래픽이 입체 뷰를 생성한다는 점에서 3D 그래픽과는 상이하다. 용어 입체 뷰는 양안 시점 (binocular point of view) 으로부터 생성되는 이미지들을 말한다. 양안 시점에서는, 하나의 이미지가 양안 중 하나에 의해서 뷰잉 가능하고 다른 하나에 의해서는 뷰잉 가능하지 않으며, 그 반대로도 마찬가지인 두 개의 이미지들이 있을 수도 있다. 예를 들어, 뷰어가 쌍안경을 착용한 경우, 쌍안경에 대해 좌측 렌즈를 통해 들어오는 광은 좌안에 의해 뷰잉 가능하지만 우안에 의해서는 뷰잉 가능하지 않으며, 그 반대의 경우도 마찬가지이다. 양안 시점은 입체 뷰라고 지칭될 수도 있다.
예를 들어, S3D 그래픽에서, GPU 는 좌안을 위한 이미지 및 우안을 위한 다른 이미지, 즉 입체 뷰를 생성할 수도 있다. 용어 입체 뷰는 디스플레이 상에서 각각 디스플레이되는 두 개의 이미지들 (예컨대, 좌안 이미지 및 우안 이미지) 을 말하는 반면, 모노 뷰는 디스플레이 상에서 디스플레이되는 단일 이미지를 말한다. 좌안 이미지 및 우안 이미지의 조합은 이미지가 이미지들을 디스플레이하고 있는 디스플레이 밖으로 튀어나오거나 또는 그 속으로 밀려들어간 것처럼 뷰어에게 보일 수도 있다. 이는 더 사실적이고 풍부한 뷰잉 경험을 하게 할 수도 있다.
본 개시물에서, S3D 이미지 (예컨대, 입체 뷰) 및 3D 이미지 (예컨대, 모노 뷰) 의 개념이 혼동되지 않아야 한다. 3D 이미지는 디스플레이의 2 차원 (2D) 영역으로 제한되는 이미지이다. 예를 들면, 3D 이미지 내의 오브젝트들은 3D 이미지 내의 다른 오브젝트들보다 더 멀리 또는 더 가까이에 있는 것처럼 보일 수도 있다. 그러나, 이들 오브젝트들의 모두는 디스플레이의 2D 영역으로 제한된다. S3D 이미지는 뷰어의 뇌가 우안 및 좌안 이미지들을 조합한 결과로 인식된 이미지이다. 결과적인 이미지 (즉, S3D 이미지) 는 디스플레이의 2D 영역으로 제한되지 않은 것처럼 보인다. 오히려, S3D 이미지는 이미지가 디스플레이 밖으로 튀어나오거나 또는 그 속으로 밀려들어가는 것으로 보이는 3D 볼륨을 이룬 것처럼 보인다. 예를 들면, S3D 이미지 내의 오브젝트들은 3D 볼륨 내의 다른 오브젝트들보다 멀리 있거나 또는 더 가까이 있는 것처럼 보이고, 3D 이미지들의 경우처럼 2D 영역으로 보이지 않는다.
S3D 이미지를 함께 형성하는 우안 및 좌안 이미지들은 3D 이미지들일 수도 있다. 뇌가 3D 우안 이미지 및 3D 좌안 이미지를 조합할 때 뷰어가 S3D 이미지를 인식하게 하는 것은 뷰어의 뇌이다. 우안 이미지 및 좌안 이미지들의 콘텐츠는 단일 3D 이미지의 콘텐츠와 실질적으로 유사할 수도 있다. 본 개시물은 3D 그래픽 콘텐츠를 S3D 콘텐츠로 변환하는 기법들을 설명한다. 본 개시물의 기법들을 이용함으로써, 많은 기존의 3D 그래픽 콘텐츠는 S3D 그래픽 콘텐츠로 변환될 수 있고, 입체 디스플레이 상에 디스플레이될 수 있다.
본 개시물은 또한 GPU 로 하여금 설명된 3D-S3D 변환을 수행하게 할 수 있는 방식으로 애플리케이션 프로그램 인터페이스 (API) 호출들을 수정하는 기법들을 설명한다. 본 개시물의 기법들은, API 또는 GPU 가 수정되는 것과는 반대로, 오로지 API 호출들 자체만이 수정되는 방식으로 구현될 수 있다.
네이티브 3D 콘텐츠로부터 S3D 콘텐츠를 생성하기 위해, 본 개시물의 기법들은 3D-S3D 변환을 위한 기법들을 포함한다. 기법들은 선택된 API 호출들을 3D 애플리케이션으로부터 3D 그래픽 API 로 인터셉트하기 위한 소프트웨어를 포함한다. 인터셉트된 API 호출들은 그래픽을 생성하기 위한 시스템으로 하여금 런 타임으로 S3D 디스플레이 상에 디스플레이될 수 있는 양안 뷰들을 생성하게 하여 렌더링된 콘텐츠를 뷰잉하는 사용자들에 대해 S3D 효과를 생성하는 방식으로 수정될 수 있다. 2 개의 이미지들, 즉 좌안 이미지 및 우안 이미지는 네이티브 3D 콘텐츠의 분석에 기초하여 동일한 그래픽 파이프라인에 의해 렌더링될 수 있다. 2 개의 이미지들은 뷰잉 로케이션들 및/또는 방향들에 대한 상이한 셋업들을 이용하여 생성될 수 있다. 본 개시물의 기법들을 구현하는 시스템은 모바일 디바이스들에서 사용되는 OpenGL ES API 와 같은 그래픽 API 바로 위에 위치되어 3D 그래픽 애플리케이션으로부터의 API 호출들이 인터셉트되게 할 수 있다. 몇몇 구현형태들에서, 3D-S3D 변환 시스템은, GPU 하드웨어, 그래픽 드라이버 코드, 또는 3D 그래픽 애플리케이션 콘텐츠의 변화를 요구하지 않고 소프트웨어만을 이용하여 구현될 수 있다. 본 개시물의 기법들은 OpenGL, OpenGL ES, 및 다른 그래픽 API들과 함께 적용될 수 있다.
네이티브 3D 콘텐츠를 S3D 콘텐츠로 변환하는 기법들은 현재 기술분야에 존재하지만, 이들 기법들 중 대부분은, 그들이 API 호출들로부터 항상 공지되어 있는 것은 아닌 정보의 지식을 요구하기 때문에 제한적인 애플리케이션을 갖거나, 또는 그들이 항상 정확한 것은 아닌 S3D 뷰잉 공간에 관해 추정하기 때문에 불량한 S3D 이미지 품질을 초래한다. 본 개시물은, 몇몇 경우들에서, 폭넓게 이용 가능하고 우수한 이미지 품질을 초래하는 3D-S3D 변환 기법들을 설명한다.
도 1 은 본 개시물의 기법들을 구현할 수 있는 예시적인 3D-S3D 변환 시스템 (100) 의 기능도이다. 도 1 의 시스템 (100) 은 기능적인 개관을 제공하도록 의도된다. 시스템 (100) 은 3D 그래픽 콘텐츠 (112), 3D-S3D 변환을 가능하게 하는 시스템 커맨드들 (116), 인에이블 S3D 모듈 (120), 3D-S3D 변환 모듈 (124), API (128), 정점 프로세싱 모듈 (132), 좌측 비닝 유닛 (136), 우측 비닝 유닛 (140), 픽셀 프로세싱 유닛 (144), 좌측 프레임 버퍼 (148), 우측 프레임 버퍼 (152), 좌측 이미지 (156), 및 우측 이미지 (160) 를 포함한다. 시스템 (100) 의 부분들은, 본 개시물에서 추후에 추가 하드웨어 및 소프트웨어 콤포넌트들을 참조하여 더 상세히 설명될 것이다. 또한, 더 상세히 후술하는 바와 같이, 정점 프로세싱 모듈 (132), 좌측 비닝 유닛 (136), 우측 비닝 유닛 (140), 및 픽셀 프로세싱 모듈 (144) 과 같은, 시스템 (100) 의 어떤 부분들이 GPU 의 일부로서 구현될 수도 있다.
3D 그래픽 콘텐츠 (112) 및 시스템 커맨드들 (116) 은 시스템 메모리 상에 컴퓨터 코드의 형태로 저장될 수 있다. 3D 그래픽 콘텐츠 (112) 는, 예를 들어 3D 이미지들을 생성하는 데 이용되는 그래픽 커맨드들을 포함할 수 있다. OpenGL ES API 를 이용할 때, 예를 들어, 그래픽 커맨드들은, 더 상세히 후술할 glDrawArrays() 및 glDrawElements() 와 같은 glDraw 커맨드들을 포함할 수 있다.
3D-S3D 변환은 시스템 커맨드들 (116) 에 의해 가능해질 수 있다. 시스템 커맨드들 (116) 은, 예를 들어 사용자 입력 커맨드를 나타낼 수도 있고, 또는 애플리케이션 프로세서에 의해 실행되고 있는 애플리케이션 내에 포함된 커맨드일 수도 있다. 3D-S3D 이 가능하지 않을 때, 3D 그래픽 콘텐츠 (112) 는 3D 이미지를 생성하도록 하는 일반적인 방식으로 프로세싱될 수 있다. 이러한 경우들에서, 점선들로 도시된 시스템 (100) 의 부분들은 이용되지 않거나 또는 존재하지 않을 수도 있지만, 시스템 (100) 의 다른 부분들은 좌측 이미지 및 우측 이미지와는 대조적으로 단일의 모노 뷰 이미지를 프로세싱한다. 3D-S3D 변환이 가능하지 않을 때 (참조: 예컨대 120, 아니오), 비수정된 API 호출들이 API (128) 에 전송된다. 비수정된 API 호출들은 일반적으로 3D 그래픽 콘텐츠 (112) 로부터 그들의 오리지널 형태로 API (128) 에 전송되는 API 호출들을 지칭한다.
3D-S3D 변환이 가능할 때 (참조: 예컨대 120, 예), 3D-S3D 변환 모듈 (124) 은 그래픽 콘텐츠 (112) 의 API 호출들을 인터셉트할 수 있으며, 그들로 하여금 단일 모노 뷰와는 대조적으로 좌안 뷰 및 우안 뷰를 생성하게 하는 방식으로 API 호출들을 수정할 수 있다. 그러면, 3D-S3D 변환 모듈 (124) 에 의해 생성된 수정된 API 호출들은 GPU 로 하여금 좌안 이미지 및 우안 이미지 양측 모두를 렌더링하게 하도록 API (128) 에 의해 취해질 수 있다. 수정된 API 호출들은, 좌측 프레임 버퍼 (148) 에 저장될 좌안 이미지 및 우측 프레임 버퍼 (152) 에 저장될 우안 이미지를 생성하도록 정점 프로세싱 모듈 (132), 좌측 비닝 유닛 (136), 우측 비닝 유닛 (140), 및 픽셀 프로세싱 모듈 (144) 에 의해 실행될 수 있다. 시스템 (100) 의 일 예에서, 3D-S3D 변환 모듈 (124) 은 API 호출들을 인터셉트하고 이들 API 호출들에 대한 수정을 수행하도록 구성된 애플리케이션 프로세서 상에서 구동 중인 애플리케이션을 나타낸다. API 호출들에 대한 수정은 3D 그래픽 콘텐츠가 GPU 에 의해 S3D 그래픽 콘텐츠로서 렌더링되게 했다.
일반적인 3D 그래픽 파이프라인들에서, 3D 그래픽 콘텐츠는 먼저 기하학적 프리미티브들 (primitives) 을 설명하는 프리미티브 데이터의 형태이다. 좌측 이미지 및 우측 이미지 양측 모두에 대해, 정점 프로세싱 유닛 (132) 은 기하학적 프리미티브 데이터에 기초하여 2D 디스플레이 평면에 픽셀 로케이션들의 세트를 생성할 수 있다. 좌측 비닝 유닛 (136) 은 좌측 이미지와 연관된 기하학적 프리미티브들을 타일 단위로 어셈블할 수 있으며, 여기서 타일은 좌측 이미지의 일부에 대응한다. 마찬가지로, 우측 비닝 유닛 (140) 은 우측 이미지와 연관된 기하학적 프리미티브들을 타일 단위로 어셈블할 수 있다. 좌측 이미지의 타일들 및 우측 이미지의 타일들의 각각에 대해, 픽셀 프로세싱 유닛 (144) 은 정점 프로세싱 유닛 (132) 에 의해 결정된 픽셀들에 대한 특질들을 컴퓨팅할 수 있다. 픽셀 프로세싱 모듈 (144) 은 좌측 이미지 (예컨대, 좌측 이미지 (156)) 를 좌측 프레임 버퍼 (148) 에 출력할 수 있고, 우측 이미지 (예컨대, 우측 이미지 (160)) 를 우측 프레임 버퍼 (152) 에 출력할 수 있다. 좌측 이미지 (156) 및 우측 이미지 (160) 는 S3D 디스플레이 상에 동시에 디스플레이되어 S3D 이미지를 생성할 수 있다. 이 방식으로, 3D 그래픽 콘텐츠 (112) 가 S3D 그래픽 콘텐츠를 포함하지 않는다 하더라도, 시스템 (100) 의 출력은 여전히 S3D 이미지일 수 있다.
정점 프로세싱 모듈 (132), 좌측 비닝 유닛 (136), 우측 비닝 유닛 (140), 및 픽셀 프로세싱 모듈 (144) 에 의해 수행되는 기능들은 도 2 를 참조하여 더 상세히 후술될 것이다. 몇몇 구성들에서, 시스템은 우안 이미지들에 전용되는 다양한 하드웨어 콤포넌트들 및 좌안 이미지들에 적용되는 하드웨어 콤포넌트들을 포함할 수도 있다. 그러나, 다른 구현형태들에서, 동일한 콤포넌트들이 우측 및 좌안 이미지들 양측 모두에 대해 사용될 수도 있다. 도 1 의 시스템 (100) 에서, 예를 들어, 정점 프로세싱 모듈 (132) 및 픽셀 프로세싱 모듈 (144) 은 소프트웨어로 구현될 수 있고, 좌측 비닝 유닛 (136), 우측 비닝 유닛 (140), 좌측 프레임 버퍼 (148) 및 우측 프레임 버퍼 (150) 는 하드웨어로 구현될 수 있다. 그러나, 다른 구성들에서, 정점 프로세싱 모듈 (132) 및 픽셀 프로세싱 모듈 (144) 이 하드웨어로 구현될 수도 있고, 또는 좌측 프레임 버퍼 (148) 및 우측 프레임 버퍼 (152) 가 좌측 및 우측 이미지들 양측 모두를 보유하는 단일 프레임 버퍼로 대체될 수도 있다. 추가로, 전술한 바와 같이, 시스템 (100) 은 단지 본 개시물의 기법들을 구현할 수 있는 시스템의 기능 개관을 제공하고자 한 것에 불과하며, 그래픽 파이프라인의 몇몇 양태들은 설명을 목적으로 단순화되거나 또는 생략되었다.
도 2 는 본 개시물에서 설명되는 하나 이상의 예시적인 기법들을 구현할 수도 있는 디바이스의 일 예를 도시하는 블록도이다. 예를 들면, 도 2 는 디바이스 (210) 를 예시한다. 디바이스 (210) 의 예들은, 모바일 무선 전화기들, 개인휴대 정보단말들 (PDAs), 비디오 디스플레이들을 구비한 비디오 게이밍 콘솔들, 모바일 비디오 회의 유닛들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 텔레비전 셋톱 박스들 등을 포함하지만 이들로 제한되지는 않는다. 도 2 에 예시된 바와 같이, 디바이스 (210) 는 애플리케이션 프로세서 (212), 그래픽 프로세싱 유닛 (GPU) (220), 및 시스템 메모리 (226) 를 구비할 수도 있다. 디바이스 (210) 는 도 2 에 예시된 것들 외의 컴포넌트들을 구비할 수도 있다. 본 개시물의 일부분은 전반적으로 애플리케이션 프로세서 및 GPU 양측 모두를 활용하는 시스템을 참조하여 3D-S3D 변환 기법들을 설명할 것이지만, 본 개시물에서 설명되는 기법들은 반드시 그러한 시스템들로 제한되는 것은 아니다. 예를 들어, 본 개시물의 3D-S3D 변환 기법들 중 일부는, 예를 들어 GPU 없이 애플리케이션 프로세서 단독으로만 수행될 수도 있다.
애플리케이션 프로세서 (212) 는 디바이스 (210) 의 중앙 처리 유닛 (CPU) 일 수도 있다. GPU (220) 는 디스플레이 상에서의 프레젠테이션을 위해 그래픽 데이터를 출력하도록 동작가능한 프로세싱 유닛일 수도 있다. 애플리케이션 프로세서 (212) 및 GPU (220) 의 예들은, 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, 주문형 집적회로 (ASIC), 필드 프로그램가능 로직 어레이 (FPGA), 또는 기타 동등한 집적 또는 개별 로직 회로를 포함하지만 이들로 제한되지는 않는다.
시스템 메모리 (226) 는 컴퓨터 판독가능 저장 매체의 일 예일 수도 있다. 예를 들어, 시스템 메모리 (226) 는 애플리케이션 프로세서 (212) 및 GPU (220) 로 하여금 본 개시물에서 각각에 주어진 기능들을 수행하게 하는 명령들을 저장할 수도 있다. 이 방식으로, 시스템 메모리 (226) 는 하나 이상의 프로세서들, 예컨대 애플리케이션 프로세서 (212) 또는 GPU (220) 로 하여금, 다양한 기능들을 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서 간주될 수도 있다.
시스템 메모리 (226) 의 예들은, 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 전기 소거가능 프로그램가능 판독 전용 메모리 (EEPROM), CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 운반하거나 저장하는 데 사용될 수 있고 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 그것들로 제한되지는 않는다. 시스템 메모리 (226) 는, 일부 예들에서, 비일시적 저장 매체로서 간주될 수도 있다. 용어 "비일시적 (non-transitory)" 은 저장 매체가 반송파 또는 전파되는 신호로 구현되지 않음을 나타낼 수도 있다. 그러나, 용어 "비일시적" 은 시스템 메모리 (226) 가 이동가능하지 않은 것을 의미하도록 해석되지 않아야 한다. 일 예로서, 시스템 메모리 (226) 는 디바이스 (210) 로부터 제거되고, 다른 디바이스로 이동될 수도 있다. 다른 예로서, 시스템 메모리 (226) 와 실질적으로 유사한 저장 디바이스는, 디바이스 (210) 내에 삽입될 수도 있다. 특정 예들에서, 비일시적 저장 매체는 (예컨대, RAM 내에서) 시간 경과에 따라 변화할 수 있는 데이터를 저장할 수도 있다.
GPU (220) 는 고정 기능 파이프라인을 갖는 GPU 의 일 실시예를 도시하지만, 본 개시물의 기법들은 또한 프로그래밍가능 엘리먼트들을 포함하는 GPU들을 사용하여 구현될 수도 있다. GPU (220) 는 정점 프로세서 (222) 및 픽셀 프로세서 (224) 를 포함한다. 정점 프로세서 (222) 는 정점 프로세싱 기능들을 수행하는 하드웨어 유닛들을 포함할 수도 있고, 픽셀 프로세서는 픽셀 프로세싱 기능들을 수행하는 하드웨어 유닛들을 포함할 수도 있다. 다시 말해, 정점 프로세서 (222) 및 픽셀 프로세서 (224) 는 고정 기능들 및 최소의 기능적 가요성을 갖는 하드웨어 유닛들을 포함할 수도 있다. 그러나, 전술한 바와 같이, 본 개시물의 기법들은 고정 기능 파이프라인들을 갖는 GPU들로 제한되도록 의도되는 것은 아니다.
본 개시물에서 설명되는 예시적인 기법들은, 애플리케이션 프로세서 (212) 에 의해 구동되는 소프트웨어 애플리케이션을 이용하여 API 호출들을 인터셉트할 수도 있고, API 호출들을 수정하여 수정된 API 호출들을 생성할 수도 있다. 이 소프트웨어 애플리케이션은 도 2 에 그래픽 드라이버 래퍼 (216) 로서 도시된다. 수정된 API 호출들을 이용하여, GPU (220) 는 S3D 그래픽을 렌더링할 수 있다.
위에서 논의된 바와 같이, 입체 뷰는 좌안 이미지와 우안 이미지를 포함한다. 좌안 이미지와 우안 이미지는 모노 뷰 이미지와 실질적으로 유사한 이미지 콘텐츠를 포함한다; 그러나, 좌안 및 우안 이미지들의 하나 이상의 대응하는 픽셀들은 서로에 대해 수평 축을 따라 변위될 수도 있다. 예를 들어, 우안 이미지가 좌안 이미지의 상단에 위치된다고 상상한다. 이 경우, 우안 이미지에서의 콘텐츠의 모두는 좌안 이미지에서의 동일한 콘텐츠와 완전히 일렬로 되지 않을 수도 있다. 오히려, 우안에서의 하나 이상의 오브젝트들은 좌안 이미지에서의 동일한 오브젝트들의 좌측 또는 우측에 있을 수도 있다.
좌안 이미지는 뷰어의 좌안에 의해 뷰잉 가능하고, 우안 이미지는 뷰어의 좌안으로부터 차단된다. 우안 이미지는 뷰어의 우안에 의해 뷰잉 가능하고, 좌안 이미지는 뷰어의 우안으로부터 차단된다. 일부 예들에서, 뷰어는 좌안 이미지를 우안에 의해 뷰잉 가능하게 되는 것으로부터 그리고 우안 이미지를 좌안으로부터 볼 수 있게 되는 것으로부터 차단하는 특수 안경을 착용할 수도 있다. 그러나, 본 개시물의 양태들은 뷰어가 반드시 특수 안경을 착용할 것을 요구하는 것은 아니다. 예를 들어, 일부 디스플레이들은 입체 뷰를 경험하기 위해 뷰어가 특수 안경을 착용하는 것을 요구하지 않는다. 본 개시물의 기법들은 이러한 상황들로 확장될 수도 있다.
GPU (20) 는, 뷰어가 좌안 이미지 및 우안 이미지 양쪽 모두를 동시에 보는 경우, 뷰어의 뇌가 뷰어로 하여금 두 개의 이미지들을 디스플레이하는 디스플레이 밖으로 튀어나오거나 디스플레이 속으로 밀려들어간 (예컨대, 디스플레이 앞 또는 뒤에 있는 것으로 보이는) 이미지를 인식하게 하도록, 좌안 이미지 및 우안 이미지에 대한 그래픽 데이터를 생성할 수도 있다. 이 밖으로 튀어나옴 또는 속으로 밀려들어감은 뷰어의 뇌가 입체 뷰의 두 개의 이미지들의 실질적으로 유사한 콘텐츠와의 수평 불일치들을 해소하기 때문이다.
일 예로서, 애플리케이션 프로세서 (212) 는 시스템 메모리 (226) 에 저장된 하나 이상의 애플리케이션들, 이를테면 애플리케이션 (232) 을 실행할 수도 있다. 애플리케이션 (232) 의 예들은, 웹 브라우저들, 이메일 애플리케이션들, 스프레드시트들, 비디오 게임들, 또는 디스플레이를 위한 뷰잉가능 오브젝트들을 생성하는 다른 애플리케이션들을 포함하지만 이들로 제한되지는 않는다. 예를 들면, 애플리케이션 (232) 은 실행되는 경우 디스플레이 상에 디스플레이되는 3D 그래픽 콘텐츠를 출력하는 비디오 게임일 수도 있다.
애플리케이션 (232) 은 모노 뷰를 위해 개발자에 의해 설계될 수도 있다. 예를 들어, 애플리케이션 (232) 은, 실행 시, 3D 그래픽 콘텐츠가 디스플레이의 2D 영역으로 제한되는 3D 그래픽 콘텐츠를 생성할 수도 있다. 애플리케이션 (232) 은, 애플리케이션 프로세서 (212) 상에서의 실행 시, 생성된 3D 그래픽 콘텐츠를 삼각형들, 직사각형들, 또는 다른 유형들의 다각형들과 같은 프리미티브들로 분할할 수도 있다. 이들 프리미티브들의 각각은 디스플레이 상에 디스플레이될 픽셀들을 렌더링하는 데 이용될 수도 있다. 애플리케이션 (232) 은, 애플리케이션 프로세서 (212) 상에서의 실행 시, 또한 프리미티브들의 정점들의 각각에 대한 픽셀 값들을 렌더링할 수도 있다. 예를 들어, 그 값들은 정점들의 3D 좌표들, 정점들의 컬러 값들, 및 정점들의 투명도 값들을 포함할 수도 있다. 그 값들은 본 개시물의 모든 양태에서 위의 예시적인 성분들의 모두를 포함할 필요는 없다.
애플리케이션 프로세서 (212) 는 그 다음에 정점들에 대한 픽셀 값들을 추가의 프로세싱을 위해 GPU (220) 로 포워딩할 수도 있다. 예를 들어, 애플리케이션 프로세서 (212) 는 그래픽 드라이버 (214) 를 구비할 수도 있으며, 그 드라이버는 애플리케이션 프로세서 (212) 상에서 실행되는 소프트웨어일 수도 있다. 그래픽 드라이버 (214) 는 커맨드들을 GPU (220) 로 송신하도록 설계될 수도 있고, 응답하여, GPU (220) 는 수신된 커맨드들에 따라 기능들을 수행할 수도 있다. 예를 들어, 그래픽 드라이버 (214) 는 GPU (220) 와 애플리케이션 프로세서 (212) 사이의 인터페이스로서 기능을 한다. 애플리케이션 프로세서 (212) 가 GPU (220) 로 커맨드를 발행하는 경우, GPU (220) 가 커맨드를 수신하는 것은 그래픽 드라이버 (214) 를 통해서이다. 예를 들면, 애플리케이션 (232) 은, 애플리케이션 프로세서 (212) 상에서 실행되면, GPU (220) 에게 특정 태스크를 수행할 것을 명령할 수도 있다. 이 경우, 그래픽 드라이버 (214) 는 특정 태스크에 대해 애플리케이션 (232) 으로부터 명령을 수신할 수도 있고, 그 명령을 GPU (220) 에게 제공할 수도 있다. 응답하여, GPU (220) 는 그 태스크를 수행할 수도 있다.
일부 예들에서, 그래픽 드라이버 (214) 는 특정 API 에 따라 설계될 수도 있다. 예를 들어, 그래픽 드라이버 (214) 는 크로노스 그룹 (Khronos Group) 의 API들인 OpenGL 또는 OpenGL ES (내장형 시스템) API들에 따라 설계될 수도 있고, 그것들의 사양들은 공개적으로 입수가능하다. 그러나, 본 개시물의 기법들은 마이크로소프트 DirectX 시스템, 이를테면 DirectX 9, 10, 또는 11, 또는 임의의 다른 그래픽 시스템 및 API들로 확장가능할 수도 있다. 예시의 목적을 위해, 본 개시물의 기법들은 API 가 OpenGL EX 1.1 API 인 상황에서 설명된다. 그러나, 본 개시물의 양태들은 그렇게 제한되지 않고, 다른 API들 또는 그래픽 시스템들로 확장될 수 있다.
애플리케이션 프로세서 (212) 로부터 수신된 프리미티브들을 렌더링하기 위해, GPU (220) 는 정점 프로세서 (222) 와 같은 하나 이상의 정점 프로세서들 및 픽셀 프로세서 (224) 와 같은 하나 이상의 픽셀 프로세서들을 포함하여 디스플레이의 픽셀들에 대한 픽셀 값들을 생성할 수도 있다. GPU (220) 는 또한 도시되지 않은 다른 엘리먼트들을 포함할 수도 있다. 본 개시물의 기법들은 특정 GPU 아키텍처로 제한되지는 않는다. 개발자는 정점 프로세서 (222) 및 픽셀 프로세서 (224) 의 기능들에 따라서 그리고 예시 목적으로 본 개시물에서 사용되는, OpenGL EX 1.1 API 와 같은 API 에 따라서 그래픽 애플리케이션들을 개발할 수도 있다.
위에서 설명된 바와 같이, 애플리케이션 (232) 은 프리미티브들의 정점들에 대한 좌표들을 생성할 수도 있다. 이들 좌표들은 월드 좌표들이라고 지칭될 수도 있고, 애플리케이션 (232) 에 특정될 수도 있다. 다르게 말하면, 애플리케이션 (232) 에 의해 정의된 바와 같은, 정점들의 좌표들은, 반드시 프리미티브들이 디스플레이되는 디스플레이의 좌표들일 필요는 없을 수도 있고, 또한 가능하게는 뷰잉 가능 영역 밖에 있는 정점들에 대한 좌표들일 수도 있다. 정점 프로세서 (222) 는 3D 로 있을 수도 있는 월드 좌표들을 디스플레이의 2D 좌표들 (예컨대, 디스플레이 좌표들) 로 변환하도록 설계될 수도 있다. 이 기능을 수행하기 위해, 정점 프로세서 (222) 는 월드 좌표들을 눈 좌표들로 변환한 다음, 클리핑 좌표들로 변환할 수도 있다. 예를 들어, 정점 프로세서 (222) 의 출력은, 실행되는 경우, 정점들의 클리핑 좌표들일 수도 있다. 최종 디스플레이 좌표들, 예컨대 디스플레이의 좌표들은, 픽셀 프로세서 (224) 에 의해 후속하여 결정될 수도 있다.
클리핑 좌표들은 뷰 프루스텀 (frustum) 을 정의할 수도 있다. 뷰 프루스텀은 3D 그래픽 콘텐츠의 뷰잉 가능 영역을 정의할 수도 있다. GPU (220) 는 뷰 프루스텀 외부에 존재하는 픽셀들을 컬링 (culling) 하는 데 뷰 프루스텀을 활용할 수도 있다. 예를 들어, GPU (220) 의 고정 기능 유닛 (예컨대, 픽셀 프로세스 (224)) 은 애플리케이션 (232) 에 의해 생성된 클리핑 좌표들에 의해 정의된 바와 같이, 뷰 프루스텀 밖에 존재하는 픽셀들을 컬링할 수도 있다.
월드 좌표들로부터 클리핑 좌표들을 계산하기 위한 수학식은 다음과 같을 수도 있으며:
(수학식 1)
Figure pct00001
여기서 Vclip 는 정점 클리프 좌표들이며, Veye 는 정점 눈 좌표들이며, Vworld 는 애플리케이션 (232) 에 의해 제공된 정점 월드 좌표들이며, PRJ 는 투영 행렬 (projection matrix) 이고, MVT 는 모델 뷰 변환 행렬 (또는 월드 뷰 변환 행렬) 이다. 일부 예들에서, PRJ 및 MVT 행렬들은, MVP = PRJ*MVT 인, 위 수학식 1 에 나타낸 바와 같이, 모델 뷰 투영 행렬 또는 MVP 라고 지칭될 수 있는 단일 행렬로 조합될 수도 있다.
투영 행렬 (PRJ) 및 모델 뷰, 또는 월드 뷰, 변환 행렬 (MVT) 은 API 에 의해 정의될 수도 있다. 용어들 모델 뷰 및 월드 뷰는 상호 교환 가능하게 사용될 수도 있다. Vclip, Veye, 및 Vworld 는 네 개의 컴포넌트들 (예컨대, x, y, z, 및 w 좌표들) 을 포함할 수도 있다. 예를 들어, Vclip, Veye, 및 Vworld 는 다음과 같이 표현될 수도 있다:
(수학식 2)
Figure pct00002
OpenGL 및 OpenGL ES API들은 PRJ 행렬을 다음과 같이 정의한다:
(수학식 3)
Figure pct00003
여기서 L 및 R 은 좌측 및 우측 수직 클리핑 평면들에 대한 좌표들을 특정하며, B 및 T는 각각 하부 및 상부 수평 클리핑 평면들에 대한 좌표들을 특정하고, znear 및 zfar 는 근거리 및 원거리 깊이 클리핑 평면들에 대한 거리들을 특정한다. 이 방식으로, L 및 R 은 뷰포트의 폭을 특정하고, B 및 T 는 뷰포트의 높이를 특정한다. 대칭 뷰포트의 경우에 있어서, -L 은 R 과 동일할 수 있고, -B 는 T 와 동일할 수 있다.
일부 예들에서, 클리핑 평면들은 대칭적일 수도 있다. 예를 들어, -L 은 R 과 동일할 수도 있고, -B 는 T 와 동일할 수도 있다. 이들 인스턴스들에서, PRJ 행렬은 다음과 같이 단순화될 수도 있다:
(수학식 4)
Figure pct00004
OpenGL 및 OpenGL ES API들은 MVT 행렬을 다음과 같이 정의한다:
(수학식 5)
Figure pct00005
PRJ 및 MVT 행렬들의 변수들의 모두는 애플리케이션 프로세서 (212) 상에서 실행되는 애플리케이션 (232) 에 의해 정의될 수도 있고, 그래픽 드라이버 (214) 는 이들 변수들을 정점 프로세서 (222) 에 제공할 수도 있다. 수학식 1, 4, 및 5 로부터 알 수 있듯이, 이들 변수들을 이용하여, 정점 프로세서 (222) 는 정점들의 각각에 대한 Vclip 좌표들을 결정할 수도 있다. GPU (220) 는 정점들에 대한 클립 좌표들을 활용할 수도 있으며, 추가의 기능을 수행하여 디스플레이를 위해 이미지를 렌더링할 수도 있다. 이 방식으로, GPU (220) 는 애플리케이션 (232) 에 의해 생성된 3D 그래픽 콘텐츠에 대해 모노 뷰를 생성할 수도 있다.
본 개시물에서 설명되는 하나 이상의 예시적인 기법들에서, 애플리케이션 프로세서 (212) 상에서 실행하는 소프트웨어일 수도 있는 그래픽 드라이버 랩퍼 (216) 는, 모노 뷰에 대한 클리핑 좌표들을 정의하여 입체 뷰에 대한 클리핑 좌표들 (예컨대, 좌안 이미지에 대한 클리핑 좌표들 및 우안 이미지에 대한 클리핑 좌표들) 을 정의하는 API 호출들을 수정할 수도 있다. 또한, 그래픽 드라이버 랩퍼 (216) 는, 클리핑 좌표들을 정의하는 API 호출들을 수정하는 것에 더해, 모노 뷰에 대한 뷰포트를 정의하는 API 호출들을 수정하여 입체 뷰에 대한 뷰포트들을 정의할 수도 있다. 예를 들어, 애플리케이션 (232) 은 이미지를 디스플레이하는 디스플레이 상에서 단일 이미지 (예컨대, 모노 뷰) 의 사이즈 및 로케이션을 정의할 수도 있다. 그래픽 드라이버 래퍼 (216) 는 단일 이미지의 사이즈 및 로케이션을 정의하는 API 호출들을 수정하여 좌안 이미지 및 우안 이미지의 사이즈 및 로케이션을 정의하는 수정된 API 호출들 (예컨대, 좌안 이미지를 위한 뷰포트 및 우안 이미지를 위한 뷰포트에 대한 명령들) 을 생성할 수도 있다. 이 방식으로, 그래픽 드라이버 래퍼 (216) 는 모노 뷰에 대한 단일 API 호출을 인터셉트할 수도 있고, 좌측 뷰 및 우측 뷰 양측 모두에 대한 수정된 API 호출들을 생성할 수도 있다.
그래픽 드라이버 래퍼 (216) 가 API 호출을 어떻게 수정할 수 있는지의 일 실시예로서, 그래픽 드라이버 래퍼는 API 호출을 전술한 PRJ 및 MVT 에 대한 변수들로 인터셉트할 수 있다. 전술한 바와 같이, PRJ 및 MVT 에 대한 변수들은 모노 3D 뷰를 클리핑 좌표들 Vclip 로 렌더링하도록 GPU (220) 에 의해 이용될 수 있다. 그래픽 드라이버 래퍼 (216) 는 API 호출을 수정하여, 클리핑 좌표들 Vclipleft _ eye 을 갖는 좌측 이미지 및 클리핑 좌표들 Vclipright _ eye 을 갖는 우측 이미지를 생성할 수 있다.
위의 수학식 1 에 나타낸 바와 같이, Vclip = PRJ*Veye = PRJ*MVT*Vworld 이다. Vclip 에 대한 수학식은 좌안에 대한 클리핑 좌표들 및 우안에 대한 클리핑 좌표들을 생성하기 위해 수정될 수도 있다. 예를 들어, 좌안 및 우안에 대한 클리핑 좌표들은 다음과 같을 수도 있다:
(수학식 6)
Figure pct00006
(수학식 7)
Figure pct00007
VTleft _ eye 및 VTright _ eye 는 모노 뷰로부터 떨어져 있는 좌안 및 우안의 가정된 거리에 기초하는 4x4 뷰 변환 행렬들일 수도 있다. 예를 들어, 모노 뷰의 좌표들이 (0, 0, 0) 인 것으로 상정되면, 좌안은 (-D, 0, 0) 에 위치된 것으로 간주될 수도 있고, 우안은 (D, 0, 0) 에 위치된 것으로 간주될 수도 있다. 다르게 말하면, (0, 0, 0) 로케이션은 뷰어의 우안 및 좌안의 중간에 있는 것으로 간주될 수도 있다. 좌안이 우안 및 좌안의 중간으로부터 -D 떨어져서 위치된 것으로 간주되고 우안이 우안 및 좌안의 중간으로부터 +D 떨어져서 위치된 것으로 간주되면, D 는 뷰어의 우안 및 좌안 사이의 거리의 절반을 나타낸다.
VTleft _ eye 및 VTright _ eye 에 대한 뷰 변환 행렬들은 다음과 같이 정의될 수도 있다:
(수학식 8a)
Figure pct00008
(수학식 9a)
Figure pct00009
VTleft _ eye 및 VTright _ eye 는 2 개의 행렬들의 합으로서 다시 쓰여질 수도 있다. 예를 들어, VTleft _ eye 는 다음과 같이 다시 쓰여질 수도 있다:
(수학식 8b)
Figure pct00010
VTright _ eye 는 다음과 같이 다시 쓰여질 수도 있다:
(수학식 9b)
Figure pct00011
VTleft _ eye 행렬을 Vclipleft _ eye에 대한 수학식 (수학식 6) 으로 치환함으로써, Vclipleft_eye 는 다음과 같이 된다:
(수학식 10)
Figure pct00012
VTright _ eye 행렬을 Vclipright _ eye 에 대한 수학식 (수학식 7) 으로 치환함으로써, Vclipright _ eye 는 다음과 같이 된다:
(수학식 11)
Figure pct00013
수학식 10 및 11 양측 모두에서, 예컨대 Vclipleft _ eye 및 Vclipright _ eye 양측 모두에 대해,
Figure pct00014
는 PRJ*MVT*Vworld 로 단순화될 수 있는데, 이는
Figure pct00015
이 단위 행렬이고 1 에 의해 곱해진 것과 등가이기 때문이다.
위의 수학식 1 에서 설명된 바와 같이, PRJ*MVT*Vworld 는 MVP*Vworld 이다. 그러므로, Vclipleft _ eye 및 Vclipright _ eye 수학식들 (예컨대, 각각 수학식 10 및 11) 은 다음과 같이 다시 쓰여질 수 있다:
(수학식 12)
Figure pct00016
(수학식 13)
Figure pct00017
PRJ 에 대한 행렬 (수학식 3 및 4) 및 MVT에 대한 행렬 (수학식 5) 을 치환하고 수학식 10 의 행렬 곱셈을 수행함으로써, Vclipleft _ eye 에 대한 수학식은 다음으로 단순화될 수도 있으며:
(수학식 14)
Figure pct00018
그리고 더 구체적으로는 다음으로 될 수도 있다:
(수학식 15)
Figure pct00019
Vclipleft _ eye 에 대한 것들과 유사한 치환들로, Vclipright _ eye 는 다음으로 단순화될 수도 있다:
(수학식 16)
Figure pct00020
전술한 좌측 뷰 변환 행렬 (VTleft _ eye) 을 이용하여, 그래픽 드라이버 래퍼 (216) 는 3D 이미지에 대한 API 호출을 수정하여 좌안 3D 이미지를 생성할 수 있다. 마찬가지로, 전술한 우측 뷰 변환 행렬 (VTright _ eye) 을 이용하여, 그래픽 드라이버 래퍼 (216) 는 3D 이미지에 대한 API 호출을 수정하여 우안 3D 이미지를 생성할 수 있다. 좌안 3D 이미지 및 우안 3D 이미지를 동시에 디스플레이함으로써, 디바이스 (210) 는 S3D 이미지를 렌더링할 수 있다.
수학식 7-16 과 관련하여 전술한 기법들은, GPU (220) 또는 그래픽 드라이버 (214) 에 대한 수정 없이 API 호출들을 수정함으로써 구현될 수도 있다. 수학식 7-16 과 관련하여 설명된 기법들은 프루스텀 (frustum) 독립적 S3D 렌더링 근사화에 이용될 수 있다. 설명된 기법들은, 그들이 glFrustum() 호출에 포함될 수도 있는 파라미터들과 같은 특정 프루스텀 파라미터들의 지식을 요구하지 않기 때문에 프루스텀 독립적인 것으로 간주된다. 본 개시물의 기법들은 Vclipleft _ eye 및 Vclipright_eye 을 결정하지만 우측 및 좌측 뷰에 대해 각각 D 및 -D 만큼 뷰잉 로케이션을 시프트시킬 때 오리지널 콘텐츠에 의해 정의된 동일한 뷰잉 프루스텀을 사용하는 것을 포함한다. 각각의 눈에 대해 평행한 뷰잉 방향들을 상정한 결과로서, 좌측 뷰 변환 및 우측 뷰 변환 양측 모두는 수학식 8a, 8b, 9a 및 9b 를 참조하여 전술한 바와 같이 수평방향의 시프트를 갖고 아이덴티티 행렬에 가까운 것으로 상정될 수 있다. (예컨대, PRJ, 위 수학식 3 또는 4 에 의해 설명된 바와 같은) 동일한 투영 행렬은 좌안 및 우안 양측 모두에 대해 결정될 수 있고 사용될 수 있다. 본 개시물의 기법들에 따라 S3D 이미지를 생성하기 위해, PRJ 를 결정하는 데 사용되는 파라미터들 또는 PRJ 에 대한 실제 값들을 아는 것이 필수적인 것은 아니다. 마찬가지로, 본 개시물의 기법들에 따르면, MVT 를 결정하는 데 사용되는 파라미터들 또는 MVT 에 대한 실제 값들을 아는 것이 필수적인 것은 아니다. 파라미터들 PRJ 및 MVT 가 포함할 수도 있는 것이 무엇이든, 파라미터들은 하나의 행렬 MVP 로서 처리될 수 있다. S3D 이미지를 생성하기 위해, 상수 2*Z near *D/(R-L) 은 MVP 행렬의 제 1 행 및 제 4 열에 있는 엘리먼트로부터 가산 또는 감산될 수 있다. 임의의 주어진 3D 콘텐츠에 대해, Z near /(R-L) 의 값은 상수일 수 있다. 따라서, Z near /(R-L) 과 D 를 조합하는 것은 여전히 상수를 산출한다. 몇몇 구현형태들에서, 상이한 상수들은 정확하고 충분한 S3D 효과를 생성하는 것을 발견할 때까지 시도될 수 있다. MVP 만이 수정될 때, 본 개시물의 기법들은 PRJ 및 MVT 에 대한 개별 행렬들을 수신하고 또는 수신하지 않고 작업할 수 있다.
도 3a 에 도시한 바와 같이, 좌측 이미지 (320) 의 일부 및 우측 이미지 (310) 의 일부는 디스플레이 평면 (330) 상에서 렌더링될 때 최종 S3D 이미지로부터 크로핑될 수도 있다. 명료성을 위해, 도 3a 는 디스플레이 평면 (330) 의 약간 앞쪽에 좌측 이미지 (320) 를 도시하고 디스플레이 평면 (330) 의 약간 뒷쪽에 우측 이미지 (310) 를 도시한다. 그러나, 이것은 좌측 이미지 (320) 및 우측 이미지 (310) 가 디스플레이 평면 (330) 상에서 실제로 렌더링될 때, 도 3a 를 구성하는 것에 불과하다. 동일한 뷰잉 프러스텀이 좌측 이미지 (320) 및 우측 이미지 (310) 를 생성하는 데 이용되므로, S3D 이미지의 제로 격차 평면 (zero disparity plane : ZDP) 은 디스플레이 평면 (330) 앞에 나타나서, 뷰어로 하여금 튀어나오는 효과를 인식하게 할 수도 있다. 더 상세히 후술하는 바와 같이, 이 효과는 좌안 이미지 및 우안 이미지의 뷰포트 오프셋을 시프트시킴으로써 반전될 수 있다.
몇몇 구현형태들에서, 좌안 이미지 및 우안 이미지의 뷰포트 오프셋들에 적용되는 시프트의 양은 사용자 입력 파라미터에 기초할 수도 있다. 대칭 투영 행렬, 평행한 뷰잉 방향들, 및 뷰포트 오프셋들의 시프트를 이용하는 것에 의해 S3D 이미지에 대한 좌안 및 우안 뷰들을 생성하는 것을 포함하는 본 개시물의 기법들은, 몇몇 경우들에서, 런 타임 환경에서 고품질 S3D 이미지들을 렌더링하고, 디스플레이의 2D 영역에 의해 제한되는 이미지를 뷰잉하는 것에 비해 더 풍부하고 충분한 경험인 S3D 경험을 뷰어에게 제공할 수도 있다.
도 3b 는 본 개시물에서 설명되는 기법들을 이용하여 오브젝트 (오브젝트 A) 가 어떻게 시프트될 수 있는지의 일 예를 도시한다. 도 3b 는 대응하는 뷰포트 시프트들을 갖는 ZDP 변화의 도식을 도시한다. 도 3b 에서, 라인들 (301A, 301B) 은 뷰포트 시프트 이전의 우안 뷰포트를 나타내며, 라인들 (303A, 303B) 은 뷰포트 시프트 이후의 우안 뷰포트를 나타낸다. 라인들 (302A, 302B) 은 뷰포트 시프트 이전의 좌안 뷰포트를 나타내고, 라인들 (304A, 304B) 은 뷰포트 시프트 이후의 뷰포트를 나타낸다. 뷰포트들의 시프트의 깊이 변화에 대한 수학적 관계는 다음과 같이 도출될 수 있다:
Δ 는 포인트 A 에 위치하는 오브젝트의 투영 뷰포트 거리의 절반을 나타내고,
VP s 는 뷰포트들에 대한 뷰포트 시프트 양을 나타내고,
E 는 양안 간격의 절반의 거리를 나타낸다.
먼저, 좌안 및 우안의 포지션들과 포인트 A 및 A' 의 삼각함수에 기초하면 다음과 같다:
(수학식 17)
Figure pct00021
(수학식 18)
Figure pct00022
위 수학식 17 및 18 을 조합하면, 뷰포트 시프트 이후의 뷰어 공간에서의 오브젝트 거리는 다음과 같이 도출될 수 있다:
(수학식 19)
Figure pct00023
위 수학식 19 에 기초하면, 뷰어 공간 내의 새로운 ZDP 포지션은 수학식 20 에 기초하여 획득될 수 있다:
(수학식 20)
Figure pct00024
도 4 는 도 2 의 예시적인 디바이스를 더 상세히 예시한 블록도이다. 예를 들면, 도 4 는 도 2 의 디바이스 (210) 를 더 상세히 예시한다. 예를 들어, 위에서 나타낸 바와 같이, 디바이스 (210) 의 예들은, 모바일 무선 전화기들, PDA들, 비디오 디스플레이들을 구비한 비디오 게이밍 콘솔들, 모바일 비디오 회의 유닛들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 텔레비전 셋톱 박스들 등을 포함하지만 이들로 제한되지는 않는다.
도 4 에 예시된 바와 같이, 디바이스 (210) 는 애플리케이션 프로세서 (412), GPU (420), 프레임 버퍼 (452) 를 구비한 시스템 메모리 (426), 트랜시버 모듈 (456), 사용자 인터페이스 (458), 디스플레이 (460), 및 디스플레이 프로세서 (462) 를 구비할 수도 있다. 애플리케이션 프로세서 (412), GPU, 및 시스템 메모리 (426) 는 도 2 의 애플리케이션 프로세서 (212), GPU (220), 및 시스템 메모리 (226) 와 실질적으로 유사할 수도 있다. 간결함을 위해, 도 4 에 도시되어 있지만 도 2 에는 도시되어 있지 않은 컴포넌트들만이 상세히 설명된다.
도 4 에 예시된 바와 같은 디바이스 (210) 는, 명료함을 위해 도 4 에 도시되지 않은 부가적인 모듈들 또는 유닛들을 포함할 수도 있다. 예를 들어, 디바이스 (210) 는 디바이스 (210) 가 모바일 무선 전화기인 예들에서 전화 통신을 유효하게 하는, 도 4 에는 어느 것도 도시되지 않은 스피커 및 마이크로폰, 또는 디바이스 (210) 가 미디어 플레이어인 경우의 스피커를 구비할 수도 있다. 더욱이, 디바이스 (210) 에 도시된 다양한 모듈들 및 유닛들은 디바이스 (210) 의 모든 예에서 반드시 필수적이 아닐 수도 있다. 예를 들어, 사용자 인터페이스 (458) 및 디스플레이 (460) 는 디바이스 (210) 가 데스크톱 컴퓨터 또는, 외부 사용자 인터페이스 또는 디스플레이와 인터페이싱하도록 장착된 다른 디바이스인 예들에서 디바이스 (210) 외부에 있을 수도 있다.
사용자 인터페이스 (458) 의 예들은 트랙볼, 마우스, 키보드, 및 다른 유형들의 입력 디바이스들을 포함하지만 이들로 제한되지는 않는다. 사용자 인터페이스 (458) 는 또한 터치스크린일 수도 있고 디스플레이 (460) 의 일 부분으로서 통합될 수도 있다. 트랜시버 모듈 (456) 은 디바이스 (410) 와 다른 디바이스 또는 네트워크 사이의 무선 또는 유선 통신을 허용하는 회로를 포함할 수도 있다. 트랜시버 모듈 (46) 은 변조기들, 복조기들, 증폭기들, 및 유선 또는 무선 통신을 위한 다른 그러한 회로를 구비할 수도 있다. 디스플레이 (460) 는 액정 디스플레이 (LCD), 유기 발광 다이오드 디스플레이 (OLED), 음극선관 (CRT) 디스플레이, 플라즈마 디스플레이, 편광 디스플레이, 또는 다른 유형의 디스플레이 디바이스를 포함할 수도 있다.
디스플레이 프로세서 (462) 는 디스플레이 (460) 가 입체 뷰를 디스플레이하게 하도록 구성될 수도 있다. 디스플레이 프로세서 (462) 가 디스플레이 (460) 로 하여금 입체 뷰를 디스플레이하게 하도록 활용될 수도 있는 다양한 기법들이 있을 수도 있고, 본 개시물의 양태들은 이들 기법들 중 임의의 것을 활용할 수도 있다. 예를 들어, 디스플레이 프로세서 (462) 는 프레임 버퍼 (452) 의 좌측 절반으로부터 좌안 이미지를 취출할 수도 있고, 프레임 버퍼 (452) 의 우측 절반으로부터 우안 이미지를 취출할 수도 있고, 입체 뷰를 제공하기 위해 두 개의 이미지들을 함께 인터리브할 수도 있다.
다른 예로서, 디스플레이 프로세서 (462) 는 디스플레이 (460) 의 리프레시 레이트를 제어할 수도 있다. 이 예에서, 각각의 리프레시 사이클 동안, 디스플레이 프로세서 (462) 는 좌안 이미지와 우안 이미지 사이를 순환할 수도 있다. 예를 들면, 디스플레이 프로세서 (462) 는 프레임 버퍼 (452) 의 좌측 절반으로부터 좌안 이미지를 취출할 수도 있고, 그 좌안 이미지를 디스플레이 (460) 의 전부로 확장할 수도 있고, 그 좌안 이미지를 하나의 리프레시 사이클 동안 디스플레이 (460) 상에 디스플레이할 수도 있다. 그 다음에, 다음의 리프레시 사이클 동안, 디스플레이 프로세서 (462) 는 실질적으로 유사한 기능들을 수행하되, 프레임 버퍼 (452) 의 우측 절반에 저장된 우안 이미지에 대해 수행할 수도 있다. 다르게 말하면, 디스플레이 (460) 는 좌안 이미지, 그 다음에 우안 이미지, 그 다음에 좌안 이미지 등을 디스플레이할 수도 있다.
뷰어는 디스플레이 프로세서 (462) 의 리프레시 레이트와 동기화되는 특수 안경을 착용하고 있을 수도 있다. 예를 들어, 디스플레이 (460) 가 좌안 이미지를 디스플레이하고 있는 동안, 특수 안경은 뷰어의 좌안만이 좌안 이미지를 캡처하도록 우측 렌즈를 셔터로 닫을 수도 있다. 그 다음에, 디스플레이 (460) 가 우안 이미지를 디스플레이하고 있는 동안, 특수 안경은 뷰어의 우안만이 우안 이미지를 캡처하도록 좌측 렌즈를 셔터로 닫을 수도 있다는 등등이다. 리프레시 레이트가 충분히 빠르면, 뷰어는 이미지가 디스플레이 (460) 밖으로 튀어나오고 3D 볼륨을 이룬 입체 뷰를 인식한다.
일부 예들에서, 일부 종래의 디스플레이 프로세서들은 디스플레이 (460) 로 하여금 입체 뷰를 디스플레이하게 하도록 구성되지 않을 수도 있다. 이들 예들에서, 뷰어는 디바이스 (210) 를 디스플레이가 입체 뷰를 표현하게 하도록 구성되는 디스플레이 프로세서, 이를테면 디스플레이 프로세서 (462) 를 구비하는 디스플레이에 연결시킬 수도 있다. 예를 들어, 뷰어는 디바이스 (210) 를 트랜시버 모듈 (456) 을 통해 입체 뷰 가능 텔레비전에 연결시킬 수도 있다. 예를 들면, 뷰어는 트랜시버 모듈 (456) 을 고정밀 멀티미디어 인터페이스 (HDMI) 와이어를 통해 텔레비전에 연결시킬 수도 있다. 이 예에서, 애플리케이션 프로세서 (412) 또는 GPU (420) 는 프레임 버퍼 (452) 에 저장된 픽셀 값들을 텔레비전의 디스플레이 프로세서로 송신할 것을 트랜시버 모듈 (456) 에게 명령할 수도 있다. 그 다음에, 이 텔레비전의 디스플레이 프로세서는 텔레비전이 입체 뷰를 형성하기 위해 좌안 및 우안 이미지들을 디스플레이하게 할 수도 있다.
이들 예들에서, 디바이스 (210) 의 디스플레이가 좌안 및 우안 이미지들을 디스플레이하는 것이 여전히 가능할 수도 있다. 그러나, 디바이스 (210) 의 디스플레이 프로세서 (462) 는 디바이스 (410) 의 디스플레이 (460) 로 하여금 입체 뷰를 표현하게 하지 못할 수도 있기 때문에, 이 예에서, 디스플레이 (460) 는 좌안 이미지 및 우안 이미지를 나란히 디스플레이할 수도 있다. 예를 들어, 디스플레이 (460) 의 좌측 절반은 좌안 이미지를 디스플레이할 수도 있고, 디스플레이 (460) 의 우측 절반은 우안 이미지를 디스플레이할 수도 있다. 이는 위에서 설명된 뷰포트 변환 때문일 수도 있다. 이 경우, 특수 안경을 이용하고도, 뷰어는 디스플레이 (460) 를 단순히 보는 것만으로는 입체 뷰를 경험하지 못할 수도 있지만, 입체 뷰 가능 텔레비전을 보는 것에 의해 입체 뷰를 경험할 것이다.
도 5 는 본 개시물에서 설명되는 하나 이상의 예시적인 기법들에 따른 예시적인 3D-S3D 변환 동작을 예시한 흐름도이다. 전술한 바와 같이, 도 5 의 기법들을 포함하여 본 개시물에서 설명되는 3D-S3D 변환 기법들은 전술한 도 2 및 도 4 의 디바이스 (210) 와 같은 GPU 를 갖춘 시스템에 의해 수행될 수 있다.
도 5 의 기법들에 따르면, 도 2 의 그래픽 드라이버 래퍼 (214) 와 같은 그래픽 드라이버 래퍼는 API 호출을 인터셉트할 수 있다 (510). API 호출은, 예를 들어, 3D 그래픽 콘텐츠 (즉, 비입체 3D 콘텐츠) 를 생성하도록 구성된 애플리케이션으로부터의 것일 수 있다. API 호출로부터, 그래픽 드라이버 래퍼 (216) 는 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정할 수 있다 (520). 전술한 바와 같이, 모델 뷰 투영 행렬의 엔트리들에 대한 값들은, 그들 값들을 결정하는 데 이용되는 개별 파라미터들이 구체적으로 알려져 있지 않다 하더라도 결정될 수 있다. 몇몇 예들에서, 그래픽 드라이버 래퍼 (216) 는 전술한 바와 같은 PRJ*MVT 에 기초하여 모델 뷰 투영 행렬을 결정할 수도 있다. 그러나, 다른 예들에서, PRJ 및 MVT 는 그래픽 드라이버 래퍼 (216) 에게 알려져 있지 않을 수도 있다. 그래픽 드라이버 래퍼 (216) 는 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성할 수 있다 (530).
그래픽 드라이버 래퍼 (216) 는 수정된 모델 뷰 투영 행렬에 기초하여 좌측 뷰 클리핑 좌표들을 생성할 수 있다 (540). 좌측 뷰 클리핑 좌표들은, 예를 들어 PRJ*MVT 가 MVP 와 동일한, 전술한 수학식 6 에 따라 결정될 수 있다. 그래픽 드라이버 래퍼 (216) 는 수정된 모델 뷰 투영 행렬에 기초하여 우측 뷰 클리핑 좌표들을 생성할 수 있다 (550). 우측 뷰 클리핑 좌표들은, 예를 들어 PRJ*MVT = MVP 인, 전술한 수학식 7 에 따라 결정될 수 있다. GPU (220) 는 좌측 뷰 클리핑 좌표들에 기초하여 좌측 뷰를 생성할 수 있고 (560), GPU (220) 는 우측 뷰 클리핑 좌표들에 기초하여 우측 뷰를 생성할 수 있다 (570). GPU (220) 는 좌측 뷰 및 우측 뷰에 기초하여 S3D 이미지를 렌더링할 수 있다 (580). 디스플레이 상에서의 렌더링 이전에, GPU (220) 는 뷰포트 시프트를 좌측 뷰에 적용할 수 있고, 뷰포트 시프트를 우측 뷰에 적용할 수 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장될 수도 있다. 컴퓨터 판독가능 매체들은 컴퓨터 저장 매체들을 포함할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드들 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체들은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 디스크 (Disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, disk들은 보통 데이터를 자기적으로 재생하지만, disc들은 레이저들로써 광적으로 데이터를 재생한다. 상기한 것들의 조합들은 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
코드들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그램가능 로직 어레이들 (FPGAs), 또는 다른 동등한 집적 또는 개별 로직 회로에 의해 실행될 수도 있다. 따라서, 본원에서 사용되는 바와 같은 용어 "프로세서"는 앞서의 구조 또는 본원에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중의 어느 것을 나타낼 수도 있다. 또한, 본 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들 내에 완전히 구현될 수 있다.
본 개시내용의 기법들은 무선 핸드셋, 집적회로 (IC) 또는 한 세트의 IC들 (즉, 칩 셋) 을 포함하여, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 갖가지 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 약간 더 언급하면, 위에서 설명된 바와 같이, 갖가지 유닛들은 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되어 있다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (36)

  1. 비입체 3 차원 (3D) 콘텐츠를 입체 3D (S3D) 콘텐츠로 변환하는 방법으로서,
    애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하는 단계;
    상기 API 호출로부터, 상기 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하는 단계;
    상기 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하는 단계;
    상기 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하는 단계;
    상기 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하는 단계;
    상기 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하는 단계;
    상기 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하는 단계; 및
    상기 좌측 뷰 및 상기 우측 뷰에 기초하여, S3D 이미지를 렌더링하는 단계를 포함하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  2. 제 1 항에 있어서,
    상기 좌측 뷰에 뷰포트 시프트를 적용하는 단계; 및
    상기 우측 뷰에 뷰포트 시프트를 적용하는 단계를 더 포함하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  3. 제 2 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 하나 이상의 사용자 입력 파라미터들에 기초하여 결정되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  4. 제 2 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 이전에 생성된 이미지들의 장면들에 대한 깊이 범위를 결정하는 것에 기초하여 결정되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  5. 제 1 항에 있어서,
    상기 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하는 단계는 상기 모델 뷰 투영 행렬에 상수를 가산하는 단계를 포함하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  6. 제 5 항에 있어서,
    상기 상수는 상기 모델 뷰 투영 행렬의 제 1 행, 제 4 열에 있는 엘리먼트에 가산되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  7. 제 1 항에 있어서,
    상기 모델 뷰 투영 행렬은 상기 비입체 3D 콘텐츠에 대해 정의되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  8. 제 1 항에 있어서,
    시스템 커맨드를 수신하는 단계를 더 포함하며,
    상기 시스템 커맨드는 3D 콘텐츠가 S3D 콘텐츠로 변환하는 동작의 모드를 가능하게 하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  9. 제 1 항에 있어서,
    상기 좌측 뷰 클리핑 좌표들을 생성하는 데 이용된 상기 수정된 모델 뷰 투영 행렬에 대한 값들은 상기 우측 뷰 클리핑 좌표들을 생성하는 데 이용된 상기 수정된 모델 뷰 투영 행렬에 대한 값들과 동일한 것인, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 방법.
  10. 명령들을 저장하는 메모리;
    그래픽 프로세싱 유닛 (GPU); 및
    프로세서를 포함하되,
    상기 프로세서는, 상기 명령들의 실행 시에,
    애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하고;
    상기 API 호출로부터, 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하고;
    상기 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하게 하고;
    상기 GPU 로 하여금, 상기 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하게 하고;
    상기 GPU 로 하여금, 상기 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하게 하고;
    상기 GPU 로 하여금, 상기 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하게 하고;
    상기 GPU 로 하여금, 상기 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하게 하고;
    상기 GPU 로 하여금, 상기 좌측 뷰 및 상기 우측 뷰에 기초하여, S3D 이미지를 렌더링하게 하도록 동작 가능한, 디바이스.
  11. 제 10 항에 있어서,
    상기 프로세서는, 추가로,
    상기 GPU 로 하여금, 상기 좌측 뷰에 뷰포트 시프트를 적용하게 하고 상기 우측 뷰에 뷰포트 시프트를 적용하게 하도록 동작 가능한, 디바이스.
  12. 제 11 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 하나 이상의 사용자 입력 파라미터들에 기초하여 결정되는, 디바이스.
  13. 제 11 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 이전에 생성된 이미지들의 장면들에 대한 깊이 범위를 결정하는 것에 기초하여 결정되는, 디바이스.
  14. 제 10 항에 있어서,
    상기 프로세서는 상기 모델 뷰 투영 행렬에 상수를 가산함으로써 상기 모델 뷰 투영 행렬을 수정하는, 디바이스.
  15. 제 14 항에 있어서,
    상기 상수는 상기 모델 뷰 투영 행렬의 제 1 행, 제 4 열에 있는 엘리먼트에 가산되는, 디바이스.
  16. 제 10 항에 있어서,
    상기 모델 뷰 투영 행렬은 상기 비입체 3D 콘텐츠에 대해 정의되는, 디바이스.
  17. 제 10 항에 있어서,
    상기 프로세서는, 추가로,
    시스템 커맨드를 수신하도록 동작 가능하고,
    상기 시스템 커맨드는 3D 콘텐츠가 S3D 콘텐츠로 변환되는 동작의 모드를 가능하게 하는, 디바이스.
  18. 제 10 항에 있어서,
    상기 좌측 뷰 클리핑 좌표들을 생성하는 데 이용되는 상기 수정된 모델 뷰 투영 행렬에 대한 값들은 상기 우측 뷰 클리핑 좌표들을 생성하는 데 이용되는 상기 수정된 모델 뷰 투영 행렬에 대한 값들과 동일한 것인, 디바이스.
  19. 비입체 3 차원 (3D) 콘텐츠를 입체 3D (S3D) 콘텐츠로 변환하는 장치로서,
    애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하는 수단;
    상기 API 호출로부터, 상기 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하는 수단;
    상기 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하는 수단;
    상기 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하는 수단;
    상기 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하는 수단;
    상기 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하는 수단;
    상기 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하는 수단; 및
    상기 좌측 뷰 및 상기 우측 뷰에 기초하여, S3D 이미지를 렌더링하는 수단을 포함하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  20. 제 19 항에 있어서,
    상기 좌측 뷰에 뷰포트 시프트를 적용하는 수단; 및
    상기 우측 뷰에 뷰포트 시프트를 적용하는 수단을 더 포함하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  21. 제 20 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 하나 이상의 사용자 입력 파라미터들에 기초하여 결정되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  22. 제 20 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 이전에 생성된 이미지들의 장면들에 대한 깊이 범위를 결정하는 것에 기초하여 결정되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  23. 제 19 항에 있어서,
    상기 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하는 수단은 상기 모델 뷰 투영 행렬에 상수를 가산하는 수단을 포함하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  24. 제 23 항에 있어서,
    상기 상수를 가산하는 수단은 상기 모델 뷰 투영 행렬의 제 1 행, 제 4 열에 있는 엘리먼트에 상기 상수를 가산하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  25. 제 19 항에 있어서,
    상기 모델 뷰 투영 행렬은 상기 비입체 3D 콘텐츠에 대해 정의되는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  26. 제 19 항에 있어서,
    시스템 커맨드를 수신하는 수단을 더 포함하며,
    상기 시스템 커맨드는 3D 콘텐츠가 S3D 콘텐츠로 변환하는 동작의 모드를 가능하게 하는, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  27. 제 19 항에 있어서,
    상기 좌측 뷰 클리핑 좌표들을 생성하는 데 이용된 상기 수정된 모델 뷰 투영 행렬에 대한 값들은 상기 우측 뷰 클리핑 좌표들을 생성하는 데 이용된 상기 수정된 모델 뷰 투영 행렬에 대한 값들과 동일한 것인, 비입체 3 차원 콘텐츠를 입체 3 차원 콘텐츠로 변환하는 장치.
  28. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행 시, 하나 이상의 프로세서들로 하여금,
    애플리케이션 프로그램 인터페이스 (API) 호출을 인터셉트하게 하고;
    상기 API 호출로부터, 비입체 3D 콘텐츠에 대한 모델 뷰 투영 행렬을 결정하게 하고;
    상기 모델 뷰 투영 행렬을 수정하여 수정된 모델 뷰 투영 행렬을 생성하게 하고;
    상기 수정된 모델 뷰 투영 행렬에 기초하여, 좌측 뷰 클리핑 좌표들을 생성하게 하고;
    상기 수정된 모델 뷰 투영 행렬에 기초하여, 우측 뷰 클리핑 좌표들을 생성하게 하고;
    상기 좌측 뷰 클리핑 좌표들에 기초하여, 좌측 뷰를 생성하게 하고;
    상기 우측 뷰 클리핑 좌표들에 기초하여, 우측 뷰를 생성하게 하고;
    상기 좌측 뷰 및 상기 우측 뷰에 기초하여, S3D 이미지를 렌더링하게 하는, 컴퓨터 판독가능 저장 매체.
  29. 제 28 항에 있어서,
    실행 시, 상기 하나 이상의 프로세서들로 하여금,
    상기 좌측 뷰에 뷰포트 시프트를 적용하게 하고;
    상기 우측 뷰에 뷰포트 시프트를 적용하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  30. 제 29 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 하나 이상의 사용자 입력 파라미터들에 기초하여 결정되는, 컴퓨터 판독가능 저장 매체.
  31. 제 29 항에 있어서,
    상기 좌측 뷰에 대한 뷰포트 시프트의 양 및 상기 우측 뷰에 대한 뷰포트 시프트의 양은 이전에 생성된 이미지들의 장면들에 대한 깊이 범위를 결정하는 것에 기초하여 결정되는, 컴퓨터 판독가능 저장 매체.
  32. 제 28 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 모델 뷰 투영 행렬에 상수를 가산함으로써 상기 모델 뷰 투영 행렬을 수정하는, 컴퓨터 판독가능 저장 매체.
  33. 제 32 항에 있어서,
    상기 상수는 상기 모델 뷰 투영 행렬의 제 1 행, 제 4 열에 있는 엘리먼트에 가산되는, 컴퓨터 판독가능 저장 매체.
  34. 제 28 항에 있어서,
    상기 모델 뷰 투영 행렬은 상기 비입체 3D 콘텐츠에 대해 정의되는, 컴퓨터 판독가능 저장 매체.
  35. 제 28 항에 있어서,
    실행 시, 상기 하나 이상의 프로세서들로 하여금,
    시스템 커맨드를 수신하게 하는 명령들을 더 포함하며,
    상기 시스템 커맨드는 3D 콘텐츠가 S3D 콘텐츠로 변환하는 동작의 모드를 가능하게 하는, 컴퓨터 판독가능 저장 매체.
  36. 제 28 항에 있어서,
    상기 좌측 뷰 클리핑 좌표들을 생성하는 데 이용된 상기 수정된 모델 뷰 투영 행렬에 대한 값들은 상기 우측 뷰 클리핑 좌표들을 생성하는 데 이용된 상기 수정된 모델 뷰 투영 행렬에 대한 값들과 동일한 것인, 컴퓨터 판독가능 저장 매체.
KR1020137027107A 2011-03-14 2012-03-13 네이티브 모노스코픽 3d의 입체 3d 로의 런 타임 변환 KR101529812B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161452289P 2011-03-14 2011-03-14
US61/452,289 2011-03-14
US201161474638P 2011-04-12 2011-04-12
US61/474,638 2011-04-12
US13/418,206 2012-03-12
US13/418,206 US9219902B2 (en) 2011-03-14 2012-03-12 3D to stereoscopic 3D conversion
PCT/US2012/028941 WO2012125648A1 (en) 2011-03-14 2012-03-13 Run -time conversion of native monoscopic 3d into stereoscopic 3d

Publications (2)

Publication Number Publication Date
KR20130136536A true KR20130136536A (ko) 2013-12-12
KR101529812B1 KR101529812B1 (ko) 2015-06-17

Family

ID=46828080

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137027106A KR101556835B1 (ko) 2011-03-14 2012-03-12 셰이더 기반 그래픽 콘텐츠를 위한 입체 변환
KR1020137027107A KR101529812B1 (ko) 2011-03-14 2012-03-13 네이티브 모노스코픽 3d의 입체 3d 로의 런 타임 변환

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137027106A KR101556835B1 (ko) 2011-03-14 2012-03-12 셰이더 기반 그래픽 콘텐츠를 위한 입체 변환

Country Status (6)

Country Link
US (2) US9578299B2 (ko)
EP (2) EP2686833B1 (ko)
JP (2) JP5694577B2 (ko)
KR (2) KR101556835B1 (ko)
CN (2) CN103493102B (ko)
WO (2) WO2012125545A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010121945A2 (en) * 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
KR20130081569A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 3d 영상을 출력하기 위한 장치 및 방법
US9538164B2 (en) * 2013-01-10 2017-01-03 Qualcomm Incorporated Stereoscopic conversion with viewing orientation for shader based graphics content
JP2016511979A (ja) * 2013-03-13 2016-04-21 インテル コーポレイション 3次元画像編集のための改善された技術
US20140375663A1 (en) * 2013-06-24 2014-12-25 Alexander Pfaffe Interleaved tiled rendering of stereoscopic scenes
US10134170B2 (en) * 2013-09-26 2018-11-20 Intel Corporation Stereoscopic rendering using vertix shader instancing
KR102082132B1 (ko) * 2014-01-28 2020-02-28 한국전자통신연구원 2d 동영상으로부터 새로운 3d 입체 동영상 제작을 위한 장치 및 방법
US20150281679A1 (en) 2014-03-28 2015-10-01 Qualcomm Incorporated Pixel data generation for autostereoscopy images
CN104134231B (zh) * 2014-07-11 2017-02-01 南京乐飞航空技术有限公司 一种基于图像识别的海岸线构造方法
CN105635707A (zh) * 2014-11-06 2016-06-01 福州瑞芯微电子股份有限公司 一种图像生成方法和装置
US9626733B2 (en) * 2014-11-24 2017-04-18 Industrial Technology Research Institute Data-processing apparatus and operation method thereof
CN104486611A (zh) * 2014-12-29 2015-04-01 北京极维客科技有限公司 一种图像转换方法及装置
GB2536964B (en) 2015-04-02 2019-12-25 Ge Aviat Systems Ltd Avionics display system
US10186008B2 (en) * 2015-05-28 2019-01-22 Qualcomm Incorporated Stereoscopic view processing
KR102459850B1 (ko) 2015-12-03 2022-10-27 삼성전자주식회사 3d 이미지 처리 방법 및 장치, 및 그래픽 처리 장치
US10203747B2 (en) 2016-03-22 2019-02-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload placement based on heterogeneous compute performance per watt
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US10884761B2 (en) 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
US10460513B2 (en) 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US20180211434A1 (en) * 2017-01-25 2018-07-26 Advanced Micro Devices, Inc. Stereo rendering
WO2018140223A1 (en) * 2017-01-25 2018-08-02 Advanced Micro Devices, Inc. Stereo rendering
CN106993179A (zh) * 2017-02-24 2017-07-28 杭州电子科技大学 一种3d模型转立体双视点视图的方法
US20240070959A1 (en) * 2022-08-25 2024-02-29 Acer Incorporated Method and computer device for 3d scene generation
CN115457200B (zh) * 2022-08-31 2023-04-14 北京四维远见信息技术有限公司 2.5维图像自动真立体显示方法、装置、设备及存储介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2532267B1 (fr) 1982-08-31 1988-05-27 Lely Nv C Van Der Tracteur comportant une pluralite de roues motrices
US6496183B1 (en) 1998-06-30 2002-12-17 Koninklijke Philips Electronics N.V. Filter for transforming 3D data in a hardware accelerated rendering architecture
US6104405A (en) 1997-02-26 2000-08-15 Alternate Realities Corporation Systems, methods and computer program products for converting image data to nonplanar image data
US5982375A (en) 1997-06-20 1999-11-09 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes single-pass stereo capability
GB2358980B (en) 2000-02-07 2004-09-01 British Broadcasting Corp Processing of images for 3D display
GB0010685D0 (en) 2000-05-03 2000-06-28 Koninkl Philips Electronics Nv Autostereoscopic display driver
US20020154214A1 (en) 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US20040085310A1 (en) 2002-11-04 2004-05-06 Snuffer John T. System and method of extracting 3-D data generated for 2-D display applications for use in 3-D volumetric displays
AU2002952872A0 (en) 2002-11-25 2002-12-12 Dynamic Digital Depth Research Pty Ltd Image generation
US20040212612A1 (en) 2003-04-28 2004-10-28 Michael Epstein Method and apparatus for converting two-dimensional images into three-dimensional images
GB0410551D0 (en) 2004-05-12 2004-06-16 Ller Christian M 3d autostereoscopic display
US8004515B1 (en) * 2005-03-15 2011-08-23 Nvidia Corporation Stereoscopic vertex shader override
WO2007017834A2 (en) * 2005-08-09 2007-02-15 Koninklijke Philips Electronics N.V. Disparity value generator
JP4931038B2 (ja) 2005-11-22 2012-05-16 シャープ株式会社 立体視画像装置、ゲーム装置、立体視画像映写装置、立体視画像データ生成方法、制御プログラムおよび可読記録媒体
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
US8237739B2 (en) * 2006-09-12 2012-08-07 Qualcomm Incorporated Method and device for performing user-defined clipping in object space
US8149242B2 (en) * 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US7982733B2 (en) 2007-01-05 2011-07-19 Qualcomm Incorporated Rendering 3D video images on a stereo-enabled display
JP4836814B2 (ja) 2007-01-30 2011-12-14 株式会社東芝 3dディスプレイ用cg画像生成装置、3dディスプレイ用cg画像生成方法、及びプログラム
US7884823B2 (en) 2007-06-12 2011-02-08 Microsoft Corporation Three dimensional rendering of display information using viewer eye coordinates
JP4982862B2 (ja) 2007-09-07 2012-07-25 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
JP2009064355A (ja) 2007-09-07 2009-03-26 Cellius Inc プログラム、情報記憶媒体及び画像生成システム
US7675513B2 (en) * 2008-03-14 2010-03-09 Evans & Sutherland Computer Corp. System and method for displaying stereo images
US8279222B2 (en) 2008-03-14 2012-10-02 Seiko Epson Corporation Processing graphics data for a stereoscopic display
WO2010079921A2 (ko) 2009-01-12 2010-07-15 엘지 전자 주식회사 뎁스 정보를 이용한 비디오 신호 처리 방법 및 장치
US9001157B2 (en) 2009-03-25 2015-04-07 Nvidia Corporation Techniques for displaying a selection marquee in stereographic content
WO2010121945A2 (en) 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
GB2470759A (en) 2009-06-03 2010-12-08 Sony Comp Entertainment Europe Displaying videogame on 3D display by generating stereoscopic version of game without modifying source code
JP5647242B2 (ja) 2009-07-27 2014-12-24 コーニンクレッカ フィリップス エヌ ヴェ 3dビデオ及び補助データの結合
US8773449B2 (en) 2009-09-14 2014-07-08 International Business Machines Corporation Rendering of stereoscopic images with multithreaded rendering software pipeline
KR101631514B1 (ko) 2009-11-19 2016-06-17 삼성전자주식회사 전자기기에서 3차원 컨텐츠 생성 방법 및 장치
US8964013B2 (en) 2009-12-31 2015-02-24 Broadcom Corporation Display with elastic light manipulator

Also Published As

Publication number Publication date
US20120236002A1 (en) 2012-09-20
KR101556835B1 (ko) 2015-10-01
US9219902B2 (en) 2015-12-22
WO2012125545A1 (en) 2012-09-20
JP5694577B2 (ja) 2015-04-01
WO2012125648A1 (en) 2012-09-20
JP5882367B2 (ja) 2016-03-09
CN103444190A (zh) 2013-12-11
CN103444190B (zh) 2016-06-08
JP2014516427A (ja) 2014-07-10
EP2686833A1 (en) 2014-01-22
JP2014512032A (ja) 2014-05-19
CN103493102B (zh) 2016-11-09
EP2687018A1 (en) 2014-01-22
US9578299B2 (en) 2017-02-21
KR20130131480A (ko) 2013-12-03
EP2686833B1 (en) 2018-06-20
CN103493102A (zh) 2014-01-01
KR101529812B1 (ko) 2015-06-17
US20120235999A1 (en) 2012-09-20

Similar Documents

Publication Publication Date Title
KR101529812B1 (ko) 네이티브 모노스코픽 3d의 입체 3d 로의 런 타임 변환
KR101732836B1 (ko) 셰이더 기반의 그래픽스 콘텐츠에 대한 뷰잉 배향에 의한 입체 변환
US10237531B2 (en) Discontinuity-aware reprojection
KR101334187B1 (ko) 다시점 렌더링 장치 및 방법
US20110273437A1 (en) Data Dependent Method of Configuring Stereoscopic Rendering Parameters
EP3304896B1 (en) Stereoscopic view processing
US10708597B2 (en) Techniques for extrapolating image frames
WO2012113695A1 (en) A method and system for rendering a stereoscopic view
US10230933B2 (en) Processing three-dimensional (3D) image through selectively processing stereoscopic images
KR101208767B1 (ko) 곡면 투사를 이용한 입체 영상 생성 방법, 장치 및 시스템, 이를 위한 기록 매체
US11887228B2 (en) Perspective correct vector graphics with foveated rendering
TW202240547A (zh) 採用傾斜多視像影像匯聚平面的多視像顯示系統和方法
Lee et al. Eye tracking based glasses-free 3D display by dynamic light field rendering
KR101227183B1 (ko) 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법
KR20160034742A (ko) 초다시점 영상 렌더링 장치 및 방법
JP2022523020A (ja) 相互運用可能な3d画像コンテンツのハンドリング
CN118115693A (zh) 生成并排三维影像的方法及电脑装置
KR20120063349A (ko) 3d 입체 카툰 변환 방법 및 시스템, 이를 위한 기록매체

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

Year of fee payment: 4