KR20230091126A - 멀티뷰 이미지 수렴 평면 기울임을 채용하는 멀티뷰 디스플레이 시스템 및 방법 - Google Patents

멀티뷰 이미지 수렴 평면 기울임을 채용하는 멀티뷰 디스플레이 시스템 및 방법 Download PDF

Info

Publication number
KR20230091126A
KR20230091126A KR1020237016657A KR20237016657A KR20230091126A KR 20230091126 A KR20230091126 A KR 20230091126A KR 1020237016657 A KR1020237016657 A KR 1020237016657A KR 20237016657 A KR20237016657 A KR 20237016657A KR 20230091126 A KR20230091126 A KR 20230091126A
Authority
KR
South Korea
Prior art keywords
view
image
shear
display system
graphics pipeline
Prior art date
Application number
KR1020237016657A
Other languages
English (en)
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 KR20230091126A publication Critical patent/KR20230091126A/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
    • G06T15/205Image-based rendering
    • 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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/608Rotation of whole images or parts thereof by skew deformation, e.g. two-pass or three-pass rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/3406Control of illumination source
    • G09G3/342Control of illumination source using several illumination sources separately controlled corresponding to different display panel areas, e.g. along one dimension such as lines
    • G09G3/3426Control of illumination source using several illumination sources separately controlled corresponding to different display panel areas, e.g. along one dimension such as lines the different display panel areas being distributed in two dimensions, e.g. matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • 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/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • H04N13/279Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20228Disparity calculation for image-based rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0264Details of driving circuits
    • G09G2310/0297Special arrangements with multiplexing or demultiplexing of display data in the drivers for data electrodes, in a pre-processing circuitry delivering display data to said drivers or in the matrix panel, e.g. multiplexing plural data signals to one D/A converter or demultiplexing the D/A converter output to multiple columns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Generation (AREA)

Abstract

시스템들 및 방법들은 멀티뷰 이미지의 뷰를 메모리에 로딩하는 것에 관한 것이다. 뷰는 픽셀 좌표계에 의해 정의되는 비트맵으로서 포맷될 수 있다. 뷰와 중심 시점 사이의 거리가 식별될 수 있다. 이후, 뷰는 픽셀 좌표계의 축을 따라 적용되는 전단 함수에 따라 그래픽스 파이프라인에서 전단된 뷰로서 렌더링될 수 있다. 전단 함수의 전단 강도는 뷰와 중심 시점 사이의 거리와 상관된다.

Description

