欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種渲染模型輪廓邊緣的方法

文檔序號(hào):6369294閱讀:279來(lái)源:國(guó)知局
專利名稱:一種渲染模型輪廓邊緣的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)圖形渲染技術(shù),尤其涉及一種渲染模型輪廓邊緣的方法。
背景技術(shù)
在網(wǎng)絡(luò)游戲中由于角色眾多,為了突出目標(biāo),需要對(duì)角色進(jìn)行輪廓邊緣渲染,用來(lái)增加事物與邊框的對(duì)比度,不僅可以簡(jiǎn)潔有效的對(duì)玩家進(jìn)行信息提示,更能夠?yàn)檎w畫面增光添彩。圖I為幾何空間下輪廓邊示意圖。如圖I所示,假定觀察方向?yàn)橄蛄縑,多邊形平面VO和Vl的面法線分別為Face O和Face 1,由圖中可知邊線AB為輪廓邊,則有,(V · FaceO) (V -Face 1)〈0,即共享輪廓邊AB的兩個(gè)多邊形平面VO和Vl中,有一個(gè)是從視點(diǎn)位置能夠看到的,另外一個(gè)在視點(diǎn)背面看不到,也就是說(shuō)頂點(diǎn)A和B只被其中一個(gè)多邊形使用,A和 B為邊線點(diǎn),AB組成的邊為輪廓邊。幾何空間下模型輪廓繪制最精確,線條粗細(xì)隨攝像機(jī)位置變化而變化。但對(duì)于CPU消耗較大a)每個(gè)頂點(diǎn)到都有自己的觀察方向(從視點(diǎn)指向頂點(diǎn)的方向),每次渲染時(shí)都需要重新計(jì)算山)如空間頂點(diǎn)的位置發(fā)生改變,它所關(guān)聯(lián)面的法線都需要重新計(jì)算一次,所以當(dāng)模型發(fā)生骨骼變化時(shí),需要用CPU來(lái)計(jì)算所有點(diǎn)的新位置并根據(jù)新位置求出點(diǎn)所在面的法線,而不能交給圖形處理器(GPU)并行計(jì)算。圖2為現(xiàn)有技術(shù)中在幾何空間下實(shí)現(xiàn)模型輪廓邊緣渲染的示意圖。采用該技術(shù)方案使得幾何空間下輪廓邊渲染效果不易控制a)邊線根據(jù)模型頂點(diǎn)得到,使得模型內(nèi)部棱角的邊線也會(huì)被勾勒出來(lái)(如圖2中的眼睛),因此對(duì)單獨(dú)模型制作要求較高;b)游戲中大多數(shù)角色大都是由許多模型組成的,會(huì)導(dǎo)致模型與模型間的邊緣線被繪制出來(lái)(如圖2中脖子、腰等橫截線);c)模型輪廓邊緣渲染效果(如顏色等)根據(jù)每個(gè)頂點(diǎn)法線計(jì)算的顏色來(lái)確定,如對(duì)多邊形進(jìn)行更豐富的效果渲染,只能依靠增加頂點(diǎn)信息,這樣需要計(jì)算更多的頂點(diǎn)法線,會(huì)消耗更多的CPU資源。為了解決幾何空間下輪廓邊緣渲染中會(huì)有多余輪廓線被繪制的問(wèn)題,開(kāi)發(fā)人員采用在像素空間下對(duì)模型輪廓邊緣渲染。該技術(shù)方案改變模型輪廓邊緣渲染的順序,對(duì)模型進(jìn)行延遲渲染,先將待渲染模型數(shù)據(jù)進(jìn)行記錄,寫入數(shù)據(jù)位圖中,在進(jìn)行后處理時(shí),讀取模型輪廓邊緣數(shù)據(jù),進(jìn)行延遲渲染。該方案輪廓邊緣渲染效果自然,但該方案也存在如下缺點(diǎn)a)數(shù)據(jù)需求較大數(shù)據(jù)位圖通常只記錄頂點(diǎn)信息、法線信息,其他信息需要增加額外通道,數(shù)據(jù)量會(huì)更大;b)計(jì)算耗時(shí)較多對(duì)于后效處理,需要對(duì)全屏進(jìn)行操作,數(shù)據(jù)位圖記錄與讀取需要更多的時(shí)間,同時(shí)計(jì)算時(shí)開(kāi)銷也會(huì)更多;c)渲染方式單一為了保證性價(jià)比,描邊的顏色信息通常不會(huì)被寫入,描邊方式與顏色更為單一,信息提示效果不夠直觀。公開(kāi)號(hào)為CN 101986344A的名稱為“圖形處理系統(tǒng)”的中國(guó)專利公開(kāi)一種在圖形處理系統(tǒng)中渲染描邊曲線進(jìn)行顯示的方法,通過(guò)使用用戶空間中的描邊曲線到投影空間的投影變換來(lái)實(shí)現(xiàn),所述投影變換使用戶空間中的曲線的法線近似平行于投影空間中的期望方向,通過(guò)使法線接近平行,即使對(duì)于相對(duì)大的描邊寬度,一階近似能夠產(chǎn)生足夠準(zhǔn)確的效果。該技術(shù)方案使得在不需要使用附加的的專用硬件的基礎(chǔ)上比已有的細(xì)分技術(shù)得到更好的改進(jìn)效果,但是該技術(shù)方案對(duì)于處理模型的描邊的渲染效果比較單一且當(dāng)場(chǎng)景中存在模型遮擋時(shí),對(duì)于用戶空間到平面空間的映射需要分成多個(gè)個(gè)別線或填充路徑,然后對(duì)其逐個(gè)單獨(dú)的渲染,增加了 CPU的負(fù)荷,可擴(kuò)展性差。因此,需要一種在不破壞原有的渲染順序,對(duì)模型進(jìn)行輪廓邊緣渲染的方法,使渲染效果具有可擴(kuò)展性,最大限度的提高渲染效率,發(fā)揮輪廓邊緣渲染的多樣性。

