TWI668577B - 渲染設備、其之渲染方法、程式和記錄媒體 - Google Patents
渲染設備、其之渲染方法、程式和記錄媒體 Download PDFInfo
- Publication number
- TWI668577B TWI668577B TW103128587A TW103128587A TWI668577B TW I668577 B TWI668577 B TW I668577B TW 103128587 A TW103128587 A TW 103128587A TW 103128587 A TW103128587 A TW 103128587A TW I668577 B TWI668577 B TW I668577B
- Authority
- TW
- Taiwan
- Prior art keywords
- rendering
- rendered
- screen images
- video
- rendering device
- Prior art date
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 208
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000008569 process Effects 0.000 claims abstract description 29
- 230000003068 static effect Effects 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 12
- 230000000670 limiting effect Effects 0.000 description 60
- 238000005286 illumination Methods 0.000 description 40
- 239000000872 buffer Substances 0.000 description 38
- 230000000981 bystander Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 15
- 230000009471 action Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000006837 decompression Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 239000003826 tablet Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000000149 argon plasma sintering Methods 0.000 description 1
- 230000000386 athletic effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- -1 buildings Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一種渲染複數個螢幕畫面的渲染設備,其中該等複數個螢幕畫面中所含之渲染物件的至少一局部對該等複數個螢幕畫面而言為共通。該設備自該等共通渲染物件中識別出一其渲染屬性為靜態的第一渲染物件,以及一其渲染屬性為可變的第二渲染物件。該設備對於該等複數個螢幕畫面共集地執行對於該第一渲染物件的渲染處理,並且對於該等複數個螢幕畫面各者分別地執行對於該第二渲染物件的渲染處理。
Description
本發明概略有關於影像處理,並且尤其是關於一種用於客製化多位使用者可觀見之影像的方法和設備。
視訊遊戲產業既已自單立式街機遊戲,至家庭式電腦遊戲,到出現專用主控台的遊戲而大幅演進。後來廣泛大眾存取網際網路導致出現另一項重大發展,亦即「雲端遊戲」。在雲端遊戲系統中,玩家可運用一般具有網際網路功能的應用設備,像是智慧型手機或平板,以透過網際網路連接至視訊遊戲伺服器。視訊遊戲伺服器可對此玩家啟動一會期,並且可為多位玩家進行該項作業。該視訊遊戲伺服器可渲染視訊資料,並且依照玩家的動作(即如移動、選擇)以及該遊戲的其他屬性對該玩家產生音訊。經編碼的視訊和音訊會經由網際網路遞送至該玩家的裝置上,然後予以重製為影像與可聽聞的聲音。按此方式,來自世界各地的玩家可遊玩一視訊遊戲而無須使用特殊的視訊遊戲主控台、軟體或是圖形處理硬體。
當產生對於多重玩家視訊遊戲的圖形時,若須針對多位玩家複製相同的影像,就可能會分享一些像是渲染處理或頻寬資源的資源。同時,已認知到為令遊戲體驗更為生動且更多樂趣,在一場景內之物件的圖
形外觀可能需要針對不同的玩家進行客製化,即使是該等共享相同場景亦然。由於資源共享和客製化的這些要求實為彼此相悖之故,因此能夠達成兩者目的之解決方案確為業界所冀望。
本發明是針對於傳統技術中的此等問題所製作。
在本發明第一態樣中,本發明提供一種用於渲染複數個螢幕畫面的渲染設備,其中該等複數個螢幕畫面中所含之渲染物件的至少一局部對該等複數個螢幕畫面而言為共通,其包含:識別裝置,其係用以自該等共通渲染物件中識別出一其渲染屬性為靜態的第一渲染物件,以及一其渲染屬性為可變的第二渲染物件;第一渲染裝置,其係用以對於該等複數個螢幕畫面共集地執行對於該第一渲染物件的渲染處理;以及第二渲染裝置,其係用以對於該等複數個螢幕畫面各者分別地執行對於該第二渲染物件的渲染處理。
在其第二態樣中,本發明提供一種用於渲染複數個螢幕畫面的渲染方法,其中該等複數個螢幕畫面中所含之渲染物件的至少一局部對該等複數個螢幕畫面而言為共通,其包含:自該等共通渲染物件中識別出一其渲染屬性為靜態的第一渲染物件,以及一其渲染屬性為可變的第二渲染物件;對於該等複數個螢幕畫面共集地執行對於該第一渲染物件的渲染處理;以及對於該等複數個螢幕畫面各者分別地執行對於該第二渲染物件的渲染處理。
自後載之示範性具體實施例說明(並參照於隨附圖式)將即可知曉本發明的進一步特性。
10‧‧‧參與者資料庫
100‧‧‧伺服器系統
120‧‧‧客戶端裝置
120A‧‧‧客戶端裝置
130‧‧‧網際網路
140‧‧‧客戶端裝置輸入
140A‧‧‧客戶端裝置輸入
150‧‧‧媒體輸出
150A‧‧‧媒體輸出
200C‧‧‧計算伺服器
200H‧‧‧混合伺服器
200R‧‧‧渲染伺服器
204‧‧‧渲染命令集合
205‧‧‧視訊資料串流
206‧‧‧圖形輸出串流
206A‧‧‧圖形輸出串流
210C1‧‧‧網路介面元件(NIC)
210C2‧‧‧網路介面元件(NIC)
210H‧‧‧網路介面元件(NIC)
210R1‧‧‧網路介面元件(NIC)
210R2‧‧‧網路介面元件(NIC)
220C‧‧‧中央處理單元(CPU)
222C‧‧‧中央處理單元(CPU)
220H‧‧‧中央處理單元(CPU)
222H‧‧‧中央處理單元(CPU)
220R‧‧‧中央處理單元(CPU)
222R‧‧‧中央處理單元(CPU)
230C‧‧‧隨機存取記憶體(RAM)
230H‧‧‧隨機存取記憶體(RAM)
230R‧‧‧隨機存取記憶體(RAM)
240H‧‧‧圖形處理單元(GPU)
240R‧‧‧圖形處理單元(GPU)
242H‧‧‧GPU核心
242R‧‧‧GPU核心
246H‧‧‧視訊隨機存取記憶體(VRAM)
246R‧‧‧視訊隨機存取記憶體(VRAM)
250H‧‧‧圖形處理單元(GPU)
250R‧‧‧圖形處理單元(GPU)
252H‧‧‧GPU核心
252R‧‧‧GPU核心
256H‧‧‧視訊隨機存取記憶體(VRAM)
256R‧‧‧視訊隨機存取記憶體(VRAM)
260‧‧‧網路
270‧‧‧視訊遊戲功能性模組
280‧‧‧渲染功能性模組
285‧‧‧視訊編碼器
300A‧‧‧主遊戲程序
300B‧‧‧圖形控制程序
510A‧‧‧影像
510B‧‧‧影像
510C‧‧‧影像
520‧‧‧泛用物件
530‧‧‧可客製物件
1120‧‧‧物件資料庫
1122‧‧‧記錄
1124‧‧‧識別碼欄位
1126‧‧‧紋理欄位
1128‧‧‧客製化欄位
1142‧‧‧子記錄
1144‧‧‧參與者欄位
1146‧‧‧紋理欄位
1190‧‧‧紋理資料庫
1200A‧‧‧參與者A的訊框緩衝器
1200B‧‧‧參與者B的訊框緩衝器
圖1A為根據本發明之非限制性具體實施例之一含有伺服器系統之雲端式視訊遊戲系統架構的方塊圖。
圖1B為根據本發明之非限制性具體實施例之圖1A雲端式視訊遊戲系統架構的方塊圖,圖中顯示在遊戲過程中透過資料網路與一組客戶端裝置所進行的互動。
圖2A為根據本發明之非限制性具體實施例之一顯示圖1架構之各項實體元件的方塊圖。
圖2B為圖2A的變化項目。
圖2C為一顯示圖1架構內的伺服器系統之各項功能性模組的方塊圖,其可為由圖2A或2B的實體元件所實作並且可在遊戲過程中運行。
圖3A至3C為根據本發明之非限制性具體實施例之顯示在一視訊遊戲進行過程中所執行之一組處理程序的流程圖。
圖4A至4B為根據本發明之非限制性具體實施例之顯示一客戶端裝置分別地處理所收視訊和音訊之操作的流程圖。
圖5描繪根據本發明之非限制性具體實施例之位於多位玩家之螢幕畫面渲染範圍內的物件,其含有一泛用物件和一可客製物件。
圖6A為根據本發明之非限制性具體實施例而概念性地說明一物件資料庫。
圖6B為根據本發明之非限制性具體實施例而概念性地說明一紋理資料庫。
圖7概念性地說明一圖形管線。
圖8為根據本發明之非限制性具體實施例之一說明該圖形管線的像素處理子程序之步驟的流程圖。
圖9為根據本發明之非限制性具體實施例之說明在該所渲染物件為一泛用物件的情況下該像素處理子程序之進一步細節的流程圖。
圖10A及10B為根據本發明之非限制性具體實施例之說明在該所渲染物件為一可客製物件的情況下該像素處理子程序的第一通行和第二通行之分別進一步細節的流程圖。
圖11描繪根據本發明之非限制性具體實施例之在多位使用者之訊框緩衝器內的多個物件。
圖12概念性地顯示根據本發明之非限制性具體實施例之一對於兩位參與者之訊框緩衝器在時間上的演變。
圖1A略圖顯示根據本發明之非限制性具體實施例之一雲端式視訊遊戲系統架構。該架構可含有多個客戶端裝置120、120A,此等可經由像是網際網路130的資料網路連接至一伺服器系統100。圖中雖僅顯示兩台客戶端裝置120、120A,然應瞭解該雲端式視訊遊戲系統架構內之客戶端裝置的數量並無特定限制。
該等客戶端裝置120、120A的組態並無特別限制。在一些具體實施例裡,該等客戶端裝置120、120A的一或更多者可為例如個人電腦(PC)、家用遊戲機(主控台,即如XBOXTM、PS3TM、WiiTM等等)、可攜式遊
戲機、智慧型電視、機上盒(STB)等等。而在其他的具體實施例中,該等客戶端裝置120、120A的一或更多者可為一通訊或計算裝置,像是行動電話、個人數位助理(PDA)或平板電腦。
該等客戶端裝置120、120A各者可按任何適當方式,包含透過個別的區域存取網路(未予圖示)在內,以連接至網際網路130。該伺服器系統100雖亦可透過一區域存取網路(未予圖示)連接至網際網路130,然該伺服器系統100確可直接地連接至網際網路130而無須區域存取網路的中介。該雲端式遊戲伺服器系統100與該等客戶端裝置120、120A之一或更多者間的連接可包含一或更多通道。這些通道可為由實體及/或邏輯鏈路所組成,同時能夠在包含射頻、光纖、自由空間光學、銅軸線路與絞線在內的各種實體媒體上行旅。該等通道可遵行像是UDP或TCP/IP的協定。並且,該等通道的一或更多者可為由虛擬私有網路(VPN)支援。在一些具體實施例裡,該等連接的一或更多者可為會期式。
該伺服器系統100可供該等客戶端裝置120、120A的使用者能夠個別地(亦即單一玩家視訊遊戲)或者是群組方式(亦即多玩家視訊遊戲)玩視訊遊戲。該伺服器系統100亦可讓該等客戶端裝置120、120A的使用者能夠旁觀其他玩家正在玩的遊戲。非限制性的視訊遊戲範例可包含具有休閒、教育及/或運動性質的遊戲。視訊遊戲可提供參與者獲取錢幣的機會,然非必要。
該伺服器系統100亦可讓該等客戶端裝置120、120A的使用者能夠測試視訊遊戲及/或管理該伺服器系統100。
該伺服器系統100可含有一或更多計算資源,這可能包含一
或更多遊戲伺服器,並且可含有或能夠存取一或更多資料庫,這可能包含參與者資料庫10。該參與者資料庫10可儲存有關各式參與者及客戶端裝置120、120A的資訊,像是識別資料、財務資料、位置資料、人口統計資料、連接資料等等。該(等)遊戲伺服器可藉共同硬體所具體實作,或者為透過一通訊鏈路,包含可能透過網際網路130,所連接的不同的伺服器。同樣地,該(等)資料庫可具體實作於該伺服器系統100內,或者該等可經由一通訊鏈路,可能是透過網際網路130,以與其相連接。
該伺服器系統100可實作一管理應用程式,藉以在該遊戲環境的外部,像是在玩遊戲之前,處置與該等客戶端裝置120、120A的互動。例如,該管理應用程式可經組態設定以將該等客戶端裝置120、120A中其一者的使用者註冊在一使用者類別之內(像是「玩家」、「旁觀者」、「管理者」或「測試者」)、追蹤該使用者經由網際網路的連接,並且回應於該使用者的(多項)命令來發起、加入、離開或終結一遊戲的實例,以及其他眾多非限制性功能。為此目的,該管理應用程式可能需要對該參與者資料庫10進行存取。
該管理應用程式可與不同使用者類別,例如非限制地包含像是「玩家」、「旁觀者」、「管理者」及「測試者」,內的使用者進行不同的互動。因此,例如該管理應用程式可與一玩家(亦即在「玩家」使用者類別之內的使用者)進行互動,藉此讓該玩家能夠在該參與者資料庫10內設立一帳戶並且選定一視訊遊戲以供遊玩。在選定之後,該管理應用程式可叫用一伺服器側視訊遊戲應用程式。該伺服器側視訊遊戲應用程式可為由電腦可讀取指令所定義,此等指令為此玩家執行一組功能性模組,從而讓該玩家
能夠控制一視訊遊戲之虛擬世界裡的人物、頭像、賽車、座艙等等。在多玩家視訊遊戲的情況下,該虛擬世界可由兩位或更多的玩家所共享,並且其一玩家玩的遊戲可能會影響到另一位的遊戲結果。在另一範例裡,該管理應用程式可與一旁觀者(亦即「旁觀者」使用者類別之內的使用者)互動,藉以讓該旁觀者能夠在該參與者資料庫10內設立一帳號,並且自一進行中視訊遊戲的列表中選定該使用者意欲旁觀的視訊遊戲。在選定後,該管理應用程式可為該旁觀者叫用一組功能性模組,讓該旁觀者能夠觀察其他使用者的遊玩情況,然不對該遊戲裡的作用中人物進行控制。(除另表述者外,當使用到該詞彙「參與者」時是為等同地適用於「玩家」使用者類別以及「旁觀者」使用者類別兩者。)
在進一步範例裡,該管理應用程式可與一管理者(亦即「管理者」使用者類別之內的使用者)互動,讓該管理者能夠改變該遊戲伺服器應用程式的各種特性、執行更新以及管理玩家/旁觀者帳號。
又在另一範例裡,該遊戲伺服器應用程式可介接於一測試者(亦即「測試者」使用者類別之內的使用者),藉以讓該測試者能夠選定一待予測試的視訊遊戲。在選定之後,該遊戲伺服器應用程式可為該測試者叫用一組功能性模組,藉以讓該測試者能夠對該視訊遊戲進行測試。
圖1B說明,對於「玩家」或「旁觀者」使用者類別之內的使用者,在遊戲過程中於該等客戶端裝置120、120A與該伺服器系統100之間所進行的互動。
在一些非限制性具體實施例裡,該伺服器側視訊遊戲應用程式可與一客戶端側視訊遊戲應用程式併同運作,該者可為由在一客戶端裝
置,像是客戶端裝置120、120A,上執行的一組電腦可讀取指令所定義。利用客戶端側視訊遊戲應用程式可對該參與者提供客製式介面以遊玩或旁觀該遊戲並且存取遊戲特性。在其他的非限制性具體實施例裡,該客戶端裝置並不具備可由該客戶端裝置直接地執行的客戶端側視訊遊戲應用程式。相反地,可利用一網頁瀏覽器以作為自該客戶端裝置觀點的介面。該網頁瀏覽器本身可在其自有軟體環境裡實例化一客戶端側視訊遊戲應用程式,藉以將與該伺服器側視訊遊戲應用程式的互動最佳化。
應瞭解該等客戶端裝置120、120A的其一給定者亦可配備有一或更多輸入裝置(像是觸控螢幕、鍵盤、遊戲控制器、搖桿等等),藉以讓該給定客戶端裝置的使用者能夠提供輸入且參與一視訊遊戲。在其他具體實施例中,使用者可產生身體移動或是揮動一外部物件;這些移動可藉由相機或其他感測器(即如KinectTM)偵測到,同時在該給定客戶端裝置中運行的軟體會嘗試正確地猜測到該使用者是否有意將輸入提供至該給定客戶端裝置以及,若確如此,該項輸入的本質。在一給定客戶端裝置上(獨立地或是在一瀏覽器內)運行的客戶端側視訊遊戲應用程式可將所接收的使用者輸入以及所偵得的使用者動作轉譯至「客戶端裝置輸入」裡,並可透過網際網路130將其發送至雲端式遊戲伺服器系統100。
在圖1B所示的具體實施例中,該客戶端裝置120可產生客戶端裝置輸入140,而該客戶端裝置120A可產生客戶端裝置輸入140A。該伺服器系統100可處理自各種客戶端裝置120、120A所收到的客戶端裝置輸入140、140A,並且可對於各種客戶端裝置120、120A產生個別的「媒體輸出」150、150A。該媒體輸出150、150A可包含經編碼之視訊資料(當顯示
在螢幕上時表現影像)和音訊資料(當透過揚聲器播放時表現聲音)的串流。該媒體輸出150、150A可透過網際網路130以封包的形式發送。目的地為該等客戶端裝置120、120A之一特定者的封包可為按此方式所定址,藉以透過網際網路130路由傳送至該裝置。該等客戶端裝置120、120A各者可含有用於緩衝和處理自該雲端式遊戲伺服器系統100所收到的封包內之媒體輸出的電路,以及用於影像顯示的顯示器和用於音訊輸出的傳導器(即如揚聲器)。亦可提供像是電子機械系統的額外輸出裝置以利感應產生動作。
應瞭解可將視訊資料串流劃分成多個「訊框」。然此處所使用的詞彙「訊框」並不要求在視訊資料之訊框與由該視訊資料所表現之影像間存在有一對一的對應性。換言之,視訊資料的一訊框雖可含有依其整體性表現個別所顯示影像的資料,然對於視訊資料的一訊框確亦可含有表現一影像中僅其一部份的資料,並且對於該影像來說需有兩個或更多的訊框以供適當地重建和顯示。藉由相同概念,一視訊資料訊框可含有表現一個以上完整影像的資料,使得能夠利用M個視訊資料訊框來表現N個影像,其中M<N。
圖2A顯示一種對於該雲端式遊戲伺服器系統100之元件的可能非限制性實體排置。在本具體實施例裡,該雲端式遊戲伺服器系統100內的個別伺服器可經組態設定以執行特定功能。例如,一計算伺服器200C主要是負責基於使用者輸入以追蹤一視訊遊戲內的狀態變化,而一渲染伺服器200R則可主要是負責圖形(視訊資料)的渲染處理。
對於在此所述的範例具體實施例,該客戶端裝置120和該客
戶端裝置120A兩者係經假設為以玩家或旁觀者的方式參與該視訊遊戲。然應瞭解,在一些情況下可有單一玩家而無旁觀者,在其他情況下可有多位玩家及單一旁觀者,而又在其他情況下可有單一玩家及多位旁觀者,並且又仍在其他情況下則可有多位玩家及多位旁觀者。
為簡便而言,後文說明是參照於單一台計算伺服器200C而經連接至一單一台渲染伺服器200R。然應瞭解可有一台以上的渲染伺服器200R而經連接至相同的計算伺服器200C,或者是一台以上的計算伺服器200C而經連接至相同的渲染伺服器200R。在設有多台渲染伺服器200R的情況下,該等可散佈在任何適當的地理區域上。
即如圖2A中的非限制性元件實體排置所示,該計算伺服器200C可含有一或更多中央處理單元(CPU)220C、222C以及隨機存取記憶體(RAM)230C。該等CPU220C、222C可透過例如通訊匯流排架構以存取該RAM 230C。圖中雖僅顯示兩個CPU220C、222C,然應瞭解在該計算伺服器200C的一些範例實作裡可提供更多的CPU或僅有單一CPU。該計算伺服器200C亦可含有一網路介面元件(NIC)210C2,其中客戶端裝置輸入是透過網際網路130自參與該視訊遊戲的許多客戶端裝置各者所收到。在本示範性具體實施例中,該客戶端裝置120與該客戶端裝置120A兩者皆經假設為參與該視訊遊戲,並因而所收到的客戶端裝置輸入包含客戶端裝置輸入140與客戶端裝置輸入140A。
該計算伺服器200C可進一步含有另一網路介面元件(NIC)210C1,其輸出一渲染命令集合204。可將自該計算伺服器200C透過該NIC210C1所輸出的這些渲染命令集合204發送至該渲染伺服器200R。在一具
體實施例中,該計算伺服器200C可為直接地連接至該渲染伺服器200R。在另一具體實施例裡,該計算伺服器200C可透過一網路260以連接至該渲染伺服器200R,而此網路可為網際網路130或其他網路。可透過該網路260以在該計算伺服器200C與該渲染伺服器200R之間建立一虛擬私有網路(VPN)。
在該渲染伺服器200R處,可在一網路介面元件(NIC)210R1處接收由該計算伺服器200C所發送的渲染命令集合204,並且可予導引至一或更多CPU 220R、222R。該等CPU 220R、222R可為連接至圖形處理單元(GPU)240R、250R。藉由非限制性範例,該GPU 240R可含有一組GPU核心242R和視訊隨機存取記憶體(VRAM)246R。同樣地,該GPU 250R可含有一組GPU核心252R和視訊隨機存取記憶體(VRAM)256R。該等CPU 220R、222R各者可為連接至該等GPU 240R、250R各者,或是連接至該等GPU 240R、250R的子集合。而CPU 220R、222R與GPU 240R、250R之間的通訊可利用例如一通訊匯流排架構所建立。圖中雖僅顯示兩個CPU及兩個GPU,然在該渲染伺服器200R的特定實作範例裡確可有超過兩個CPU和GPU,或甚僅單一CPU或GPU。
該等CPU 220R、222R可與該等GPU 240R、250R併同運作,藉以將該等渲染命令集合204逐一地針對該等參與客戶端裝置各者轉換成圖形輸出串流。在本具體實施例裡,可有兩個分別地針對該等客戶端裝置120、120A的圖形輸出串流206、206A。後文中將對此進一步詳細說明。該渲染伺服器200R可含有一網路介面元件(NIC)210R2,而該等圖形輸出串流206、206A可經由此者分別地發送至該等客戶端裝置120、120A。
圖2B顯示第二種對於該雲端式遊戲伺服器系統100之元件的可能非限制性實體排置。在本具體實施例裡,一混合伺服器200H可負責依據使用者輸入來追蹤視訊遊戲中的狀態變化以及渲染圖形(視訊資料)兩者。
即如圖2B中的非限制性元件實體排置所示,該混合伺服器200H可含有一或更多中央處理單元(CPU)220H、222H以及隨機存取記憶體(RAM)230H。該等CPU220H、222H可透過例如通訊匯流排架構以存取該RAM 230H。圖中雖僅顯示兩個CPU220H、222H,然應瞭解在該混合伺服器200H的一些範例實作裡可提供更多的CPU或僅有單一CPU。該混合伺服器200H亦可含有一網路介面元件(NIC)210H,其中客戶端裝置輸入是透過網際網路130自參與該視訊遊戲的許多客戶端裝置各者所收到。在本示範性具體實施例中,該客戶端裝置120與該客戶端裝置120A兩者皆經假設為參與該視訊遊戲,並因而所收到的客戶端裝置輸入包含客戶端裝置輸入140與客戶端裝置輸入140A。
此外,該等CPU 220H、222H可為連接至圖形處理單元(GPU)240H、250H。藉由非限制性範例,該GPU 240H可含有一組GPU核心242H和視訊隨機存取記憶體(VRAM)246H。同樣地,該GPU 250H可含有一組GPU核心252H和視訊隨機存取記憶體(VRAM)256H。該等CPU 220H、222H各者可為連接至該等GPU 240H、250H各者,或是連接至該等GPU 240H、250H的子集合。而CPU 220H、222H與GPU 240H、250H之間的通訊可利用例如一通訊匯流排架構所建立。圖中雖僅顯示兩個CPU及兩個GPU,然
在該混合伺服器200H的特定實作範例裡確可有超過兩個CPU和GPU,或甚僅單一CPU或GPU。
該等CPU 220H、222H可與該等GPU 240H、250H併同運作,藉以將該等渲染命令集合204逐一地針對該等參與客戶端裝置各者轉換成圖形輸出串流。在本具體實施例裡,可有兩個分別地針對該等參與客戶端裝置120、120A的圖形輸出串流206、206A。可透過該NIC 210H以將該等圖形輸出串流206、206A發送至該等客戶端裝置120、120A。
在遊戲進行的過程中,該伺服器系統100運行一伺服器側視訊遊戲應用程式,此應用程式可由一組功能性模組所組成。現參照圖2C,這些功能性模組可包含視訊遊戲功能性模組270、渲染功能性模組280及視訊編碼器285。這些功能性模組可為由前文所述該計算伺服器200C與該渲染伺服器200R(圖2A),以及/或是該混合伺服器200H(圖2B),的多項實體元件所實作。例如,根據圖2A的非限制性具體實施例,該視訊遊戲功能性模組270可為由該計算伺服器200C所實作,而該渲染功能性模組280和該視訊編碼器285則可藉由該渲染伺服器200R所實作。而根據圖2B的非限制性具體實施例,該混合伺服器200H可實作該視訊遊戲功能性模組270、該渲染功能性模組280以及該視訊編碼器285。
為簡化起見,本範例具體實施例是討論單一個視訊遊戲功能性模組270。然應瞭解,在該雲端式遊戲伺服器系統100的真實製作中,可依平行方式執行多個類似於該視訊遊戲功能性模組270的視訊遊戲功能性模組。因此,該雲端式遊戲伺服器系統100可同時地支援相同視訊遊戲的
多個獨立實例或是多個不同的視訊遊戲。並且亦應注意到該等視訊遊戲可為任何類型的單玩家視訊遊戲或是多玩家遊戲。
該視訊遊戲功能性模組270可為由該計算伺服器200C(圖2A)或是該混合伺服器200H(圖2B)的一些實體元件所實作。詳細而言,該視訊遊戲功能性模組270可經編碼成電腦可讀取指令,而這些指令可由CPU(像是該計算伺服器200C內的CPU 220C、222C或是該混合伺服器200H內的CPU 220H、222H)執行。該等指令可,連同於該視訊遊戲功能性模組270所使用到的常數、變數及/或其他資料,儲存在該RAM 230C(該計算伺服器200C裡)或該RAM 230H(該混合伺服器200H裡)或是另一記憶體區域之內。在一些具體實施例裡,該視訊遊戲功能性模組270可在一虛擬機器的環境內執行,而此虛擬機器可獲一亦由CPU(像是該計算伺服器200C內的CPU 220C、222C或者該混合伺服器200H內的CPU 220H、222H)執行的作業系統所支援。
該渲染功能性模組280可為由該渲染伺服器200R(圖2A)或是該混合伺服器200H(圖2B)的一些實體元件所實作。在一具體實施例中,該渲染功能性模組280可運用一或更多GPU(圖2A內的240R、250R,圖2B內的240H、250H),而且可或無須使用CPU資源。
該視訊編碼器285可為由該渲染伺服器200R(圖2A)或是該混合伺服器200H(圖2B)的一些實體元件所實作。熟習本項技藝之人士將能知曉確有眾多方式以實作該視訊編碼器285。在圖2A的具體實施例裡,該視訊編碼器285可為由CPU 220R、222R及/或由GPU 240R、250R所實作。而在圖2B的具體實施例裡,該視訊編碼器285可為由CPU 220H、222H及/
或由GPU 240H、250H所實作。又在另一具體實施例中,該視訊編碼器285則可由一個別晶片(未予圖示)所實作。
操作上,該視訊遊戲功能性模組270可依據所收到的客戶端裝置輸入以產生渲染命令集合204。這些所收到的客戶端裝置輸入可含載足供識別出其目的地之視訊遊戲功能性模組的資料(即如位址),以及識別出其所源自於之使用者及/或客戶端裝置的資料。由於該等客戶端裝置120、120A的使用者為該視訊遊戲的參與者(亦即玩家或旁觀者),因此該等所收客戶端裝置輸入可含有從該等客戶端裝置120、120A所收到的客戶端裝置輸入140、140A。
渲染命令是指可用以指示一特定圖形處理單元(GPU)產生一視訊資料訊框或是一序列之視訊資料訊框的命令。現參照圖2C,該等渲染命令集合204可令由該渲染功能性模組280產生視訊資料的訊框。由這些訊框所表示的影像可為依照對該等客戶端裝置輸入140、140A之回應的函數而變化,而這些回應是經程式設計至該視訊遊戲功能性模組270內。例如,該視訊遊戲功能性模組270可按此方式所程式設計,故而回應於一些特定激訊向使用者提供漸進的體驗(藉令未來互動有所改變,即更具挑戰性或更有刺激性),且回應於一些其他特定激訊以對使用者提供漸退或終結的體驗。對於該視訊遊戲功能性模組270的指令雖可固定為二進位可執行檔案的形式,然該等客戶端裝置輸入140、140A實為未知,須直到與一使用該相對應客戶端裝置120、120A的玩家進行互動之刻方得知曉。因此會依照所提供的特定客戶端裝置輸入而定出現廣泛各種可能的結果。此項在玩家/旁觀者與該視訊遊戲功能性模組270之間透過該等客戶端裝置120、120A
所進行的互動就稱為「玩遊戲」或「玩視訊遊戲」。
該渲染功能性模組280可處理該等渲染命令集合204以產生多個視訊資料串流205。一般說來,每位參與者(或等同而言,每台客戶端裝置)可有一個視訊資料串流。當執行渲染處理時,可將對於在三維空間(即如實體物件)或二維空間(即如文字)中所表現之一或更多物件的資料載入至一特定GPU 240R、250R、240H、250H的快取記憶體(未予圖示)內。此資料可由該GPU 240R、250R、240H、250H轉換成表示二維影像的資料,並可將其儲存在適當的VRAM 246R、256R、246H、256H裡。從而,該VRAM 246R、256R、246H、256H可供暫時地儲存對於一遊戲螢幕畫面的圖片構素(像素)數值。
該視訊編碼器285可將該等視訊資料串流205各者之內的視訊資料壓縮並予編碼成為一相對應的經壓縮/經編碼視訊資料串流。所獲得的經壓縮/經編碼視訊資料串流稱為圖形輸出串流,並可為依照逐台客戶端裝置的方式所產生。在本範例具體實施例中,該視訊編碼器285可對於該客戶端裝置120產生一圖形輸出串流206,並且對於該客戶端裝置120A產生一圖形輸出串流206A。亦可提供額外的功能性模組以將該視訊資料格式化成為封包,故而能夠透過網際網路130加以傳送。該等視訊資料串流205內的視訊資料以及一給定圖形輸出串流內的經壓縮/經編碼視訊資料可被分割成多個訊框。
現將參照於圖2C、3A和3B以進一步詳細說明由該視訊遊戲功能性模組270所進行的渲染命令產生作業。詳細而言,該視訊遊戲功
能性模組270的執行作業可牽涉到多項程序,包含主遊戲程序300A及圖形控制程序300B,後文中將對此等詳加說明。
現將參照圖3A以說明該主遊戲程序300A。該主遊戲程序300A可依連續迴圈的方式重複地執行。該主遊戲程序300A的一部份中可提供一動作310A,而可在此過程中接收客戶端裝置輸入。若該視訊遊戲為單一玩家視訊遊戲而絕無旁觀者,則會收到來自單一客戶端裝置(即如客戶端裝置120)的客戶端裝置輸入(即如客戶端裝置輸入140)以作為該動作310A的一部份。然若該視訊遊戲為多玩家視訊遊戲或者為單一玩家視訊遊戲但有可能進行旁觀,則可能會收到來自一或更多客戶端裝置(即如客戶端裝置120和120A)的客戶端裝置輸入(即如客戶端裝置輸入140和140A)以作為該動作310A的一部份。
藉由非限制性範例,來自一給定客戶端裝置的輸入可傳達該給定客戶端裝置的使用者欲令一人物在其控制下以移動、跳躍、踢踹、迴轉、拉入、抓取等等。或另者,或此外,來自該給定客戶端裝置的輸入可傳達由該給定客戶端裝置之使用者所做出的選單選擇,藉以改變一或更多音訊、視訊或遊戲設定俾載入/儲存一遊戲,或者是創設或加入一網路會期。或另者,或此外,來自該給定客戶端裝置的輸入可傳達該給定客戶端裝置的使用者想要選擇一特定相機視野(即如第一人稱或第三人稱)或是重新定位其在該虛擬世界裡的觀點。
在動作320A處,可至少部份地依據在動作310A處所收到的客戶端裝置輸入與其他參數以更新遊戲狀態。遊戲狀態的更新可能牽涉
到下列動作:首先,遊戲狀態的更新可能會涉及到對與自其收到客戶端裝置輸入的客戶端裝置相關聯之參與者(玩家或旁觀者)的一些性質進行更新。這些性質可儲存在該參與者資料庫10內。能夠在該參與者資料庫10中加以維護並且在動作320A處予以更新之參與者性質的範例可包含相機視野選擇(即如第一人稱或第三人稱)、遊玩模式、所選音訊或視訊設定、技能水準、顧客等級(即如訪客、貴客等等)。
其次,遊戲狀態的更新可牽涉到依據該等客戶端裝置輸入的解譯結果來更新該虛擬世界中之一些物件的屬性。在一些情況下,其屬性可予更新的物件可由二或三維模型所表示,並且可包含參玩人物、非參玩人物以及其他物件。在參玩人物的情況下,可予更新的屬性可包含物件的位置、強度、武器/胄甲、剩餘壽命、特長、能力、速度/方向(速率)、動畫、視覺效果、能量、彈藥火力等等。而在非參玩人物(像是背景、植披、建物、車輛、記分板等等)的情況下,可予更新的屬性可包含該物件的位置、速度、動畫、損傷/健康度、視覺效果、文字內容等等。
然應瞭解除客戶端裝置輸入外的參數亦可對前述(參與者的)性質與(虛擬世界物件的)屬性產生影響。例如,各種計時器(像是行經時間、自一特定事件後的時間、虛擬當日時間)、玩家總數、參與者的地理位置等等皆可對遊戲狀態的各種態樣造成影響。
一旦既已更新遊戲狀態以進一步執行動作320A,該主遊戲程序300A即可返回至動作310A,在此會對自從前次通過該主遊戲程序之後所收到的新客戶端裝置輸入加以收集並處理。
現將參照圖3B以說明一第二程序,其可稱為圖形控制程序。該圖形控制程序300B雖經顯示為分離於該主遊戲程序300A,然此程序確可按如該主遊戲程序300A之延伸的方式執行。該圖形控制程序300B可為連續地執行以產生渲染命令集合204。在單一玩家視訊遊戲而確無旁觀者的情況下,可只有單一玩家,並因而僅獲產生單一個渲染命令集合204。在多玩家視訊遊戲的情況下,需針對多位玩家產生多個個別渲染命令集合,且因此可按平行方式執行多個子程序,各者係針對於各一玩家。而在單一玩家遊戲然有可能有進行旁觀的情況下,再度地可有單一個渲染命令集合204,但可由該渲染功能性模組280針對旁觀者複製所獲得的視訊資料串流。當然,這些僅為實作範例且不應視為具有限制性質。
現考量該圖形控制程序300B對於一要求該等視訊資料串流205其一者之給定參與者的操作。在動作310B處,該視訊遊戲功能性模組270可決定對於該給定參與者而應予渲染的物件。此動作可包含識別下列的物件類型:首先,此動作可包含識別出在該虛擬世界裡位於針對該給定參與者之「遊戲螢幕渲染範圍」(又稱為「場景」)內的這些物件。該遊戲螢幕渲染範圍可為在該虛擬世界中自該給定參與者相機之觀點為「可見」的一局部。這可依照在該虛擬世界中該相機相對於這些物件的位置與指向而定。在動作310B之實作的一非限制性範例裡,可對該虛擬世界施用以一截錐柱體,並且對位於該截柱體之內的物件予以保留或標註。此截錐柱體具有一可位於該給定參與者相機之位置處的尖點,並且可具有亦由該相機之
方向性所定義的方向性。
其次,這項動作可包含識別並未出現在該虛擬世界裡然對於該給定參與者確仍需加以渲染的額外物件。例如,這些額外物件可包含文字訊息、圖形警示和留言板指示器,然不限於此。
在動作320B處,該視訊遊戲功能性模組270可產生一組命令,藉以將在動作310B處所識別出的這些物件渲染至該等圖形(視訊資料)之內。渲染處理可稱為,根據察看觀點與當前的照明條件,將一物件或一組物件之3-D或2-D座標變化成表示一可顯示影像之資料的轉換作業。這可採用眾多各式不同演算法和技術所達成,例如在Max K.Ageston之「Computer Graphics and Geometric Modelling:Implementation & Algorithms」,Springer-Verlag London Limited,2005年,乙文中所描述者,在此依參考方式併入本案。該等渲染命令可具有符合於3D應用程式設計介面(API)的格式,即如來自美國華盛頓州Redmond市之Microsoft Corporation的「Direct3D」以及由美國奧勒岡州Beaverton市之Khronos Group所管理的「OpenGL」,然不限於此。
在動作330B處,可將動作320B處所產生的渲染命令輸出至該渲染功能性模組280。這可牽涉到將所產生的渲染命令封包化而成為一渲染命令集合204,並予發送至該渲染功能性模組280。
該渲染功能性模組280可解譯該等渲染命令集合204並產生多個視訊資料串流205,而各一串流係針對於各一台參與客戶端裝置。此渲染處理可在CPU 220R、222R(圖2A)或者220H、222H(圖2B)的控制之下由
GPU 240R、250R、240H、250H完成。對於一參與客戶端裝置產生視訊資料訊框的速率可稱為訊框速率。
在一其中有N位參與者的具體實施例中,可有N個渲染命令集合204(各參與者有一者)以及N個視訊資料串流205(各參與者有一者)。在此情況下,並不會於該等參與者之間共享渲染功能性。不過,亦可自M個渲染命令集合204以產生該等N個視訊資料串流205(其中M<N),使得該渲染功能性模組280只需處理數量較少的渲染命令集合。在此情況下,該渲染功能性模組280可執行共享或複製處理,藉以自數量較少的渲染命令集合204中產生出數量較多的視訊資料串流205。而當有多位參與者(即如旁觀者)希望觀看相同的相機觀點時,此共享或複製處理就可更為普遍。因此,該渲染功能性模組280可執行像是為一或更多旁觀者複製所產生之視訊資料串流的功能。
接著,可由該視訊編碼器285對該等視訊資料串流205之各者內的視訊資料加以編碼,故而獲得一序列關聯於各台客戶端裝置的經編碼視訊資料,這稱為圖形輸出串流。在圖2A-2C的範例具體實施例中,目的地為客戶端裝置120的經編碼視訊資料序列稱為圖形輸出串流206,而目的地為客戶端裝置120A的經編碼視訊資料序列則稱為圖形輸出串流206A。
該視訊編碼器285可為一裝置(或一組電腦可讀取指令),其可提供或執行或是定義對於數位視訊的視訊壓縮或解壓縮演算法。視訊壓縮作業可將數位影像資料的原始串流(依像素位置、色彩數值等等所表示)轉換成數位影像資料的輸出串流,其可傳達大致相同的資訊然確運用較少位元。任何適當的壓縮演算法皆可採用。除資料壓縮以外,用以對一特定
視訊資料訊框進行編碼的編碼程序亦可或無需牽涉到密碼加密。
按前述方式所產生的圖形輸出串流206、206A可透過網際網路130發送至個別的客戶端裝置。藉由非限制性範例,可將該等圖形輸出串流予以節段化與格式化成為多個封包,各者具有標頭和酬載。含有對於一給定參與者的視訊資料之封包的標頭可含有與該給定參與者相關聯之客戶端裝置的網路位址,而酬載中可含有該視訊資料的整體或是其一部份。在一非限制性具體實施例裡,可將用以對一視訊資料進行編碼之壓縮演算法的識別資料及/或版本編碼在載送該視訊資料之一或更多封包的內容中。熟習本項技藝之人士將可構思用以傳送該經編碼視訊資料的其他方法。
本說明雖為聚焦於渲染表示個別2-D影像的視訊資料,然本發明並不排除逐一訊框方式渲染表示多個2-D影像以產生3-D效果之視訊資料的可能性。
現參照圖4A,圖中藉由非限制性範例顯示一客戶端側視訊遊戲應用程式的操作,此作業是由與一給定參與者相關聯而可為客戶端裝置120或客戶端裝置120A的客戶端裝置所執行。操作上,該客戶端側視訊遊戲應用程式可由該客戶端裝置直接地執行,或是在一網頁瀏覽器中運行,然不限於此。
在動作410A處,根據具體實施例而定,可自該渲染伺服器200R(圖2A)或是自該混合伺服器200H(圖2B)透過網際網路130收到一圖形輸出串流(即如206、206A)。所收到的圖形輸出串流可含有可予分割成多個訊框之視訊資料的經壓縮/經編碼訊框。
在動作420A處,該視訊資料的經壓縮/經編碼訊框可根據互補於該編碼/壓縮程序中所使用之編碼/壓縮演算法的解碼/解壓縮演算法予以解碼/解壓縮。在一非限制性具體實施例裡,用以編碼/壓縮該視訊資料之編碼/壓縮演算法的識別資料或版本可為事先已知。在其他具體實施例裡,用以編碼該視訊資料之編碼/壓縮演算法的識別資料或版本可伴隨於該視訊資料本身。
在動作430A處,可對該視訊資料的(經解碼/經解壓縮)訊框進行處理。這可包含將視訊資料的經解碼/經解壓縮訊框放置在緩衝器內、執行錯誤校正、重排及/或合併在多個接續訊框內的資料、阿爾法值混合、遺失資料之多個局部的內插等等。其結果可表示依逐個訊框為基礎而待予呈現給使用者之最終影像的視訊資料。
在動作440A處,可透過該客戶端裝置的輸出機制來輸出該最終影像。例如,可將合成視訊訊框顯示在該客戶端裝置的顯示器上。
現將參照圖3C以說明一第三程序,其可稱為音訊產生程序。該音訊產生程序可針對要求不同音訊串流的各位參與者連續地執行。在一具體實施例中,可執行該音訊產生程序而與該圖形控制程序300B無關。在另一具體實施例裡,該音訊產生程序與該圖形控制程序的執行可互為協調。
在動作310C處,該視訊遊戲功能性模組270可決定應予產生的聲音。詳細而言,此項動作可包含識別出這些與該虛擬世界內之物件相關聯然由於其等音量(響度)及/或在該虛擬世界裡鄰近該參與者之故而主
導該音響全景的聲音。
在動作320C處,該視訊遊戲功能性模組270可產生一音訊節段。該音訊節段的時段長度雖可跨展一視訊訊框的時段,然在一些具體實施例裡,比起視訊訊框可較不頻繁地產生音訊節段;而在其他的具體實施例裡,音訊節段比起視訊訊框來說則可較為頻繁地產生。
在動作330C處,該音訊節段可即如由一音訊編碼器所編碼,故而獲致一經編碼音訊節段。該音訊編碼器可為一裝置(或一組指令),其可提供或執行或是定義一音訊壓縮或解壓縮演算法。音訊壓縮可將原始的數位音訊串流(即如按如隨時間在振幅和相位上變化的音波所表示)轉換成數位音訊資料的輸出串流,後者可大致傳達相同資訊然確佔用較少的位元。任何適當的壓縮演算法皆可採用。除音訊壓縮以外,用以對一特定音訊節段進行編碼的編碼程序亦可或無需施用密碼加密。
應瞭解,在一些具體實施例裡,可藉由位於該計算伺服器200C(圖2A)或是該混合伺服器200H(圖2B)之內的特殊硬體(即如音效卡)以產生該等音訊節段。在適用於圖2A之分散式排置的替代性具體實施例中,可由該視訊遊戲功能性模組270將音訊節段參數化成為語音參數(即如LPC參數),並且由該渲染伺服器200R將此等語音參數重新配佈至目的地客戶端裝置(即如客戶端裝置120或客戶端裝置120A)。
按上述方式所產生的經編碼音訊可透過網際網路130發送。藉由非限制性範例,可將該經編碼音訊輸入予以斷分並格式化成為多個封包,各者具有標頭和酬載。該標頭可載荷與為其而執行音訊產生程序的參與者相關聯之客戶端裝置的位址,而該酬載可含有該經編碼音訊。在
一非限制性具體實施例裡,可將用以對一給定音訊節段進行編碼之壓縮演算法的識別資料及/或版本編碼在載送該給定節段之一或更多封包的內容中。熟習本項技藝之人士將可構思用以傳送該經編碼音訊資料的其他方法。
現參照圖4B,藉由非限制性範例,圖中顯示與一給定參與者相關聯之客戶端裝置的操作,其可為客戶端裝置120或客戶端裝置120A。
在動作410B處,可(依照具體實施例而定)自該計算伺服器200C、該渲染伺服器200R或該混合伺服器200H收到一經編碼音訊節段。在動作420B處,可依據互補於該編碼程序中所採用之壓縮演算法的解壓縮演算法以解碼該經編碼音訊。在一非限制性具體實施例裡,可將用以對該音訊節段進行編碼之壓縮演算法的識別資料或版本標定在載送該音訊節段之一或更多封包的內容中。
在動作430B處,可對該(經解碼)音訊節段進行處理。這可包含將經解碼音訊節段放置在一緩衝器內、執行錯誤校正、合併多個連續波形等等。其結果可表示依逐個訊框為基礎而待予呈現給使用者的最終聲音。
在動作440B處,可透過該客戶端裝置的輸出機制來輸出該最終產生的聲音。例如,該聲音可透過該客戶端裝置的音效卡或揚聲器所播放。
現將提供本發明之一些非限制性具體實施例的進一步詳細說明。
為非限制性地說明本發明的一些非限制具體實施例之目
的,現假設一視訊遊戲的兩個或更多參與者(玩家或旁觀者)具有相同的位置和相機觀點。換言之,這兩位或更多參與者可觀看到相同的場景。例如,其一參與者可為玩家,而另一參與者則可為個別旁觀者。茲假設此場景含有各種物件。在本發明的非限制具體實施例中,部份的這些物件(所謂的「泛用」物件)會為一次渲染並予共享,且因而對於該等參與者各者來說將具有相同的圖形表現。此外,該場景內之物件的一或更多者(所謂的「可客製物件」)將會以客製方式所渲染。從而,該等對於所有參與者而言雖佔據該場景內的共同位置,然這些可客製物件將具有逐一參與者而異的圖形表現。所以,該所渲染場景的影像將含有一第一局部,此局部含有對於所有參與者皆為相同的泛用物件,以及一第二局部,此局部含有在所有參與者之間出現變異的可客製物件。在後文中,該詞彙「參與者」可與該詞彙「使用者」互換地運用。
圖5概念性地說明可對於參與者A、B、C所產生而由該視訊/影像資料所表現的複數個影像510A、510B、510C。在本範例中雖出現三位參與者A、B、C,然應瞭解在一給定實作裡可有任意數量的參與者。該等影像510A、510B、510C描繪一所有參與者可共通的物件520。為便於參照,該物件520將稱為「泛用」物件。此外,該等影像510A、510B、510C描繪一可針對各個參與者加以客製化的物件530。為便於參照,該物件530將稱為「可客製」物件。可客製物件可為一場景內可予客製的任何物件,這些物件針對不同參與者具有相異的紋理,然又承受於這些參與者之間共同的光照條件。據此,相對於可客製物件,可為泛用物件者就以物件類型而言則無特定限制。在一範例中,可客製物件可為一場景物件。
在所述範例裡顯示有單一個泛用物件520以及單一個可客製物件530。然此不應被視為限制性,因需瞭解在一給定實作中可出現有任意數量的泛用物件以及任意數量的可客製物件。此外,該等物件可具有任何尺寸或形狀。
待予渲染的特定物件可歸類為泛用物件或可客製物件。而一物件究應被視為是泛用物件或可客製物件則是由該主遊戲程序300A依據各種因素所決定。這些因素可包含該物件在一場景內的位置或深度,或者是有些物件即經預先識別為歸屬於泛用或可客製。現參照圖6A,可將一物件應屬於泛用或可客製的識別結果儲存在一物件資料庫1120內。該物件資料庫1120可為至少部份地利用電腦記憶體所具體實作。依照所實作之具體實施例而定,該物件資料庫1120可由該主遊戲程序300A維護,並且可由該圖形控制程序300B及/或該渲染功能性模組280存取。
該物件資料庫1120對於各個物件可含有一記錄1122,以及在各個記錄1122裡的一組欄位1124、1126、1128,藉此儲存有關於該物件的各式資訊。例如,除其他者外,可設有識別碼欄位1124(儲存一物件ID),紋理欄位1126(儲存一紋理ID,其鏈結至一紋理資料庫內的影像檔案,然未予圖示),以及客製化欄位1128(儲存該物件究屬泛用物件或可客製物件的指示值)。
在一給定物件為泛用物件的情況下(像是對於該物件ID為「520」且該客製化欄位1128之內容顯示為「泛用」的物件),將會運用由經儲存在一相對應紋理欄位1126內之紋理ID所識別出的紋理(在本例中為「txt.bmp」)以在所有參與者所觀看到的最終影像中表示該泛用物件。該紋
理本身可組成一經儲存在紋理資料庫1190內(參見圖6B)並且由該紋理ID(在本例中為「txt.bmp」)所索引的檔案。該紋理資料庫1190可為至少部份地利用電腦記憶體所具體實作。
而在一給定物件為可客製物件的情況下(像是對於物件ID為「530」且該客製化欄位1128之內容顯示為「可客製」的物件),不同的參與者可能會看到不同的紋理施用於此物件。因此,現續參照圖6A,對於兩位以上的參與者各者該所定紋理欄位會被替換以一組子記錄1142,其中各個子記錄含有參與者欄位1144(儲存參與者ID)及紋理欄位1146(儲存紋理ID,其鏈結至該紋理資料庫內的一影像檔案)。該等紋理本身可含有經儲存在該紋理資料庫1190內(參見圖6B)並且由該紋理ID所索引(在本例中,「txtA.bmp」、「txtB.bmp」及「txtC.bmp」為分別地關聯於參與者A、B和C的紋理ID)的檔案。
客製化欄位1128、子記錄1142和紋理欄位1146的運用僅為對關於該物件資料庫1120內之可客製物件530資訊進行編碼的其一特定方式,且不應視為具有限制性。
按此,即可將單一個可客製物件關聯於多個與多位個別參與者相關聯的紋理。對於一給定可客製物件來說,紋理與參與者之間的關聯性可為依照多項因素而定。這些因素可包含經儲存在該參與者資料庫10中有關於各式參與者的資訊,像是識別資料、財務資料、位置資料、人口統計資料、連接資料等等。甚至可提供參與者能夠選擇他們希望與該特定可客製物件相關聯之紋理的機會。
圖7說明一基於自該視訊遊戲功能性模組270收到的渲染命令而可由該渲染功能性模組280所實作的範例圖形管線。還記得該視訊遊戲功能性模組可常駐於與該渲染功能性模組280相同的計算設備上(參見圖2B),或者是位在不同的計算設備(參見圖2A)上。應瞭解執行構成該圖形管線一部份的計算作業是由該等渲染命令所定義,也就是說明,該等渲染命令是由該視訊遊戲功能性模組270發出,俾令該渲染功能性模組280能夠執行圖形管線操作。為此,該視訊遊戲功能性模組270和該渲染功能性模組280可運用一些用於對該等渲染命令進行編碼、解碼及解譯的協定。
如圖7所示的渲染管線構成美國華盛頓州Redmond市Microsoft Corporation之Direct3D架構的一部份,然此僅為非限制性範例。其他系統亦可實作該圖形管線的變化項目。所述圖形管線包含複數個建構方塊(或子程序),這些可列表且簡要說明如下:710頂點資料:未轉換模型頂點是儲存在頂點記憶體緩衝器內。
720原生資料:在該頂點資料裡以索引緩衝器所參照的幾何原生項目,包含點、線、三角形及多邊形在內。
730嵌絡:嵌絡單元可將高階的原生項目、移位映圖和網格補丁轉換成頂點位置,並且將這些位置儲存在頂點緩衝器內。
740頂點處理:將Direct3D轉換施用於經儲存在頂點緩衝器內的頂點。
750幾何處理:將切裁、背面揀選、屬性評估及點陣化施用於經轉換頂點。
760紋理化表面:經由IDirect3DTexture9介面將用於Direct3D表面的紋理座標提供給Direct3D。
770紋理取樣器:將紋理細部層級過濾處理施用於輸入紋理數值。
780像素處理:像素遮蔽器運算可利用幾何資料來修改輸入頂點及紋理資料,產獲輸出像素數值。
790像素渲染:最終渲染程序以alpha、深度或型板測試,或是藉由施用alpha混色處理或霧化,來修改像素數值。將所有的所獲像素數值提供至輸出顯示器。
現參照圖8,茲提供有關於該圖形管線內之像素處理子程序780且依照本發明之非限制性具體實施例所調適的進一步細節。尤其,該像素處理子程序可包含,基於收到的渲染指令,對各個與一物件相關聯之像素所進行的步驟810-840。在步驟810處進行照射計算,這可包含計算含有散射、鏡射、漫射等等的光照成份。在步驟820處,獲得對於該物件的紋理。該紋理可包含散射色彩資訊。在步驟830處,可計算逐像素遮蔽,其中各個像素可基於該散射色彩資訊和該光照資訊以予屬性設定一像素數值。最後,在步驟840處,將對於各個像素的像素數值儲存在一訊框緩衝
器內。
根據本發明的非限制性具體實施例,該像素處理子程序之步驟810-840的執行作業可為依據該等所處理像素之物件的類型,亦即該物件究為一泛用物件抑或一可客製物件,而定。現將進一步詳細說明由多位參與者所觀看之泛用物件的像素渲染與由多位參與者所觀看之可客製物件的像素渲染間的差異。為進行本文討論,茲假設有三位參與者A、B和C,然實際上可有多於或等於兩位之任意數量的參與者。
將能瞭解為令該渲染功能性模組280知曉應將何組處理步驟施用於與一特定物件相關聯的給定像素集合,該渲染功能性模組280需要獲知該特定物件究為一泛用物件或一可客製物件。這可藉由從該視訊遊戲功能性模組270所收到的渲染指令而獲悉。例如,該等渲染命令可包含一物件ID。為決定該物件究係泛用物件或可客製物件,該渲染功能性模組280可基於該物件ID向該物件資料庫1120諮詢以尋得適當的記錄1122,然後決定對於該記錄1122之客製化欄位1128的內容。在另一具體實施例裡,該等渲染命令本身即可標定該物件究為泛用物件或可客製物件,並且可甚至含有紋理資訊或是連向此者的鏈結。
(i)對於泛用物件520的像素處理
現參照圖9,此圖說明在即如物件520之泛用物件的情況下,該像素處理子程序780內的步驟810-840。這些步驟可針對該泛用物件的各個像素p而執行,並且組成旅經該像素處理子程序的單一次通行。
在步驟810處,該渲染功能性模組280可計算在像素p處的光譜照射,這會包含散射光照成份DiffuseLightingp、鏡射光照成份
SpecularLightingp以及漫射光照成份AmbientLightingp。對步驟810的輸入可包含如下項目,像是深度緩衝器(又稱為「Z緩衝器」)、法線緩衝器、鏡射因數緩衝器的內容,以及在所渲染觀看點上具有載點之各式光源的起點、方向、強度、色彩及/或組態,以及所使用之光照模型的定義或參數化。據此,光線照射的計算作業可為高計算密集度的運算。
在一非限制性具體實施例裡,「DiffuseLightingp」為「DiffuseLighting(p,i)」(在i上)的總和,其中「DiffuseLighting(p,i)」表示散射光照從光源「i」在像素p處的強度及色彩。在一非限制性具體實施例裡,對於一給定光源「i」,DiffuseLighting(p,i)的數值可為按如表面法線與光源方向的內積所算得(又可標註為「n·l」)。同時,「SpecularLightingp」是代表鏡射光照在像素p處的強度及色彩。在一非限制性具體實施例裡,SpeculauLightingp的數值可為按如反射光照向量與觀看方向的內積所算得(又可標註為「r·v」)。最後,「AmbientLightingp」是表示週漫光照在像素p處的強度及色彩。同時,亦應瞭解熟習本項技藝之人士將能熟知用以計算在像素p處之DiffuseLightingp、SpecularLightingP及AmbientLightingp的精確數學演算法。
在步驟820處,該渲染功能性模組280可諮詢該泛用物件(在本例中為物件520)的紋理以獲得在像素p處的適當色彩數值。為識別該紋理,首先可藉由基於該物件ID向該物件資料庫1120諮詢以獲得紋理ID,然後依據所獲紋理ID向該紋理資料庫1190諮詢以得到在像素p處的散射色彩數值。所獲的散射色彩數值可標註為DiffuseColor_520p。特定地說,DiffuseColor_520p可表示在對應於像素p之點處該物件520紋理的取樣(或內
插)數值。
在步驟830處,該渲染功能性模組280可計算像素p的像素數值。應注意到該詞彙「像素數值」可意指一純量或是一多重成份向量。在一非限制性具體實施例中,此多重成份向量的成份可為色彩(或色調、彩度)、飽和度(該色彩本身的強度)以及亮度。該詞彙「強度」有時可用以表示亮度成份。在另一非限制性具體實施例中,該多重成份色彩向量的多重成份可為RGB(紅、綠及藍)。在一非限制性具體實施例中,該像素數值,這對於像素p是標註為Outputp,可藉由將散射數值以乘法方式合併於散射光照成份,然後再將鏡射光照成份和漫射光照成份加入於此,所算得。換言之,Outputp=(DiffuseColor_520p * DiffuseLightingp)+SpecularLightingp+AmbientLightingp。應瞭解可對該像素p的多個成份(即如RGB、YCbCr等等)各者分別地算出Outputp。
最後,在步驟840處,可將該像素p經標註為Outputp的像素數值儲存在各位參與者的訊框緩衝器內。尤其,與該泛用物件520相關聯的一給定像素對於參與者A、B及C來說在整個訊框緩衝器上都具有相同的像素數值,因此一旦既已渲染所有與該泛用物件520相關聯的像素之後,對於所有參與者而言該泛用物件520在圖形上皆顯見為相同。現參照圖11,其中可觀察到該泛用物件520對於所有參與者A、B及C是以相同的方式所遮蔽。因此,可一次計算像素數值Outputp,然後再拷貝到各個參與者的訊框緩衝器。從而,可藉由僅單一次渲染該(等)泛用物件520,使得能夠在所有參與者A、B及C之間共享像素數值Outputp以節省計算作業。這些像素數值亦可稱為「影像資料」。
(ii)可客製物件530的像素處理
現參照圖10A及10B,此圖說明在即如物件530之可客製物件的情況下,該像素處理子程序780內的步驟810-840。這些步驟可針對該可客製物件的各個像素q而執行,並且組成旅經該像素處理子程序的多次通行。詳細地說,圖10A是關於可對所有像素執行的第一通行,而圖10B是關於可對所有像素執行的第二通行。也有可能對於一些像素是以該第二通行開始,而同時對於其他像素則是進行該第一通行。
在步驟810處,該渲染功能性模組280可計算在像素q處的光譜照射,這會包含散射光照成份DiffuseLightingq、鏡射光照成份SpecularLightingq以及漫射光照成份AmbientLightingq。即如在圖9中的情況,對步驟810的輸入(圖10A中)可包含如下項目,像是深度緩衝器(又稱為「Z緩衝器」)、法線緩衝器、鏡射因數緩衝器的內容,以及在所渲染觀看點上具有載點之各式光源的起點、方向、強度、色彩及/或組態,以及所使用之光照模型的定義或參數化。
在一非限制性具體實施例裡,「DiffuseLightingq」為「DiffuseLighting(q,i)」(在i上)的總和,其中「DiffuseLighting(q,i)」表示散射光照從光源「i」在像素q處的強度及色彩。在一非限制性具體實施例裡,對於一給定光源「i」,DiffuseLighting(q,i)的數值可為按如表面法線與光源方向的內積所算得(又可標註為「n·l」)。同時,「SpecularLightingq」是代表鏡射光照在像素q處的強度及色彩。在一非限制性具體實施例裡,SpecularLightingq的數值可為按如反射光照向量與觀看方向的內積所算得(又可標註為「r·v」)。最後,「AmbientLightingq」是表示週漫光照在像素q處的
強度及色彩。同時,亦應瞭解熟習本項技藝之人士將能熟知用以計算在像素q處之DiffuseLightingq、SpecularLightingq及AmbientLightingq的精確數學演算法。
在步驟1010處,這仍構成該第一通行的一部份,該渲染功能性模組280可計算該像素q的預遮蔽數值。在一非限制性具體實施例裡,步驟1010可包含將這些光照成份劃分為將由該可客製物件530的紋理數值(散射色彩)相乘者以及將被加計至該乘積者。從而,對於像素q可將該預遮蔽數值的兩個成份識別如「Output_1q」(乘法性)和「Output_2q」(加法性)。在一非限制性具體實施例裡,Output_1q=DiffuseLightingq(亦即「Output_1q」表示在像素q處的散射光照數值);並且Output_2q=SpecularLightingq+AmbientLightingq(亦即「Output_2q」表示在像素q處之鏡射及漫射光照數值的總和)。當然,注意到在沒有漫射光照成份的情況下,或者是當於他處而非在該像素處理子程序780內加入此成份時,步驟1010並無須牽涉到任何實際的計算作業。
在步驟1020處,這也構成該第一通行的一部份,該渲染功能性模組280將對於像素q的預遮蔽數值存放在一臨時儲存物內。這些預遮蔽數值可在依相同光照條件觀看相同物件的所有參與者間共享。
現參照圖10B,圖中說明對於各個參與者所執行的第二通行。對一給定參與者所執行的第二通行包含針對各個像素q所執行的步驟820-840。
首先將是考量參與者A的範例。從而,在步驟820處,該渲染功能性模組280可對於參與者A諮詢該可客製物件(在本例中為物件
530)的紋理以獲得在像素q處的適當散射色彩數值。為識別該紋理,首先可藉由基於該物件ID和參與者ID向該物件資料庫1120諮詢以獲得紋理ID,然後依據所獲紋理ID向該紋理資料庫1190諮詢以得到在像素q處的散射色彩數值。所獲散射色彩數值可標註為DiffuseColor_530_Aq。特定地說,DiffuseColor_530_Ap可表示(對於參與者A)在對應於像素q之點處該物件530紋理的取樣(或內插)數值。
在步驟830處,該渲染功能性模組280可計算像素q的像素數值。應注意到該詞彙「像素數值」可意指一純量或是一多重成份向量。在一非限制性具體實施例中,此多重成份向量的成份可為色彩(或色調、彩度)、飽和度(該色彩本身的強度)以及亮度。該詞彙「強度」有時可用以表示亮度成份。在另一非限制性具體實施例中,該多重成份向量的多重成份可為RGB(紅、綠及藍)。在一非限制性具體實施例中,像素數值,這對於像素q是標註為Output_Aq,的計算方式為將散射色彩乘法地合併於散射光照成份(此值可自臨時儲存物按Output_1q所取得),然後再加到鏡射光照成份及漫射光照成份的總和(此值可自臨時儲存物按Output_2q所取得)。換言之,Output_Aq=(DiffuseColor_530_Aq * Output_1q)+Output_2q。應瞭解可對該像素q的多個成份(即如RGB、YCbCr等等)各者分別地算出Output_Aq。
最後,在步驟840處,可將該像素q經標註為Output_Aq的像素數值儲存在參與者A的訊框緩衝器內。
同樣地,對於參與者B及C來說,在步驟820處,該渲染功能性模組280可對於各個參與者存取該可客製物件(在本例中為物件530)的紋理以獲得在像素q處的適當散射色彩數值。為識別該紋理,首先可藉
由基於該物件ID和參與者ID向該物件資料庫1120諮詢以獲得紋理ID,然後依據所獲紋理ID向該紋理資料庫1190諮詢以得到在像素q處的散射色彩數值。對於參與者B及C而言,所獲的散射色彩數值可分別地標註為DiffuseColor_530_Bq和DiffuseColor_530_Cq。
在步驟830處,該渲染功能性模組280可計算出對於像素q的像素數值。在一非限制性具體實施例中,對於參與者B標註為Output_Bq且對於參與者C標註為Output_Cq之像素數值的計算方式為將散射色彩乘法地合併於散射光照成份(此值可自臨時儲存物按Output_1q所取得),然後再加到鏡射光照成份及漫射光照成份的總和(此值可自臨時儲存物按Output_2q所取得)。也就是說,Output_Bq=(DiffuseColor_530_Bq * Output_1q)+Output_2q,而且Output_Cq=(DiffuseColor_530_C q * Output_1q)+Output_2q。應瞭解可對該像素q的多個成份(即如RGB、YCbCr等等)各者分別地算出Output_Bq及Output_Cq各者。
最後,在步驟840處,將對於參與者B所計算的像素q像素數值Output Bq儲存在參與者B的訊框緩衝器裡,並且對於參與者C及像素數值Output_Cq亦類似如此。
現參照圖11,其中將能觀察到該可客製物件530對於參與者A、B及C而言因像素數值Output_Aq、Output_Bq和Output_Cq相異之故而為不同地遮蔽。
從而,將能瞭解到,根據本發明的具體實施例,對於所有的參與者可單一次完成決定該(等)可客製物件之像素的計算密集性照射計算作業,然所有參與者的像素數值卻有所差異。
如此在當產生可客製物件530的多個「排組」時可節省計算作業,原因在於對每組參與者,而非逐一參與者,一次性地完成(在第一通行中)可客製物件530的照射/光線計算(即如DiffuseLightingq、SpecularLightingq、AmbientLightingq)。例如,對於可客製物件530的各個給定像素q,是一次性地計算出Output_1q和Output_2q的數值,然後再基於該等共通數值Output_1q和Output_2q,對於各個參與者A、B及C(在第二通行中)分別地計算出像素數值Outputq。
一種變化項目是在步驟1020處儲存該預遮蔽數值的臨時儲存物可為該訊框緩衝器,此緩衝器在針對該等參與者之一參與者執行過步驟840之後存放有對於該參與者的最終影像資料。因此,除儲存真實像素數值以外之目的,可藉由利用該訊框緩衝器中對應於像素q的資料構件以實作步驟1020。例如,對應於像素q的資料構件可包含為色彩資訊所通常保留的成份(即如R、G、B),以及為透明度資訊所通常保留的其他成份(alpha值)。
詳細地說,且為非限制性範例,可將鏡射光照和漫射光照成份降減至單一數值(純量),像是其亮度(在YCbCr空間中稱為「Y」)。在此情況下,Output_1q可擁有三個成份,然Output_2q可僅具有一個。所以是有可能將像素q的Output_1q及Output_2q兩者儲存在對於像素q的單一個4欄位資料結構裡。因此,例如在其中對各個像素指配予一個4欄位RGBA陣列的情況下(其中「A」代表alpha值或透明度成份),可選派此「A」欄位以儲存Output_2q數值。更進一步,如此可供單個具有4維項目的緩衝器能夠儲
存3維數值的Outputp,這是對歸屬於泛用物件的像素「p」,而同時也能儲存3維數值的Output_1q和1維數值的Output_2q,這是對歸屬於可客製物件之像素「q」,兩者。
為對此加以說明,現非限制性地參照圖12A,此圖顯示兩個分別地對於參與者A及B各者的訊框緩衝器1200A、1200B。該等訊框緩衝器各者包含擁有四個成份像素數值的像素。圖12A顯示在1200A、1200B裡像素p及q的內容隨著時間在下列階段處的演變情況:1210:在步驟840之後進一步渲染泛用物件520。注意到物件520的像素含有對於物件520的最終像素數值(強度/色彩)。這些會被一次地算得並予拷貝至兩者訊框緩衝器。
1220:在步驟1020之後對於可客製物件530進一步前往第一處理通行。注意到對於物件530的像素含有物件530的預遮蔽數值。這些會被一次地算得並予拷貝至兩者訊框緩衝器。
1230:在步驟840之後對於可客製物件530進一步前往第二處理通行。注意到物件530的像素含有對於物件530的最終像素數值(強度/色彩),然這些對於各個參與者而言為互異。
因此,可瞭解確能共享顯著的處理作業,並且一旦既已算得照射(光照)之後即能進行客製化,所以當相較於未將照射計算作業共享納入考量的客製化時,這確能潛在地大幅提升計算效率。
應進一步瞭解將可客製物件對於所有參與者予以客製化實非必要。同時,某一數量的參與者(這些可少於所有參與者)之螢幕畫面渲染
範圍內的可客製物件亦無須針對所有這些參與者予以差異地客製化。尤其,對於一些物件而言是有可能對於一第一參與者子集合為其一方式客製化,而對於另一參與者子集合為另一種方式客製化,或者對於一些參與者來說多個不同物件是以相同方式所客製化。例如,現考慮三位參與者A、B、C,一泛用物件520(如前所述),以及兩個可客製物件E、F。可認知到該可客製物件E對於參與者A及B而言是以一種方式客製化,然對於參與者C則是以不同方式客製化。同時,有可能該可客製物件F對於參與者A及C來說應以某一方式客製化,但對於參與者B則又是以不同方式客製化。在此情況下,對於該可客製物件E的渲染處理可針對參與者A及B共集地執行,而對於該可客製物件F的渲染處理則是針對參與者A及C共集地執行。
如此,即已說明一種可供更有效率地進行可客製物件的渲染處理,同時又能保留光照效果的渲染方式。此種能夠保留相同照射亮度的客製化可適用於對不同的參與者依照偏好、人口統計、位置等等提供不同紋理的情境。例如,參與者可看到相同的物件,具有相同的真實度效果,但是擁有不同的色彩或者是具有不同的圖標、旗幟、設計、語言等等。在一些情況下,甚至可利用客製化以「灰暗淡出」或「遮黑」因年齡或地理關鍵標準之故而須予限禁的物件。即使是藉此個人化層級的客製化,參與者所追求並源自於正確且複雜之光照計算作業的真實度確未因此受到影響。
在前述態樣中既已解釋一種其中該渲染功能性模組280分別地渲染泛用物件和可客製物件的方法。另一方面,當藉由納入像是光照
的效果以對物件進行客製化時,會將共同效果施加於泛用物件,而且將各個旁觀者所意欲的效果施加於各個可客製物件。在此情況下,藉由這些程序而產生之像素所構成的螢幕畫面,其中只有一些物件是進行過不同的效果,可能就會不太自然。在極端的情況下,當泛用物件佔據多數的螢幕畫面時,若藉由納入一光源來自不同方向的光照效應來渲染僅一個可客製物件,則該可客製物件會對該螢幕畫面裡的旁觀者提供不同的印象。
因此,在本變化項目中,將說明一種藉由反射像是施加於一泛用物件上之可客製物件的光照效果來降低所產生螢幕畫面中之不自然度的方法。
更詳細地說,為減少待予提供至複數個旁觀者之螢幕畫面的計算量,會按照與前文具體實施例中所述的相同方式來渲染泛用物件。在此之後,當考量到對一可客製物件所定義之光照來執行該可客製物件的渲染處理時,就需進行與因對於該既經渲染泛用物件的客製化光照而導致之效果相關聯的計算作業。而對於有關該等泛用物件之效果的計算作業,當藉由利用延後渲染方法等等以進行渲染處理時,由於既已產生出與一渲染範圍相關聯的各式G緩衝器,因此是有可能藉由依客製化所定義的光照以隨即地計算各個像素的亮度變化。從而,當渲染一可客製物件時,只需要將例如藉由亮度變化等等所獲得的像素數值加計至既已渲染的相對應像素即可。
如此將會某個程度地增加計算量。然確能降低在整個螢幕畫面裡由於其他施加在可客製物件上之效應而導致的不自然度。
注意到在前文具體實施例與變化項目中雖未說明泛用物件
和可客製物件之渲染處理的次序,然此次序確能按照該渲染功能性模組280的特點而改變。例如,在對於參與者共集地進行泛用物件渲染處理並且該等泛用物件之渲染結果係經儲存在單一訊框緩衝器內的情況下,於處理終結後,可藉由拷貝該單一訊框緩衝器來產生對於各個參與者的訊框緩衝器。在此情況下,接著會根據各個參與者分別地執行對於可客製物件的渲染處理,並且將對於該等泛用物件的渲染結果儲存在對應至該參與者的訊框緩衝器內。相對地,例如在其中是將泛用物件之渲染結果儲存在該等複數個訊框緩衝器(對於該等參與者)之各者內的情況下,則可執行對於可客製物件的渲染處理而無須等待泛用物件渲染處理結束。亦即,這兩者渲染處理是以平行方式執行,並且在對應於該參與者的訊框緩衝器裡產生對於各個參與者的遊戲螢幕畫面。
本發明雖既已參照於多項示範性具體實施例所描述,然應瞭解本揭示並非侷限於該等示範性具體實施例。後載申請專利範圍的範疇確應依照最寬廣方式所詮釋,藉以涵蓋所有該等修改項目和等同的結構與功能。同時,根據本發明的渲染設備及其渲染方法可藉由在電腦上執行該等方法的程式所實現。該程式可為藉由儲存在一電腦可讀取儲存媒體上或是透過電子通訊線路所提供/散佈。
Claims (14)
- 一種用於渲染複數個螢幕畫面的渲染設備,其中該等複數個螢幕畫面中所含之渲染物件的至少一局部對該等複數個螢幕畫面而言為共通,其包含:識別裝置,其係用以自該等共通渲染物件中識別出一其渲染屬性為靜態的第一渲染物件,以及一其渲染屬性為可變的第二渲染物件;第一渲染裝置,其係用以對於該等複數個螢幕畫面共集地執行對於該第一渲染物件的渲染處理;以及第二渲染裝置,其係用以對於該等複數個螢幕畫面各者分別地執行對於該第二渲染物件的渲染處理。
- 如申請專利範圍第1項所述之渲染設備,其中在由該第一渲染裝置執行過渲染處理之後由該第二渲染裝置執行該渲染處理。
- 如申請專利範圍第2項所述之渲染設備,其中該第二渲染裝置拷貝該第一渲染裝置的渲染結果,並且將對於該等複數個螢幕畫面的渲染結果反射至該所拷貝渲染結果內。
- 如申請專利範圍第1項所述之渲染設備,其中該第一渲染裝置的渲染處理與該第二渲染裝置的渲染處理是以平行方式執行。
- 如申請專利範圍第1、2及4項中任一項所述之渲染設備,其中對於該等複數個螢幕畫面各者,該第一渲染裝置輸出相同的計算結果作為渲染結果,以及對於該等複數個螢幕畫面各者,該第二渲染裝置將對於該等複數個螢幕畫面各者為相異的計算結果反射至對於個別螢幕畫面的渲染結果內。
- 如申請專利範圍第1項所述之渲染設備,其中該第二渲染裝置共集地執行為以渲染其渲染屬性為共通並且是在該等第二渲染物件間之物件的渲染處理。
- 如申請專利範圍第1項所述之渲染設備,其中該第二渲染裝置包含其中會至少部份地改變該第一渲染裝置之渲染結果的渲染處理。
- 如申請專利範圍第1項所述之渲染設備,其中該等複數個螢幕畫面各者為由一經連接至不同外部設備之顯示設備所顯示的螢幕畫面,該渲染設備進一步包含,對於該等外部設備各者,用以獲取對於該第二渲染物件的渲染屬性之資訊的獲取裝置,其中該第二渲染裝置依照對於該第二渲染物件之渲染屬性的資訊執行對於該等複數個螢幕畫面各者的渲染處理。
- 如申請專利範圍第1項所述之渲染設備,其中該第二渲染物件的可變渲染屬性為可藉其以改變一像素數值的屬性,而此像素數值是對應於該第二渲染物件且為該第二渲染裝置的渲染結果。
- 如申請專利範圍第1項所述之渲染設備,其中該第二渲染物件的可變渲染屬性包含待予施用之紋理和有可能會將一效果納入考量之光照的至少一者。
- 如申請專利範圍第1項所述之渲染設備,其中該等複數個螢幕畫面為依照相同觀視點所渲染的螢幕畫面。
- 一種用於渲染複數個螢幕畫面的渲染方法,其中該等複數個螢幕畫面中所含之渲染物件的至少一局部對該等複數個螢幕畫面而言為共通,其包含: 自該等共通渲染物件中識別出一其渲染屬性為靜態的第一渲染物件,以及一其渲染屬性為可變的第二渲染物件;對於該等複數個螢幕畫面共集地執行對於該第一渲染物件的渲染處理;以及對於該等複數個螢幕畫面各者分別地執行對於該第二渲染物件的渲染處理。
- 一種程式,其用以導致一或更多電腦運作如申請專利範圍第1至4項及6至11項中任一項所述之渲染設備的各個裝置,其中該等複數個螢幕畫面內所含之渲染物件的至少一局部為共通於該等複數個螢幕畫面。
- 一種電腦可讀取儲存媒體,其儲存如申請專利範圍第13項所述之程式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361876318P | 2013-09-11 | 2013-09-11 | |
US61/876,318 | 2013-09-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201510741A TW201510741A (zh) | 2015-03-16 |
TWI668577B true TWI668577B (zh) | 2019-08-11 |
Family
ID=52665528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103128587A TWI668577B (zh) | 2013-09-11 | 2014-08-20 | 渲染設備、其之渲染方法、程式和記錄媒體 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20160210722A1 (zh) |
EP (1) | EP3044765A4 (zh) |
JP (1) | JP6341986B2 (zh) |
CN (1) | CN105556574A (zh) |
CA (1) | CA2922062A1 (zh) |
TW (1) | TWI668577B (zh) |
WO (1) | WO2015037412A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190530B (zh) * | 2013-09-19 | 2018-07-20 | 思杰***有限公司 | 传输硬件渲染的图形数据 |
GB2536964B (en) * | 2015-04-02 | 2019-12-25 | Ge Aviat Systems Ltd | Avionics display system |
US9922452B2 (en) * | 2015-09-17 | 2018-03-20 | Samsung Electronics Co., Ltd. | Apparatus and method for adjusting brightness of image |
US20210004658A1 (en) * | 2016-03-31 | 2021-01-07 | SolidRun Ltd. | System and method for provisioning of artificial intelligence accelerator (aia) resources |
US10818068B2 (en) * | 2016-05-03 | 2020-10-27 | Vmware, Inc. | Virtual hybrid texture mapping |
CN106254792B (zh) * | 2016-07-29 | 2019-03-12 | 暴风集团股份有限公司 | 基于Stage3D播放全景数据的方法及*** |
US10963931B2 (en) * | 2017-05-12 | 2021-03-30 | Wookey Search Technologies Corporation | Systems and methods to control access to components of virtual objects |
US20190082195A1 (en) * | 2017-09-08 | 2019-03-14 | Roblox Corporation | Network Based Publication and Dynamic Distribution of Live Media Content |
CN110084873B (zh) * | 2018-01-24 | 2023-09-01 | 北京京东尚科信息技术有限公司 | 用于渲染三维模型的方法和装置 |
US10867431B2 (en) * | 2018-12-17 | 2020-12-15 | Qualcomm Technologies, Inc. | Methods and apparatus for improving subpixel visibility |
US11055905B2 (en) * | 2019-08-08 | 2021-07-06 | Adobe Inc. | Visually augmenting images of three-dimensional containers with virtual elements |
CN111951366B (zh) * | 2020-07-29 | 2021-06-15 | 北京蔚领时代科技有限公司 | 一种云原生3d场景游戏方法和*** |
CN114816629B (zh) * | 2022-04-15 | 2024-03-22 | 网易(杭州)网络有限公司 | 绘制显示对象的方法、装置、存储介质及电子装置 |
US11886227B1 (en) * | 2022-07-13 | 2024-01-30 | Bank Of America Corporation | Virtual-reality artificial-intelligence multi-user distributed real-time test environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185721A1 (en) * | 2009-01-20 | 2010-07-22 | Disney Enterprises, Inc. | System and Method for Customized Experiences in a Shared Online Environment |
TW201119353A (en) * | 2009-06-24 | 2011-06-01 | Dolby Lab Licensing Corp | Perceptual depth placement for 3D objects |
TW201248544A (en) * | 2011-05-19 | 2012-12-01 | Via Tech Inc | Three-dimensional graphics clipping method, three-dimensional graphics displaying method and graphics processing apparatus thereof |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007004837A1 (en) * | 2005-07-01 | 2007-01-11 | Nhn Corporation | Method for rendering objects in game engine and recordable media recording programs for enabling the method |
JP2009049905A (ja) * | 2007-08-22 | 2009-03-05 | Nippon Telegr & Teleph Corp <Ntt> | ストリーム処理サーバ装置、ストリームフィルタ型グラフ設定装置、ストリームフィルタ型グラフ設定システム、ストリーム処理方法、ストリームフィルタ型グラフ設定方法、およびコンピュータプログラム |
EP2193828B1 (en) * | 2008-12-04 | 2012-06-13 | Disney Enterprises, Inc. | Communication hub for video game development systems |
US9092910B2 (en) * | 2009-06-01 | 2015-07-28 | Sony Computer Entertainment America Llc | Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications |
JP5076132B1 (ja) * | 2011-05-25 | 2012-11-21 | 株式会社スクウェア・エニックス・ホールディングス | 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム |
US9250966B2 (en) * | 2011-08-11 | 2016-02-02 | Otoy, Inc. | Crowd-sourced video rendering system |
US20160110903A1 (en) * | 2013-05-08 | 2016-04-21 | Square Enix Holdings Co., Ltd. | Information processing apparatus, control method and program |
-
2014
- 2014-08-15 CA CA2922062A patent/CA2922062A1/en not_active Abandoned
- 2014-08-15 EP EP14843362.6A patent/EP3044765A4/en not_active Withdrawn
- 2014-08-15 CN CN201480050107.5A patent/CN105556574A/zh active Pending
- 2014-08-15 US US14/914,053 patent/US20160210722A1/en not_active Abandoned
- 2014-08-15 JP JP2016500426A patent/JP6341986B2/ja active Active
- 2014-08-15 WO PCT/JP2014/071942 patent/WO2015037412A1/en active Application Filing
- 2014-08-20 TW TW103128587A patent/TWI668577B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185721A1 (en) * | 2009-01-20 | 2010-07-22 | Disney Enterprises, Inc. | System and Method for Customized Experiences in a Shared Online Environment |
TW201119353A (en) * | 2009-06-24 | 2011-06-01 | Dolby Lab Licensing Corp | Perceptual depth placement for 3D objects |
TW201248544A (en) * | 2011-05-19 | 2012-12-01 | Via Tech Inc | Three-dimensional graphics clipping method, three-dimensional graphics displaying method and graphics processing apparatus thereof |
Also Published As
Publication number | Publication date |
---|---|
JP6341986B2 (ja) | 2018-06-13 |
US20160210722A1 (en) | 2016-07-21 |
EP3044765A4 (en) | 2017-05-10 |
WO2015037412A1 (en) | 2015-03-19 |
EP3044765A1 (en) | 2016-07-20 |
JP2016536654A (ja) | 2016-11-24 |
TW201510741A (zh) | 2015-03-16 |
CA2922062A1 (en) | 2015-03-19 |
CN105556574A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI668577B (zh) | 渲染設備、其之渲染方法、程式和記錄媒體 | |
CA2853212C (en) | System, server, and control method for rendering an object on a screen | |
TWI608856B (zh) | 資訊處理裝置、成像裝置、方法及程式 | |
CN112037311B (zh) | 一种动画生成的方法、动画播放的方法以及相关装置 | |
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
KR101623288B1 (ko) | 렌더링 시스템, 렌더링 서버, 그 제어 방법, 및 기록 매체 | |
JP6069528B2 (ja) | 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体 | |
US8392839B2 (en) | System and method for using partial teleportation or relocation in virtual worlds | |
US8363051B2 (en) | Non-real-time enhanced image snapshot in a virtual world system | |
US12034787B2 (en) | Hybrid streaming | |
JP6379107B2 (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
CN110333924A (zh) | 一种图像渐变调整方法、装置、设备及存储介质 | |
RU2810701C2 (ru) | Гибридный рендеринг | |
TWI532005B (zh) | An animation distribution server, an animation reproduction apparatus, a control method, a program, and a recording medium |