本發(fā)明屬于計算機(jī)圖形學(xué)渲染性能分析,具體涉及一種自動多場景多資源渲染性能評估和畫質(zhì)對比方法和系統(tǒng)。
背景技術(shù):
1、在現(xiàn)代圖形渲染技術(shù)領(lǐng)域,隨著計算機(jī)圖形學(xué)的發(fā)展,渲染技術(shù)已經(jīng)變得越來越復(fù)雜和多樣化。為了優(yōu)化和提升圖形渲染效果,許多可視化工具應(yīng)運(yùn)而生,幫助開發(fā)者進(jìn)行調(diào)試和性能分析。這些工具能夠?qū)崟r顯示渲染過程中各個階段的數(shù)據(jù),幫助開發(fā)者識別和解決性能瓶頸。然而,隨著圖形渲染技術(shù)的不斷進(jìn)步和應(yīng)用場景的多樣化,現(xiàn)有的可視化工具在應(yīng)對復(fù)雜的渲染場景和多種資源配置時,往往顯得力不從心。
2、目前,gpu(圖形處理單元)在圖形渲染中的重要性越來越突出,特別是在移動設(shè)備上,gpu的性能直接影響到圖形渲染的質(zhì)量和用戶體驗(yàn)。移動端gpu的發(fā)展極大地推動了圖形渲染技術(shù)的進(jìn)步,但同時也帶來了新的挑戰(zhàn)。移動設(shè)備的硬件資源有限,如何在保證高質(zhì)量渲染效果的同時,優(yōu)化性能成為了一個重要的研究課題。
3、傳統(tǒng)的性能評估和畫質(zhì)對比方法通常依賴于手動測試,這不僅耗時費(fèi)力,而且容易受到人為因素的影響,導(dǎo)致結(jié)果不夠客觀和準(zhǔn)確。此外,手動測試的方法難以在多場景、多資源配置的復(fù)雜環(huán)境中進(jìn)行全面和系統(tǒng)的分析。為了解決這些問題,亟需一種能夠自動化、多場景、多資源的渲染性能評估和畫質(zhì)對比的方法。
4、現(xiàn)有的工具如renderdoc和nsight,雖然在單幀分析方面表現(xiàn)出色,但在對整體渲染流程進(jìn)行對比可視化方面存在不足。它們通常只能對單個幀進(jìn)行詳細(xì)的性能分析,無法有效地展示多幀、多場景的渲染過程和性能變化。這種局限性使得開發(fā)者難以全面了解整個渲染過程中的性能瓶頸和優(yōu)化空間。
5、此外,現(xiàn)代圖形api(如vulkan和directx?12)的出現(xiàn),使得渲染調(diào)度架構(gòu)變得更加底層和復(fù)雜。在這些api中,開發(fā)者需要直接管理顯存、命令隊(duì)列等底層資源,這增加了性能分析和優(yōu)化的難度。尤其是在延遲渲染管線(deferred?rendering)或基于瓦片的渲染(tiled-based?rendering,tbr)中,并行性的影響更加顯著,使得測試材質(zhì)或幾何資源在渲染過程中的性能變得更加困難。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述,本發(fā)明的目的是提供一種自動多場景多資源渲染性能評估和畫質(zhì)對比方法,實(shí)現(xiàn)對不同渲染場景和資源配置的全面性能評估和畫質(zhì)對比,從而幫助開發(fā)者更高效地優(yōu)化渲染效果,提高系統(tǒng)的整體性能。
2、為實(shí)現(xiàn)上述發(fā)明目的,實(shí)施例提供的一種自動多場景多資源渲染性能評估和畫質(zhì)對比方法,包括以下步驟:
3、數(shù)據(jù)輸入及預(yù)處理:輸入被測試的渲染資源和測試配置,依據(jù)渲染目標(biāo)數(shù)量選擇多目標(biāo)測試流程或單目標(biāo)測試流程,當(dāng)選擇多目標(biāo)測試流程時將每個渲染目標(biāo)的渲染資源提前注入創(chuàng)建的渲染流程,當(dāng)選擇單目標(biāo)測試流程,為同渲染目標(biāo)配置相同渲染資源,且確定在渲染流程中檢測加載被測試的渲染資源并替換原目標(biāo)渲染資源;
4、性能分析:將渲染流程拆分為多個獨(dú)立的渲染指令,根據(jù)渲染指令劃分測試范圍,每個渲染指令單獨(dú)代表一個渲染通道,為每個渲染指令綁定渲染資源形成資源依賴關(guān)系并維護(hù),依據(jù)測試范圍和資源依賴關(guān)系執(zhí)行渲染指令并測量性能開銷,保存性能測量結(jié)果和不同渲染資源對應(yīng)的渲染幀;
5、畫質(zhì)分析:計算不同渲染資源對應(yīng)渲染幀之間的畫質(zhì)差異并保存圖像差異結(jié)果;
6、結(jié)果展示:展示依據(jù)性能測量結(jié)果確定的性能差異結(jié)果和圖像差異結(jié)果。
7、優(yōu)選地對于單資源測試流程,直接重放錄制好的渲染指令流文件,在運(yùn)行過程中識別并替換目標(biāo)資源;
8、對于多資源測試流程,將每個渲染目標(biāo)的渲染資源提前注入創(chuàng)建的渲染流程,包括:預(yù)先將每個渲染目標(biāo)的被測試的渲染資源以替換原目標(biāo)渲染資源的方式注入到創(chuàng)建的渲染流程中;
9、針對單資源測試流程和多資源測試流程,都會記錄每個渲染資源的使用情況和性能表現(xiàn),這樣來確保每個渲染資源能在相同的渲染環(huán)境中進(jìn)行后續(xù)的性能分析和畫質(zhì)分析。
10、優(yōu)選地,為同渲染目標(biāo)配置相同渲染資源,包括:
11、認(rèn)為在數(shù)據(jù)加載時使用的相同數(shù)據(jù)被認(rèn)為是相同渲染資源,并在多次使用相同渲染資源的渲染目標(biāo)為同渲染目標(biāo),基于此為同渲染目標(biāo)配置相同渲染資源。
12、優(yōu)選地,根據(jù)渲染指令劃分測試范圍,包括:
13、在輸入渲染流程后,處理掉存在父子關(guān)系的命令緩沖區(qū),并在命令緩沖區(qū)通過設(shè)置二級命令緩沖來實(shí)現(xiàn)單個一級命令緩沖管理多個二級命令緩沖,具體保存二級命令緩沖中的命令,并按照順序在一級命令緩沖中合理展開二級命令調(diào)用,當(dāng)需要修改當(dāng)前命令綁定的命令緩沖時,按照渲染通道劃分執(zhí)行順序。
14、優(yōu)選地,每個渲染指令單獨(dú)代表一個渲染通道,強(qiáng)行讓整個渲染流程存在一定的串行關(guān)系,且保證每個渲染指令之間相互獨(dú)立,針對每個渲染通道,使用時間戳在開始和結(jié)束分別打一個時間戳,整個渲染流程的渲染時間為時間戳的差值。
15、優(yōu)選地,為每個渲染指令綁定渲染資源形成資源依賴關(guān)系并維護(hù),包括:
16、在拆分渲染流程形成多個渲染通道時記錄每個渲染通道狀態(tài),其中,渲染通道狀態(tài)包括渲染通道的渲染資源配置和參數(shù)變更,并依據(jù)渲染通道狀態(tài)為每個渲染通道分配一個渲染過程附件,該渲染過程附件維護(hù)了渲染流程中渲染指令的資源依賴關(guān)系;
17、當(dāng)多個渲染指令位于同一渲染通道時,拆分渲染流程形成多渲染通道過程中要明確以下內(nèi)容:
18、是否加載之前的顏色附件:在新增渲染通道時,必須明確是否需要加載之前渲染通道中使用的顏色附件;
19、保存當(dāng)前渲染通道的結(jié)果:必須確定當(dāng)前渲染通道的渲染結(jié)果是否需要被保存到附件中,以便后續(xù)渲染通道能夠加載和使用這些中間結(jié)果。
20、優(yōu)選地,計算不同渲染資源對應(yīng)的渲染幀之間的圖像差異,包括:
21、逐幀通過ssim計算不同渲染資源對應(yīng)的渲染幀之間的圖像差異值,并保存圖像差異結(jié)果和對應(yīng)的渲染幀。
22、優(yōu)選地,展示性能測量結(jié)果和圖像差異結(jié)果,包括:
23、針對性能測量結(jié)果展示,對于單目標(biāo)測試流程,展示單渲染資源在渲染流程中相較于目標(biāo)渲染資源的性能差異結(jié)果;對于多目標(biāo)測試流程,展示多渲染資源在整體場景的渲染流程中相較于目標(biāo)渲染資源的綜合性能差異結(jié)果,以及展示每個渲染資源在整體場景的渲染流程中相較于目標(biāo)渲染資源的單個性能差異結(jié)果。
24、優(yōu)選地,展示性能測量結(jié)果和圖像差異結(jié)果,包括:
25、針對圖像差異結(jié)果展示,對于單目標(biāo)測試流程,展示單渲染資源相較于目標(biāo)渲染資源,圖像差異結(jié)果最大的至少2幀渲染幀畫面;對于多目標(biāo)測試流程,展示多渲染資源相較于目標(biāo)渲染資源,在整個渲染場景中每一渲染幀的圖像差異結(jié)果列表。
26、為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明實(shí)施例提供了一種自動多場景多資源渲染性能評估和畫質(zhì)對比裝置,包括:
27、數(shù)據(jù)輸入及預(yù)處理模塊,其用于輸入被測試的渲染資源和測試配置,依據(jù)渲染目標(biāo)數(shù)量選擇多目標(biāo)測試流程或單目標(biāo)測試流程,當(dāng)選擇多目標(biāo)測試流程時將每個渲染目標(biāo)的渲染資源提前注入創(chuàng)建的渲染流程,當(dāng)選擇單目標(biāo)測試流程,為同渲染目標(biāo)配置相同渲染資源,且確定在渲染流程中檢測加載被測試的渲染資源并替換原目標(biāo)渲染資源;
28、性能分析模塊,其用于將渲染流程拆分為多個獨(dú)立的渲染指令,根據(jù)渲染指令劃分測試范圍,為每個渲染指令單獨(dú)開啟一個渲染通道,為每個渲染指令綁定渲染資源形成資源依賴關(guān)系并維護(hù),依據(jù)測試范圍和資源依賴關(guān)系執(zhí)行渲染指令并測量性能開銷和保存性能測量結(jié)果;
29、畫質(zhì)分析模塊,其用于計算不同渲染資源對應(yīng)渲染幀之間的畫質(zhì)差異并保存畫質(zhì)差異結(jié)果;
30、結(jié)果展示模塊,其用于展示性能測量結(jié)果和畫質(zhì)差異結(jié)果。
31、與現(xiàn)有技術(shù)相比,本發(fā)明具有的有益效果至少包括:
32、本發(fā)明提供了一種高效、自動化的多場景多資源渲染性能評估和畫質(zhì)對比方法和裝置,顯著提升了渲染調(diào)試和優(yōu)化的效率和準(zhǔn)確性。本發(fā)明能夠全面、準(zhǔn)確地評估多場景、多資源的渲染性能和畫質(zhì)差異,幫助用戶優(yōu)化資源配置,提高渲染效率和圖像質(zhì)量。本發(fā)明不僅能夠在不同的渲染場景中提供詳細(xì)的性能評估,還可以通過畫質(zhì)對比識別出渲染過程中可能存在的問題,從而為開發(fā)者提供全面的優(yōu)化建議和指導(dǎo)。