本技術(shù)涉及計算機,特別是涉及一種虛擬場景的光照烘焙方法、裝置、計算機設(shè)備、存儲介質(zhì)和計算機程序產(chǎn)品。
背景技術(shù):
1、隨著計算機技術(shù)的發(fā)展,用戶對游戲的畫面展示效果的要求越來越高。
2、在游戲開發(fā)的過程中,由于真實光照渲染耗時較長,通常是離線計算場景中的直接光源和間接光源的光照信息并保存,這個過程叫做光照烘焙;在相關(guān)技術(shù)中,對游戲的虛擬場景進行光照烘焙,大多是對整體的虛擬場景進行光照烘焙,但是相關(guān)技術(shù)只能用于較小虛擬場景的光照烘焙,在虛擬場景較大時,光照烘焙涉及的數(shù)據(jù)量和計算量較大,受限于硬件資源,導(dǎo)致光照烘焙穩(wěn)定性較差。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種虛擬場景的光照烘焙方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品,能夠降低光照烘焙過程中的顯存占用率,提升光照烘焙的穩(wěn)定性。
2、第一方面,本技術(shù)提供了一種虛擬場景的光照烘焙方法。所述方法包括:
3、獲取虛擬場景中的場景元素;依據(jù)場景元素對虛擬場景進行場景劃分,得到場景樹結(jié)構(gòu);按照結(jié)構(gòu)層級關(guān)系在場景樹結(jié)構(gòu)的空間節(jié)點中遍歷到目標節(jié)點;當(dāng)依據(jù)目標節(jié)點的元素數(shù)量和目標節(jié)點的子孫節(jié)點的元素數(shù)量確定目標節(jié)點滿足烘焙條件時,依據(jù)目標節(jié)點的場景元素、目標節(jié)點的祖先節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集;對烘焙元素集進行光照烘焙,得到烘焙元素集的光照信息。
4、第二方面,本技術(shù)還提供了一種虛擬場景的光照烘焙裝置。所述裝置包括:
5、場景元素獲取模塊,用于獲取虛擬場景中的場景元素;
6、場景劃分模塊,用于依據(jù)場景元素對虛擬場景進行場景劃分,得到場景樹結(jié)構(gòu);
7、節(jié)點遍歷模塊,用于按照結(jié)構(gòu)層級關(guān)系在場景樹結(jié)構(gòu)的空間節(jié)點中遍歷到目標節(jié)點;
8、烘焙元素集獲取模塊,用于烘焙元素集確定模塊,用于當(dāng)依據(jù)目標節(jié)點的元素數(shù)量和目標節(jié)點的子孫節(jié)點的元素數(shù)量確定目標節(jié)點滿足烘焙條件時,依據(jù)目標節(jié)點的場景元素、目標節(jié)點的祖先節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集;
9、光照烘焙模塊,用于對烘焙元素集進行光照烘焙,得到烘焙元素集的光照信息。
10、在一些實施例中,虛擬場景的光照烘焙裝置還包括:烘焙條件判定模塊,用于獲取目標節(jié)點的元素數(shù)量和目標節(jié)點的子孫節(jié)點的元素數(shù)量;對目標節(jié)點的元素數(shù)量和子孫節(jié)點的元素數(shù)量進行求和處理,得到元素總數(shù)量;當(dāng)元素總數(shù)量屬于預(yù)設(shè)數(shù)量區(qū)間時,確定目標節(jié)點滿足烘焙條件。
11、在一些實施例中,烘焙元素集獲取模塊,還用于獲取目標節(jié)點的祖先節(jié)點的場景元素對應(yīng)的位置信息;根據(jù)位置信息在祖先節(jié)點的場景元素中選取待烘焙場景元素;根據(jù)待烘焙場景元素、目標節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集。
12、在一些實施例中,烘焙元素集獲取模塊,還用于在目標節(jié)點的祖先節(jié)點的場景元素中遍歷得到目標場景元素;獲取目標場景元素的中心點在虛擬場景中的位置信息;當(dāng)位置信息屬于目標節(jié)點的節(jié)點空間時,將目標場景元素作為待烘焙場景元素。
13、在一些實施例中,烘焙元素集獲取模塊,還用于獲取目標節(jié)點的祖先節(jié)點的場景元素對應(yīng)的位置信息;當(dāng)依據(jù)位置信息在祖先節(jié)點的場景元素中未選取到待烘焙場景元素時,根據(jù)目標節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集。
14、在一些實施例中,場景劃分模塊,還用于生成初始場景樹結(jié)構(gòu);在場景元素中遍歷得到待添加場景元素,將初始場景樹結(jié)構(gòu)中的根節(jié)點作為初始節(jié)點;獲取初始節(jié)點的節(jié)點類型;在節(jié)點類型為葉子節(jié)點類型的情況下,當(dāng)待添加場景元素不滿足元素添加條件時,對初始節(jié)點進行節(jié)點拆分得到子節(jié)點,以實現(xiàn)對初始場景樹結(jié)構(gòu)的更新,在拆分所得的子節(jié)點中選取待添加場景元素對應(yīng)的子節(jié)點作為初始節(jié)點,并返回執(zhí)行獲取初始節(jié)點的節(jié)點類型的步驟;當(dāng)待添加場景元素滿足元素添加條件時,將待添加場景元素添加至初始節(jié)點中,以更新初始場景樹結(jié)構(gòu),并返回執(zhí)行在場景元素中遍歷得到待添加場景元素的步驟;在完成對場景元素的遍歷之后,將更新后的初始場景樹結(jié)構(gòu)作為場景樹結(jié)構(gòu)。
15、在一些實施例中,元素添加條件包括第一元素添加條件或第二元素添加條件;場景劃分模塊,還用于在節(jié)點類型為葉子節(jié)點類型的情況下,獲取目標節(jié)點的節(jié)點空間、待添加場景元素的元素類型和元素空間;當(dāng)元素類型為對象類型,并且節(jié)點空間滿足第一空間劃分條件時,確定待添加場景元素不滿足第一元素添加條件;或者,當(dāng)元素類型為光照任務(wù)類型,并且元素空間和節(jié)點空間滿足第二空間劃分條件時,確定待添加場景元素不滿足第二元素添加條件。
16、在一些實施例中,元素添加條件包括第一元素添加條件或第二元素添加條件;場景劃分模塊,還用于在節(jié)點類型為葉子節(jié)點類型的情況下,獲取目標節(jié)點的節(jié)點空間、待添加場景元素的元素類型和元素空間;當(dāng)元素類型為對象類型,并且節(jié)點空間不滿足第一空間劃分條件時,確定待添加場景元素滿足第一元素添加條件;或者,當(dāng)元素類型為光照任務(wù)類型,并且元素空間和節(jié)點空間不滿足第二空間劃分條件時,確定待添加場景元素滿足第二元素添加條件。
17、在一些實施例中,場景劃分模塊,還用于在節(jié)點類型不是葉子節(jié)點類型的情況下,在目標節(jié)點的各子節(jié)點中獲取待添加場景元素對應(yīng)的目標子節(jié)點;當(dāng)目標子節(jié)點的數(shù)量不滿足相交條件時,將目標子節(jié)點作為遍歷得到的初始節(jié)點,并返回執(zhí)行獲取初始節(jié)點的節(jié)點類型的步驟。
18、在一些實施例中,場景劃分模塊,還用于當(dāng)目標子節(jié)點的數(shù)量滿足相交條件時,將待添加場景元素添加至初始節(jié)點中,以更新初始場景樹結(jié)構(gòu),并返回執(zhí)行在場景元素中遍歷得到待添加場景元素的步驟。
19、在一些實施例中,虛擬場景的光照烘焙裝置還包括:光照信息保存模塊,用于基于烘焙元素集的光照信息獲得虛擬場景的預(yù)設(shè)子場景中所有場景元素的光照信息;對預(yù)設(shè)子場景中所有場景元素的光照信息進行保存。
20、在一些實施例中,預(yù)設(shè)子場景的數(shù)量為至少兩個;光照信息保存模塊,還用于獲取烘焙元素集中各場景元素的子場景標識;在烘焙元素集中各場景元素的光照信息中,依據(jù)各子場景標識獲取各預(yù)設(shè)子場景中場景元素的光照信息;在得到任一預(yù)設(shè)子場景中所有場景元素的光照信息時,將任一預(yù)設(shè)子場景中所有場景元素的光照信息保存。
21、第三方面,本技術(shù)還提供了一種計算機設(shè)備。所述計算機設(shè)備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)以下步驟:
22、獲取虛擬場景中的場景元素;依據(jù)場景元素對虛擬場景進行場景劃分,得到場景樹結(jié)構(gòu);按照結(jié)構(gòu)層級關(guān)系在場景樹結(jié)構(gòu)的空間節(jié)點中遍歷到目標節(jié)點;當(dāng)依據(jù)目標節(jié)點的元素數(shù)量和目標節(jié)點的子孫節(jié)點的元素數(shù)量確定目標節(jié)點滿足烘焙條件時,依據(jù)目標節(jié)點的場景元素、目標節(jié)點的祖先節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集;對烘焙元素集進行光照烘焙,得到烘焙元素集的光照信息。
23、第四方面,本技術(shù)還提供了一種計算機可讀存儲介質(zhì)。所述計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:
24、獲取虛擬場景中的場景元素;依據(jù)場景元素對虛擬場景進行場景劃分,得到場景樹結(jié)構(gòu);按照結(jié)構(gòu)層級關(guān)系在場景樹結(jié)構(gòu)的空間節(jié)點中遍歷到目標節(jié)點;當(dāng)依據(jù)目標節(jié)點的元素數(shù)量和目標節(jié)點的子孫節(jié)點的元素數(shù)量確定目標節(jié)點滿足烘焙條件時,依據(jù)目標節(jié)點的場景元素、目標節(jié)點的祖先節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集;對烘焙元素集進行光照烘焙,得到烘焙元素集的光照信息。
25、第五方面,本技術(shù)還提供了一種計算機程序產(chǎn)品。所述計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:
26、獲取虛擬場景中的場景元素;依據(jù)場景元素對虛擬場景進行場景劃分,得到場景樹結(jié)構(gòu);按照結(jié)構(gòu)層級關(guān)系在場景樹結(jié)構(gòu)的空間節(jié)點中遍歷到目標節(jié)點;當(dāng)依據(jù)目標節(jié)點的元素數(shù)量和目標節(jié)點的子孫節(jié)點的元素數(shù)量確定目標節(jié)點滿足烘焙條件時,依據(jù)目標節(jié)點的場景元素、目標節(jié)點的祖先節(jié)點的場景元素和子孫節(jié)點的場景元素,確定烘焙元素集;對烘焙元素集進行光照烘焙,得到烘焙元素集的光照信息。
27、上述虛擬場景的光照烘焙方法、裝置、計算機設(shè)備、存儲介質(zhì)和計算機程序產(chǎn)品,對虛擬場景中的場景元素進行場景劃分,得到場景樹結(jié)構(gòu),在場景樹結(jié)構(gòu)中遍歷目標節(jié)點,并在目標節(jié)點和目標節(jié)點的子孫節(jié)點的元素數(shù)量滿足烘焙條件時,根據(jù)目標節(jié)點、目標節(jié)點的祖先節(jié)點和子孫節(jié)點各自包括的烘焙元素,確定烘焙元素集,使得烘焙元素集中的場景元素的數(shù)量較少,對烘焙元素集進行光照烘焙,使得參與一次光照烘焙的場景元素的數(shù)量較少,可以降低光照烘焙過程中的顯存占用率,可以提升光照烘焙的穩(wěn)定性。