멀티뷰 이미지 수렴 평면 기울임을 채용하는 멀티뷰 디스플레이 시스템 및 방법
관련 출원에 대한 상호 참조
본 출원은, 그 전체가 본 명세서에 참조로서 통합되는, 2020년 11월 18일에 출원된 미국 가출원 제 63/115,531호의 우선권 이익을 주장한다.
연방 후원 연구 또는 개발에 관한 진술
N/A
3차원(3D) 공간의 장면은 시야각에 따라 여러 관점(perspective)들에서 보일 수 있다. 또한, 사용자가 입체시(stereoscopic vision)로 볼 때, 장면의 상이한 관점들을 나타내는 여러 뷰(view)들이 동시에 지각될 수 있어, 사용자가 지각할 수 있는 깊이감이 효과적으로 생성될 수 있다. 멀티뷰 디스플레이(multiview display)는 장면이 3D 세계에서 지각되는 방식을 나타내기 위해 여러 뷰들을 갖는 이미지를 표현한다. 멀티뷰 디스플레이는 상이한 뷰들을 동시에 렌더링하여 사용자에게 현실적인 경험을 제공한다. 멀티뷰 이미지는 소프트웨어에 의해 동적으로 생성되고 처리될 수 있다. 이후, 멀티뷰 이미지는 그래픽스 파이프라인(graphics pipeline)에 의해 실시간으로 렌더링될 수 있다. 그래픽스 파이프라인은 디스플레이를 위해 멀티뷰 이미지를 렌더링하는 경우 멀티뷰 이미지에 대해 다양한 연산을 적용할 수 있다.
본 명세서에 설명된 원리들에 따른 예들 및 실시 예들의 다양한 특징들은 동일한 도면 부호가 동일한 구조적 요소를 나타내는 첨부된 도면과 관련하여 취해진 다음의 상세한 설명을 참조하여 보다 용이하게 이해될 수 있다.
도 1은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 일 예로서 멀티뷰 이미지를 도시한다.
도 2는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지를 생성하는 일 예를 도시한다.
도 3은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지의 수렴 평면을 기울이는 일 예를 도시한다.
도 4는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지의 수렴 평면을 기울이는 컴퓨팅 시스템의 일 예를 도시한다.
도 5a 및 도 5b는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 전단 함수를 적용하는 일 예를 도시한다.
도 6은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 그래픽스 파이프라인과 인터페이싱하는 일 예를 도시한다.
도 7a 및 도 7b는 본 명세서에 설명된 원리들에 일치되는 실시 예들에 따라 멀티뷰 이미지의 렌더링을 구성하기 위한 사용자 인터페이스의 예들을 도시한다.
도 8은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 픽셀들이 샘플링됨에 따라 전단 함수를 적용하는 컴퓨팅 시스템의 일 예를 도시한다.
도 9는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지의 수렴 평면을 기울이는 시스템 및 방법의 흐름도를 도시한다.
도 10은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 디스플레이를 제공하는 멀티뷰 디스플레이 시스템의 예시적인 실례를 묘사하는 개략적인 블록도를 도시한다.
일부 예들 및 실시 예들은 전술한 도면들에 도시된 특징들에 부가되거나 그 대신에 포함되는 다른 특징들을 갖는다. 이들 및 다른 특징들은 전술한 도면을 참조하여 이하에서 설명된다.
본 명세서에 설명된 원리들에 따른 예들 및 실시 예들은 수렴 평면(plane of convergence)을 기울임(tilting)으로써 멀티뷰 이미지들을 지각하는 사용자의 경험을 개선하기 위한 기술들을 제공한다. 디폴트(default)로서, 수렴 평면은 일반적으로 카메라로부터 어느 정도 떨어진 거리에서 카메라 렌즈와 평행하다. 수렴 평면과 교차되는 객체들은, 이러한 객체들의 상이한 뷰들 간에 시차(disparity)가 존재하지 않도록, 초점이 맞게 나타난다. 그러나, 시점(point of view)이, 예를 들어 조감도(bird's-eye view) 각도와 같은 극단적인 각도로 변경되는 경우, 멀티뷰 이미지의 관심 객체들은 시청 경험에 부정적인 영향을 미치는 방식으로 시차를 갖게 될 수 있다. 본 명세서에 설명된 바와 같이, 실시 예들은 카메라의 시야각을 기반으로 객체들이 지각되는 방식을 개선하기 위해 수렴 평면을 기울이는 것에 관한 것이다. 조감도의 경우, 수렴 평면은 지면과 실질적으로 평행하도록 기울어질 수 있다. 결과적으로, 지면에 더 가까운 객체들은 시청자(viewer)의 관점에서 더욱 명확하게 지각될 수 있다.
실시 예들은 실시간 그래픽스 파이프라인에서 수렴 평면을 기울이기 위해 그래픽스-수준 연산들(graphics-level operations)을 적용하는 것에 관한 것이다. 예를 들어, 수렴 평면은 멀티뷰 이미지가 실시간으로 렌더링됨에 따라 후처리 연산의 일부로서 기울어질 수 있다. 그래픽스 파이프라인의 셰이더(shader)는 수렴 평면을 효과적으로 기울이기 위해 상이한 뷰들에 전단 함수(shear function)를 적용하도록 구성될 수 있다. 예를 들어, 셰이더는 결과 뷰(resulting view)를 전단하는 방식으로 멀티뷰 이미지의 뷰로부터 픽셀들을 샘플링할 수 있다. 전단의 양은 특정 뷰가 중심 시점(center point of view)으로부터 멀리 떨어져 있는 정도에 대응될 수 있다. 이를 위해, 전단 함수는 멀티뷰의 상이한 뷰들을 실시간으로 전단하여 수렴 평면을 효과적으로 기울임으로써, 시청자에게 보다 나은 시청 경험을 제공한다.
도 1은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 일 예로서 멀티뷰 이미지(103)를 도시한다. 멀티뷰 이미지(103)는 복수의 뷰들(106)을 갖는다. 뷰들(106) 각각은 상이한 뷰 방향(109)에 대응된다. 뷰들(106)은 멀티뷰 디스플레이(112)에 의한 디스플레이를 위해 렌더링된다. 도 1에 도시된 멀티뷰 이미지(103)는 조감 관점(birds-eye perspective)에서 지면의 다양한 건물들의 뷰를 묘사한다. 각각의 뷰(106)는 멀티뷰 이미지(103)의 상이한 시야각을 나타낸다. 따라서, 상이한 뷰들(106)은 서로에 대해 어느 정도의 시차를 갖는다. 일부 실시 예들에서, 시청자는 자신의 우안으로 하나의 뷰(106)를 지각하면서 자신의 좌안으로 다른 뷰(106)를 지각할 수 있다. 이를 통해 시청자는 상이한 뷰들을 동시에 지각하여 입체시를 얻을 수 있다. 즉, 상이한 뷰들(106)은 3차원(3D) 효과를 생성한다.
일부 실시 예들에서, 시청자가 멀티뷰 디스플레이(112)에 대해 자신의 시야각을 물리적으로 변경함에 따라, 시청자의 두 눈은 멀티뷰 이미지(103)의 상이한 뷰들(106)을 포착할 수 있다. 그 결과, 시청자는 멀티뷰 이미지(103)의 상이한 뷰들(106)을 보기 위해 멀티뷰 디스플레이(112)와 상호작용할 수 있다. 예를 들어, 시청자가 좌측으로 이동함에 따라, 시청자는 멀티뷰 이미지(103)에서 건물들의 좌측을 더 많이 볼 수 있다. 멀티뷰 이미지(103)는 수평 평면을 따라 복수의 뷰들(106)을 가질 수 있고/있거나 수직 평면을 따라 복수의 뷰들(106)을 가질 수 있다. 따라서, 사용자가 상이한 뷰들(106)을 보기 위해 시야각을 변경함에 따라, 시청자는 멀티뷰 이미지(103)의 추가적인 시각적 세부 사항들을 획득할 수 있다. 디스플레이를 위해 처리될 때, 멀티뷰 이미지(103)는 상이한 뷰들(106)을 기록하는 형식(format)의 데이터로서 저장된다.
전술한 바와 같이, 각각의 뷰(106)는 멀티뷰 디스플레이(112)에 의해 상이한 대응하는 주 각도 방향들(principal angular directions)(109)에서 표현된다. 디스플레이를 위해 멀티뷰 이미지(103)를 표현하는 경우, 뷰들(106)은 실제로 멀티뷰 디스플레이(112) 상에 또는 그 부근에 나타날 수 있다. 2D 디스플레이는, 2D 디스플레이가 일반적으로 멀티뷰 이미지(103)의 상이한 뷰들(106)과는 대조적으로 단일 뷰(예를 들어, 뷰들(106) 중 오직 하나)를 제공하도록 구성되는 것을 제외하고는, 멀티뷰 디스플레이(112)와 실질적으로 유사할 수 있다.
본 명세서에서, '2차원 디스플레이' 또는 '2D 디스플레이'는 이미지가 보여지는 방향에 관계 없이 (즉, 2D 디스플레이의 미리 정의된 시야각 또는 시야 범위 내에서) 실질적으로 동일한 이미지의 뷰를 제공하도록 구성된 디스플레이로서 정의된다. 많은 스마트 폰들 및 컴퓨터 모니터들에서 찾아볼 수 있는 통상적인 액정 디스플레이(LCD)가 2D 디스플레이들의 예들이다. 대조적으로, 본 명세서에서, '멀티뷰 디스플레이(multiview display)'는 사용자의 관점으로부터, 동시에 상이한 뷰 방향들로 또는 상이한 뷰 방향들로부터 멀티뷰 이미지의 상이한 뷰들을 제공하도록 구성된 전자 디스플레이 또는 디스플레이 시스템으로서 정의된다. 특히, 상이한 뷰들(106)은 멀티뷰 이미지(103)의 상이한 관점 뷰들(perspective views)을 나타낼 수 있다.
멀티뷰 디스플레이(112)는 상이한 이미지 뷰들이 동시에 지각되도록 상이한 이미지 뷰들의 표현을 수용하는 다양한 기술들을 이용하여 구현될 수 있다. 멀티뷰 디스플레이의 일 예는 상이한 뷰들(106)의 주 각도 방향들을 제어하기 위해 회절 격자들을 채용하는 것이다. 일부 실시 예들에 따르면, 멀티뷰 디스플레이(112)는, 상이한 뷰들에 대응되는 상이한 방향들 및 상이한 색상들의 복수의 광빔들을 표현하는 라이트필드(lightfield) 디스플레이일 수 있다. 일부 예들에서, 라이트필드 디스플레이는, 깊이를 지각하기 위한 특별한 아이웨어(eye wear)의 필요 없이, 회절 격자들을 이용하여 멀티뷰 이미지들의 오토스테레오스코픽(autostereoscopic) 표현들을 제공할 수 있는 소위 '안경 불필요' 3 차원(3D) 디스플레이이다. 일부 실시 예들에서, 멀티뷰 디스플레이(112)는 어떤 뷰들(106)이 사용자의 각각의 눈에 의해 지각되는지를 제어하기 위해 안경 또는 기타의 아이웨어를 필요로 할 수 있다.
일부 실시 예들에서, 멀티뷰 디스플레이(112)는 멀티뷰 이미지들 및 2D 이미지들을 렌더링하는 멀티뷰 디스플레이 시스템의 일부이다. 이와 관련하여, 멀티뷰 디스플레이 시스템은 상이한 모드들에서 동작하도록 복수의 백라이트들을 포함할 수 있다. 예를 들어, 멀티뷰 디스플레이 시스템은 광각 백라이트를 이용하여 2D 모드 동안 광각 방출광을 제공하도록 구성될 수 있다. 또한, 멀티뷰 디스플레이 시스템은 멀티빔 소자들의 어레이를 갖는 멀티뷰 백라이트를 이용하여 멀티뷰 모드 동안 지향성 방출광을 제공하도록 구성될 수 있으며, 지향성 방출광은 멀티빔 소자 어레이의 각각의 멀티빔 소자에 의해 제공되는 복수의 지향성 광빔들을 포함한다. 멀티뷰 디스플레이 시스템은 모드 제어기를 이용하여 2D 모드 및 멀티뷰 모드를 시간 다중화하여, 2D 모드에 대응되는 제 1 순차 시간 구간 동안 광각 백라이트를 그리고 멀티뷰 모드에 대응되는 제 2 순차 시간 구간 동안 멀티뷰 백라이트를 순차적으로 활성화시키도록 구성될 수 있다. 지향성 광빔의 지향성 광빔들의 방향들은 멀티뷰 이미지의 상이한 뷰 방향들에 대응될 수 있다.
예를 들어, 2D 모드에서, 광각 백라이트는, 멀티뷰 디스플레이 시스템이 2D 디스플레이처럼 동작하도록, 이미지들을 생성할 수 있다. 정의에 의하면, '광각(broad-angle)' 방출광(emitted light)은 멀티뷰 이미지 또는 멀티뷰 디스플레이의 뷰의 원추각(cone angle)보다 더 큰 원추각을 갖는 광으로서 정의된다. 특히, 일부 실시 예들에서, 광각 방출광은 약 20도보다 더 큰 원추각(예를 들어, > ± 20°)을 가질 수 있다. 다른 실시 예들에서, 광각 방출광의 원추각은 약 30도 초과(예를 들어, > ± 30°), 또는 약 40도 초과(예를 들어, > ± 40°), 또는 50도 초과(예를 들어, > ± 50°)일 수 있다. 예를 들어, 광각 방출광의 원추각은 약 60도(예를 들어, > ± 60°)일 수 있다.
멀티뷰 모드는 광각 백라이트 대신 멀티뷰 백라이트를 이용할 수 있다. 멀티뷰 백라이트는 서로 상이한 주 각도 방향들을 갖는 복수의 지향성 광빔들로서 광을 산란시키는 멀티빔 소자들의 어레이를 가질 수 있다. 예를 들어, 멀티뷰 디스플레이(112)가 4개의 뷰들을 갖는 멀티뷰 이미지를 디스플레이하기 위해 멀티뷰 모드에서 동작하는 경우, 멀티뷰 백라이트는 4개의 지향성 광빔들로 광을 산란시킬 수 있으며, 각각의 지향성 광빔은 상이한 뷰에 대응된다. 모드 제어기는, 멀티뷰 백라이트를 이용하여 제 1 순차 시간 구간에 멀티뷰 이미지가 디스플레이되고 광각 백라이트를 이용하여 제 2 순차 시간 구간에 2D 이미지가 디스플레이되도록, 2D 모드와 멀티뷰 모드 사이를 순차적으로 전환할 수 있다.
일부 실시 예들에서, 멀티뷰 디스플레이 시스템은 도광체 내에서 광을 안내된 광으로서 안내하도록 구성된다. 본 명세서에서, '도광체(light guide)'는 내부 전반사(total internal reflection; TIR)를 이용하여 그 내에서 광을 안내하는 구조물로서 정의된다. 특히, 도광체는 도광체의 동작 파장(operational wavelength)에서 실질적으로 투명한 코어(core)를 포함할 수 있다. 다양한 예들에서, '도광체(light guide)'라는 용어는 일반적으로 도광체의 유전체 재료와 도광체를 둘러싸는 재료 또는 매질 사이의 경계에서 광을 안내하기 위해 내부 전반사를 이용하는 유전체 광학 도파로(dielectric optical waveguide)를 지칭한다. 정의에 의하면, 내부 전반사를 위한 조건은 도광체의 굴절률이 도광체 재료의 표면에 인접한 주변 매질의 굴절률보다 커야 한다는 것이다. 일부 실시 예들에서, 도광체는 내부 전반사를 더 용이하게 하기 위해 전술한 굴절률 차이에 부가하여 또는 그에 대신하여 코팅(coating)을 포함할 수 있다. 예를 들어, 코팅은 반사 코팅일 수 있다. 도광체는 판(plate) 또는 슬래브(slab) 가이드 및 스트립(strip) 가이드 중 하나 또는 모두를 포함하는, 그러나 이에 제한되지 않는, 다양한 도광체들 중 임의의 것일 수 있다. 도광체는 판 또는 슬래브와 같은 형태일 수 있다. 도광체는 광원(예를 들어, 광 방출 소자)에 의해 에지 릿(edge lit)될 수 있다.
일부 실시 예들에서, 멀티뷰 디스플레이 시스템은 멀티빔 소자 어레이의 멀티빔 소자들을 이용하여 안내된 광의 일부를 지향성 방출광으로서 산란시키도록 구성되며, 멀티빔 소자 어레이의 각각의 멀티빔 소자는 회절 격자, 미세 굴절성 소자 및 미세 반사성 소자 중 하나 이상을 포함한다. 일부 실시 예들에서, 멀티빔 소자의 회절 격자는 복수의 개별 서브 격자들을 포함할 수 있다. 일부 실시 예들에서, 미세 반사성 소자는 안내된 광의 일부를 복수의 지향성 광빔들로서 반사적으로 커플 아웃시키거나 산란시키도록 구성된다. 미세 반사성 소자는 안내된 광이 산란되는 경로를 제어하기 위해 반사성 코팅을 가질 수 있다. 일부 실시 예들에서, 멀티빔 소자는 안내된 광의 일부를 굴절에 의해 또는 굴절을 이용하여 복수의 지향성 광빔들로서 커플 아웃시키거나 산란(즉, 안내된 광의 일부를 굴절적으로 산란)시키도록 구성된 미세 굴절성 소자를 포함한다.
도 1에 도시된 바와 같이, 멀티뷰 디스플레이(112)는 멀티뷰 이미지(103)를 디스플레이하기 위한 스크린을 포함한다. 스크린은, 예를 들어 전화기(예를 들어, 이동식 전화기, 스마트 폰 등), 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터의 컴퓨터 모니터, 카메라 디스플레이, 또는 실질적으로 임의의 기타의 장치의 전자 디스플레이의 디스플레이 스크린일 수 있다.
도 2는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지(115)를 생성하는 일 예를 도시한다. 도 2의 멀티뷰 이미지(115)는 지면(120) 상의 나무(118)와 같은 다양한 객체들을 포함한다. 나무(118) 및 지면(120)은 함께 장면의 적어도 일부를 구성하는 객체들로 지칭될 수 있다. 멀티뷰 이미지(115)는 도 1과 관련하여 논의된 방식과 같은 방식으로 디스플레이되고 보여질 수 있다. 멀티뷰 이미지(115)을 생성하기 위해, 카메라(121)가 장면을 캡처하는 데 이용될 수 있다. 일부 실시 예들에서, 카메라(121)는 하나 이상의 물리적 카메라를 포함할 수 있다. 예를 들어, 물리적 카메라는 광을 포착하여 이미지로서 기록하기 위한 렌즈를 포함한다. 멀티뷰 이미지(115)를 생성하기 위해 장면의 상이한 뷰들을 캡처하는 데 복수의 물리적 카메라들이 이용될 수 있다. 예를 들어, 각각의 물리적 카메라는, 장면 내의 객체들의 상이한 관점들이 캡처될 수 있도록, 정의된 거리만큼 이격될 수 있다. 시청자의 안구 간 거리가 3D 비전(vision)을 가능하게 하는 것과 같은 방식으로, 상이한 물리적 카메라들 간의 거리는 장면의 깊이를 캡처할 수 있게끔 한다.
카메라(121)는 물리적 카메라와는 반대로 가상(예를 들어, 모의(simulated) 또는 가정적(hypothetical)) 카메라를 나타낼 수도 있다. 장면은 컴퓨터-생성 정보를 다루는 컴퓨터 그래픽스 기술들을 이용하여 생성될 수 있다. 이 예에서, 카메라(121)는 이미지들을 편집하기 위한 소프트웨어 도구를 이용하여 장면을 생성하기 위한 시점(point of view)을 갖는 가상 카메라로서 구현된다. 가상 카메라는 3D 모델의 시야각 및 좌표로 정의될 수 있다. 3D 모델은 가상 카메라에 의해 캡처되는 다양한 객체들을 정의할 수 있다.
일부 실시 예들에서, 멀티뷰 이미지(115)의 하나 이상의 뷰는 자동화된 알고리즘들(예를 들어, 컴퓨터 비전, 인공 지능, 이미지 일괄 처리 등)을 통해 생성될 수 있다. 예를 들어, 물리적 또는 가상 카메라를 이용하여 장면의 뷰들을 생성하거나 캡처한 이후, 원래의 뷰로부터 예측, 보간 또는 외삽함으로써 하나 이상의 다른 뷰가 인위적으로 생성될 수 있다. 예를 들어, 다양한 컴퓨터 비전 기술들은 하나 이상의 입력 뷰를 기반으로 추가 뷰들을 생성할 수 있다. 여기에는 하나 이상의 입력 뷰로부터 상이한 뷰들을 예측, 보간 및/또는 외삽하는 훈련된 컴퓨터 비전 모델을 이용하는 것이 포함될 수 있다.
카메라(121)를 이용하여 장면의 뷰들을 생성하거나 캡처하는 경우, 멀티뷰 이미지는 수렴 평면(127)을 가질 수 있다. '수렴 평면'('plane of convergence' 또는 'convergence plane')'은 상이한 뷰들 간에 시차가 거의 없거나 또는 전혀 없도록 상이한 뷰들이 정렬되는 위치들의 세트로서 정의된다. 수렴 평면(127)은 제로 시차 평면(Zero Disparity Plane; ZDP)으로 언급될 수도 있다. 수렴 평면(127)은 카메라(121)의 전방에서 발생한다. 카메라(121)와 수렴 평면(127) 사이의 객체들은 시청자에게 더 가깝게 나타나는 반면, 수렴 평면(127) 후방의 객체들은 시청자로부터 더 멀리 나타난다. 이러한 점에서, 객체가 수렴 평면(127)으로부터 멀리 위치할수록 상이한 뷰들 간의 시차의 정도가 증가한다. 수렴 평면(127)을 따르는 객체들은 시청자에 대해 초점이 맞게(in focus) 나타난다. 따라서, 멀티뷰 이미지(115)를 생성하는 경우, 특정 객체들을 주 피사체로서 특징짓기를 원하는 생성자(creator)는 수렴 평면(127)이 주 피사체 상에 놓이기를 원할 수 있다. ZDP 상에 렌더링되는 픽셀들은 마치 디스플레이 상에 위치하는 것처럼 나타날 수 있고, ZDP 전방에 렌더링되는 픽셀들은 디스플레이 전방에 위치하는 것처럼 나타날 수 있으며, ZDP 후방에 렌더링되는 픽셀들은 마치 디스플레이 후방에 위치하는 것처럼 나타날 수 있다.
카메라(121)는 카메라(121)의 절두체(frustrum)(130) 내에 있는 장면을 캡처한다. 절두체(130)는 장면의 시야각 범위를 정의하는 상한 및 하한을 갖는 것으로 도시된다. 통상적으로, 디폴트 수렴 평면(127)은 카메라(121)의 카메라 렌즈에 의해 형성되는 평면과 평행하여, 절두체(130)에 대해 사다리꼴을 형성한다. 도 2에서, 수렴 평면(127)은 (카메라(121)에 대해) 나무(118)의 후방 및 나무(118)의 최하부와 교차한다. 결과적으로, 나무(118)의 최하부는 초점이 맞춰진 것처럼 나타나고, 이는 디스플레이 상에 위치하는 것처럼 나타나기 때문에 시청자에게 특징적인 관심 지점으로 나타날 것이다.
도 2는 또한 멀티뷰 이미지(115)의 뷰들 중 하나에 대한 시차 맵(disparity map)(133)을 보여준다. 시차 맵(133)은 뷰들 중 적어도 하나에 대해 생성될 수 있다. 경우에 따라, 시차 맵은 생성되지 않는다. 여하튼, 시차 맵(133)은 본 명세서에 논의된 실시 예들과 관련된 개념들을 설명하기 위해 논의된다. 시차 맵(133)은 각각의 픽셀(또는 가능하게는 픽셀들의 클러스터)을 대응하는 시차 값에 연관시킨다. 시차 값은 상이한 뷰들의 대응하는 픽셀들에 대한 거리를 기준으로 시차를 정량화(quantify)한다. 예를 들어, 제 1 뷰에 대해 큰 시차 값을 갖는 픽셀은, 제 2 뷰의 대응하는 픽셀에 대해, 이 픽셀 및 대응하는 픽셀이 특정 시야각으로부터 시청자에게 나타나는 위치에 큰 차이가 있음을 의미한다.
본 명세서에서, '시차 맵(disparity map)'은 멀티뷰 이미지(115)의 적어도 2개의 뷰들 간의 겉보기 픽셀 차이(apparent pixel difference)를 나타내는 정보로서 정의된다. 이러한 점에서, 시차 맵은 멀티뷰 이미지의 2개의 뷰들의 2개의 픽셀들 간의 위치의 차이를 나타낼 수 있다. 시차가 제로(예를 들어, 0이거나 또는 0에 가까움)인 경우, 객체를 나타내는 픽셀들은 동일한 위치에서 시청자에게 나타난다. 즉, 사용자에 의해 초점이 맞춰진 객체는 복수의 뷰들(예를 들어, 좌안 뷰 및 우안 뷰) 사이에 제로 시차를 갖는다. 시차가 거의 없거나 전혀 없는 영역들은 수렴 평면(127)(또는 ZDP)에 해당하는 것으로 간주된다. 초점이 맞춰진 객체의 전방 또는 후방에 나타나는 객체들은, 다양한 정도의 시차에서 시차를 가질 것이므로 수렴 평면을 벗어난다. 예를 들어, 카메라(121)와 수렴 평면(127) 사이의 객체들을 나타내는 픽셀들은 양의 시차 값들을 가질 수 있고, 수렴 평면(127) 후방의 객체들을 나타내는 픽셀들은 음의 시차 값들을 가질 수 있다. 시차의 절대 값이 클수록, 수렴 평면(127)으로부터 더 멀어진다. 시차는 깊이에 반비례한다.
도 2는 3개의 영역들(135a 내지 135c)을 갖는 시차 맵(133)을 보여준다. 각각의 영역(135a 내지 135c)은 다양한 시차 값들을 나타내는 픽셀들을 포함한다. 예를 들어, 하부 영역(135a)은 나무(118) 전방의 지면(120)를 나타내는 픽셀들에 대응되고, 중간 영역(135b)은 나무(118)의 최하부를 나타내는 픽셀들에 대응되며, 상부 영역(135c)은 나무(118)의 최상부를 나타내는 픽셀들에 대응된다. 하부 영역(135a)의 시차 값들은 수렴 평면(127) 전방의 픽셀들을 나타내므로, 상대적으로 크고 양의 값을 가질 수 있다. 하부 영역(135a)의 시차 값들은 수렴 평면(127) 전방의 픽셀들을 나타내므로, 상대적으로 크고 양의 값을 가질 수 있다. 중간 영역(135b)의 시차 값들은 수렴 평면(127) 상의 픽셀들을 나타내므로 제로에 가까울 수 있다. 상부 영역(135c)의 시차 값들은 수렴 평면(127) 후방의 픽셀들을 나타내므로, 상대적으로 크고 음의 값을 가질 수 있다. 멀티뷰 디스플레이 상에 렌더링되는 경우, 멀티뷰 이미지(115)는 지면(120)에 대해 광범위한 시차가 존재하도록 사용자에 의해 지각된다. 즉, 지면(120)의 작은 부분만이 초점이 맞게 보일 것이고 디스플레이 상에 위치하는 것으로 보일 것이다. 지면(120)의 나머지 부분들은 디스플레이의 전방 또는 디스플레이의 후방에 나타날 것이다. 이 결과는 일부 응용들에서 바람직하지 않을 수 있다. 예를 들어, 지면(120)을 따라 움직이는 피사체 또는 지면 상의 다양한 위치들에 있는 복수의 피사체들을 특징으로 하는 멀티뷰 컨텐츠는, 조감도로부터 시청자에게 최적의 방식으로 제공되지 않을 수 있다. 그러한 경우, 수렴 평면을 기울이는 것이 바람직할 수 있다.
도 3은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지의 수렴 평면(127)을 기울이는 일 예를 도시한다. 예를 들어, 카메라(121)의 렌즈(가상 렌즈 또는 물리적 렌즈)에 의해 형성되는 평면에 대해 초기에 평행한 수렴 평면(127)은, 카메라(121)의 렌즈(가상 렌즈 또는 물리적 렌즈)에 의해 형성되는 평면에 대해 평행하지 않은 기울어진 수렴 평면(138)을 형성하도록 기울어질 수 있다. 도 3은 수렴 평면(127)(이를 수렴 초기 평면이라 칭할 수 있음)과 기울어진 수렴 평면(138) 사이의 각도로서 정량화될 수 있는 기울임(141)의 양을 도시한다. 기울어진 수렴 평면(138)은 회전점(초기 수렴 평면(127)과 기울어진 수렴 평면(138)의 교차점에 표시됨)을 중심으로 수렴 평면(127)을 회전시킨 결과로서 생성될 수 있다.
기울어진 수렴 평면(138)을 적용함으로써, 멀티뷰 이미지는 보다 심미적으로 만족스러운 시청 경험을 초래할 수 있다. 예를 들어, 기울어진 수렴 평면(138)은 지면(120)에 의해 형성되는 평면에 대응될 수 있다. 결과적으로, 지면을 따라 있는 객체들은 시차를 갖지 않을 것이므로, 멀티뷰 이미지에 걸쳐있는 시청자의 주의를 지면으로 향하게 할 것이다. 예를 들어, 지면에 또는 그 근처에 위치한 객체들은 마치 디스플레이에 있는 것처럼 나타날 것이고, 지면 위의 객체들은 디스플레이 전방에 나타날 것이며, 지면 아래의 객체들은 디스플레이 후방에 나타날 것이다.
수학적 관계에 있어서, 수렴 평면(127)은 다음 식(1)에 따라 시차 맵을 수정함으로써 수직(y) 축을 따라 기울어질 수 있다.
Figure pct00001
여기서, 'D'는 시차 값을 나타내고, 'D´'는 업데이트된 시차 값을 나타내고, 시차 값은 픽셀의 X 및 Y 좌표의 함수이고, 'T'는 기울임(141)의 양을 정량화하며, 'C'는 회전축(150)에 의해 정의되는 수렴 평면(127)의 회전 위치에 대응된다. 위의 식을 시차 맵(133)에 적용하면, 회전축(150)으로부터 더 멀어질수록 시차의 변화가 더 커지도록, 수직축을 따라 시차가 수정된다.
기울어진 수렴 평면(138)을 생성하기 위해 시차 맵들(133)을 수정하는 것은, 시차 맵들(133)이 쉽게 이용 가능하지 않을 수 있기 때문에, 일부 실시 예들에서는 옵션이 아닐 수 있다. 예를 들어, 실시간 렌더링 환경에서, 시차 맵을 생성할 수 있는 대역폭 또는 능력이 없는 경우, 멀티뷰 이미지들은 온 더 플라이(on the fly) 방식으로 렌더링되고 후처리될 수 있다. 이를 위해, 시차 맵들에 대한 연산은 그래픽스 파이프라인에서 실시간 렌더링을 허용하지 않을 수 있다. 이후의 도면들은 실시간 렌더링 환경에서 수렴 평면(127)을 기울이기 위해 그래픽스 파이프라인을 이용하는 것을 설명한다.
멀티뷰 이미지들을 생성하거나 렌더링하는 경우, 이미지가 디스플레이되는 방식을 제어하는 다양한 시각적 속성들 또는 효과들이 있다. 이러한 시각적 속성들에는, 예를 들어 시차, 피사계 심도(depth of field; DoF), 기준선, 수렴 평면, 수렴 오프셋, 투명도 등이 포함된다. 멀티뷰 이미지의 시각적 속성들은 후처리 연산으로서 렌더링 시에 적용될 수 있다.
본 명세서에서 사용되는 바와 같이, '시차(disparity)'는 대응하는 위치들에서의 멀티뷰 이미지의 적어도 2개의 뷰들 사이의 차이로서 정의된다. 예를 들어, 입체시의 맥락에서, 좌안과 우안은 동일한 객체를 볼 수 있지만, 안구 간 시야각의 차이로 인해 약간 상이한 위치들에서 동일한 객체를 볼 수 있다. 이 차이는 시차로서 정량화될 수 있다. 멀티뷰 이미지에 걸친 시차의 변화는 깊이감을 전달한다.
본 명세서에서 사용되는 바와 같이, '피사계 심도(depth of field)'는 초점이 맞춰진 것으로 간주되는 2개의 객체들 사이의 깊이의 차이로서 정의된다. 예를 들어, 멀티뷰 이미지의 피사계 심도가 크면 상대적으로 넓은 범위의 깊이 사이에 약간의 시차가 발생한다.
본 명세서에서 사용되는 바와 같이, '기준선(baseline)' 또는 '카메라 기준선'은 멀티뷰 이미지의 대응하는 뷰들을 캡처하는 2개의 카메라들 사이의 거리로서 정의된다. 예를 들어, 입체시의 맥락에서, 기준선은 좌안과 우안 사이의 거리이다. 기준선이 길어지면 시차가 증가하고 멀티뷰 이미지의 3D 효과가 향상될 수 있다.
본 명세서에서 사용되는 바와 같이, '수렴 오프셋(convergence offset)'은 수렴 평면을 따르는 지점과 카메라 사이의 거리를 지칭한다. 수렴 오프셋을 수정하면 수렴 평면의 위치가 변경되어 다른 깊이의 새로운 객체들에 멀티뷰 이미지의 초점이 다시 맞춰진다.
본 명세서에서 사용되는 바와 같이, '투명도(transparency)'는 객체 뒤에 있는 다른 객체들이 보일 수 있는 정도를 정의하는 객체 속성을 의미한다. 객체들은 멀티뷰 이미지의 최종 뷰를 형성하는 레이어들로서 렌더링될 수 있다. 전방 레이어의 투명도를 높이면 후방 레이어가 보일 수 있다. 최소 투명도(예를 들어, 투명도 없음)는 후방 레이어가 보이지 않도록 하고, 최대 투명도는 특정 레이어가 보이지 않게 하여 후방 레이어가 완전히 드러나게 한다.
또한, 본 명세서에서 사용되는 바와 같이, 단수 표현은 특허 분야에서의 통상적인 의미, 즉 '하나 이상'의 의미를 갖는 것으로 의도된다. 예를 들어, 본 명세서에서 '프로세서'는 그 자체로서 하나 이상의 프로세서를 의미하고, '메모리'는 '하나 이상의 메모리 컴포넌트들'을 의미한다.
도 4는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지의 수렴 평면을 기울이는 컴퓨팅 시스템의 일 예를 도시한다. 수렴 평면을 기울이기 위한 연산은 시차 맵을 이용하지 않고 그래픽스 파이프라인(200)에서 이루어질 수 있다. 도 4는 수렴 평면을 기울이기 위해 그래픽스 파이프라인(200)과 인터페이싱(interfacing)하는 일 실시 예를 도시한다. 본 명세서에서 사용되는 '그래픽스 파이프라인(graphics pipeline)'은 디스플레이를 위해 모델을 렌더링하는 컴퓨터-구현 환경으로서 정의된다. 그래픽스 파이프라인은 하나 이상의 그래픽스 처리 유닛(Graphics Processing Unit; GPU), GPU 코어, 또는 이미지 컨텐츠를 스크린에 렌더링하는 데 최적화된 기타의 특화된 처리 회로를 포함할 수 있다. 예를 들어, GPU들은 데이터의 어레이를 연산하기 위한 명령어 세트를 병렬로 실행하는 벡터 프로세서들을 포함할 수 있다. 그래픽스 파이프라인(200)은 그래픽스 카드, 그래픽스 드라이버, 또는 그래픽스를 렌더링하는 데 이용되는 기타의 하드웨어 및 소프트웨어를 포함할 수 있다. 그래픽스 파이프라인(200)은 멀티뷰 디스플레이(112) 상에 이미지들을 렌더링하도록 구성될 수 있다. 그래픽스 파이프라인(200)은 픽셀들을 디스플레이의 대응하는 위치들에 맵핑하고, 이미지를 렌더링하기 위해 광을 방출하도록 디스플레이를 제어할 수 있다.
도 4에 도시된 컴퓨팅 시스템은 또한 하나 이상의 중앙 처리 장치(central processing unit; CPU)(202)를 포함할 수 있다. CPU(202)는 명령어들(instructions)을 실행하고, 운영 체제를 지원하며, 사용자 수준 어플리케이션들(205)을 제공하는 일반적인 프로세서일 수 있다. 일부 실시 예들에서, 그래픽스 파이프라인(200)은 CPU(202)와는 별개인 서브시스템이다. 예를 들어, 그래픽스 파이프라인(200)은 CPU(202)와는 별개인 특화된 프로세서들(예를 들어, GPU들)을 포함할 수 있다. 일부 실시 예들에서, 그래픽스 파이프라인(200)은 순전히 CPU(202)에 의해 소프트웨어로서 구현된다. 예를 들어, CPU(202)는 특화된 그래픽스 하드웨어 없이 그래픽스 파이프라인(200)으로서 동작하는 소프트웨어 모듈들을 실행할 수 있다. 일부 실시 예들에서, 그래픽스 파이프라인(200)의 일 부분들은 특화된 하드웨어로 구현되고, 다른 부분들은 CPU(202)에 의해 소프트웨어 모듈들로서 구현된다.
어플리케이션(205)은 멀티뷰 디스플레이(112) 상에 디스플레이하기 위해 그래픽스 파이프라인(200)에 의해 렌더링되는 사용자 인터페이스를 생성하는 사용자 수준 어플리케이션일 수 있다. 예를 들어, 어플리케이션(205)은 거리, 건물 및 기타의 지리적 특색을 묘사하는 다양한 지도들을 로딩하는 내비게이션 어플리케이션일 수 있다. 내비게이션 어플리케이션은 지리적 영역의 3D 모델을 생성하는 사용자 인터페이스를 제공할 수 있다. 내비게이션 어플리케이션은 3D 모델에서 가상 카메라의 시야각을 동적으로 업데이트하여 가상 카메라의 배향을 기반으로 3D 모델의 일부의 시각적 출력을 생성할 수 있다.
컴퓨팅 시스템은 또한 메모리(208)를 포함할 수 있다. 메모리(208)는 메인 메모리(예를 들어, 시스템 메모리), 캐시, 또는 데이터를 빠르게 처리하기 위한 기타의 고속 메모리를 포함할 수 있다. 메모리(208)는, 보다 상세히 후술될 바와 같이, 휘발성 메모리일 수도 있고 비휘발성 메모리를 포함할 수도 있다. 메모리(208)는 CPU(202)를 위한 메모리 및 그래픽스 파이프라인(200)을 위한 메모리를 포함할 수 있고, CPU(202) 및 그래픽스 파이프라인(200)은 동일한 메모리 자원을 공유할 수 있다. 일부 실시 예들에서, 메모리(208)는 CPU에 전용되는 제 1 메모리(예를 들어, CPU 메모리) 및 그래픽스 파이프라인(200)에 전용되는 제 2 메모리(예를 들어, GPU 메모리, 텍스처 메모리 등)를 포함한다. 이러한 실시 예에서, 그래픽스 파이프라인(200)은 컨텐츠를 CPU 메모리로부터 GPU 메모리로 로딩, 복사, 또는 다른 방식으로 이동시킬 수 있다.
전술한 바와 같이, 어플리케이션(205)은 3D 모델링을 위한 컴퓨터 그래픽스 기술들을 이용하여 3D 모델을 생성할 수 있다. 3D 모델은 상이한 객체들의 다양한 표면들 및 텍스처들의 수학적 표현이며, 객체들 간의 공간적 관계를 포함할 수 있다. 어플리케이션(205)은 사용자 입력에 따라 3D 모델을 생성 및 업데이트할 수 있다. 사용자 입력은, 커서를 클릭 또는 드래그하거나, 방향 버튼을 누르거나, 사용자의 물리적 위치를 3D 모델 내의 가상 위치로 변환하는 등에 의해 3D 모델을 탐색하는 것을 포함할 수 있다. 3D 모델은 메모리(208)에 로딩될 수 있고 이후에 업데이트될 수 있다.
3D 모델은 윈도우(window)를 3D 모델로 드러내는 멀티뷰 이미지들(211)로 변환될 수 있다. 윈도우는 시야각, 초점 거리, 기준선, 3D 모델 내의 좌표들의 세트 등을 갖는 가상 카메라에 의해 정의될 수 있다. 일련의 멀티뷰 이미지들(211)은 특정 프레임 속도(예를 들어, 초당 30 프레임)로 디스플레이되는 동영상을 형성할 수 있다. 각각의 멀티뷰 이미지(211)는 복수의 뷰들(214a 내지 214d)로 구성될 수 있다. 도 4의 예는 4개의 뷰들을 갖는 4-뷰 이미지로서 포맷된 멀티뷰 이미지(211)를 나타내지만, 어떠한 개수의 뷰들이라도 이용될 수 있다. 뷰들(214a 내지 214d)은 수평 시차, 수직 시차 또는 이들 둘 다를 제공하도록 구성될 수 있다. 예를 들어, 수평 시차가 존재하는 경우, 뷰들(214a 내지 214d)은 시청자가 멀티뷰 디스플레이(112)에 대해 좌측에서 우측으로 이동함에 따라 변하는 것처럼 보인다.
어플리케이션(205)은 멀티뷰 이미지(211)의 뷰(214a 내지 214d)를 메모리(208)에 로딩할 수 있다. 예를 들어, 어플리케이션(205)은 3D 모델로부터 도출된 멀티뷰 이미지(211)를 보여주기 위해 3D 모델을 렌더링된 장면으로 변환하도록 구성될 수 있다. 하나 이상의 뷰(214a 내지 214d)는 어플리케이션(205)에 의해 생성되고 메모리(208)의 특정 블록에 배치된다. 뷰(214a 내지 214d)는 픽셀 좌표계에 의해 정의되는 비트맵(bitmap)으로서 포맷될 수 있다. 예를 들어, 뷰(214a 내지 214d)는 수평(X) 축 및 수직(Y) 축을 따라 비트맵들의 2차원 어레이로 표현될 수 있다. 비트맵의 각각의 픽셀은 디스플레이 상의 대응하는 위치를 갖는다. 예를 들어, 비트맵의 최-좌측 상부 픽셀은 디스플레이의 최-좌측 상부 픽셀의 출력을 제어한다. 또한, 각각의 뷰(214a 내지 214d)는 대응하는 뷰 색인 번호(view index number)(220)를 가질 수 있다. 뷰 색인 번호(220)는 멀티뷰 이미지(211) 내의 뷰의 순서화된(ordered) 뷰 번호일 수 있다. 예를 들어, 4-뷰 멀티뷰 포맷에서, 4개의 뷰들 각각은 1, 2, 3 및 4로 번호가 매겨질 수 있다. 뷰 색인 번호(220)는 다른 뷰들에 대한 뷰의 위치를 나타낸다. 예를 들어, 뷰 1은 최-좌측 뷰일 수 있고, 뷰 2는 중앙-좌측 뷰일 수 있고, 뷰 3은 중앙-우측 뷰일 수 있으며, 뷰 4는 최-우측 뷰일 수 있다. 이 경우, 가장 큰 시차는 뷰 1과 뷰 4 사이에 있을 것이다.
뷰들(214a 내지 214d)이 생성되어 메모리(208)에 로딩되면, 어플리케이션(205)은 그래픽스 파이프라인(200)에 렌더 커맨드(render command)(221)를 인보크(invoke)할 수 있다. 렌더 커맨드(221)는 그래픽스 파이프라인(200)에게 멀티뷰 이미지(211)의 렌더링을 시작하도록 명령한다. 렌더 커맨드(221)는 그래픽스 파이프라인(200)으로 하여금 멀티뷰 이미지(211)를 렌더링하게끔 하는 그래픽스 드라이버에 대한 함수 호출(call)일 수 있다. 렌더 커맨드(221)는 렌더링될 특정 멀티뷰 이미지(211)을 식별할 수 있다. 예를 들어, 렌더 커맨드(221)는 멀티뷰 이미지(211)가 저장된 곳의 어드레스 블록을 식별할 수 있다.
그래픽스 파이프라인(200)은 멀티뷰 이미지(211)를 렌더링하기 위해 하나 이상의 셰이더(shader)(226)를 포함할 수 있다. 셰이더(226)는 하드웨어 장치(예를 들어, 셰이더 코어), 소프트웨어 모듈, 또는 이들의 조합일 수 있다. 셰이더(226)는 그래픽스 파이프라인(200)의 GPU에 의해 실행될 수 있다. 멀티뷰 이미지(211)의 초기 렌더링은, 멀티뷰 이미지(211)의 단순하거나 대략적인 버전을 렌더링하기 위해, 예를 들어 래스터화(rasterization)와 같은 다양한 기법들을 수행하는 모듈에 의해 수행될 수 있다. 초기 렌더링 연산은 장면 지오메트리(scene geometry)를 디스플레이를 위한 픽셀들로 변환하기 위한 빠르고 매우 효율적인 연산일 수 있다. 초기 렌더링은 보다 향상된 광학적 고급 효과를 포함하지 않을 수 있다. 일부 실시 예들에서, 초기 렌더링에서 셰이더(226)가 이용될 수 있다.
초기 렌더링이 수행된 이후, 초기 렌더링된 멀티뷰 이미지에 하나 이상의 고급 광학 효과가 적용될 수 있다. 하나 이상의 셰이더(226)를 이용하여 광학 효과가 적용될 수 있다. 초기 렌더링된 멀티뷰 이미지(211)에 대해 연산함으로써, 셰이더(226)는 후처리 효과를 구현하는 것으로 간주된다. 본 명세서에서 사용되는 바와 같이, '후처리(post-processing)'는 그래픽스 파이프라인(200)에서 렌더링 프로세스의 일부로서 초기 렌더링되는 이미지에 대해 수행되는 연산으로서 정의된다. 상이한 셰이더들(226)이 후처리를 수행하도록 구성될 수 있다. 후처리의 일부 예로는 채도 수정, 색조 수정, 밝기 조절, 대비 조절, 흐림(blur) 적용, 체적 조명 수행, 깊이 효과 적용, 셀 셰이딩(cel shading) 수행, 보케(bokeh) 효과 생성, 하나 이상의 필터의 적용이 있지만, 이에 제한되지는 않는다. 본 명세서에서 사용되는 바와 같이, '셰이더(shader)'는, 예를 들어 초기 렌더링 또는 후처리를 포함하는, 특정 그래픽스 연산을 적용하는 그래픽스 파이프라인의 그래픽스 컴포넌트이다.
어플리케이션(205)은 하나 이상의 어플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)를 이용하여 그래픽스 파이프라인(200)과 인터페이싱할 수 있다. API의 일 예는, 어플리케이션들(205)이 그래픽스 파이프라인(200)에서 수행되는 함수들을 호출할 수 있도록 하는 인터페이스를 제공하는 OpenGL이다. 예를 들어, 초기 렌더링된 멀티뷰 이미지(211)에 대해 후처리를 수행하는 특정 셰이더(226)를 인보크하기 위해, 어플리케이션(205)에 의해 API가 이용될 수 있다.
실시 예들은 실시간 렌더링 동안 수렴 평면을 기울이기 위해 그래픽스 파이프라인(200)에서 기능을 구현하는 것에 관한 것이다. 다음은 컴퓨팅 시스템에서 이루어질 수 있는 기능 및 연산의 일 예를 제공한다. 전술한 바와 같이, 어플리케이션(205)은 멀티뷰 이미지(211)의 뷰(214a 내지 214d)를 생성하여 메모리(208)에 로딩할 수 있다. 운영 체제 상에서 실행되는 어플리케이션(205)은 CPU에게 뷰(214a 내지 214d)를 메모리(208)의 블록에 로딩하도록 명령할 수 있다.
뷰(214a 내지 214d)는 픽셀 좌표계에 의해 정의되는 비트맵으로서 포맷될 수 있다. 뷰(214a 내지 214d)는, 3D 모델의 특정 시점 및 시야각을 식별하고 이를 비트맵으로 변환함으로써, 3D 모델로부터 생성될 수 있다. 이는 멀티뷰 이미지(211)의 각각의 뷰에 대해 수행될 수 있다. 이후, 어플리케이션(205)은 멀티뷰 이미지(211)의 뷰들(214a 내지 214d)을 초기 렌더링하기 위해 렌더 커맨드(221)를 인보크할 수 있다. 예를 들어, 어플리케이션(205)은 API를 이용하여 그래픽스 파이프라인(200)에게 초기 렌더링을 수행할 것을 요청할 수 있다. 이에 응답하여, 그래픽스 파이프라인(200)은, 예를 들어 래스터화를 수행함으로써, 초기 렌더링된 뷰들(214a 내지 214d)을 생성할 수 있다. 실시간 그래픽스 렌더링 환경에서, 그래픽스 파이프라인(200)은 뷰들(214a 내지 214d)을 온 더 플라이 방식으로 신속하게 렌더링하도록 최적화될 수 있다. 이는, 새로운 멀티뷰 이미지들(211)이 동적으로 생성됨에 따라 (그리고 사전-렌더링되지 않음에 따라), 시청자에게 끊김 없는(seamless) 경험을 제공한다.
다음으로, 어플리케이션(205)은 수렴 평면을 실시간으로 기울이도록 구성된다. 예를 들어, 어플리케이션(205)은 뷰(214a 내지 214d)와 중심 시점(center point of view) 사이의 거리를 식별할 수 있다. 상이한 뷰들(214a 내지 214d)이 중심 시점에 대해 다양한 정도의 수평 시차를 갖는 경우를 가정하면, 수평축을 따라 중심 시점과 각각의 뷰 사이의 거리가 결정될 수 있다. 이 거리는 기준선(예를 들어, 뷰들 간의 거리)에 따라 달라진다. 예를 들어, 기준선이 더 길수록 중심 시점으로부터의 거리가 더 멀어진다. 일부 실시 예들에서, 뷰(214a 내지 214d)와 중심 시점 사이의 거리는, 멀티뷰 이미지(211) 내의 뷰(214a 내지 214d)의 순서화된 뷰 번호(예를 들어, 뷰 색인 번호(220))를 결정함으로써 식별된다. 예를 들어, 멀티뷰 이미지(211)의 뷰들(214a 내지 214d)이 1부터 4까지 순서화되면, 뷰 1은 최-좌측에 위치하고, 뷰 4는 최-우측에 위치한다. 뷰 색인 번호(220)는 뷰(214a 내지 214d)와 중심 시점 사이의 거리에 대응된다. 예를 들어, 1의 뷰 색인 번호(220)는 중심으로부터 좌측으로 50개의 픽셀들의 거리에 대응될 수 있고, 2의 뷰 색인은 중심으로부터 좌측으로 25개의 픽셀들의 거리에 대응될 수 있고, 3의 뷰 색인 번호(220)는 중심으로부터 우측으로 25개의 픽셀들의 거리에 대응될 수 있으며, 4의 뷰 색인은 중심으로부터 우측으로 50개의 픽셀들의 거리에 대응될 수 있다. 중심으로부터의 거리는, 뷰가 중심의 좌측에 있는지 여부를 나타내는 부호 있는 숫자(예를 들어, 양수 또는 음수)일 수 있다. 예를 들어, 음의 거리는 뷰가 중심의 좌측에 있음을 나타낼 수 있고, 양의 거리는 뷰가 중심의 우측에 있음을 나타낼 수 있다.
중심 시점으로부터의 뷰(214a 내지 214d) 거리를 결정하는 것은, 실시간 그래픽스 파이프라인(200)에서 수렴 평면을 기울이는 방법을 결정하는 것의 일부이다. 어플리케이션(205)은 전단 함수를 이용하여 수렴 평면을 기울이기 위해 렌더 명령어를 생성할 수 있다. 어플리케이션(205)은 뷰를 전단된 뷰(sheared view)로서 렌더링하기 위한 명령어를 그래픽스 파이프라인(200)에 전송할 수 있다. 이와 관련하여, 어플리케이션(205)은 픽셀 좌표계의 축을 따라 적용되는 전단 함수에 따라 전단되도록 초기 렌더링된 멀티뷰 이미지를 후처리하기 위한 명령어를 인보크할 수 있다. 구체적으로, 그래픽스 파이프라인(200)은 그래픽스 파이프라인(200)의 뷰(214a 내지 214d)를 전단 함수에 따라 전단된 뷰로서 렌더링할 수 있다. 전단 함수의 전단 강도(shear strength)는 뷰(214a 내지 214d)와 중심 시점 사이의 거리와 상관된다. 본 명세서에서 사용되는 '전단 함수(shear function)'는 전단 강도에 따른 방향을 따라 이미지의 픽셀들을 변위(displace)시키는 그래픽스 연산으로서 정의된다. 전단 강도는 전단 함수에 의해 이미지에 적용되는 전단 효과의 양을 정량화한다. 전단 함수의 전단 강도는 멀티뷰 이미지의 다른 뷰들에 대한 뷰의 위치와 상관(correlate)될 수 있다. 아래에 설명되는 도 5는 전단 함수에 대한 시각적 설명을 제공한다.
전단 함수를 실행하면, 멀티뷰 이미지(211)가 그래픽스 파이프라인에서 렌더링됨에 따라 수렴 평면이 실시간으로 기울어지게 된다. 셰이더(226)는 전단 함수를 구현하도록 맞춤화될 수 있다. 이와 관련하여, 어플리케이션(205)은 초기 렌더링된 멀티뷰 이미지(211)에 대해 전단 함수를 수행하도록 셰이더(226)를 호출할 수 있다. 멀티뷰 이미지의 뷰들(214a 내지 214d)에 전단 함수를 적용한 이후, 그래픽스 파이프라인(200)은 그 결과를 전단된 멀티뷰 이미지(232)로서 메모리(208)에 로딩할 수 있다. 그래픽스 파이프라인(200)은 멀티뷰 이미지(211)를 전단된 멀티뷰 이미지(232)로 오버라이딩(overriding)하거나, 전단된 멀티뷰 이미지(232)를 메모리(208)의 별도의 부분에 로딩할 수 있다. 전단된 멀티뷰 이미지(232)가 멀티뷰 디스플레이(112) 상에 최종적으로 렌더링되기 이전에, 전단된 멀티뷰 이미지(232)에 추가적인 후처리가 적용될 수 있다.
도 5a 및 도 5b는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 전단 함수를 적용하는 일 예를 도시한다. 도 5a는 멀티뷰 이미지의 상이한 뷰들을 묘사한다. 각각의 뷰는, 예를 들어 도 4의 메모리(208)와 같은 메모리에 저장 또는 로딩되는 비트맵 이미지로서 포맷될 수 있다. 4개의 뷰들이 도시되었지만, 멀티뷰 이미지는 어떠한 개수의 뷰라도 가질 수 있다. 도 5a에 도시된 뷰들(예를 들어, 뷰 1, 뷰 2, 뷰 3 및 뷰 4)은 수평 시차를 갖는다. 도 5a의 멀티뷰 이미지는 중심 시점(235)을 가질 수 있다. 시청자는 수평축을 따라 이동함으로써(예를 들어, 좌측에서 우측으로 또는 우측에서 좌측으로) 멀티뷰 이미지의 객체들 주위를 볼 수 있다.
각각의 뷰는 중심 시점(235)에 대해 대응하는 거리를 가질 수 있다. 도 5a는 이 거리가 각각의 뷰의 중심으로부터 측정된 것을 도시하지만, 이 거리는, 예를 들어 좌측 에지 또는 우측 에지와 같은 뷰의 임의의 지점으로부터 측정될 수 있다. 뷰 1은 중심 시점(235)으로부터 'D1'의 거리만큼 떨어져 있다. 뷰 2는 중심 시점(235)으로부터 'D2'의 거리만큼 떨어져 있다. 뷰 3은 중심 시점(235)으로부터 'D2'의 거리만큼 떨어져 있다. 뷰 4는 중심 시점(235)으로부터 'D4'의 거리만큼 떨어져 있다. 거리들(D1, D2)은 중심 시점(235)의 좌측에 있음을 나타내는 음의 값들일 수 있고, 거리들(D3, D4)은 중심 시점(235)의 우측에 있음을 나타내는 양의 값들일 수 있다.
도 5a는 멀티뷰 이미지가 메모리에 로딩될 때 뿐만 아니라 후처리 이전에 그래픽스 파이프라인에 의해 초기 렌더링될 때 나타나는 방식을 보여준다. 도 5b는 실시간 그래픽스 파이프라인(예를 들어, 도 4의 그래픽스 파이프라인(200))에서 후처리의 일부로서 전단 함수에 의해 전단된 이후의 멀티뷰 이미지를 도시한다. 구체적으로, 도 5b는 뷰 1로부터 생성된 전단된 뷰 1, 뷰 2로부터 생성된 전단된 뷰 2, 뷰 3으로부터 생성된 전단된 뷰 3, 및 뷰 4로부터 생성된 전단된 뷰 4를 도시한다. 전단된 뷰들(1 내지 4) 각각은 전단 강도를 적용하는 전단 함수에 의해 생성된다. 전단 강도는 뷰와 중심 시점(235) 사이의 거리(예를 들어, D1 내지 D4)을 기반으로 결정된다. 예를 들어, 중심 시점(235)으로부터의 거리가 더 멀수록 전단 강도가 더 커진다. 또한, 전단 강도의 부호(예를 들어, 양 또는 음)는 거리의 부호에 의해 정의된다. 전단 강도의 부호는 전단 함수에 의해 적용되는 전단의 방향을 제어한다.
전단 함수는 또한 전단 라인(238)에 의해 정의될 수 있다. 전단 라인(238)은 각각의 뷰가 전단되는 방식을 제어하는 특정 축을 따라 연장될 수 있다. 전단 함수는 전단 라인(238)에 따라 연산한다. 도 5b의 예는 수평축을 따른 전단 라인(238)을 도시한다. 결과적으로, 전단 함수는 픽셀 좌표계의 수평축을 따라서만 뷰를 편향(skew)시키도록 구성된다. 이러한 점에서, 픽셀 좌표계상의 픽셀들은 단지 수평으로만 변위된다. 픽셀 변위의 방향 및 정도는, 중심 시점(235)에 대한 뷰의 거리(예를 들어, 양의 거리 또는 음의 거리)뿐만 아니라 변위되는 픽셀이 전단 라인(238)의 위에 있는지 또는 아래에 있는지 여부에 따라 달라진다. 예를 들어, 전단된 뷰 1 및 전단된 뷰 2에서, 전단 라인(238) 위의 픽셀들은 우측으로 편향되고, 전단 라인(238) 아래의 픽셀들은 좌측으로 편향된다. 전단된 뷰 3 및 전단된 뷰 4에서, 전단 라인(238) 위의 픽셀들은 좌측으로 편향되고, 전단 라인(238) 아래의 픽셀들은 우측으로 편향된다.
도 5b는 또한 대응하는 전단된 뷰들 1 내지 4에 대한 전단 효과(241a 내지 241d)를 도시한다. 더 강한 전단 효과는 뷰가 더 많이 전단되도록 할 것이다. 전단 효과는 전단 강도에 의해 결정되어, 큰 전단 강도는 더 큰 전단 효과(241a 내지 241d)를 초래할 것이다. 예를 들어, 전단 강도는 수렴 평면의 기울임의 양을 기반으로 할 수 있다. 또한, 뷰들이 중심 시점(235)으로부터 멀어질수록 전단 강도가 증가한다. 예를 들어, 전단된 뷰 1의 전단 효과(241a)는 전단된 뷰 2의 전단 효과(241b)보다 더 강한데, 이는 전단된 뷰 1가 중심 시점(235)으로부터 더 멀리 떨어져 있기 때문이다. 또한, 전단된 뷰 1의 전단 효과(241a)는 전단된 뷰 4의 전단 효과(241d)와 유사한데, 이는 전단된 뷰 1 및 전단된 뷰 4가 중심 시점(235)과 등거리에 있기 때문이다. 그러나, 전단된 뷰 1 및 전단된 뷰 4는 반대 방향의 전단 효과(241a, 241d)를 갖는데, 이는 이들이 중심 시점(235)의 반대 측에 있기 때문이다.
전단 라인(238)은 디폴트로서 수직축을 따라 중간에 위치하는 수평 라인을 형성할 수 있다. 다른 실시 예들에서, 전단 라인(238)은 다양한 수직 위치들에 위치될 수 있고, 사용자-지정될 수 있다. 도 5b는 수평 전단 라인(238)을 도시하지만, 전단 라인(238)은 수직일 수 있다. 이러한 실시 예에서, 전단 함수는 픽셀 좌표계의 수직축을 따라 제 1 뷰 및 제 2 뷰를 편향시키도록 구성된다. 일부 실시 예들에서, 전단 라인(238)은, 수평축 및 수직축을 따라 변화하는 지점들을 갖도록, 경사지거나(sloped) 만곡된다(curved). 이러한 예에서, 픽셀들은 X 방향 및 Y 방향 둘 다를 따라 변위될 수 있다.
일 실시 예는, 사용자가 물리적 또는 가상 공간을 탐색할 때 지도 장면들의 멀티뷰 이미지들을 동적으로 생성하기 위해 내비게이션 어플리케이션을 이용하는 것을 고려한다. 카메라 각도가 조감도와 유사하거나 이에 가까운 경우, 수렴 평면은 수평축을 중심으로 기울어질 수 있다. 결과적으로, 전단 함수는 픽셀 좌표계의 수평축을 따라서만 뷰를 편향시키도록 구성된다.
도 6은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 그래픽스 파이프라인과 인터페이싱하는 일 예를 도시한다. 전술한 바와 같이, 어플리케이션(205)은 그래픽스 파이프라인(200)과 인터페이싱할 수 있다. 예를 들어, 어플리케이션(205)은 클라이언트 장치의 운영 체제 상에서 실행되는 사용자 수준 어플리케이션일 수 있다. 어플리케이션(205)은, 서버 상에서 실행되고 클라이언트 장치를 통해 사용자에게 제공되는 클라우드 기반의 어플리케이션으로 구현될 수도 있다. 어플리케이션(205)은 하나 이상의 API를 이용하여 그래픽스 파이프라인(200)과 인터페이싱할 수 있다. 어플리케이션(205)은 뷰들을 계산을 담당한다. 뷰들은 사용자가 입력을 제공함에 따라 동적으로 3D 모델로부터 계산(calculate)될 수 있다. 예를 들어, 사용자는 3D 모델에 의해 정의된 장면을 캡처하는 카메라의 관점, 줌(zoom), 배향 또는 위치를 변경하기 위한 명령어들 또는 입력을 제공할 수 있다. 이에 응답하여, 어플리케이션(205)은 멀티뷰 이미지의 뷰들을 실시간으로 계산할 수 있다. 이 경우, 멀티뷰 이미지는 실시간 그래픽스 파이프라인에서 렌더링될 동영상의 프레임일 수 있다.
멀티뷰 이미지의 뷰들은 사용자 상호작용에 응답하여 동적으로 계산될 수 있다. 어플리케이션(205)은, 임의의 또는 모든 뷰들이 어플리케이션(205)에 의해 계산됨에 따라 이들의 실시간 렌더링을 수행하기 위해 그래픽스 파이프라인(200)에 대한 커맨드를 생성할 수 있다. 예를 들어, 어플리케이션(205)은 뷰들을 렌더링하기 위해 그래픽스 파이프라인(200)에 API 함수 호출을 전송할 수 있다.
실시간 렌더링은 초기 렌더 부분 및 후처리 부분을 포함할 수 있다. 초기 렌더 부분은 초기 뷰들을 렌더링하기 위해 그래픽스 파이프라인(200)을 수반한다. 전술한 바와 같이, 뷰들은, 고급 광학 효과 없이 디스플레이 상에 멀티뷰 이미지의 픽셀을 신속하게 렌더링하기 위해, 초기에 렌더링된다. 초기 렌더링을 수행하는 데에 셰이더가 이용될 수 있다. 이후, 어플리케이션(205)은 초기 렌더링을 최종 렌더링으로 변환하기 위해 하나 이상의 후처리 연산을 인보크할 수 있다. 후처리는 초기 렌더링된 이미지의 품질 또는 사실감을 향상시키는 이미지 편집 연산을 적용할 수 있다. 실시 예들에 따르면, 어플리케이션(205)은 수렴 평면을 기울이도록 그래픽스 파이프라인(200)에게 명령한다. 예를 들어, 그래픽스 파이프라인(200)은 뷰들 각각에 대해 전단 함수를 적용한다. 전단 함수의 전단 강도는 멀티뷰 이미지의 다른 뷰들에 대한 뷰의 위치와 상관된다. 전단 함수를 구현하는 데에 셰이더가 이용될 수 있다. 어플리케이션(205)은 그래픽스 파이프라인에 대한 입력으로서 전단 강도, 전단 라인, 또는 이들 둘 다를 제공할 수 있다. 이후, 멀티뷰 이미지의 전단된 뷰들은 멀티뷰 디스플레이(112) 상에 렌더링된다. 이러한 과정은, 어플리케이션(205)이 실시간으로 렌더링될 새로운 멀티뷰 이미지들을 생성함에 따라, 연속적으로 이루어진다.
도 7a 및 도 7b는 본 명세서에 설명된 원리들에 일치되는 실시 예들에 따라 멀티뷰 이미지의 렌더링을 구성하기 위한 사용자 인터페이스(244)의 예들을 도시한다. 일반적으로 소프트웨어 개발 및 이용에는 구성 모드(configuration mode)와 런타임 모드(run time mode)의 두 가지 모드들이 있다. 구성 모드는 개발자가 소프트웨어 어플리케이션을 만들고 구성하는 모드를 의미한다. 예를 들어, 어플리케이션은 구성 모드 동안에 개발자가 내비게이션 어플리케이션을 생성하는 것을 허용할 수 있다. 개발자는 원하는 카메라 각도, 후처리 연산 및 멀티뷰 이미지들이 렌더링되는 방식의 기타 양상들을 지정할 수 있다. 런타임 모드는 개발자에 의해 구성된 소프트웨어를 최종 사용자가 실행하는 모드를 의미한다.
사용자 인터페이스(244)는 구성 모드 동안 클라이언트 장치 상에 렌더링될 수 있고 개발자(런타임 모드 동안 멀티뷰 이미지들을 최종적으로 렌더링하는 어플리케이션을 개발하고 있는 개발자)에 의해 이용될 수 있다. 사용자 인터페이스는 사용자에게 제공되는 정보(예를 들어, 텍스트 및 그래픽)를 포함하는 윈도우를 포함할 수 있다. 사용자 인터페이스(244)는 최종 사용자 어플리케이션들을 설계하는 데 이용되는 어플리케이션에 의해 생성될 수 있다. 예를 들어, 사용자 인터페이스(244)는 내비게이션 어플리케이션, 게임 어플리케이션, 또는 기타의 어플리케이션을 설계하기 위해 개발자들에 의해 이용될 수 있다. 사용자 인터페이스(244)는 그래픽을 설계하고 그래픽이 다른 사용자들에게 제공되는 방식을 설계하는 개발자들에 의해 이용될 수 있다. 사용자 인터페이스(244)는 최종 사용자 어플리케이션에 의해 렌더링될 수도 있다. 사용자 인터페이스(244)는, 사용자로 하여금 상이한 후처리 연산들에 관한 사용자 선택들을 함으로써 구성 모드 동안 셰이더들을 구성할 수 있게끔 할 수 있다. 사용자 입력에 따라 셰이더들이 구성되면, 셰이더들은 런타임에 멀티뷰 이미지들을 후처리할 수 있다.
사용자 인터페이스(244)는 멀티뷰 이미지 또는 그 표현(representation)을 디스플레이하기 위한 제 1 부분(247)을 가질 수 있다. 제 1 부분(247)은 멀티뷰 이미지의 렌더링을 포함할 수 있다. 예를 들어, 멀티뷰 이미지의 렌더링은 사용자 설정 사항들이 런타임 동안 멀티뷰 이미지들에 적용되는 방식을 시뮬레이션할 수 있다. 사용자 인터페이스(244)는 메뉴를 포함하는 제 2 부분(250)을 가질 수 있다. 메뉴는 예를 들어, 슬라이더, 텍스트 상자, 체크 박스, 라디오 버튼, 드롭다운 메뉴 등과 같은 다양한 입력 요소들을 포함할 수 있다. 메뉴는, 멀티뷰 이미지가 제 1 부분에서 렌더링될 때 사용자로 하여금 멀티뷰 이미지의 다양한 시각적 파라미터들을 변경할 수 있게끔 한다. 이러한 시각적 파라미터들에는, 예를 들어 카메라 기준선, 수렴 오프셋, ZDP 회전, 자동 ZDP 옵션, 피사계 심도(DoF) 임계치, DoF 강도, 투명도 임계치, 투명도 강도 및 잠재적인 기타의 시각적 파라미터가 포함된다. 사용자는 하나 이상의 입력 요소를 조작하여 입력을 제공할 수 있다. 그 결과, 사용자 인터페이스(244)로부터 사용자 입력이 수신된다.
도 7a는 사용자 인터페이스로부터 사용자 입력을 수신하고, 사용자 입력을 기반으로 전단 강도를 결정하는 일 예를 도시한다. 예를 들어, 사용자는 ZDP 회전 슬라이더를 밀어 ZDP 회전의 범위를 선택할 수 있다. 슬라이더가 한 쪽 끝에 있도록 최소(예를 들어, 제로 회전)로 설정하면, 수렴 평면이 회전되지 않는다. 슬라이더를 다른 쪽 끝으로 이동시켜 최대 값으로 설정하면, 수렴 평면은 대응하는 방식으로 기울어진다. 즉, 사용자가 지정한 ZDP 회전의 양이 기울임의 양을 결정하는 데 이용된다. 이는, 런타임 동안 전단 함수를 적용할 때 전단의 강도를 정량화할 수 있다.
전단 함수는 사용자가 지정할 수 있는 기준선에 따라 전단 강도를 계산할 수도 있다. 기준선은 적어도 2개의 뷰들 사이의 거리를 증가시킴으로써 각각의 뷰와 중심 시점 사이의 거리를 제어한다. 따라서, 기준선을 늘리면 뷰가 중심 시점으로부터 더 멀리 이동할 수 있고, 따라서 뷰에 더 강한 전단 효과가 발생할 수 있다. 이를 위해, 수렴 평면을 기울이는 효과가 달성되도록 바깥 쪽 뷰들이 더 많이 전단될 것이다.
도 7b는 사용자로 하여금 구성 모드 동안 수렴 평면의 기울임의 양을 자동으로 결정하기 위한 옵션을 선택할 수 있게끔 하는 사용자 인터페이스의 일 예를 도시한다. 예를 들어, 어플리케이션은 멀티뷰 이미지의 뷰와 다른 뷰의 공통 지점(common point)에서의 시차 값을 계산하여 전단 강도를 자동으로 결정할 수 있다. 예를 들어, 어플리케이션은 미리 결정된 위치에서의 특징을 식별할 수 있다. 이 특징은 공통 색상을 갖는 픽셀들의 집합인, 픽셀일 수 있다. 미리 결정된 위치는 뷰의 수평축 또는 수직축을 따르는 중간점일 수 있다. 어플리케이션은 다른 뷰에서 해당 특징의 위치를 식별하여, 다른 뷰의 다른 시야각으로 인해 해당 특징이 시프트된(shifted) 양을 결정할 수 있다. 어플리케이션은 미리 결정된 위치에서의 특징을 식별하기 위해 레이캐스트(raycast) 연산을 인보크할 수 있다. 레이캐스팅은 특정 각도로부터 3D 모델의 특정 위치를 향해 가상의 광선을 투사하는 것을 의미한다. 그 출력은 3D 모델의 특징을 식별한다. 레이캐스팅은 3D 모델로부터 상이한 뷰들 간의 시차를 결정하는 데 이용될 수 있다. 2개의 뷰들 사이에서 특징이 변위되는 양은 시차와 동일하다. 특정 위치에서 2개의 뷰들 사이의 시차가 식별되면, 수렴 평면을 기울인 결과로서 이 특정 위치에서의 시차가 제거되도록 최적의 전단 강도가 결정될 수 있다. 이와 관련하여, 계산된 전단 강도를 이용하여 수렴 평면을 기울이면, 시차가 없도록 미리 결정된 위치에 뷰가 정렬된다.
도 7a 및 도 7b는 또한 후처리 연산들을 선택적으로 적용하기 위한 사용자 인터페이스를 도시한다. 일부 실시 예들에서, 후처리 연산들은 멀티뷰 이미지의 선택된 영역들에 적용될 수 있다. 예를 들어, 어플리케이션은, 사용자 인터페이스로부터 사용자 입력을 수신하고, 사용자 입력을 기반으로 시차 값들의 범위를 결정하고, 이 시차 값들의 범위 내의 시차 값들을 갖는 픽셀들에 응답하여 뷰의 픽셀들에 대해 연산하도록 셰이더를 구성하도록, 구성될 수 있다. 사용자 인터페이스(244)는, 예를 들어 DoF 임계치, 투명도 임계치, 또는 기타의 후처리 연산을 위한 임계치와 같은 임계치를 선택하기 위한 메뉴를 포함할 수 있다. 임계치는 시차의 범위에 대응되는 값들의 범위일 수 있다. 낮은 임계치는 적은 양의 시차(예를 들어, 제로 시차 또는 거의 제로 시차)에 대응되는 뷰의 영역들을 포함할 수 있다. 더 높은 임계치는 전체 뷰가 선택되도록 많은 양의 시차에 대응되는 뷰의 영역들을 포함할 수 있다. 임계치 선택은 제로 시차 평면의 양 방향(안쪽 또는 바깥쪽)으로 뷰의 선택을 확장한다. 따라서, 임계치 선택을 기반으로, 어플리케이션은 시차 값들의 범위를 결정하고, 시차 값들의 범위 내에 속하는 뷰의 영역들을 선택할 수 있다.
뷰의 영역들을 선택한 이후, 어플리케이션은 선택된 영역들에만 셰이더 연산(예를 들어, 후처리 연산)을 적용한다. 셰이더는 투명도 연산 또는 피사계 심도 연산, 또는 잠재적인 기타의 후처리 연산을 수행하도록 구성된다. 투명도 연산은 객체 후방의 다른 객체들이 보일 수 있는 정도를 변경한다. 이러한 정도는 사용자 인터페이스를 이용하여 사용자 지정될 수 있다. 예를 들어, 도 7a 및 도 7b에 도시된 바와 같이, 사용자는 투명도 임계치 내에서 픽셀들에 대한 투명도의 정도를 제어하기 위해 투명도 강도를 지정할 수 있다. 투명도 연산을 수행하는 셰이더는 투명도 강도에 따라 구성되며, 투명도 임계치에 의해 정의된 선택된 픽셀들에 대해 연산한다.
피사계 심도 연산은 초점이 맞는 것으로 간주되는 2개의 객체들 간의 깊이의 차이를 수정한다. 예를 들어, 피사계 심도 연산은 선택된 픽셀들 내의 픽셀들에 대한 시차 값들을 변경할 수 있다. 예를 들어, 피사계 심도 임계치가 -30 내지 +30 사이의 시차 값들을 갖는 픽셀들을 선택하는 경우, 큰 피사계 심도 강도는 선택된 픽셀들에 적용되는 흐림의 정도를 지정할 수 있다. 피사계 심도 연산은 선택된 픽셀들을 피사계 심도 강도에 대응되는 방식으로 흐릿하게 한다.
사용자 인터페이스(244)는 사용자로 하여금 임계치들 및 후처리 연산 파라미터들에 대해 특정한 선택들을 할 수 있게끔 한다. 이러한 설정 사항들은 셰이더들을 구성하는 데 이용된다. 런타임 동안, 셰이더들은 사용자 인터페이스(244)를 통해 적용되는 설정 사항들에 따라 연산한다.
도 8은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 픽셀들이 샘플링됨에 따라 전단 함수를 적용하는 컴퓨팅 시스템의 일 예를 도시한다. 도 8은 적어도 프로세서 및 메모리(303)를 포함하는 컴퓨팅 시스템을 도시하며, 메모리(303)는, 실행되는 경우 프로세서로 하여금 다양한 연산들을 수행하게끔 하는 복수의 명령어들을 저장한다. 메모리(303)는 도 4의 메모리(208)와 유사할 수 있다. 프로세서와 메모리를 보여주는 이 컴퓨팅 아키텍처의 일 예는 도 10과 관련하여 보다 상세히 설명된다.
컴퓨팅 시스템은 멀티뷰 이미지의 뷰를 메모리(303)에 로딩할 수 있다. 예를 들어, 도 4와 관련하여 전술한 바와 같이, 어플리케이션(예를 들어, 어플리케이션(205))은 하나 이상의 멀티뷰 이미지(309)를 생성하고 상이한 뷰들(312)을 메모리(303)에 실시간으로 로딩할 수 있다. 뷰(312)는 픽셀 좌표계에 의해 정의되는 비트맵으로서 포맷될 수 있다. 도 8에 도시된 바와 같이, 비트맵은 수평(X)축 및 수직(Y)축을 가질 수 있다. 설명을 위해, 각각의 픽셀은 컬럼 문자(A 내지 G) 및 로우 번호(1 내지 7)에 의해 참조될 수 있다. 최-좌측 상부 픽셀은 뷰(312)의 픽셀(A1)로 지칭된다. 각각의 뷰(312)에 대한 픽셀들의 개수는 도 8에 도시된 픽셀들의 개수보다 상당히 더 많을 수 있음을 이해하여야 한다.
다음으로, 컴퓨팅 시스템은 픽셀 좌표계의 축(323)을 따라 적용되는 전단 함수에 따라 전단된 뷰(320)로서 뷰를 렌더링하기 위한 명령어(렌더 명령어(317))를 그래픽스 파이프라인(315)에 전송할 수 있다. 그래픽스 파이프라인(315)은 도 4의 그래픽스 파이프라인(200)과 유사할 수 있다. 렌더 명령어(317)는, 전단 함수를 적용하도록 구성된 셰이더를 인보크함으로써 뷰를 전단된 뷰(320)로 렌더링하기 위한 API 함수 호출일 수 있다. 전단된 뷰(320)는 각각의 뷰(312)가 대응하는 전단된 뷰(320)를 갖도록 전단된 멀티뷰 이미지(326)의 일부이다. 렌더 명령어(317)는 전단될 뷰를 식별할 수 있다. 렌더 명령어(317)는 멀티뷰 이미지들(211)이 어플리케이션에 의해 동적으로 생성됨에 따라 이들을 렌더링하기 위해 그래픽스 파이프라인(315)에 실시간으로 전송되는 명령어일 수 있다. 전단 함수는, 예를 들어 도 4의 셰이더(226)와 같은 셰이더에 의해 구현될 수 있다. 셰이더는, 예를 들어 도 7a 및 도 7b의 사용자 인터페이스(244)와 같은 사용자 인터페이스를 이용하는 사용자에 의해 구성 모드 동안 구성될 수 있다.
전단 함수의 전단 강도는 멀티뷰 이미지(309)의 다른 뷰들에 대한 뷰(312)의 위치와 상관된다. 예를 들어, 뷰 색인 번호는 다른 뷰들에 대한 뷰(312)의 위치를 식별할 수 있다. 전술한 바와 같이, 일부 실시 예들에서, 전단 강도는 구성 모드 동안 사용자 인터페이스를 통해 사용자 입력을 제공하는 사용자에 의해 결정될 수 있다. 전단 강도는 사용자 입력으로부터 결정되고 런타임 동안 적용된다.
그래픽스 파이프라인(315)은 비트맵의 픽셀들이 그래픽스 파이프라인(315)에 의해 샘플링됨에 따라 전단 함수를 구현하도록 구성된다. 예를 들어, 전단 함수는 뷰(312)로부터 픽셀들을 샘플링함으로써 전단된 뷰를 형성하는 것을 포함할 수 있다. 전단 함수는, 일대일 대응으로 균일하게 샘플링하기 보다는, 전단 강도를 이용하여 전단 라인을 따라 픽셀을 샘플링하여 전단 효과를 발생시킨다. 예를 들어, 전단 함수는 전단 라인을 형성하는 축(323)을 따라 연산한다. 전단된 뷰(320)의 픽셀들은 뷰(312)의 대응하는 위치들에 가까운 위치들로부터 샘플링된다. 전단된 뷰(320)의 픽셀들이 (수직 방향으로) 축(323)으로부터 더 멀어질수록, 수평 변위의 양은 픽셀이 샘플링되는 위치에 대해 증가한다.
예를 들어, 전단된 뷰(320)의 픽셀(D3)은 로우(3 및 4) 근처의 축에 가깝다. 전단된 뷰(320)의 이 픽셀은 뷰(312)의 픽셀(D3)로부터 샘플링된다. 픽셀 샘플링이 동일한 대응하는 위치에서 수행되므로 이는 전단 효과가 없다. 그러나, 픽셀들이 수직 방향으로 더 위쪽에 위치함에 따라 전단 효과는 더욱 분명해진다. 전단된 뷰의 픽셀(D1)은 뷰(312)의 픽셀(C1)로부터 샘플링된다. 이러한 점에서, 축(323)의 북쪽 픽셀들은 우측으로 편향된다. 이는 전단 효과가 전단된 뷰에 적용되도록 하는 샘플링 오프셋이다. 마찬가지로, 전단된 뷰(320)의 픽셀(D7)은 뷰(312)의 픽셀(E7)로부터 샘플링된다. 축(323)의 남쪽 픽셀들은 좌측으로 편향된다. 이러한 편향 기능은 뷰(312)의 특정 에지들 부근에서 연산할 때 유효하지 않은 위치들에서 픽셀들을 샘플링하게끔 할 수 있다. 예를 들어, 전단된 뷰(320)의 픽셀(G7)은 뷰 외부의 위치(X로 표시됨)로부터 샘플링된다. 이 경우, 전단된 뷰(320)의 G7에 대한 픽셀을 생성하기 위해 디폴트 픽셀이 이용될 수 있다. 디폴트 픽셀은 색상 값이 0인 픽셀(예를 들어, 흑색 픽셀)일 수 있거나, 임의의 기타의 디폴트 픽셀 값을 가질 수 있다. 일부 실시 예들에서, 디폴트 픽셀 값은 경계에 있는 가장 가까운 픽셀과 매칭함으로써 결정될 수 있다.
도 8은 픽셀 좌표계의 수평축(예를 들어, 축(323))을 따라서만 뷰(312)를 편향시키도록 구성된 전단 함수를 도시한다. 그러나, 어떠한 축 배향이라도 적용될 수 있다. 또한, 도 7a 및 도 7b와 관련하여 전술한 바와 같이, (수렴 평면을 기울이는 것을 포함하는) 후처리 연산들은 사용자 인터페이스(예를 들어, 사용자 인터페이스(244))를 이용하여 구성 모드 동안 구성될 수 있다. 이후, 전단 함수는 그래픽스 파이프라인(315)에서 런타임 동안 적용될 수 있다.
도 9는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 멀티뷰 이미지의 수렴 평면을 기울이는 시스템 및 방법의 흐름도를 도시한 흐름도이다. 도 9의 흐름도는 명령어 세트를 실행하는 컴퓨팅 장치(예를 들어, 멀티뷰 디스플레이 시스템)에 의해 구현되는 상이한 유형의 기능의 일 예를 제공한다. 대안적으로, 도 9의 흐름도는 하나 이상의 실시 예에 따라 컴퓨팅 장치에서 구현되는 방법의 요소들의 일 예를 묘사하는 것으로 볼 수 있다.
항목(404)에서, 컴퓨팅 장치는 멀티뷰 이미지의 복수의 뷰들을 생성한다. 예를 들어, 어플리케이션(예를 들어, 도 4의 어플리케이션(205))은 사용자 입력에 응답하여 멀티뷰 이미지의 뷰들을 동적으로 생성할 수 있다. 어플리케이션은 뷰들을 메모리(예를 들어, 도 4의 메모리(208), 도 8의 메모리(303))에 로딩할 수 있다.
항목(407)에서, 컴퓨팅 장치는 각각의 뷰와 중심 시점 사이의 거리를 식별한다. 예를 들어, 어플리케이션은 다른 뷰에 대한 각각의 뷰의 위치를 나타내는 뷰 색인 번호를 기반으로 이 거리를 식별할 수 있다. 뷰 색인 번호는, 색인 번호가 순서화되기 때문에, 뷰가 중심의 우측에 있는지 또는 좌측에 있는지 여부와 중심에 얼마나 가까운지를 나타낼 수 있다. 이 거리는 기준선에 따라 계산될 수도 있다. 기준선이 미리 결정된 경우, 뷰 색인은 뷰와 중심 시점 사이의 거리를 추론하기에 충분할 수 있다.
항목(410)에서, 컴퓨팅 장치는 각각의 뷰에 대해 전단 함수를 적용하여 전단된 뷰들을 생성한다. 예를 들어, 그래픽스 파이프라인(예를 들어, 도 4의 그래픽스 파이프라인(200), 도 8의 메모리(303))은 후처리 전단 함수를 적용하도록 어플리케이션에 의해 명령될 수 있다. 그래픽스 파이프라인은 픽셀 좌표계의 축을 따라 적용되는 전단 함수의 제 1 전단 강도에 따라 그래픽스 파이프라인에서 제 1 뷰를 제 1 전단된 뷰로서 렌더링할 수 있다. 그래픽스 파이프라인은 픽셀 좌표계의 축을 따라 적용되는 전단 함수의 제 2 전단 강도에 따라 그래픽스 파이프라인에서 제 2 뷰를 제 2 전단된 뷰로서 렌더링할 수 있다. 제 1 전단 강도 및 제 2 전단 강도는 상이하며, 뷰와 중심 시점 사이의 거리를 기반으로 한다. 예를 들어, 제 1 전단 강도는 음의 전단 강도일 수 있고, 제 2 전단 강도는 양의 전단 강도일 수 있다. 전단 강도의 부호는 뷰에 적용되는 전단의 방향을 제어하며, 이는 중심 시점에 대한 뷰의 상대 위치에 따라 달라진다.
항목(413)에서, 컴퓨팅 장치는 렌더링된 전단된 뷰들을 디스플레이한다. 전단된 뷰들은 각각의 뷰에 대해 적용되는 전단 양에 의해 제어되는 기울어진 수렴 평면을 효과적으로 갖는다. 뷰들은 멀티뷰 디스플레이 상에 멀티뷰 이미지로서 렌더링될 수 있다. 예를 들어, 그래픽스 파이프라인은 멀티뷰 이미지가 디스플레이를 위해 렌더링되도록, 예를 들어 그래픽스 드라이버 및/또는 펌웨어를 이용하여 멀티뷰 디스플레이와 통신할 수 있다.
전술한 도 9의 흐름도는 명령어 세트의 구현의 기능 및 연산을 갖는 수렴 평면을 실시간으로 기울이는 시스템 또는 방법을 예시할 수 있다. 소프트웨어로 구현되는 경우, 각각의 박스는 지정된 논리 함수(들)를 구현하기 위한 명령어들을 포함하는 코드의 부분, 세그먼트 또는 모듈을 나타낼 수 있다. 명령어들은 프로그래밍 언어로 작성된 사람이 읽을 수 있는 명령문을 포함하는 소스 코드, 소스 코드로부터 컴파일된 객체 코드, 또는 컴퓨팅 장치의 프로세서와 같은 적절한 실행 시스템에 의해 지각될 수 있는 숫자 명령어들을 포함하는 기계어 코드의 형태로 구현될 수 있다. 기계어 코드는 소스 코드 등으로부터 변환될 수 있다. 하드웨어로 구현되는 경우, 각각의 블록은 지정된 논리 함수(들)를 구현하기 위한 회로 또는 복수의 상호 연결된 회로들을 나타낼 수 있다.
도 9의 흐름도는 특정한 실행 순서를 나타내고 있지만, 실행 순서는 묘사된 순서와는 상이할 수 있음을 이해할 수 있다. 예를 들어, 2개 이상의 박스들의 실행 순서는 도시된 순서에 대해 뒤섞일 수 있다. 또한, 도시된 2개 이상의 박스들은 동시에 또는 부분적으로 동시에 실행될 수 있다. 또한, 일부 실시 예들에서, 박스들 중 하나 이상은 스킵(skip)되거나 생략될 수 있다.
도 10은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 멀티뷰 디스플레이 시스템을 제공하는 멀티뷰 디스플레이 시스템(1000)의 예시적인 실례를 묘사하는 개략적인 블록도이다. 멀티뷰 디스플레이 시스템(1000)은 멀티뷰 디스플레이 시스템(1000)의 사용자를 위해 다양한 컴퓨팅 동작들을 수행하는 컴포넌트(component)들의 시스템을 포함할 수 있다. 멀티뷰 디스플레이 시스템(1000)은 랩톱, 태블릿, 스마트 폰, 터치 스크린 시스템, 지능형 디스플레이 시스템, 또는 기타의 클라이언트 장치일 수 있다. 멀티뷰 디스플레이 시스템(1000)은, 예를 들어 프로세서(들)(1003), 메모리(1006), 입출력(input/output; I/O) 컴포넌트(들)(1009), 디스플레이(1012) 및 잠재적인 기타의 컴포넌트들과 같은 다양한 컴포넌트들을 포함할 수 있다. 이러한 컴포넌트들은, 멀티뷰 디스플레이 시스템(1000)의 컴포넌트들이 서로 통신할 수 있도록 로컬 인터페이스로서의 역할을 하는 버스(1015)에 결합될 수 있다. 멀티뷰 디스플레이 시스템(1000)의 컴포넌트들이 멀티뷰 디스플레이 시스템(1000) 내에 포함되는 것으로 도시되지만, 컴포넌트들 중 적어도 일부는 외부 연결을 통해 멀티뷰 디스플레이 시스템(1000)에 결합될 수도 있음을 이해하여야 한다. 예를 들어, 컴포넌트들은 외부 포트들, 소켓들, 플러그들, 또는 커넥터들을 통해 멀티뷰 디스플레이 시스템(1000)에 외부적으로 연결되거나 또는 다른 방식으로 연결될 수 있다.
프로세서(1003)는 중앙 처리 유닛(central processing unit; CPU), 그래픽스 처리 유닛(graphics processing unit; GPU), 컴퓨팅 처리 동작들을 수행하는 임의의 다른 집적 회로, 또는 이들의 임의의 조합일 수 있다. 프로세서(들)(1003)는 하나 이상의 프로세싱 코어들을 포함할 수 있다. 프로세서(들)(1003)는 명령어들을 실행하는 회로를 포함한다. 예를 들어, 명령어들은, 명령어들에 구현된 컴퓨팅 기능을 수행하기 위해 프로세서(들)(1003)에 의해 수신되고 실행되는 컴퓨터 코드, 프로그램들, 로직 또는 기타의 기계 판독가능 명령어들을 포함한다. 프로세서(들)(1003)는 데이터에 대해 연산하도록 명령어들을 실행할 수 있다. 예를 들어, 프로세서(들)(1003)는 입력 데이터(예를 들어, 이미지)를 수신하고, 명령어 세트에 따라 입력 데이터를 처리하고, 출력 데이터(예를 들어, 처리된 이미지)를 생성할 수 있다. 다른 예로서, 프로세서(들)(1003)는 명령어들을 수신하고 후속 실행을 위한 새로운 명령어들을 생성할 수 있다. 프로세서(1003)는 그래픽스 파이프라인(예를 들어, 도 4의 그래픽스 파이프라인(200), 도 8의 그래픽스 파이프라인(315))을 구현하기 위한 하드웨어를 포함할 수 있다. 예를 들어, 프로세서(들)(1003)는 하나 이상의 GPU 코어들, 벡터 프로세서들, 스케일러 프로세스들, 또는 하드웨어 가속기들을 포함할 수 있다.
메모리(1006)는 하나 이상의 메모리 컴포넌트들을 포함할 수 있다. 본 명세서에서, 메모리(1006)는 휘발성 메모리 및 비휘발성 메모리 중 하나 또는 둘 다를 포함하는 것으로 정의된다. 휘발성 메모리 컴포넌트들은 전력 손실 시 정보를 보유하지 않는 컴포넌트들이다. 예를 들어, 휘발성 메모리는 랜덤 액세스 메모리(random access memory; RAM), 정적(static) 랜덤 액세스 메모리(SRAM), 동적(dynamic) 랜덤 액세스 메모리(DRAM), 자기(magnetic) 랜덤 액세스 메모리(MRAM), 또는 기타의 휘발성 메모리 구조를 포함할 수 있다. 시스템 메모리(예를 들어, 메인 메모리, 캐시 등)는 휘발성 메모리를 이용하여 구현될 수 있다. 시스템 메모리는 프로세서(들)(1003)를 보조하기 위해 고속 읽기 및 쓰기 액세스를 위한 데이터 또는 명령어들을 일시적으로 저장할 수 있는 고속 메모리를 지칭한다. 메모리(1006)는 도 4의 메모리(208) 또는 도 8의 메모리(303) 또는 하나 이상의 기타의 메모리 장치를 포함할 수 있다.
비휘발성 메모리 컴포넌트들은 전력 손실 시 정보를 유지하는 컴포넌트들이다. 비휘발성 메모리는 읽기 전용 메모리(read-only memory; ROM), 하드 디스크 드라이브, 고체 상태 드라이브, USB 플래시 드라이브, 메모리 카드 판독기를 통해 액세스되는 메모리 카드, 관련 플로피 디스크 드라이브를 통해 액세스되는 플로피 디스크, 광학 디스크 드라이브를 통해 액세스되는 광학 디스크, 적절한 테이프 드라이브를 통해 액세스되는 자기 테이프를 포함한다. 예를 들어, ROM은 프로그램 가능한(programmable) 읽기 전용 메모리(PROM), 소거 가능 프로그램 가능한(erasable programmable) 읽기 전용 메모리(EPROM), 전기적 소거 가능 프로그램 가능한(electrically erasable programmable) 읽기 전용 메모리(EEPROM), 또는 기타의 유사한 메모리 장치를 포함할 수 있다. 스토리지(storage) 메모리는 데이터 및 명령어들의 지속적인 유지를 제공하기 위해 비휘발성 메모리를 이용하여 구현될 수 있다.
메모리(1006)는 명령어들뿐만 아니라 데이터를 저장하기 위해 사용되는 휘발성 메모리 및 비휘발성 메모리의 조합을 의미할 수 있다. 예를 들어, 데이터 및 명령어들은 비휘발성 메모리에 저장될 수 있으며, 프로세서(들)(1003)에 의한 처리를 위해 휘발성 메모리에 로딩될 수 있다. 예를 들어, 명령어들의 실행은, 비휘발성 메모리로부터 휘발성 메모리로 로딩된 이후 프로세서(1003)에 의해 실행될 수 있는 될 수 있는 형식의 기계 코드로 변환된 컴파일된 프로그램, 프로세서(1003)에 의한 실행을 위해 휘발성 메모리로 로딩될 수 있는 객체 코드와 같은 적절한 형식으로 변환된 소스 코드, 또는 휘발성 메모리에서 명령어들을 생성하기 위해 다른 실행 가능한 프로그램에 의해 해석되고 프로세서(1003)에 의해 실행되는 소스 코드 등을 포함할 수 있다. 명령어들은, 예를 들어 RAM, ROM, 시스템 메모리, 스토리지, 또는 이들의 임의의 조합을 포함하는 메모리(1006)의 임의의 부분 또는 컴포넌트에 저장되거나 로딩될 수 있다.
메모리(1006)가 멀티뷰 디스플레이 시스템(1000)의 다른 컴포넌트들과는 별개인 것으로 도시되지만, 메모리(1006)는 적어도 부분적으로 하나 이상의 컴포넌트들에 탑재되거나 다른 방식으로 집적될 수 있음을 이해하여야 한다. 예를 들어, 프로세서(들)(1003)는 처리 동작들을 수행하기 위해 온보드(onboard) 메모리 레지스터들 또는 캐시를 포함할 수 있다.
예를 들어, I/O 컴포넌트(들)(1009)는 터치 스크린, 스피커, 마이크로폰, 버튼, 스위치, 다이얼, 카메라, 센서, 가속도계, 또는 사용자 입력을 수신하거나 사용자에게 지시되는 출력을 생성하는 기타의 컴포넌트들을 포함한다. I/O 컴포넌트(들)(1009)는 사용자 입력을 수신하여 메모리(1006)에의 저장 또는 프로세서(들)(1003)에 의한 처리를 위한 데이터로 변환할 수 있다. I/O 컴포넌트(들)(1009)는 메모리(1006) 또는 프로세서(들)(1003)에 의해 출력되는 데이터를 수신하고 이를 사용자에 의해 지각되는 형식(예를 들어, 소리, 촉각 반응, 시각 정보 등)으로 변환할 수 있다.
I/O 컴포넌트(1009)의 특정 유형은 디스플레이(1012)이다. 디스플레이(1012)는 멀티뷰 디스플레이(예를 들어, 멀티뷰 디스플레이(112)), 2D 디스플레이와 결합된 멀티뷰 디스플레이, 또는 이미지들을 나타내는 임의의 기타의 디스플레이를 포함할 수 있다. I/O 컴포넌트(1009)로서 기능하는 용량성 터치 스크린 계층은, 사용자가 입력을 제공함과 동시에 시각적 출력을 지각할 수 있도록, 디스플레이 내에 계층화될 수 있다. 프로세서(들)(1003)는 디스플레이(1012) 상의 표현을 위한 이미지로서 포맷된 데이터를 생성할 수 있다. 프로세서(들)(1003)는 사용자에 의한 지각을 위해 디스플레이 상에 이미지를 렌더링하기 위한 명령어들을 실행할 수 있다.
버스(1015)는 프로세서(들)(1003), 메모리(1006), I/O 컴포넌트(들)(1009), 디스플레이(1012) 및 멀티뷰 디스플레이 시스템(1000)의 임의의 다른 컴포넌트들 사이의 명령어들 및 데이터의 통신을 용이하게 한다. 버스(1015)는 데이터 및 명령어들의 통신을 허용하기 위해 어드레스 변환기들, 어드레스 디코더들, 패브릭, 전도성 트레이스들, 전도성 와이어들, 포트들, 플러그들, 소켓들 및 기타의 커넥터들을 포함할 수 있다.
메모리(1006) 내의 명령어들은 소프트웨어 스택의 적어도 일부를 구현하는 방식으로 다양한 형태로 구현될 수 있다. 예를 들어, 명령어들은 운영 체제(1031), 어플리케이션(들)(1034), 장치 드라이버(예를 들어, 디스플레이 드라이버(1037)), 펌웨어(예를 들어, 디스플레이 펌웨어(1040)), 또는 기타의 소프트웨어 컴포넌트들로서 구현될 수 있다. 운영 체제(1031)는 연산 스케줄링, I/O 컴포넌트들(1009) 제어, 하드웨어 리소스에 대한 액세스 제공, 전력 관리, 및 어플리케이션(1034) 지원과 같은, 멀티뷰 디스플레이 시스템(1000)의 기본 기능을 지원하는 소프트웨어 플랫폼이다.
어플리케이션(들)(1034)은 운영 체제(1031) 상에서 실행되고 운영 체제(1031)를 통해 멀티뷰 디스플레이 시스템(1000)의 하드웨어 리소스들에 액세스할 수 있다. 이와 관련하여, 어플리케이션(들)(1034)의 실행은 적어도 부분적으로 운영 체제(1031)에 의해 제어된다. 어플리케이션(들)(1034)은 사용자에게 높은 수준의 기능, 서비스 및 기타의 기능을 제공하는 사용자 수준의 소프트웨어 프로그램일 수 있다. 일부 실시 예들에서, 어플리케이션(1034)은 멀티뷰 디스플레이 시스템(1000) 상에서 사용자가 다운로드 가능하거나 액세스 가능한 전용 '앱(app)'일 수 있다. 사용자는 운영 체제(1031)에 의해 제공되는 사용자 인터페이스를 통해 어플리케이션(들)(1034)을 실행할 수 있다. 어플리케이션(들)(1034)은 개발자들에 의해 개발되고 다양한 소스 코드 형식들로 정의될 수 있다. 어플리케이션들(1034)은, 예를 들어, C, C++, C#, Objective C, Java®, Swift, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Go, 또는 기타의 프로그래밍 언어들과 같은, 많은 프로그래밍 또는 스크립팅 언어들을 이용하여 개발될 수 있다. 어플리케이션(들)(1034)은 컴파일러에 의해 객체 코드로 컴파일되거나 프로세서(들)(1003)에 의한 실행을 위해 해석기에 의해 해석될 수 있다. 어플리케이션(1034)은 도 4의 어플리케이션(205)일 수 있다. 어플리케이션은 도 4의 어플리케이션(205)을 생성하는 개발자를 위한 구성 모드의 일부로서 사용자 인터페이스(예를 들어, 사용자 인터페이스(244))를 제공하는 또 다른 어플리케이션일 수도 있다.
예를 들어 디스플레이 드라이버(1037)와 같은 장치 드라이버들은, 운영 체제(1031)가 다양한 I/O 컴포넌트들(1009)과 통신할 수 있도록 하는, 명령어들을 포함한다. 각각의 I/O 컴포넌트(1009)는 자신의 장치 드라이버를 가질 수 있다. 장치 드라이버들은, 스토리지에 저장되고 시스템 메모리에 로딩되도록, 설치될 수 있다. 예를 들어, 설치 시에, 디스플레이 드라이버(1037)는 운영 체제(1031)로부터 수신된 높은 수준의 디스플레이 명령어를 디스플레이(1012)에 의해 구현되는 낮은 수준의 명령어들로 변환하여 이미지를 디스플레이한다.
예를 들어 디스플레이 펌웨어(1040)와 같은, 펌웨어는 I/O 컴포넌트(1009) 또는 디스플레이(1012)가 낮은 수준의 연산들을 수행할 수 있게끔 하는 기계 코드 또는 어셈블리 코드를 포함할 수 있다. 펌웨어는 특정 컴포넌트의 전기적 신호들을 더 높은 수준의 명령어들 또는 데이터로 변환할 수 있다. 예를 들어, 디스플레이 펌웨어(1040)는 전압 또는 전류 신호를 조절함으로써 디스플레이(1012)가 낮은 수준에서 개별 픽셀들을 활성화하는 방식을 제어할 수 있다. 펌웨어는 비휘발성 메모리에 저장되고, 비휘발성 메모리로부터 직접 실행될 수 있다. 예를 들어, 디스플레이 펌웨어(1040)는, ROM 칩이 멀티뷰 디스플레이 시스템(1000)의 다른 스토리지 및 시스템 메모리로부터 분리되도록 디스플레이(1012)에 연결된, ROM 칩에 구현될 수 있다. 디스플레이(1012)는 디스플레이 펌웨어(1040)를 실행하기 위한 프로세싱 회로를 포함할 수 있다.
운영 체제(1031), 어플리케이션(들)(1034), 드라이버들(예를 들어, 디스플레이 드라이버(1037)), 펌웨어(예를 들어, 디스플레이 펌웨어(1040)), 및 가능한 다른 명령어 세트들은, 각각, 전술한 기능 및 연산들을 수행하기 위해 프로세서(들)(1003) 또는 멀티뷰 디스플레이 시스템(1000)의 다른 프로세싱 회로에 의해 실행 가능한 명령어들을 포함한다. 비록 본 명세서에 설명된 명령어들은 전술한 바와 같이 프로세서(들)(1003)에 의해 실행되는 소프트웨어 또는 코드로 구현될 수 있지만, 대안적으로, 명령어들은 전용 하드웨어 또는 소프트웨어와 전용 하드웨어의 조합으로 구현될 수도 있다. 예를 들어, 전술한 명령어들에 의해 수행되는 기능 및 연산들은 여러 기법들 중 어느 하나 또는 이들의 조합을 채용하는 회로 또는 상태 머신으로서 구현될 수 있다. 이러한 기법들은, 하나 이상의 데이터 신호의 인가 시 다양한 로직 기능들을 구현하기 위한 로직 게이트들을 갖는 개별 로직 회로들, 적절한 로직 게이트들을 갖는 어플리케이션 특정 집적 회로(application specific integrated circuit; ASIC)들, 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA)들, 또는 기타의 컴포넌트들 등을 포함할 수 있지만, 이에 제한되지는 않는다.
일부 실시 예들에서, 전술한 기능 및 연산들을 수행하는 명령어들은 비-일시적인 컴퓨터-판독 가능한 저장 매체에 구현될 수 있다. 컴퓨터-판독 가능한 저장 매체는 멀티뷰 디스플레이 시스템(1000)의 일부일 수도 있고 아닐 수도 있다. 예를 들어, 명령어들은 컴퓨터-판독 가능한 매체로부터 페치되고 프로세싱 회로(예를 들어, 프로세서(들)(1003))에 의해 실행될 수 있는 명령문들, 코드, 또는 선언들을 포함할 수 있다. 본 명세서에서 논의되는 맥락에서, "비-일시적인 컴퓨터-판독 가능한 매체(computer-readable medium)"는, 예를 들어 멀티뷰 디스플레이 시스템(1000)과 같은 명령어 실행 시스템에 의해 또는 이와 함께 사용하기 위해 본 명세서에 설명된 명령어들을 포함, 저장 또는 유지할 수 있는 임의의 매체일 수 있다.
비-일시적인 컴퓨터-판독 가능한 매체는, 예를 들어 자기, 광학 또는 반도체 매체와 같은 많은 물리적 매체들 중 임의의 것을 포함할 수 있다. 적절한 컴퓨터-판독 가능한 매체의 보다 구체적인 예들에는 자기 테이프, 자기 플로피 디스켓, 자기 하드 드라이브, 메모리 카드, 고체 상태 드라이브, USB 플래시 드라이브 또는 광학 디스크가 있지만, 있지만 이에 제한되지는 않는다. 또한, 컴퓨터-판독 가능한 매체는, 예를 들어 정적 랜덤 액세스 메모리(SRAM) 및 동적 랜덤 액세스 메모리(DRAM), 또는 자기 랜덤 액세스 메모리(MRAM)를 포함하는, 랜덤 액세스 메모리(RAM)일 수 있다. 또한, 컴퓨터-판독 가능한 매체는 읽기 전용 메모리(ROM), 프로그램 가능한 읽기 전용 메모리(PROM), 소거 가능 프로그램 가능한 판독 전용 메모리(EPROM), 전기적 소거 가능 프로그램 가능한 판독 전용 메모리(EEPROM), 또는 기타 유형의 메모리 장치일 수 있다.
멀티뷰 디스플레이 시스템(1000)은 이러한 동작들 중 임의의 것을 수행하거나, 전술한 기능을 구현할 수 있다. 예를 들어, 전술한 흐름도 및 프로세스 흐름들은 명령어들을 실행하고 데이터를 처리하는 멀티뷰 디스플레이 시스템(1000)에 의해 수행될 수 있다. 멀티뷰 디스플레이 시스템(1000)이 단일 장치로서 도시되어 있지만, 실시 예들이 이에 제한되는 것은 아니다. 일부 실시 예들에서, 멀티뷰 디스플레이 시스템(1000)은 분산 방식으로 명령어들의 처리를 오프로드(offload)할 수 있고, 복수의 멀티뷰 디스플레이 시스템들(1000) 또는 기타의 컴퓨팅 장치들은 분산 배열로 저장 또는 로딩될 수 있는 명령어들을 실행하기 위해 함께 동작할 수 있다. 예를 들어, 적어도 일부 명령어들 또는 데이터는 멀티뷰 디스플레이 시스템(1000)과 연동하여 동작하는 클라우드 기반 시스템에서 저장, 로딩 또는 실행될 수 있다.
이상에서는, 멀티뷰 이미지의 수렴 평면을 기울이는 예들 및 실시 예들이 설명되었다. 예를 들어, 수렴 평면은 멀티뷰 이미지가 디스플레이를 위해 렌더링됨에 따라 실시간 그래픽스 파이프라인에서 기울어질 수 있다. 이와 관련하여, 각각의 뷰의 상대적인 위치를 기반으로 멀티뷰 이미지의 상이한 뷰들에 대해 전단 함수를 적용하여 수렴 평면을 기울일 수 있다. 전술한 예들은 단지 본 명세서에 설명된 원리들을 나타내는 많은 구체적인 예들 중 일부를 예시하는 것임을 이해하여야 한다. 명백히, 당업자는 다음의 청구 범위에 의해 정의되는 범위를 벗어나지 않고 수 많은 다른 구성들을 쉽게 고안할 수 있다.

