游戲模型渲染方法和裝置

游戲模型渲染方法和裝置

游戲模型渲染方法和裝置是由許飛 發明開發。

本發明公開了一種游戲模型渲染方法和裝置。其中,該方法包括:響應游戲觸發事件,獲取預存的虛擬模型的不同角度的像素信息,像素信息包括色彩信息和深度信息,其中,虛擬模型與游戲觸發事件相對應;根據虛擬模型的不同角度的像素信息重建與虛擬模型對應的三維模型;獲取當前視角信息,獲取三維模型與當前視角信息相對應的待渲染模型;將待渲染模型渲染以進行顯示。本發明解決了現有技術在二維游戲中對復雜模型進行三維渲染時,由于受多種因素限制,導致三維渲染開銷大的技術問題。

[0001] 本發明涉及游戲圖形渲染領域,具體而言,涉及一種游戲模型渲染方法和裝置。

背景技術

[0002] 為了使用戶有更好的游戲體驗,在開發游戲的過程中,需要對游戲中的模型進行渲染,其中,游戲中的模型可以為二維模型,也可以為三維模型。二維模型應用在二維游戲中,二維游戲的資源主要是圖片,由于二維圖片存儲的只是三維模型在某個角度的投影,相對于三維模型,二維圖片丟失了空間維度信息,因此,二維游戲易實現平移、縮放、垂直于屏幕的旋轉等效果,但很難實現三維旋轉效果。

[0003] 目前主要采用以下兩種方式實現二維游戲中的旋轉效果:

[0004] 方式一:傳統二維游戲制作方法。該方法可將二維模型可能的旋轉方向離散到有限數量的方向上,每個方向的美術資源都預先制作出來,二維模型只能以這些方向顯示。二維模型旋轉時,選取最近方向的資源顯示,例如,二維模型的旋轉方向為4方向或者8方向。在該方式中,二維模型的旋轉不平滑,二維模型在旋轉時易出現90度或者45度的跳變。另外,通過增加方向雖然可以減緩二維模型旋轉的跳變,但隨著離散方向的增加,游戲資源對應的數據量也增加,而且也無法實現完全的無縫旋轉。

[0005] 方式二:二維/三維的混合渲染方法。該方法可將需要旋轉的二維模型直接使用三維數據表示,用三維引擎渲染,渲染的結果為二維資源(例如,二維圖片),最后將渲染出的二維資源加入到最終的渲染結果中。在該方法中,最后得到的渲染結果對應的渲染質量受限于三維實時渲染效果,而三維實時渲染效果很難達到二維離線渲染的水平。另外,三維在線渲染的風格與三維渲染風格差距較大,需花費大量的工作匹配三維實時渲染與二維游戲的風格。通常,二維資源使用比較復雜的渲染器進行離線渲染來,而離線渲染對模型的面數、骨骼動畫的骨骼數量、材質的復雜度、光源數量等要求較松。而三維3D實時渲染對模型的面數、骨骼數量、材質復雜度、光源數量等要求嚴格,即二維/三維的混合渲染方法需要用精簡版的模型渲染出精細的效果,該過程伴隨大量的美術、程序工作,而且渲染結果可能不夠好。

[0006] 針對上述的問題,目前尚未提出有效的解決方案。

內容

[0007] 本發明實施例提供了一種游戲模型渲染方法和裝置,以至少解決現有技術在二維游戲中對復雜模型進行三維渲染時,由于受多種因素限制,導致三維渲染開銷大的技術問題。

[0008] 根據本發明實施例的一個方面,提供了一種游戲模型渲染方法,包括:響應游戲觸發事件,獲取預存的虛擬模型的不同角度的像素信息,像素信息包括色彩信息和深度信息,其中,虛擬模型與游戲觸發事件相對應;根據虛擬模型的不同角度的像素信息重建與虛擬模型對應的三維模型;獲取當前視角信息,獲取三維模型與當前視角信息相對應的待渲染模型;將待渲染模型渲染以進行顯示。

[0009] 進一步地,預存的虛擬模型的不同角度的像素信息通過如下步驟進行:預先通過多個相機對虛擬模型進行拍攝所得到的不同角度的像素信息,其中,多個相機分布在預設模型的表面,預設模型包圍虛擬模型。

[0010] 進一步地,預設模型為中心對稱的幾何體,多個相機均勻設置在幾何體的表面上。

