專(zhuān)利名稱(chēng):透明三維物體的渲染方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種實(shí)現(xiàn)透明三維物體渲染的方法。
背景技術(shù):
隨著圖像技術(shù)的發(fā)展,圖像需要更多的多邊形,更多的雜物和更好的光照,以便場(chǎng)景看起來(lái)更真實(shí),畫(huà)面的立體顯示效果越來(lái)越好?,F(xiàn)有技術(shù)中對(duì)三維圖形的渲染的主要采用去除隱藏面的方法。從觀察點(diǎn)來(lái)看,離觀察者稍近的表面遮檔了后面的部分。通常的方法是,有一個(gè)深度緩沖區(qū)來(lái)記錄已經(jīng)渲染 的像素的深度值,當(dāng)渲染當(dāng)前的像素時(shí),判斷此像素的深度值是否大于緩沖區(qū)中對(duì)應(yīng)的深度值,如是表示此像素在已經(jīng)渲染的像素之前,可以將此像素顏色寫(xiě)入相應(yīng)的顏色緩沖區(qū),并替換深度緩沖區(qū)中的相應(yīng)值。對(duì)于一個(gè)三維物體而言,物體的背面永遠(yuǎn)不會(huì)顯示,觀察者只能看到朝向他的那部分物體。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于,采用可編程頂點(diǎn)著色器,實(shí)現(xiàn)了透明物體的渲染。為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是透明三維物體的渲染方法,其步驟如下
1)把模型的頂點(diǎn)作為頂點(diǎn)流傳入到頂點(diǎn)著色器,包括模型的位置,法線方向,UV值等必
要信息;
2)把LocalToWorld矩陣和WorldToScreen矩陣傳入到頂點(diǎn)著色器,把攝像機(jī)方向傳入到頂點(diǎn)著色器;
3)在頂點(diǎn)著色器中判定該攝像機(jī)方向與頂點(diǎn)發(fā)現(xiàn)的夾角,決定這個(gè)點(diǎn)是否朝向觀測(cè)
者;
4)第一遍渲染,根據(jù)步驟(3)計(jì)算得出的結(jié)果,把是否需要渲染該點(diǎn)象素的標(biāo)記傳入到像素著色器中;需要渲染的點(diǎn),正常輸入象素;不需要渲染的點(diǎn),則輸出Alpha值為零;同理渲染背向觀察者的面;
5)第二遍渲染,關(guān)閉z-test,渲染正面;
6)把第二遍渲染的相似,采用疊加的方式繪制到幀緩存上。本發(fā)明通過(guò)兩次渲染,實(shí)現(xiàn)了透明物件的渲染;并采用了頂點(diǎn)著色器,最大限度的減少了多遍渲染帶來(lái)的性能損失,同時(shí)把法線與視角方向的計(jì)算轉(zhuǎn)移到了 GPU,實(shí)現(xiàn)了負(fù)載均衡。
具體實(shí)施方式
透明三維物體的渲染方法,其步驟如下
1)把模型的頂點(diǎn)作為頂點(diǎn)流傳入到頂點(diǎn)著色器,包括模型的位置,法線方向,UV值等必
要信息;
2)把LocalToWorld矩陣和WorldToScreen矩陣傳入到頂點(diǎn)著色器,把攝像機(jī)方向傳入到頂點(diǎn)著色器;
3)在頂點(diǎn)著色器中判定該攝像機(jī)方向與頂點(diǎn)發(fā)現(xiàn)的夾角,決定這個(gè)點(diǎn)是否朝向觀測(cè)
者;
4)第一遍渲染,根據(jù)步驟(3)計(jì)算得出的結(jié)果,把是否需要渲染該點(diǎn)象素的標(biāo)記傳入到像素著色器中;需要渲染的點(diǎn),正常輸入象素;不需要渲染的點(diǎn),則輸出Alpha值為零;同理渲染背向觀察者的面;
5)第二遍渲染,關(guān)閉z-test,渲染正面;
6)把第二遍渲染的相似,采用疊加的方式繪制到幀緩存上。
權(quán)利要求
1.透明三維物體的渲染方法,其步驟如下 1)把模型的頂點(diǎn)作為頂點(diǎn)流傳入到頂點(diǎn)著色器,包括模型的位置,法線方向,UV值等必要信息; 2)把LocalToWorld矩陣和WorldToScreen矩陣傳入到頂點(diǎn)著色器,把攝像機(jī)方向傳入到頂點(diǎn)著色器; 3)在頂點(diǎn)著色器中判定該攝像機(jī)方向與頂點(diǎn)發(fā)現(xiàn)的夾角,決定這個(gè)點(diǎn)是否朝向觀測(cè)者; 4)第一遍渲染,根據(jù)步驟(3)計(jì)算得出的結(jié)果,把是否需要渲染該點(diǎn)象素的標(biāo)記傳入到像素著色器中;需要渲染的點(diǎn),正常輸入象素;不需要渲染的點(diǎn),則輸出Alpha值為零;同理渲染背向觀察者的面; 5)第二遍渲染,關(guān)閉z-test,渲染正面; 6)把第二遍渲染的相似,采用疊加的方式繪制到幀緩存上。
全文摘要
本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種實(shí)現(xiàn)透明三維物體渲染的方法,把模型的頂點(diǎn)作為頂點(diǎn)流傳入到頂點(diǎn)著色器,包括模型的位置,法線方向,UV值等必要信息;通過(guò)兩次渲染,實(shí)現(xiàn)了透明物件的渲染;并采用了頂點(diǎn)著色器,最大限度的減少了多遍渲染帶來(lái)的性能損失,同時(shí)把法線與視角方向的計(jì)算轉(zhuǎn)移到了GPU,實(shí)現(xiàn)了負(fù)載均衡。
文檔編號(hào)G06T15/00GK103021015SQ201210503508
公開(kāi)日2013年4月3日 申請(qǐng)日期2012年12月1日 優(yōu)先權(quán)日2012年12月1日
發(fā)明者王爽 申請(qǐng)人:王爽