Claims (22)

  1. 컴퓨터로 구현되는, 멀티뷰 이미지의 수렴 평면을 기울이는 방법으로서,
    멀티뷰 이미지의 뷰를 메모리에 로딩하는 단계 - 상기 뷰는 픽셀 좌표계에 의해 정의되는 비트맵으로서 포맷됨 -;
    상기 뷰와 중심 시점 사이의 거리를 식별하는 단계; 및
    상기 픽셀 좌표계의 축을 따라 적용되는 전단 함수에 따라 그래픽스 파이프라인에서 상기 뷰를 전단된 뷰로서 렌더링하는 단계 - 상기 전단 함수의 전단 강도는 상기 거리와 상관됨 -;
    를 포함하는, 멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  2. 제 1 항에 있어서,
    상기 전단 함수는, 상기 픽셀 좌표계의 수평축을 따라서만 상기 뷰를 편향(skew)시키도록 구성되는,
    멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  3. 제 2 항에 있어서,
    상기 멀티뷰 이미지는, 내비게이션 어플리케이션에 의해 생성되는 지도를 포함하는,
    멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  4. 제 1 항에 있어서,
    상기 뷰와 상기 중심 시점 사이의 거리는, 상기 멀티뷰 이미지의 상기 뷰의 순서화된 뷰 번호를 결정함으로써 식별되는,
    멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  5. 제 1 항에 있어서,
    사용자 인터페이스로부터 사용자 입력을 수신하는 단계; 및
    상기 사용자 입력을 기반으로 상기 전단 강도를 결정하는 단계;
    를 더 포함하는, 멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  6. 제 1 항에 있어서,
    상기 뷰와 상기 멀티뷰 이미지의 다른 뷰 사이의 공통 지점에서의 시차 값을 계산하여, 상기 전단 강도를 자동으로 결정하는 단계;
    를 더 포함하는, 멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  7. 제 1 항에 있어서,
    사용자 인터페이스로부터 사용자 입력을 수신하는 단계;
    상기 사용자 입력을 기반으로 시차 값들의 범위를 결정하는 단계; 및
    상기 시차 값들의 범위 내의 시차 값들을 갖는 픽셀들에 응답하여, 상기 뷰의 픽셀들에 대해 연산하도록 셰이더(shader)를 구성하는 단계;
    를 더 포함하는, 멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  8. 제 7 항에 있어서,
    상기 셰이더는, 투명도 연산 또는 피사계 심도 연산 중 적어도 하나를 수행하도록 구성되는,
    멀티뷰 이미지의 수렴 평면을 기울이는 방법.
  9. 멀티뷰 디스플레이 시스템으로서,
    프로세서; 및
    복수의 명령어들을 저장하는 메모리;
    를 포함하되,
    상기 명령어들은, 실행되는 경우, 상기 프로세서로 하여금:
    멀티뷰 이미지의 뷰를 메모리에 로딩하고 - 상기 뷰는 픽셀 좌표계에 의해 정의되는 비트맵으로서 포맷됨 -; 그리고
    상기 픽셀 좌표계의 축을 따라 적용되는 전단 함수에 따라 상기 뷰를 전단된 뷰로서 렌더링하기 위한 명령어를 그래픽스 파이프라인에 전송 - 상기 전단 함수의 전단 강도는 상기 멀티뷰 이미지의 다른 뷰들에 대한 상기 뷰의 위치와 상관됨 -; 하게끔 하고,
    상기 그래픽스 파이프라인은, 상기 비트맵의 픽셀들이 상기 그래픽스 파이프라인에 의해 샘플링됨에 따라, 상기 전단 함수를 구현하도록 구성되고,
    상기 멀티뷰 디스플레이 시스템은, 상기 그래픽스 파이프라인에서 수렴 평면을 기울이도록 구성되는,
    멀티뷰 디스플레이 시스템.
  10. 제 9 항에 있어서,
    상기 전단 함수는, 상기 픽셀 좌표계의 수평축을 따라서만 상기 뷰를 편향시키도록 구성되는,
    멀티뷰 디스플레이 시스템.
  11. 제 9 항에 있어서,
    상기 멀티뷰 이미지는, 내비게이션 어플리케이션에 의해 생성되는 지도를 포함하는,
    멀티뷰 디스플레이 시스템.
  12. 제 9 항에 있어서,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금 추가적으로:
    사용자 인터페이스로부터 사용자 입력을 수신하고;
    상기 사용자 입력을 기반으로 상기 전단 강도를 결정하게끔 하는,
    멀티뷰 디스플레이 시스템.
  13. 제 9 항에 있어서,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금 추가적으로:
    상기 뷰와 상기 멀티뷰 이미지의 다른 뷰 사이의 공통 지점에서의 시차 값을 계산하여, 상기 전단 강도를 자동으로 결정하게끔 하는,
    멀티뷰 디스플레이 시스템.
  14. 제 9 항에 있어서,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금 추가적으로:
    사용자 인터페이스로부터 사용자 입력을 수신하고;
    상기 사용자 입력을 기반으로 시차 값들의 범위를 결정하고;
    상기 시차 값들의 범위 내의 시차 값들을 갖는 픽셀들에 응답하여, 상기 뷰의 픽셀들에 대해 연산하도록 셰이더를 구성하게끔 하는,
    멀티뷰 디스플레이 시스템.
  15. 제 14 항에 있어서,
    상기 셰이더는, 투명도 연산 또는 피사계 심도 연산 중 적어도 하나를 수행하도록 구성되는,
    멀티뷰 디스플레이 시스템.
  16. 제 9 항에 있어서,
    상기 멀티뷰 디스플레이 시스템은, 광각 백라이트를 이용하여 2D 모드 동안 광각 방출광을 제공하도록 구성되고;
    상기 멀티뷰 디스플레이 시스템은, 멀티빔 소자들의 어레이를 갖는 멀티뷰 백라이트를 이용하여 멀티뷰 모드 동안 지향성 방출광을 제공하도록 구성되고 - 상기 지향성 방출광은 상기 멀티빔 소자 어레이의 각각의 멀티빔 소자에 의해 제공되는 복수의 지향성 광빔들을 포함함 -;
    상기 멀티뷰 디스플레이 시스템은, 모드 제어기를 이용하여 상기 2D 모드와 상기 멀티뷰 모드를 시간 다중화하여, 상기 2D 모드에 대응되는 제 1 순차 시간 구간 동안에는 상기 광각 백라이트를 그리고 상기 멀티뷰 모드에 대응되는 제 2 순차 시간 구간 동안에는 상기 멀티뷰 백라이트를 순차적으로 활성화시키도록 구성되며;
    상기 지향성 광빔의 지향성 광빔들의 방향들은 멀티뷰 이미지의 상이한 뷰 방향들에 대응되는,
    멀티뷰 디스플레이 시스템.
  17. 제 16 항에 있어서,
    상기 멀티뷰 디스플레이 시스템은, 광을 도광체 내에서 안내된 광으로서 안내하도록 구성되고;
    상기 멀티뷰 디스플레이 시스템은, 상기 멀티빔 소자 어레이의 멀티빔 소자들을 이용하여 상기 안내된 광의 일부를 상기 지향성 방출광으로서 산란시키도록 구성되며,
    상기 멀티빔 소자 어레이의 각각의 멀티빔 소자는 회절 격자, 미세 굴절성 소자 및 미세 반사성 소자 중 하나 이상을 포함하는,
    멀티뷰 디스플레이 시스템.
  18. 컴퓨팅 시스템의 프로세서에 의해 실행되는 경우 그래픽스 파이프라인에서 수렴 평면의 기울임을 구현하는 명령어들을 저장하는 비-일시적인 컴퓨터-판독 가능한 저장 매체로서,
    상기 그래픽스 파이프라인에서 수렴 평면을 기울이는 것은:
    멀티뷰 이미지의 복수의 뷰들을 생성하고 - 각각의 뷰는 픽셀 좌표계에 의해 정의되는 비트맵으로서 포맷되고, 상기 복수의 뷰들은 제 1 뷰 및 제 2 뷰를 포함함 -;
    상기 픽셀 좌표계의 축을 따라 적용되는 전단 함수의 제 1 전단 강도에 따라 상기 그래픽스 파이프라인에서 상기 제 1 뷰를 제 1 전단된 뷰로서 렌더링하고;
    상기 픽셀 좌표계의 축을 따라 적용되는 상기 전단 함수의 제 2 전단 강도에 따라 상기 그래픽스 파이프라인에서 상기 제 2 뷰를 제 2 전단된 뷰로서 렌더링하는 것;
    을 포함하는,
    비-일시적인 컴퓨터-판독 가능한 저장 매체.
  19. 제 18 항에 있어서,
    상기 전단 함수는, 상기 픽셀 좌표계의 수평축을 따라서만 적용되는,
    비-일시적인 컴퓨터-판독 가능한 저장 매체.
  20. 제 18 항에 있어서,
    상기 전단 함수는, 상기 픽셀 좌표계의 수직축을 따라 상기 제 1 뷰 및 제 2 뷰를 편향시키도록 구성되는,
    비-일시적인 컴퓨터-판독 가능한 저장 매체.
  21. 제 18 항에 있어서,
    상기 제 1 전단 강도는 음의 전단 강도이고, 상기 제 2 전단 강도는 양의 전단 강도인,
    비-일시적인 컴퓨터-판독 가능한 저장 매체.
  22. 제 18 항에 있어서,
    상기 그래픽스 파이프라인은, 상기 멀티뷰 이미지의 비트맵들의 픽셀들이 상기 그래픽스 파이프라인에 의해 샘플링됨에 따라, 상기 전단 함수를 구현하도록 구성되는,
    비-일시적인 컴퓨터-판독 가능한 저장 매체.