發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)中的缺陷和不足,本發(fā)明提出一種在像素空間下,利用包圍盒、深度、模板進(jìn)行局部處理,切割剪裁,根據(jù)不同需求得到不同效果的輪廓邊緣渲染的方法,最大限度發(fā)揮描邊的多樣性,提高渲染效率。本發(fā)明公開(kāi)一種渲染模型輪廓邊緣的方法,包括如下步驟SI :切換背景緩沖區(qū)原始渲染目標(biāo)為預(yù)設(shè)的渲染目標(biāo),將待描邊模型以描邊顏色 繪制到所述預(yù)設(shè)的渲染目標(biāo)上,背景緩沖區(qū)的模板根據(jù)需要進(jìn)行設(shè)置;S2 :對(duì)設(shè)定的模型包圍盒進(jìn)行坐標(biāo)變換,確定所述預(yù)設(shè)的渲染目標(biāo)與所述包圍盒對(duì)應(yīng)的投影覆蓋范圍,將所述投影覆蓋區(qū)域復(fù)制到與所述背景緩沖區(qū)屬性相同的描邊位圖上;S3:根據(jù)所述背景緩沖區(qū)的屬性和所述投影覆蓋范圍,確定投影覆蓋區(qū)域的紋理坐標(biāo),生成平面矩形頂點(diǎn)數(shù)據(jù)流;S4:切換背景緩沖區(qū)所述預(yù)設(shè)的渲染目標(biāo)為所述原始渲染目標(biāo),根據(jù)所述平面矩形頂點(diǎn)數(shù)據(jù)流限制原始渲染目標(biāo)的平面矩形范圍;通過(guò)預(yù)設(shè)的模板確定模型的輪廓邊緣,同時(shí)根據(jù)預(yù)設(shè)的描邊方案,進(jìn)行輪廓邊緣渲染。進(jìn)一步地,所述步驟SI進(jìn)一步包括,未開(kāi)啟深度測(cè)試的情況下,將待描邊模型繪制到所述預(yù)設(shè)的渲染目標(biāo)上,背景緩沖區(qū)的模板設(shè)置為參考值;或者,開(kāi)啟深度測(cè)試的情況下,將待描邊模型繪制到所述預(yù)設(shè)的渲染目標(biāo)上,無(wú)論深度測(cè)試是否通過(guò),背景緩沖區(qū)的模板設(shè)置為參考值;或者,開(kāi)啟深度測(cè)試的情況下,將待描邊模型繪制到所述預(yù)設(shè)的渲染目標(biāo)上,對(duì)于通過(guò)深度測(cè)試點(diǎn),背景緩沖區(qū)的模板設(shè)置為參考值。進(jìn)一步地,所述步驟S4進(jìn)一步包括,選擇模板測(cè)試類型,開(kāi)啟模板測(cè)試,將平面矩形范圍內(nèi)與預(yù)設(shè)的模板參考值相等的點(diǎn)剔除,對(duì)于通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn)的顏色信息,參考所述周圍層級(jí)像素點(diǎn)的顏色并采樣,確定自身的顏色,經(jīng)Alpha有效性判別剔除,實(shí)現(xiàn)對(duì)模型輪廓邊緣向外渲染。進(jìn)一步地,所述步驟S4進(jìn)一步包括,選擇模板測(cè)試類型,開(kāi)啟模板測(cè)試,將平面矩形范圍內(nèi)與預(yù)設(shè)的模板參考值不等的點(diǎn)剔除,對(duì)于通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)及周圍層級(jí)像素點(diǎn)的顏色信息,參考所述周圍層級(jí)像素點(diǎn)及自身的顏色并采樣,經(jīng)Alpha有效性判別剔除,實(shí)現(xiàn)對(duì)模型輪廓邊緣向內(nèi)渲染。進(jìn)一步地,所述平面矩形頂點(diǎn)數(shù)據(jù)流的頂點(diǎn)格式為自定義格式,包括經(jīng)過(guò)坐標(biāo)變換的頂點(diǎn)以及所述頂點(diǎn)對(duì)應(yīng)的紋理坐標(biāo)。進(jìn)一步地,所述步驟S4中預(yù)設(shè)描邊方案進(jìn)一步包括,對(duì)描邊位圖中模型輪廓邊緣紋理對(duì)應(yīng)點(diǎn)周圍兩個(gè)及以上層級(jí)的像素點(diǎn)進(jìn)行采樣,通過(guò)對(duì)兩個(gè)及以上層級(jí)像素點(diǎn)采樣比重進(jìn)行設(shè)置,實(shí)現(xiàn)輪廓邊緣顏色及強(qiáng)度渲染。進(jìn)一步地,所述步驟S4中預(yù)設(shè)描邊方案進(jìn)一步包括,對(duì)描邊位圖中模型輪廓邊緣紋理對(duì)應(yīng)點(diǎn)和所述對(duì)應(yīng)點(diǎn)周圍兩個(gè)及以上層級(jí)的像素點(diǎn)進(jìn)行采樣,通過(guò)對(duì)兩個(gè)及以上層級(jí)像素點(diǎn)采樣比重進(jìn)行設(shè)置,實(shí)現(xiàn)輪廓邊緣顏色及強(qiáng)度渲染。進(jìn)一步地,步驟S4中渲染輪廓邊緣進(jìn)一步包括輪廓邊緣寬度渲染,通過(guò)選擇像素點(diǎn)的個(gè)數(shù)確定模型輪廓邊緣寬度,按照所述寬度進(jìn)行紋理坐標(biāo)偏移確定輪廓邊緣對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn),通過(guò)對(duì)周圍層級(jí)像素點(diǎn)采樣確定當(dāng)前點(diǎn)的顏色。進(jìn)一步地,所述步驟SI進(jìn)一步包括,開(kāi)啟深度測(cè)試的情況下,當(dāng)待測(cè)試像素點(diǎn)深度值小于等于預(yù)設(shè)的深度值時(shí),像素點(diǎn)以描邊顏色繪制到所述預(yù)設(shè)的渲染目標(biāo)上。
實(shí)施本發(fā)明的技術(shù)方案,根據(jù)需求選擇描邊方案,在像素空間下,利用包圍盒、顏色、深度和模板對(duì)背景緩沖區(qū)進(jìn)行局部處理,通過(guò)背景緩沖區(qū)預(yù)設(shè)的模板數(shù)據(jù)確定模型的輪廓邊緣,按照預(yù)設(shè)方案進(jìn)行輪廓邊緣渲染。該方法基于背景緩沖區(qū)進(jìn)行局部處理,降低了中央處理器(CPU)和圖形處理器(GPU)的負(fù)荷,極大地發(fā)揮了輪廓邊緣渲染的多樣性,增加了渲染效果的可擴(kuò)展性,提高了渲染效率。


