[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6947352B2 - グラフィックス処理システム、グラフィックスプロセッサ及び該システム又はプロセッサを動作させる方法 - Google Patents

グラフィックス処理システム、グラフィックスプロセッサ及び該システム又はプロセッサを動作させる方法 Download PDF

Info

Publication number
JP6947352B2
JP6947352B2 JP2017169634A JP2017169634A JP6947352B2 JP 6947352 B2 JP6947352 B2 JP 6947352B2 JP 2017169634 A JP2017169634 A JP 2017169634A JP 2017169634 A JP2017169634 A JP 2017169634A JP 6947352 B2 JP6947352 B2 JP 6947352B2
Authority
JP
Japan
Prior art keywords
resolution
scene
data
processing stage
processing
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2017169634A
Other languages
English (en)
Other versions
JP2018049603A (ja
JP2018049603A5 (ja
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 JP2018049603A publication Critical patent/JP2018049603A/ja
Publication of JP2018049603A5 publication Critical patent/JP2018049603A5/ja
Application granted granted Critical
Publication of JP6947352B2 publication Critical patent/JP6947352B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Description

本開示は、グラフィックス処理システム及びグラフィックスプロセッサに関する。
背景
中心窩レンダリング(foveated rendering)は、表示される画像の一部がより高い解像度でレンダリングされ、その画像の1つ又は複数の他の部分がより低い解像度でレンダリングされるレンダリング技法である。この理由は、ユーザが直接見ている画像の一部は、視覚的に受容可能となるようにより高い解像度でレンダリングされる必要があり得、一方で、ユーザが直接見ていない、画像の周辺領域は、依然として視覚的に受容可能に見えつつも、より低い解像度でレンダリングされてもよいためである。中心窩レンダリングは、画像全体を最高解像度でレンダリングするのではなく、画像の周辺領域をより低い解像度でレンダリングすることによって、グラフィックス処理ユニット(GPU)へのレンダリング負荷を削減するために使用され得る。
中心窩レンダリングは、画像のより高解像度のバージョンがレンダリングされる1つ又は複数の固視点を特定することを含み得、1つ又は複数の固視点から離れた領域がより低い解像度でレンダリングされる。画像の最高解像度の領域の位置、すなわち、1つ又は複数の固視点が決定され得る、異なる方法が存在する。たとえば、頭部追跡システム又は視線追跡システムが、ユーザが画像内で見ている場所の特定を試みるために使用され得る。
中心窩レンダリングの1つの用途は、バーチャルリアリティ(VR)ディスプレイ、たとえば、バーチャルリアリティヘッドマウントディスプレイ(VR HMD)に対して画像をレンダリングする場合である。高解像度VR HMDは、深刻な樽形歪みを特徴とするレンズを使用し得る。この効果は、目ごとにディスプレイの中心に向かってレンダリングされる画像が拡大され、周辺エリアが全て縮小されるというものである。したがって、周辺領域は、中心の拡大される領域よりも低い品質で、ユーザにとって全体の視覚効果の著しい損失なしにレンダリングされ得る。
しかしながら、たとえば、中心窩レンダリングを行う場合に、グラフィックスプロセッサ及びグラフィックス処理システムの動作に改善の余地が残っている。
概要
本開示の第1の態様によれば、グラフィックス処理システムを動作させる方法であって、上記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、上記方法が、
初期処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて、第2の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて第1の解像度及び第2の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された注視追跡データから、シーンの少なくとも1つのサブ領域を特定するステップと、
さらなる処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
さらなる処理ステージにおいて、第2の解像度でシーンの特定された少なくとも1つのサブ領域に対応するデータのみを処理するステップと、
さらなる処理ステージにおいて第1の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第2の解像度で処理されたシーンの特定された少なくとも1つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングするステップと
を含む、方法が提供される。
本開示の第2の態様によれば、グラフィックス処理パイプラインを含むグラフィックス処理システムを動作させる方法であって、グラフィックス処理パイプラインにおいてレイトラッチ(late−latched)の視線追跡データを用いて、シーンの1つ又は複数の領域であり、シーンの1つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき1つ又は複数の領域を特定するステップを含む、方法が提供される。
本開示の第3の態様によれば、グラフィックス処理システムを動作させる方法であって、上記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、上記方法が、
グラフィックス処理ワークアイテムについての入力データをグラフィックス処理パイプラインに第1の時間に提供するステップと、
グラフィックス処理パイプラインがグラフィックス処理ワークアイテムを処理している間第2のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データをグラフィックス処理パイプラインに提供するステップと
を含む、方法が提供される。
本開示の第4の態様によれば、グラフィックスプロセッサを動作させる方法であって、上記グラフィックスプロセッサが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられ、上記方法が、
初期処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて、第2の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて第1の解像度及び第2の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された注視追跡データから、シーンの少なくとも1つのサブ領域を特定するステップと、
さらなる処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
さらなる処理ステージにおいて、第2の解像度でシーンの特定された少なくとも1つのサブ領域に対応するデータのみを処理するステップと、
さらなる処理ステージにおいて第1の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第2の解像度で処理されたシーンの特定された少なくとも1つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングするステップと
を含む、方法が提供される。
本開示の第5の態様によれば、グラフィックス処理システムにおいて実行された場合に、1つ又は複数のそのような方法を実施するように構成されたソフトウェアコードを含む、コンピュータプログラムが提供される。
本開示の第6の態様によれば、グラフィックス処理パイプラインを含むグラフィックス処理システムであって、上記グラフィックス処理パイプラインが、少なくとも初期処理ステージとさらなる処理ステージとを含み、上記グラフィックス処理システムが、
初期処理ステージにおいて、第1の解像度でシーンのデータを処理し、
初期処理ステージにおいて、第2の解像度でシーンのデータを処理し、
初期処理ステージにおいて第1の解像度及び第2の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された注視追跡データから、シーンの少なくとも1つのサブ領域を特定し、
さらなる処理ステージにおいて、第1の解像度でシーンのデータを処理し、
さらなる処理ステージにおいて、第2の解像度でシーンの特定された少なくとも1つのサブ領域に対応するデータのみを処理し、
さらなる処理ステージにおいて第1の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第2の解像度で処理されたシーンの特定された少なくとも1つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングする
ように構成された、グラフィックス処理システムが提供される。
本開示の第7の態様によれば、グラフィックス処理パイプラインを含むグラフィックス処理システムであって、グラフィックス処理パイプラインにおいてレイトラッチの視線追跡データを用いて、シーンの1つ又は複数の領域であり、シーンの1つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき1つ又は複数の領域を特定するように構成された、グラフィックス処理システムが提供される。
本開示の第8の態様によれば、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含むグラフィックス処理システムであって、
グラフィックス処理ワークアイテムについての入力データをグラフィックス処理パイプラインに第1の時間に提供し、
グラフィックス処理パイプラインがグラフィックス処理ワークアイテムを処理している間第2のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データをグラフィックス処理パイプラインに提供する
ように構成された、グラフィックス処理システムが提供される。
本開示の第9の態様によれば、1つ又は複数のそのようなグラフィックス処理システムを備える、バーチャルリアリティユーザデバイスが提供される。
本開示の第10の態様によれば、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられたグラフィックスプロセッサであって、
初期処理ステージにおいて、第1の解像度でシーンのデータを処理し、
初期処理ステージにおいて、第2の解像度でシーンのデータを処理し、
初期処理ステージにおいて第1の解像度及び第2の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された注視追跡データから、シーンの少なくとも1つのサブ領域を特定し、
さらなる処理ステージにおいて、第1の解像度でシーンのデータを処理し、
さらなる処理ステージにおいて、第2の解像度でシーンの特定された少なくとも1つのサブ領域に対応するデータのみを処理し、
さらなる処理ステージにおいて第1の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第2の解像度で処理されたシーンの特定された少なくとも1つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングする
ように構成された、グラフィックスプロセッサが提供される。
本開示の第11の態様によれば、そのようなグラフィックスプロセッサを備える、バーチャルリアリティユーザデバイスが提供される。
さらなる特徴及び利点は、添付の図面を参照してなされる、単なる例として与えられる以下の説明から明らかとなろう。
本開示の一実施形態によるグラフィックス処理システムの一例の概略図である。 本開示の一実施形態によるグラフィックス処理パイプラインの一例の概略図である。 本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。 本開示の一実施形態によるフレームパイプライン化の一例の概略図である。 本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。 本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。 本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。 グラフィックス処理パイプラインの他の例の概略図である。
詳細な説明
本開示の実施形態によるいくつかの例が、表示用のコンピュータグラフィックスの処理の文脈においてここで説明される。
図1を参照すると、グラフィックス処理システム100の一例が概略的に示されている。
この例では、ホストプロセッサ110上で実行されるゲームなどのアプリケーション105は、関連付けられたGPU115によってグラフィックス処理演算が実行されるように要求する。これを行うために、アプリケーション105は、GPU115のドライバ120によって解釈されるアプリケーションプログラミングインターフェース(API)コールを生成する。ドライバ120はホストプロセッサ110上で動作する。ドライバ120は、アプリケーション105によって要求されたグラフィックス出力を生成するためのGPU115への適切なコマンドを生成する。アプリケーション105からのコマンドに応答して、コマンドのセットがGPU115に提供される。コマンドは、ディスプレイに表示されるフレームを生成するためのものであり得る。
図2を参照すると、グラフィックス処理パイプライン200の一例が概略的に示されている。グラフィックス処理パイプライン200は、GPUによって実行され得るアクションのシーケンスを指す。
この例では、GPUはタイルベースのレンダラである。したがって、GPUは、生成されるべきレンダー出力データアレイのタイルを生成する。レンダー出力データアレイは、出力フレームであり得る。タイルベースのレンダリングは、レンダー出力全体が一度に処理されるのではなく、レンダー出力が複数のより小さいサブ領域(又は「エリア」)に分割されるという点で、即時モードレンダリングと異なる。それらのサブ領域は、本明細書ではタイルと呼ばれる。各タイルは別々にレンダリングされる。たとえば、各タイルは次々にレンダリングされ得る。次いで、レンダリングされたタイルは再結合されて、表示用の完全なレンダー出力を提供する。タイルベースのレンダリングでは、レンダー出力は、規則的な大きさ及び形状のタイルに分割され得る。タイルは四角形又は他の形状であり得る。
「タイル化」及び「タイルベースの」レンダリングに使用され得る他の用語は、レンダリングタイルが「チャンク」と呼ばれる「チャンキング」、及び「バケット」レンダリングを含む。「タイル」及び「タイル化」という用語が以降便宜上使用されるが、これらの用語が全ての代替的及び等価的な用語及び技法を包含するよう意図されていることは理解されたい。
レンダー出力データアレイは、スクリーン又はプリンタなどの表示デバイスに表示するための出力フレームであり得る。レンダー出力はまた、たとえば、後のレンダリングパスで使用するための中間データを含むことができる。この一例は、「テクスチャへのレンダリング(render to texture)」出力である。
コンピュータグラフィックス画像が表示される場合、最初にジオメトリのセットとして、たとえばプリミティブのシリーズとして定義され得る。プリミティブの一例はポリゴンである。次いで、ジオメトリはラスタライズ処理においてグラフィックスフラグメントに分割される。これにグラフィックスレンダリングが続く。グラフィックスレンダリング演算の間に、レンダラは各フラグメントに関連するデータを修正して、フラグメントが正しく表示できるようにすることができる。そのようなデータの例は、色及び透明度を含む。フラグメントがレンダラを完全に横断すると、それらに関連するデータ値がメモリに記憶され、出力の準備ができる。
図2は、本明細書に記載の実施形態の動作に関する、GPUに関連付けられる様々な要素及びパイプラインステージを示す。しかしながら、図2に示されていないグラフィックス処理パイプラインの他の要素及びステージがあり得る。図2が単に概略的であること、また、たとえば、実際には、図示された機能ユニット及びパイプラインステージが、図2では別々のステージとして概略的に示されていても、重要なハードウェア回路を共有できることにも留意されたい。グラフィックス処理パイプライン200のステージ、要素及びユニットなどのそれぞれが、望み通りに実装され得、したがって、たとえば、関連付けられた動作及び機能を実行するための適切な回路及び/又は処理ロジックなどを含むことも理解されよう。
図2に示されるように、GPUが実行するグラフィックス処理パイプライン220は、いくつかのステージ、たとえば、頂点シェーダ205、ハルシェーダ210、テッセレータ215、ドメインシェーダ220、ジオメトリシェーダ225、タイラ230、ラスタライズステージ235、早期(early:アーリー)Z(又は「深度(depth:デプス)」)及びステンシルテストステージ240、フラグメントシェーディングステージ245の形態のレンダラ、後期(late:レイト)Z(又は「深度」)及びステンシルテストステージ250、ブレンドステージ255、タイルバッファ260、並びにダウンサンプリング及び書き出しステージ265を含む。しかしながら、GPUの他の構成が可能である。
頂点シェーダ205は、生成されるべき出力のために定義された頂点に関連する入力データ値を受信する。頂点シェーダ205は、それらのデータ値を処理して、グラフィックス処理パイプライン200の後続のステージによって使用するための、対応する頂点シェーディングされた出力データ値のセットを生成する。
処理されるべき各プリミティブは、頂点のセットによって定義され表現され得る。プリミティブの各頂点は、属性のセットが関連付けられ得る。属性のセットは、頂点についてのデータ値のセットである。これらの属性は、位置データ及び他の非位置データ(又は「varying」)を含むことができる。非位置データは、たとえば、問題の頂点についての色、光、法線及び/又はテクスチャ座標を定義することができる。
頂点のセットが、GPUによって出力される所与の出力について定義される。出力のために処理されるべきプリミティブは、頂点のセットにおける所与の頂点を含む。頂点シェーディング演算は、各頂点の属性を、後続のグラフィックス処理演算のために所望の形態に変換する。これは、たとえば、頂点位置属性を、それらが最初に定義されたワールド又はユーザ空間から、グラフィックス処理システムの出力が表示されるスクリーン空間に変換することを含み得る。これは、たとえば、レンダリングされるべき画像内のライティングの効果を考慮するように入力データを修正することも含み得る。
ハルシェーダ210は、パッチ制御点のセットに演算を行い、パッチ定数として知られている追加データを生成する。
テッセレーションステージ215は、ジオメトリを細分化して、ハルの高次表現を作成する。
ドメインシェーダ220は、頂点シェーダ205と同様の方法で、テッセレーションステージによって出力された頂点に演算を行う。
ジオメトリシェーダ225は、三角形、点又は線などのプリミティブ全体を処理する。
頂点シェーダ205、ハルシェーダ210、テッセレータ215、ドメインシェーダ220及びジオメトリシェーダ225は、GPUに提供されたコマンド及び頂点データに応答して、フラグメントフロントエンド演算、たとえば、変換及びライティング演算、並びにレンダリングされるべきプリミティブをセットアップするためのプリミティブセットアップを行う。
レンダリングされるべき全てのプリミティブが適切にセットアップされると、タイラ230は、レンダラ出力が処理用に分割されたタイルごとに処理されるべきプリミティブを決定する。これを行うために、タイラ230は、処理されるべき各プリミティブの位置をタイル位置と比較し、プリミティブが入る可能性があると決定したタイルごとに、プリミティブをそれぞれのプリミティブリストに追加する。プリミティブをソートし、タイルリストにビニングするための任意の適切な所望の技法、たとえば正確なビニング、若しくはバウンディングボックスビニング、又はその間にあるものが、タイル化処理に使用され得る。
レンダリングされるべきプリミティブのリスト(又は「プリミティブリスト」)がこのようにレンダリングタイルごとに準備されると、プリミティブリストが使用のために記憶される。プリミティブリストによって、システムは、問題のタイルがレンダリングされる場合に、考慮されレンダリングされるべきプリミティブを特定することが可能になる。
タイラ230がタイルリストの全てを準備すると、各タイルがレンダリングされ得る。これを行うために、タイラ230に続くグラフィックス処理パイプラインステージによって各タイルが処理される。
所与のタイルが処理される場合、そのタイルについて処理されるべき各プリミティブがラスタライザ235に渡される。グラフィックス処理パイプライン200のラスタライズステージ235は、プリミティブを処理用に個々のグラフィックスフラグメントにラスタライズするように動作する。これを行うために、ラスタライザ235は、プリミティブをサンプリング点にラスタライズし、プリミティブをレンダリングするための適切な位置を有するグラフィックスフラグメントを生成する。ラスタライザ235によって生成されたフラグメントは次いでその先へ、パイプライン200の残りへ送信されて処理される。
早期Z及びステンシルテストステージ240は、ラスタライザ235から受信したフラグメントにZ(又は「深度」)テストを行って、任意のフラグメントがこのステージで破棄(又は「淘汰(culled)」)され得るかを確認する。これを行うために、早期Z及びステンシルテストステージ240は、ラスタライザ235によって発行されたフラグメントの深度値を、レンダリング済みのフラグメントの深度値と比較する。レンダリング済みのフラグメントの深度値は、タイルバッファ260の一部である深度バッファに記憶される。早期Z及びステンシルテストステージ240によって行われる比較は、新たなフラグメントがレンダリング済みのフラグメントによって閉塞されるか否かを判定するためのものである。同時に、早期ステンシルテストが実施される。フラグメント早期Z及びステンシルテストステージ240を通過したフラグメントは、フラグメントシェーディングステージ245に送信される。フラグメントシェーディングステージ245は、早期Z及びステンシルテストを通過したフラグメントに適切なフラグメント処理演算を行って、適切なレンダリングされたフラグメントデータを生成する。このフラグメント処理は、任意の適切なフラグメントシェーディング処理、たとえば、フラグメントシェーダプログラムをフラグメントに実行して適切なフラグメントデータを生成すること、テクスチャをフラグメントに適用すること、フォギング又は他の演算をフラグメントに適用することなどを含むことができる。フラグメントシェーディングステージ245は、プログラマブルフラグメントシェーダであり得る。
次いで、後期フラグメントZ及びステンシルテストステージ250があり、これはとりわけ、パイプライン深度テストの残りをシェーディングされたフラグメントに実施して、レンダリングされたフラグメントが実際に最終画像で見られるかを判定するものである。この深度テストは、タイルバッファ260内のZバッファに記憶されたフラグメントの位置についてのZバッファ値を用いて、新たなフラグメントのフラグメントデータがレンダリング済みのフラグメントのフラグメントデータを置き換えるべきであるかを判定する。これは、フラグメントシェーディングステージ245によって発行されたフラグメントの深度値を、Zバッファに記憶されたレンダリング済みのフラグメントの深度値と比較することを必要とし得る。この後期フラグメント深度及びステンシルテストステージ250は、後期アルファ及び/又はステンシルテストをフラグメントに実施することもできる。
後期フラグメントテストステージ250を通過したフラグメントは次いで、ブレンダ255において、タイルバッファ260に記憶済みのフラグメントとの任意のブレンド演算が施され得る。フラグメントに必要な任意の他の残りの演算、たとえばディザなど(図示せず)も、このステージで実施される。
最後に、出力フラグメントデータ(又は「値」)がタイルバッファ260に書き込まれる。出力フラグメントデータは次いで、表示用にフレームバッファ270に出力され得る。出力フラグメントの深度値も、タイルバッファ260内のZバッファに適切に書き込まれる。タイルバッファ260は、色バッファ及び深度バッファを記憶し、これらは、バッファが表すサンプリング点ごとに、それぞれ適切な色など、又はZ値を記憶するものである。これらのバッファは、レンダー出力全体の一部、この例ではタイルを表すフラグメントデータのアレイを記憶し、バッファ内のそれぞれのサンプル値のセットは、レンダー出力全体のそれぞれのピクセルに対応する。たとえば、2×2のサンプル値の各セットが出力ピクセルに対応し得、ここで4倍のマルチサンプリングが使用される。
タイルバッファ260は、グラフィックス処理パイプライン200にとってローカルであるランダムアクセスメモリ(RAM)の一部として設けられる。換言すれば、タイルバッファ260はオンチップメモリに設けられる。
タイルバッファ260からのデータは、ダウンサンプリング書き出しユニット265に入力され、次いで、外部メモリ出力バッファ、たとえば表示デバイス(図示せず)のフレームバッファ270に出力される。表示デバイスは、たとえば、ピクセルのアレイを備えるディスプレイ、たとえばコンピュータモニタ又はプリンタを具備することができる。
ダウンサンプリング及び書き出しユニット265は、バッファ260に記憶されたフラグメントデータを、出力バッファ及びデバイスに適切な解像度にダウンサンプリングして、出力デバイスのピクセルに対応するピクセルデータのアレイが生成されるようにする。この結果、出力値が、出力バッファ270への出力用のピクセルの形式となる。
レンダー出力のタイルが処理され、そのデータが記憶用のメインメモリへ、たとえば、メインメモリ内のフレームバッファ270へエクスポートされると、次のタイルが処理され、同様に続き、これはレンダー出力全体を生成するのに十分なタイルが処理されるまで行われる。次いで、この処理が次のレンダー出力について反復され、同様に続く。
図2からわかるように、グラフィックス処理パイプライン200は、いくつかのプログラマブル処理又は「シェーダ」ステージ、すなわち、頂点シェーダ205、ハルシェーダ210、ドメインシェーダ220、ジオメトリシェーダ225、及びフラグメントシェーダ245を含む。これらのプログラマブルシェーダステージは、1つ又は複数の入力変数を有し、出力変数のセットを生成するそれぞれのシェーダプログラムを実行する。問題のシェーダプログラムは、処理されるべきワークアイテムごとに、たとえば、頂点シェーダ205の場合は頂点ごとに実行され得る。実行スレッドは、処理されるべきワークアイテムごとに発行され得、スレッドは次いで、シェーダプログラム内の命令を実行して、所望のシェーディングされた出力データを生成する。
図1に関連して上述したアプリケーション105などのアプリケーションは、高水準のシェーダプログラミング言語、たとえば、OpenGL(登録商標)シェーディング言語(GLSL)、高水準のシェーディング言語(HLSL)、オープンコンピューティング言語(OpenCL)などを用いて、実行されるべきシェーダプログラムを提供する。これらのシェーダプログラムは次いでシェーダ言語コンパイラによって、対象のグラフィックス処理パイプライン200用のバイナリコードに翻訳される。これは、コンパイラにおいてプログラムの1つ又は複数の内部の中間表現を作成することを含むことができる。コンパイラは、たとえばドライバ120の一部であり得、コンパイラを動作させる特別なAPIコールが存在する。したがって、コンパイラの実行は、ドライバによって、アプリケーション105により生成されたAPIコールに応答してなされる描画コールの準備の一部と見ることができる。
ここで中心窩レンダリングに戻ると、視線追跡としても知られている注視追跡は、中心窩レンダリングを含むVRのいくつかのエリアに影響を与える可能性が高い。
人間の目はその受容器のほとんどを、鮮明な中心視力を担う目のエリアである中心窩に有する。中心窩は全視界に比べて小さい。ニアアイディスプレイ、たとえばVRシステムで使用されるものでは、目はいかなる瞬間にもディスプレイ上の情報のサブセットしか知覚することができない。注視追跡型の中心窩レンダリングは、中心窩が見ることができる表示エリアにおいて完全な計算を維持するようにレンダリングを構成し、その他の場所での計算を削減する。
図3を参照すると、グラフィックス処理パイプライン300の一例が概略的に示されている。グラフィックス処理パイプライン300は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン300は、初期処理ステージ305と、さらなる処理ステージ310とを少なくとも含む。グラフィックス処理パイプライン300は、注視追跡型の中心窩レンダリングを行うために使用され得る。
注視追跡データ315は、初期処理ステージ305又はさらなる処理ステージ310におけるあらゆるデータ処理の前に受信される。注視追跡データ315は、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の位置付けに関する。シーンの少なくとも1つのサブ領域は、受信された注視追跡データから特定される。シーンの特定された少なくとも1つのサブ領域は、たとえば、ユーザが見ているシーンの1つ又は複数のエリアに対応し得る。第1の解像度のシーンのデータは、初期処理ステージ305及び/又はさらなる処理ステージ310において処理される。しかしながら、第2の解像度のシーンの特定された少なくとも1つのサブ領域に対応するデータのみが、初期処理ステージ305及び/又はさらなる処理ステージ310において処理される。第1の解像度は、第2の解像度に比べて比較的高いものであり得る。次いで、シーンは、さらなる処理ステージ310により出力されたデータを結合することによって、レンダリングされ得る。したがって、注視追跡型の中心窩レンダリングは、第1の解像度が第2の解像度より低い場合に提供され得、その理由は、注視追跡データ315がグラフィックスパイプライン300内の処理に影響を与えるために使用されるためである。
そのような例は注視追跡型の中心窩レンダリングを提供するが、注視追跡型の中心窩レンダリングの成功は様々な要因に依存する。1つのそのような要因は、視線追跡データ315の品質である。他のそのような要因は、視線追跡器デバイスにより取得された視線追跡情報がレンダリングシステムに渡され使用される応答レイテンシである。レイテンシによって結果が古くなったために、及び/又は低品質のトラッキングデータによって、視線追跡データの精度が低いほど、中心窩レンダリングの結果はより成功しなくなる。
レイテンシの観点から、いくつかの例では、GPUは、たとえば、ジオメトリが最初のフレームで提出されるか、又はジオメトリが次のフレームの開始まで遅延するかに応じて、2フレーム又は3フレームのパイプラインを有する。GPUは通常は遅延モードで動作し得、その場合、パイプラインは3フレームとなる。
図4を参照すると、フレームパイプライン化400の一例が概略的に示されている。この例では、GPUは、中央処理装置(CPU)バッファリング405がフレーム0で行われ、ジオメトリフェーズ410がフレーム1で行われ、ピクセルフェーズ415がフレーム2で行われる3フレームパイプラインを有する。60Hzの表示レートにおいて、これは、新たなデータがグラフィックスAPIを介してグラフィックスパイプラインに提供される時刻と、結果がディスプレイなどに出力される準備ができるまでとの間に50msのレイテンシを与える。真のレイテンシは、画像センサのキャプチャ、処理及び転送を含むので、これよりも非常に大きくなり得る。
VRシステムに対して20msの運動−光子(motion−to−photons)レイテンシの目標知覚閾値が与えられた場合、50msを超えるレイテンシは、ユーザ体験が懸念される限り、長すぎる可能性がある。
再び中心窩レンダリングに戻ると、VRの文脈におけるコンテンツのレンダリングは、シーンを複数のビューに、目ごとに少なくとも1つのビューを描画することを必要とする。OVR_multiviewの拡張ファミリ(以下、「マルチビュー」)は、組み込みシステム用OpenGL(登録商標)(OpenGL(登録商標)ES)において、シーンの複数のビューを生成するために使用され得る。原理的には、マルチビューを用いて、4つのビュー、すなわち、高解像度の左目ビュー、高解像度の右目ビュー、低解像度の左目ビュー、及び低解像度の右目ビューが使用される中心窩レンダリングを処理することができる。たとえば、マルチビューを用いて、4つのビューを同時に、すなわち、目ごとに内側及び外側ビューをレンダリングすることができる。
しかしながら、マルチビューの現在のバージョンにおける全てのビューは、互いと同一の解像度を有さなければならない。これは、たとえば非注視追跡型の実装に関して、内側及び外側両方の領域について単一の値が発見され得る場合に、許容可能であり得る。しかしながら、マルチビューの現在のバージョンは、注視追跡型の実装で使用するためのしっかりと焦点を合わせた中心窩領域の使用を許可しない。
さらに、マルチビューの現在のバージョンは、4つのビューまでしか許可しない。新たなマルチビュー拡張で使用され得るビューの数を拡張することが可能であり得るが、追加のビューも単一解像度のルールの対象となる可能性が高い。
さらに、焦点位置に関連する構成を含む各ビューの構成は、アプリケーションによってグラフィックスパイプラインの開始時に提供される。したがって、構成は、少なくともグラフィックスパイプラインと同じ長さのレイテンシを有する。したがって、上述の例では、視聴者の目の位置の追跡と、グラフィックス出力の関連付けとの間のレイテンシは、常に少なくとも50msとなる。そのようなレイテンシを念頭に入れて、グラフィックスパイプラインは、出力の高解像度領域の大きさを決定する際に保守的な手法を取り得る。たとえば、グラフィックスパイプラインは、グラフィックスパイプラインの開始時に視聴者の焦点位置を中心とする比較的大きい領域を使用することができ、これは視聴者が、レンダリングが完了したときにその比較的大きい領域内のどこかを見ている可能性が高く、ひいては出力の高解像度部分を見ている可能性が高いことを予想したものである。しかしながら、そのような保守的な手法は、出力が表示されているときに視聴者が見ている場所に関する不確実性のために、シーンの比較的大きい部分をより高解像度でレンダリングすることを必要とする。
マルチビューと互換性のある措置であって、マルチビューを拡張して、低いレイテンシで変化し得る中心窩領域へのレンダリングを可能にし、及び/又は中心窩領域の解像度がマルチビュー解像度と異なることを可能にする措置を提供することが望ましいであろう。
グラフィックスプロセッサを用いて、シーンの同一のビューを表すが異なる解像度である複数の画像をレンダリングすることによって、中心窩レンダリングを行う例がここで説明される。次いで、異なる解像度のビューは結合されて、解像度が画像にわたって変化する出力中心窩画像を提供する。これらの例では、上述のパイプラインレイテンシ、及び異なる解像度におけるレンダリングのオーバーヘッドもまた、削減され得る。
これらの例では、グラフィックスパイプラインの開始後に、たとえば、グラフィックスパイプラインの半ばに、視線追跡データが消費される。したがって、グラフィックスパイプラインの開始時に使用される視線追跡データに比べて、より最近の(すなわち、より直近に受信又は取得された)視線追跡データが使用され得る。レンダリングパイプラインにおける視線追跡データの消費のレイテンシを削減することによって、中心窩レンダリングの利益が増加し得る。さらに、本明細書に記載のようなそのような措置の実施は、既存のアーキテクチャと容易に統合することができ、非常に効率的な実装となる。
図5を参照すると、グラフィックス処理パイプライン500の一例が概略的に示されている。
グラフィックス処理パイプライン500は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン500は、初期処理ステージ505と、さらなる処理ステージ510とを少なくとも含む。さらなる処理ステージ510の処理は、初期処理ステージ505の処理よりも高い計算負荷を有し得る。
いくつかの例では、さらなる処理ステージ510は、1つ又は複数のピクセル処理演算、たとえば、ラスタライズ及び/又はフラグメントシェーディングを含み、初期処理ステージ505は、1つ又は複数のジオメトリ演算、たとえば、頂点シェーディングを含む。いくつかの例では、さらなる処理ステージ510は、1つ又は複数のピクセル処理演算、たとえば、ラスタライズ及び/又はフラグメントシェーディングを含み、初期処理ステージ505は、1つ又は複数のデータバッファリング操作、たとえば、CPUバッファリングを含む。いくつかの例では、さらなる処理ステージ510は、1つ又は複数のジオメトリ演算、たとえば、フラグメントシェーディングを含み、初期処理ステージ505は、1つ又は複数のデータバッファリング操作、たとえば、CPUバッファリングを含む。
第1の解像度のシーンのデータ及び第2の解像度のシーンのデータが、初期処理ステージ505において処理される。初期処理ステージ505において第1の解像度及び第2の解像度のシーンのデータを処理した後に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データ515が受信される。シーンの少なくとも1つのサブ領域が、受信された注視追跡データ515から特定される。
受信された注視追跡データ515は、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点に関し得る。シーンの特定された少なくとも1つのサブ領域は、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点を中心とするサブ領域に関し得る。
第1の解像度のシーンのデータは、さらなる処理ステージ510において処理される。しかしながら、第2の解像度のシーンの特定された少なくとも1つのサブ領域に対応するデータのみが、さらなる処理ステージ510において処理される。
グラフィックス処理パイプライン500の各ステージにおけるシーンのデータの処理は、グラフィックス処理パイプライン500の各ステージにおけるシーンのデータのフレームの処理を含み得る。
シーンのデータは、左目ビューに関連するデータと、右目ビューに関連するデータとを含み得る。グラフィックス処理パイプラインの各ステージのデータの処理は、左目ビューに関連するデータの処理と、右目ビューに関連するデータの処理とを含み得る。受信された注視追跡データ515は、バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けと、バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けとに関し得る。
シーンの特定された少なくとも1つのサブ領域は、バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けを中心とする左目サブ領域と、バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けを中心とする右目サブ領域とに関し得る。
シーンは、第1の解像度でさらなる処理ステージ510において処理されたシーンのデータと、第2の解像度でさらなる処理ステージ510において処理されたシーンの特定された少なくとも1つのサブ領域に対応するデータとを結合することによってレンダリングされる。
シーンのレンダリングは、最初に、第1の解像度でさらなる処理ステージ510において処理されたシーンの左目データと、第2の解像度でさらなる処理ステージ510において処理されたシーンの特定された左目サブ領域に対応するデータとを結合し、次に、第1の解像度でさらなる処理ステージ510において処理されたシーンの右目データと、第2の解像度でさらなる処理ステージ510において処理されたシーンの特定された右目サブ領域に対応するデータとを結合することを含み得る。特定された左目サブ領域の少なくとも一部は、特定された右目サブ領域の少なくとも一部と異なり得る。
いくつかの例では、第3の解像度のシーンのデータが、初期処理ステージ505において処理される。注視追跡データ520は、初期処理ステージ505において第3の解像度のシーンのデータを処理した後に受信され、初期処理ステージ505において第3の解像度のシーンのデータを処理した後のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する。第3の解像度のシーンのデータは、さらなる処理ステージ510において処理される。しかしながら、第3の解像度のシーンのさらなるサブ領域に対応するデータのみが、さらなる処理ステージ510において処理される。シーンのレンダリングは、第3の解像度でさらなる処理ステージ510において処理されたシーンのデータをさらに結合することを含む。シーンのさらなるサブ領域は、受信された注視追跡データ515から特定され得る。シーンのさらなるサブ領域は、シーンの特定された少なくとも1つのサブ領域に基づいて計算され得る。
図6を参照すると、グラフィックス処理パイプライン600の一例が概略的に示されている。グラフィックス処理パイプライン600は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン600は、初期処理ステージ605と、さらなる処理ステージ610とを含む。
グラフィックス処理パイプライン600は、初期処理ステージ605と、さらなる処理ステージ610とを含む点で、上述のグラフィックス処理パイプライン500と類似している。
しかしながら、この例では、グラフィックス処理パイプライン600は、初期処理ステージ605と、さらなる処理ステージ610との間に中間処理ステージ620をさらに含む。
さらなる処理ステージ610の処理は、中間処理ステージ620の処理よりも高い計算負荷を有し得る。たとえば、さらなる処理ステージ610は、1つ又は複数のピクセル処理演算、たとえば、ラスタライズ及び/又はフラグメントシェーディングを含み得、中間処理ステージ620は、1つ又は複数のジオメトリ演算、たとえば、頂点シェーディングを含み得る。
第1の解像度のシーンのデータ及び第2の解像度のシーンのデータが、中間処理ステージ620において処理される。中間処理ステージ620において第1の解像度及び第2の解像度のシーンのデータを処理した後に、注視追跡データ615が受信される。この例では、注視追跡データ615は、中間処理ステージ620において第1の解像度及び第2の解像度のシーンのデータを処理した後のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する。注視追跡データ615は、グラフィックス処理パイプライン600の比較的遅くに受信され、したがって、視聴者の1つ又は複数の現在の焦点位置を正確に反映している可能性がより高い。しかしながら、グラフィックス処理パイプライン600の比較的遅くに受信されるので、グラフィックス処理パイプライン600において行われる処理全体に与える影響が少ない。
図7を参照すると、グラフィックス処理パイプライン700の一例が概略的に示されている。グラフィックス処理パイプライン700は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン700は、初期処理ステージ705と、中間処理ステージ720と、さらなる処理ステージ710とを含む。
グラフィックス処理パイプライン700は、初期処理ステージ705と、中間処理ステージ720と、さらなる処理ステージ710とを含む点で、図6に関連して上述したグラフィックス処理パイプライン600と類似している。
しかしながら、グラフィックス処理パイプライン600では、中間処理ステージ620において第1の解像度及び第2の解像度のシーンのデータを処理した後に、注視追跡データ615が受信されるが、グラフィックス処理パイプライン700では、中間処理ステージ720において第1の解像度及び第2の解像度でシーンのデータを処理する前に、注視追跡データ715が受信される。さらに、この例では、注視追跡データ715は、中間処理ステージ720において第1の解像度及び第2の解像度でシーンのデータを処理する前のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置に関する。したがって、この例では、第1の解像度のシーンのデータが、中間処理ステージ720において処理される。しかしながら、第2の解像度のシーンの特定された少なくとも1つのサブ領域に対応するデータのみが、中間処理ステージ720において処理される。加えて、上述のように、第1の解像度のシーンのデータ、及び第2の解像度のシーンの特定された少なくとも1つのサブ領域に対応するデータのみが、さらなる処理ステージ710において処理される。注視追跡データ715は、グラフィックス処理パイプライン700のかなり初期の後にやはり受信されるが、上述の注視追跡データ615ほどグラフィックス処理パイプライン700の遅くではない。したがって、注視追跡データ715は、注視追跡データ615に比べて、視聴者の1つ又は複数の現在の焦点を正確に反映している可能性が低い。しかしながら、注視追跡データ715は注視追跡データ615よりもグラフィックス処理パイプライン700の早期に受信されるので、グラフィックス処理パイプライン700において行われる処理全体に与える影響が大きくなり得る。
図8を参照すると、グラフィックス処理パイプライン800の一例が概略的に示されている。グラフィックス処理パイプライン800は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン800は、初期処理ステージ805と、中間処理ステージ820と、さらなる処理ステージ810とを含む。
グラフィックス処理パイプライン800は、初期処理ステージ805と、中間処理ステージ820と、さらなる処理ステージ810とを含む点で、図6及び図7に関連して上述したグラフィックス処理パイプライン600、700と類似している。
この例では、中間処理ステージ820において第1の解像度及び第2の解像度でシーンのデータを処理する前に、第1の注視追跡データ815が受信される。シーンの少なくとも1つの第1のサブ領域が、第1の注視追跡データ815から特定される。この例では、注視追跡データ815は、中間処理ステージ820において第1の解像度及び第2の解像度でシーンのデータを処理する前のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置に関する。したがって、この例では、第1の解像度のシーンのデータが、中間処理ステージ820において処理される。しかしながら、第2の解像度のシーンの特定された少なくとも1つの第1のサブ領域に対応するデータのみが、中間処理ステージ820において処理される。
この例では、中間処理ステージ820において第1の解像度及び第2の解像度のシーンのデータを処理した後に、第2の注視追跡データ825が受信される。シーンの少なくとも1つの第2のサブ領域が、第2の注視追跡データ825から特定される。この例では、第2の注視追跡データ825は、中間処理ステージ820において第1の解像度及び第2の解像度のシーンのデータを処理した後のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する。
シーンの少なくとも1つの第2のサブ領域は、シーンの少なくとも1つの第1のサブ領域に含まれ得る。たとえば、第1の注視追跡データ815を用いて、第1の注視追跡データ815に基づいて視聴者が見ている可能性が高いシーンの1つ又は複数の第1の部分に処理を制限することができる。これは、中間処理ステージ820における第2の解像度のシーン全体の処理を節約する。第2の注視追跡データ825を用いて、第2の注視追跡データ825に基づいて視聴者が見ている可能性が高いシーンの1つ又は複数の第2の部分であって、シーンの1つ又は複数の第1の部分より小さいシーンの1つ又は複数の第2の部分にさらなる処理を制限することができる。第2の注視追跡データ825は、シーンが出力されたときにユーザが見ているシーンの部分を指す可能性がより高い。
システムは、2つ以上のビューのセットに同時にレンダリングするように構成され得る。これは、混合解像度への効率的なレンダリングを容易にし、レイトラッチの視線追跡データを可能にし得る。レイトラッチの視線追跡データは、グラフィックスパイプラインの初期ステージの後の視線追跡データの消費に関する。本明細書に記載の例では、グラフィックスパイプラインが提出された後に、視線追跡データのレイトラッチが行われる。
最初に視線追跡なしの、複数の解像度にレンダリングするための例示的な技法がここで説明される。上述のように、マルチビューは、同一解像度の単一のビューのセットへのレンダリングを可能にする。これは、GL_TEXTURE_2D_ARRAYからの連続した範囲をGL_DRAW_FRAMEBUFFERターゲットへ、たとえば、色、深度及びステンシルなどの1つ又は複数のアタッチメントポイントにおいてバインドするOpenGL(登録商標)ES APIによって説明される。GL_DRAW_FRAMEBUFFERターゲットは、本明細書では描画ターゲットとも呼ばれる。
たとえば、2つのビューへの深度テストを伴うレンダリングは、幅×高さ×num_viewsの深度テクスチャのGL_TEXTURE_2D_ARRAYを作成し、幅×高さ×num_viewsの色テクスチャのGL_TEXTURE_2D_ARRAYを作成し、フレームバッファオブジェクトを作成し、深度範囲をフレームバッファ描画ターゲットの深度アタッチメントにバインドし、色範囲をフレームバッファ描画ターゲットの色アタッチメントにバインドし、そして、num_viewsで、この例では、num_views=2で出力するように構成されたシェーダによってジオメトリを描画するアプリケーションを必要とし得る。
これは、GL_DRAW_ALT_FRAMEBUFFERとラベル付けされ、以下、draw_altと称される新たなフレームバッファターゲットを導入することによって、拡張され得る。この新たなターゲットタイプは、異なるが関連する解像度で描画ターゲットに描画されたものの結果を複製するように作用する。draw_altフレームバッファは、実際には描画フレームバッファをミラーリングする。バインド処理は、上述のものと同一であり得るが、簡単のため、draw_altテクスチャは、元の描画構成と一致し得る。たとえば、解像度Xの深度及び色を有する2つのビューが描画ターゲットにバインドされた場合、draw_altにバインドされた関連する解像度Y(X)の深度及び色を有する2つのビューが存在することになる。いくつかの例では、2つ以上の「draw_alt」ターゲットが使用される。いくつかのそのような例では、各「draw_alt」ターゲットは異なる関連する解像度を有する。この場合、ターゲットのアレイが使用され得る。
描画ターゲットのそれぞれは、完全に異なる解像度を有することが許可され得る。代替的には、ターゲットは、たとえば2のべき乗の拡大縮小を可能にするように、関連する解像度を有することができる。これによって、頂点及びタイル化ステージを通じて処理されたジオメトリを、以下説明されるように2つのセット間で再使用することが可能になる。したがって、上記で言及された第1の解像度と第2の解像度とは、たとえば1/4などの2のべき乗を含む所定の関係を有することができる。しかしながら、両方のセットは、依然としてフラグメントシェーディングされ得る。
GPUは、中心窩レンダリングを行う場合に、シーンの同一のビューの複数の異なる解像度のバージョンをレンダリングするように制御され得る。GPUは、たとえば、シーンの同一のビューの3つの異なる解像度のバージョン、すなわち、最高解像度のビュー、中間解像度のビュー、及び最低解像度のビューをレンダリングすることができる。ビューのそれらの異なる解像度の画像は次いで適切に結合(又は「合成」)されて、表示などのために出力中心窩画像を提供する。異なる解像度の画像のそれぞれは、レンダリングされるシーン全体の異なる視野(又は「部分」)を示し得る。一例では、固視点に関連する中心窩画像の領域は最高解像度を有し、固視点から離れた画像の1つ又は複数の領域はより低い解像度で表示される。
レンダリングを要求するアプリケーションは、シーンのジオメトリを中心窩ビューに関連する倍率と共に複数のビューにレンダリングされるべきことをグラフィックスプロセッサのドライバに指示することができる。アプリケーションからのそのようなコマンドに応答して、ドライバは次いで、GPUに送信する適切なタイル化及びレンダリングのタスクを、本明細書に記載のように中心窩レンダリングを行うように構成する。
一例では、シーンのジオメトリは、処理されタイル化され、換言すれば、一度のみレンダリングされる画像のそれぞれのレンダリングタイルにソートされる。これは単一のタイルジオメトリリストのセットを提供し、これは次いで、各それぞれの解像度の画像をレンダリングする場合に、すなわち、各それぞれの解像度の画像をレンダリングするためにフラグメント処理を行う場合に、共通で使用される(又は「共有される」)。特に、GPUは、出力画像に必要とされる最高解像度で、レンダリングされるシーンに対して一度のみ頂点位置処理及びジオメトリリスト生成処理の両方を行うように制御され得る。このようにジオメトリリストが準備されると、その単一のジオメトリリストのセットは次いで、ビューの一部又は全部を示す各それぞれの異なる解像度の画像をレンダリングする場合に使用され得る。
最高解像度のビューについて、準備されたジオメトリリストは、その最高解像度の画像をレンダリングする場合に各レンダリングタイルについて処理されるべきジオメトリを特定するときに使用され得る。他のより低い解像度の画像について、最高解像度で準備されたジオメトリリスト及びそれらのリスト内のジオメトリを用いて、完全解像度のジオメトリリスト内のジオメトリを適切な倍率で縮小することによって、より低い解像度の画像についてレンダリングされるべきジオメトリを特定し定義する。倍率は、線形の拡大縮小などを用いて、ジオメトリリストが準備された最高解像度に、問題のより低い解像度の画像の解像度を関連付ける。この縮小は、頂点位置ロード操作の一部としてなされ得るが、他の構成も所望であれば可能である。
いくつかの例では、最終画像の全部ではなく一部のみが異なるそれぞれの解像度でレンダリングされる。特に、最終的な合成で使用されない画像の領域はレンダリングされなくてもよい。各異なる解像度の画像の選択部分のみのレンダリングは、出力画像のレンダリングタイルごとに、そのタイル位置について生成されるべき1つ又は複数の解像度の画像を指示することによって実現され得る。この情報は、レンダリングタイルについてのジオメトリリストと共に提供され得る。他の構成、たとえば、GPUのドライバが、レンダリングタスクをグラフィックスプロセッサに提供し、及び/又は、画像についてタイルがレンダリングされるべきでないエリアを特定するレンダー除外領域を指示する場合に、レンダリングされるべき適切なタイルのリストを提供するように構成されたものが代わりに使用され得る。
各異なる解像度の画像の適切な部分がGPUによってレンダリングされると、それらの画像はグラフィックス処理システムのメモリ内の適切なフレームバッファに記憶される。それらの画像は次いで適切に結合されて、表示される最終的な出力中心窩ビューを提供する。
最終的な中心窩出力ビューを提供するためのビューの異なる解像度の画像の合成は、GPUが、各異なる解像度のビューをグラフィックステクスチャとして扱い、次いで、フラグメントシェーダの一部として実装され得るテクスチャマッピング演算を用いて、表示される最終的な出力中心窩ビューにわたって異なる解像度の画像を適切にサンプリングし結合することによって行われ得る。
そのような中心窩レンダリングを行う場合、最高解像度の画像は、表示される最終出力画像の中心に必ずしもある必要はないが、たとえば、視聴者が実際に見ている場所を特定するための注視追跡センサを使用して決定され得る1つ又は複数の固視点の位置に応じて、ビューの任意の場所にオフセットされ得る。
最高解像度のセットをレンダリングしダウンサンプリングして他のセットを生成することは、同一の結果を生成しない。
マルチサンプリングのシェーディングレートは、セット間で変更し得る。マルチビューでは、ターゲットにバインドされた全てのテクスチャ間で解像度が一致することが好ましいように、マルチサンプルカウントもそのように一致することが好ましい。しかしながら、解像度、マルチサンプルカウント、テクスチャフォーマット及びレイアウトは、異なるセット間で変更し得る。レンダリングされ得るテクスチャを記述するものは変更し得る。
上記のように、本明細書に記載の例は、レイトラッチの視線追跡データを用いた中心窩レンダリングに関する。
いくつかの例では、ハードウェアフラグメントジョブ、又はワークアイテムの記述子は、2Dの軸調整されたバウンディングボックスを含み、これはバウンディングボックスによって囲まれた領域のちょうど内側にフラグメントシェーディングを制限するものである。これは、完全解像度のビューのシェーディングを中心窩領域ちょうどに制限するための効率的なメカニズムであり、中心窩領域はバウンディングボックスに関連付けられる。バウンディングボックスデータは、フラグメントシェーディングの開始の直前に使用され、したがって、グラフィックスパイプラインの遅くに変更し得る。これは、使用されている注視追跡データの期間に関連して、せいぜい1フレームのレイテンシ、すなわち、60Hzで16.7msが存在することを意味する。これは、完全なグラフィックスパイプラインでの50msと対照的である。レイテンシは、単一のフレーム内でジオメトリが提出され、タイル化され、シェーディングされる場合にさらに削減され得る。
以前に提出されたハードウェアフラグメントジョブ記述子にコピーされた任意の「後期の」バウンディングボックスデータが、それを正しく読み取るために必要とされ得る。新たなデータが与えられれば、これは、フラグメントジョブがまだ開始されていないことを知っている場合はドライバが、又はGPUコンピュートシェーダが、共有バッファからデータをコピーすることによってなされ得る。
パイプラインの遅くにデータを提供することは、OpenGL(登録商標)ESでは一般的ではないが、データへの手動で同期されるアクセスはよく理解されている。OpenGL(登録商標)ESにおけるコンピュートシェーダは、デフォルトでは同期していない。ユーザは同期プリミティブを用いて正しい動作を実現する。これは、フラグメント記述子を適時に更新するのに十分なインフラストラクチャを提供する。一実装は、アトミック(atomics)及び共有バッファを活用する、又はカスタムAPIエントリポイントを介して等価な機能を公開することができる。
Vulkanは、OpenGL(登録商標)ESよりもローレベルであり、また、明示的に要求されない限り、いかなる同期も行わず、したがって、OpenGL(登録商標)ESと同様のメカニズムがVulkanで動作する。Vulkanの一つの特徴は、そのVkRenderPassオブジェクトが、シェーディングを指定領域に制限する2Dの軸調整されたバウンディングボックスを定義する明示的な「renderArea」特性を既に有していることである。Vulkan拡張の開発は、OpenGL(登録商標)ES拡張の開発よりも効率的であり得、その理由は、バウンディングボックスの概念がVulkanのAPIに既に存在するためである。VulkanはvkRenderPassオブジェクトの拡張を導入することができ、これによってユーザは、その他を「ミラーリング」する第2のターゲットのセットを定義することができる。これは、上述の「GL_DRAW_ALT_FRAMEBUFFER」機能の等価物を可能にし得る。
特定の例では、2つのビューを有するマルチビューを仮定すると、一実装は、完全解像度の2つのビューのテクスチャアレイ(色、深度など)のセットを作成し、それらのアレイをフレームバッファ内の「描画」ターゲットにバインドする。それらのテクスチャアレイに対するフラグメントバウンディングボックスは、最も直近に報告された視線追跡データに適合するように更新される。システムは、他の2つのビューであるが、完全解像度のビューの解像度の4分の1のものについて作成された適合するテクスチャアレイのセットを作成し、それらのビューを「draw_alt」ターゲットにバインドする。次いで、描画ターゲット及びdraw_altターゲットを消費することによって、シーンが描画される。したがって、この例では、第1の解像度と第2の解像度との間の所定の関係は1/4である。
次いで、各フレームの開始時に、又は定期的な間隔で、全ての関連する提出された、まだ修正可能なフラグメントジョブは、最新のバウンディングボックスを使用するように更新される。このための理想的な時間は、新たなトラッキングデータが受信された後であり、これはメインのレンダリングループとは非同期に動作することができる。
この特定の例は、ステレオ画像全体についての4分の1の解像度の出力と、目の位置に一致する小さいが完全解像度の領域のペアとを生成する。これらは次いでオーバレイされて、最終画像を生成する。このオーバレイ処理は、後続のレンズ補正又は合成処理、たとえば、低レイテンシVRシステムに存在し、他の用語の中でも特に、「タイムワープ」、「非同期タイムワープ」、「電子ディスプレイ同期」として知られているものに含めるのに適している。これは、領域の位置及び大きさの知識を追跡して使用する。また、タイムワープ処理は、2つの領域間でブレンドして、よりソフトな遷移を作成する、又は完全解像度をより小さい代替的な形状にトリミングする、たとえば、ボックスを球にトリミングすることを選択することもできる。
上記の実施形態は、例示的な例として理解されるべきである。さらなる実施形態が想定される。任意の1つの実施形態に関して記載された任意の特徴が、単独で又は記載の他の特徴と組み合わせて使用され得、また、任意の他の実施形態又は任意の他の実施形態の任意の組み合わせの1つ又は複数の特徴と組み合わせて使用され得ることは理解されたい。さらに、上記で説明されていない等価物及び修正物もまた、添付の特許請求の範囲に定義された、本開示の実施形態の範囲から逸脱することなく利用され得る。
[発明の項目]
[項目1]
グラフィックス処理システムを動作させる方法であって、前記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、前記方法が、
前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理するステップと、
前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定するステップと、
前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
前記さらなる処理ステージにおいて、前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを前記第2の解像度で処理するステップと、
前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングするステップと、
を含む、方法。
[項目2]
前記グラフィックス処理パイプラインが、前記初期処理ステージと前記さらなる処理ステージとの間に中間処理ステージを含み、前記方法が、
前記中間処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
前記中間処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理するステップと、
を含み、
前記注視追跡データが、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理する前に受信され、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理する前の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在位置に関する、項目1に記載の方法。
[項目3]
前記グラフィックス処理パイプラインが、前記初期処理ステージと前記さらなる処理ステージとの間に中間処理ステージを含み、前記方法が、
前記中間処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
前記中間処理ステージにおいて、前記第2の解像度で前記シーンのデータを処理するステップと、
を含み、
前記注視追跡データが、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後に受信され、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する、項目1に記載の方法。
[項目4]
前記さらなる処理ステージの処理が、前記中間処理ステージの処理よりも高い計算負荷を有する、項目2又は3に記載の方法。
[項目5]
前記中間処理ステージが、1つ又は複数のジオメトリ演算を含む、項目2〜4のいずれか一項に記載の方法。
[項目6]
前記さらなる処理ステージの処理が、前記初期処理ステージの処理よりも高い計算負荷を有する、項目1〜5のいずれか一項に記載の方法。
[項目7]
前記さらなる処理ステージが、1つ又は複数のピクセル処理演算を含む、項目1〜6のいずれか一項に記載の方法。
[項目8]
前記初期処理ステージが、1つ又は複数のデータバッファリング操作を含む、項目1〜7のいずれか一項に記載の方法。
[項目9]
前記グラフィックス処理パイプラインの各ステージにおいてシーンのデータを処理するステップが、前記グラフィックス処理パイプラインの各ステージにおいて前記シーンのデータのフレームを処理するサブステップを含む、項目1〜8のいずれか一項に記載の方法。
[項目10]
前記第1の解像度が前記第2の解像度に比べて比較的高い、項目1〜9のいずれか一項に記載の方法。
[項目11]
前記第1の解像度と前記第2の解像度とが所定の関係を有する、項目1〜10のいずれか一項に記載の方法。
[項目12]
前記所定の関係が、2のべき乗を含む、項目11に記載の方法。
[項目13]
前記所定の関係が、1/4を含む、項目11又は12に記載の方法。
[項目14]
受信された前記注視追跡データが、前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点に関し、
前記シーンの特定された前記少なくとも1つのサブ領域が、前記バーチャルリアリティユーザデバイスのユーザの前記少なくとも片目の前記中心窩の前記現在の固視点を中心とするサブ領域に関する、項目1〜13のいずれか一項に記載の方法。
[項目15]
前記シーンのデータが、左目ビューに関連するデータと右目ビューに関連するデータとを含み、前記グラフィックス処理パイプラインの各ステージの前記データを処理するステップが、前記左目ビューに関連するデータを処理するサブステップと、前記右目ビューに関連するデータを処理するサブステップと、を含み、
受信された前記注視追跡データが、前記バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けと、前記バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けと、に関する、項目1〜14のいずれか一項に記載の方法。
[項目16]
前記シーンの特定された前記少なくとも1つのサブ領域が、前記バーチャルリアリティユーザデバイスの前記ユーザの前記左目の前記中心窩の前記現在の位置付けを中心とする左目サブ領域と、前記バーチャルリアリティユーザデバイスの前記ユーザの前記右目の前記中心窩の前記現在の位置付けを中心とする右目サブ領域と、に関し、
前記シーンをレンダリングするステップが、
前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの左目データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記左目サブ領域に対応するデータと、を結合するサブステップと、
前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの右目データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記右目サブ領域に対応するデータと、を結合するサブステップと、
を含む、項目15に記載の方法。
[項目17]
特定された前記左目サブ領域のうちの少なくとも一部が、特定された前記右目サブ領域のうちの少なくとも一部と異なる、項目16に記載の方法。
[項目18]
前記初期処理ステージにおいて、第3の解像度で前記シーンのデータを処理するステップ
を含み、
前記注視追跡データが、前記初期処理ステージにおいて前記第3の解像度で前記シーンのデータを処理した後に受信され、前記初期処理ステージにおいて前記第3の解像度で前記シーンのデータを処理した後の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関し、前記方法が、
前記さらなる処理ステージにおいて、前記第3の解像度で前記シーンのデータを処理するステップと、
前記さらなる処理ステージにおいて、前記第3の解像度で前記シーンのさらなるサブ領域に対応するデータのみを処理するステップと、
を含み、
前記シーンをレンダリングするステップが、前記さらなる処理ステージにおいて前記第3の解像度で処理された前記シーンの前記データをさらに結合するサブステップを含む、項目1〜17のいずれか一項に記載の方法。
[項目19]
受信された前記注視追跡データから前記シーンの前記さらなるサブ領域を特定するステップを含む、項目18に記載の方法。
[項目20]
前記シーンの特定された前記少なくとも1つのサブ領域に基づいて前記シーンの前記さらなるサブ領域を計算するステップを含む、項目18に記載の方法。
[項目21]
グラフィックス処理パイプラインを含むグラフィックス処理システムを動作させる方法であって、前記グラフィックス処理パイプラインにおいてレイトラッチの視線追跡データを用いて、シーンの1つ又は複数の領域であり、前記シーンの1つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき1つ又は複数の領域を特定するステップを含む、方法。
[項目22]
グラフィックス処理システムを動作させる方法であって、前記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、前記方法が、
グラフィックス処理ワークアイテムについての入力データを前記グラフィックス処理パイプラインに第1の時間に提供するステップと、
前記グラフィックス処理パイプラインが前記グラフィックス処理ワークアイテムを処理している間第2のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを、前記グラフィックス処理パイプラインに提供するステップと、
を含む、方法。
[項目23]
グラフィックスプロセッサを動作させる方法であって、前記グラフィックスプロセッサが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられ、前記方法が、
前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理するステップと、
前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定するステップと、
前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
前記さらなる処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理するステップと、
前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングするステップと、
を含む、方法。
[項目24]
グラフィックス処理システムにおいて実行された場合に、項目1〜23のいずれか一項に記載の方法を実施するように構成されたソフトウェアコードを含む、コンピュータプログラム。
[項目25]
グラフィックス処理パイプラインを含むグラフィックス処理システムであって、前記グラフィックス処理パイプラインが、少なくとも初期処理ステージとさらなる処理ステージとを含み、前記グラフィックス処理システムが、
前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理し、
前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理し、
前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定し、
前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理し、
前記さらなる処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理し、
前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングする、
ように構成された、グラフィックス処理システム。
[項目26]
グラフィックス処理パイプラインを含むグラフィックス処理システムであって、前記グラフィックス処理パイプラインにおいてレイトラッチの視線追跡データを用いて、シーンの1つ又は複数の領域であり、前記シーンの1つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき1つ又は複数の領域を特定するように構成された、グラフィックス処理システム。
[項目27]
少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含むグラフィックス処理システムであって、
グラフィックス処理ワークアイテムについての入力データを前記グラフィックス処理パイプラインに第1の時間に提供し、
前記グラフィックス処理パイプラインが前記グラフィックス処理ワークアイテムを処理している間第2のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを、前記グラフィックス処理パイプラインに提供する、
ように構成された、グラフィックス処理システム。
[項目28]
項目25〜27のいずれか一項に記載のグラフィックス処理システムを備える、バーチャルリアリティユーザデバイス。
[項目29]
少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられたグラフィックスプロセッサであって、
前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理し、
前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理し、
前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定し、
前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理し、
前記さらなる処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理し、
前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングする、
ように構成された、グラフィックスプロセッサ。
[項目30]
項目29に記載のグラフィックスプロセッサを備える、バーチャルリアリティユーザデバイス。
[項目31]
添付の図面を参照して本明細書において実質的に記載された、方法。
[項目32]
添付の図面を参照して本明細書において実質的に記載された、グラフィックス処理システム。
[項目33]
添付の図面を参照して本明細書に実質的に記載された、グラフィックスプロセッサ。
[項目34]
添付の図面を参照して本明細書に実質的に記載された、グラフィックス処理パイプライン。
105 アプリケーション
110 ホスト
115 GPU
120 ドライバ
205 頂点シェーダ
210 ハルシェーダ
215 テッセレータ
220 ドメインシェーダ
225 ジオメトリシェーダ
230 タイラ
235 ラスタライザ
240 早期深度及びステンシルテスト
245 フラグメントシェーダ
250 後期深度及びステンシルテスト
255 ブレンダ
260 タイルバッファ
265 書き出し
270 フレームバッファ
305 初期処理ステージ
310 さらなる処理ステージ
315 注視追跡データ
405 CPUバッファリング
410 ジオメトリフェーズ
415 ピクセルフェーズ
505 初期処理ステージ
510 さらなる処理ステージ
515 注視追跡データ
605 初期処理ステージ
610 さらなる処理ステージ
615 注視追跡データ
620 中間処理ステージ
705 初期処理ステージ
710 さらなる処理ステージ
715 注視追跡データ
720 中間処理ステージ
805 初期処理ステージ
810 さらなる処理ステージ
815 第1の注視追跡データ
820 中間処理ステージ
825 第2の注視追跡データ

Claims (26)

  1. グラフィックス処理システムを動作させる方法であって、前記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、前記方法が、
    前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
    前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理するステップと、
    前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
    受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定するステップと、
    前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
    前記さらなる処理ステージにおいて、前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを前記第2の解像度で処理するステップと、
    前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングするステップと、
    を含む、方法。
  2. 前記グラフィックス処理パイプラインが、前記初期処理ステージと前記さらなる処理ステージとの間に中間処理ステージを含み、前記方法が、
    前記中間処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
    前記中間処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理するステップと、
    を含み、
    前記注視追跡データが、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理する前に受信され、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理する前の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在位置に関する、請求項1に記載の方法。
  3. 前記グラフィックス処理パイプラインが、前記初期処理ステージと前記さらなる処理ステージとの間に中間処理ステージを含み、前記方法が、
    前記中間処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
    前記中間処理ステージにおいて、前記第2の解像度で前記シーンのデータを処理するステップと、
    を含み、
    前記注視追跡データが、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後に受信され、前記中間処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する、請求項1に記載の方法。
  4. 前記さらなる処理ステージの処理が、前記中間処理ステージの処理よりも高い計算負荷を有する、請求項2又は3に記載の方法。
  5. 前記中間処理ステージが、1つ又は複数のジオメトリ演算を含む、請求項2〜4のいずれか一項に記載の方法。
  6. 前記さらなる処理ステージの処理が、前記初期処理ステージの処理よりも高い計算負荷を有する、請求項1〜5のいずれか一項に記載の方法。
  7. 前記さらなる処理ステージが、1つ又は複数のピクセル処理演算を含む、請求項1〜6のいずれか一項に記載の方法。
  8. 前記初期処理ステージが、1つ又は複数のデータバッファリング操作を含む、請求項1〜7のいずれか一項に記載の方法。
  9. 前記グラフィックス処理パイプラインの各ステージにおいてシーンのデータを処理するステップが、前記グラフィックス処理パイプラインの各ステージにおいて前記シーンのデータのフレームを処理するサブステップを含む、請求項1〜8のいずれか一項に記載の方法。
  10. 前記第1の解像度が前記第2の解像度より低い、請求項1〜9のいずれか一項に記載の方法。
  11. 前記第1の解像度と前記第2の解像度とが所定の関係を有する、請求項1〜10のいずれか一項に記載の方法。
  12. 前記所定の関係が、2のべき乗を含む、請求項11に記載の方法。
  13. 前記所定の関係は、前記第1の解像度が前記第2の解像度の1/4であることである、請求項11又は12に記載の方法。
  14. 受信された前記注視追跡データが、前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点に関し、
    前記シーンの特定された前記少なくとも1つのサブ領域が、前記バーチャルリアリティユーザデバイスのユーザの前記少なくとも片目の前記中心窩の前記現在の固視点を中心とするサブ領域に関する、請求項1〜13のいずれか一項に記載の方法。
  15. 前記シーンのデータが、左目ビューに関連するデータと右目ビューに関連するデータとを含み、前記グラフィックス処理パイプラインの各ステージの前記データを処理するステップが、前記左目ビューに関連するデータを処理するサブステップと、前記右目ビューに関連するデータを処理するサブステップと、を含み、
    受信された前記注視追跡データが、前記バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けと、前記バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けと、に関する、請求項1〜14のいずれか一項に記載の方法。
  16. 前記シーンの特定された前記少なくとも1つのサブ領域が、前記バーチャルリアリティユーザデバイスの前記ユーザの前記左目の前記中心窩の前記現在の位置付けを中心とする左目サブ領域と、前記バーチャルリアリティユーザデバイスの前記ユーザの前記右目の前記中心窩の前記現在の位置付けを中心とする右目サブ領域と、に関し、
    前記シーンをレンダリングするステップが、
    前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの左目データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記左目サブ領域に対応するデータと、を結合するサブステップと、
    前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの右目データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記右目サブ領域に対応するデータと、を結合するサブステップと、
    を含む、請求項15に記載の方法。
  17. 特定された前記左目サブ領域のうちの少なくとも一部が、特定された前記右目サブ領域のうちの少なくとも一部と異なる、請求項16に記載の方法。
  18. 前記初期処理ステージにおいて、第3の解像度で前記シーンのデータを処理するステップ
    を含み、
    前記注視追跡データが、前記初期処理ステージにおいて前記第3の解像度で前記シーンのデータを処理した後に受信され、前記初期処理ステージにおいて前記第3の解像度で前記シーンのデータを処理した後の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関し、前記方法が、
    前記さらなる処理ステージにおいて、前記第3の解像度で前記シーンのデータを処理するステップと、
    前記さらなる処理ステージにおいて、前記第3の解像度で前記シーンのさらなるサブ領域に対応するデータのみを処理するステップと、
    を含み、
    前記シーンをレンダリングするステップが、前記さらなる処理ステージにおいて前記第3の解像度で処理された前記シーンの前記データをさらに結合するサブステップを含む、請求項1〜17のいずれか一項に記載の方法。
  19. 受信された前記注視追跡データから前記シーンの前記さらなるサブ領域を特定するステップを含む、請求項18に記載の方法。
  20. 前記シーンの特定された前記少なくとも1つのサブ領域に基づいて前記シーンの前記さらなるサブ領域を計算するステップを含む、請求項18に記載の方法。
  21. グラフィックスプロセッサを動作させる方法であって、前記グラフィックスプロセッサが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられ、前記方法が、
    前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理するステップと、
    前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理するステップと、
    前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
    受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定するステップと、
    前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理するステップと、
    前記さらなる処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理するステップと、
    前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングするステップと、
    を含む、方法。
  22. グラフィックス処理システムにおいて実行された場合に、請求項1〜21のいずれか一項に記載の方法を実施するように構成されたソフトウェアコードを含む、コンピュータプログラム。
  23. グラフィックス処理パイプラインを含むグラフィックス処理システムであって、前記グラフィックス処理パイプラインが、少なくとも初期処理ステージとさらなる処理ステージとを含み、前記グラフィックス処理システムが、
    前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理し、
    前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理し、
    前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
    受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定し、
    前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理し、
    前記さらなる処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理し、
    前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングする、
    ように構成された、グラフィックス処理システム。
  24. 請求項23に記載のグラフィックス処理システムを備える、バーチャルリアリティユーザデバイス。
  25. 少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられたグラフィックスプロセッサであって、
    前記初期処理ステージにおいて、第1の解像度でシーンのデータを処理し、
    前記初期処理ステージにおいて、第2の解像度で前記シーンのデータを処理し、
    前記初期処理ステージにおいて前記第1の解像度及び前記第2の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
    受信された前記注視追跡データから、前記シーンの少なくとも1つのサブ領域を特定し、
    前記さらなる処理ステージにおいて、前記第1の解像度で前記シーンのデータを処理し、
    前記さらなる処理ステージにおいて、前記第2の解像度で前記シーンの特定された前記少なくとも1つのサブ領域に対応するデータのみを処理し、
    前記さらなる処理ステージにおいて前記第1の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第2の解像度で処理された前記シーンの特定された前記少なくとも1つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングする、
    ように構成された、グラフィックスプロセッサ。
  26. 請求項25に記載のグラフィックスプロセッサを備える、バーチャルリアリティユーザデバイス。
JP2017169634A 2016-09-05 2017-09-04 グラフィックス処理システム、グラフィックスプロセッサ及び該システム又はプロセッサを動作させる方法 Active JP6947352B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1615012.0A GB2553353B (en) 2016-09-05 2016-09-05 Graphics processing systems and graphics processors
GB1615012.0 2016-09-05

Publications (3)

Publication Number Publication Date
JP2018049603A JP2018049603A (ja) 2018-03-29
JP2018049603A5 JP2018049603A5 (ja) 2020-10-01
JP6947352B2 true JP6947352B2 (ja) 2021-10-13

Family

ID=57139771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017169634A Active JP6947352B2 (ja) 2016-09-05 2017-09-04 グラフィックス処理システム、グラフィックスプロセッサ及び該システム又はプロセッサを動作させる方法

Country Status (5)

Country Link
US (1) US10665208B2 (ja)
JP (1) JP6947352B2 (ja)
KR (1) KR102442487B1 (ja)
CN (1) CN107833262B (ja)
GB (1) GB2553353B (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US10649524B2 (en) 2017-04-07 2020-05-12 Intel Corporation Apparatus and method for foveated rendering, bin comparison and TBIMR memory-backed storage for virtual reality implementations
US10521881B1 (en) * 2017-09-28 2019-12-31 Apple Inc. Error concealment for a head-mountable device
CN110324601A (zh) * 2018-03-27 2019-10-11 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
US10997951B2 (en) 2018-04-13 2021-05-04 Qualcomm Incorporated Preserving sample data in foveated rendering of graphics content
KR20190123039A (ko) * 2018-04-23 2019-10-31 박승민 확장현실 영상처리 방법 및 이를 위한 장치
GB2573543B (en) 2018-05-09 2021-10-27 Advanced Risc Mach Ltd Graphics Processing
US10748021B2 (en) * 2018-05-11 2020-08-18 Samsung Electronics Co., Ltd. Method of analyzing objects in images recorded by a camera of a head mounted device
US11262839B2 (en) * 2018-05-17 2022-03-01 Sony Interactive Entertainment Inc. Eye tracking with prediction and late update to GPU for fast foveated rendering in an HMD environment
US11194389B2 (en) 2018-06-21 2021-12-07 Qualcomm Incorporated Foveated rendering of graphics content using a rendering command and subsequently received eye position data
US11348287B2 (en) * 2018-07-16 2022-05-31 Adobe Inc. Rendering of graphic objects with pattern paint using a graphics processing unit
US10650568B2 (en) 2018-09-13 2020-05-12 Qualcomm Incorporated In-flight adaptive foveated rendering
CN109741463B (zh) * 2019-01-02 2022-07-19 京东方科技集团股份有限公司 虚拟现实场景的渲染方法、装置及设备
WO2020152754A1 (ja) * 2019-01-21 2020-07-30 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置および画像生成方法
US11284053B2 (en) 2019-03-29 2022-03-22 Razmik Ghazaryan Head-mounted display and projection screen
US10554940B1 (en) 2019-03-29 2020-02-04 Razmik Ghazaryan Method and apparatus for a variable-resolution screen
US10466489B1 (en) 2019-03-29 2019-11-05 Razmik Ghazaryan Methods and apparatus for a variable-resolution screen
CN112558902B (zh) * 2019-09-26 2024-09-24 苹果公司 用于动态中央凹显示器的与注视无关的抖动
CN111131805A (zh) * 2019-12-31 2020-05-08 歌尔股份有限公司 图像处理方法、装置和可读存储介质
US11030783B1 (en) 2020-01-21 2021-06-08 Arm Limited Hidden surface removal in graphics processing systems
US11049216B1 (en) * 2020-01-21 2021-06-29 Arm Limited Graphics processing systems
US11784906B2 (en) * 2020-02-04 2023-10-10 Nvidia Corporation System-latency-aware display device
GB2595872B (en) * 2020-06-09 2023-09-20 Sony Interactive Entertainment Inc Gaze tracking apparatus and systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7075535B2 (en) * 2003-03-05 2006-07-11 Sand Codex System and method for exact rendering in a zooming user interface
KR102001950B1 (ko) * 2012-07-26 2019-07-29 엘지이노텍 주식회사 시선 추적 장치 및 이의 시선 추적 방법
US9727991B2 (en) * 2013-03-01 2017-08-08 Microsoft Technology Licensing, Llc Foveated image rendering
GB2523356A (en) * 2014-02-21 2015-08-26 Tobii Technology Ab Apparatus and method for robust eye/gaze tracking
GB2523740B (en) * 2014-02-26 2020-10-14 Sony Interactive Entertainment Inc Image encoding and display
US10068311B2 (en) * 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
WO2015154004A1 (en) 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US9836816B2 (en) * 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
KR102281162B1 (ko) * 2014-11-20 2021-07-23 삼성전자주식회사 영상 처리 장치 및 방법
US9240069B1 (en) * 2015-06-30 2016-01-19 Ariadne's Thread (Usa), Inc. Low-latency virtual reality display system
US9607428B2 (en) * 2015-06-30 2017-03-28 Ariadne's Thread (Usa), Inc. Variable resolution virtual reality display system
US10643381B2 (en) * 2016-01-12 2020-05-05 Qualcomm Incorporated Systems and methods for rendering multiple levels of detail

Also Published As

Publication number Publication date
CN107833262A (zh) 2018-03-23
US20180068640A1 (en) 2018-03-08
JP2018049603A (ja) 2018-03-29
KR20180027369A (ko) 2018-03-14
KR102442487B1 (ko) 2022-09-13
CN107833262B (zh) 2023-06-23
GB2553353A (en) 2018-03-07
GB201615012D0 (en) 2016-10-19
US10665208B2 (en) 2020-05-26
GB2553353B (en) 2021-11-24

Similar Documents

Publication Publication Date Title
JP6947352B2 (ja) グラフィックス処理システム、グラフィックスプロセッサ及び該システム又はプロセッサを動作させる方法
US11010959B2 (en) Graphics processing systems
US20220392154A1 (en) Untransformed display lists in a tile based rendering system
KR101922482B1 (ko) 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능
US12026798B2 (en) Variable resolution graphics processing
KR20230007358A (ko) 증강 현실을 위한 멀티레이어 재투영 기법들
KR102442488B1 (ko) 그래픽 처리 시스템 및 그래픽 프로세서
US10217259B2 (en) Method of and apparatus for graphics processing
US20220068004A9 (en) Varying effective resolution by screen location by changing active color sample count within multiple render targets
EP3504684B1 (en) Hybrid render with preferred primitive batch binning and sorting
US10062140B2 (en) Graphics processing systems
CN118974779A (zh) 可变比率曲面细分

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200819

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210729

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210902

R150 Certificate of patent or registration of utility model

Ref document number: 6947352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250