KR1020237016657A 2020-11-18 2020-12-18 멀티뷰 이미지 수렴 평면 기울임을 채용하는 멀티뷰 디스플레이 시스템 및 방법 KR20230091126A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063115531P 2020-11-18 2020-11-18
US63/115,531 2020-11-18
PCT/US2020/066251 WO2022108609A1 (en) 2020-11-18 2020-12-18 Multiview display system and method employing multiview image convergence plane tilt

Publications (1)

Publication Number Publication Date
KR20230091126A true KR20230091126A (ko) 2023-06-22

Family

ID=81709537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237016657A KR20230091126A (ko) 2020-11-18 2020-12-18 멀티뷰 이미지 수렴 평면 기울임을 채용하는 멀티뷰 디스플레이 시스템 및 방법

Country Status (8)

Country Link
US (1) US20230290046A1 (ko)
EP (1) EP4248414A1 (ko)
JP (1) JP2023550074A (ko)
KR (1) KR20230091126A (ko)
CN (1) CN116438578A (ko)
CA (1) CA3199438A1 (ko)
TW (1) TW202240547A (ko)
WO (1) WO2022108609A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230237730A1 (en) * 2022-01-21 2023-07-27 Meta Platforms Technologies, Llc Memory structures to support changing view direction

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133041B2 (en) * 2000-02-25 2006-11-07 The Research Foundation Of State University Of New York Apparatus and method for volume processing and rendering
GB2483386B (en) * 2007-05-25 2012-08-15 Pixar Shear displacement depth of field
FR2946438B1 (fr) * 2009-06-08 2014-11-07 Erwan Devigon Systeme et procede de generation d'image stereoscopique a decalage des lointains parametrable dans un systeme et procede a n appareils de prise de vue (n>1)
US9967538B2 (en) * 2013-11-04 2018-05-08 Massachussetts Institute Of Technology Reducing view transitions artifacts in automultiscopic displays
US9727967B2 (en) * 2014-06-23 2017-08-08 Samsung Electronics Co., Ltd. Methods for determining estimated depth in an image and systems thereof

