TWI479447B - 重新呈現具有明暗變化的訊框之加速 - Google Patents

重新呈現具有明暗變化的訊框之加速 Download PDF

Info

Publication number
TWI479447B
TWI479447B TW096127082A TW96127082A TWI479447B TW I479447 B TWI479447 B TW I479447B TW 096127082 A TW096127082 A TW 096127082A TW 96127082 A TW96127082 A TW 96127082A TW I479447 B TWI479447 B TW I479447B
Authority
TW
Taiwan
Prior art keywords
frame
rendering
presentation
block
cache memory
Prior art date
Application number
TW096127082A
Other languages
English (en)
Other versions
TW200820128A (en
Inventor
Radomir Mech
Larry I Gritz
Eric B Enderton
John F Schlag
Daniel Elliot Wexler
Philip A Nemec
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW200820128A publication Critical patent/TW200820128A/zh
Application granted granted Critical
Publication of TWI479447B publication Critical patent/TWI479447B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

重新呈現具有明暗變化的訊框之加速
本文揭示之主題係關於電腦圖形呈現,且更特定而言係關於加速訊框之重新呈現。
對於高品質呈現,例如對於膠片視覺效果及/或動畫,單一訊框之呈現可能花費許多分鐘或甚至許多小時。在技術員需要對原本已完成之場景作出光照改變時之創造性過程中可能發生顯著瓶頸。由於對於每個改變(在何處放置光、光之顏色、光是否應投射陰影、陰影之模糊程度應如何,等),必須針對將對光照技術員及/或引導者變為可見之改變執行重新呈現,所以此過程可能非常耗時。增加過程之耗時特性的為光照設計之重複特性。作出改變,對訊框進行重新呈現,觀察結果,作出更多改變,對訊框進行重新呈現等,直至光照技術員及/或引導者對結果滿意為止。因為每次呈現可能花費許多小時來完成,所以光照過程可能非常耗時且低效。
在以下具體實施方式中,陳述許多特定細節以提供對所主張主題之詳盡理解。然而,熟習此項技術者將瞭解,可在無此等特定細節之情況下實踐所主張之主題。在其它情況下,未詳細描述眾所周知之方法、程序、組件及/或電路。
如上文所指出,先前技術之難題,尤其為例如重新光照領域中之難題,可包含對經重新光照之訊框之非常耗時且低效之重新呈現。因此,需要可加速對經重新光照之訊框之重新呈現的技術及/或系統。
根據用於加速具有光照改變之訊框之重新呈現的方法之實施例,對應於訊框之一或多個三維(3D)對象之資訊可儲存在對象索引化快取記憶體中。可使3D對象離散化為複數個點。快取記憶體可包含在訊框之重新呈現中可使用之中間及/或最終遮影值。光照改變可由使用者(例如,光照技術員)指定。可確定該複數個點中哪些點(若存在)受到所指定之光照改變影響。對於受到光照改變影響之點,可確定將重新計算哪些遮影操作以便實施光照改變。可使用重新計算之遮影操作與儲存在對象索引化快取記憶體中之中間及/或最終遮影值之至少一子集的組合來對訊框進行重新呈現。
藉由將中間遮影結果儲存在由對象索引化之快取記憶體中,且藉由在適合於對訊框進行重新呈現之地方使用中間遮影結果,可在重新光照操作期間實現顯著時間節省。顯著時間節省可提供明顯改良之交互式重新光照過程,其可由動畫師、光照技術員等在較大有利程度上加以使用。
本說明書中對"一個實施例"或"一實施例"之參考意即結合實施例描述之特定特徵、結構或特性包含在所主張之主題之至少一實施例中。因此,短語"在一個實施例中"及/或"一實施例"在本說明書中各處之出現不一定全都指代同一實施例。此外,可在一或多個實施例中組合特定特徵、結構及/或特性。
本文提及之"指令"涉及表示一或多個邏輯運算之表達式。舉例而言,指令可藉由可由用於對一或多個資料對象執行一或多個操作之機器(例如,處理器)進行解譯而為"機器可讀的"。然而,此僅僅為指令之實例,且所主張之主題在此態樣不受限制。在另一實例中,本文提及之指令可涉及可由具有包含經編碼命令之命令集之處理器或其它處理電路執行之經編碼命令。此指令可以處理器或處理電路所理解之機器語言之形式進行編碼。同樣,此等僅僅為指令之實例,且所主張之主題在此等態樣不受限制。
本文提及之"儲存媒體"涉及能夠維持可由一或多個機器感知之表達式之媒體。舉例而言,儲存媒體可包括用於儲存機器可讀指令及/或資訊之一或多個儲存裝置。此類儲存裝置可包括包含例如磁性、光學及/或半導體儲存媒體之若干媒體類型中之任一種。然而,此等僅僅為儲存媒體之實例,且所主張之主題在此等態樣不受限制。
本文提及之"邏輯"涉及用於執行一或多個邏輯運算之結構。舉例而言,邏輯可包括至少部分基於一或多個輸入信號而提供一或多個輸出信號之電路。此類電路可包括接收數位輸入信號並提供數位輸出信號之有限狀態機,或回應於一或多個類比輸入信號而提供一或多個類比輸出信號之電路。可例如在特殊應用積體電路(ASIC)及/或場可程式閘陣列(FPGA)中提供此類電路。而且,邏輯可包括儲存在儲存媒體中之機器可讀指令,該等儲存媒體與處理器或其它處理電路組合以執行此類機器可讀指令。然而,此等僅僅為可提供邏輯之結構之實例,且所主張之主題在此等態樣不受限制。
除非另外具體規定,否則如自以下論述內容中所明瞭,將瞭解本說明書中使用例如"處理"、"計算"、"選擇"、"形成"、"啟用"、"抑制"、"識別"、"起始"、"詢問"、"獲得"、"維持"、"表示"、"修改"、"接收"、"傳輸"、"儲存"、"認證"、"授權"、"代管"、"確定"及/或類似術語之術語的論述內容涉及可由計算平臺(例如,電腦或類似電子計算裝置)執行之動作及/或過程,該計算平臺操縱及/或轉變該計算平臺之處理器、記憶體、暫存器及/或其它資訊儲存、傳輸、接收及/或顯示裝置內的表示為物理、電子及/或磁性量及/或其它物理量之資料。因此,計算平臺指包含處理及/或儲存信號形式之資料之能力的系統或裝置。因此,在此上下文中,計算平臺可包括硬體、軟體、韌體及/或其任何組合。此外,除非另外具體規定,否則本文中參看流程圖或以另外方式描述之過程亦可由計算平臺整體或部分地執行及/或控制。
本文提及之"電腦程式"涉及指令之經組織之列表,該等指令若被執行就會導致或促使電腦、計算裝置及/或機器以特定方式運作。此處舉例而言,電腦程式可包括可經執行以執行一或多個所需任務之機器可讀指令。在一個特定實施例中,儘管所主張之主題在此態樣不受限制,但電腦程式可定義輸入資料及輸出資料,使得程式之執行可至少部分基於輸入資料而提供輸出資料。然而,此等僅僅為電腦程式之實例,且所主張之主題在此等態樣不受限制。
在以下描述及/或申請專利範圍中,可使用術語耦接及/或連接以及其派生詞。在特定實施例中,連接可用於指示兩個或兩個以上元件彼此直接實體接觸及/或電接觸。耦接可表示兩個或兩個以上元件直接實體接觸及/或電接觸。然而,耦接亦可表示兩個或兩個以上元件可能彼此無直接接觸,但仍可彼此協作及/或相互作用。
如本文所使用,術語"及/或"可表示"及",其可表示"或",其可表示"互斥或",其可表示"一者",其可表示"某些但並非全部",其可表示"任一者均不",且/或其可表示"兩者",但所主張之主題在此態樣不受限制。
如本文所使用,術語"呈現"及/或"重新呈現"表示包含用於基於儲存在計算平臺內之三維資料而產生影像之各種各樣技術中之任一者。以上術語亦可表示借助於軟體程式自模型產生影像之過程,但所主張之主題之範圍在此態樣不受限制。模型可包括資料結構中3D對象之描述。模型可包括幾何形狀、視點、表面及/或光照資訊。此等僅僅為模型之實例,且所主張之主題之範圍在此態樣不受限制。以上術語亦可用於描述計算視訊編輯檔案中之效果以產生最終視訊輸出之過程。
此外,如本文所使用,術語"遮影器"及/或"遮影"可指代在3D電腦圖形中用於確定對象或影像之表面性質之任何過程。遮影器可使用關於光吸收、漫射、紋理映射、反射、折射、成影等之資訊。"遮影"可進一步指代對象表面之顏色及亮度可如何隨著光照而變化。此等僅僅為遮影之實例,且所主張之主題在此態樣不受限制。
同樣,如本文所使用,術語"光柵化"可指代3D對象轉換為像素以最終輸出至顯示裝置所借助之任何過程。對於一或多個實施例,光柵化及/或重新光柵化操作可由圖形處理單元執行,但所主張之主題在此態樣不受限制。
另外,本文使用之術語"快取記憶體"表示包含能夠儲存在呈現過程中使用之資訊之任何資料結構。"對象索引化"快取記憶體可包括可以逐個對象為基礎進行索引化之資料結構。亦即,可根據資訊與哪一對象相關聯來組織及/或存取儲存在快取記憶體中之資訊。如本文使用之對象索引化快取記憶體亦可稱為"柵格快取記憶體"。術語"柵格"可指代在鑲嵌或切割操作之後與對象相關聯之點之柵格。
對於一或多個實施例,對象索引化快取記憶體可包括能夠保持呈現結果(或許為對象遮影結果)之任何資料結構,其中每一結果可能伴隨有可能影響該結果之計算之零或更多輸入值的列表。若針對與儲存在快取記憶體中之輸入值匹配之輸入值,需要特定之呈現結果,則可自快取記憶體快速擷取正確結果,因此節省重新計算結果之時間。
對於一或多個實施例,可不將記憶體查找操作快取儲存在對象索引化快取記憶體中。可快取儲存最終及/或中間呈現結果。對於一例示性實施例,對象索引化快取記憶體可包括含有先前計算出之呈現結果之表。若在訊框之呈現期間需要呈現結果,則可確定所需要之結果是否存在於快取記憶體中。若所需之結果存在,則可比所需結果不存在時可能花費之時間更快地完成訊框之呈現。若所需之結果不存在於快取記憶體中,則可計算所需之結果並可將計算出之結果儲存在快取記憶體中以供可能在後續呈現操作中使用。
對於一實施例,若記憶體資源之情況為快取記憶體空間有限,則可丟棄儲存在快取記憶體中之較老資訊,以便儲存較新資訊。此外,對於一些實施例,若發生影響所儲存資訊之有效性之事件,則可使快取記憶體條目失效。可丟棄失效之資訊,且若在後續呈現操作中需要,可重新計算失效之資訊。舉例而言,若光照參數改變,則可丟棄受該改變影響之快取儲存之結果。在光照參數改變之後可發生重新呈現,且可重新計算先前丟棄之結果。對於一實施例,每一快取記憶體條目可儲存對象名及對象呈現結果(例如,顏色),以及該結果所依據之輸入資訊之列表。同樣,對於一或多個實施例,含有計算出之呈現結果之對象索引化快取記憶體可儲存在系統記憶體及/或圖形記憶體中。對象索引化快取記憶體亦可儲存在非揮發性儲存裝置(例如,磁盤驅動器)上。以上僅僅為可如何組織對象索引化快取記憶體及何種類型之資訊可儲存在對象索引化快取記憶體上以及在呈現過程中可如何使用此類資訊之實例,且所主張之主題之範圍在此等態樣不受限制。
圖1為計算平臺100之例示性實施例之方塊圖。計算平臺100可包括CPU 110及耦接至CPU 110之記憶體控制器集線器120。記憶體控制器集線器120進一步耦接至系統記憶體130,耦接至圖形處理單元(GPU)150,且耦接至輸入/輸出集線器140。GPU 150進一步耦接至顯示裝置160,顯示裝置160可包括CRT顯示器、平板LCD顯示器、投影儀或其它類型之顯示裝置。圖形記憶體170亦耦接至GPU 150。平臺100亦可包括可能耦接至輸入/輸出集線器140之一或多個儲存媒體讀取裝置(未圖示)。
儘管例示性系統100圖示為具有組件之特定配置,但使用各種各樣配置中之任一種之其它實施例亦為可能。舉例而言,使用複數個CPU及/或GPU之實施例亦為可能。此外,可在各種各樣電子裝置中之任一種中使用本文描述之例示性實施例,該等電子裝置包含(但不限於)計算平臺、遊戲控制台及裝置等。此外,對於一些實施例,複數個計算平臺可經耦接以共同操作來執行本文描述之重新光照加速技術。
圖2為包括光源220、230及240以及複數個三維對象250、260及270之例示性場景之圖。儘管場景200意圖表示3D影像場景,但為便於說明及簡化論述,在二維中說明場景200。圖2中亦描繪相機210(表示觀看點)及影像平面280,3D對象可在光柵化過程期間以數學方式投影至該影像平面280上。平截頭體線211意圖說明場景200之視見平截頭體之邊界。
對於此例示性場景,可對3D對象250、260及270進行鑲嵌(切割)以產生點之網柵格。各個對象之點可稱為離散化的。圖2中描繪一些例示性點,包含點251、262及264。
一般而言,呈現可認為為兩部分之過程。對於一個部分,可解決可見性問題。舉例而言,對於給定之觀看點(對於此實例,由相機210說明),一些對象或對象之部分可能被阻擋。類似地,各個光源可能會或可能不會影響每一對象之每一點。解決可見性問題可考慮對象及光源之位置及關係,以及觀看點。舉例而言,對象260上之若干點對於光源中之一者或一者以上而言可能不可見。舉例而言,參看點262及264,其中點262對光230而言不可見,而點264可見。若光230自位置A移動至位置B,則暴露於該光之點集合可能改變。若光230處於位置B,則點262對於光230而言可見,而點264不可見。
對於此例示性場景,用虛線說明對象250、260及270之自相機之觀看點被阻擋之部分。類似地用虛線標記對象之落在視見平截頭體外部之部分。亦用虛線標記光射線之由對象阻斷之部分。
對於呈現過程之第二部分,可確定/計算每一像素(投影至影像平面280上)之顏色。遮影過程可考慮關於各個對象表面上之顏色及/或紋理圖案、強度、位置及顏色或光源、對象之相對接近度等之資訊。當然,此等僅僅為在呈現過程中可使用之資訊類型之實例。
圖3為交互式重新光照過程之例示性實施例之圖。在方塊310處,可對訊框進行呈現。在方塊320處,可對訊框作出修改,在此實例中可能為對一或多個光照參數作出修改。改變可由技術員指定,例如光照技術員、動畫師或其它使用者。在方塊330處可進行處理以準備訊框(包含經修改之光照參數)來進行呈現,且在方塊310處可使用經修改、經處理之光資訊進行新的呈現。該循環可視需要重複許多次,直至技術員對結果滿意為止。
圖4為用於加速訊框之重新光照之方法之例示性實施例的流程圖。在方塊410處,可發生訊框之呈現。此呈現可包括訊框之初始呈現。對於初始呈現,可確定哪一對象或對象之哪些部分可見以及執行其它呈現操作。初始呈現亦可包括場景資料之初始導入。初始呈現之一些或全部結果可儲存在一或多個柵格快取記憶體450中。
在方塊420處,可對一或多個光照參數作出修改。在方塊430處可進行處理以在方塊440處準備訊框來進行重新呈現。然而,對於重新呈現,若僅一個或一些光被移動或以另外方式改變,則僅重新執行受該改變影響之計算。對於未受光照改變影響之計算,使用儲存在柵格快取記憶體450中之一者或一者以上中之資訊,藉此顯著減少執行重新呈現所需之計算量。舉例而言,因為改變僅涉及一或多個光(相機未移動),所以不必要重新執行在初始呈現時執行之可見性操作。
因此,對於此例示性實施例及其它例示性實施例,藉由僅重新發送用於重新呈現之光(不再導出及重新讀取整個場景),不考慮在初始呈現中不可見之對象(關於哪些對象可見及哪些對象不可見之資訊可儲存在一或多個柵格快取記憶體中),以及快取儲存各個遮影操作之值,使得僅需要重新計算受光照改變影響之操作,且其它操作可重新使用其來自先前呈現之結果,可節省工作及時間。以此方式,具有顯著改良之效能及/或效率之完全特徵化的、很大程度上為交互式之重新呈現為可能的。對於此實施例及其它實施例,經加速之重新呈現在像素與像素之間可與完全呈現相同(所得之影像可能相同)。
圖5為用於加速訊框之重新光照之方法之額外例示性實施例的流程圖。對於此例示性實施例,在方塊510處可讀取場景資料。在方塊520處,可對場景之對象執行切割(鑲嵌)操作。在方塊530處,可執行遮影操作,且在方塊540處可對影像進行光柵化。在方塊550處,可指定對一或多個光照或遮影參數之改變。隨後處理可返回方塊530。並非重新執行步驟530之全部內容,而是重新執行因改變之參數而成為必要之操作,因此節省時間並改良效率。根據所主張之主題之實施例可包含方塊510-550之全部、多於全部或少於全部。此外,方塊510-550之次序僅僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖6為用於加速訊框之重新呈現之方法之例示性實施例的流程圖。在方塊610處,可將與訊框之呈現相關聯之對象資訊儲存在對象索引化快取記憶體中,且在方塊620處,可修改光照參數。在方塊630處,可使用儲存在對象索引化快取記憶體中之對象資訊之至少一子集來對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊610-630之全部、多於全部或少於全部。此外,方塊610-630之次序僅僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖7為用於加速訊框之重新光照及重新呈現的方法之額外例示性實施例的流程圖。在方塊710處,可使複數個點離散化,其中該複數個點對應於訊框之一或多個對象。在方塊720處,可修改光照參數。在方塊730處,可確定該複數個點中哪些點受到光照參數之修改影響,且在方塊740處,可確定針對受影響之點而重新計算哪些操作。在方塊750處,可對訊框進行重新光柵化。根據所主張之主題之實施例可包含方塊710-750之全部、多於全部或少於全部。此外,方塊710-750之次序僅僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖8為用於加速訊框之重新光照之方法之例示性實施例的流程圖,該方法包括將與訊框之呈現相關聯之對象資訊儲存在對象索引化快取記憶體中。在方塊810處,可將對象資訊儲存在對象索引化快取記憶體中。對象資訊可包括中間遮影結果。在方塊820處,可修改光照參數。在方塊830處,可重新計算受到光照參數之修改影響之對象資訊。在方塊840處,可使用重新計算出之對象資訊與經快取儲存之中間遮影結果的組合來對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊810-840之全部、多於全部或少於全部。此外,方塊810-840之次序僅僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖9為描繪與對象上一點相關聯之複數個光之例示性資訊塊的圖。對於此例示性實施例,例示性點包括點251。圖9中描繪之資訊塊表示可儲存在快取記憶體中的與對象250(且特定而言,點251)相關聯之可能資訊。方塊910可包括表面圖案資訊。光方塊920可包括與光源220有關之資訊,光方塊930可包括與光源230有關之資訊,且光方塊940可包括與光源240有關之資訊。光源中之每一者均可具有與其相關聯之陰影地圖資訊。可在硬體、軟體或硬體與軟體之組合中實施組合單元950。再次參看圖2,在場景200之初始呈現之後,光源230可自位置A移動至位置B。對於此實例,在光改變之後執行場景之重新呈現時,重新計算受到光改變影響之點及計算。對於此實例,對於點251,表面圖案資訊及光220與240之資訊未受到光照改變影響。因此,可將來自方塊910、920及940之資訊提供至組合單元950。然而,與光源230相關聯之光方塊930可包括受到光照改變影響之資訊,且可重新計算儲存在方塊930處之資訊之至少一子集。可將重新計算之資訊提供至組合單元950,組合單元950可產生點251之顏色資料。圖9中描繪之例示性資料組織僅僅為例示性組織,且所主張之主題在此態樣不受限制。
圖10為柵格快取記憶體1000之例示性實施例之方塊圖。如先前所提及,術語"柵格快取記憶體"可指代可根據一或多個對象及/或對象之點而索引化之資料結構。對於此實例,柵格快取記憶體1000可包括遮影器輸入資料1010以及遮影器輸出及中間結果資料1020。遮影器輸入資料1010可包括關於對象之位置、法線資訊、顏色參數等資訊。遮影器輸出及中間結果資料1020可包括顏色資訊、光控制參數資訊、大量計算之結果、檢驗點(check-pointing)資訊等。與本文描述之實施例有關之快取記憶體可(例如)儲存在圖形記憶體、系統記憶體及/或非揮發性儲存裝置(例如,硬盤驅動器)中,或儲存在以上之組合中。當然,此僅僅為柵格快取記憶體之一個可能實例,且所主張之主題之範圍在此態樣不受限制。
對於一實施例,除快取儲存個別光及/或預光照表面圖案之最終結果外,亦可快取儲存個別遮影器操作之結果。另外,對於一例示性實施例,可由軟體開發商指定將快取儲存之指令之種類。對於一些實施例,可由使用者指定將快取儲存之指令之種類。關於將快取儲存哪些種類之指令之確定可基於使用者偏好及/或計算平臺資源可用性(例如,可用之記憶體)。可預定該確定,或可動態及/或自動地作出該確定,此可能取決於可用之資源。對於一些實施例,可能有利的為快取儲存因尤其耗時且/或耗費資源而花費較多之指令。舉例而言,可快取儲存紋理查找操作之結果。並且對於一些實施例,可快取儲存特定指令及/或特定參數。此等僅僅為可快取儲存之資訊種類及/或可如何作出確定之實例,且所主張之主題之範圍在此等態樣不受限制。
對於一或多個實施例,可由藉由串接柵格點之指令之所有輸入參數產生之名稱來識別快取記憶體及/或快取記憶體條目。然而,此僅僅為可如何識別快取記憶體或快取記憶體條目之實例,且所主張之主題之範圍在此態樣不受限制。
一些實施例可採用將快取儲存之操作之優先列表。該等列表可在高優先權操作至低優先權操作之範圍內變動。高優先權操作可包括計算時尤其耗時之彼等操作,且低優先權操作可包括重新計算時相對較快之彼等操作。在高優先權級與低優先權級之間可能存在各種各樣之中間優先權級。此優先操作之列表可包括快取記憶體之計算與記憶體折衷之按比例增減。舉例而言,當記憶體資源變得較為不足時,可自動重新計算而並非快取儲存較低優先權操作中之較多者。可自動確定重新計算哪些操作及快取儲存哪些操作,或者在其它實施例中,使用者可指定快取儲存以及重新計算哪些優先權級之操作。可在軟體應用程式中向使用者提供選單項,藉由該選單項使用者可指示他或她關於快取儲存哪些操作之偏好。
圖11為用於確定項目之優先列表中哪些項目將被快取儲存之方法之例示性實施例的流程圖。在方塊1110處,確定與呈現操作相關聯之可能可快取儲存之項目之優先列表中哪些項目將被快取儲存。如上所述,該確定可基於多種考慮,包含(但不限於)計算平臺資源(例如記憶體)之可用性。此上下文中之術語"項目"意圖包含可儲存在快取記憶體中之任何資訊,包含以上描述之資訊類型。花費較多之操作(耗時及/或耗費資源)可被給定頂級優先權,且可被快取儲存,而較低優先權操作(可容易地重新計算之操作)在某些情況下(例如,在記憶體資源不足之情況下)可能不會被快取儲存。
在方塊1120處,將經選擇用於快取儲存之優先項目儲存在對象索引化快取記憶體中。在方塊1130處,可修改光照參數,且在方塊1140處,可使用儲存在對象索引化快取記憶體中之項目之至少一子集來對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊1110-1140之全部、多於全部或少於全部。此外,方塊1110-1140之次序僅僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
在某些情況下快取記憶體及/或快取記憶體條目可(例如)至少部分依據外部檔案,例如陰影地圖。對於一實施例,若外部檔案經修改,則可自動重新計算依據該外部檔案之指令。
圖12為用於重新計算依據經修改之外部檔案之對象資訊的方法之例示性實施例的流程圖。在方塊1210處,可確定儲存在對象索引化快取記憶體中之對象資訊是否依據外部檔案。若無對象資訊依據外部檔案,則處理進行至方塊1240。若儲存在對象索引化快取記憶體中之對象資訊確實依據外部檔案,則在方塊1220處確定外部檔案是否已被修改。若外部檔案未被修改,則處理進行至方塊1240。若外部檔案已被修改,則在方塊1230處重新計算依據經修改之檔案之對象資訊。在方塊1240處,使用經重新計算之遮影操作與儲存在快取記憶體中之資訊的組合對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊1210-1240之全部、多於全部或少於全部。此外,方塊1210-1240之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
當光照技術員或其它使用者正對場景之光或其它元素作出改變時,常見情況為,技術員將在他或她對結果滿意之前對光或其它元素作出若干改變。若技術員必須在改變之間等待完全保真度,則該過程可能非常耗時。本文描述之重新呈現加速技術及方法可使該過程耗時更少。對於一些實施例,可藉由場景之漸進精細化而更進一步地加速該過程。如本文所使用,術語"漸進精細化"意謂包括用於初始地以小於完全保真度顯示場景,隨後進行場景之較高保真度或完全保真度表現之技術。使用漸進精細化,技術員可能能夠自場景之較低保真度型式中確定最近之變化是否可能令人滿意。此一確定可以非常及時之方式進行,而並非等待較高保真度或完全保真度型式。
對於一例示性實施例,與完全保真度呈現之可能情況相比,較低保真度表現可基於已被更粗略地切割之場景。換言之,與完全保真度呈現之將出現之情況相比,用於較低保真度表現之場景之每一對象可被離散化為較少之點。對於一實施例,較低保真度場景之最終光柵化可以完全像素解析度發生。對於其它實施例,可藉由限制像素解析度及/或藉由消除例如防混疊及/或模糊之一些功能來進一步加速較低解析度呈現。藉由維持較低保真度呈現之完全像素解析度,可避免較低像素解析度顯示器之固有斑駁外觀,從而為技術員提供對完全保真度呈現可能外觀之更好主意。
對於一些實施例,可顯示較低保真度呈現,且隨後可將較高保真度呈現疊加在較低保真度顯示之上。較高保真度呈現可隨著較高保真度區域變得可用而逐個區域地代替較低保真度型式,直至已以較高保真度型式更新整個顯示為止。舉例而言,在一個實施例中,可自頂部向底部、或自底部向頂部、或自左向右、或自右向左更新顯示,或者可首先在由技術員指定之區域發生更新。當然,此等僅為可如何以較高保真度顯示更新較低保真度顯示之實例,且所主張之主題之範圍在此等態樣不受限制。此外,對於一些實施例,使用者可在任何點中斷重新呈現過程(無論是較低保真度還是較高保真度)。
如本文所使用,術語"區域"意謂指代場景、訊框及/或顯示之任何子集。區域可包括各種各樣之形狀及/或大小中之任一者。區域可包括像素、對象及/或其它資料結構。
對於一些實施例,使用者可指定首先重新呈現場景或訊框之哪些區域。舉例而言,使用者可指定首先重新呈現訊框之矩形部分。或者,在另一實施例中,使用者可指定訊框之座標(可能藉由使用指點裝置選擇顯示器上之一點),且可呈現緊鄰圍繞選定之座標之區域,且隨後可呈現自該座標以螺旋樣式延伸出之訊框之其它區域。對於一個實施例,可針對整個訊框執行訊框之較低優先權呈現,隨後可在使用者指定之區域或點處開始訊框之較高優先權呈現。然而,此等僅為訊框之區域可被呈現之次序之實例,且所主張之主題之範圍在此等態樣不受限制。
為了使用藉由本文描述之技術及方法而成為可能之重新呈現加速特性,可儲存任何特定場景之兩個副本。一個副本可表示場景之較低保真度型式,且另一副本可表示較高及/或完全保真度型式。該等副本中之每一者可維持如上所述之對象索引化快取記憶體以實現場景之加速重新呈現。
儘管對於以上例示性實施例,論述兩個保真度級別(以及兩個相應之場景副本),但所主張之主題之範圍並不限於此,且其它實施例可使用少於或多於兩個保真度級別。
圖13為執行較低保真度呈現之方法之例示性實施例的流程圖。在方塊1310處,將與訊框之較低保真度呈現相關聯之對象資訊儲存在第一對象索引化快取記憶體中。在方塊1320處,可將與訊框之較高保真度呈現相關聯之對象資訊儲存在第二對象索引化快取記憶體中。在方塊1330處,可修改光照參數,且在方塊1340處,可使用儲存在第一對象索引化快取記憶體中之對象資訊之至少一子集來執行訊框之較低保真度呈現。根據所主張之主題之實施例可包含方塊1310-1340之全部、多於全部或少於全部。此外,方塊1310-1340之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖14為漸進地使場景之呈現精細化之方法之例示性實施例的流程圖。在方塊1410處,儲存場景之較低保真度及較高保真度型式。可將與場景之該兩種型式相關聯之對象資訊儲存在對象索引化快取記憶體中。在方塊1420處,可自使用者接收顯示區域優先權資訊。來自使用者之優先權資訊可包括關於將首先以較高保真度呈現哪個或哪些區域之指示。上文描述用於對區域區分優先之一些可能方案,但所主張之主題之範圍在此等態樣不受限制。在方塊1430處,可執行場景之較低保真度呈現,且在方塊1440處,可以較高保真度呈現最高優先權區域。在方塊1450處,可同樣以較高保真度呈現下一較低優先權區域。在方塊1460處,可確定是否已呈現最後之區域。若為否,則處理返回方塊1450,其中呈現下一較低優先權區域。若已呈現最後之區域,則處理結束。根據所主張之主題之實施例可包含方塊1410-1460之全部、多於全部或少於全部。此外,方塊1410-1460之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
如上所述,對於一些實施例,使用者可指示首先呈現場景之哪個區域,或哪些區域具有較高優先權。對於一些實施例,使用者可中斷呈現並選擇及/或重新選擇隨後要呈現之區域。舉例而言,使用者可對光照參數作出改變,且使用者可能希望在訊框之特定區域中見到光照改變之效果。使用者可初始地選擇要首先呈現之區域。對於一些實施例,使用者亦可稍後選擇訊框之隨後要呈現之另一區域。亦即,使用者可中斷當前呈現操作,並對訊框之各個區域將發生呈現之次序重新區分優先。
除對訊框之各個區域將發生呈現之次序重新區分優先外,對於一或多個實施例,使用者可在任何點中斷呈現並對光照參數作出改變。隨後對於一些實施例,呈現操作可自動重新開始,或在其它實施例中可手動重新開始,且再次,使用者可具有對訊框之區域將被呈現之次序區分優先之能力。
對於一例示性實施例,可在任何點中斷訊框之呈現(無論是初始呈現還是重新呈現)。舉例而言,對於一些實施例,可在訊框之初始呈現期間初始化一或多個對象索引化快取記憶體。對於一例示性實施例,使用者可在初始呈現期間在已創建所有快取記憶體之前作出光照改變。回應於光照參數之變化,可使用在訊框之初始呈現(此實例中為部分呈現)期間創建之快取記憶體而發生重新呈現操作。重新呈現操作亦可初始化在訊框之初始呈現期間未被初始化之額外快取記憶體。
對於一個實例,訊框之呈現(可為初始呈現或重新呈現)可以場景之較低保真度表現開始,如上所述。使用者可能能夠自較低保真度顯示中辨別出可能需要光照改變。使用者可在不等待完全保真度呈現完成之情況下作出所述改變。對於一實施例,使用者可每當需要時中斷訊框之呈現,且呈現操作可回應於光照參數之改變而自動重新開始。對於一實施例,呈現操作可手動重新開始。對於一些實施例且如上所述,可確定哪些操作受到光照參數改變之影響,且可對那些操作進行重新計算,同時可自適當快取記憶體中擷取未受影響之操作之結果。在一些情況下,若使用者在已針對一或多個操作創建快取記憶體之前中斷呈現,則亦可計算彼等操作並創建適當之對象索引化快取記憶體。當然,此等僅為中斷訊框之呈現之實例,且所主張之主題之範圍在此等態樣不受限制。
圖15為描繪藉由較低保真度及較高保真度過程呈現之場景之例示性顯示1500的圖。對於此實例,可能根據上述實施例,場景已初始地使用較低保真度過程進行呈現。可執行此實例之較高保真度呈現,其在場景之頂部處開始並沿顯示向下進行,如圖中由水平虛線1515及相關聯之箭頭所描繪。對於此實例,線1515上方之區域1510已以較高保真度進行重新呈現。線1515下方之區域1520表示先前已以較低保真度呈現且正等待較高保真度呈現之區域。顯示1500之交叉影線部分意謂描繪具有由較高保真度呈現產生之增加之表面細節的區域。
如先前所論述,對於一些實施例,使用者可對呈現過程重新區分優先或中斷呈現過程。舉例而言,使用者可對一或多個光照參數作出改變。對於此實例,當前處理中之呈現可停止並回應於光照參數之改變而重新開始。或者,作為另一實例,使用者可能需要集中於顯示之特定區域,且可在呈現剩餘區域之前引導對該區域執行較高保真度呈現。對於圖15中描繪之實例,當較高保真度呈現正在進行時,使用者可選擇區域1522。可將區域1522視為高優先權區域,且可在低保真度顯示區域1520內之剩餘區域之前對區域1522進行處理。一旦已以較高保真度呈現區域1522,則對於此實例,呈現過程可繼續其自頂部向底部模式。使用者隨後可能需要再次中斷自頂部向底部模式,且可選擇隨後處理區域1524。使用者可繼續中斷呈現過程任何次數,以對參數範圍(包含但不限於光照參數)中之任一者作出改變,或對顯示之區域將被呈現之次序重新區分優先。
儘管圖15之實例描繪對區域進行自頂部向底部處理,且儘管使用者選擇之高優先權區域展示為矩形區域,但此等僅為實例,且所主張之主題之範圍在此等態樣不受限制。
圖16為中斷訊框之呈現之方法之例示性實施例的流程圖。在方塊1610處,可將與訊框之呈現相關聯之對象資訊儲存在對象索引化快取記憶體中。在方塊1620處,可中斷呈現過程,且在方塊1630處,可使用儲存在對象索引化快取記憶體中之對象資訊之至少一子集來對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊1610-1630之全部、多於全部或少於全部。此外,方塊1610-1630之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖17為中斷訊框之呈現並對訊框進行重新呈現之方法之例示性實施例的流程圖。對於此實例,處理可開始於方塊1705處,其中如所指示,可為當前區域分配快取記憶體。對於此實例,可將待呈現之場景劃分為許多區域。該等區域之每一者可具有與其相關聯之一或多個(或無)對象。對象索引化快取記憶體可與該等對象相關聯,如先前所論述。對於此實例,可能需要為訊框之初始呈現分配快取記憶體(在訊框之初始呈現之前可能未建立快取記憶體)。在方塊1710處,作為呈現過程之一部分,可計算對象資訊(可能包含中間遮影結果及/或其它資訊)並將其儲存在一或多個快取記憶體中。在方塊1715處,可確定是否已呈現所有區域。若是,則處理結束。若有區域剩餘,則處理可進行至方塊1725,其中可確定使用者是否已請求中斷呈現操作。若呈現尚未中斷,則在方塊1720處,處理可針對下一區域開始,且圖17之例示性過程可返回方塊1705。
對於此實例,若使用者已請求中斷呈現操作(例如,無論是對光照參數作出改變及/或是對區域將被呈現之次序重新區分優先),則在方塊1727處可自使用者接收光照參數及/或區域優先權資訊,且在方塊1730處可開始重新呈現過程,其中可針對最高優先權區域進行處理。最高優先權區域可為預定的,或可由使用者選擇,或可為先前中斷之呈現過程中待呈現之下一區域。當然,此等僅為可如何確定最高優先權區域之實例,且所主張之主題之範圍在此等態樣不受限制。
在方塊1735處,對於當前區域,若先前未分配快取記憶體或若需要額外之快取記憶體,則可分配快取記憶體。如先前所論述,快取記憶體可包括對象索引化快取記憶體。在方塊1740處,可使用經快取儲存之對象資訊及/或重新計算之資訊來呈現/重新呈現當前區域,且在方塊1745處,可將計算及/或重新計算之資訊快取儲存在一或多個先前分配之對象索引化快取記憶體中。在方塊1750處,若有剩餘區域要呈現,則可在方塊1755處開始下一區域之處理,且可在方塊1735處繼續呈現操作。若無剩餘區域要呈現,則處理結束。根據所主張之主題之實施例可包含方塊1705-1750之全部、多於全部或少於全部。此外,方塊1705-1750之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖18為包括光源1820、對象1830及對象1840之例示性場景1800之方塊圖。描繪相機1810以便說明此實例之相機之可能觀看點。場景1800意謂表示3D圖形場景,其具有包括球體之對象1830及1840,但當然,所主張之主題之範圍在此態樣不受限制。
對於例示性場景1800,光源1820對於對象1840而言可能可見(即,為其提供光)。並且對於此實例,光源1820對於對象1830而言可能不可見。然而,對於此實例,對象1830上可見到來自對象1840之反射1835。如上所述,回應於光照參數之變化,可進行場景之重新呈現。對於一些實施例,可重新計算受到光照參數改變影響之對象資訊,且在各種情況下,可自對象索引化快取記憶體中提取未受光照參數改變影響之對象資訊。對於圖18之實例,顯然,對光源1820之改變可影響與對象1840相關聯之對象資訊。然而,對於此實例,由於對象1830上之來自對象1840之反射之緣故,因此對象1830可間接受到對光源1820之改變之影響。因此,對於一些實施例,可為場景之一些或全部對象維持一相依性列表(或一個以上列表)。該相依性列表可包括羅列哪些對象可將光反射及/或折射至特定對象上的資訊。對於一實施例,相依性列表可自動產生並得以維持,而不需要使用者干涉。對於一些實施例,使用者可產生及/或修改相依性列表。
對於一實施例,可維持描述哪些對象可直接受到對各種光源之改變影響之一或多個列表。可維持描述哪些對象可間接受到對各種光源之改變影響之一或多個其它列表。此等列表可包含關於場景中各個對象之間的相依性之資訊。對於例示性場景1800,描述直接受到光源1820影響之對象之列表可包含識別對象1840之資訊。描述間接受到光源1820影響之對象之列表可包含識別對象1830之資訊,且亦可包含將對象1840識別為對象1830獲得來自光源1820之光所依賴之對象的資訊。或者,對於一實施例,不同於描述間接受到特定光源影響之對象之列表或除該列表以外,可為每一對象維持包含識別特定對象所依賴之其它對象之資訊的列表。因此,對於此與對象1830相關聯之例示性列表,可識別出對象1840。此外,對於一些實施例,一或多個對象可具有與其相關聯之該對象反射及/或折射光於其上之其它對象的列表。舉例而言,與對象1840相關聯之此種列表可包含識別對象1830之資訊。上述用於產生及/或維持與對象之間的光照相依性有關之資訊之技術及/或方法僅為實例,且所主張之主題之範圍在此等態樣不受限制。
對於一或多個實施例,若改變光照參數從而影響一或多個對象,則可確定其它對象是否可能藉由反射及/或折射光之方式而間接受到光照改變之影響。此種確定可基於(至少部分)如上所述之包括相依性資訊之列表。若確定存在此等間接影響,則可作為重新呈現過程之一部分而重新計算受到間接影響之對象之受影響對象資訊。以此方式,對於此實例,若作出影響對象1840之光照改變,則可重新計算與對象1830相關聯之對象資訊。對於一或多個實施例,使用者可選擇啟用或禁用對間接受影響對象資訊之重新計算。
儘管本文描述之用於辨別光照相依性之實施例論述以逐個對象為基礎儲存資訊,但所主張之主題之範圍在此態樣不受限制。舉例而言,用於辨別場景之對象之間的光照相依性之實施例可實施在使用可經像素索引化之緩衝器之重新光照引擎中。此等緩衝器可為一或多個像素儲存關於哪些對象與特定像素相關聯之資訊。根據所主張之主題之像素索引化緩衝器之實施例可維持描述場景之對象之間的光照相依性之一或多個列表。
圖19為確定對象之間的光照相依性之方法之例示性實施例的流程圖。在方塊1910處,可修改光照參數。在方塊1920處,可確定複數個對象中哪些可直接受到對光照參數之修改影響。對於一實施例,若對象對於正被修改之光源為可見的,則可認為該對象直接受到對光照參數之修改影響。在方塊1930處,可確定該複數個對象中哪些對象間接受到對光照參數之修改影響。對於一實施例,若對象自直接受到對光照參數之修改影響之對象接收反射及/或折射光,則可認為該對象間接受到對光照參數之修改影響。然而,"直接受影響"及"間接受影響"之此等描述僅為實例,且所主張之主題之範圍在此等態樣不受限制。在方塊1940處,可重新計算與直接及間接受影響之對象相關聯之對象資訊。根據所主張之主題之實施例可包含方塊1910-1940之全部、多於全部或少於全部。此外,方塊1910-1940之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
對於上述實施例中之至少一些實施例,可對光照參數作出改變,且可使用儲存在一或多個對象索引化快取記憶體中之對象資訊與受到光照參數改變影響之對象之重新計算之資訊的組合對訊框進行重新呈現。藉由使用儲存在快取記憶體中之資訊,可加速重新呈現過程,如上所述。亦可能有利的為,在場景之景深或其它相機/鏡頭參數改變之情況下提供加速重新呈現。經加速之回應於例如景深之相機參數改變的重新呈現可為技術員或其它使用者提供快速反饋,且可增加技術員之生產力以及消耗較少計算平臺資源。
當使用者改變場景之景深時提供某種程度之交互式使用者體驗的先前嘗試可包含:可能藉由改變各個像素之模糊度以試圖以景深來近似完全呈現可能呈現之外觀,來操縱二維影像之顯示。如之前所論述,先前系統之完全保真度呈現可能非常耗時且/或耗費資源。
根據所主張之主題實施之實施例可將三維對象資料儲存在對象索引化快取記憶體中,如上所述。對於一或多個實施例,當對相機參數作出改變時,可使用經快取儲存之資訊中之一些或全部,藉此大大減少執行重新呈現所需之計算量。此外,因為可針對光柵化操作優化圖形處理單元,所以可以加速方式執行以新相機參數進行之完全保真度重新呈現,藉此為技術員或其它使用者提供更具交互性之體驗。
圖20為加速回應於景深之變化而進行之訊框之重新呈現的方法之例示性實施例的流程圖。圖20可與圖5享有一些類似之處。可在方塊2010處讀取場景資料。在方塊2020處,可對場景之對象執行切割(鑲嵌)操作。在方塊2030處,可執行遮影操作,且在方塊2040處,可對影像進行光柵化。對於一或多個實施例,遮影操作中之至少一些之結果可儲存在一或多個對象索引化快取記憶體中。此外,對於一實施例,光柵化可由GPU執行,但所主張之主題之範圍在此態樣不受限制。在方塊2050處,可對場景之景深作出改變。並非例如如上文結合圖5描述返回遮影操作,而是處理可返回方塊2040且可以更新之景深對訊框進行重新光柵化。因為對於此實施例不再執行切割及遮影操作,所以至少在先前遮影結果儲存在一或多個對象索引化快取記憶體中之程度上,可對訊框進行快速重新呈現。對於一些實施例,可針對結果先前未儲存在對象索引化快取記憶體中之彼等操作重新計算一些遮影操作。根據所主張之主題之實施例可包含方塊2010-2050之全部、多於全部或少於全部。此外,方塊2010-2050之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖21為加速回應於相機參數修改而進行之訊框之重新呈現的方法之例示性實施例的流程圖。在方塊2110處,可將與訊框之呈現相關聯之對象資訊儲存在對象索引化快取記憶體中,且在方塊2120處,可修改相機參數。對於一實施例,相機參數可包括景深。在方塊2130處,可使用儲存在對象索引化快取記憶體中之對象資訊之至少一子集來對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊2110-2130之全部、多於全部或少於全部。此外,方塊2110-2130之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
除加速回應於對相機參數之改變而執行之重新呈現操作外,可能亦需要加速回應於相機位置之改變而執行之重新呈現操作。對於一些例示性實施例,相機位置可能與相機定向及/或視場相關,但所主張之主題之範圍在此態樣不受限制。如上所述,呈現過程之一部分可涉及確定自相機之視角觀看哪些對象或對象上哪些點可見。若相機移動,則可見點之集合可能變化。對於在相機移動之前可能已被隱藏而現在可見之點,先前不會已快取儲存任何資訊,且因此可執行額外操作以分配快取記憶體(若先前未執行),計算遮影操作,且/或將計算結果儲存在分配之快取記憶體中。
圖22為加速回應於相機位置之改變而進行之訊框之重新呈現的方法之例示性實施例的流程圖。可在方塊2210處讀取場景資料。在方塊2220處,可對場景之對象執行切割(鑲嵌)操作。在方塊2230處,可執行遮影操作,且在方塊2240處,可對影像進行光柵化。對於一或多個實施例,遮影操作中之至少一些之結果可儲存在一或多個對象索引化快取記憶體中。此外,對於一實施例,光柵化可由GPU執行,但所主張之主題之範圍在此態樣不受限制。在方塊2250處,可對場景之相機位置作出改變。為重新呈現場景,處理可返回方塊2220。在方塊2220處,可確定哪些先前隱藏之點現在可見且哪些先前可見之點現在被隱藏。在方塊2230處,可針對對於相機而言現在可見之先前隱藏之點執行遮影操作,且可將遮影結果儲存在對象索引化快取記憶體中。在方塊2230處,亦可重新計算受到相機移動影響之其它點之遮影結果。在方塊2240處,可使用新近可見之點及受到相機移動影響之其它點的計算出之遮影結果與先前快取儲存在一或多個對象索引化快取記憶體中之對象資訊的組合來對訊框進行重新光柵化。對於一或多個實施例,重新光柵化可由GPU執行。藉由計算受到相機移動影響之點之遮影結果並使用快取儲存之資訊(在可能之情況下),可大大加速回應於相機位置之改變而進行之訊框之重新呈現。可藉由使用一或多個GPU執行光柵化操作來進一步加速重新呈現。
根據所主張之主題之實施例可包含方塊2210-2250之全部、多於全部或少於全部。此外,方塊2210-2250之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
圖23為加速回應於相機位置之改變而進行之訊框之重新呈現的方法之例示性實施例的流程圖。在方塊2310處,可將與訊框之呈現相關聯之對象資訊儲存在對象索引化快取記憶體中,且在方塊2320處,可修改相機位置。方塊2330處,可使用儲存在對象索引化快取記憶體中之對象資訊之至少一子集來對訊框進行重新呈現。根據所主張之主題之實施例可包含方塊2310-2330之全部、多於全部或少於全部。此外,方塊2310-2330之次序僅為一種例示性次序,且所主張之主題之範圍在此態樣不受限制。
在以上描述內容中,已描述所主張之主題之各個態樣。出於闡釋之目的,陳述系統及配置以提供對所主張之主題之詳盡理解。然而,得到本揭示案之益處之熟習此項技術者應瞭解,可在無特定細節之情況下實踐所主張之主題。在其它情況下,省略及/或簡化眾所周知之特徵以免混淆所主張之主題。雖然本文已說明及/或描述某些特徵,但熟習此項技術者現將構想出許多修改、替代、變化及/或等效物。因此,應瞭解,所附申請專利範圍希望涵蓋在所主張之主題之真實精神內的所有此類修改及/或變化。
100...計算平臺
110...CPU
120...記憶體控制器集線器
130...系統記憶體
140...輸入/輸出集線器
150...圖形處理單元
160...顯示裝置
170...圖形記憶體
200、1800...場景
210、1810...相機
211...平截頭體線
220、230、240、1820...光源
250、260、270...三維對象
251、262、264...點
280...影像平面
450、1000...柵格快取記憶體
1010...遮影器輸入資料
1020...遮影器輸出及中間結果資料
1500...顯示
1510...高保真度顯示區域
1515...水平虛線
1520...低保真度顯示區域
1522、1524...高優先權區域
1830、1840...對象
1835...反射
在本說明書之結束部分特定指出並清楚地主張了主題。然而若結合附圖閱讀,則藉由參考以下具體實施方式可最佳地理解關於操作之組織及方法兩者的所主張之主題,以及其目的、特徵及優點,附圖中:圖1為包括圖形處理單元之計算平臺之例示性實施例的方塊圖;圖2為包括複數個光源及複數個三維對象之例示性場景的圖;圖3為交互式重新光照過程之例示性實施例的圖;圖4為用於加速訊框之重新呈現之方法之例示性實施例的流程圖;圖5為用於加速訊框之重新呈現之方法之額外例示性實施例的流程圖;圖6為用於加速訊框之重新呈現之方法之額外例示性實施例的流程圖;圖7為用於加速訊框之重新光照之方法之額外例示性實施例的流程圖;圖8為用於加速訊框之重新光照之方法之例示性實施例的流程圖,該方法包括將與訊框之呈現相關聯之對象資訊儲存在對象索引化快取記憶體中;圖9為描繪與對象上一點相關聯之複數個光之資訊塊的圖;圖10為柵格快取記憶體之例示性實施例的方塊圖;圖11為用於確定與呈現操作相關聯之項目之優先列表中哪些將被快取儲存之方法之例示性實施例的流程圖;圖12為用於重新計算依據經修改之外部檔案之經快取儲存之對象資訊的方法之例示性實施例的流程圖;圖13為用於執行較低保真度呈現之方法之例示性實施例的流程圖;圖14為用於漸進精細化場景之呈現之方法之例示性實施例的流程圖;圖15為描繪正藉由較低保真度及較高保真度過程呈現之場景之例示性顯示的圖;圖16為用於中斷訊框之呈現之方法之例示性實施例的流程圖;圖17為用於中斷訊框之呈現並對訊框進行重新呈現之方法之例示性實施例的流程圖;圖18為描繪包括光源及兩個對象之例示性場景的圖;圖19為用於確定對象之間的光照相依性之方法之例示性實施例的流程圖;圖20為用於加速回應於景深改變而進行之訊框之重新呈現的方法之例示性實施例的流程圖;圖21為用於加速回應於相機參數改變而進行之訊框之重新呈現的方法之例示性實施例的流程圖;圖22為用於加速回應於相機位置改變而進行之訊框之重新呈現的方法之例示性實施例的流程圖;以及圖23為用於加速回應於相機位置改變而進行之訊框之重新呈現的方法之另一例示性實施例的流程圖。
(無元件符號說明)

Claims (8)

  1. 一種用於重新呈現訊框之加速的方法,其包括:以位於可由一圖形處理單元存取之一記憶體中的每個三維圖形對象點為基礎,將用於一訊框之一第一呈現與至少一個三維圖形對象相關的至少一個中間計算的至少一個結果儲存於一個三維圖形對象索引化快取記憶體中,該三維圖形對象索引化快取記憶體更儲存用於該訊框之該第一呈現之該至少一個中間計算與該至少一個三維圖形對象相關的一或多個輸入值,其中該至少一個中間計算是與由該圖形處理單元執行的該訊框之該第一呈現的一遮影操作相關聯;修改一光照參數,以至少部分回應於一使用者所指定之一光照改變;以及使用該圖形處理單元以及使用與該訊框之該第一呈現之該遮影操作相關的該至少一個中間計算的儲存在該三維圖形對象索引化快取記憶體中的該至少一個結果的至少一子集來重新呈現該訊框,以至少部分回應於上述該光照參數之修改。
  2. 如請求項1之用於重新呈現訊框之加速的方法,其中上述重新呈現該訊框包括,決定用於與該訊框之該重新呈現之一遮影操作相關聯的至少一個計算的所有的一或多個輸入值是否和用於與該訊框之該第一呈現之該遮影操作相關聯的該至少一個中間計算的所有的該一或多個輸入值匹配,該訊框之該重新呈現之該遮影操作對應於該訊框之該第一呈現之該遮影操作,並且,回應於匹配之 決定,針對該訊框之該重新呈現,使用與該訊框之該第一呈現的該遮影操作相關聯的該至少一個中間計算的儲存在該三維圖形對象索引化快取記憶體中的結果。
  3. 如請求項1之用於重新呈現訊框之加速的方法,其中上述重新呈現該訊框更包括決定至少一個三維圖形對象之多個點的何者受到上述該光照參數之修改的影響。
  4. 如請求項3之用於重新呈現訊框之加速的方法,其中上述重新呈現該訊框進一步包括重新計算與至少一個三維圖形對象之該等點中被決定受到上述該光照參數之修改的影響的至少一個點相關聯的至少一個中間計算的至少一個結果。
  5. 如請求項3之用於重新呈現訊框之加速的方法,其中上述重新呈現該訊框更包括從該三維圖形對象索引化快取記憶體中擷取與至少一個三維圖形對象之該等點中被決定不受到上述該光照參數之修改的影響的至少一個點相關聯的至少一個中間計算的至少一個結果。
  6. 如請求項1之用於重新呈現訊框之加速的方法,其中上述重新呈現該訊框包括使用該圖形處理單元對該訊框進行重新光柵化。
  7. 如請求項5之用於重新呈現訊框之加速的方法,其中上述重新呈現該訊框包括利用與該至少一個三維圖形對象之該等點中被決定不受到上述該光照參數之修改的影響的該至少一個點相關聯的該至少一個中間計算的該至少一個結果,以及更利用與該至少一個三維圖形對象之該等點中被決定受到上述該光照參數之修改的影響的該至 少一個點相關聯的至少一個中間計算的已重新計算的該至少一個結果,來對該訊框進行重新光柵化。
  8. 如請求項1之用於重新呈現訊框之加速的方法,其中上述將用於該訊框之該第一呈現與該至少一個三維圖形對象相關的該至少一個中間計算的該至少一個結果儲存於該三維圖形對象索引化快取記憶體包括將像素顏色資訊儲存。
TW096127082A 2006-07-25 2007-07-25 重新呈現具有明暗變化的訊框之加速 TWI479447B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/493,058 US8633927B2 (en) 2006-07-25 2006-07-25 Re-render acceleration of frame with lighting change

Publications (2)

Publication Number Publication Date
TW200820128A TW200820128A (en) 2008-05-01
TWI479447B true TWI479447B (zh) 2015-04-01

Family

ID=38985711

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096127082A TWI479447B (zh) 2006-07-25 2007-07-25 重新呈現具有明暗變化的訊框之加速

Country Status (4)

Country Link
US (1) US8633927B2 (zh)
KR (1) KR100908147B1 (zh)
CN (1) CN101178807B (zh)
TW (1) TWI479447B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8633927B2 (en) 2006-07-25 2014-01-21 Nvidia Corporation Re-render acceleration of frame with lighting change
US8022958B2 (en) * 2007-04-04 2011-09-20 Qualcomm Incorporated Indexes of graphics processing objects in graphics processing unit commands
US8547378B2 (en) * 2008-08-28 2013-10-01 Adobe Systems Incorporated Time-based degradation of images using a GPU
US8810572B2 (en) * 2011-10-31 2014-08-19 Qualcomm Incorporated Tessellation cache for object rendering
US8970596B2 (en) * 2012-02-17 2015-03-03 Apple Inc. Using render-graph characteristics to optimize the rendering of an adjusted image
EP3123449B1 (en) 2014-03-25 2020-01-01 Apple Inc. Method and system for representing a virtual object in a view of a real environment
KR102306780B1 (ko) * 2014-12-15 2021-09-30 삼성전자주식회사 영상 처리 장치 및 방법
US10155158B2 (en) * 2016-06-13 2018-12-18 King.Com Ltd. Rendering method
KR101966247B1 (ko) * 2016-12-22 2019-04-08 주식회사 디지털아이디어 3차원 영상의 오브젝트 처리장치 및 그 동작 방법
CN114140571A (zh) * 2020-08-15 2022-03-04 华为云计算技术有限公司 渲染方法、设备以及系统
CN114255315A (zh) * 2020-09-25 2022-03-29 华为云计算技术有限公司 一种渲染方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050083340A1 (en) * 2003-10-15 2005-04-21 Microsoft Corporation Bi-scale radiance transfer
WO2005104042A1 (en) * 2004-04-20 2005-11-03 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-gpu acceleration for real-time volume rendering on standard pc
US20060028472A1 (en) * 2003-06-30 2006-02-09 Microsoft Corporation Hardware-accelerated anti-aliased vector graphics

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088054A (en) 1988-05-09 1992-02-11 Paris Ii Earl A Computer graphics hidden surface removal system
US5283860A (en) 1990-11-15 1994-02-01 International Business Machines Corporation System and method for displaying trimmed surfaces using bitplane masking
US5592678A (en) 1991-07-23 1997-01-07 International Business Machines Corporation Display adapter supporting priority based functions
US5388841A (en) 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
GB9301661D0 (en) 1993-01-28 1993-03-17 Philips Electronics Uk Ltd Rendering an image
US5574835A (en) 1993-04-06 1996-11-12 Silicon Engines, Inc. Bounding box and projections detection of hidden polygons in three-dimensional spatial databases
US5596686A (en) 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US5600763A (en) 1994-07-21 1997-02-04 Apple Computer, Inc. Error-bounded antialiased rendering of complex scenes
WO1997005575A1 (en) 1995-07-26 1997-02-13 Raycer, Incorporated Method and apparatus for span sorting rendering system
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6064393A (en) * 1995-08-04 2000-05-16 Microsoft Corporation Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5774386A (en) 1995-09-08 1998-06-30 Eastman Kodak Company Method and apparatus for performing function evaluation using a cache
US5977986A (en) 1995-12-06 1999-11-02 Intel Corporation Image encoding for faster decoding
US5701404A (en) 1996-05-31 1997-12-23 Softimage Method and system for efficiently trimming a nurbs surface with a projected curve
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US5914726A (en) * 1997-06-27 1999-06-22 Hewlett-Packard Co. Apparatus and method for managing graphic attributes in a memory cache of a programmable hierarchical interactive graphics system
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6329986B1 (en) 1998-02-21 2001-12-11 U.S. Philips Corporation Priority-based virtual environment
US6570578B1 (en) * 1998-04-03 2003-05-27 Avid Technology, Inc. System for automatic generation of selective partial renderings of complex scenes
US6091422A (en) * 1998-04-03 2000-07-18 Avid Technology, Inc. System for editing complex visual data providing a continuously updated rendering
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
WO2000011607A1 (en) 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US7817158B1 (en) * 1998-10-23 2010-10-19 Autodesk, Inc. Specifying operations to be applied to the attributes of a set of objects
US6549210B1 (en) 1999-02-03 2003-04-15 Ati Technologies Inc. Method and apparatus for cache index hashing
US6614445B1 (en) 1999-03-23 2003-09-02 Microsoft Corporation Antialiasing method for computer graphics
US6603474B1 (en) 1999-05-27 2003-08-05 International Business Machines Corporation Method and apparatus for occlusion culling of objects in a data processing system
US6426747B1 (en) * 1999-06-04 2002-07-30 Microsoft Corporation Optimization of mesh locality for transparent vertex caching
US6577679B1 (en) 1999-09-30 2003-06-10 Hewlett-Packard Development Company Lp Method and apparatus for transcoding coded picture signals from object-based coding to block-based coding
US6377257B1 (en) 1999-10-04 2002-04-23 International Business Machines Corporation Methods and apparatus for delivering 3D graphics in a networked environment
US6684255B1 (en) 1999-10-26 2004-01-27 International Business Machines Corporation Methods and apparatus for transmission and rendering of complex 3D models over networks using mixed representations
US6459434B1 (en) 1999-11-03 2002-10-01 Intel Corporation Apparatus and method for progressively rendered procedural textures
US6396503B1 (en) 1999-12-31 2002-05-28 Hewlett-Packard Company Dynamic texture loading based on texture tile visibility
AU2001239926A1 (en) 2000-02-25 2001-09-03 The Research Foundation Of State University Of New York Apparatus and method for volume processing and rendering
US6426755B1 (en) 2000-05-16 2002-07-30 Sun Microsystems, Inc. Graphics system using sample tags for blur
US7071937B1 (en) 2000-05-30 2006-07-04 Ccvg, Inc. Dirt map method and apparatus for graphic display system
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US6593925B1 (en) 2000-06-22 2003-07-15 Microsoft Corporation Parameterized animation compression methods and arrangements
US7348977B2 (en) 2000-07-19 2008-03-25 Pixar Subsurface scattering approximation methods and apparatus
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6999100B1 (en) 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6672963B1 (en) 2000-09-18 2004-01-06 Nintendo Co., Ltd. Software implementation of a handheld video game hardware platform
KR20020022388A (ko) 2000-09-20 2002-03-27 박주선 주문형 미디어 유료 서비스 시스템 및 그 방법
US7376279B2 (en) 2000-12-14 2008-05-20 Idx Investment Corporation Three-dimensional image streaming system and method for medical images
US7644131B2 (en) 2000-12-27 2010-01-05 INOVO Limited Optimized image delivery over limited bandwidth communication channels
US6677957B2 (en) 2001-01-09 2004-01-13 Intel Corporation Hardware-accelerated visualization of surface light fields
US6798421B2 (en) * 2001-02-28 2004-09-28 3D Labs, Inc. Ltd. Same tile method
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
EP1248250A1 (en) 2001-04-04 2002-10-09 Sun Microsystems, Inc. Optimized data access for drawing operations
US6754799B2 (en) 2001-05-16 2004-06-22 Microsoft Corporation System and method for indexing and retrieving cached objects
US7145577B2 (en) 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
US6989840B1 (en) 2001-08-31 2006-01-24 Nvidia Corporation Order-independent transparency rendering system and method
EP1437687B1 (en) 2001-10-15 2008-11-05 Fujitsu Limited Hierarchical sort of objects linked in virtual three-dimensional space
JP3761085B2 (ja) * 2001-11-27 2006-03-29 株式会社ソニー・コンピュータエンタテインメント 画像処理装置及びその構成部品、レンダリング処理方法
US6903741B2 (en) * 2001-12-13 2005-06-07 Crytek Gmbh Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene
US20030169255A1 (en) 2002-03-11 2003-09-11 Lavelle Michael G. Two-sided lighting in a single pass
US7009605B2 (en) 2002-03-20 2006-03-07 Nvidia Corporation System, method and computer program product for generating a shader program
US7262770B2 (en) 2002-03-21 2007-08-28 Microsoft Corporation Graphics image rendering with radiance self-transfer for low-frequency lighting environments
KR20030083962A (ko) * 2002-04-24 2003-11-01 주식회사 알오지 3차원 렌더링 이미지에 쉐이딩 효과를 적용하는 방법 및이를 구현한 프로그램을 저장한 정보저장매체
US6809739B2 (en) 2002-04-30 2004-10-26 Silicon Graphics, Inc. System, method, and computer program product for blending textures during rendering of a computer generated image using a single texture as a mask
US7009608B2 (en) 2002-06-06 2006-03-07 Nvidia Corporation System and method of using multiple representations per object in computer graphics
US6853377B2 (en) 2002-06-26 2005-02-08 Nvidia Corporation System and method of improved calculation of diffusely reflected light
US6876362B1 (en) 2002-07-10 2005-04-05 Nvidia Corporation Omnidirectional shadow texture mapping
JP4467267B2 (ja) 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
WO2004047008A1 (en) 2002-11-15 2004-06-03 Esc Entertainment, A California Corporation Reverse-rendering method for digital modeling
US7145565B2 (en) 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
FR2852128A1 (fr) 2003-03-07 2004-09-10 France Telecom Procede pour la gestion de la representation d'au moins une scene 3d modelisee.
US7259765B2 (en) * 2003-04-04 2007-08-21 S3 Graphics Co., Ltd. Head/data scheduling in 3D graphics
US8264489B2 (en) 2003-07-11 2012-09-11 Intel Corporation Interface remoting
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
US7091979B1 (en) 2003-08-29 2006-08-15 Nvidia Corporation Pixel load instruction for a programmable graphics processor
US7015914B1 (en) 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7145656B2 (en) 2003-12-15 2006-12-05 E. I. Du Pont De Nemours And Company Computer-implemented method for matching paint
US7554538B2 (en) 2004-04-02 2009-06-30 Nvidia Corporation Video processing, such as for hidden surface reduction or removal
US7821516B2 (en) * 2004-05-17 2010-10-26 Pixar Automatic pre-render pinning of change isolated assets methods and apparatus
US7388585B2 (en) 2004-09-20 2008-06-17 My Virtual Reality Software Method, system and device for efficient distribution of real time three dimensional computer modeled image scenes over a network
US7920144B2 (en) * 2005-01-18 2011-04-05 Siemens Medical Solutions Usa, Inc. Method and system for visualization of dynamic three-dimensional virtual objects
US20060177122A1 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US7427986B2 (en) * 2005-03-03 2008-09-23 Pixar Hybrid hardware-accelerated relighting system for computer cinematography
AU2006330465B2 (en) * 2005-12-24 2011-04-07 Joshua D I Distler Methods and files for delivering imagery with embedded data
US8633927B2 (en) 2006-07-25 2014-01-21 Nvidia Corporation Re-render acceleration of frame with lighting change

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060028472A1 (en) * 2003-06-30 2006-02-09 Microsoft Corporation Hardware-accelerated anti-aliased vector graphics
US20050083340A1 (en) * 2003-10-15 2005-04-21 Microsoft Corporation Bi-scale radiance transfer
WO2005104042A1 (en) * 2004-04-20 2005-11-03 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-gpu acceleration for real-time volume rendering on standard pc

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Gershbein et al., "A fast relighting engine for interactive cinematic lighting design," Proc. SIGGRAPH '00, pp. 353-358, 2000. *

Also Published As

Publication number Publication date
KR100908147B1 (ko) 2009-07-16
CN101178807B (zh) 2011-04-06
US20080024495A1 (en) 2008-01-31
TW200820128A (en) 2008-05-01
US8633927B2 (en) 2014-01-21
CN101178807A (zh) 2008-05-14
KR20080010346A (ko) 2008-01-30

Similar Documents

Publication Publication Date Title
TWI479447B (zh) 重新呈現具有明暗變化的訊框之加速
US11682158B2 (en) Foveated rendering
US11816782B2 (en) Rendering of soft shadows
KR102442487B1 (ko) 그래픽 처리 시스템 및 그래픽 프로세서
KR102122454B1 (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
US20170004647A1 (en) Rendering graphics data on demand
JP6333840B2 (ja) 最適化ポリゴンに基づいたシェルメッシュを形成する方法
KR20230007358A (ko) 증강 현실을 위한 멀티레이어 재투영 기법들
US7508390B1 (en) Method and system for implementing real time soft shadows using penumbra maps and occluder maps
US8400445B2 (en) Image processing program and image processing apparatus
TW202141417A (zh) 用於高效多視圖光柵化的方法和裝置
US20220068012A1 (en) Shader core instruction to invoke depth culling
JP7464428B2 (ja) 画像処理装置、画像処理方法、プログラム及び記憶媒体
TW202228082A (zh) 物件空間渲染中的佈告板層
KR100865583B1 (ko) 컴퓨터 그래픽 시스템에서의 동영상의 반사 효과 처리 방법
Garrard Moving pictures: Making the most of the mobile
JP2006285372A (ja) Zソート処理回路およびこれを用いた3次元画像描画装置