專利名稱:一種3d渲染系統(tǒng)中透明物體的渲染順序獲取方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于3D渲染技術(shù)領(lǐng)域,尤其涉及一種3D渲染系統(tǒng)中透明物體的渲染順序獲取方法及系統(tǒng)。
背景技術(shù):
在3D渲染系統(tǒng)里,對透明物體的描畫是一個重要步驟。由于透明物體的特殊性,它需要在渲染的同時顯示一部分的背景,這樣就導(dǎo)致它不能使用圖形系統(tǒng)的深度緩沖區(qū)來自動排序。目前,現(xiàn)有的一些排序算法往往是通過計算物體中點(diǎn)位置與攝像機(jī)位置的距離,然后以此進(jìn)行排序。然而,這種排序在簡單場景中可以很好的發(fā)揮作用,但在復(fù)雜的場景中卻存在物體之間的遮擋問題,如附圖I所示,箭頭方向表示攝像機(jī)Camera的視線方向,攝像機(jī)Camera距離物體I中點(diǎn)的距離dl比距離物體2中點(diǎn)的距離dl更小,所以按照上面的排序方式,并基于先畫遠(yuǎn)處物體后畫近處物體的理論,則認(rèn)為物體2是遠(yuǎn)處的物體,必須先畫物體2,物體I是近處的物體,需要后畫物體I,這樣后畫的物體I會遮擋住先畫的物體2,但是實(shí)際情況下,物體2卻比物體I更接近我們,應(yīng)該是先畫物體I再畫物體2,物體2遮擋住物體I。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種3D渲染系統(tǒng)中透明物體的渲染順序獲取方法及系統(tǒng),旨在解決由于利用現(xiàn)有的渲染順序獲取方法對多個透明物體進(jìn)行排序時,存在排序易錯誤、物體間相互遮擋,導(dǎo)致對透明物體繪制渲染出錯的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種3D渲染系統(tǒng)中透明物體的渲染順序獲取方法,所述方法包括下述步驟根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系;獲取將所述空間坐標(biāo)系轉(zhuǎn)換為所述視覺坐標(biāo)系的轉(zhuǎn)換矩陣;根據(jù)所述轉(zhuǎn)換矩陣,將每一透明物體在所述空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為所述視覺坐標(biāo)系中的視覺坐標(biāo);根據(jù)所述每一透明物體的視覺坐標(biāo),獲取所有透明物體的渲染順序,以根據(jù)所述渲染順序?qū)λ鐾该魑矬w進(jìn)行渲染。本發(fā)明實(shí)施例的另一目的在于提供一種3D渲染系統(tǒng)中透明物體的渲染順序獲取系統(tǒng),所述系統(tǒng)包括坐標(biāo)系構(gòu)造單元,用于根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系;轉(zhuǎn)換矩陣獲取單元,用于獲取將所述空間坐標(biāo)系轉(zhuǎn)換為所述視覺坐標(biāo)系的轉(zhuǎn)換矩陣;視覺坐標(biāo)獲取單元,用于根據(jù)所述轉(zhuǎn)換矩陣,將每一透明物體在所述空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為所述視覺坐標(biāo)系中的視覺坐標(biāo);以及渲染順序獲取單元,用于根據(jù)所述每一透明物體的視覺坐標(biāo),獲取所有透明物體的渲染順序;渲染單元,用于根據(jù)所述渲染順序?qū)λ鐾该魑矬w進(jìn)行渲染。本發(fā)明實(shí)施例通過根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系,并獲取將該空間坐標(biāo)系轉(zhuǎn)換為該視覺坐標(biāo)系的轉(zhuǎn)換矩陣,進(jìn)一步根據(jù)該轉(zhuǎn)換矩陣,將每一透明物體在該空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為該視覺坐標(biāo)系中的視覺坐標(biāo),根據(jù)該每一透明物體的視覺坐標(biāo),獲取所有透明物體的渲染順序,從而在 對多個透明物體進(jìn)行繪制渲染時,達(dá)到了能夠消除多個物體間的遮擋影響,保證能夠按照正確排序?qū)ν该魑矬w進(jìn)行正確繪制渲染的目的。
圖I是本發(fā)明背景技術(shù)提供的3D渲染系統(tǒng)中透明物體的場景圖;圖2是本發(fā)明第一實(shí)施例提供的3D渲染系統(tǒng)中透明物體的渲染順序獲取方法的實(shí)現(xiàn)流程圖;圖3是圖2中所述相機(jī)的不同偏轉(zhuǎn)方向的示意圖;圖4是圖2中所述視覺坐標(biāo)系中不同方向向量的示意圖;圖5是圖2中所述3D渲染系統(tǒng)中多個透明物體位置的場景圖;圖6是本發(fā)明第二實(shí)施例提供的3D渲染系統(tǒng)中透明物體的渲染順序獲取系統(tǒng)的結(jié)構(gòu)圖;圖7是圖6中的坐標(biāo)系構(gòu)造單元的具體結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例通過空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系以及獲取將該空間坐標(biāo)系轉(zhuǎn)換為該視覺坐標(biāo)系的轉(zhuǎn)換矩陣,根據(jù)該轉(zhuǎn)換矩陣,將每一透明物體在該空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為該視覺坐標(biāo)系中的視覺坐標(biāo),從而能夠根據(jù)該每一透明物體的視覺坐標(biāo),正確地獲取所有透明物體的渲染順序,以使得在對3D透明物體渲染時,該透明物體得到正確的繪制渲染,增強(qiáng)了 3D場景中透明物體的3D效果。以下結(jié)合具體實(shí)施例對本發(fā)明的具體實(shí)現(xiàn)進(jìn)行詳細(xì)描述實(shí)施例一:圖2示出了本發(fā)明第一實(shí)施例提供的3D渲染系統(tǒng)中透明物體的渲染順序獲取方法的實(shí)現(xiàn)流程,詳述如下在步驟S201中,根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系。其中,該空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù)包括該相機(jī)的空間位置坐標(biāo)向量^、該相機(jī)的正上方參考坐標(biāo)向量wp、被該相機(jī)觀察的目標(biāo)的空間位置坐標(biāo)向量Iookat。在本發(fā)明實(shí)施例中,定義視覺坐標(biāo)系的高緯度為三維坐標(biāo)系中的Z軸方向的向量,視覺坐標(biāo)系的長緯度為三維坐標(biāo)系中的X軸方向的向量,視覺坐標(biāo)系的寬緯度為三維坐標(biāo)系中的Y軸方向的向量。
該步驟S201具體包括根據(jù)預(yù)設(shè)的相機(jī)的空間位置坐標(biāo)向量eye以及被該相機(jī)觀察的目標(biāo)的空間位置坐標(biāo)向量^^ ,獲取視覺坐標(biāo)系的高維度# ;根據(jù)預(yù)設(shè)的該相機(jī)的正上方參考坐標(biāo)向量$以及該高維度及,獲取該視覺坐標(biāo)系的長維度斤;根據(jù)該高維度及以及該長維度P ,獲取該視覺坐標(biāo)系的寬維度F ;分別將該高維度及、該長維度斤以及該寬維度進(jìn)行歸一化處理后,分別記為η, //和 V ;根據(jù)歸一化處理后的該高維度;;、該長維度以及該寬維度 ,創(chuàng)建該視覺坐標(biāo)系。在具體實(shí)施過程中,首先在空間坐標(biāo)系下(相當(dāng)于現(xiàn)實(shí)世界中的三維空間坐標(biāo)系),定義Camera視錐體的三維空間位置信息,設(shè)置相機(jī)的空間位置坐標(biāo)向量為eye , t匕如$= ( 0,0,-200 );設(shè)置被該相機(jī)觀察的目標(biāo)的空間位置坐標(biāo),以被觀察的目標(biāo)為人為例,設(shè)置該人的空間位置坐標(biāo)向量為,且/οο&α 也反映了相機(jī)的朝向向量信息,比如Iookat= ( 0,0,0 );在該空間坐標(biāo)系下,設(shè)置wp為該相機(jī)的正上方參考坐標(biāo)向量,也即反映了該相機(jī)的正上方的向量信息,比如Mp= ( 0,1,0 ),該Mp會影響視覺坐標(biāo)系的長維度P和寬維度的生成,因?yàn)橐院笄蟪龅腜向量會在¥和高維度及向量所決定的平面上,所以可以通過該Mp向量讓相機(jī)產(chǎn)生不同的偏轉(zhuǎn),如圖3所示。在視覺坐標(biāo)系(相當(dāng)于3D渲染系統(tǒng)中虛擬的三維空間坐標(biāo)系)中,定義該視覺坐標(biāo)系的長維度P、寬維度P以及高緯度#,其中,P表示相機(jī)的右方,也代表視覺坐標(biāo)系的X方向;廠表不相機(jī)的上方,也代表視覺坐標(biāo)系的Y方向;#表不相機(jī)的后方,也代表視覺坐標(biāo)系的Z方向;而該相機(jī)則處于視覺坐標(biāo)系的原點(diǎn),即對應(yīng)空間坐標(biāo)系中eye的位置。此時就可以以上述eye、Iookat、wp的信息等,構(gòu)造3D渲染系統(tǒng)中的視覺坐標(biāo)系。具體地,如圖4本發(fā)明實(shí)施例中提供的視覺坐標(biāo)系中不同方向向量的示意圖。在預(yù)先定義了eje、Iookat、wp等相機(jī)位置參數(shù)之后,則可以獲取高諱度即獲取了視覺坐標(biāo)系的Z軸方向向量,也即用目標(biāo)人的位置減去相機(jī)的位置;進(jìn)一步可以獲取長維度G= X X ”表示向量的叉乘,即獲取了視覺坐標(biāo)系的X軸方向向量,如果不希望相機(jī)產(chǎn)生偏轉(zhuǎn),一般取Mp =(0,1, O),則P表不垂直于wp和i兩個向量構(gòu)建平面的法向量;使用#和己的叉乘可以計算出向量P N X斤,即視覺坐標(biāo)系下的Y軸方向向量。最后將計算出具有兩兩正交的, F和TV進(jìn)彳丁歸一化后,分別對應(yīng)μ , V1和其中,U = (ux,uy,uz) ,V = (vx,vy,vz) ,η = (nx,ny,nz),則該^,[和:就構(gòu)成了相機(jī)的視覺坐標(biāo)系。在步驟S202中,獲取將該空間坐標(biāo)系轉(zhuǎn)換為該視覺坐標(biāo)系的轉(zhuǎn)換矩陣。
該步驟S202具體為根據(jù)該歸一化處理后的該高維度;;、該長維度以及該寬維度V ,結(jié)合該預(yù)設(shè)的相機(jī)的空間位置坐標(biāo)向量& ,獲取將該空間坐標(biāo)系轉(zhuǎn)換為該視覺坐標(biāo)系的轉(zhuǎn)換矩陣。其中,該轉(zhuǎn)換矩陣為4行4列的矩陣。在具體實(shí)施過程中,在獲取對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系uvn后,則根據(jù)將現(xiàn)實(shí)世界的空間坐標(biāo)轉(zhuǎn)換到3D虛擬世界的視覺坐標(biāo)的轉(zhuǎn)換原理,可以得出轉(zhuǎn)換矩陣Τ,
、Uy U, d:
T= y J,其中,μ , , X (~----表示向量的點(diǎn)乘。
權(quán)利要求
1.一種3D渲染系統(tǒng)中透明物體的渲染順序獲取方法,其特征在于,所述方法包括下述步驟
2.如權(quán)利要求I所述的方法,其特征在于,所述空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù)包括所述相機(jī)的空間位置坐標(biāo)向量、所述相機(jī)的正上方參考坐標(biāo)向量wp、被所述相機(jī)觀察的目標(biāo)的空間位置坐標(biāo)向S-Iookat。
3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系的步驟具體包括 根據(jù)預(yù)設(shè)的相機(jī)的空間位置坐標(biāo)向量以及被所述相機(jī)觀察的目標(biāo)的空間位置坐標(biāo)向量/oo“ ,獲取對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系的高維度P ; 根據(jù)預(yù)設(shè)的所述相機(jī)的正上方參考坐標(biāo)向量^以及所述高維度P ,獲取所述視覺坐標(biāo)系的長維度^; 根據(jù)所述高維度#以及所述長維度P ,獲取所述視覺坐標(biāo)系的寬維度F ; 分別將所述高維度P、所述長維度斤以及所述寬維度P進(jìn)行歸一化處理后,分別記為η, //和 V ; 根據(jù)歸一化處理后的所述高維度卩、所述長維度以及所述寬維度 ,創(chuàng)建所述視覺坐標(biāo)系O
4.如權(quán)利要求3所述的方法,其特征在于,所述獲取將所述空間坐標(biāo)系轉(zhuǎn)換為所述視覺坐標(biāo)系的轉(zhuǎn)換矩陣的步驟具體為 根據(jù)所述歸一化處理后的所述高維度;;、所述長維度以及所述寬維度;;,結(jié)合所述預(yù)設(shè)的相機(jī)的空間位置坐標(biāo)向量獲取將所述空間坐標(biāo)系轉(zhuǎn)換為所述視覺坐標(biāo)系的轉(zhuǎn)換矩陣。
5.如權(quán)利要求4所述的方法,其特征在于,所述轉(zhuǎn)換矩陣為矩陣
6.如權(quán)利要求I所述的方法,其特征在于,所述將每一透明物體在所述空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為所述視覺坐標(biāo)系中的視覺坐標(biāo)的步驟具體包括 將每一透明物體在所述空間坐標(biāo)系下的空間位置坐標(biāo)處理為4行I列的空間矩陣; 將所述轉(zhuǎn)換矩陣與所述空間矩陣進(jìn)行矩陣點(diǎn)乘操作,獲取所述每一透明物體的視覺坐標(biāo)。
7.如權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述每一透明物體的視覺坐標(biāo),獲取所有透明物體的渲染順序的步驟具體包括 獲取所述每一透明物體的視覺坐標(biāo)中Z軸方向的坐標(biāo)值; 對所有透明物體的視覺坐標(biāo)中Z軸方向的坐標(biāo)值進(jìn)行排序; 根據(jù)排序順序,獲取所述透明物體的渲染順序。
8.—種3D渲染系統(tǒng)中透明物體的渲染順序獲取系統(tǒng),其特征在于,所述系統(tǒng)包括 坐標(biāo)系構(gòu)造單元,用于根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系; 轉(zhuǎn)換矩陣獲取單元,用于獲取將所述空間坐標(biāo)系轉(zhuǎn)換為所述視覺坐標(biāo)系的轉(zhuǎn)換矩陣;視覺坐標(biāo)獲取單元,用于根據(jù)所述轉(zhuǎn)換矩陣,將每一透明物體在所述空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為所述視覺坐標(biāo)系中的視覺坐標(biāo);以及 渲染順序獲取單元,用于根據(jù)所述每一透明物體的視覺坐標(biāo),獲取所有透明物體的渲染順序; 渲染單元,用于根據(jù)所述渲染順序?qū)λ鐾该魑矬w進(jìn)行渲染。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述坐標(biāo)系構(gòu)造單元具體包括 高維度獲取單元,用于根據(jù)預(yù)設(shè)的相機(jī)的空間位置坐標(biāo)向量以及被所述相機(jī)觀察的目標(biāo)的空間位置坐標(biāo)向量,獲取對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系的高維度; 長維度獲取單元,用于根據(jù)預(yù)設(shè)的所述相機(jī)的正上方參考坐標(biāo)向量以及所述高維度,獲取所述視覺坐標(biāo)系的長維度; 寬維度獲取單元,用于根據(jù)所述高維度以及所述長維度,獲取所述視覺坐標(biāo)系的寬維度; 歸一化單元,用于分別將所述高維度、所述長維度以及所述寬維度進(jìn)行歸一化處理;以及 坐標(biāo)系構(gòu)造子單元,用于根據(jù)歸一化處理后的所述高維度、所述長維度以及所述寬維度,創(chuàng)建所述視覺坐標(biāo)系。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述轉(zhuǎn)換矩陣獲取單元具體用于根據(jù)所述歸一化處理后的所述高維度、所述長維度以及所述寬維度,結(jié)合所述預(yù)設(shè)的相機(jī)的空間位置坐標(biāo)向量,獲取將所述空間坐標(biāo)系轉(zhuǎn)換為所述視覺坐標(biāo)系的轉(zhuǎn)換矩陣。
11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述視覺坐標(biāo)獲取單元具體包括 坐標(biāo)處理單元,用于將每一透明物體在所述空間坐標(biāo)系下的空間位置坐標(biāo)處理為4行I列的空間矩陣;以及 視覺坐標(biāo)獲取子單元,用于將所述轉(zhuǎn)換矩陣與所述空間矩陣進(jìn)行矩陣點(diǎn)乘操作,獲取所述每一透明物體的視覺坐標(biāo)。
全文摘要
本發(fā)明適用于3D渲染技術(shù)領(lǐng)域,提供了一種3D渲染系統(tǒng)中透明物體的渲染順序獲取方法及系統(tǒng),所述方法包括下述步驟根據(jù)空間坐標(biāo)系下預(yù)設(shè)的相機(jī)位置參數(shù),構(gòu)造對應(yīng)在3D渲染系統(tǒng)中的視覺坐標(biāo)系;獲取將該空間坐標(biāo)系轉(zhuǎn)換為該視覺坐標(biāo)系的轉(zhuǎn)換矩陣;根據(jù)該轉(zhuǎn)換矩陣,將每一透明物體在該空間坐標(biāo)系下的空間位置坐標(biāo)對應(yīng)轉(zhuǎn)換為該視覺坐標(biāo)系中的視覺坐標(biāo);根據(jù)該每一透明物體的視覺坐標(biāo),獲取所有透明物體的渲染順序,以根據(jù)該渲染順序?qū)υ撏该魑矬w進(jìn)行渲染。本發(fā)明使得在對3D場景渲染時,能夠根據(jù)正確的順序?qū)υ?D透明物體進(jìn)行正確的繪制渲染,也增強(qiáng)了3D場景中透明物體的3D效果。
文檔編號G06T15/20GK102646284SQ20121010576
公開日2012年8月22日 申請日期2012年4月11日 優(yōu)先權(quán)日2012年4月11日
發(fā)明者盧偉超, 張波, 張穎, 李星, 趙智寶 申請人:Tcl集團(tuán)股份有限公司