[0011] 進一步地,游戲模型渲染方法還包括:在獲取預存的虛擬模型的不同角度的像素信息之前,檢測虛擬模型對應的模型信息,其中,模型信息至少包括:虛擬模型的大??;基于模型信息確定多個相機的相機數量;基于相機數量將多個相機在幾何體的表面中的位置映射在內接八面體上。

[0012] 進一步地,游戲模型渲染方法還包括:根據游戲場景確定虛擬模型中待旋轉的第一部分模型;確定第一部分模型映射在內接八面體中的第二部分模型;基于第二部分模型以及相機數量將多個相機在幾何體的表面中的位置映射在內接八面體上。

[0013] 進一步地,游戲模型渲染方法還包括:獲取每個相機的朝向信息以及相機參數;基于朝向信息、相機參數以及透視方法將虛擬模型轉換至相機空間,得到轉換結果;基于轉換結果計算每個像素與該像素所對應的相機的距離,得到深度信息。

[0014] 進一步地,游戲模型渲染方法還包括:獲取每個相機對虛擬模型進行拍攝所拍攝到的投影圖像;根據每個相機的投影圖像中的每個像素的深度信息,確定每個像素在相機空間內的第一位置信息;將第一位置信息轉換為每個相機所在的三維空間內的第二位置信息,得到每個角度對應的像素在三維空間中的三維位置;基于三維位置重建三維模型。

[0015] 進一步地,游戲模型渲染方法還包括:根據每個相機在預設模型中的分布信息確定每個相機的位置信息以及朝向信息;根據每個相機的位置以及朝向信息得到預設矩陣;基于預設矩陣以及投影圖像中的每個像素的深度信息得到每個像素在相機空間內的第一位置信息。

[0016] 進一步地,游戲模型渲染方法還包括:確定三維模型中的當前視角信息所對應的當前相機;從多個相機中確定至少一個預設相機,其中,至少一個預設相機為多個相機中與當前相機的距離滿足預設條件的相機;基于至少一個預設相機的拍攝角度對三維模型進行顏色插值,得到待渲染模型。

[0017] 根據本發明實施例的另一方面,還提供了一種游戲模型渲染裝置,包括:第一獲取模塊,用于響應游戲觸發事件,獲取預存的虛擬模型的不同角度的像素信息,像素信息包括色彩信息和深度信息,其中,虛擬模型與游戲觸發事件相對應;重建模塊,用于根據虛擬模型的不同角度的像素信息重建與虛擬模型對應的三維模型;第二獲取模塊,用于獲取當前視角信息,獲取三維模型與當前視角信息相對應的待渲染模型;顯示模塊,用于將待渲染模型渲染以進行顯示。

[0018] 根據本發明實施例的另一方面,還提供了一種存儲介質,該存儲介質包括存儲的程序,其中,在程序運行時控制存儲介質所在設備執行上述的游戲模型渲染方法。

[0019] 根據本發明實施例的另一方面,還提供了一種處理器,該處理器用于運行程序,其中,程序運行時執行上述的游戲模型渲染方法。

[0020] 在本發明實施例中,采用在二維游戲中對二維模型進行三維渲染的方式,在響應游戲觸發事件之后,獲取預存的虛擬模型的不同角度的像素信息,根據虛擬模型的不同角度的像素信息重建與虛擬模型對應的三維模型,然后獲取當前視角信息,以及三維模型與當前視角信息相對應的待渲染模型,將待渲染模型渲染以進行顯示。

[0021] 在上述過程中,在采用虛擬模型的不同角度的像素信息重建三維模型的過程中,實際為離線渲染的過程,該過程不涉及系統運行時的開銷,對虛擬模型的精度、骨骼數量、材質復雜度、光照復雜度等沒有限制。另外,在重建三維模型之后,直接從三維模型中確定與當視角信息相對應的待渲染模型,無需再進行復雜的計算,因此,可以在不增加資源量的情況下,使得渲染結果不受模型復雜度和光照復雜度等的限制,降低了三維渲染的開銷,提高了渲染精度。

[0022] 由此可見,本申請所提供的方案達到了對模型進行渲染的目的,從而實現了降低三維渲染開銷的技術效果,進而解決了現有技術在二維游戲中對復雜模型進行三維渲染時,由于受多種因素限制,導致三維渲染開銷大的技術問題。

技術要求書

1.一種游戲模型渲染方法,其特征在于,包括:響應游戲觸發事件,獲取預存的虛擬模型的不同角度的像素信息,所述像素信息包括色彩信息和深度信息,其中,所述虛擬模型與所述游戲觸發事件相對應;根據所述虛擬模型的不同角度的像素信息重建與所述虛擬模型對應的三維模型;獲取當前視角信息,獲取所述三維模型與所述當前視角信息相對應的待渲染模型;將所述待渲染模型渲染以進行顯示。

