本發(fā)明涉及嵌入式設(shè)備的顯示渲染領(lǐng)域,尤其是指一種圖形三維旋轉(zhuǎn)和透視方法及系統(tǒng)。
背景技術(shù):
1、三維渲染是計算機(jī)圖形學(xué)領(lǐng)域的重要技術(shù),用于創(chuàng)建逼真的三維圖形或動畫。它涉及將三維場景的數(shù)學(xué)表示轉(zhuǎn)化為二維圖形,以在屏幕上顯示或打印出來。
2、gpu在三維渲染中扮演了至關(guān)重要的角色,它們的并行計算能力、圖形管線、著色器程序和圖形api使其成為實現(xiàn)高性能、逼真和交互式三維渲染的關(guān)鍵組成部分。因此,gpu技術(shù)一直在不斷演進(jìn),以滿足越來越高的圖形渲染需求。
3、在三維渲染中,三維變換通常是通過矩陣運算來實現(xiàn)的,其中旋轉(zhuǎn)矩陣被用來變換三維物體的方向。三維渲染通常采用4x4矩陣,但要支持4x4矩陣,需要3d?gpu的支持,3dgpu一般比較復(fù)雜昂貴。對于嵌入式領(lǐng)域,三維渲染需要的計算資源還是很多,往往只能采用2d?gpu進(jìn)行二維渲染。通常二維渲染矩陣是3x3矩陣,但3x3矩陣以及對應(yīng)的點缺少了z軸方向的數(shù)據(jù)。
4、需要說明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對本公開的背景的理解,因此可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實現(xiàn)思路
1、為此,本發(fā)明所要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)中三維渲染通常采用4x4矩陣,但要支持4x4矩陣,需要3d?gpu的支持,3d?gpu一般比較復(fù)雜昂貴。對于嵌入式領(lǐng)域,三維渲染需要的計算資源還是很多,往往只能采用2d?gpu進(jìn)行二維渲染。通常二維渲染矩陣是3x3矩陣,但3x3矩陣以及對應(yīng)的點缺少了z軸方向的數(shù)據(jù)。
2、為解決上述技術(shù)問題,本發(fā)明的第一方面提供了一種圖形三維旋轉(zhuǎn)和透視方法,所述方法包括:
3、獲取二維圖形;
4、對所述二維圖形進(jìn)行旋轉(zhuǎn),生成旋轉(zhuǎn)矩陣、平面旋轉(zhuǎn)角度和三維旋轉(zhuǎn)角度;
5、根據(jù)所述三維旋轉(zhuǎn)角度生成錯切-透視矩陣;
6、根據(jù)所述三維旋轉(zhuǎn)角度生成縮放矩陣;
7、根據(jù)所述平面旋轉(zhuǎn)角度生成逆旋轉(zhuǎn)矩陣;
8、根據(jù)所述旋轉(zhuǎn)矩陣、所述錯切-透視矩陣、所述縮放矩陣和所述逆旋轉(zhuǎn)矩陣生成旋轉(zhuǎn)透視矩陣;
9、gpu根據(jù)所述旋轉(zhuǎn)透視矩陣?yán)L制每個點,以生成目標(biāo)三維圖形。
10、在本發(fā)明的一個實施例中,對所述二維圖形進(jìn)行旋轉(zhuǎn),生成旋轉(zhuǎn)矩陣、平面旋轉(zhuǎn)角度和三維旋轉(zhuǎn)角度:
11、將所述二維圖形繞y軸向z軸旋轉(zhuǎn),生成第一夾角;
12、將所述二維圖形繞x軸向z軸旋轉(zhuǎn),生成第二夾角;
13、根據(jù)所述第一夾角和所述第二夾角生成所述平面旋轉(zhuǎn)角度和所述三維旋轉(zhuǎn)角度;
14、根據(jù)平面旋轉(zhuǎn)角度生成所述旋轉(zhuǎn)矩陣。
15、在本發(fā)明的一個實施例中,根據(jù)所述三維旋轉(zhuǎn)角度生成縮放矩陣的步驟包括:
16、根據(jù)所述三維旋轉(zhuǎn)角度計算縮放量;
17、根據(jù)所述縮放量和所述三維旋轉(zhuǎn)角度生成縮放矩陣。
18、在本發(fā)明的一個實施例中,所述縮放矩陣的計算公式如下:
19、
20、其中,abs(cosθ)為縮放量。
21、在本發(fā)明的一個實施例中,根據(jù)所述平面旋轉(zhuǎn)角度生成逆旋轉(zhuǎn)矩陣的步驟包括:
22、根據(jù)所述平面旋轉(zhuǎn)角度生成逆平面旋轉(zhuǎn)角度;
23、根據(jù)逆平面旋轉(zhuǎn)角度生成逆旋轉(zhuǎn)矩陣。
24、在本發(fā)明的一個實施例中,所述平面旋轉(zhuǎn)角度的計算公式如下:
25、a=arctan(yrad/xrad)
26、其中,yrad為第一夾角,xrad為第二夾角。
27、在本發(fā)明的一個實施例中,所述錯切-透視矩陣的計算公式如下:
28、
29、其中,θ為三維旋轉(zhuǎn)角度。
30、本發(fā)明的第二方面提供了一種圖形三維旋轉(zhuǎn)和透視系統(tǒng),應(yīng)用于上述第一方面中任意一項提出的一種方法,所述系統(tǒng)包括:旋轉(zhuǎn)模塊、錯切透視模塊、逆向縮放模塊、逆旋轉(zhuǎn)模塊和旋轉(zhuǎn)透視模塊;
31、所述旋轉(zhuǎn)模塊被配置為:獲取二維圖形;對所述二維圖形進(jìn)行旋轉(zhuǎn),生成旋轉(zhuǎn)矩陣、平面旋轉(zhuǎn)角度和三維旋轉(zhuǎn)角度;
32、所述錯切透視模塊被配置為:根據(jù)所述三維旋轉(zhuǎn)角度生成錯切-透視矩陣;
33、所述逆向縮放模塊被配置為:根據(jù)所述三維旋轉(zhuǎn)角度生成縮放矩陣;
34、所述逆旋轉(zhuǎn)模塊被配置為:根據(jù)所述平面旋轉(zhuǎn)角度生成逆旋轉(zhuǎn)矩陣
35、所述旋轉(zhuǎn)透視模塊被配置為:根據(jù)所述旋轉(zhuǎn)矩陣、所述錯切-透視矩陣、所述縮放矩陣和所述逆旋轉(zhuǎn)矩陣生成旋轉(zhuǎn)透視矩陣;gpu根據(jù)所述旋轉(zhuǎn)透視矩陣?yán)L制每個點,以生成目標(biāo)三維圖形。
36、本發(fā)明的第三方面提供了一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機(jī)程序,所述處理器執(zhí)行所述程序時實現(xiàn)上述第一方面或第一方面中任一種可能的實施方式中所述的方法。
37、本發(fā)明的第四方面提供了一種非暫態(tài)計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)上述第一方面或第一方面中任一種可能的實施方式中所述的方法。
38、本發(fā)明的上述技術(shù)方案相比現(xiàn)有技術(shù)具有以下優(yōu)點:
39、本發(fā)明所述的一種圖形三維旋轉(zhuǎn)和透視方法及系統(tǒng),通過錯切-透視矩陣對旋轉(zhuǎn)后的二維圖形進(jìn)行錯切和透視,再對其進(jìn)行逆向縮放和逆旋轉(zhuǎn),以達(dá)到實現(xiàn)低成本gpu渲染的目的,且更高效。
1.一種圖形三維旋轉(zhuǎn)和透視方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的一種圖形三維旋轉(zhuǎn)和透視方法,其特征在于,對所述二維圖形進(jìn)行旋轉(zhuǎn),生成旋轉(zhuǎn)矩陣、平面旋轉(zhuǎn)角度和三維旋轉(zhuǎn)角度的步驟包括:
3.根據(jù)權(quán)利要求1所述的一種圖形三維旋轉(zhuǎn)和透視方法,其特征在于,根據(jù)所述三維旋轉(zhuǎn)角度生成縮放矩陣的步驟包括:
4.根據(jù)權(quán)利要求1所述的一種圖形三維旋轉(zhuǎn)和透視方法,其特征在于,所述縮放矩陣的計算公式如下:
5.根據(jù)權(quán)利要求1所述的一種圖形三維旋轉(zhuǎn)和透視方法,其特征在于,根據(jù)所述平面旋轉(zhuǎn)角度生成逆旋轉(zhuǎn)矩陣的步驟包括:
6.根據(jù)權(quán)利要求2所述的一種圖形三維旋轉(zhuǎn)和透視方法,其特征在于,所述平面旋轉(zhuǎn)角度的計算公式如下:
7.根據(jù)權(quán)利要求1所述的一種圖形三維旋轉(zhuǎn)和透視的方法,其特征在于,所述錯切-透視矩陣的計算公式如下:
8.一種圖形三維旋轉(zhuǎn)和透視系統(tǒng),其特征在于,應(yīng)用于上述權(quán)利要求1至7任一項所述的一種圖形三維旋轉(zhuǎn)和透視方法,所述系統(tǒng)包括:旋轉(zhuǎn)模塊、錯切透視模塊、逆向縮放模塊、逆旋轉(zhuǎn)模塊和旋轉(zhuǎn)透視模塊;
9.一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時實現(xiàn)如權(quán)利要求1至7任一項所述一種圖形三維旋轉(zhuǎn)和透視方法的步驟。
10.一種非暫態(tài)計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,其特征在于,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至7任一項所述一種圖形三維旋轉(zhuǎn)和透視方法的步驟。