圖I為幾何空間下輪廓邊示意圖;圖2為現(xiàn)有技術(shù)實(shí)施例的幾何空間下輪廓渲染效果示意圖;圖3為本發(fā)明實(shí)施例的渲染模型輪廓邊緣的方法流程圖;圖4為本發(fā)明第一實(shí)施例的未開(kāi)啟深度測(cè)試的情況下,將描邊模型繪制到預(yù)設(shè)的渲染目標(biāo)上的范圍;圖5為本發(fā)明第二實(shí)施例的開(kāi)啟深度測(cè)試的情況下,將描邊模型繪制到預(yù)設(shè)的渲染目標(biāo)上的范圍;圖6為本發(fā)明第一實(shí)施例的通過(guò)模板測(cè)試得到模型輪廓邊緣的示意圖;圖7為本發(fā)明第一實(shí)施例的輪廓邊緣渲染效果示意圖;圖8為本發(fā)明第二實(shí)施例的輪廓邊緣渲染效果示意圖;圖9為本發(fā)明第三實(shí)施例的輪廓邊緣渲染效果示意圖;圖10為本發(fā)明實(shí)施例的采樣第一層級(jí)像素點(diǎn)得到輪廓邊緣渲染效果的算法示意圖;圖11為本發(fā)明實(shí)施例的采樣兩個(gè)層級(jí)像素點(diǎn)得到輪廓邊緣渲染效果的算法示意圖。
具體實(shí)施例方式為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以詳細(xì)說(shuō)明。具體的,以在三維場(chǎng)景中渲染動(dòng)物模型的輪廓邊緣為例進(jìn)行說(shuō)明。如場(chǎng)景中存在兩個(gè)動(dòng)物模型,其中兩個(gè)模型之間存在遮擋關(guān)系。采用本發(fā)明的技術(shù)方案對(duì)模型輪廓邊緣進(jìn)行渲染。
圖3為本發(fā)明實(shí)施例的渲染模型輪廓邊緣的方法流程圖。具體包括如下步驟SI :切換背景緩沖區(qū)原始渲染目標(biāo)為預(yù)設(shè)的渲染目標(biāo),將待描邊模型以描邊顏色繪制到所述預(yù)設(shè)的渲染目標(biāo)上,背景緩沖區(qū)的模板根據(jù)需要進(jìn)行設(shè)置;背景緩沖區(qū)是用于后臺(tái)操作的一塊內(nèi)存,可以被訪問(wèn)進(jìn)行讀取及寫入操作,完成操作后可提交到前臺(tái)緩沖區(qū)。前臺(tái)緩沖區(qū)是由顯卡提交到顯示器用于顯示的一塊內(nèi)存。背景緩沖區(qū)(Back Buffer)包含渲染目標(biāo)(Render Target),深度(Depth)以及模板(Stencil),深度和模板通常是共用的,其中渲染目標(biāo)(顏色數(shù)據(jù))、深度數(shù)據(jù)和模板數(shù)據(jù)通過(guò)對(duì)應(yīng)的緩沖區(qū)進(jìn)行記錄。在對(duì)游戲場(chǎng)景進(jìn)行渲染時(shí)可同時(shí)渲染多個(gè)渲染目標(biāo)(也可以稱為顏色緩沖區(qū)),也就是將不同的信息分別畫入多個(gè)渲染目標(biāo)表面(Surface),通過(guò)編譯這些渲染目標(biāo)上不同的圖像元素,實(shí)現(xiàn)一些特殊的效果。渲染目標(biāo)表面(Surface)表明了每個(gè)像素的顏色屬性。渲染目標(biāo)可以和深度、模板(depth-stencil)緩沖結(jié)合起來(lái)使用,如要更換背景緩沖區(qū)的渲染目標(biāo),渲染目標(biāo)會(huì)使用一個(gè)已存在的cbpth-stencil緩沖。顏色緩沖區(qū)記錄每 個(gè)像素的顏色,可以是16,24,32位,表示范圍是0-255的整形值;深度緩沖記錄像素的深度值,范圍是0-1的浮點(diǎn)值;模版緩沖用于設(shè)置掩碼位,通常為8位整形值,因此范圍從0-255。以通常設(shè)置的D24S8格式為例,每個(gè)像素點(diǎn)有64個(gè)字節(jié)信息,32位用于顏色信息(分為4個(gè)通道,每個(gè)通道8位,R紅色通道,G藍(lán)色通道,B綠色通道,A透明通道),24位用于深度信息(深度始終是0-1范圍內(nèi)的),8位模板信息。在繪制需要渲染的場(chǎng)景時(shí),每一個(gè)像素都要寫入顏色緩沖區(qū),然后由顏色緩沖區(qū)通過(guò)前臺(tái)緩沖區(qū)提交到顯示器上顯示。深度緩沖區(qū)與顏色緩沖區(qū)對(duì)應(yīng),用于記錄場(chǎng)景中每個(gè)像素的深度值,通過(guò)深度緩沖,進(jìn)行深度測(cè)試,確定像素的遮擋關(guān)系,保證渲染正確;模版緩沖與深度緩沖大小相同,通過(guò)設(shè)置模版緩沖區(qū)每個(gè)像素的值,可以指定在渲染的時(shí)候只渲染某些像素。其中,除顏色緩沖區(qū)外,其他緩沖區(qū)都無(wú)法直接查看,如深度緩沖區(qū)、模板緩沖區(qū)等,其他緩沖區(qū)用于實(shí)現(xiàn)諸如隱藏表面消除,場(chǎng)景抗鋸齒、模版測(cè)試、繪制平滑的運(yùn)動(dòng)圖像等功能。當(dāng)將一個(gè)場(chǎng)景渲染到渲染目標(biāo)上時(shí),使用深度緩沖區(qū)來(lái)決定光柵化后各個(gè)多邊形的像素的前后遮擋關(guān)系,決定哪個(gè)顏色值被繪制出來(lái)。所述的深度緩沖區(qū)是用來(lái)存儲(chǔ)繪制到屏幕上的每個(gè)像素點(diǎn)的深度信息的一塊內(nèi)存緩沖區(qū)。深度測(cè)試是通過(guò)比較當(dāng)前繪制的像素點(diǎn)的深度和對(duì)應(yīng)的深度緩沖區(qū)中點(diǎn)的深度值來(lái)決定是否繪制當(dāng)前像素,如果深度測(cè)試結(jié)果為真(TURE),則繪制當(dāng)前像素點(diǎn),并用當(dāng)前像素點(diǎn)的深度值來(lái)更新深度緩沖區(qū),否則,跳過(guò)該像素點(diǎn)測(cè)試下一像素點(diǎn)。模版緩沖區(qū)的用途之一是把繪圖限制在屏幕中的某個(gè)區(qū)域。模板測(cè)試使用模板參考值、模板掩碼、模板比較函數(shù)以及當(dāng)前像素對(duì)應(yīng)的模板緩沖區(qū)中的模板值作為參數(shù),如果當(dāng)前像素點(diǎn)通過(guò)了模板測(cè)試,則繪制該像素,并按照通過(guò)模板測(cè)試的設(shè)定更改模板緩沖區(qū);如果未通過(guò)模板測(cè)試,則不繪制該像素點(diǎn),并按照未通過(guò)模板測(cè)試的設(shè)定更改模板緩沖區(qū)。在繪制渲染場(chǎng)景的對(duì)象之前,需要將背景緩沖區(qū)中顏色緩沖區(qū)切換為預(yù)設(shè)的渲染目標(biāo),然后對(duì)背景緩沖區(qū)進(jìn)行清除操作。清除背景緩沖區(qū)時(shí),系統(tǒng)會(huì)根據(jù)要求對(duì)顏色、深度、模板進(jìn)行選擇設(shè)置(可以只選擇清除其中一項(xiàng)、兩項(xiàng)或全清),為需要繪制的渲染目標(biāo)表面設(shè)置一種缺省的顏色,為深度和模板緩沖設(shè)置一個(gè)缺省值。本發(fā)明實(shí)施例中,切換背景緩沖區(qū)的顏色緩沖區(qū)為預(yù)設(shè)的渲染目標(biāo),將背景緩沖區(qū)的顏色、模板清理成O,深度值保留原場(chǎng)景的深度值,得到一個(gè)無(wú)色透明的渲染目標(biāo)表面。在未開(kāi)啟深度測(cè)試的情況下,將待描邊模型以描邊顏色繪制到所述預(yù)設(shè)的渲染目標(biāo)表面上(參見(jiàn)圖4)。圖4為本發(fā)明第一實(shí)施例的未開(kāi)啟深度測(cè)試的情況下,將描邊模型制到預(yù)設(shè)的渲染目標(biāo)上的范圍,根據(jù)需要將背景緩沖區(qū)的模板設(shè)定為參考值,此時(shí)模板確定的范圍為整個(gè)描邊模型的范圍。在開(kāi)啟深度測(cè)試的情況下,將待描邊模型以描邊顏色繪制到所述預(yù)設(shè)的渲染目標(biāo)表面上(參見(jiàn)圖5)。圖5為本發(fā)明第二實(shí)施例的開(kāi)啟深度測(cè)試的情況下,將描邊模型制到預(yù)設(shè)的渲染目標(biāo)上的范圍。其中,開(kāi)啟深度測(cè)試的情況下,設(shè)當(dāng)待測(cè)試像素點(diǎn)深度值小于等于設(shè)定的深度值時(shí),像素點(diǎn)才進(jìn)行繪制,否則,直接跳過(guò)測(cè)試下一像素點(diǎn)。在本發(fā)明實(shí)施例的游戲場(chǎng)景中模型被遮擋部分未通過(guò)深度測(cè)試,像素點(diǎn)不會(huì)被寫入預(yù)設(shè)的渲染目標(biāo)表面(顏色緩沖區(qū))。 背景緩沖區(qū)的深度和模板通常是共用的,本發(fā)明實(shí)施例中,在將描邊模型繪制到預(yù)設(shè)的渲染目標(biāo)表面上時(shí),根據(jù)需要對(duì)背景緩沖區(qū)的模板進(jìn)行設(shè)置,如無(wú)論深度測(cè)試是否通過(guò),背景緩沖區(qū)的模板都設(shè)定為參考值,即用模板標(biāo)記出了描邊模型的范圍,此時(shí)模板確定的范圍為整個(gè)描邊模型的范圍(參見(jiàn)圖4所示的顏色范圍);或者,對(duì)于通過(guò)深度測(cè)試的點(diǎn),背景緩沖區(qū)的模板設(shè)定為參考值,此時(shí),模板確定的范圍與開(kāi)啟深度測(cè)試情況下得到的渲染目標(biāo)上顏色范圍相同(參見(jiàn)圖5所示的顏色范圍)。后續(xù)根據(jù)預(yù)設(shè)的模板進(jìn)行能夠?qū)崿F(xiàn)特殊效果的渲染。所述預(yù)設(shè)的渲染目標(biāo)表面的填充顏色是根據(jù)預(yù)先設(shè)定的描邊顏色確定的,如設(shè)定描邊顏色為綠色,則所述渲染目標(biāo)表面上通過(guò)深度測(cè)試的點(diǎn)以綠色進(jìn)行填充;如要更改描邊顏色,只需要在繪制模型前進(jìn)行顏色設(shè)定即可。S2 :對(duì)設(shè)定的模型包圍盒進(jìn)行坐標(biāo)變換,確定所述預(yù)設(shè)的渲染目標(biāo)與所述包圍盒對(duì)應(yīng)的投影覆蓋范圍,將所述投影覆蓋區(qū)域復(fù)制到與所述背景緩沖區(qū)屬性相同的描邊位圖上;在計(jì)算機(jī)圖形學(xué)與計(jì)算幾何領(lǐng)域,一組物體的包圍盒就是將模型組合完全包容起來(lái)的一個(gè)封閉空間。將復(fù)雜模型封裝在簡(jiǎn)單的包圍盒中,可以提高幾何運(yùn)算的效率。包圍盒的核心思想是用體積略大而幾何特性簡(jiǎn)單的包圍盒來(lái)近似的描述復(fù)雜的幾何模型。根據(jù)包圍盒類型的不同可以分為軸向包圍盒(Axis Aligned Bounding Box,簡(jiǎn)稱AABB)、包圍球、方向包圍盒(Oriented Bounding Box,簡(jiǎn)稱0ΒΒ)、固定方向凸包圍盒(Fixed Directions Hulls,簡(jiǎn)稱 FDH)等。本發(fā)明實(shí)施例采用軸向包圍盒AABB確定模型的范圍,所述模型的軸向包圍盒被定義為包含該模型且各邊平行于坐標(biāo)的最小六面體,通過(guò)預(yù)先編輯好的8個(gè)頂點(diǎn)坐標(biāo)來(lái)確定模型包圍盒。本發(fā)明實(shí)施例中對(duì)包圍盒進(jìn)行坐標(biāo)變換得到像素空間下坐標(biāo)的過(guò)程頂點(diǎn)數(shù)據(jù)(X,y, z)->世界矩陣-> 視圖矩陣_>投影矩陣_>窗口坐標(biāo)(X,y),從所述8個(gè)頂點(diǎn)對(duì)應(yīng)的二維坐標(biāo)中找出最大和最小的兩個(gè)點(diǎn),在預(yù)設(shè)的渲染目標(biāo)上確定一個(gè)平面矩形投影覆蓋范圍,將所述投影覆蓋區(qū)域復(fù)制到與背景緩沖區(qū)屬性相同的描邊位圖上。所述投影覆蓋區(qū)域即覆蓋顏色緩沖區(qū)的區(qū)域。由于描邊位圖與背景緩沖區(qū)的屬性相同(寬度、高度、像素格式),因此包圍盒投影覆蓋區(qū)域也相同。根據(jù)所述投影覆蓋區(qū)域確定描邊處理的范圍,后續(xù)對(duì)描邊位圖采樣及對(duì)原始渲染目標(biāo)渲染,都是在所述投影覆蓋區(qū)域內(nèi)進(jìn)行的(圖4中白框限定的小區(qū)域內(nèi))。其中,由于將渲染目標(biāo)上確定的包圍盒投影覆蓋區(qū)域復(fù)制到描邊位圖上,不是基于整個(gè)渲染目標(biāo)的復(fù)制,而只復(fù)制需要處理的部分,因此復(fù)制部分運(yùn)算量明顯減少,降低了 CPU的負(fù)荷,提高了運(yùn)算效率。此處需要說(shuō)明的是為了便于觀察、理解,繪圖時(shí)采用與渲染目標(biāo)顏色對(duì)比度明顯的白色邊框進(jìn)行了標(biāo)示,實(shí)際上所述投影覆蓋區(qū)域是對(duì)包圍盒頂點(diǎn)在二維空間進(jìn)行投影得到的二維坐標(biāo),數(shù)據(jù)由計(jì)算機(jī)記錄,并不會(huì)在渲染目標(biāo)表面上畫出白色邊框。所述投影覆蓋區(qū)域(參見(jiàn)圖4中包圍描邊顏色數(shù)據(jù)范圍的平面矩形)也包括了被包裹的多邊形頂點(diǎn)投影到二維空間下的投影坐。S3:根據(jù)所述背景緩沖區(qū)的屬性和所述投影覆蓋范圍,確定投影覆蓋區(qū)域的紋理坐標(biāo),生成平面矩形頂點(diǎn)數(shù)據(jù)流;所述頂點(diǎn)數(shù)據(jù)的格式是可以自定義的,頂點(diǎn)數(shù)據(jù)包括經(jīng)過(guò)坐標(biāo)變換的頂點(diǎn)以及該點(diǎn)對(duì)應(yīng)的紋理坐標(biāo)。本實(shí)施例中使用平面坐標(biāo)系中的點(diǎn),通過(guò)計(jì)算該點(diǎn)在窗口(渲染目標(biāo)表面)中的比例關(guān)系得到紋理坐標(biāo)。例如窗口(渲染目標(biāo)表面)數(shù)據(jù)(1000,800),包圍盒投影后的頂點(diǎn)在窗口(200,200)位置,所述頂點(diǎn)的紋理坐標(biāo)(UV)則為(O. 2,O. 25),即u=200/1000,v=200/800。無(wú)論紋理的真正大小如何,通過(guò)計(jì)算轉(zhuǎn)換成紋理坐標(biāo)后,窗口(渲染目標(biāo)表面)的頂端(左上角)的紋理坐標(biāo)為(0,0),底端(右下角)的紋理坐標(biāo)為(1,I)。通過(guò)這種紋理坐標(biāo)的對(duì)應(yīng)關(guān)系,可以通過(guò)紋理貼圖的功能,根據(jù)貼圖的紋理坐標(biāo)對(duì)指定的圖元進(jìn)行渲染。根據(jù)頂點(diǎn)數(shù)據(jù)及該頂點(diǎn)投影后的紋理坐標(biāo),生成平面矩形頂點(diǎn)數(shù)據(jù)流,平面矩形的四個(gè)頂點(diǎn)數(shù)據(jù)可以表示為左上(Xmin, Ymin, Z, Umin, Vmin),右上(Xmax, Ymin, Z, Umax,Vmin),左下(Xmin, Ymax, Z, Umin, Vmax)和右下(Xmax, Ymax, Z, Umax, Vmax)。S4:切換背景緩沖區(qū)所述預(yù)設(shè)的渲染目標(biāo)為所述原始渲染目標(biāo),根據(jù)所述平面矩 形頂點(diǎn)數(shù)據(jù)流限制原始渲染目標(biāo)的平面矩形范圍;通過(guò)預(yù)設(shè)的模板確定模型的輪廓邊緣,同時(shí)根據(jù)預(yù)設(shè)的描邊方案,進(jìn)行輪廓邊緣渲染。該步驟具體包括S401 :根據(jù)步驟S3中生成的平面矩形頂點(diǎn)數(shù)據(jù)流限制所述原始渲染目標(biāo)表面的平面矩形范圍;該步驟由CPU讀取平面矩形頂點(diǎn)數(shù)據(jù)流,將所述平面矩形頂點(diǎn)數(shù)據(jù)傳入顯卡繪制到背景緩沖區(qū)的原始渲染目標(biāo)表面上,限制原始目標(biāo)表面的平面矩形范圍。S402:根據(jù)選定的模板測(cè)試的類型,開(kāi)啟模板測(cè)試,通過(guò)模板比較確定模型的輪廓邊緣,同時(shí),根據(jù)預(yù)設(shè)的描邊方案將平面矩形范圍內(nèi)不必要的點(diǎn)剔除,實(shí)現(xiàn)輪廓邊緣渲染。背景緩沖區(qū)的模板數(shù)據(jù)設(shè)定為參考值,通過(guò)模板數(shù)據(jù)標(biāo)記出了描邊位圖的范圍。由于描邊位圖內(nèi)部的模板數(shù)據(jù)與外部不同,從而劃分內(nèi)外區(qū)域。本實(shí)施例中,當(dāng)模板測(cè)試的比較符設(shè)置為不等于時(shí),即開(kāi)啟模板測(cè)試的情況下,背景緩沖區(qū)中模板值等于預(yù)設(shè)的模板參考值的點(diǎn)為未通過(guò)模板測(cè)試的點(diǎn),背景緩沖區(qū)中模板值不等于模板參考值的點(diǎn)為通過(guò)模板測(cè)試的點(diǎn)。開(kāi)啟模板測(cè)試,將平面矩形范圍內(nèi)與預(yù)設(shè)的模板數(shù)據(jù)參考值相同的點(diǎn)(未通過(guò)模板測(cè)試的點(diǎn))剔除,通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn)的顏色信息,參考所述周圍層級(jí)像素點(diǎn)的顏色并采樣,確定自身的顏色,經(jīng)Alpha有效性判別剔除,實(shí)現(xiàn)對(duì)模型輪廓邊緣向外渲染。
當(dāng)模板測(cè)試的比較符設(shè)置為等于時(shí),即開(kāi)啟模板測(cè)試的情況下,背景緩沖區(qū)中模板值不等于預(yù)設(shè)的模板參考值的點(diǎn)為未通過(guò)模板測(cè)試的點(diǎn),背景緩沖區(qū)中模板值等于模板參考值的點(diǎn)為通過(guò)模板測(cè)試的點(diǎn)。開(kāi)啟模板測(cè)試,將平面矩形范圍內(nèi)與預(yù)設(shè)的模板數(shù)據(jù)參考值不同的點(diǎn)(未通過(guò)模板測(cè)試的點(diǎn))剔除,通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)和所述對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn)的顏色信息,參考所述周圍層級(jí)像素點(diǎn)和自身的顏色并采樣,確定自身的顏色,經(jīng)Alpha有效性判別剔除,實(shí)現(xiàn)對(duì)模型輪廓邊緣向內(nèi)渲染。Alpha有效性判別根據(jù)選定的描邊方案,應(yīng)用對(duì)應(yīng)的Shader算法對(duì)像素點(diǎn)進(jìn)行處理。圖6為本發(fā)明第一實(shí)施例的通過(guò)模板測(cè)試得到模型輪廓邊緣的示意圖,在未開(kāi)啟深度測(cè)試情況下,模板設(shè)置為參考值(整個(gè)描邊模型的范圍),模板測(cè)試后,確定的輪廓邊緣為整個(gè)模型的輪廓邊緣。本發(fā)明實(shí)施例中按照預(yù)設(shè)方案渲染輪廓邊緣時(shí),對(duì)描邊位圖中模型輪廓邊緣紋理對(duì)應(yīng)點(diǎn)周圍層級(jí)的像素點(diǎn)進(jìn)行采樣,確定自身的顏色,實(shí)現(xiàn)輪廓邊緣顏色及強(qiáng)度向外渲染。進(jìn)一步地,實(shí)現(xiàn)輪廓邊緣寬度渲染時(shí),通過(guò)選擇像素點(diǎn)的個(gè)數(shù)確定模型輪廓邊緣 寬度,按照所述寬度進(jìn)行紋理坐標(biāo)偏移確定輪廓邊緣對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn),對(duì)周圍層級(jí)像素點(diǎn)采樣確定當(dāng)前點(diǎn)的顏色。如渲染以兩個(gè)像素寬度確定的輪廓邊緣,即選擇兩個(gè)像素單位作為像素采樣的最小偏移量。設(shè)窗口大小為(1000,800),U的偏移量Ud=2/1000,V的偏移量Vd=2/800。則當(dāng)前點(diǎn)P (U,V)第一層級(jí)的上、下、左、右點(diǎn)的紋理坐標(biāo)依次為Pup (U, V-Vd),Pdown (U, V+Vd),Pleft (U-Ud, V),Pright (U+Ud, V),依次類推,可將采樣層級(jí)擴(kuò)展至第二、第三或更高層級(jí),對(duì)所述確定的周圍層級(jí)像素點(diǎn)采樣確定當(dāng)前點(diǎn)的顏色。以向外渲染一個(gè)像素寬度的邊緣為例進(jìn)行說(shuō)明。圖10為本發(fā)明實(shí)施例的采樣第一層級(jí)像素點(diǎn)得到輪廓邊緣渲染效果的算法示意圖。如圖10所示,白色中央?yún)^(qū)域?yàn)槊柽呂粓D中模型輪廓邊緣紋理對(duì)應(yīng)點(diǎn),通過(guò)對(duì)所述紋理對(duì)應(yīng)點(diǎn)周圍第一層級(jí)的八個(gè)像素點(diǎn)進(jìn)行采樣,使得紋理對(duì)應(yīng)點(diǎn)的顏色值等于周圍第一層級(jí)點(diǎn)顏色的平均值,由于在渲染目標(biāo)表面繪制顏色數(shù)據(jù)前已將該區(qū)域的顏色進(jìn)行了清除(設(shè)置為0),所以只要周圍有顏色該點(diǎn)就有顏色,否則將該點(diǎn)舍棄不進(jìn)行渲染。圖11為本發(fā)明實(shí)施例的采樣兩個(gè)層級(jí)像素點(diǎn)得到輪廓邊緣渲染效果的算法示意圖。如圖11所示,白色中央?yún)^(qū)域?yàn)槊柽呂粓D中模型輪廓邊緣的紋理對(duì)應(yīng)點(diǎn),當(dāng)對(duì)紋理對(duì)應(yīng)點(diǎn)周圍兩個(gè)層級(jí)的像素點(diǎn)進(jìn)行采樣時(shí),通過(guò)對(duì)兩個(gè)層級(jí)像素點(diǎn)采樣比重進(jìn)行設(shè)置,能夠?qū)崿F(xiàn)輪廓邊緣顏色及強(qiáng)度渲染。當(dāng)模板測(cè)試的比較符設(shè)置為不等于時(shí),通過(guò)模板比較去掉等于模板參考值的區(qū)域(描邊模型范圍部分),并將比較層級(jí)擴(kuò)充到第二層級(jí),有計(jì)劃的挑選一些對(duì)應(yīng)的點(diǎn)進(jìn)行比較,當(dāng)?shù)谝粚蛹?jí)的點(diǎn)比重比第二層級(jí)的點(diǎn)大一些時(shí),能夠?qū)崿F(xiàn)輪廓邊緣向外減淡渲染;當(dāng)?shù)谝粚蛹?jí)的點(diǎn)比重比第二層級(jí)的點(diǎn)小一些時(shí),能夠?qū)崿F(xiàn)輪廓邊緣向外加深渲染。圖7為本發(fā)明第一實(shí)施例的輪廓邊緣渲染效果示意圖。本實(shí)施例根據(jù)未開(kāi)啟深度測(cè)試情況下得到的描邊位圖和背景緩沖區(qū)設(shè)定為參考值的模板,確定模型的輪廓邊緣,實(shí)現(xiàn)輪廓邊緣渲染。選擇模板測(cè)試的比較符為不等于,開(kāi)啟模板測(cè)試,通過(guò)模板比較,將原始渲染目標(biāo)平面矩形范圍內(nèi)等于預(yù)設(shè)的模板參考值的像素點(diǎn)剔除,通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)的偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)周圍點(diǎn)的顏色信息,通過(guò)對(duì)周圍像素點(diǎn)采樣確定自身的顏色,通過(guò)Alpha有效性判別剔除不必要的點(diǎn),實(shí)現(xiàn)描邊模型全部輪廓邊緣渲染。在游戲場(chǎng)景中,當(dāng)玩家被建筑物等遮擋后,該渲染方案可實(shí)現(xiàn)玩家本身線條的勾勒,用于確認(rèn)自身所處的位置。圖8為本發(fā)明第二實(shí)施例的輪廓邊緣渲染效果示意圖。本實(shí)施例根據(jù)開(kāi)啟深度測(cè)試情況下得到的描邊位圖和對(duì)于通過(guò)深度測(cè)試點(diǎn)進(jìn)行寫模板操作得到的模板,確定模型的輪廓邊緣,實(shí)現(xiàn)輪廓邊緣渲染。選擇模板測(cè)試的比較符為不等于,開(kāi)啟模板測(cè)試,通過(guò)模板比較,將原始渲染目標(biāo)平面矩形范圍內(nèi)等于預(yù)設(shè)的模板參考值的像素點(diǎn)剔除,通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)的偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)周圍點(diǎn)的顏色信息,通過(guò)對(duì)周圍像素點(diǎn)采樣確定自身的顏色,通過(guò)Alpha有效性判別剔除不必要的點(diǎn),實(shí)現(xiàn)描邊模型未被遮擋區(qū)域輪廓邊緣且包含括與其他模型重疊邊緣的渲染。該描邊方案可用于游戲戰(zhàn)場(chǎng)PK場(chǎng)景中,提示玩家有敵對(duì)勢(shì)力接近。
圖9為本發(fā)明第三實(shí)施例的輪廓邊緣渲染效果示意圖。本實(shí)施例根據(jù)開(kāi)啟深度測(cè)試情況下得到的描邊位圖(不包括模型被遮擋區(qū)域)和無(wú)論深度測(cè)試是否通過(guò)都將模板設(shè)置為參考值得到的模板,確定模型輪廓邊緣,實(shí)現(xiàn)輪廓邊緣渲染,選擇模板測(cè)試的比較符為不等于,開(kāi)啟模板測(cè)試,通過(guò)模板比較,將等于預(yù)設(shè)的模板數(shù)據(jù)參考值的像素點(diǎn)(未通過(guò)模板測(cè)試的點(diǎn))剔除,通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)的偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)周圍點(diǎn)的顏色信息,通過(guò)對(duì)周圍像素點(diǎn)采樣確定自身的顏色,通過(guò)Alpha有效性判別剔除不必要的點(diǎn),實(shí)現(xiàn)描邊模型未被遮擋區(qū)域輪廓邊緣且不包括與其他模型重疊邊緣的渲染。該描邊方案可用于非玩家控制角色(NPC)的選擇。同理,在按照上述方案對(duì)輪廓邊緣進(jìn)行向內(nèi)渲染時(shí),模板測(cè)試的比較符設(shè)置為等于,通過(guò)模板比較將不等于模板參考值的像素點(diǎn)剔除,保留與模板參考值相等的像素點(diǎn),確定模型的輪廓邊緣,通過(guò)對(duì)所述輪廓邊緣對(duì)應(yīng)點(diǎn)和所述對(duì)應(yīng)點(diǎn)周圍層級(jí)的像素點(diǎn)進(jìn)行采樣,確定自身的顏色,對(duì)輪廓邊緣進(jìn)行渲染。由于輪廓邊緣內(nèi)部的點(diǎn)被描邊顏色填充,輪廓邊緣對(duì)應(yīng)點(diǎn)本身具有顏色,通過(guò)對(duì)該點(diǎn)和該點(diǎn)周圍層級(jí)的像素點(diǎn)采樣,確定輪廓邊緣點(diǎn)的顏色,對(duì)輪廓邊緣進(jìn)行渲染。如對(duì)輪廓邊緣對(duì)應(yīng)點(diǎn)及該點(diǎn)周圍第一層級(jí)的像素點(diǎn)采樣,如周圍沒(méi)有顏色的點(diǎn)比較多,則所述輪廓邊緣點(diǎn)的顏色越強(qiáng)。如對(duì)輪廓邊緣對(duì)應(yīng)點(diǎn)及該點(diǎn)周圍兩個(gè)層級(jí)采樣時(shí),將比較層級(jí)擴(kuò)充到第二層級(jí),有計(jì)劃的挑選一些對(duì)應(yīng)的點(diǎn)進(jìn)行比較,當(dāng)?shù)谝粚蛹?jí)的點(diǎn)比重比第二層級(jí)的點(diǎn)大一些時(shí),能夠?qū)崿F(xiàn)輪廓邊緣向內(nèi)加深渲染;當(dāng)?shù)谝粚蛹?jí)的點(diǎn)比重比第二層級(jí)的點(diǎn)小一些時(shí),能夠?qū)崿F(xiàn)輪廓邊緣向內(nèi)減淡渲染。為了使輪廓邊緣的渲染效果更豐富,可以將采樣層級(jí)擴(kuò)充到第三或更高層級(jí)進(jìn)行顏色采樣。此外,在對(duì)人物模型本身以及裝備模型武器模型等進(jìn)行描邊渲染時(shí),會(huì)依次設(shè)定當(dāng)前人物模型以及裝備模型武器模型。如采用向外減淡的描邊方案,可以讓露在外面的人物模型顯示出金光環(huán)繞的效果,而裝備和武器則可按照效果描邊,能保證發(fā)光效果是隨人物變換的,進(jìn)一步提升了渲染效果,簡(jiǎn)潔有效的對(duì)玩家進(jìn)行了信息提示,滿足了玩家個(gè)性化的要求。本發(fā)明的技術(shù)方案,根據(jù)需要選擇描邊方案,在像素空間下,利用包圍盒、顏色、深度和模板對(duì)背景緩沖區(qū)進(jìn)行局部處理,通過(guò)背景緩沖區(qū)的模板數(shù)據(jù)確定模型的輪廓邊緣,按照預(yù)設(shè)方案進(jìn)行描邊。該方法基于背景緩沖區(qū)的局部進(jìn)行處理,降低了中央處理器(CPU)和圖形處理器(GPU)的負(fù)荷,極大地發(fā)揮了輪廓邊緣渲染的多樣性,增加了渲染效果的可擴(kuò)展性,提高了渲染效率。
上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種渲染模型輪廓邊緣的方法,包括如下步驟 Si:切換背景緩沖區(qū)原始渲染目標(biāo)為預(yù)設(shè)的渲染目標(biāo),將待描邊模型以描邊顏色繪制到所述預(yù)設(shè)的渲染目標(biāo)上,背景緩沖區(qū)的模板根據(jù)需要進(jìn)行設(shè)置; S2:對(duì)設(shè)定的模型包圍盒進(jìn)行坐標(biāo)變換,確定所述預(yù)設(shè)的渲染目標(biāo)與所述包圍盒對(duì)應(yīng)的投影覆蓋范圍,將所述投影覆蓋區(qū)域復(fù)制到與所述背景緩沖區(qū)屬性相同的描邊位圖上; S3:根據(jù)所述背景緩沖區(qū)的屬性和所述投影覆蓋范圍,確定投影覆蓋區(qū)域的紋理坐標(biāo),生成平面矩形頂點(diǎn)數(shù)據(jù)流; S4 :切換背景緩沖區(qū)所述預(yù)設(shè)的渲染目標(biāo)為所述原始渲染目標(biāo),根據(jù)所述平面矩形頂點(diǎn)數(shù)據(jù)流限制原始渲染目標(biāo)的平面矩形范圍;通過(guò)預(yù)設(shè)的模板確定模型的輪廓邊緣,同時(shí)根據(jù)預(yù)設(shè)的描邊方案,進(jìn)行輪廓邊緣渲染。
2.根據(jù)權(quán)利要求I所述的渲染模型輪廓邊緣的方法,其特征在于,所述步驟SI進(jìn)一步包括,未開(kāi)啟深度測(cè)試的情況下,將待描邊模型繪制到所述預(yù)設(shè)的渲染目標(biāo)上,背景緩沖區(qū)的模板設(shè)置為參考值;或者,開(kāi)啟深度測(cè)試的情況下,將待描邊模型繪制到所述預(yù)設(shè)的渲染目標(biāo)上,無(wú)論深度測(cè)試是否通過(guò),背景緩沖區(qū)的模板設(shè)置為參考值;或者,開(kāi)啟深度測(cè)試的情況下,將待描邊模型繪制到所述預(yù)設(shè)的渲染目標(biāo)上,對(duì)于通過(guò)深度測(cè)試點(diǎn),背景緩沖區(qū)的模板設(shè)置為參考值。
3.根據(jù)權(quán)利要求I或2所述的渲染模型輪廓邊緣的方法,其特征在于,所述步驟S4進(jìn)一步包括,選擇模板測(cè)試類型,開(kāi)啟模板測(cè)試,將平面矩形范圍內(nèi)與預(yù)設(shè)的模板參考值相等的點(diǎn)剔除,對(duì)于通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn)的顏色信息,參考所述周圍層級(jí)像素點(diǎn)的顏色并采樣,確定自身的顏色,經(jīng)Alpha有效性判別剔除,實(shí)現(xiàn)對(duì)模型輪廓邊緣向外渲染。
4.根據(jù)權(quán)利要求I或2所述的渲染模型輪廓邊緣的方法,其特征在于,所述步驟S4進(jìn)一步包括,選擇模板測(cè)試類型,開(kāi)啟模板測(cè)試,將平面矩形范圍內(nèi)與預(yù)設(shè)的模板參考值不等的點(diǎn)剔除,對(duì)于通過(guò)模板測(cè)試的點(diǎn),根據(jù)預(yù)設(shè)的渲染目標(biāo)表面中紋理坐標(biāo)進(jìn)行相應(yīng)偏移,得到該點(diǎn)對(duì)應(yīng)點(diǎn)及周圍層級(jí)像素點(diǎn)的顏色信息,參考所述周圍層級(jí)像素點(diǎn)及自身的顏色并采樣,經(jīng)Alpha有效性判別剔除,實(shí)現(xiàn)對(duì)模型輪廓邊緣向內(nèi)渲染。
5.根據(jù)權(quán)利要求I所述的渲染模型輪廓邊緣的方法,其特征在于,所述平面矩形頂點(diǎn)數(shù)據(jù)流的頂點(diǎn)格式為自定義格式,包括經(jīng)過(guò)坐標(biāo)變換的頂點(diǎn)以及所述頂點(diǎn)對(duì)應(yīng)的紋理坐標(biāo)。
6.根據(jù)權(quán)利要求I或3所述的渲染模型輪廓邊緣的方法,其特征在于,所述步驟S4中預(yù)設(shè)描邊方案進(jìn)一步包括,對(duì)描邊位圖中模型輪廓邊緣紋理對(duì)應(yīng)點(diǎn)周圍兩個(gè)及以上層級(jí)的像素點(diǎn)進(jìn)行采樣,通過(guò)對(duì)兩個(gè)及以上層級(jí)像素點(diǎn)采樣比重進(jìn)行設(shè)置,實(shí)現(xiàn)輪廓邊緣顏色及強(qiáng)度渲染。
7.根據(jù)權(quán)利要求I或4所述的渲染模型輪廓邊緣的方法,其特征在于,所述步驟S4中預(yù)設(shè)描邊方案進(jìn)一步包括,對(duì)描邊位圖中模型輪廓邊緣紋理對(duì)應(yīng)點(diǎn)和所述對(duì)應(yīng)點(diǎn)周圍兩個(gè)及以上層級(jí)的像素點(diǎn)進(jìn)行采樣,通過(guò)對(duì)兩個(gè)及以上層級(jí)像素點(diǎn)采樣比重進(jìn)行設(shè)置,實(shí)現(xiàn)輪廓邊緣顏色及強(qiáng)度渲染。
8.根據(jù)權(quán)利要求I所述的渲染模型輪廓邊緣的方法,其特征在于,步驟S4中渲染輪廓邊緣進(jìn)一步包括輪廓邊緣寬度渲染,通過(guò)選擇像素點(diǎn)的個(gè)數(shù)確定模型輪廓邊緣寬度,按照所述寬度進(jìn)行紋理坐標(biāo)偏移確定輪廓邊緣對(duì)應(yīng)點(diǎn)周圍層級(jí)像素點(diǎn),通過(guò)對(duì)周圍層級(jí)像素點(diǎn)采樣確定當(dāng)前點(diǎn)的顏色。
9.根據(jù)權(quán)利要求I或2所述的渲染模型輪廓邊緣的方法,其特征在于,所述步驟SI進(jìn)一步包括,開(kāi)啟深度測(cè)試的情況下,當(dāng)待測(cè)試像素點(diǎn)深度值小于等于預(yù)設(shè)的深度值時(shí),像素點(diǎn)以描邊顏色繪制到所述預(yù)設(shè)的渲染目標(biāo)上。
全文摘要
本發(fā)明公開(kāi)一種渲染模型輪廓邊緣的方法,該方法包括將待描邊模型繪制到預(yù)設(shè)的渲染目標(biāo)上;對(duì)模型包圍盒進(jìn)行坐標(biāo)變換,將所述預(yù)設(shè)的渲染目標(biāo)與包圍盒對(duì)應(yīng)的投影覆蓋范圍復(fù)制到描邊位圖上;根據(jù)背景緩沖區(qū)的屬性和所述投影覆蓋范圍,確定所述投影覆蓋區(qū)域的紋理坐標(biāo),生成平面矩形頂點(diǎn)數(shù)據(jù)流;在原始渲染目標(biāo)表面,通過(guò)背景緩沖區(qū)預(yù)設(shè)的模板確定模型的輪廓邊緣,按照預(yù)設(shè)方案進(jìn)行輪廓邊緣渲染。實(shí)施本發(fā)明的技術(shù)方案,在像素空間下,利用包圍盒、顏色、深度和模板對(duì)背景緩沖區(qū)進(jìn)行局部處理,降低了中央處理器和圖形處理器的負(fù)荷,最大限度地發(fā)揮了輪廓邊緣渲染的多樣性,增加了渲染效果的可擴(kuò)展性,提高了渲染效率。
文檔編號(hào)G06T15/00GK102708585SQ20121014238
公開(kāi)日2012年10月3日 申請(qǐng)日期2012年5月9日 優(yōu)先權(quán)日2012年5月9日
發(fā)明者楊波 申請(qǐng)人:北京像素軟件科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西盟| 泽州县| 赤城县| 加查县| 余江县| 边坝县| 余江县| 清水县| 西平县| 古交市| 太仆寺旗| 右玉县| 阳城县| 梁平县| 鄂州市| 宿松县| 广德县| 海兴县| 昭觉县| 吉林省| 台南县| 广元市| 河津市| 武冈市| 蕲春县| 盖州市| 安溪县| 樟树市| 民县| 建宁县| 遂昌县| 张家港市| 桦南县| 武强县| 益阳市| 循化| 观塘区| 买车| 漾濞| 同心县| 华宁县|