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