国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種圖像繪制的方法、用戶設(shè)備、服務(wù)器及系統(tǒng)的制作方法_2

      文檔序號:9910649閱讀:來源:國知局
      行圖像繪制,既降低了對服務(wù)器的硬件要求,同時提高了用戶設(shè)備的資源利用效率。本發(fā)明實施例還提供了相應(yīng)的用戶設(shè)備、服務(wù)器和系統(tǒng)。以下分別進(jìn)行詳細(xì)說明。
      [0047]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
      [0048]圖1為本發(fā)明實施例中云交互式系統(tǒng)的一實施例示意圖。
      [0049]參閱圖1,云交互式系統(tǒng)可以理解為是云游戲系統(tǒng),通常包括服務(wù)器和用戶設(shè)備,用戶設(shè)備可以有多個,服務(wù)器也可以是服務(wù)器集群,多種交互式應(yīng)用都可以運(yùn)行在云交互系統(tǒng)中。用戶設(shè)備可以是個人電腦(Personal Computer,PC)、筆記本和手機(jī)等終端設(shè)備。月艮務(wù)器可以是專用的游戲服務(wù)器,目前游戲的畫面都是由服務(wù)器完成繪制,然后一幀一幀的傳輸給用戶設(shè)備,在用戶設(shè)備上顯示。但本發(fā)明實施例中,服務(wù)器要將每幀圖像的繪制指令和繪制資源傳輸給用戶設(shè)備,由用戶設(shè)備來完成圖像繪制,每幀圖像在本發(fā)明實施例中成為圖像幀。這樣既降低了對服務(wù)器的硬件要求,同時提高了用戶設(shè)備的資源利用效率。
      [0050]結(jié)合圖1所示的云交互式系統(tǒng),下面參閱圖2所示的圖像繪制的方法的示意圖,對本發(fā)明實施例提供的圖像繪制的過程進(jìn)行說明。
      [0051]參閱圖2,本發(fā)明實施例提供的圖像繪制的方法的一實施例包括:
      [0052]101、服務(wù)器獲取圖像幀的所有繪制指令和繪制資源。
      [0053]每幀圖像幀有很多條繪制指令,通常有1000-100000個左右,繪制指令統(tǒng)計上雖然有大量的重復(fù),但是不同的組合會得到不同的效果。
      [0054]102、服務(wù)器對每條繪制指令進(jìn)行指令過濾,確定會影響圖像繪制的繪制指令。
      [0055]圖像幀的所有繪制指令中,有些繪制指令會影響繪制狀態(tài)和繪制結(jié)果,也就是說會影響繪制流程,但有些繪制指令不會影響繪制狀態(tài)和繪制結(jié)果,這樣,這些不影響繪制流程的繪制指令就不需要發(fā)送給用戶設(shè)備,所以可以通過指令過濾,過濾掉這些不影響繪制流程的繪制指令。
      [0056]指令過濾的過程就是:識別這一條繪制命令是否會影響繪制狀態(tài)和最終的繪制結(jié)果,比如D3D中獲取相關(guān)狀態(tài)的函數(shù)是不會影響繪制流程的,因此這些函數(shù)的繪制指令不需要傳輸給用戶設(shè)備,這一步的操作就是指令過濾。
      [0057]103、服務(wù)器向所述用戶設(shè)備發(fā)送所述會影響圖像繪制的繪制指令和所述會影響圖像繪制的繪制指令所對應(yīng)的繪制資源。
      [0058]會影響圖像繪制的繪制指令就是過濾后剩余的會影響繪制狀態(tài)和最終的繪制結(jié)果的繪制指令。
      [0059]104、用戶設(shè)備接收到所述服務(wù)器發(fā)送的圖像幀的會影響圖像繪制的繪制指令和所述會影響圖像繪制的繪制指令所對應(yīng)的繪制資源,確定所述繪制資源中包含執(zhí)行所述繪制指令所需的繪制資源時,執(zhí)行每條繪制指令。
      [0060]繪制指令和繪制資源可能沒有同步到達(dá),所以在執(zhí)行繪制之前要先確定該繪制指令的繪制資源是否已存在,如果已存在,則可以執(zhí)行繪制指令,若未存在,則可能會導(dǎo)致指令執(zhí)行失敗。
      [0061]105、利用所述每條繪制指令所需的繪制資源進(jìn)行圖像繪制,在執(zhí)行完所述圖像幀的所有繪制指令后,得到所述圖像幀的繪制畫面。
      [0062]此處的每條繪制指令指的是會影響圖像繪制的繪制指令中的每條繪制指令。
      [0063]與現(xiàn)有技術(shù)中對服務(wù)器的硬件要求較高,而且浪費(fèi)用戶設(shè)備的硬件資源相比,本發(fā)明實施例提供的圖像繪制的方法,可以由用戶設(shè)備進(jìn)行圖像繪制,既降低了對服務(wù)器的硬件要求,同時提高了用戶設(shè)備的資源利用效率。
      [0064]為了便于對本發(fā)明實施例中圖像繪制的方法進(jìn)行更詳細(xì)的理解,下面參閱圖3進(jìn)一步說明本發(fā)明實施例提供的圖像繪制的方法。
      [0065]參閱圖3,本發(fā)明實施例提供的圖像繪制的方法的另一實施例包括:
      [0066]201、服務(wù)器獲取圖像幀的所有繪制指令。
      [0067]202、服務(wù)器對該圖像幀的所有繪制指令進(jìn)行指令過濾,判斷每條繪制指令是否對繪制有影響,若有影響,則執(zhí)行步驟203。
      [0068]203、服務(wù)器根據(jù)所述會影響圖像繪制的繪制指令中各繪制指令的類型,將所述各繪制指令劃分到不同的指令緩存空間,并將所述各繪制指令所對應(yīng)的繪制資源劃分到資源緩存區(qū)。
      [0069]繪制指令的類型可以是不同的緩存類型、索引類型和流格式等。
      [0070]本發(fā)明實施例中的繪制指令可以包括圖3所示的指令標(biāo)識和指令數(shù)據(jù)兩部分,繪制資源為圖3中的繪制數(shù)據(jù)。
      [0071]所有的指令標(biāo)識放在一個緩存空間可以保證繪制指令的強(qiáng)順序性。
      [0072]對于繪制指令,服務(wù)器中設(shè)置了指令緩存空間,每個緩存空間存儲一種類型的指令,根據(jù)指令類型把繪制指令填充到對應(yīng)的緩存空間中。同時我們還需要獲得繪制指令所涉及的繪制資源,對于這些繪制資源,存在一個單獨(dú)的資源緩存區(qū)。
      [0073]對于每一條繪制指令都做了上面的步驟后,創(chuàng)建的各個指令緩存空間和資源緩存空間都會相應(yīng)的被填充不同數(shù)量的數(shù)據(jù),接下來的一步是對每個緩存空間做壓縮,也就是執(zhí)行步驟204和205。
      [0074]指令數(shù)據(jù),每種類型單獨(dú)劃分到一個緩存空間buffer,這樣做的好處是相似含義的數(shù)據(jù)具有規(guī)律性,然后使用壓縮算法壓縮可以得到高壓縮比,這樣一幀總共要傳輸?shù)臄?shù)據(jù)總量可以減少。
      [0075]本發(fā)明實施例中按照繪制指令的類型進(jìn)行指令劃分,目的是為了讓后續(xù)指令傳輸過程中減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。如果不用減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,也可以不用做任何區(qū)分,直接傳輸就可以。
      [0076]204、服務(wù)器進(jìn)行指令數(shù)據(jù)壓縮。
      [0077]205、服務(wù)器進(jìn)行資源數(shù)據(jù)壓縮。
      [0078]206和207、服務(wù)器通過雙通道發(fā)送壓縮后的指令數(shù)據(jù)和資源數(shù)據(jù)。
      [0079]圖3所示的指令數(shù)據(jù)是要與指令標(biāo)識同時傳遞到用戶設(shè)備的數(shù)據(jù),需要與指令標(biāo)識放在一個通道中傳輸,指令數(shù)據(jù)通常包括頂點(diǎn)數(shù)據(jù),用來構(gòu)建虛擬場景,指令數(shù)據(jù)不到程序會崩潰。繪制資源也就是資源數(shù)據(jù)主要指紋理,用來給場景貼圖,資源數(shù)據(jù)不到會影響繪制效果,但不會導(dǎo)致程序崩潰,所以可以通過另外一條通道傳輸,當(dāng)然,資源數(shù)據(jù)還可以通過多個通道異步到達(dá)用戶設(shè)備即可。
      [0080]本發(fā)明實施例中,指令數(shù)據(jù)和資源數(shù)據(jù)通過兩個通道分別傳輸給用戶設(shè)備。這么做的目的就是在網(wǎng)絡(luò)帶寬不夠或者網(wǎng)絡(luò)流量控制的情況下,可以優(yōu)先保障繪制指令通道的指令數(shù)據(jù)傳輸,資源數(shù)據(jù)可以慢慢發(fā)送。還有這部分?jǐn)?shù)據(jù)一般都是圖片,數(shù)據(jù)量很大,雙通道劃分了以后可以單獨(dú)對資源數(shù)據(jù)作處理,減少需要傳輸?shù)臄?shù)據(jù)量。
      [0081]對于發(fā)送數(shù)據(jù)的時間點(diǎn):所述服務(wù)器在所述圖像幀傳輸時隙到來時或到來之前,開始向所述用戶設(shè)備發(fā)送所述會影響圖像繪制的繪制指令和所述會影響圖像繪制的繪制指令所對應(yīng)的繪制資源,在所述圖像幀的傳輸時隙結(jié)束時,發(fā)送完成所述會影響圖像繪制的繪制指令和所述會影響圖像繪制的繪制指令所對應(yīng)的繪制資源;
      [0082]其中,所述到來之前為在所述圖像幀的傳輸時隙還未到來,但所述圖像幀的會影響圖像繪制的繪制指令和所述會影響圖像繪制的繪制指令所對應(yīng)的繪制資源的數(shù)據(jù)量超過預(yù)置閾值時。
      [0083]也就是說在每一幀結(jié)束的時候一定會把這一幀所涉及到的所有繪制命令和資源都發(fā)送。另外,還可以設(shè)定,當(dāng)各個緩存空間數(shù)據(jù)量達(dá)到一定程度的時候,可以提前發(fā)送掉這一幀的數(shù)據(jù)內(nèi)容,一幀的數(shù)據(jù)內(nèi)容可以分多次發(fā)送完成。
      [0084]208、用戶設(shè)備通過一條通道接收指令數(shù)據(jù)。
      [0085]接收指令數(shù)據(jù)后,將所述繪制指令分配到指令緩沖區(qū)存儲。尤其是在確定所述資源緩沖區(qū)中未存儲有所述繪制指令所需的繪制資源時,將所述繪制指令分配到指令緩沖區(qū)存儲。
      [0086]209、用戶設(shè)備通過另一條通道接收資源數(shù)據(jù)。
      [0087]接收資源數(shù)據(jù)后
      當(dāng)前第2頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1