Also Published As

Publication number Publication date
CA3199438A1 (en) 2022-05-27
EP4248414A1 (en) 2023-09-27
WO2022108609A1 (en) 2022-05-27
US20230290046A1 (en) 2023-09-14
TW202240547A (zh) 2022-10-16
JP2023550074A (ja) 2023-11-30
CN116438578A (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
KR101732836B1 (ko) 셰이더 기반의 그래픽스 콘텐츠에 대한 뷰잉 배향에 의한 입체 변환
JP7471449B2 (ja) マルチモードディスプレイを使用して複数の画像の品質を向上させるシステムおよび方法
US11308701B2 (en) Rendering augmented reality image including virtual object with surface showing reflection of environment
US20230290046A1 (en) Multiview display system and method employing multiview image convergence plane tilt
KR20140000170A (ko) 관여 매질에 의해 수광된 광의 양을 추정하기 위한 방법 및 대응하는 장치
US20220070427A1 (en) Display apparatus and operating method of the same
US20230410419A1 (en) Light field camera system and method of setting baseline and convergence distance
TWI823323B (zh) 多視像影像創造系統和創造方法
US20240153200A1 (en) View synthesis system and method using depth map
US11880920B2 (en) Perspective correct vector graphics with foveated rendering
JP2024509782A (ja) マルチビューファイルフォーマットを検出するシステムおよび方法
Wetzstein Augmented and virtual reality
US20240155098A1 (en) Multiview image capture system and method