一種游戲圖像渲染方法及系統的制作方法
【技術領域】
[0001]本申請涉及圖像處理技術領域,具體地說,涉及一種游戲圖像渲染方法及系統。
【背景技術】
[0002]在現階段,電子游戲已經是人們日常娛樂不可缺少的組成部分。尤其是對于當下熱門的智能終端類產品,隨著操作系統的完善和硬件配置的不斷攀升,其所搭載的電子游戲的規模也一直在快速的增長。電子游戲無論視覺效果還是交互操作方式,都不停的升級換代。相應的,電子游戲所消耗的性能資源也必然越來越多。
[0003]不同于普通軟件的界面只在操作時發生響應,電子游戲的顯示圖像處在一種循環的渲染過程中;即使用戶不做任何操作,也要逐幀進行圖像渲染,才能夠維持游戲圖像連貫的顯示。換言之,在運行電子游戲的時候,維持游戲圖像必須長時間的占用大量性能資源。
[0004]在現有技術中,要想降低逐幀渲染對性能資源的消耗,采取的方式是減少幀數。例如將游戲圖像的每秒60幀減少至每秒30?40幀。但是,減少幀數會顯著的降低游戲圖像的視覺效果,導致圖像的卡頓,降低用戶體驗;而且低幀數也會導致用戶眼睛的疲勞。
【發明內容】
[0005]有鑒于此,本申請提供了一種游戲圖像渲染方法及系統,主要應用在智能終端搭載的游戲程序常用的3D引擎當中,能夠在不減少幀數的情況下,實現性能優化,降低圖像渲染對性能資源的占用。
[0006]為了解決上述技術問題,本申請有如下技術方案:
[0007]一種游戲圖像渲染方法,所述方法包括:
[0008]確定當前邏輯場景,并將所述當前邏輯場景與舊邏輯場景進行對比,將所述當前邏輯場景相對于舊邏輯場景發生位置變化的邏輯元素,作為目標元素;所述舊邏輯場景為當前邏輯場景相鄰的前一個邏輯場景;
[0009]調取舊邏輯場景對應的圖像幀作為舊圖像幀;根據所述目標元素的位置,在所述舊圖像幀上劃定判定矩形;所述判定矩形為,覆蓋所述目標元素在當前邏輯場景中位置和舊邏輯場景中位置,且面積最小的矩形;
[0010]根據所述當前邏輯場景,對所述舊圖像幀中的判定矩形覆蓋的區域進行重新繪制,得到當前圖像幀,并將所述當前圖像幀顯示;
[0011]重復上述過程,以生成動態的游戲圖像。
[0012]所述對舊圖像幀中的判定矩形覆蓋的區域進行重新繪制具體為:
[0013]將舊圖像幀中,被判定矩形覆蓋的像素的值標記為I,未被判定矩形覆蓋的像素的值標記為O ;
[0014]根據當前邏輯場景中對邏輯元素的設定,重新繪制所有像素值為I的像素。
[0015]將所述當前邏輯場景相對于舊邏輯場景未發生位置變化的邏輯元素,作為非目標元素;則所述對所述舊圖像幀中的判定矩形覆蓋的區域進行重新繪制還包括:
[0016]將全部或部分被判定矩形覆蓋的非目標元素進行重新繪制。
[0017]所述目標元素為一個或者多個;當所述目標元素為多個,則所述根據所述目標元素的位置,在所述舊圖像幀上劃定判定矩形具體為:
[0018]針對每個目標元素在當前邏輯場景中位置和舊邏輯場景中位置,在所述舊圖像幀上劃定判定矩形。
[0019]所述方法還包括:
[0020]設定數量閾值,當目標元素的數量超過所述數量閾值,則在針對每個目標元素劃定判定矩形之后,對所述判定矩形進行合并;
[0021]合并后的判定矩形的數量不大于所述數量閾值,且各判定矩形的面積之和最小。
[0022]一種游戲圖像渲染系統,所述系統包括:
[0023]目標元素模塊,用于確定當前邏輯場景,并將所述當前邏輯場景與舊邏輯場景進行對比,將所述當前邏輯場景相對于舊邏輯場景發生位置變化的邏輯元素,作為目標元素;
[0024]判定矩形模塊,用于調取舊邏輯場景對應的圖像幀作為舊圖像幀;根據所述目標元素的位置,在所述舊圖像幀上劃定判定矩形;
[0025]圖像生成模塊,用于根據所述當前邏輯場景,對所述舊圖像幀中的判定矩形覆蓋的區域進行重新繪制,得到當前圖像幀,并將所述當前圖像幀顯示;
[0026]所述舊邏輯場景為當前邏輯場景相鄰的前一個邏輯場景;
[0027]所述判定矩形為,覆蓋所述目標元素在當前邏輯場景中位置和舊邏輯場景中位置,且面積最小的矩形。
[0028]所述圖像生成模塊包括:
[0029]標記單元,用于將舊圖像幀中,被判定矩形覆蓋的像素的值標記為1,未被判定矩形覆蓋的像素的值標記為O ;
[0030]繪制單元,用于根據當前邏輯場景中對邏輯元素的設定,重新繪制所有像素值為I的像素,得到當前圖像幀,并將所述當前圖像幀顯示。
[0031]將所述當前邏輯場景相對于舊邏輯場景未發生位置變化的邏輯元素,作為非目標元素;則所述圖像生成模塊對所述舊圖像幀中的判定矩形覆蓋的區域進行重新繪制還包括:
[0032]將全部或部分被判定矩形覆蓋的非目標元素進行重新繪制。
[0033]所述目標元素為一個或者多個;當所述目標元素為多個,則所述判定矩形模塊包括:
[0034]調取單元,用于調取舊邏輯場景對應的圖像幀作為舊圖像幀;
[0035]判定單元,用于針對每個目標元素在當前邏輯場景中位置和舊邏輯場景中位置,在所述舊圖像幀上劃定判定矩形。
[0036]所述判定矩形模塊還包括:
[0037]合并單元,用于設定數量閾值,當目標元素的數量超過所述數量閾值,則在針對每個目標元素劃定判定矩形之后,對所述判定矩形進行合并;合并后的判定矩形的數量不大于所述數量閾值,且各判定矩形的面積之和最小。
[0038]與現有技術相比,本申請所述的方法和系統,達到了如下效果:減少了渲染過程中的圖像繪制面積,使得硬件的運算量顯著下降,直接的降低了產生動態游戲圖像對硬件資源的消耗;并且通過計算使判定矩形的面積盡可能小,實現了進一步的性能優化。
[0039]當然,實施本申請的任一產品必不一定需要同時達到以上所述的所有技術效果。
【附圖說明】
[0040]此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
[0041]圖1為本申請實施例所述方法流程圖;
[0042]圖2?圖3為本申請實施例所述判定矩形的示意圖;
[0043]圖4A?圖4C為本申請實施例所述判定矩形合并的示意圖;
[0044]圖5為本申請實施例所述判定矩形覆蓋非目標元素示意圖;
[0045]圖6為本申請實施例所述系統結構示意圖。
【具體實施方式】
[0046]如在說明書及權利要求當中使用了某些詞匯來指稱特定組件。本領域技術人員應可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權利要求并不以名稱的差異來作為區分組件的方式,而是以組件在功能上的差異來作為區分的準則。如在通篇說明書及權利要求當中所提及的“包含”為一開放式用語,故應解釋成“包含但不限定于”。“大致”是指在可接收的誤差范圍內,本領域技術人員能夠在一定誤差范圍內解決所述技術問題,基本達到所述技術效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,并非用以限定本申請的范圍。本申請的保護范圍當視所附權利要求所界定者為準。
[0047]圖像幀是動態影像最基本的組成部分。一幀即一個靜態圖像,大量的圖像幀快速連續的播放,就能夠借助人眼的余暉效應形成視覺上的動態影像。無論電影、動畫或者本申請中所述的游戲圖像,都是基于這一原理產生動態影像的。
[0048]對于游戲程序來說,要利用圖像幀的播放形成動態游戲圖像,必須依靠CPU、GPU和內存等硬件逐幀進行計算和渲染。一個圖像幀的渲染過程大致如下:先用背景色(通常是黑色)完全填充舊圖像幀,