TWI810395B - 用於後成像處理的顯示引擎 - Google Patents

用於後成像處理的顯示引擎 Download PDF

Info

Publication number
TWI810395B
TWI810395B TW108139247A TW108139247A TWI810395B TW I810395 B TWI810395 B TW I810395B TW 108139247 A TW108139247 A TW 108139247A TW 108139247 A TW108139247 A TW 108139247A TW I810395 B TWI810395 B TW I810395B
Authority
TW
Taiwan
Prior art keywords
display
block
pixel
artificial reality
reality scene
Prior art date
Application number
TW108139247A
Other languages
English (en)
Other versions
TW202036482A (zh
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 TW202036482A publication Critical patent/TW202036482A/zh
Application granted granted Critical
Publication of TWI810395B publication Critical patent/TWI810395B/zh

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/40Hidden part removal
    • 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/06Ray-tracing
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/14Transformations for image registration, e.g. adjusting or mapping for alignment of images

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

在一實施例中,一種方法包含存取一人工實境場景的一或多個表面。所述一或多個表面是根據在一第一速率下並且根據一第一觀看位置所成像的所述人工實境場景的一或多個影像而被產生的。所述方法包含在一高於所述第一速率的第二速率下產生子訊框。所述子訊框的每一個子訊框是藉由判斷一第二觀看位置、從所述第二觀看位置判斷所述人工實境場景的所述一或多個表面的一可視度、根據所述一或多個表面的判斷的可視度來產生對應於一顯示器的輸出位置的所述子訊框的色彩值、並且提供所述子訊框的所述色彩值以供顯示而被產生的。

Description

用於後成像處理的顯示引擎
此揭露內容大致上關於產生用於一人工實境場景的圖形。
此申請案是根據第35號美國法典第119條(e)項主張2018年11月2日申請的美國臨時專利申請案號62/755,333、以及2019年9月27日申請的美國非臨時專利申請案號16/586,598的權益,所述美國專利申請案被納入在此作為參考。
人工實境牽涉到電腦產生的圖形以一沉浸式方式顯示給一使用者。所要的目標是使得使用者體驗到電腦產生的圖形,就好像它們在面前存在於世界中。成像用於人工實境的電腦產生的圖形是一計算上繁重的工作,通常需要昂貴且專門的硬體。此至少部分是因為顯示給使用者的圖形必須是非常高品質的要求。為了讓使用者相信所述圖形代表在其周圍的世界(或是一部分),所述圖形據信必須是高品質的。其中所述圖形或是被用來投影所述圖形的顯示器讓使用者能夠看見在像素之間的線的紗窗效應可能會毀掉任何的浸入感。再者,用於人工實境場景的圖形通常是互動的,亦即當使用者在虛擬空間中“移動”時,所述空間隨著其或是響應於其而移動。介於使用者的移動或移動命令以及顯示所述移動的效果之間的延遲可能會造成使用者的不適,例如是虛擬實境眩暈。因為使用者的移動通常是不可預期的,因此預先成像一人工實境場景的大多數的構件是不切實際的。
描述了一種用於產生人工實境場景給穿戴頭戴式顯示器的使用者之系統及方法。所述系統可包括許多的成像構件,使得成像責任被至少劃分在一主要的成像構件以及頭戴式顯示器的一顯示引擎之間。所述主要的成像構件可以處理計算繁重的圖形成像階段,例如是圖元(primitive)解譯及著色,其具有一在典型的互動的圖形成像的範圍中之預期的輸出。所述主要的成像構件可以輸出一或多個專門的物件圖元(在此亦被稱為“表面”)、或是輸出藉由顯示引擎而被做到此種表面之中的影像,其包括針對於在人工實境場景中的一或多個物件圖元的位置及紋理資料。所述顯示引擎可以接收所述物件圖元、更新及改進其外觀以反映在觀看者觀點上的改變及/或考量顯示器-裝置的特徵、完成成像並且將所述結果準備用於顯示給使用者。
所述顯示引擎可包括多個級,其具有多個硬體區塊以處理在成像一將被顯示的影像中的特定步驟。所述顯示引擎可包括一控制區塊,其接收所述物件圖元以及任何所附的成像指令。所述控制區塊可以備妥一或多個共用的記憶體以藉由所述顯示引擎的其它區塊使用。所述控制區塊可以使得紋理資料進入一或多個記憶體的載入變得容易。所述控制區塊可以提供指令至所述顯示引擎的其它區塊,其包含一初始化所述圖形成像的管線的指令。
所述顯示引擎可包括一轉換區塊,其針對於在人工實境場景中的物件圖元判斷最初的可視度。所述轉換區塊可以執行從注視所述人工實境場景的使用者的觀點的光線投射,以重新取樣所述物件圖元。所述轉換區塊可以彎曲用在光線投射的光線以近似或校正由一顯示器所引起的一或多個效應。這些效應可包含從在用於所述顯示器的一或多個透鏡上的一翹曲效應所產生的一或多個幾何失真。所述轉換區塊可以判斷任何光線是否交叉在所述場景中的一物件圖元,並且針對於任何光線-物件-圖元的交叉以從一視圖座標空間轉換位置資訊至所述物件圖元的紋理座標空間。
所述顯示引擎可包括一像素區塊,其有效率地判斷用於所述顯示器的一或多個像素的一像素色彩值。所述像素區塊可以從所述轉換區塊接收交叉資訊(例如,在所述投射光線以及物件圖元之間的交叉)。所述像素區塊可以參考和所述物件圖元相關的紋理資料,以針對於所述像素色彩值中的一或多個執行雙線性內插。
所述顯示引擎可包括一顯示區塊,其接收所述像素色彩值,並且定案所述像素色彩值以用於輸出至所述顯示器。所述顯示區塊可以轉換所述像素色彩值成為所述顯示器所需的一格式或對準。所述顯示區塊可以施加一或多個亮度校正效應。所述亮度校正效應可包含改善影像品質的技術,例如是感知編碼或抖動。所述亮度校正效應可以在所述顯示器中,解決及校正由所述顯示器及其構件是如何製造、或所述影像是如何被顯示給使用者所引起的不規則性。
本發明的實施例可包含一人工實境系統、或是結合一人工實境系統來加以實施。人工實境是一種在呈現給使用者之前已經用某種方式調整的實境形式,其例如可包含一虛擬實境(VR)、一擴增實境(AR)、一混合實境(MR)、一混雜實境、或是其之某種組合及/或衍生。人工實境的內容可包含完全是產生的內容、或是產生的內容結合所捕捉的內容(例如,真實世界的照片)。人工實境的內容可包含視訊、音訊、觸覺回授、或是其之某種組合,並且其之任一種都可以在單一通道中或是在多個通道中被呈現(例如,產生一種三維效果給觀看者的立體視訊)。此外,在某些實施例中,人工實境可以是和例如被用來在一人工實境中產生內容且/或在一人工實境中被使用(例如,在其中執行活動)的應用程式、產品、配件、服務、或是其之某種組合相關的。提供人工實境內容的人工實境系統可以在各種的平台上實施,其包含連接至一主機電腦系統的一頭戴式顯示器(HMD)、一獨立的HMD、一行動裝置或計算系統、或是任何其它能夠提供人工實境內容至一或多個觀看者的硬體平台。
在此揭露的實施例只是例子而已,因而此揭露內容的範疇並不限於其。特定實施例可以包含在此揭露的實施例的構件、元件、特點、功能、操作、或是步驟的全部、一些、或是全無。根據本發明的實施例尤其是被揭露在所附針對於方法、儲存媒體、系統及電腦程式產品的請求項中,其中任何在一請求項類型(例如方法)中所提及的特點都也可以在另一請求項類型(例如系統)中加以主張。在所附的請求項中的往回依附或參照只是為了合乎格式的原因來選擇的而已。然而,從刻意的參照回到任何先前的請求項(尤其是多重依附)所產生之任何標的都也可以主張,因而請求項及其之特點的任意組合都被揭示並且可加以主張,而不論在所附的請求項中選擇的依附為何。可主張的標的不僅包括如同在所附的請求項中所闡述的特點的組合,而且亦包括在所述請求項中的特點的任何其它組合,其中在所述請求項中提及的每一個特點都可以和在所述請求項中的任何其它特點或是其它特點的組合來加以結合。再者,在此敘述或描繪的實施例及特點的任一個都可以在一個別的請求項中被主張,且/或以和在此敘述或描繪的任何實施例或特點、或是和所附的請求項的特點的任一個的任意組合來加以主張。
因為人工實境裝置牽涉到產生數位場景或重疊電腦產生的成像到真實世界的一視圖之上,因此它們提供一平台供設計者及工程師以提供新形式的資訊、娛樂、或是協同合作的方法。例如,人工實境裝置可以容許使用者能夠在長距離上似乎本人地通訊、或是藉由以一種不顯眼的方式來知會使用者其周圍的環境來協助使用者。因為人工實境的體驗通常可以是客製化的,因此使用者對於人工實境的體驗可以是相當個人化的,而且若被呈現充分的清晰及便利性,則為高度參與的。
如同在擴增或混合實境中,一種人工實境的體驗可以擴增人的能力之方式是利用電腦產生的影像及/或文字被加入到真實世界。從此簡單的原理,各種引人注目的使用案例可被考量。描述一真實世界的物件的標籤(例如,文字、字形、等等)或影像可以是在世界空間中固定的(例如,作用為路牌或提供自行車路徑的即時地圖的位置感知的標籤)、或是在一真實世界的物件於所述空間移動時固定到其的影像(例如,在一公車於其路線行進時被加到公車的一標籤,所述標籤提供有關其路線或容量的詳細資訊)。標籤亦可被用來幫助使用者導覽一不熟悉的城市(例如,針對於最近的廁所產生一路徑點)、或是幫助在一人群中找出一位朋友(例如,固定到另一使用者的一社會意識的路徑點)。其它值得考量的體驗可以是根據和真實世界的物件的互動。例如,一使用者可以“投影”視訊到一牆壁或螢幕之上,其容許所述視訊能夠被播放並且只有他或是其他接達一共用擴增的空間的人可以看見。作為另一例子的是,一使用者可以將電腦產生的文字固定到一實體物件,以作用為一擴增實境的書或雜誌。內容可以相關於物件而被顯示(容許一使用者能夠了解在一擴增實境旁的有形資產)、或是可以用和使用者固定的關係而被顯示(例如,一個別指導的視訊不斷地在視圖的一角落中播放)。所呈現的媒體可以是針對使用者客製的,因而相同的內容顯示空間可以是內容與每一位觀看相同的物理空間的人相關的。作為另一例子的是,使用者可以藉由“觸碰”一圖像、或是手動地“操縱”電腦產生的影像來和所述電腦產生的圖形互動。這些圖形可以被展示給在一計畫上工作的多個使用者,其致能團隊的協同合作機會(例如,多位建築師一起即時在一建築物中的一個三維數位原型上工作)。
為了使得使用變得容易,輸出電腦產生的圖形的顯示器應該是直覺的、總是可接達的、而且不引人注目的。一種顯示高解析度的人工實境圖形給一使用者的方法是一頭戴式顯示器。使用者穿戴一能夠顯示電腦繪圖顯示畫面的設備,例如是一頭盔、耳機、或眼鏡。在擴增或混合實境的體驗中,電腦繪圖可以和實體世界並列、或是在實體世界之上可見的。然而,成像這些電腦繪圖在計算上是繁重的。因此,在大多數的情況中,成像是藉由通訊地附接(例如,經由一電纜線、或例如是藍芽的無線通訊協定)至一頭戴式顯示器的功能強大的電腦來加以執行。在此種配置中,頭戴式顯示器是受限於龐大的電線、頻寬及功率限制、熱限制、以及其它相關的束縛。然而,這些束縛的限制正被突破。足夠舒適且有效率的用於整天穿戴、但功能尚未足夠強大到顯示複雜圖形的頭戴式顯示器目前正被開發。
一種被用來縮減實際的顯示器尺寸,而不影響表觀顯示器尺寸是以一掃描顯示器著稱的技術。在一掃描顯示器中,多個較小的影像被組合以形成一較大的複合影像。所述掃描顯示器使用光源、一或多個包括反射器的掃描元件、以及一光學系統,以產生及輸出影像光。輸出的影像光可以輸出到使用者的眼睛。所述光源可以是由例如是發光二極體(LED)的發射器提供的。例如,所述光源可以是一陣列的2560x1440 LED。所述反射器可以是附接至所述掃描元件的任何適當的反射表面。在特定的實施例中,所述掃描元件可以是一掃描反射鏡,其利用一或多個微機電系統(MEMS)構件而被驅動。所述光學系統可包括被用來聚焦、重新導向、以及以另外方式擴增光的透鏡。所述掃描元件可以使得藉由光導構件處理的光源以一對應於所述發射器所用的一產生模式之特定的模式輸出至使用者的眼睛,以最佳化顯示器繪圖速率。例如,因為並不需要所有的發射器立刻都起作用的,並且相較於由相同發射器所構成的傳統顯示器,除了各種其它因素之外,掃描顯示器可以需要較低的功率來運行,因而可以產生較少的熱。它們也可以具有較小的重量,此部分是歸因於用在掃描元件及光學系統的材料品質。利用一掃描顯示器的一結果是為了交換得到例如是功率、重量、以及熱效率,一掃描顯示器可能未完美地顯示被呈現給其的影像,例如是欲用於傳統顯示器的影像。可能有例如是影像的幾何彎曲的非均勻的失真、以及色彩與明確地說是亮度的失真。如同在此進一步解說的,這些失真可以藉由後置處理待被顯示的圖形而被校正,以在所述失真被傳遞至顯示器之前抵消它們,此產生沒有失真的效果。儘管此揭露內容以一特定的方式描述顯示器,但是此揭露內容思及任何適當的顯示器。
自從其存在開始,人工實境(例如,AR、VR、MR)技術就已經飽受在響應於一AR/VR/MR場景的使用者觀點上的突然改變來成像AR/VR/MR物件上的延遲問題的困擾。為了產生一沉浸式環境,使用者可能需要在觀看一場景時是能夠轉動其頭部,並且所述環境可能需要藉由調整被呈現給所述使用者的視圖來立即響應。每一頭部移動都可能稍微改變所述場景的使用者的觀點。這些頭部移動可能是小的,但是為偶發的,而且難以預測(若非不可能的話)。一項待解決的問題是所述頭部移動可能快速地發生,此需要所述場景的視圖被快速地修改,以考量隨著所述頭部移動發生的在觀點上的改變。若此未足夠快速地被完成,則所產生的延遲可能會使得使用者遭受到感覺不和諧,其可能會導致虛擬實境眩暈或不適、或至少是對於所體驗到的沉浸式本質的中斷。以其整體再成像一視圖來考量在觀點上的這些改變可能是相當耗費資源的,因而只可能在一相當低的訊框率(例如,60Hz、或是每1/60秒一次)之下完成。因此,藉由再成像整個場景來修改場景以考量在一足夠快速的步調(例如,200Hz、每1/200th秒一次)下的在觀點上的改變,以避免使用者感知延遲並且藉此避免或充分降低感覺不和諧可能不是可行的。一解決方案牽涉到產生及加工代表在場景之內的物件的“表面”,所述表面是特別被配置的代表在所述場景之內的一物件的一特定的視圖的物件圖元,其中一表面對應於預期由於在觀點上的一改變而在外觀上以一單元一起移動/平移、歪斜、縮放、扭曲、或以其它方式改變的一或多個物件。並非是再成像整個視圖,而是一計算系統可以單純從改變的觀點來重新取樣這些表面,以近似一對應的物件從所述改變的觀點來看將會是如何。此方法實質可以是一有效率的捷徑,並且可以顯著地減少所需的處理,並且因此確保所述視圖足夠快速地被更新以充分降低延遲。不同於再成像整個視圖,重新取樣表面可以是足夠有效率的,其可被利用以在所分配的時間之內(例如,在1/200秒中),在一HMD的一計算系統的相當有限的處理能力下修改視圖。在此修改中牽涉到的時間規模是小到使得一實際和所述HMD分開的功能更強的系統(例如,一分開的膝上型或可穿戴的裝置)執行所述修改可能是不可行的,因為所述HMD將必須發送有關所述HMD的目前的位置及方位的資訊,等待所述分開的系統以成像新的視圖,並且接著從所述分開的系統接收所述新的視圖。藉由單純重新取樣表面,所述修改可以完全在所述HMD上加以執行,因此加速所述過程。
圖1是描繪一人工實境圖形成像及顯示系統100。在特定的實施例中,所述成像及顯示系統100可包括一儲備成像構件110。所述儲備成像構件110可以是一被用來執行補充的成像之遠端的成像構件、或是可以在較少互動性要求下製備的預先成像元件。例如,所述儲備成像構件110可以是透過一雲端計算網路或是本地區域網路所提供的一成像伺服器,其處理串流視訊的預先成像或是其它非互動的成分。使用者可以提供其本身的儲備成像構件110、或是可以獲得對於一儲備成像構件110的接達以作為一訂閱計畫的部分。所述儲備成像構件可以無線地通訊、或是透過一或多個有線的連線至一主要的成像構件120。所述主要的成像構件120可以是一獨立的裝置,例如是一膝上型或桌上型電腦、電玩遊戲主機、或是任何其它適當的本地圖形成像系統、或是一容易穿戴在使用者身體上的裝置,例如是一行動電話、平板電腦、或任何其它適當的小型的圖形成像系統。所述儲備成像構件110及/或主要的成像構件120可以執行具有一典型的成像管線的數個程序。在特定的實施例中,所述主要的成像構件120可以是能夠根據藉由複數個多邊形所界定的三維(“3D”)模型以及足以支援一到達或超過每秒60訊框的訊框更新速率的成像指令來成像互動的圖形。
所述主要的成像構件120可以接收針對於一成像請求的主要的成像資料。所述主要的成像資料可包含用於成像電腦產生的影像之二維或三維的模型、紋理及指令、以及其它適當的資訊。所述主要的成像構件120可以根據接收到的主要的成像資料來執行最初的步驟,以成像人工實境場景的特點。例如,所述主要的成像構件120可以利用光線追蹤、光柵化、或是其它適當的技術來執行可視度計算,以判斷在一虛擬的場景中的虛擬的物件的哪一個3D模型的哪一個多邊形是透過一顯示器的哪些像素可見的。根據所述可視度判斷,所述主要的成像構件120可以執行著色計算,以決定用於每一個像素的適當的色彩。在特定的實施例中,所述主要的成像構件120可以在一每秒30訊框的速率或類似者之下從儲備成像構件110接收經壓縮或解壓縮的串流視訊資料。所述主要的成像構件120可以結合從儲備成像構件110接收到的資料與藉由所述最初的成像步驟產生的資料。
在特定的實施例中,供一顯示引擎150使用的例如是“表面”的一或多個專門的物件圖元可加以產生。舉例而言,所述主要的成像構件120可以如同在一典型的成像管線中的藉由首先從3D模型成像2D影像來產生表面。所述主要的成像構件120接著可以利用一額外的後置處理方法以從所述2D影像產生表面。作為另一例子的是,所述主要的成像構件120可以直接從3D模型輸出表面,此消除只關於成像2D影像的額外的步驟。作為另一例子的是,所述主要的成像構件120可以從3D模型輸出2D影像至一顯示引擎150。所述顯示引擎150可以利用一額外的後置處理方法,根據所述2D影像來產生表面。
表面可包括對於成像一人工實境場景的一或多個虛擬的物件有用的資訊。所述資訊可包含針對於所述表面在所述場景中的地點及/或位置資料,其是用觀察空間的相對於虛擬的攝影機/觀看者的座標系統指明的(或者是,所述表面的位置亦可以是用任何其它適當的座標系統指明的,例如世界空間座標系統)。所述表面可以進一步包含紋理資料,其藉由一或多個紋理元素陣列來加以表示。因此,在特定的實施例中,一“表面”可被視為具有一轉換矩陣以指明其在一場景之內的位置的一矩形紋理。在所述紋理元素陣列中的每一個紋理元素可以具有色彩資訊以及在所述紋理元素陣列之內的一2D座標(例如,以(u, v)座標指明的)。在特定的實施例中,每一個紋理元素的色彩資訊可以指出數個色彩頻道(例如,紅色、綠色及藍色)的強度、以及指出所述紋理元素的通透性位準的alpha資訊(例如,完全透明的、完全不透明的、或是介於之間的某處)。在其它實施例中,一紋理元素的色彩資訊可以指出紅色、綠色及藍色的強度,而不個別地指明通透性位準。在此例中,用於每一個色彩的值可以預先乘上紋理元素的相關的通透性位準(例如,若紋理元素是具有一個0的alpha位準的完全透明的,則用於所述紋理元素的紅色、綠色及藍色值將會全部都藉由乘上所述0的alpha位準而被歸零)。
一表面的紋理資料可以是根據一標準的圖形成像的管線的結果而被產生,其體現技術以根據一觀看者在一個三維的場景中的觀點來最佳地決定應該藉由一顯示器或影像的像素來顯示的色彩。在特定的實施例中,所述顯示引擎150可以限制其將會處理的表面數量(例如,最多16個表面或是任何其它適當數量的表面),以確保在場景中的充分的單純性,因而效能要求可以符合(例如,用以在200-300赫茲下輸出訊框)。因此,在人工實境場景中的某些虛擬的物件可以根據任何適當的規則來加以分組。每一個表面可以是在所述場景之內的一或多個物件的一表示,所述一或多個物件被預期會由於在所述場景的一使用者的觀點上的一改變(例如,由在一使用者的頭部上的一HMD移動到一不同的位置及/或方位所產生的),而以一單元一起在外觀上移動/平移、歪斜、縮放、扭曲、或是以其它方式改變。舉例且非限制性的,若判斷出的是一人的一虛擬化身以及由所述虛擬化身穿戴的一帽子將會在外觀上以一單元一起移動/平移、歪斜、縮放、扭曲、或是以其它方式改變,則所述人及帽子可以對應於一表面。在特定的實施例中,一表面可以對應於成組的點(例如,構成一物件的點),所述成組的點在一場景的一使用者的觀點改變時被預期會在外觀上以單一單元移動/平移、歪斜、縮放、扭曲、或是以其它方式改變。
所述主要的成像構件120可以透過一或多個有線或無線的連線來和一頭戴式顯示器單元130通訊。在特定的實施例中,使用者可以是能夠根據使用者的需要來選擇所述主要的成像構件120以及頭戴式顯示器單元130是如何通訊的。所述頭戴式顯示器單元130可被配置以從所述主要的成像構件120接收資料,例如是表面以及其它成像指令。所述頭戴式顯示器單元130可以根據所接收到的資料來準備顯示一人工實境場景給一使用者。在特定的實施例中,所述頭戴式顯示器單元130可包括一顯示引擎150以及一或多個顯示器170。在特定的實施例中,所述顯示器170可以是掃描顯示器,其包含所有必要的發射器、掃描元件、以及光學系統。所述頭戴式顯示器單元130可以進一步包括未被展示的額外構件,其使得所述人工場景的成像及顯示變得容易。這些可包含額外的影像處理構件、眼睛追蹤的構件、熱偵測構件、任何其它適當的構件、或是其之任意組合。儘管此揭露內容以一特定的方式描述成像構件,但是此揭露內容思及任何適當的成像構件。
在特定的實施例中,所述頭戴式顯示器的顯示引擎150及顯示器170可被明確地配置以致能一快速的訊框顯示或更新率。在典型互動的圖形成像系統中,一目標訊框率可以是在每秒六十訊框、或是大約每秒六十訊框。儘管此在傳統的系統中是足以讓所述影像看起來清晰、平順的移動視訊,但是其對於人工實境而言可能是不足的。因為人工實境體驗的沉浸式本質,而且進一步因為所述顯示器的頭戴式本質以及其接近使用者的眼睛而被加劇,因此人工實境成像及顯示系統100目標可能是更高的訊框顯示率,例如是向上提高到每秒兩百到三百訊框,以便於響應於在使用者的觀點及/或移動(例如,頭及/或眼睛移動)上的改變來顯示影像。若此未足夠快速地被完成,則所產生的延遲可能會使得使用者遭受到感覺不和諧,其可能會導致虛擬實境眩暈或不適。在特定的實施例中,所述人工實境成像及顯示系統100可以是能夠追蹤及反應於使用者的眼睛移動。為了在反應於眼睛移動時提供平順的視訊,所述系統100可以在特別激烈的期間目標在甚至更高的顯示器速率,例如是爆發到高達每秒八百訊框。
所述整個系統可以在記住這些快速的顯示率的效能評測下加以配置。每秒200訊框的目標訊框率是大約等於每5毫秒一訊框。因為透過無線或甚至是有線的連線來發送移動資料至一功能強大的圖形處理器、以及更新來自圖形處理器的成像資料會損失大量的時間。因此,至少某些圖形準備量必須在一頭戴式單元中發生,此降低在發送上損失的時間。然而,一頭戴式顯示器單元130有著重量、功率、以及空間限制,其必須堅持於使用者的舒適。這些重量、功率、以及空間限制限縮可利用於一頭戴式顯示器單元130的構件及計算的能力。事實上,利用習知的方式,可利用於一適合用於長期穿戴的頭戴式顯示器單元130的構件並無法在每秒60訊框的適當照明下,從包括多邊形的3D模型成像人工實境場景,更不必說用於沉浸式體驗所必要的200或更多訊框。
為了解決此問題,一功能強大的主要的成像構件120可以執行以大約每秒60訊框產生表面所需的複雜的圖形產生工作。一頭戴式顯示器單元130的一顯示引擎150可包括功能足夠強大到在來自主要的成像構件120的更新之間,根據一使用者的移動來調整或再取樣主要的成像構件120所產生者的硬體構件。所述顯示引擎150可以快速地響應由一使用者的移動所產生的觀點改變以重新處理所述主要的成像構件120的輸出,其彎曲或者是調整所述主要的成像構件120的輸出,直到所述主要的成像構件120已經製備另一用於顯示的訊框為止。例如,如先前所述,主要的成像構件120可以在典型的速率,例如是在大約每秒六十訊框之下成像在一3D場景中的虛擬的物件的2D影像。所述2D影像可被用來產生表面。每一個表面可包括指出所述表面相對於觀看者的3D位置的位置資訊、以及用於它們所代表的虛擬物件的紋理資訊,其包含複雜的照明效果的結果、遮蔽判斷、以及其它藉由主要的成像構件120所執行的成像技術的實施方式。所述主要的成像構件120可以傳送所述表面至顯示引擎150。所述顯示引擎150接著可以使用有關例如是使用者的位置及/或方位的更新的資訊來從目前的使用者觀點重新取樣所述表面,並且彎曲所述表面以考量顯示的特徵。所述場景的簡化的幾何(由於表面的使用)以及其它最佳化技術致能所述顯示引擎150在所要的目標速率下(例如,在超過每秒200訊框之下)執行改善及成像所述人工場景的工作。因此,儘管所述主要的成像構件120每1/60秒製備精確到一使用者的移動的表面一次,所述顯示引擎150仍然可以每1/200秒重新取樣所述輸出以改進圖形的位置,其臨時補缺由主要的成像構件120的訊框率所產生的間隙。此可以在電腦產生的圖形的平順且無縫的移動下產生高品質的人工實境體驗給使用者,同時仍然提供舒適的設備。
圖2是描繪針對於一顯示引擎150的一系統圖。所述顯示引擎150可包括四種類型的頂層區塊。如同在圖2中所示,這些區塊可包含一控制區塊200、轉換區塊300、像素區塊400、以及顯示區塊500。所述顯示引擎150的構件中的一或多個可被配置以經由一或多個高速的匯流排、共用的記憶體、或是任何其它適當的方法來通訊。如同在圖2中所示,所述顯示引擎150的控制區塊200可被配置以和兩個鏡射的管線的轉換區塊300、像素區塊400、以及顯示區塊500通訊。在特定的實施例中,所述顯示引擎150的每一個管線可以專用於準備影像給一個別的顯示器170以顯示。每一個顯示器170可被配置以分別顯示影像給一使用者的左眼及右眼。如同在此更詳細地解說的,此通訊可包含資料以及控制信號、中斷及其它的指令。所述兩個管線可以是能夠與彼此獨立地操作。
在特定的實施例中,所述控制區塊200可以從主要的成像構件120接收一輸入資料串流205,並且初始化在所述顯示引擎150中的一管線以完成用於顯示的成像。在特定的實施例中,所述輸入資料串流205可包括來自主要的成像構件120的資料及控制封包。所述資料及控制封包可包含例如是一或多個包括紋理資料及位置資料的表面以及額外的成像指令之資訊。所述控制區塊200可以視需要來散布資料至所述顯示引擎150的一或多個其它區塊。所述控制區塊200可以開始用於一或多個將被顯示的訊框的管線處理。在特定的實施例中,頭戴式顯示器單元130可包括多個顯示引擎150,並且每一個顯示引擎150可包括其本身的控制區塊200。
在特定的實施例中,轉換區塊300可以判斷針對於將被顯示在人工實境場景中的表面的最初的可視度資訊。一般而言,轉換區塊300可以從在所述顯示器上的像素位置投射光線,並且產生濾波器命令(例如,根據雙線性或是其它類型的內插技術的濾波)以傳送至所述像素區塊400。轉換區塊300可以從使用者的目前的觀點(例如,利用慣性的量測單元、眼睛追蹤器、及/或任何適當的追蹤/定位演算法,例如是同步定位與地圖構建(SLAM)而被判斷出)執行光線投射到其中表面被設置的人工場景中,並且可以產生結果以傳送至所述像素區塊400。
一般而言,根據特定實施例,轉換區塊300分別可以包括一個四級的管線。一轉換區塊300的級可以如下進行的。一光線投射器可以發出對應於一或多個對齊的像素的陣列的光束,所述陣列被稱為塊(tile)(例如,每一塊可包含16x16對齊的像素)。所述光束可以在進入人工實境場景之前,根據一或多個扭曲網格而被彎曲。所述扭曲網格可被配置以校正源自於(至少)所述頭戴式顯示器130的顯示器170的幾何失真效應。轉換區塊300可以藉由比較每一塊的一邊界框與針對於每一表面的邊界框來判斷每一光束是否交叉在所述場景中的表面。若一光束並未交叉一表面,則其可被拋棄。塊-表面的交叉被偵測出,並且對應的塊-表面的對395被傳遞至所述像素區塊400。
一般而言,根據特定實施例,像素區塊400從所述塊-表面的對395決定色彩值,以產生像素色彩值。用於每一個像素的色彩值是從藉由控制區塊200接收且儲存的表面的紋理資料(例如,作為輸入資料串流205的部分)取樣的。像素區塊400從轉換區塊300接收塊-表面的對395,並且排程雙線性濾波。對於每一塊-表面的對395,像素區塊400可以利用對應於投影的塊交叉所述表面之處的色彩值來取樣用於在所述塊之內的像素的色彩資訊。在特定的實施例中,像素區塊400可以個別地處理用於每一個像素的紅色、綠色、以及藍色色彩成分。像素區塊400接著可以輸出像素色彩值495至所述顯示區塊500。
一般而言,顯示區塊500可以從像素區塊400接收像素色彩值495,轉換所述資料的格式成為更適合用於顯示器的掃描線輸出,施加一或多個亮度校正至所述像素色彩值495,並且準備所述像素色彩值495以用於輸出至所述顯示器170。顯示區塊500可以轉換由像素區塊400所產生的塊階的像素色彩值495成為掃描線階或列階的資料,其可能是所述顯示器170所需的。所述亮度校正可包含任何所需的亮度校正、伽馬(gamma)映射、以及抖動。顯示區塊500可以直接提供像素輸出595(例如所述校正後的像素色彩值)至所述顯示器170、或是可以用各種格式提供所述像素輸出595至一在顯示引擎150外部的區塊。例如,所述頭戴式顯示器單元130可包括額外的硬體或軟體以進一步自訂後端色彩處理,以支援較廣的介面至所述顯示器、或是最佳化顯示器速度或保真度。
有關所述控制區塊200、轉換區塊300、像素區塊400、以及顯示區塊500的進一步的細節現在將會加以描述,其開始於所述控制區塊200。在特定的實施例中,所述控制區塊200可以從主要的成像構件120接收一輸入資料串流205,並且初始化在所述顯示引擎150中的一管線以根據使用者的目前的觀點來重新取樣或校正人工實境表面。在特定的實施例中,所述控制區塊200可以從主要的成像構件120接收控制封包。所述控制封包可包含一或多個待被成像在人工實境場景中的具有紋理資料及位置資料(例如,如同藉由轉換矩陣所界定)的表面。
圖3是描繪根據特定實施例的一範例的控制區塊200的一架構。在特定的實施例中,所述控制區塊200可包含一具有本地的記憶體235的微控制器230。所述本地的記憶體235可以作用為一用於藉由所述控制區塊200從所述主要的成像構件120接收到的資料的緩衝器。所述控制區塊200可包含一可藉由所述顯示引擎150的一或多個其它區塊存取的共用的記憶體240。所述共用的記憶體240可被用來儲存由其它區塊在準備用於每一訊框的像素色彩值時所用的資料。舉例而言,一轉換區塊300可以依賴預先計算的值(例如,在轉換區塊300並未作用時計算出的值)作為其管線操作的部分。類似地,一顯示區塊500可以依賴在顯示區塊500並未作用時計算出的值。這些值可被儲存在所述共用的記憶體240中。在特定的實施例中,所述微控制器230只可以在所述其它區塊並未作用時,例如在一訊框已經被處理及輸出至顯示器170之後、或是在可適用時,在用於一訊框的一特定的部分的資料已經被傳送至下一個區塊之後,寫入至共用的記憶體240。此配置可以避免在相同的訊框之內不一致的結果。類似地,狀態及效能更新只可以在所述其它區塊並未作用時,例如在訊框之間的時間期間、或是在微控制器230已經發出一命令以停止所述管線之後來加以執行。在特定的實施例中,所述共用的記憶體240可包括被留出以供一特定的區塊使用的區段。所述微控制器230只有在所述顯示引擎150的一特定的區塊並未作用時,才可以寫入至共用的記憶體240的所述區段。儘管此揭露內容用一特定的方式來描述一微控制器以及共用的記憶體,但是此揭露內容思及任何適當方式的微控制器以及共用的記憶體。
所述控制區塊200可以進一步包含一紋理元素記憶體220,其儲存供像素區塊400使用的紋理資料。所述紋理元素記憶體220可以具有一專用的記憶體控制器210。在特定的實施例中,和表面相關的紋理陣列可以經由所述記憶體控制器210而直接被寫入至紋理元素記憶體220。例如,所述微控制器230以及記憶體控制器210都可以連接至頭戴式顯示器單元130的網路架構,其於是可以通訊地耦接至主要的成像構件120。就此而論,在所述微控制器230已經設定所述紋理元素陣列的傳送方(例如,主要的成像構件120)的傳輸之後,所述傳送方可以經由記憶體控制器210透過一輸入資料串流205來寫入所述紋理元素陣列至紋理元素記憶體220。所述微控制器230亦可以控制紋理資料的輸入。在特定的實施例中,所述記憶體控制器210只有在一訊框間的期間才可以更新在紋理元素記憶體220中所儲存的資料、或是只有在像素區塊400並未作用時才可以更新在紋理元素記憶體220中所儲存的資料。
在特定的實施例中,所述紋理元素記憶體220可被配置以響應於多個平行的讀取請求。所述紋理元素記憶體220以及記憶體控制器210可被配置以語法分析來自一像素區塊400的記憶體讀取請求,並且只讀取記憶體的一涵蓋所請求的資料的子集合。舉例而言,在所述紋理元素記憶體220中的資料可被儲存在256位元寬的邏輯庫中,其被分成64位元的字。在接收一記憶體讀取請求之後,所述記憶體控制器210可以判斷那些64位元的字中的哪些是所需的並且只有擷取那些字,而不是擷取整個256位元的邏輯庫。以此種方式執行讀取可以降低在被用來傳送所述讀取請求並且接收後續的資料的匯流排上的流量。其亦可以藉由降低整體所執行的讀取數量來降低功率使用。
在特定的實施例中,所述記憶體控制器可以根據一或多個優先權方案來優先化對於紋理元素記憶體220的存取。例如,所述記憶體控制器210可以將寫入至所述記憶體(例如,從主要的成像構件120)視為最高的優先權。所述記憶體控制器210可以將來自一像素區塊400的讀取請求視為次高的優先權,並且可以將其它存取請求(例如,透過高速通訊匯流排250的請求)視為最低的優先權。在特定的實施例中,在所述紋理元素記憶體220中所儲存的紋理元素資料可以根據一特別被配置以降低讀取時間、後續的處理時間、功率使用、以及熱產生的模式來加以儲存。在特定的實施例中,所述紋理元素記憶體220以及記憶體控制器210可以支援多個適當的色彩格式,其中尺寸是根據在手邊的應用而變化。例如,所述色彩格式可包含RGB或是RGBA指明的色彩,並且可包括任何適當的尺寸。儘管此揭露內容以一特定的方式描述一紋理元素記憶體,但是此揭露內容思及任何適當的紋理元素記憶體。
在特定的實施例中,遍及所述控制區塊200的通訊可以在一高速的匯流排250上實行,多個構件可以透過所述高速的匯流排250來通訊。所述微控制器230、記憶體控制器210以及共用的記憶體240可以連接至高速的匯流排250。轉換區塊300、像素區塊400以及顯示區塊500的構件亦可以連接至高速的匯流排250,以容許這些區塊的構件能夠和所述微控制器230以及共用的記憶體240通訊。所述高速的匯流排亦可以連接至其它構件。在特定的實施例中,所述微控制器230可以具有一或多個專用的匯流排來和所述顯示引擎150的一或多個構件通訊。
在特定的實施例中,所述控制區塊200可被配置以接收及處理來自所述主要的成像構件、所述頭戴式顯示器單元130的一或多個其它構件、所述顯示引擎150的一或多個其它構件、或是所述人工實境圖形成像及顯示系統100的任何其它適當的構件的中斷。一中斷可被發出以提供一高優先權的命令至所述顯示引擎150的一特定的區塊、或大致來說是至顯示引擎150。僅作為一例子且非限制性的,所述控制區塊200的微控制器210可被配置以接收一喚醒中斷。所述喚醒中斷可以使得微控制器210開始一開機序列,以藉由所述顯示引擎150的每一個區塊來加以執行。作為另一例子的是,所述微控制器210可被配置以從顯示引擎150的一區塊接收一錯誤中斷。所述錯誤中斷可以指出顯示引擎150所遭遇到的一錯誤。所述所述控制區塊的微控制器210可被配置以視需要地採取補救動作(例如,輸出除錯資訊至一日誌或顯示畫面、進入一失效狀態路徑、或是任何其它適當的補救動作)。作為另一例子的是,所述微控制器210可被配置以接收一停止中斷。在接收所述停止中斷之後,所述微控制器210可以發出命令以停止所述成像管線的執行,並且進入一關機或是暫停常式。儘管此揭露內容描述特定的中斷及命令,但是此揭露內容思及任何適當的中斷及命令。
圖4是描繪一範例的轉換區塊300的架構。所述轉換區塊300包含一光線投射器310、一網格彎曲區塊320及彎曲記憶體325、一界線比較區塊330及界線記憶體335、以及一轉換引擎340及轉換記憶體345。在某些實施例中,所述彎曲記憶體325、界線記憶體335、以及轉換記憶體345中的某些或全部可以是所述控制區塊200的共用的記憶體240的被配置供這些記憶體使用的區段。在某些實施例中,所述彎曲記憶體325、界線記憶體335、以及轉換記憶體345的每一個可以是一專用於儲存轉換區塊300的其相關的區塊所用的資料之個別的記憶體。如同在以下藉由其中的資料的說明而將會變得明顯的,在這些記憶體中所儲存的資料可以藉由所述控制區塊200的微控制器230接收、可以藉由所述控制區塊200的微控制器240產生、或是可以用任何其它適當的方式來提供。在特定的實施例中,一轉換區塊300可包含額外的級以及所附的結構。
在特定的實施例中,所述轉換區塊300可以針對於將藉由一顯示器顯示的表面判斷最初的可視度資訊。所述轉換區塊300可以從觀看一人工實境場景的一使用者的觀點(例如,如同利用運動感測器資料、眼睛追蹤資料、及/或追蹤/定位演算法所判斷的)執行光線投射。所述轉換區塊300的結果可被傳送至像素區塊400。在特定的實施例中,所述顯示引擎150可包括複數個轉換區塊300。一第一轉換區塊300的區塊可以是能夠與在一第二轉換區塊300中的區塊的狀態無關地前進。
所述轉換區塊管線可包括一光線投射器310,其根據和一或多個表面相關的位置資料來執行光線投射到一人工實境場景中。一般而言,光線投射是一種用於判斷在一人工實境場景中的虛擬物件的主要可視度的技術。一計算裝置傳送源自於一觀點的光線到一虛擬的場景中,其中目標是模擬光粒子在所述場景中的特性。一光線落在其上的虛擬的物件的色彩貢獻到將被顯示的像素的色彩。以此種方式,光線投射是相關於一種以光線追蹤著稱的技術,其中一區別是儘管光線追蹤經常牽涉到透過一或多個反射來跟隨所述光線,但是光線投射並非如此。反而,在光線投射中,和“跟隨”一光線相關的計算在偵測到所述光線已經交叉一第一虛擬的物件之後就結束。
圖7是描繪一用於決定將被顯示在一場景的一視圖之內的虛擬物件的視覺資訊及位置資訊(例如,藉由多邊形所構成的3D模型所界定)的第一光線投射的過程。一場景的一“視圖”可以是指所述場景的一使用者觀點,其例如可以根據一頭戴式顯示器單元130的一目前的位置及方位來決定。為了更佳的理解一物件如何被顯示在一視圖之內,想像一些假想的光線從一觀點(例如,一“虛擬的攝影機”可以代表一觀看所述場景的使用者的觀點)發出至一螢幕上的像素是有幫助的。舉例且非限制性的,參照圖7,假想的光線730可以從觀點720發出並且交叉螢幕710的像素715。作為另一例子且非限制性的,假想的光線760可以交叉像素770。一或多個假想的光線可以針對於一螢幕的像素的全部(或一子集合)反覆地投射(利用在此可被稱為一“光線投射的過程”),來決定每一個像素應該顯示者(例如,所述像素的色彩及通透性)。一計算系統可以執行一光線投射的過程,並且判斷所述假想的光線的每一個是否交叉一虛擬物件,並且可以進一步判斷所述假想的光線交叉在所述虛擬物件上的何處。舉例且非限制性的,假想的光線730可以在交叉點755交叉物件750(例如,一AR時鐘)。在此例子中,所述計算系統可以判斷像素715是和交叉點755相關的,因為所述光線730亦在所述像素715交叉所述螢幕710。作為另一例子且非限制性的,所述假想的光線760可能未交叉所述物件750。在此例子中,所述計算系統可以判斷像素715不應該和所述物件750相關的。所述光線投射的過程的此使用在此可被稱為一“可視度測試”,因為其可被用來判斷所述物件(或是其之部分)是在一給定的視圖之內可見的。所述光線投射的過程最終可被用來關聯所述螢幕的像素與在針對於一場景的一視圖將會是可見的任何物件上的交叉點。
回到圖4的討論,所述轉換區塊300的光線投射器310可以負責準備光線以被傳送到人工實境場景中。如同在此所述的,當和所述顯示引擎150一起被利用時,大量的成像工作已經藉由所述主要的成像構件120來加以達成,其包含大多數的物件遮蔽及著色的細節。藉由所述主要的成像構件120所執行的成像工作的結果是被捕捉在每一個表面的位置資料及紋理資料中。接著,藉由所述光線投射器310所執行的光線投射(例如,對照一批表面來執行光線投射)並不限制可藉由顯示引擎150達成的保真度。在特定的光線投射的配置中,許多光線可被使用,例如,一光線對應於每一個將會被顯示的像素、或甚至是子像素。光線的路徑被跟隨,直到它們接觸一虛擬的物件、或是某個臨界距離超過為止。例如,所述臨界值可以是根據所述光線已經行進的距離、花在所述計算上的時間量、或是任何其它適當的度量而定。若所述臨界值超過的話,則判斷出的是所述光線並未擊中一虛擬的物件,因而一預設的值應該歸於所述光線。若所述光線命中一虛擬的物件,則所述虛擬的物件的一值(通常是色彩)歸於所述光線。在某些實施例中,用於對應於所述光線的像素的色彩是根據一歸於所述光線的值而被判斷出。
如上所述,為了判斷可視度,光線可以針對於在一顯示器中的每一個像素來投射。然而,此可能不是在計算上有效率的,因為一具有稀疏的表面的場景可能會導致許多光線並未交叉任何東西。因此,在特定的實施例中,所述光線投射器310可以替代地從一批像素投射光束或射束到所述場景中,因而可以一次檢查較大的取樣涵蓋區。概念上,若一光束並未交叉任何表面,則在所述束之內的任何光線也將不會交叉任何表面。根據此觀察,一旦判斷出的是一光束並不交叉一表面,則不需要針對於所述光束被投射所來自的像素對照所述表面以執行進一步的處理。在另一方面,若所述光束交叉所述表面,則所述光線投射器310可以對於每一個和所述光束相關的像素執行較細的取樣。在特定的實施例中,光束可以從像素集合的單元來加以投射。例如,一光束被投射所來自的一單元的對齊的像素在此可以被稱為一“塊”。例如,每一塊可以是一顯示器的一對齊的16x16像素區塊。一塊的位置可以根據任何適當的設計來加以指明,例如是藉由指明所述塊的四個角落、一中心點以及至邊緣的距離、一數學方程式、任何其它適當的方法、或是其之任意組合。在特定的實施例中,從一塊投射的光束可以是藉由從所述塊的四個角落投射的四個光線所界定的。因此,一光線的位置可以在一顯示器的像素座標空間中加以指明(例如,在例如是和轉換區塊300相關的一左眼的顯示器170或是一右眼的顯示器170的特定的顯示器的觀察空間之內的(x, y)像素位置,在圖4中被稱為“顯示器空間”)。
在特定的實施例中,一顯示器的像素可被分成對齊的塊的列。所述光線投射器310可以針對於在一顯示器中的塊的每一個來投射光束。在特定的實施例中,所述光線投射器可以在移動到下一列之前,針對於在一水平列的塊之內的每一塊投射個別的光束(或者是,若所述掃描線順序是垂直的,則所述序列可以是根據垂直行的塊)。
在特定的實施例中,所述光線投射器310可以優先化光束。舉例而言,所述光線投射器310可以用一根據處理個別的塊所預期的時間量的順序針對於塊來準備所述光束。例如,藉由一掃描顯示器顯示的影像可能會呈現一以色像差著稱的效應,其中接近顯示器的邊緣的色彩的紅色、綠色及藍色成分是相對於接近所述顯示器的中心的色彩不同步的。此效應在以下更詳細地加以描述。由於致力於校正此效應,因此相較於接近所述顯示器中心的塊,處理接近顯示器邊緣的塊可能需要更大的讀取頻寬(例如,用於從記憶體讀取紋理元素陣列),且/或可能花更長時間來處理。例如,在其中個別的光束是針對於每一個色彩成分(例如,紅色、綠色、或是藍色)來投射以考量色像差的實施例中,每一個色彩的光束的交叉位置可能是不同的,此表示可能需要從記憶體擷取個別的紋理區域(例如,需要三次個別的記憶體讀取)。對於較靠近一顯示器中心的塊,其中色像差可能是較不明顯的,相同的紋理區域可被用來計算針對於所有三個紅色、綠色、以及藍色光束的色彩(例如,只需要一次記憶體讀取)。根據此資訊,所述光線投射器310可以交替在準備用於較慢的塊(例如,較靠近邊緣的塊)的光束以及用於較快的塊的光束(例如,較靠近中心的塊)之間。舉例而言,若在一列中有160塊,則以下的塊順序將會均勻所需的平均紋理元素讀取頻寬:0、80、1、81、2、82(每一個數字對應於在160塊的列中的一塊的順序)。
在所述轉換區塊300的下一個區塊中,所述網格彎曲320可以施加一或多個“彎曲”或“扭曲”網格至所述光線以指明其個別的軌跡。例如,扭曲網格可被選擇以模擬或校正一攝影機或一顯示器的一透鏡的效應。儘管上述的一掃描顯示裝置有許多的優點,但是也有某些缺點。當相較於在一習知或理想的顯示器上的影像時,那些缺點中的一些以失真的形式出現在所述影像上。利用一攝影機透過一透鏡來窺視一場景的比喻,許多這些失真具有由所述攝影機透鏡彎曲的光所引起的彎曲或幾何失真的形式。
圖8是描繪一用於從一場景的一觀點後置彎曲或再取樣一表面以用於顯示的第二光線投射的過程的一範例的概念化。在特定的實施例中,一或多個表面可包含位置資訊,其將所述表面設置在一和所述場景相關的3D虛擬空間之內的指明的位置處。舉例且非限制性的,參照圖8,所述表面850可以根據相關的位置資訊而被置放在其被描繪的位置處。在此例子中,儘管所述表面可能看起來描繪一具有相對於觀看者變化的深度的3D時鐘(例如,9點鐘區域可能看起來比3點鐘區域離觀看者較遠),但是所述表面在特定的實施例中可以是一面對觀看者的平坦表面(例如,在觀點改變之前,其法向量至少最初是指向觀看者)。物件的任何視覺的表示可被儲存為所述表面的紋理資料的部分。
在特定的實施例中,一表面的每一個紋理元素可以具有相關的位置資訊,其指明其位在何處。一光線投射的過程可以藉由所述光線投射器310來加以執行。舉例且非限制性的,參照圖8,假想的光線830可以從觀點820發出並且交叉螢幕810(例如,一頭戴式顯示器單元130的兩個接目鏡中之一的顯示器170)的像素815。作為另一例子且非限制性的,假想的光線860可以交叉像素870。在特定的實施例中,所述轉換區塊300的網格彎曲區塊320可以考量由頭戴式顯示器單元130的光學結構(例如,頭戴式顯示器單元130的透鏡的光學效果)所引入的失真及/或其它像差(例如,色像差)。所述失真/像差可以在數學上被校正。此校正可以在概念上被表示為一種過程,因而如同在圖8中所示,假想的光線行進通過一扭曲網格840,其在數學上路徑校正所述假想的光線(例如,所述假想的光線830、假想的光線860)以考量失真/像差。舉例且非限制性的,假想的光線830(依循一路徑校正以考量失真/像差)可以在交叉點855交叉表面850。作為另一例子且非限制性的,假想的光線860(依循一路徑校正以考量失真/像差)可能未交叉表面850或是任何其它表面。
在特定的實施例中,所述轉換區塊300的網格彎曲320可以施加一或多個扭曲網格至所述光線,以抵消(例如校正)這些幾何失真。一種類型的失真是以色像差著稱的。色像差是指一在光學上的效應,其中離開一透鏡的光變成分散的,使得一透鏡在不同的焦點聚焦不同波長(例如,色彩)的光。一光線的紅色成分可以具有一與綠色或藍色成分不同的折射角。所述效應產生一帶有彩色條紋的模糊影像。所述效應可能在相對價格低廉的材料被使用在透鏡中,由於那些透鏡的物理性質而發生。因為掃描顯示裝置的掃描元件以及光學系統可能使用價格低廉且較輕重量的材料,因此所述掃描顯示器可能會呈現此效應。並非使用不同的硬體構件,而是所述色像差的效應可以藉由一扭曲網格的施加而被校正。由於具有不同色彩的光線性質不同,因此特定實施例可以針對於不同的色彩個別地投射光線(例如,用於紅色、綠色以及藍色的三個光線可以從每一個像素投射),並且施加個別界定的扭曲網格以考量具有不同波長的不同折射特徵。在特定的實施例中,並非對於不同色彩界定個別的扭曲網格,而是用於校正針對於紅色及藍色成分的色像差的扭曲網格可以被指明為一從綠色成分的偏移。
為了解決色像差所定義的扭曲網格可被配置以逆轉顯示器170的預期的色像差特徵及/或使用者的眼睛的相對的凝視方向(例如,如同藉由一眼睛追蹤器所判斷的)。當所述扭曲網格被施加至藉由光線投射器310而被傳送到人工實境場景中的光線時,所述紅色、綠色、以及藍色光線的角度可以變化。在特定的實施例中,在所述紅色、綠色、以及藍色光線之間的變化程度本身可以根據所述光線在顯示器中的位置而變化。接近一顯示器中心的變化程度可能並不存在,而接近一或多個邊緣的變化程度可能是相當大且容易察覺的。所述變化可能平滑地改變,使得內插可以是計算針對於一扭曲網格的所有的值的一種有效率的方式。在某些實施例中,所述變化可能是使得直接的校準可能是所需的。所述值可以被預先計算而作為一單次校準事件的部分,被儲存在共用的記憶體240或彎曲記憶體325中,並且在所述裝置使用中時被施加。然而,透鏡及顯示器的性質可能隨著熱而改變,若顯著的熱被偵測到,則所述扭曲網格的值可能需要調整。
另一種類型的失真是以一透鏡或掃描失真著稱的。此失真可能因為透鏡不是完美均勻的而被引入。當吾人以其眼睛掃描橫跨在一透鏡之後的表面時,在從一位置至下一位置的光折射角度上可能有些微的變化。通常,例如用於光線投射的一透鏡的模擬被假設為均勻的。無法考量此失真可能會對於用在一掃描顯示器的光造成奇快的特性,此可能增加利用相對價格低廉的材料作為掃描顯示器的部分的影響。在特定的實施例中,來自光線投射器310的光線可被扭曲以逆轉透鏡失真的效應,當被使用者觀看時,其產生一完美均勻透鏡的明顯效果。在某些實施例中,此效應可以在製造期間被校準,因為可以假設透鏡將不會隨著使用而顯著地變化。在某些實施例中,所述透鏡可能變成受損的、可能在其安裝上稍微移位、可能因為熱而發生塑性變形、或是可能發生許多其它種類的永久改變。用以校正透鏡失真的扭曲網格可以因此來加以修改的。再者,透鏡失真的效應可能在使用期間由於像是熱的影響而被加劇,其可能彎曲所述透鏡。所述扭曲網格可能需要頻繁的再次校準以校正此效應。
另一種類型的失真是有關於影像如何在一掃描顯示裝置上被顯示,並且被稱為捲簾式快門(rolling shutter)。一掃描顯示裝置的像素並非一次全部都被顯示的。而是,它們依循一掃描模式而“被寫入”至顯示器。例如,所述顯示器的一整列的所有像素可以在向下移動至下一列之前被寫入。為了使得此變得容易,所述顯示引擎150亦可以在向下移動到另一列之前決定用於所設定的列的像素的像素色彩值。儘管所述顯示引擎150是被設計來提供一快速的訊框更新率,但人工實境場景仍然可能在整個訊框可以輸出之前就改變。此可能會產生一像是捲簾式快門效應的效應。一扭曲網格可被計算出以抵消此效應。所述扭曲網格可以在一訊框的每一列藉由所述轉換引擎處理之後被更新,以準備用於下一進入的列。
其它失真是有關於顯示器如何被製造的。一失真是被稱為晶粒失準。顯示器(包含用在掃描顯示器中的發射器)包括對準的LED面板。由於在製造密集的LED面板上的困難,所述面板只有在一指定的容限之內對準。即使兩個面板的LED垂直失準是在可能超過兩個像素的容限之內,它們的對準仍可被視為可接受的。此可能會使得每一個發射顯示器包括數個失準的面板。因此,像素的間隔及對準可能並未根據理想的顯示器,亦即人工場景被建構所基於的模型而均勻或正確地分布。為了校正晶粒失準,一扭曲網格可加以產生來使得在顯示器中的像素的外觀是均勻的。舉例而言,用於每一個色彩頻道(例如,紅色、綠色、以及藍色)的LED在合成單一面板時、或是當所產生的影像被組合以用於顯示時可能不是對準的。所述失準可能會使得兩個重疊的像素不能夠藉由相同的座標數字來加以識別。例如,對於將被顯示的相同像素而言,在一紅色色彩面板中的LED可能藉由座標位置(10, 10)來參照,而在一藍色色彩面板中的相同物理位置的LED可能藉由座標位置(11, 12)來參照。如同藉由所述顯示引擎而被施加的扭曲網格可以校正這些對準誤差。作為另一例子的是,一失準可能產生自所述LED面板的方位。例如,在相同的複合面板(或是複合影像)中,一第一LED面板當相較於一第二LED面板時可能呈現一旋轉。此效應可被稱為“clocking”。如同藉由所述顯示引擎而被施加的扭曲網格可以校正產生自所述旋轉失準的定位誤差。此方法可以校正顯著的硬體失準誤差,大幅簡化針對於製造成本及容限的要求。因此,所述扭曲網格使得藉由光線投射器310所傳送的光線的角度足夠重新導向以抵消所述晶粒失準效應,而不論原因為何。在特定的實施例中,此效應可以在製造期間被校準,因為可以假設所述失準將不會隨著使用而顯著地變化。
另一失真是有關於LED在所述顯示器170中的位置。為了納入所需數量的LED並且最大化品質,奇數及偶數行的LED可被設置在沿著顯示器的垂直軸的稍微不同的位置處。此失真被稱為“奇數/偶數行失真”。類似於晶粒失準,此特定的失真可以利用一扭曲網格而被校正以抵消所述效應。所述扭曲網格可以在一校準程序期間產生,因為所述奇數及偶數行的LED的垂直對準並不太可能隨著使用而變化。
失真亦可能因為調整模擬的透鏡的焦點以對應於一可變焦式透鏡而被引入。在特定的實施例中,所述頭戴式顯示器單元130的顯示器170可被安裝在一可移動的平台之上。此可以容許所述顯示器170隨著使用者的焦平面移位來調整,其改善顯示器的保真度以及使用者的舒適。然而,移動所述顯示器可能會使得藉由先前計算出的扭曲網格校正的效應移位。因此,每次所述顯示器被移動時,所述扭曲網格可能需要調整。類似地,在一掃描顯示器中的光學系統可能被改變而產生相同的效應,此需要一類似的解決方案。再者,一變化的焦平面可能會發生引入其本身的失真,其可藉由一扭曲網格而被校正。
另一種類型的失真可能因為在觀看所述顯示器時的眼睛的移動而被引入。眼睛可能快速地移動,使得使用者的場景的視野移位。此可能會引入失真,因為快速的眼睛移動可能造成在眼睛中偵測到的影像切變。此效應與所述捲簾式快門效應至少不同於眼睛移動為基礎的失真可能是根據在觀看的眼睛本身上的效應,因而不只是在顯示器中的效應。如上所論述的,頭戴式顯示器單元130可包括一眼睛追蹤的構件,其包括一眼睛追蹤的攝影機以及所附的軟體。眼睛追蹤資訊可被傳遞至所述控制區塊200或是轉換區塊300。所述眼睛追蹤資訊可被用來預測眼睛移動,例如是藉由偵測眼睛的加速,判斷使用者可能體驗到的失真程度。一扭曲網格可被計算出,其抵消快速的眼睛移動的幾何失真效應。
為了校正上述的幾何失真以及任何其它幾何失真,所述轉換區塊300的網格彎曲區塊320可以施加一或多個扭曲網格至所述光線,以定義其進入人工實境的場景的軌跡。在特定的實施例中,所述扭曲網格是被預先計算且儲存在所述轉換區塊300的一彎曲記憶體325中。就網格彎曲區塊320並不在每次它們被應用時都產生所述扭曲網格的意義而言,所述扭曲網格是被預先計算的。而是,它們可以藉由一或多個其它構件根據各種輸入而被產生。某些扭曲網格就它們可能只需要被計算一次、或至少是很少被計算,例如是在一校準程序期間被計算的意義而言可以是靜態的。例如,為了產生一扭曲網格以校正所述晶粒失準或是奇數/偶數行失真,確切的失真程度只需要被判斷一次,因為所述失真在裝置被使用時不太可能會顯著地改變。其它失真可以利用一批根據使用而被預先計算且施加的網格而被校正。例如,用以校正透鏡或掃描失真、或是因為捲簾式快門而被引入的失真的扭曲網格可以事先被計算出,並且所述轉換區塊300的網格彎曲區塊320或是其它適當的構件可以選擇所述適當的扭曲網格來使用。
其它的扭曲網格可以就它們可能需要經常被更新,高達且包含每次藉由主要的成像構件120成像一訊框時、藉由顯示引擎150成像每一訊框時一次、或者是甚至更經常被更新的意義而言是動態的。例如,被引入以校正可變焦式透鏡的透鏡移動的扭曲可能需要每當所述可變焦式透鏡調整時都被更新。在特定的實施例中,扭曲網格可以針對於特定的透鏡配置而被預先計算(例如,一用於可能的最近位置,並且另一用於最遠的位置)。根據所述透鏡的實際位置(針對於其的資料可以是從所述可變焦式透鏡的一透鏡調整的控制器而可獲得的),每一像素的扭曲值可以藉由內插針對於所述像素而被預先計算的如同藉由被預先計算的最近位置及最遠位置的扭曲網格所指明的扭曲值來加以計算出的。所述內插的扭曲值接著可被用來在所述光線投射時扭曲它們。一動態的扭曲網格的另一個例子是被用來校正因為眼睛移動所引起的失真。當使用者的眼睛相對於顯示器(例如,一左眼顯示器170以及一右眼顯示器170)移動時,用於每一個顯示器的扭曲網格可能需要在每次偵測到眼睛移動或聚焦移位時被更新。對於每一個扭曲網格的調整可以是根據使用者的眼睛相對於顯示器的注視而被計算出的。
在特定的實施例中,這些扭曲網格的每一個可被計算及儲存在所述彎曲記憶體325中。它們亦可以被組合成為單一扭曲網格,並且被儲存在彎曲記憶體325中。在特定的實施例中,所述扭曲網格可以是由一或多個查看表所構成的,其藉由所述控制區塊200的微控制器230而被載入彎曲記憶體325中。所述查看表可包含一或多個項目,其指明用於對應於一塊的個別像素的光線的扭曲程度。例如,所述查看表的值可以指明用於對應於所述塊的角落像素的光線的扭曲程度。所述彎曲區塊320可以從這些角落值內插被施加至內部光線、或是被施加至整個光束的扭曲值。作為另一例子的是,所述查看表的值可以指明用於對應在一塊中的所有像素的光線的扭曲程度。所述彎曲區塊320接著可以針對於所述光線施加從彎曲記憶體325讀取的扭曲值。在特定的實施例中,所述查看表可以指明用於對應於單一色彩頻道的光束的扭曲值,並且可以指明從所述扭曲值的色彩偏移以用於對應於其它色彩的光束。例如,所述查看表可以指明用於綠色色彩頻道的一光束的扭曲值。從所述綠色扭曲值的偏移也可以被指明用於紅色及藍色色彩頻道。因此,所述扭曲網格值可以從彎曲記憶體325被擷取一次,並且施加至三個光束。在某些實施例中,所述網格彎曲區塊320可以直接計算將被施加的一或多個扭曲網格。儘管此揭露內容以一特定的方式描述扭曲網格,但是此揭露內容思及任何適當方式的扭曲網格。
在轉換區塊300的界線比較區塊330中,後置彎曲的光束被投射到場景中,並且判斷對應於所述光束的塊是否交叉在所述場景中的一表面。在特定的實施例中,由控制區塊200從主要的成像構件120接收到的表面可以利用一陳述的邊界或是邊界函數(例如,在觀察空間中針對於所述表面的一角落的最小的x及y座標,在觀察空間中針對於相對的角落的最大的x及y座標)來指明所述表面的尺寸及位置。針對於每一個表面的邊界資訊可以藉由控制器區塊200而被預先計算,並且可被儲存在轉換區塊300的一邊界記憶體335中。為了判斷一塊是否交叉一表面,所述光束可以橫越所述表面被設置在其中的觀察空間。在特定的實施例中,每一個光束可以一個接著一個地對照每一個表面而被測試,以判斷其個別的邊界是否交叉。在特定的實施例中,所述場景的表面可以用一深度的方式來加以儲存,其中較靠近觀點的表面被優先設定在一資料結構中,因而與較靠近的表面的交叉可以先被測試。當光束通過場景時,每一個表面的邊界可以相較於所投影的光束的邊界。其它在執行此邊界比較上的效率可被利用。若一光束被判斷為並未交叉任何表面,則所述光束可被拋棄,並且對應的塊可以是和一預設的值或是一同樣指出的旗標相關的。所述預設的值可以是一指定的背景紋理、一實心的色彩、無色、任何其它適當的預設值、或是其之任意組合。若一塊被判斷為已經交叉一表面,則所述塊-表面的對(例如,一用於所述塊的識別符以及一用於所述表面的識別符)被傳遞至所述轉換引擎340。所述塊-表面的對以及所述交叉點的座標可以在所述觀察空間座標系統中予以指明。
所述轉換區塊300的轉換引擎340將在一塊-表面的對中的塊的座標從一觀察座標空間(例如,相對於觀看者的3D座標空間)轉換至所述表面的紋理座標空間(例如,在所述紋理之內的2D座標空間)。在一成像管線中的座標的通常的理解中,所述轉換引擎340利用被儲存在轉換記憶體345中的座標空間資訊以將所述塊交叉所述表面之處的座標從所述觀察空間(例如,(x, y)座標)轉換成為所述表面的紋理的(u, v)座標。例如,所述轉換引擎340可以將所述塊的四個角落轉換成為表面的座標空間。在某些實施例中,所述轉換引擎340可以直接計算所述轉換。和所述塊-表面的對395相關的資料接著被傳遞至個別的像素區塊400。在傳遞所述塊-表面的對至像素區塊400中,所述轉換區塊300亦可以傳遞額外的參數,其包含從(x, y)座標至(u, v)座標的轉換值(包含差值)、在紋理空間中用於具有其它色彩的光束的交叉位置的偏移值(例如,若絕對的(u, v)座標是被指明用於綠色成分,則有關相對於綠色定義的用於紅色的u及v偏移及/或用於藍色的u及v偏移的額外的資訊亦可以被傳送)、一指出一列的所有塊都已經處理的列結束旗標、任何其它適當的參數、或是其之任意組合。儘管此揭露內容以一特定的方式描述座標轉換,但是此揭露內容思及任何適當方式的座標轉換。
一像素區塊400可以從轉換區塊300接收所述塊-表面的對395,並且執行在每一塊之內的樣本位置的雙線性內插,以決定用於在所述塊中的每一個像素的像素色彩值。一範例的像素區塊400的架構被展示在圖5中。所述像素區塊400可包含一緩衝器管理器410,其接收資料並且排程雙線性內插。所述像素區塊可以進一步對於所述色彩值的每一個成分包含一彩色濾波器區塊,例如是一紅色濾波器區塊420、一綠色濾波器區塊430、以及一藍色濾波器區塊440。所述三個色彩成分(至少)由於色像差的可能性而可以個別地加以處理。在圖5所示的範例的像素區塊中,所述緩衝器管理器410可以藉由參照特定的記憶體位址來發出讀取請求415至紋理元素記憶體220。所述紋理元素記憶體220可以分別載入對應的資料(例如,以每一時脈週期的256位元的單位,其對應於每一個在尺寸上16位元的16個紋理元素)到所述濾波器區塊420、430、440的紋理元素緩衝器422、432、442。在特定的實施例中,所述濾波器區塊可以選配地從紋理元素記憶體220、或是像素區塊400的未顯示在圖5中的其它構件讀取。
在圖5的像素區塊中,所述緩衝器管理器410可以從轉換區塊300接收塊-表面的對395,其指出與一塊交叉的表面。在排程用於內插的樣本之前,所述緩衝器管理器410可以載入相關的表面資料(亦即,來自紋理元素記憶體220的其紋理元素陣列的相關的部分及色彩頻道)在紅色濾波器區塊420、綠色濾波器區塊430、以及藍色濾波器區塊440的每一個之內的緩衝器中。所述緩衝器管理器410可以藉由針對於每一個色彩成分計算在紋理空間中的一包含如同藉由轉換區塊300所判斷的在被投影的塊以及表面之間的交叉的保守邊界框,來判斷哪一個紋理元素陣列是相關的。這些邊界框接著被用來判斷所述表面的紋理元素陣列的哪個部分將會是所述三個濾波器區塊420、430、440的任一個所需的。所述緩衝器管理器410藉由參照適當的記憶體位址415來從紋理元素記憶體220請求所述表面的紋理元素陣列的所需的部分。所述紋理元素記憶體220載入所需的部分到相關的濾波器區塊的紋理元素緩衝器422、432、442中。在特定的實施例中,被載入紋理元素緩衝器422、432、442的資料的所需的部分將會是足以決定(例如,經由雙線性內插)用於在所述塊之內的每一個樣本位置的色彩。例如,和32x32紋理元素相關的適當的色彩資料將會被載入對應的彩色濾波器區塊420、430、440中。
根據包含色像差的某些失真,所述緩衝器管理器410可能需要對於紋理元素記憶體220進行一或多個個別的請求,以滿足濾波器區塊420、430、440的需求。在一具有最小色像差的情形中,對於紋理元素記憶體220的單一讀取請求(例如,具有一256位元的字,其對應於16紋理元素的16位元的色彩資訊)可被所有三個濾波器區塊420、430、440使用(例如,所讀取的資料可以平行被載入其個別的緩衝器中)。在具有大色像差(例如,超過16個像素)的情形中,所述緩衝器管理器410根據其需求而可能需要請求個別組的紋理元素陣列以用於濾波器區塊420、430、440(例如,緩衝器管理器410對於三個濾波器區塊可能需要分別執行三個個別的讀取請求)。因此,色像差可能在所需從紋理元素記憶體220的讀取頻寬上造成高達三倍的變異。因為所述轉換區塊300的光線投射器310交錯具有一預測的高色像差的塊(例如,沿著螢幕的邊緣)以及具有一預測的低色像差的塊(例如,接近螢幕中心的塊),因而此變化受到控制,並且紋理元素記憶體220及像素區塊400的頻寬需求被平均或是載入平衡的。此於是降低為了保持像素區塊400忙碌而所需的記憶體頻寬。儘管此揭露內容以一特定的方式描述一緩衝器管理器,但是此揭露內容思及任何適當的緩衝器管理器。
在特定的實施例中,針對於一給定的塊-表面的對,所述緩衝器管理器410可以在容許濾波開始之前,載入針對於在所述塊中的每一個樣本位置所必要的表面資料的部分。在特定的實施例中,此可以藉由在處理所述塊-表面的對中的樣本之前,載入針對於一塊所需的所有紋理元素來加以完成。一用於如此完成的範例的過程可以是如下的。給定和一塊-表面的對相關的資料,所述像素區塊400可以針對於每一個色彩成分的被投影的塊在紋理空間中交叉所述表面之處來計算保守邊界框。一旦在所有三個紋理元素緩衝器422、432、442中有可利用的空間後,所述緩衝器管理器410可以對於紋理元素記憶體220發出一讀取請求以獲得判斷在所述塊(例如,16x16樣本)之內的樣本位置的色彩值所需的紋理元素資料。在特定的實施例中,在一邊界框之內所需的資料(例如,32x32紋理元素)可以透過成組的4x4紋理元素的順序的讀取來加以獲得。每一組擷取的4x4紋理元素接著可被載入每一個需要所述特定組的4x4紋理元素以用於色彩取樣的濾波器區塊的紋理元素緩衝器中。
用於每一塊的色彩取樣可以藉由一樣本步進器(stepper)區塊來管理。根據來自轉換區塊300的塊-表面的資料395,所述樣本步進器區塊可以判斷針對於一特定的色彩(例如,綠色)的一投影的塊的角落交叉所述表面之處的(u, v)紋理座標。在所述投影的塊的涵蓋區之內(如同藉由其角落的(u, v)座標所界定的),所述樣本步進器可以決定多個(例如,16x16)樣本位置(在(u, v)紋理空間中指明)在所述塊之內藉由在所述角落座標上施加內插(例如,增量雙線性內插,因而在紋理座標空間中的彎曲投影的塊並不需要是一平行四邊形)。所述樣本步進器接著可以走過所述16x16樣本,發出針對於2x2的樣本區塊(其對應於在螢幕空間中的2x2的像素區塊)的濾波器命令。所述四個的樣本可以平行被濾波。用於每一個樣本的濾波可以利用雙線性內插或點取樣來加以執行。
在特定的實施例中,所述紅色濾波器區塊420可以利用在其內部的緩衝器中所儲存的表面及塊資料來執行雙線性內插。對應於所述表面的紋理元素陣列可以從所述紋理元素記憶體接收到,並且被儲存在一或多個紋理元素緩衝器422中。所述紋理元素緩衝器422可以藉由移位相關的(u, v)座標的值來劃分在紋理元素陣列中的紋理元素。所述紋理元素資料可被儲存在紋理元素記憶體220中,使得從紋理元素記憶體220的一讀取當被寫入一紋理元素緩衝器422時,其使得所述紋理元素資料被劃分成為對齊的紋理元素區塊。所述紋理元素資料於是被儲存在每一個紋理元素緩衝器422中,以提供任意區塊的對齊的紋理元素以用於內插。四個對齊的像素位置可以藉由從一或多個像素緩衝器424取樣來平行地取樣。所述像素緩衝器424在紋理空間(例如,(u, v)座標)中,從所述塊產生一2x2的樣本位置區塊。所述紋理元素緩衝器422以及像素緩衝器424被用來執行雙線性內插。所述雙線性內插可以產生一2x2的紅色像素色彩值區塊427,其被提供作為像素輸出595的部分至所述顯示區塊500。
在特定的實施例中,額外的策略可被採用以優於品質來最佳化速度或是降低的功率消耗(例如,利用單點取樣來取代雙線性內插)。其它針對於雙線性內插的最佳化亦被思及。例如,所述緩衝器管理器410可以利用子塊(藉由轉換區塊300所供應)來判斷一塊位置並未交叉一表面,並且因此在所述位置沒有雙線性內插是所需的。所述紅色濾波器區塊420輸出所產生的像素色彩值427至一用於顯示區塊500的指定的記憶體位置。所述綠色濾波器區塊430以及藍色濾波器區塊440用實質相同的方式來運作,其藉由在用於其個別的色彩頻道之個別的紋理元素緩衝器432及442中所儲存的紋理元素值上運算,其中相同的像素值被儲存在個別的像素緩衝器434及444中。所述綠色濾波器區塊430可以輸出綠色像素色彩值437至顯示區塊500。所述藍色濾波器區塊440可以輸出藍色像素色彩值447至顯示區塊500。所述緩衝器管理器410可以支援資訊(例如是alpha色彩頻道值)在濾波器區塊之間的共用,以減少從紋理元素記憶體220的讀取。儘管此揭露內容以一特定的方式描述雙線性內插,但是此揭露內容思及任何適當方式的雙線性內插。
在特定的實施例中,一眼睛-追蹤器可以透過控制區塊200來報告使用者的焦點或凝視點給顯示引擎150。像素區塊400可以利用此資訊以在一比遠離使用者的焦點的像素色彩值更大的保真度之下,產生對應於使用者的焦點的像素色彩值。此技術以注視點成像(foveated rendering)著稱的。注視點成像容許顯示引擎150能夠優先化使用者較可能注意到的像素位置,此節省成像時間、能量成本、以及熱的產生、以及其它因素,此優於在相同程度的保真度下成像每一個像素色彩值。所述像素區塊400可以根據正被執行的注視點成像的類型來產生多個種類的注視點模式。例如,一個此種模式可被稱為一注視點環,其中在從焦點遠離移動的像素位置有顯著的品質轉變點。所述像素區塊可以內插在這些環之間所需的品質位準。所述像素區塊可以用一8位元的注視點模式450來輸出所產生的模式至顯示區塊,並且可以在一注視點模式記憶體525中儲存所述模式。儘管此揭露內容以一特定的方式描述注視點成像,但是此揭露內容思及以任何適當方式的注視點成像。
在特定的實施例中,所述顯示區塊500可以從像素區塊400接收像素色彩值495(例如,在一塊緩衝器中累積的)、施加一或多個亮度校正至像素色彩值495、以及準備像素色彩值495以用於輸出至一顯示器170。當所述像素色彩值495被顯示區塊500接收時,它們可以用塊階來接收的,例如是2x2區塊的對齊的紅色、綠色及藍色色彩值。這是因為所述像素區塊400可以在移動到下一塊之前,依序地輸出在一塊中(其可包含16x16像素)的用於2x2像素的像素色彩。為了輸出像素色彩值495以供顯示器170(其可以是一掃描顯示器)使用,所述像素色彩值495可以用掃描線階來讀出。顯示區塊500亦可以施加一或多個亮度校正至像素色彩值495,以進一步改善顯示器品質。一範例的顯示區塊500的架構被展示在圖6中。
在準備用於顯示的像素色彩值495中的第一步驟是儲存從像素區塊400接收到的像素色彩資料495在一系列的列緩衝器500中。所述列緩衝器500包含一像素緩衝器記憶體510、一字及塊元資料記憶體515、以及一注視點模式記憶體525。所述像素緩衝器記憶體510保存用於顯示器170的整個寬度的兩列的塊。例如,在其中每一塊是16x16像素並且顯示器是2560像素寬的一配置中,像素緩衝器記憶體510將會保存32x2560像素。所述像素緩衝器記憶體510的配置可以根據顯示器170的特定的掃描線方向而改變,例如若掃描線方向是垂直的並且高1440像素,則所述像素緩衝器記憶體可以保存1440x32像素。在像素緩衝器記憶體510中的每一個像素可以藉由36位元的色彩值來加以表示(例如,12位元的值用於紅色、綠色及藍色的色彩頻道)。在特定的實施例中,所述像素緩衝器記憶體510可以儲存藉由像素區塊400計算出的全彩的精確度。在特定的實施例中,像素緩衝器記憶體510可以使用例如是感知編碼的壓縮,以降低所述像素緩衝器記憶體510的記憶體需求。列緩衝器505可包括一字及塊元資料記憶體515。所述元資料記憶體515可以將從像素區塊400接收到的元資料儲存在像素色彩值495中、或是做為一個別的輸出。所述元資料可以指出並未被像素區塊400寫入的像素區塊、或是並不包含色彩值的塊(例如,因為從所述塊投射的光束並未交叉任何表面),此可以降低被浪費的頻寬及/或在並不需要被顯示的像素上的計算,因為沒有像素色彩值被產生。列緩衝器505亦可包含一注視點模式記憶體525,其儲存藉由像素區塊400產生並且和在像素緩衝器記憶體510中的一塊相關的8位元的注視點模式450。
在特定的實施例中,列緩衝器505可包括一雙緩衝器,其被配置以分別儲存兩列的塊(例如,每一塊代表16x16像素)、相關的元資料、以及注視點模式。像素區塊400可以寫入一緩衝器,同時在另一緩衝器中的像素正被輸出至顯示器170。當輸出完成時(例如,在目前的輸出緩衝器中的所有像素都已經輸出),顯示區塊500可以交換所述兩個緩衝器的角色。例如,先前用於輸出像素的緩衝器現在將會被寫入,而先前用於接收新的像素資料的另一緩衝器將會輸出那些像素至所述顯示器。
在特定的實施例中,像素色彩值495是從像素區塊400(例如,在一塊緩衝器中累積的)以2x2的對齊的像素區塊接收到的。顯示區塊500合併成對的對齊的2x2區塊成為單一4x4寫入到像素緩衝器記憶體510中。當來自像素區塊400有2x2四個的高處理量時,它們通常是呈對齊的對。此容許單一記憶體存取埠能夠被使用於讀取及寫入。
在像素緩衝器記憶體510中的記憶體可被配置成使得資料可以用塊階被寫入,並且用列階讀出。像素色彩資料是從所述像素緩衝器記憶體,藉由用八乘一像素而被讀取到亮度校正區塊540中。像素緩衝器記憶體510可以被組織成為兩個庫:庫A及庫B。在偶數列上,庫A儲存前四個像素,接著是四個像素在庫B中,依此類推。在奇數列上,前四個像素被儲存在庫B中,接著是四個像素在庫A中,依此類推。所述結果是每一對齊的4x2寫入以及每一對齊的8x1讀取都從庫A存取4x1像素、以及從庫B存取4x1像素。此記憶體寫入及讀取模式使得像素緩衝器記憶體510轉換塊階的寫入成為列階的讀取。儘管此揭露內容以一特定的方式描述轉換像素順序,但是此揭露內容思及以任何適當方式來轉換像素色彩順序。
像素排序器530可以從元資料記憶體515讀取塊有效性的資料。像素排序器530可以判斷從像素緩衝器記憶體510讀取的像素色彩值的順序。在特定的實施例中,像素排序器530可以使得8x1像素被讀取至亮度校正區塊540以用於處理。所述8x1像素可以每一時脈週期讀取兩個像素(例如,若每一個像素具有三個12位元的色彩頻道的資料,則每一時脈週期將會讀取72位元),此表示總數四個時脈週期可被使用於8x1像素以被讀取到亮度校正區塊540中。
在特定的實施例中,像素排序器530可以運作在一像素導向的模式中。在此模式中,所有的像素都是從像素緩衝器記憶體510讀取的,並且被傳送至亮度校正區塊540。在此像素導向的模式中,像素排序器530使得十六個像素色彩值的區塊交替地從像素緩衝器記憶體510中的兩個不同的位置讀取。最初,像素排序器530使得十六個像素色彩值從在一列的開始的塊被讀取到亮度校正區塊540中。接著是使得來自開始在所述列的中間的塊的十六個像素色彩值被讀取。其依序地交替這兩個開始位置,直到整個列已經被讀取為止。所述像素導向的模式可以使用此順序來考量由用於一掃描顯示裝置的顯示器170所用的像素色彩值載入模式。
在特定的實施例中,像素排序器530可以運作在一塊導向的模式中。在此模式中,所述像素排序器從字及塊元資料記憶體515讀取對應於從像素緩衝器記憶體510讀取的像素色彩值的塊有效性的元資料,並且只使得對應於根據所述元資料而已經被標記有效的塊的像素色彩值被讀取到亮度校正區塊540中。在特定的實施例中,所述字及塊元資料記憶體515可以指明特定的記憶體位址來儲存針對於在一列之內的塊的塊有效性的位元。例如,在其中每一塊是16x16像素,並且顯示器是2560像素寬的一配置中,在一列中將會有160塊。就此而論,所述元資料記憶體515可以指明160位元來指出其對應的塊是否有效的。所述160塊有效性的位元可以在被儲存於其中的位元被讀出時清除(例如,具有“假”或“0”的二進位值)。每一個塊有效性的位元接著可以在任何對應於和所述塊有效性的位元相關的塊的像素資料被寫入像素緩衝器記憶體510時被設定為“有效的”(例如,“真”或“1”的二進位值)。例如,若一2x2像素區塊是和在所述列的160塊中的第10塊相關的,則對應的塊有效性的位元將會在所述2x2像素區塊被寫入像素緩衝器記憶體510時被設定為“真”。若針對於一塊並沒有像素資料被載入像素緩衝器記憶體510中,則用於所述塊的塊有效性的位元將會保持其“假”值。
在特定的實施例中,像素排序器530可以一次處理一列的像素資料。在一列的塊(例如,160塊)已經被載入像素緩衝器記憶體510中之後,像素排序器530可以用從一列的塊的開始到結束的順序讀取所有的元資料,例如是分別被儲存在字及塊元資料記憶體515以及注視點模式記憶體525中的塊有效性及注視點模式資料。這些值被組合且傳送至像素輸出區塊550,因而下游的裝置(例如,一顯示器170及/或一現場可程式化閘陣列)將會知道哪些塊是有效或無效的,並且依此組織進入的像素值。例如,若像素輸出區塊550被配置以每一時脈傳送72位元(例如,因而每一時脈可以傳送價值兩個像素的資料),則像素排序器530可以組合針對於八個塊的元資料(例如,其中每一塊有9位元的元資料,其包含用於塊有效性的1位元、以及8位元的注視點模式),並且指示像素輸出區塊550以傳送組合的資料至顯示器170或是其它下游的裝置。像素排序器530可以重複所述過程,直到針對於所有160塊的元資料都已經被傳送為止,因而下游的裝置知道所述160塊中的哪些是有效的,而哪些是無效的。像素排序器530接著使得像素色彩值(例如,一次兩個像素或是72位元)從像素緩衝器記憶體510被讀取到亮度校正區塊540中(例如,所述像素排序器530可以通知亮度校正區塊540從像素緩衝器記憶體510讀取哪些像素)。然而,其只有針對對應於已經被標記有效的塊的像素色彩值才如此做。在被處理之後,所述像素資料將會被輸出至下游的裝置。由於下游的裝置知道哪些塊是有效或無效的,因此其可以依此來組織進入的像素資料。例如,若塊有效性的資料指出第一塊(每一塊代表16x16像素)是無效的,而在相同列中的下一塊是有效的,則下游的裝置將會知道其接收的第一組16個像素是屬於第二塊(所述有效的塊),而不是第一塊(所述無效的塊)。儘管此揭露內容以一特定的方式描述一像素排序器,但是此揭露內容思及任何適當的像素排序器。
在像素色彩值被傳送至像素輸出區塊550之前,所述亮度校正區塊540施加一或多個亮度校正及顯示器調整至所述像素色彩值。這些顯示器調整可包含抖動、注視點、感知編碼、或是一或多個亮度校正網格以校正失真。在特定的實施例中,亮度校正網格可以針對於每一個像素色彩值包括一純量值,其是根據整個訊框、所述訊框的例如是一列或對齊的像素區塊(例如,塊)的一子區段、每一個別的像素色彩值、或是其之任意組合而被選擇以產生一最佳的色彩值。
一種類型的亮度失真是以波導校正著稱的。在特定的實施例中,用於顯示器170的透鏡,例如是在一掃描顯示器的光學系統中的透鏡可能橫跨所述透鏡的面呈現一平滑的變異。此效應亦可見於可被使用作為用於掃描顯示器的發射器的LED面板中。因此,當使用者觀看顯示器的不同區段時,所述透鏡的變異可能會在亮度上造成些微的改變,即使考量其它由眼睛移動所引入的失真也是如此。此類型的失真可以事先加以量測及校準,因為橫跨一透鏡的面的平滑的變異不太可能隨著使用而變化。然而,在包含掃描顯示裝置的特定顯示器中,熱可能會引入額外的彎曲至透鏡,其中大量的熱造成塑性變形。用以施加波導校正的亮度校正網格可以事先被計算出(例如,在一校準程序期間)、或是可以動態地在熱或任何其它效應被偵測到時被計算出。
另一種類型的亮度失真是以LED行校正著稱的。在特定的實施例中,在顯示器中的每一行的LED的亮度、或是在一掃描顯示器的發射器中的LED可能會稍微變化。換言之,當吾人垂直地橫越一顯示器時,亮度(至少是如同在此效應中所量測者)是固定的,但是當吾人水平地橫越所述顯示器時,其可能會在行與行之間變化。通常,此變異可能是難以偵測的,因為儘管許多LED面板都可能呈現此效應,但是所述LED是以相當充分的密度封裝,並且在一相當充分的距離下觀看,因此眼睛自然將亮度位準混合在一起。由於頭戴式顯示器是非常接近使用者,因而此變異可能是更容易偵測到的。因此,每一行的LED可能需要校正,使得被展示給使用者的影像遮蔽行亮度位準的變化。一種可被採用以校正其之方法是縮放每一行至最大或最小的表現值,換言之,縮放至最亮或最暗的行。此校正可以在一校準程序期間被決定,其阻止損壞LED面板,因為所述亮度變異不太可能隨著時間過去而顯著地改變。
另一種類型的亮度失真是有關LED當被供應電力及色彩指令時是如何發光的。因為所述顯示引擎是被配置以致能高的訊框更新率,因此必須仔細注意由LED的脈衝偏移所引入的延遲。LED的脈衝偏移是指從當一LED被供電到當所述LED處於最大亮度的時點的時間量。一類似的考慮是所述LED從最大亮度變化到完全被關斷所花的時間量。在某些LED中,此從關斷到最大亮度是依循一正弦曲線,但是其它模式亦被思及。在特定的實施例中,為了降低在校準所述亮度校正網格上的困難度,可以假設每一個LED具有一大致類似的脈衝偏移時間。然而,在某些實施例中,所述脈衝偏移可能是不同的,例如是根據將被顯示的特定色彩、製造差異(即使是在容限之內)、LED在顯示器中的位置、以及許多其它因素而定。然而,此亮度校正可以靜態被計算出,因為所述效應不會隨著使用而顯著地改變。
另一可能出現的亮度失真是有關於相關像素色彩值的資訊是如何加以表示的,並且明確地說是亮度值如何被儲存的。在特定的實施例中,個別的LED(或是其驅動器)可以接受達到八個位元的色彩亮度資訊,此容許在色彩亮度上有廣範圍的表現度。因為顯示引擎150是針對於快速且有效率的處理訊框以用於顯示,因此在某些實施例中,像素色彩值可能無法包含完整八個位元的色彩亮度資訊(例如,達到256個不同的亮度值)。例如,所產生的像素色彩值可能只包含五個位元的色彩亮度資訊(例如,達到32個不同的亮度值),在可能的亮度值上的87.5%的縮減。因此,一扭曲網格可能是移位所述亮度值成為可能的值的一更有細微差別的表示所需的。此網格可以被預先計算,但是可以根據像素色彩值的表示格式而變化。由於顯示引擎思及與廣範圍的表示的相容性,因此可能需要決定多個亮度校正網格,即使是用於相同訊框或列的像素也是如此。
亮度校正網格可以應用的其它效應是有關於額外的影像後置處理技術。一個此種技術是抖動。抖動牽涉到一隨機化的濾波器至一信號的施加,其意圖是平滑化所述信號的值。在影像處理中,抖動可被用來平滑化亮度及色彩飽和值。正式而言,抖動平滑化由嘗試以小量的資訊來代表色彩所引起的亮度色彩的量化。此避免某些類型的圖案顯影在影像中,例如是色彩或亮度的條帶效應。抖動亦可以改善色彩分布的平滑度。許多抖動演算法已經被設計出,並且可被體現在一亮度校正網格中。所述亮度校正網格可以根據正被製備以用於顯示的訊框(或是所述訊框的部分)而被決定。例如,對於具有一色彩多於另一色彩的顯著量的訊框、或是對於具有顯著量的類似的色彩相對於具有許多不同色彩者的訊框,不同程度的抖動可能是所需的。
另一種後置處理的校正是以sRGB或感知壓縮著稱的。人眼並非用線性的方式來體驗亮度,換言之,在兩個亮度位準之間的亮度上感受到的變異並非總是等於在亮度上實際的變異。尤其,相較於亮的色彩,人眼是較佳配備以在暗的色彩之間做區別。相關的是,為了在亮度上造成一所要的感受到的改變,人眼可能需要根據最初的亮度值而被曝露到一在實際亮度上的不同的改變。一被稱為sRGB的色彩標準指定轉換函數,其對映在相等的感知步階以及相等的線性光步階之間。此編碼容許感知上不同的強度的最大化,其可以用相同的資訊量來加以儲存。在線性光值以及sRGB值之間的轉換可以利用一離散的函數來表示,其可被編碼在一亮度校正網格中,並且施加至所有尚未以sRGB壓縮表示的像素色彩值。儘管此揭露內容以一特定的方式描述亮度校正,但是此揭露內容思及以任何適當的方式的亮度校正。
另一效應是以注視點成像著稱的。在注視點成像中,顯示引擎150可以利用實際狀況是儘管當特點是在或接近使用者的焦點或凝視點時,眼睛可以是能夠詳細地確定所述特點,但是隨著與焦點的距離減小,細節是更難以確定的。如上所論述,一眼睛追蹤器可以透過控制區塊200來報告使用者的焦點給顯示引擎150。於是,相較於遠離使用者的焦點的像素色彩值,像素區塊400可以使用此資訊以在一較大的保真度下成像對應於使用者的焦點的像素色彩值。所產生的模式可以被顯示區塊500接收,並且可被儲存在一注視點模式記憶體525中作為一注視點模式。所述注視點模式可以藉由像素區塊400直接被傳遞至顯示區塊、可以透過控制區塊200的共用的記憶體240而被傳遞、可以藉由微控制器230或某種其它構件而被計算出、或是可以用任何其它適當的方式來產生。顯示區塊500可以在像素色彩值正被製備以用於顯示時,使用所述注視點模式以進一步控制用於像素色彩值的保真度的程度。注視點成像可被用來降低被施加至對應於距離使用者的焦點較遠的像素位置的像素色彩值的亮度校正的程度。此可以用一連續的方式來加以指明,例如是藉由在注視點環之間內插品質的程度、或是用一臨界值的基礎來加以指明,例如是若一像素超出某一距離,則選擇一特定程度的成像品質。
所述亮度校正區塊540可以從一亮度網格記憶體545擷取一或多個亮度校正網格。所述亮度網格記憶體可包含一或多個藉由控制區塊200的微控制器210而被載入的亮度校正網格。所述亮度校正網格可包括針對於一16x16塊的每一個角落像素儲存的一純量亮度校正值。所述亮度校正區塊540可以利用這些角落值來內插用於內部像素的值。在特定的實施例中,所述亮度校正網格可以對於一塊或是整個顯示器的每一個像素指明一純量亮度校正值。所述亮度校正區塊540可以藉由來自所述亮度校正網格的適當的值乘以從像素緩衝器記憶體510接收到的像素色彩值,來決定像素色彩值的最終的強度。此過程可以個別地針對於每一個色彩頻道的一像素色彩值來加以執行(例如,針對於紅色色彩頻道一次、針對於綠色色彩頻道一次、以及針對於藍色色彩頻道一次)。例如,給定一亮度校正網格針對於一像素的紅色、綠色及藍色色彩頻道Pr 、Pg 、Pb 指明亮度校正值Br 、Bg 、Bb ,用於紅色頻道的最終的像素色彩值Pr’可以藉由所述方程式Pr ’=Pr ×Br 來找出。綠色及藍色色彩頻道可以藉由一類似的方法來找出。此揭露內容思及給定一亮度校正網格及像素色彩值之下,任何適當用於決定最終的像素色彩值的方法。
在所述亮度校正網格被施加之後,所產生的像素色彩值被傳送至像素輸出區塊550。像素輸出區塊550可以根據一顯示器模式來傳送所述像素色彩值至顯示器170、用於所述顯示器的驅動程式、或是視需要的額外的構件。舉例而言,像素輸出區塊550可以用一特定的順序來傳送像素色彩值,以使得一掃描顯示裝置的操作變得容易。在此模式中,像素輸出區塊550可以從上移動到下在每一列完成時,首先傳送對應於顯示器的左邊緣到顯示器的中心的像素色彩值,接著是對應於顯示器的右邊緣到所述中心的像素色彩值。任何其它適當的顯示器模式亦被思及。作為另一例子的是,像素輸出區塊550可以用一特定的格式來傳送像素色彩值,以使得額外的構件的操作變得容易。像素輸出區塊550可以傳送一標頭,其後具有描述對應於像素色彩值的塊的資訊。像素輸出區塊550可以支援如同顯示器170或其它構件的需求可以主宰的各種像素色彩值格式化的選項。所述額外的構件可包括一個別的晶片,其被用來自訂後端色彩處理或是支援一較廣的介面至所述顯示器以最佳化顯示器速度或保真度。儘管此揭露內容以一特定的方式描述輸出像素,但是此揭露內容思及以任何適當的方式來輸出像素。
圖9是描繪一種用於利用一人工實境系統100的一顯示引擎150來產生圖形之範例的方法900。所述方法可以開始在步驟910,其中一顯示引擎150的一控制區塊200可以從一主要的成像構件120接收一或多個表面。所述表面可以是物件圖元,其是從利用3D模型成像的2D影像(例如,利用多邊形為基礎的成像技術)並且從一特定的觀點(例如,在時間t0 的使用者的觀點)產生的,其指明針對於在一人工實境場景中的所述表面的位置資料及紋理資料。所述控制區塊200可以經由一記憶體控制器來載入所述表面紋理資料(例如,一或多個紋理元素陣列)到一紋理元素記憶體220中。所述控制區塊200可以接收其它圖形產生的控制資料,並且在一共用的記憶體240中儲存所述資料。控制區塊200可以開始藉由顯示引擎150的圖形產生。在步驟930,顯示引擎150的一轉換區塊300可以判斷塊-表面的對,其對應於一顯示器170的一或多個像素的一光線(或光束)以及一表面的交叉。轉換區塊300可以利用針對於一陣列(“塊”)的對齊的像素所產生的光束來執行光線投射。所述光線可以從使用者的一更新的目前的觀點(例如,在以上提及的時間t0 之後的時間t1 )來加以投射。轉換區塊300可以藉由投射一光束到人工實境場景中並且判斷所述光束是否交叉一表面來判斷表面的可視度。轉換區塊300可以準備塊-表面的對以供一像素區塊400的使用。在步驟940,顯示引擎150的一像素區塊400可以利用在所述塊-表面的對中的表面的表面紋理資料來產生用於一顯示器170的像素的像素色彩值。像素區塊400可以擷取和所述表面相關的塊陣列的對齊的紋理元素。像素區塊400可以將那些紋理元素關聯到特定的像素值,並且在所述紋理元素色彩值上執行雙線性內插以決定像素色彩值。在步驟950,顯示引擎150的一顯示區塊500可以針對於一顯示器170的每一個像素產生像素輸出值。顯示區塊500可以視顯示器170需要地重新排序所述像素色彩值。在步驟960,顯示引擎150可以透過一顯示器170(例如一掃描顯示器)來提供所述輸出像素值以用於顯示給一使用者。在步驟970,顯示引擎150的控制區塊200可以判斷其是否已經從主要的成像構件120接收到更新的表面。若沒有,則控制區塊200可以使得顯示引擎150返回步驟930,並且利用舊的表面資料(例如,和時間t0 相關的),但是利用目前的使用者觀點來重複所述圖形產生。例如,所述控制區塊200可以接收需要塊-表面的對、像素色彩值、以及像素輸出的重新計算的使用者觀點或是位置資訊。此過程可以重複直到一新的表面被接收到(例如,在數個訊框已經從和時間t0 相關的表面加以產生之後的時間tn )為止。在一新的表面被接收到之後,控制區塊200可以使得顯示引擎150返回步驟910,並且利用所述更新的表面資料而再次處於所述圖形產生過程。特定實施例在適當情況可以重複圖9的方法的一或多個步驟。儘管此揭露內容描述且描繪圖9的方法的特定的步驟以一特定的順序來發生,但是此揭露內容思及圖9的方法的任何適當的步驟以任何適當的順序來發生。再者,儘管此揭露內容描述且描繪實行圖9的方法的特定的步驟之特定的構件、裝置或系統,但是此揭露內容思及實行圖9的方法的任何適當的步驟的任何適當的構件、裝置或系統的任何適當的組合。
圖10描繪一種用於利用一顯示引擎150來判斷在一虛擬的場景中的表面的可視度之範例的方法1000。所述方法可以開始在步驟1010,其中所述顯示引擎150的一轉換區塊300的一光線投射器310可以準備一或多個對應於一顯示器170的陣列(“塊”)的對齊的像素之光線。例如,光線投射器310可以準備對應於一塊的一或多個像素或一塊的四個角落的光束、或是對應於整個塊的單一光線。在步驟1020,光線投射器310可以投射所述光線到包含一或多個表面的一人工實境場景中。光線投射器310可以透過對應於一顯示器170的一螢幕,在一使用者的觀點開始來投射光線。在步驟1030,所述轉換區塊300的一彎曲區塊320可以施加一或多個扭曲網格至每一個投射光線,以指明個別的光線進入到虛擬的場景中的軌跡。所述扭曲網格可被配置以校正可能由於顯示器170的製造或設計而發生的一或多個幾何失真。所述扭曲網格可包含被儲存在一彎曲記憶體325或是一共用的記憶體240中的查看表,其指出所述光線應該體驗到的扭曲程度。所述扭曲網格可以針對於一光束的角落光線指明扭曲程度。所述扭曲網格可以針對於和一特定的色彩頻道相關的光線指明扭曲程度、以及針對於其它色彩頻道的一偏移。在步驟1040,所述轉換區塊300的一界線比較區塊330可以判斷每一投射光束是否交叉在人工實境場景中的一表面。所述界線比較區塊330可以比較針對於所述塊的藉由所述光束來加以表示的一邊界框與針對於所述表面的一邊界框。若所述光束並未交叉一表面(例如,其邊界框並未交叉),則在步驟1050所述轉換區塊300可以拋棄和所述光束相關的塊(例如,並不處理用於所拋棄的塊的像素值)。若所述光束確實交叉一表面,則在步驟1060所述界線比較區塊330可以將被交叉的表面關聯到藉由所述光束表示的塊。所述界線比較區塊330可以判斷所述交叉的位置。在步驟1070,所述轉換區塊300的一轉換引擎340可以轉換所述交叉的位置,從一觀察空間座標系統至所述塊-表面的對的表面的紋理的座標系統。特定實施例在適當情況可以重複圖10的方法的一或多個步驟。儘管此揭露內容描述且描繪圖10的方法的特定的步驟以一特定的順序來發生,但是此揭露內容思及圖10的方法的任何適當的步驟以任何適當的順序來發生。再者,儘管此揭露內容描述且描繪一種用於判斷在一虛擬的場景中的表面的可視度之範例的方法包含圖10的方法的特定的步驟,但是此揭露內容思及用於判斷在一虛擬的場景中的表面的可視度之任何適當的方法在適當情況包含任何適當的步驟,其可包含圖10的方法的步驟的全部、一些、或是全無。再者,儘管此揭露內容描述且描繪實行圖10的方法的特定的步驟之特定的構件、裝置或系統,但是此揭露內容思及實行圖10的方法的任何適當的步驟的任何適當的構件、裝置或系統的任何適當的組合。
圖11描繪一種用於準備供藉由一顯示引擎150輸出的像素色彩值之範例的方法1100。所述方法可以開始在步驟1110,其中所述顯示引擎150的一顯示區塊500可以接收像素色彩值。例如,所述顯示區塊500可以從所述顯示引擎150的一像素區塊400接收像素色彩值。在步驟1120,所述顯示區塊500可以載入所述像素色彩值到一或多個列緩衝器505中。在特定的實施例中,所述顯示區塊500可以載入所述像素色彩值到一雙列的像素緩衝器記憶體510中。所述顯示區塊500可以寫入和所述像素色彩值相關的額外的資料到相關的雙列的緩衝器,例如視一字及塊元資料記憶體515以及一注視點模式記憶體525中。當所述值被載入到所述列緩衝器505中,它們可能是塊階的(例如,所述值仍然反映一16x16對齊的像素)。在步驟1130,像素色彩值(以及選配的是其它相關的資料)可以用一掃描線導向的順序,從所述列緩衝器505加以讀取。所述顯示器170可以是一掃描顯示器,其需要像素色彩值以一特定的模式(例如,逐像素列地)被呈現,而不是以單一訊框全部一起呈現。所述像素色彩值可以用一種反映此模式(例如,在前進至下一列之前,讀取在一列上的所有像素色彩值)的方式而被讀取。在步驟1140,所述像素排序器530可以判斷哪一種像素定序模式正被使用。所述像素定序模式可以決定有關像素色彩值應該如何被呈現至顯示器170的額外的細節。若所述像素定序模式是一像素導向的模式,則在步驟1150,所述像素排序器530可以使得用於一顯示器的所有的像素的值都被讀入一亮度校正區塊540中,而不論是否有一有效的相關的像素色彩值。若所述像素定序模式是一塊導向的模式,則在步驟1160,所述像素排序器可以從塊元資料記憶體515讀取塊元資料,並且決定被載入列緩衝器505中的每一塊是否包含有效的像素色彩值。若一給定的塊欠缺有效的像素色彩值,則所述像素排序器530可以在從像素記憶體510讀取所述像素時跳過所述塊的像素。
在步驟1170,所述像素排序器530可以使得用於將藉由顯示區塊500輸出的像素(例如,和有效的塊相關的像素)的像素色彩值被讀取到所述顯示區塊500的一亮度校正區塊540中。所述亮度校正區塊540可以施加一或多個亮度校正網格至所述像素色彩值。所述亮度校正網格可以是被儲存在一亮度網格記憶體545中的陣列或查看表,其包含用於一塊(或是所述顯示器)的一或多個像素的一純量值,其被選擇以調整所述像素至一最佳的亮度。例如,一亮度校正網格可以指明用於一塊的角落像素的亮度校正值。所述亮度校正區塊540接著可以在一塊的內部像素被讀取到所述亮度校正區塊540中時,內插將施加至它們的亮度校正值。所述亮度校正網格可以用一色彩頻道的基礎來指明值(例如,一值用於一像素色彩值的紅色頻道、一值用於綠色頻道、以及一值用於藍色頻道)。所述亮度校正區塊540可以對於每一個頻道施加所述亮度校正值。為了施加用於一像素的亮度校正值,所述亮度校正區塊540可以將像素色彩值乘以所述亮度校正值。所產生的像素色彩是所述像素輸出值。所述亮度校正區塊540可以傳送所述像素輸出值至像素輸出區塊550。在步驟1180,所述像素輸出區塊550可以完成所述像素輸出值,並且提供所述像素色彩值至顯示器170。特定實施例在適當情況可以重複圖11的方法的一或多個步驟。儘管此揭露內容描述且描繪圖11的方法的特定的步驟以一特定的順序來發生,但是此揭露內容思及圖11的方法的任何適當的步驟以任何適當的順序來發生。再者,儘管此揭露內容描述且描繪一種用於準備用於輸出的像素色彩值之範例的方法包含圖11的方法的特定的步驟,但是此揭露內容思及用於準備用於輸出的像素色彩值的任何適當的方法包含任何適當的步驟,其在適當情況可包含圖11的方法的步驟的全部、一些、或是全無。再者,儘管此揭露內容描述且描繪實行圖11的方法的特定的步驟之特定的構件、裝置或系統,但是此揭露內容思及實行圖11的方法的任何適當的步驟的任何適當的構件、裝置或系統的任何適當的組合。
圖12描繪一範例的電腦系統1200。在特定的實施例中,一或多個電腦系統1200執行一或多種在此敘述或描繪的方法的一或多個步驟。在特定的實施例中,一或多個電腦系統1200提供在此敘述或描繪的功能。在特定的實施例中,在一或多個電腦系統1200上執行的軟體執行一或多種在此敘述或描繪的方法的一或多個步驟、或是提供在此敘述或描繪的功能。特定實施例包含一或多個電腦系統1200的一或多個部分。在此,對於一電腦系統的參照在適當情況可以涵蓋一計算裝置,並且反之亦然。再者,對於一電腦系統的參照在適當情況可以涵蓋一或多個電腦系統。
此揭露內容思及任何適當數量的電腦系統1200。此揭露內容思及具有任何適當實體形式的電腦系統1200。舉例且非限制性的,電腦系統1200可以是一內嵌式電腦系統、一系統單晶片(SOC)、單板電腦系統(SBC)(例如,一模組化電腦(COM)或模組化系統(SOM))、一桌上型電腦系統、一膝上型或筆記型電腦系統、一互動資訊站(interactive kiosk)、一大型計算機、一電腦系統網格、一行動電話、一個人數位助理(PDA)、一伺服器、一平板電腦系統、一擴增/虛擬實境裝置、或是這些中的兩個或多個的一組合。在適當情形中,電腦系統1200可包含一或多個電腦系統1200;為一體的或分散的;橫跨多個位置;橫跨多個機器;橫跨多個資料中心;或是存在於雲端中,其可包含在一或多個網路中的一或多個雲端構件。在適當情形中,一或多個電腦系統1200可以在無實質的空間或時間的限制下執行一或多種在此敘述或描繪的方法的一或多個步驟。舉例且非限制性的,一或多個電腦系統1200可以即時地或是以批次模式來執行一或多種在此敘述或描繪的方法的一或多個步驟。在適當情況,一或多個電腦系統1200可以在不同的時間或是在不同的位置執行一或多種在此敘述或描繪的方法的一或多個步驟。
在特定的實施例中,電腦系統1200包含一處理器1202、記憶體1204、儲存器1206、一輸入/輸出(I/O)介面1208、一通訊介面1210、以及一匯流排1212。儘管此揭露內容描述且描繪一特定的電腦系統具有在一特定配置下的一特定數量的特定構件,但是此揭露內容思及具有在任何適當的配置下的任何適當數量的任何適當的構件之任何適當的電腦系統。
在特定的實施例中,處理器1202包含用於執行例如是那些構成一電腦程式的指令的硬體。舉例且非限制性的,為了執行指令,處理器1202可以從一內部的暫存器、一內部的快取、記憶體1204、或是儲存器1206擷取(或提取)所述指令;解碼及執行它們;並且接著將一或多個結果寫入到一內部的暫存器、一內部的快取、記憶體1204、或是儲存器1206。在特定的實施例中,處理器1202可包含用於資料、指令、或位址的一或多個內部的快取。此揭露內容思及處理器1202在適當情況包含任何適當數量的任何適當的內部的快取。舉例且非限制性的,處理器1202可包含一或多個指令快取、一或多個資料快取、以及一或多個轉譯後備緩衝器(TLB)。在所述指令快取中的指令可以是在記憶體1204或儲存器1206中的指令的副本,並且所述指令快取可以加速那些指令藉由處理器1202的取出。在所述資料快取中的資料可以是資料在記憶體1204或儲存器1206中的副本,以供在處理器1202執行的指令在其上運算;在處理器1202執行的先前的指令的結果,以供藉由在處理器1202執行的後續的指令存取、或是用於寫入到記憶體1204或儲存器1206;或是其它適當的資料。所述資料快取可以加速藉由處理器1202的讀取或寫入的操作。所述TLB可以加速用於處理器1202的虛擬位址的轉譯。在特定的實施例中,處理器1202可包含一或多個用於資料、指令、或位址的內部的暫存器。此揭露內容思及處理器1202在適當情況包含任何適當數量的任何適當的內部的暫存器。在適當情形中,處理器1202可包含一或多個算術邏輯單元(ALU);是一多核心的處理器;或是包含一或多個處理器1202。儘管此揭露內容描述且描繪一特定的處理器,但此揭露內容思及任何適當的處理器。
在特定的實施例中,記憶體1204包含主要記憶體以用於儲存供處理器1202執行的指令、或是供處理器1202在其上運算的資料。舉例且非限制性的,電腦系統1200可以從儲存器1206或是另一來源(例如,另一電腦系統1200)載入指令到記憶體1204。處理器1202接著可以從記憶體1204載入所述指令到一內部的暫存器或是內部的快取。為了執行所述指令,處理器1202可以從所述內部的暫存器或內部的快取擷取所述指令,並且解碼它們。在所述指令的執行期間或是之後,處理器1202可以寫入一或多個結果(其可以是中間或最終的結果)至所述內部的暫存器或是內部的快取。處理器1202接著可以將那些結果中的一或多個寫入到記憶體1204。在特定的實施例中,處理器1202只執行在一或多個內部的暫存器或內部的快取中、或是在記憶體1204中的指令(相對於儲存器1206或是在別處)、並且只在一或多個內部的暫存器或內部的快取中、或是在記憶體1204中的資料上運算(相對於儲存器1206或是在別處)。一或多個記憶體匯流排(其分別可包含一位址匯流排以及一資料匯流排)可以將處理器1202耦接至記憶體1204。如同在以下敘述的,匯流排1212可包含一或多個記憶體匯流排。在特定的實施例中,一或多個記憶體管理單元(MMU)位在處理器1202與記憶體1204之間,並且使得由處理器1202所請求的對於記憶體1204的存取變得容易。在特定的實施例中,記憶體1204包含隨機存取記憶體(RAM)。此RAM在適當情況可以是揮發性記憶體。在適當情形中,此RAM可以是動態RAM(DRAM)或靜態RAM(SRAM)。再者,在適當情況,此RAM可以是單埠或多埠的RAM。此揭露內容思及任何適當的RAM。記憶體1204在適當情況可包含一或多個記憶體1204。儘管此揭露內容描述且描繪特定的記憶體,但是此揭露內容思及任何適當的記憶體。
在特定的實施例中,儲存器1206包含用於資料或指令的大量儲存。舉例且非限制性的,儲存器1206可包含一硬碟機(HDD)、一軟碟機、快閃記憶體、一光碟、一磁光碟片、磁帶、或是一萬用串列匯流排(USB)隨身碟、或是這些的兩個或多個的一組合。儲存器1206在適當情況可包含可拆卸或非可拆卸的(或固定的)媒體。儲存器1206在適當情況可以是在電腦系統1200的內部或外部。在特定的實施例中,儲存器1206是非揮發性固態的記憶體。在特定的實施例中,儲存器1206包含唯讀記憶體(ROM)。在適當情形中,此ROM可以是遮罩程式化ROM、可程式化ROM(PROM)、可抹除PROM(EPROM)、電性可抹除PROM(EEPROM)、電性可變ROM(EAROM)、或是快閃記憶體、或是這些的兩個或多個的一組合。此揭露內容思及採用任何適當的實體形式的大量儲存器1206。儲存器1206在適當情況可包含一或多個儲存控制單元,其使得在處理器1202以及儲存器1206之間的通訊變得容易。在適當情形中,儲存器1206可包含一或多個儲存器1206。儘管此揭露內容描述且描繪特定的儲存,但是此揭露內容思及任何適當的儲存。
在特定的實施例中,I/O介面1208包含硬體、軟體、或是兩者,其提供一或多個用於在電腦系統1200以及一或多個I/O裝置之間的通訊的介面。電腦系統1200在適當情況可包含這些I/O裝置中的一或多個。這些I/O裝置中的一或多個可以致能在人以及電腦系統1200之間的溝通。舉例且非限制性的,一I/O裝置可包含一鍵盤、小型鍵盤、麥克風、監視器、滑鼠、印表機、掃描器、揚聲器、相機、指示筆、平板電腦、觸控螢幕、軌跡球、視訊攝影機、其它適當的I/O裝置、或是這些的兩個或多個的一組合。一I/O裝置可包含一或多個感測器。此揭露內容思及任何適當的I/O裝置以及用於它們的任何適當的I/O介面1208。在適當情形中,I/O介面1208可包含一或多個裝置或軟體驅動程式,其致能處理器1202來驅動這些I/O裝置中的一或多個。I/O介面1208在適當情況可包含一或多個I/O介面1208。儘管此揭露內容描述且描繪一特定的I/O介面,但是此揭露內容思及任何適當的I/O介面。
在特定的實施例中,通訊介面1210包含硬體、軟體、或是兩者,其提供一或多個用於在電腦系統1200以及一或多個其它電腦系統1200或一或多個網路之間的通訊(例如,封包為基礎的通訊)的介面。舉例且非限制性的,通訊介面1210可包含一網路介面控制器(NIC)或網路轉接器以用於和一乙太網路或其它有線為基礎的網路通訊、或是包含一無線NIC(WNIC)或無線轉接器以用於和一例如是WI-FI網路的無線網路通訊。此揭露內容思及任何適當的網路以及用於其之任何適當的通訊介面1210。舉例且非限制性的,電腦系統1200可以和一隨意網路、一個人區域網路(PAN)、一本地區域網路(LAN)、一廣域網路(WAN)、一都會區域網路(MAN)、或網際網路的一或多個部分、或是這些中的兩個或多個的一組合通訊。這些網路中的一或多個的一或多個部分可以是有線或無線的。舉例而言,電腦系統1200可以和一無線PAN(WPAN)(例如,一藍芽WPAN)、一WI-FI網路、一WI-MAX網路、一行動電話網路(例如,一全球行動通訊系統(GSM)網路)、或其它適當的無線網路、或是這些中的兩個或多個的一組合通訊。電腦系統1200在適當情況可包含用於這些網路的任一者的任何適當的通訊介面1210。通訊介面1210在適當情況可包含一或多個通訊介面1210。儘管此揭露內容描述且描繪一特定的通訊介面,但是此揭露內容思及任何適當的通訊介面。
在特定的實施例中,匯流排1212包含硬體、軟體、或是兩者,其將電腦系統1200的構件彼此耦接。舉例且非限制性的,匯流排1212可包含一加速圖形埠(AGP)或其它圖形匯流排、一強化的工業標準架構(EISA)匯流排、一前端匯流排(FSB)、一超傳輸(HT)互連、一工業標準架構(ISA)匯流排、一無限頻寬互連、一低接腳數(LPC)匯流排、一記憶體匯流排、一微通道架構(MCA)匯流排、一週邊元件互連(PCI)匯流排、一PCI-Express(PCIe)匯流排、一串列先進技術附接(SATA)匯流排、一視訊電子標準協會區域(VLB)匯流排、或其它適當的匯流排、或是這些中的兩個或多個的一組合。匯流排1212在適當情況可包含一或多個匯流排1212。儘管此揭露內容描述且描繪一特定的匯流排,但是此揭露內容思及任何適當的匯流排或互連。
在此,一或多種電腦可讀取的非暫態的儲存媒體在適當情況可包含一或多個半導體為基礎或其它的積體電路(IC)(例如,現場可程式化閘陣列(FPGA)、或特殊應用IC(ASIC))、硬碟機(HDD)、混合硬碟機(HHD)、光碟、光碟機(ODD)、磁光碟片、磁光機、軟碟片、軟碟機(FDD)、磁帶、固態硬碟(SSD)、虛擬磁碟、安全數位卡或碟、任何其它適當的電腦可讀取的非暫態的儲存媒體、或是這些中的兩個或多個的任何適當的組合。一電腦可讀取的非暫態的儲存媒體在適當情況可以是揮發性、非揮發性、或是揮發性及非揮發性的一組合。
在此,除非有明確相反的指出或是上下文有相反的指出,否則“或”是包括而非排它性的。因此,除非有明確相反的指出或是上下文有相反的指出,否則在此的“A或B”是表示“A、B、或是兩者”。再者,除非有明確相反的指出或是上下文有相反的指出,否則“及”是聯合且分別的。因此,除非有明確相反的指出或是上下文有相反的指出,否則在此的“A及B”是表示“聯合或分別的A及B”。
此揭露內容的範疇包含具有在此項技術中的普通技能者將會理解的對於在此敘述或描繪的範例實施例的所有改變、替代、變化、變動及修改。此揭露內容的範疇並不限於在此敘述或描繪的範例實施例。再者,儘管此揭露內容在此描述且描繪個別的實施例為包含特定的構件、元件、特點、功能、操作、或是步驟,但是這些實施例的任一個都可包含具有在此項技術中的普通技能者將會理解的在此任何地方所敘述或描繪的構件、元件、特點、功能、操作、或是步驟的任一個的任何組合或排列。再者,在所附的請求項中對於被調適、安排、能夠、配置、致能、可運作、或操作以執行一特定功能的一設備或系統、或是一設備或系統的一構件的參照是包含所述設備、系統、構件,而不論其或所述特定的功能是否被起動、導通、或解鎖,只要所述設備、系統、或構件如此被調適、安排、能夠、配置、致能、可運作、或是操作即可。此外,儘管此揭露內容描述或描繪特定實施例為提供特定的優點,但是特定實施例可以提供這些優點的無、一些、或是全部。
100:人工實境圖形成像及顯示系統 110:儲備成像構件 120:主要的成像構件 130:頭戴式顯示器單元 150:顯示引擎 170:顯示器 200:控制區塊 205:輸入資料串流 210:記憶體控制器 220:紋理元素記憶體 230:微控制器 235:本地的記憶體 240:共用的記憶體 250:高速通訊匯流排 300:轉換區塊 310:光線投射器 320:網格彎曲區塊 325:彎曲記憶體 330:界線比較區塊 335:界線記憶體 340:轉換引擎 345:轉換記憶體 395:塊-表面的對 400:像素區塊 410:緩衝器管理器 415:讀取請求 420:紅色濾波器區塊 422:紋理元素緩衝器 424:像素緩衝器 427:紅色像素色彩值區塊 430:綠色濾波器區塊 432:紋理元素緩衝器 434:像素緩衝器 437:綠色像素色彩值 440:藍色濾波器區塊 442:紋理元素緩衝器 444:像素緩衝器 447:藍色像素色彩值 450:注視點模式 495:像素色彩值 500:顯示區塊 505:列緩衝器 510:像素緩衝器記憶體 515:字及塊元資料記憶體 525:注視點模式記憶體 530:像素排序器 540:亮度校正區塊 545:亮度網格記憶體 550:像素輸出區塊 595:像素輸出 710:螢幕 715:像素 720:觀點 730:假想的光線 750:物件 755:交叉點 760:假想的光線 770:像素 810:螢幕 815:像素 820:觀點 830:假想的光線 840:扭曲網格 850:表面 855:交叉點 860:假想的光線 870:像素 900:方法 910:步驟 930:步驟 940:步驟 950:步驟 960:步驟 970:步驟 1000:方法 1010:步驟 1020:步驟 1030:步驟 1040:步驟 1050:步驟 1060:步驟 1070:步驟 1100:方法 1110:步驟 1120:步驟 1130:步驟 1140:步驟 1150:步驟 1160:步驟 1170:步驟 1180:步驟 1200:電腦系統 1202:處理器 1204:記憶體 1206:儲存器 1208:輸入/輸出(I/O)介面 1210:通訊介面 1212:匯流排
圖1是描繪用於一人工實境成像及顯示系統的一範例的高階的架構。
圖2是描繪用於一顯示引擎的一範例的高階的架構。
圖3是描繪一範例的控制區塊。
圖4是描繪一範例的轉換區塊。
圖5是描繪一範例的像素區塊。
圖6是描繪一範例的顯示區塊。
圖7是描繪一範例的光線投射的配置。
圖8是描繪一範例的光線投射的配置。
圖9是描繪一種用於利用一人工實境系統的一顯示引擎來產生圖形之範例的方法。
圖10描繪一種用於判斷表面可視度之範例的方法。
圖11描繪一種用於準備像素色彩值以用於輸出之範例的方法。
圖12描繪一範例的電腦系統。
100:人工實境圖形成像及顯示系統
110:儲備成像構件
120:主要的成像構件
130:頭戴式顯示器單元
150:顯示引擎
170:顯示器

Claims (20)

  1. 一種用於後成像處理的方法,其包括:藉由一計算系統存取人工實境場景的一或多個表面,其中所述一或多個表面是根據在第一速率下並且根據第一觀看位置所成像的所述人工實境場景的一或多個影像而被產生;藉由所述計算系統在高於所述第一速率的第二速率下產生子訊框,其中所述子訊框的每一個子訊框是藉由以下而被產生:藉由所述計算系統判斷第二觀看位置;藉由所述計算系統從所述第二觀看位置來判斷所述人工實境場景的所述一或多個表面的可視度;藉由所述計算系統根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值;以及藉由所述計算系統提供所述子訊框的所述色彩值以供顯示。
  2. 如請求項1所述之方法,其中從所述第二觀看位置來判斷所述人工實境場景的所述一或多個表面的可視度包括:根據所述第二觀看位置來產生光線以用於投射到所述人工實境場景中;施加幾何轉換至所述光線以修改其進入所述人工實境場景的個別的軌跡;以及根據所述光線的修改的軌跡來判斷所述光線與在所述人工實境場景中的一或多個表面的交叉點。
  3. 如請求項2所述之方法,其中根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值包括:將針對於所述交叉點的座標對映到交叉的表面的一表面紋理的表面座標;在所述表面座標從所述交叉的表面的表面紋理資料存取色彩值;以及 根據所述交叉點來內插所存取的色彩值。
  4. 如請求項2所述之方法,其中根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值包括施加一或多個圖形調整至所述色彩值,所述圖形調整包括:亮度調整;抖動;注視點成像;或者感知壓縮成像。
  5. 如請求項2所述之方法,其中所述光線對應於顯示系統的像素。
  6. 如請求項2所述之方法,其中所述光線對應於顯示系統的像素的色彩頻道。
  7. 如請求項1所述之方法,其中所述一或多個表面包括針對於所述表面的紋理資料、以及針對於所述表面在人工實境場景中的位置的位置資料。
  8. 如請求項1所述之方法,其中所述人工實境場景的所述一或多個影像是藉由不同於所述計算系統的另一個計算系統來加以成像。
  9. 如請求項8所述之方法,其中所述計算系統是和所述另一個計算系統無線通訊。
  10. 如請求項1所述之方法,其中所述計算系統是被納入到頭戴式顯示器單元中。
  11. 如請求項1所述之方法,其中所述計算系統包括用於產生所述子訊框的顯示引擎,並且其中所述顯示引擎包括:用於從所述第二觀看位置判斷所述一或多個表面的所述可視度的轉換區 塊;用於執行色彩值的內插的像素區塊;以及用於施加圖形調整至色彩值的顯示區塊。
  12. 如請求項1所述之方法,其中所述第二觀看位置是根據從以下構件接收到的資料而被判斷出:眼睛追蹤的構件;或者運動追蹤的構件。
  13. 一種體現軟體的一或多個電腦可讀取的非暫態儲存媒體,當所述軟體被執行時可運作以:存取人工實境場景的一或多個表面,其中所述一或多個表面是根據在第一速率下並且根據第一觀看位置所成像的所述人工實境場景的一或多個影像而被產生;在高於所述第一速率的第二速率下產生子訊框,其中所述子訊框的每一個子訊框是藉由以下而被產生:判斷第二觀看位置;從所述第二觀看位置來判斷所述人工實境場景的所述一或多個表面的可視度;根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值;以及提供所述子訊框的所述色彩值以供顯示。
  14. 如請求項13所述之媒體,其中可運作以從所述第二觀看位置來判斷所述人工實境場景的所述一或多個表面的可視度的所述軟體,進一步可運作以:根據所述第二觀看位置來產生光線以用於投射到所述人工實境場景中; 施加幾何轉換至所述光線以修改其進入所述人工實境場景的個別的軌跡;以及根據所述光線的修改的軌跡來判斷所述光線與在所述人工實境場景中的一或多個表面的交叉點。
  15. 如請求項14所述之媒體,其中可運作以根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值的所述軟體,進一步可運作以:將針對於所述交叉點的座標對映到交叉的表面的一表面紋理的表面座標;在所述表面座標從所述交叉的表面的表面紋理資料存取色彩值;以及根據所述交叉點來內插所存取的色彩值。
  16. 如請求項14所述之媒體,其中可運作以根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值的所述軟體,進一步可運作以施加一或多個圖形調整至所述色彩值,所述圖形調整包括:亮度調整;抖動;注視點成像;或者感知壓縮成像。
  17. 一種用於後成像處理的系統,包括:一或多個處理器;以及一或多個電腦可讀取的非暫態儲存媒體,其耦接至所述處理器中的一或多個處理器並且包括指令,當所述指令藉由所述處理器中的一或多個處理器執行時可運作以使得所述系統:存取人工實境場景的一或多個表面,其中所述一或多個表面是根據在第一 速率下並且根據第一觀看位置所成像的所述人工實境場景的一或多個影像而被產生;在高於所述第一速率的第二速率下產生子訊框,其中所述子訊框的每一個子訊框是藉由以下而被產生:判斷第二觀看位置;從所述第二觀看位置來判斷所述人工實境場景的所述一或多個表面的可視度;根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值;以及提供所述子訊框的所述色彩值以供顯示。
  18. 如請求項17所述之系統,其中可運作以使得所述系統從所述第二觀看位置來判斷所述人工實境場景的所述一或多個表面的可視度的所述指令當藉由所述處理器中的一或多個處理器執行時,進一步可運作以使得所述系統:根據所述第二觀看位置來產生光線以用於投射到所述人工實境場景中;施加幾何轉換至所述光線以修改其進入所述人工實境場景的個別的軌跡;以及根據所述光線的修改的軌跡來判斷所述光線與在所述人工實境場景中的一或多個表面的交叉點。
  19. 如請求項18所述之系統,其中可運作以使得所述系統根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值的所述指令當藉由所述處理器中的一或多個處理器執行時,進一步可運作以使得所述系統:將針對於所述交叉點的座標對映到交叉的表面的一表面紋理的表面座標; 在所述表面座標從所述交叉的表面的表面紋理資料存取色彩值;以及根據所述交叉點來內插所存取的色彩值。
  20. 如請求項18所述之系統,其中可運作以使得所述系統根據所述一或多個表面的判斷的可視度來產生對應於顯示器的輸出位置的所述子訊框的色彩值的所述指令當藉由所述處理器中的一或多個處理器執行時,進一步可運作以使得所述系統施加一或多個圖形調整至所述色彩值,所述圖形調整包括:亮度調整;抖動;注視點成像;或者感知壓縮成像。
TW108139247A 2018-11-02 2019-10-30 用於後成像處理的顯示引擎 TWI810395B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862755333P 2018-11-02 2018-11-02
US62/755,333 2018-11-02
US16/586,598 US11403810B2 (en) 2018-11-02 2019-09-27 Display engine for post-rendering processing
US16/586,598 2019-09-27

Publications (2)

Publication Number Publication Date
TW202036482A TW202036482A (zh) 2020-10-01
TWI810395B true TWI810395B (zh) 2023-08-01

Family

ID=70458833

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108139247A TWI810395B (zh) 2018-11-02 2019-10-30 用於後成像處理的顯示引擎

Country Status (7)

Country Link
US (5) US11403810B2 (zh)
EP (1) EP3874469A1 (zh)
JP (1) JP7467437B2 (zh)
KR (1) KR20210087052A (zh)
CN (1) CN113272872A (zh)
TW (1) TWI810395B (zh)
WO (1) WO2020092477A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017213177A1 (de) * 2017-07-31 2019-01-31 Audi Ag Verfahren zum Betreiben eines Bildschirms eines Kraftfahrzeugs sowie Kraftfahrzeug
US11282259B2 (en) * 2018-11-26 2022-03-22 International Business Machines Corporation Non-visual environment mapping
US11089320B2 (en) * 2019-03-27 2021-08-10 Nvidia Corp. Adaptive pixel sampling order for temporally dense rendering
KR102582407B1 (ko) * 2019-07-28 2023-09-26 구글 엘엘씨 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들
KR20210096449A (ko) * 2020-01-28 2021-08-05 삼성전자주식회사 Hud 시스템에서 영상을 재생하는 방법 및 그 hud 시스템
US11308683B2 (en) 2020-06-29 2022-04-19 Imagination Technologies Limited Intersection testing in a ray tracing system using ray bundle vectors
US11295509B2 (en) * 2020-06-29 2022-04-05 Imagination Technologies Limited Intersection testing in a ray tracing system using multiple ray bundle intersection tests
WO2022015319A1 (en) * 2020-07-17 2022-01-20 Hewlett-Packard Development Company, L.P. Head-mountable display (hmd) image and foveal region brightness computation
US11423520B2 (en) 2020-10-30 2022-08-23 Facebook Technologies, Llc. Distortion-corrected rasterization
US11402634B2 (en) 2020-12-30 2022-08-02 Facebook Technologies, Llc. Hand-locked rendering of virtual objects in artificial reality
DE102021104346A1 (de) * 2021-02-24 2022-08-25 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zu einem Kompensieren von Projektionsfehlern bei einer Ausgabe von Bildern, System mit einer Recheneinheit zu einer Ausführung des Verfahrens und Computerprogramm
CN116310243B (zh) * 2023-05-24 2023-08-15 山东捷瑞数字科技股份有限公司 基于人工智能的ar防抖方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201119369A (en) * 2009-06-25 2011-06-01 Tv One Ltd Apparatus and method for displaying a warped version of a source image
US20150310665A1 (en) * 2014-04-29 2015-10-29 Ashraf Ayman Michail Stabilization plane determination based on gaze location
US20170115488A1 (en) * 2015-10-26 2017-04-27 Microsoft Technology Licensing, Llc Remote rendering for virtual images

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
JP4734640B2 (ja) 2006-02-10 2011-07-27 国立大学法人岐阜大学 仮想現実画像表示装置
CN101506849B (zh) * 2006-06-27 2011-12-07 中央大学 可见性评估方法和评估系统
JP2010092360A (ja) 2008-10-09 2010-04-22 Canon Inc 画像処理システム、画像処理装置、収差補正方法及びプログラム
US8446433B1 (en) * 2009-06-12 2013-05-21 Lucasfilm Entertainment Company Ltd. Interactive visual distortion processing
US8570320B2 (en) * 2011-01-31 2013-10-29 Microsoft Corporation Using a three-dimensional environment model in gameplay
US9142043B1 (en) 2011-06-24 2015-09-22 Nvidia Corporation System and method for improved sample test efficiency in image rendering
US9292959B2 (en) * 2012-05-16 2016-03-22 Digizig Media Inc. Multi-dimensional stacking with self-correction
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US9619911B2 (en) * 2012-11-13 2017-04-11 Qualcomm Incorporated Modifying virtual object display properties
US9514571B2 (en) 2013-07-25 2016-12-06 Microsoft Technology Licensing, Llc Late stage reprojection
US10438331B2 (en) 2014-06-26 2019-10-08 Intel Corporation Distortion meshes against chromatic aberrations
CN107004299B (zh) * 2014-09-30 2021-02-02 Cae有限公司 渲染三维多边形网格的似然图像
US10089790B2 (en) * 2015-06-30 2018-10-02 Ariadne's Thread (Usa), Inc. Predictive virtual reality display system with post rendering correction
US9832451B2 (en) * 2015-11-17 2017-11-28 Survios, Inc. Methods for reduced-bandwidth wireless 3D video transmission
US10026212B2 (en) 2015-11-20 2018-07-17 Google Llc Electronic display stabilization using pixel velocities
US11010956B2 (en) 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
US10157448B2 (en) * 2016-02-12 2018-12-18 Qualcomm Incorporated Foveated video rendering
CN106127843B (zh) * 2016-06-16 2019-05-17 福建数博讯信息科技有限公司 三维虚拟场景的渲染方法和装置
US10129523B2 (en) 2016-06-22 2018-11-13 Microsoft Technology Licensing, Llc Depth-aware reprojection
US20180005432A1 (en) 2016-06-29 2018-01-04 AR You Ready LTD. Shading Using Multiple Texture Maps
CN109863533B (zh) * 2016-08-22 2024-03-15 奇跃公司 虚拟、增强和混合现实系统和方法
US10379611B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
US11127110B2 (en) * 2017-03-01 2021-09-21 Arm Limited Data processing systems
US10365709B2 (en) 2017-03-03 2019-07-30 Microsoft Technology Licensing, Llc MEMS scanning display device
US10885711B2 (en) 2017-05-03 2021-01-05 Microsoft Technology Licensing, Llc Virtual reality image compositing
US10713752B2 (en) * 2017-06-09 2020-07-14 Sony Interactive Entertainment Inc. Temporal supersampling for foveated rendering systems
US10755383B2 (en) * 2017-09-29 2020-08-25 Apple Inc. Multi-space rendering with configurable transformation parameters
US10699374B2 (en) 2017-12-05 2020-06-30 Microsoft Technology Licensing, Llc Lens contribution-based virtual reality display rendering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201119369A (en) * 2009-06-25 2011-06-01 Tv One Ltd Apparatus and method for displaying a warped version of a source image
US20150310665A1 (en) * 2014-04-29 2015-10-29 Ashraf Ayman Michail Stabilization plane determination based on gaze location
US20170115488A1 (en) * 2015-10-26 2017-04-27 Microsoft Technology Licensing, Llc Remote rendering for virtual images

Also Published As

Publication number Publication date
US11113867B1 (en) 2021-09-07
WO2020092477A8 (en) 2021-05-06
JP2022504931A (ja) 2022-01-13
KR20210087052A (ko) 2021-07-09
TW202036482A (zh) 2020-10-01
US11640691B2 (en) 2023-05-02
US20200143585A1 (en) 2020-05-07
JP7467437B2 (ja) 2024-04-15
US20220366644A1 (en) 2022-11-17
US20230245381A1 (en) 2023-08-03
WO2020092477A1 (en) 2020-05-07
CN113272872A (zh) 2021-08-17
US11308681B1 (en) 2022-04-19
EP3874469A1 (en) 2021-09-08
US11403810B2 (en) 2022-08-02

Similar Documents

Publication Publication Date Title
TWI810395B (zh) 用於後成像處理的顯示引擎
US11170577B2 (en) Generating and modifying representations of objects in an augmented-reality or virtual-reality scene
US11176901B1 (en) Pan-warping and modifying sub-frames with an up-sampled frame rate
US11100899B2 (en) Systems and methods for foveated rendering
US11410272B2 (en) Dynamic uniformity correction
KR20210129673A (ko) 다중-프로젝터 디스플레이 아키텍처
US11557049B1 (en) Interpolation optimizations for a display engine for post-rendering processing
CN113302658A (zh) 并行纹理采样
US11011123B1 (en) Pan-warping and modifying sub-frames with an up-sampled frame rate
US20210090322A1 (en) Generating and Modifying Representations of Objects in an Augmented-Reality or Virtual-Reality Scene
WO2023141258A1 (en) Memory structures to support changing view direction
WO2023076474A1 (en) Compositor layer extrapolation
TW202226832A (zh) 自適應範圍之包裝壓縮
US20240013443A1 (en) Pixel Block Encoder Capable of Jointly Encoding Pixel Channels
US20240233614A1 (en) Waveguide correction