2.根據權利要求1所述的方法,其特征在于,所述預存的虛擬模型的不同角度的像素信息通過如下步驟進行:預先通過多個相機對所述虛擬模型進行拍攝所得到的不同角度的像素信息,其中,所述多個相機分布在預設模型的表面,所述預設模型包圍所述虛擬模型。

3.根據權利要求2所述的方法,其特征在于,所述預設模型為中心對稱的幾何體,所述多個相機均勻設置在所述幾何體的表面上。

4.根據權利要求3所述的方法,其特征在于,在獲取預存的虛擬模型的不同角度的像素信息之前,所述方法還包括:檢測所述虛擬模型對應的模型信息,其中,所述模型信息至少包括:所述虛擬模型的大??;基于所述模型信息確定所述多個相機的相機數量;基于所述相機數量將所述多個相機在所述幾何體的表面中的位置映射在內接八面體上。

5.根據權利要求4所述的方法,其特征在于,基于所述相機數量將所述多個相機在所述幾何體的表面中的位置映射在內接八面體上,包括:根據游戲場景確定所述虛擬模型中待旋轉的第一部分模型;確定所述第一部分模型映射在所述內接八面體中的第二部分模型;基于所述第二部分模型以及所述相機數量將所述多個相機在所述幾何體的表面中的位置映射在所述內接八面體上。

6.根據權利要求2所述的方法,其特征在于,獲取多個相機對所述虛擬模型進行拍攝所得到的不同角度的像素信息,包括:獲取每個相機的朝向信息以及相機參數;基于所述朝向信息、所述相機參數以及透視方法將所述虛擬模型轉換至相機空間,得到轉換結果;基于所述轉換結果計算每個像素與該像素所對應的相機的距離,得到所述深度信息。

7.根據權利要求6所述的方法,其特征在于,根據所述虛擬模型的不同角度的像素信息重建與所述虛擬模型對應的三維模型,包括:獲取所述每個相機對所述虛擬模型進行拍攝所拍攝到的投影圖像;根據所述每個相機的投影圖像中的每個像素的深度信息,確定所述每個像素在所述相機空間內的第一位置信息;將所述第一位置信息轉換為所述每個相機所在的三維空間內的第二位置信息,得到每個角度對應的像素在所述三維空間中的三維位置;基于所述三維位置重建所述三維模型。

8.根據權利要求7所述的方法,其特征在于,根據所述每個相機的投影圖像中的每個像素的深度信息,確定所述每個像素在所述相機空間內的第一位置信息,包括:根據所述每個相機在所述預設模型中的分布信息確定所述每個相機的位置信息以及所述朝向信息;根據所述每個相機的位置以及所述朝向信息得到預設矩陣;基于所述預設矩陣以及所述投影圖像中的每個像素的深度信息得到所述每個像素在所述相機空間內的第一位置信息。

9.根據權利要求2所述的方法,其特征在于,獲取所述三維模型與所述當前視角信息相對應的待渲染模型,包括:確定所述三維模型中的所述當前視角信息所對應的當前相機;從所述多個相機中確定至少一個預設相機,其中,所述至少一個預設相機為所述多個相機中與所述當前相機的距離滿足預設條件的相機;基于所述至少一個預設相機的拍攝角度對所述三維模型進行顏色插值,得到所述待渲染模型。

10.一種游戲模型渲染裝置,其特征在于,包括:第一獲取模塊,用于響應游戲觸發事件,獲取預存的虛擬模型的不同角度的像素信息,所述像素信息包括色彩信息和深度信息,其中,所述虛擬模型與所述游戲觸發事件相對應;重建模塊,用于根據所述虛擬模型的不同角度的像素信息重建與所述虛擬模型對應的三維模型;第二獲取模塊,用于獲取當前視角信息,獲取所述三維模型與所述當前視角信息相對應的待渲染模型;顯示模塊,用于將所述待渲染模型渲染以進行顯示。

11.一種存儲介質,其特征在于,所述存儲介質包括存儲的程序,其中,在所述程序運行時控制所述存儲介質所在設備執行權利要求1至9中任意一項所述的游戲模型渲染方法。

12.一種處理器,其特征在于,所述處理器用于運行程序,其中,所述程序運行時執行權利要求1至9中任意一項所述的游戲模型渲染方法。

說明書附圖

圖1

圖2

圖3

圖4

圖5

圖6