專(zhuān)利名稱(chēng):基于分段緩存的場(chǎng)景渲染優(yōu)化的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,更具體地說(shuō),涉及場(chǎng)景的渲染優(yōu)化方法。
背景技術(shù):
隨著圖像技術(shù)的發(fā)展,圖像需要更多的多邊形,更多的雜物和更好的光照,以便場(chǎng)景看起來(lái)更真實(shí)。為此,不得不使用更多的美術(shù)方法來(lái)滿(mǎn)足需求。幫助節(jié)省開(kāi)發(fā)時(shí)間的一種技術(shù)是實(shí)例化方法。雖然實(shí)例化方法可以大量的降低開(kāi)發(fā)時(shí)間,但這會(huì)使游戲受限于繪制調(diào)用次數(shù)。如果場(chǎng)景使用每一個(gè)實(shí)例都導(dǎo)致新增加一個(gè)批次,那么就不能很好的體現(xiàn)實(shí)例化的好處。批次變成了瓶頸。大多數(shù)的Gpu不能渲染上千個(gè)實(shí)例的場(chǎng)景,每一個(gè)實(shí)例都潛在的改變一系列渲染狀態(tài),直接狀態(tài)的改變導(dǎo)致了驅(qū)動(dòng)和cpu的開(kāi)銷(xiāo),最后導(dǎo)致性能下降。雖然可以在內(nèi)容一方避免這個(gè)問(wèn)題,采用美術(shù)合并多個(gè)模型而產(chǎn)生新模型,然后在各處實(shí)例化,但是這樣會(huì)導(dǎo)致場(chǎng)景看起來(lái)重復(fù),降低真實(shí)感。本發(fā)明采用了分段緩存技術(shù),把場(chǎng)景中彼此接近的實(shí)例,把他們合并到超級(jí)實(shí)例中,這樣減少了調(diào)用次數(shù),而且解決批次的瓶頸問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于,采用分段緩存方式,自動(dòng)合并相似的實(shí)例,同時(shí)保留了大量渲染的好處。分段緩存的主要好處在于非重復(fù)的外觀(guān)和不繪制原始實(shí)例的能力。為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是基于分段緩存的場(chǎng)景渲染優(yōu)化,其步驟如下
1)對(duì)場(chǎng)景中對(duì)象進(jìn)行八叉樹(shù)空間劃分。樹(shù)由一點(diǎn)產(chǎn)生,這些點(diǎn)代表了創(chuàng)造分段緩沖區(qū)實(shí)例的位置;
2)對(duì)八叉樹(shù)進(jìn)行深度優(yōu)先遍歷,每個(gè)樹(shù)的節(jié)點(diǎn)總是先分支到左邊,當(dāng)達(dá)到一片葉的時(shí)候,把所有的葉片都添加到一個(gè)新的序列表中,這樣就有了一個(gè)空間有序的實(shí)例表;
3)迭代列表兵構(gòu)造一個(gè)包含所有實(shí)例的頂點(diǎn)緩沖區(qū)。這個(gè)緩沖區(qū)中包含所有實(shí)例的世界坐標(biāo)。同時(shí)需要記錄頂點(diǎn)緩沖區(qū)那些部分屬于那個(gè)實(shí)例;
4)根據(jù)視錐體裁剪,得出實(shí)例的可見(jiàn)性,把這個(gè)實(shí)例列表變換到前面為分段緩沖生成的頂點(diǎn)緩沖區(qū)的一部分;
5)合并頂點(diǎn)緩沖區(qū)中相鄰的分段,得到渲染緩沖區(qū)的優(yōu)化列表。本發(fā)明的優(yōu)點(diǎn)在于明顯的減少了渲染顯示幀中的批次次數(shù),運(yùn)用本發(fā)明的方法,可以產(chǎn)生非常豐富和開(kāi)起來(lái)更真實(shí)環(huán)境。
具體實(shí)施例方式基于分段緩存的場(chǎng)景渲染優(yōu)化,其步驟如下
1)對(duì)場(chǎng)景中對(duì)象進(jìn)行八叉樹(shù)空間劃分。樹(shù)由一點(diǎn)產(chǎn)生,這些點(diǎn)代表了創(chuàng)造分段緩沖區(qū)實(shí)例的位置;
2)對(duì)八叉樹(shù)進(jìn)行深度優(yōu)先遍歷,每個(gè)樹(shù)的節(jié)點(diǎn)總是先分支到左邊,當(dāng)達(dá)到一片葉的時(shí)候,把所有的葉片都添加到一個(gè)新的序列表中,這樣就有了一個(gè)空間有序的實(shí)例表;
3)迭代列表兵構(gòu)造一個(gè)包含所有實(shí)例的頂點(diǎn)緩沖區(qū)。這個(gè)緩沖區(qū)中包含所有實(shí)例的世界坐標(biāo)。同時(shí)需要記錄頂點(diǎn)緩沖區(qū)那些部分屬于那個(gè)實(shí)例;
4)根據(jù)視錐體裁剪,得出實(shí)例的可見(jiàn)性,把這個(gè)實(shí)例列表變換到前面為分段緩沖生成的頂點(diǎn)緩沖區(qū)的一部分;
5)合并頂點(diǎn)緩沖區(qū)中相鄰的分段,得到渲染緩沖區(qū)的優(yōu)化列表。
權(quán)利要求
1.基于分段緩存的場(chǎng)景渲染優(yōu)化,其步驟如下 1)對(duì)場(chǎng)景中對(duì)象進(jìn)行八叉樹(shù)空間劃分; 樹(shù)由一點(diǎn)產(chǎn)生,這些點(diǎn)代表了創(chuàng)造分段緩沖區(qū)實(shí)例的位置; 2)對(duì)八叉樹(shù)進(jìn)行深度優(yōu)先遍歷,每個(gè)樹(shù)的節(jié)點(diǎn)總是先分支到左邊,當(dāng)達(dá)到一片葉的時(shí)候,把所有的葉片都添加到一個(gè)新的序列表中,這樣就有了一個(gè)空間有序的實(shí)例表; 3)迭代列表兵構(gòu)造ー個(gè)包含所有實(shí)例的頂點(diǎn)緩沖區(qū);這個(gè)緩沖區(qū)中包含所有實(shí)例的世界坐標(biāo);同時(shí)需要記錄頂點(diǎn)緩沖區(qū)那些部分屬于那個(gè)實(shí)例; 4)根據(jù)視錐體裁剪,得出實(shí)例的可見(jiàn)性,把這個(gè)實(shí)例列表變換到前面為分段緩沖生成的頂點(diǎn)緩沖區(qū)的一部分; 5)合并頂點(diǎn)緩沖區(qū)中相鄰的分段,得到渲染緩沖區(qū)的優(yōu)化列表。
全文摘要
本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,更具體地說(shuō),涉及場(chǎng)景的渲染優(yōu)化方法,采用分段緩存方式,自動(dòng)合并相似的實(shí)例,同時(shí)保留了大量渲染的好處。分段緩存的主要好處在于非重復(fù)的外觀(guān)和不繪制原始實(shí)例的能力;明顯的減少了渲染顯示幀中的批次次數(shù),運(yùn)用本發(fā)明的方法,可以產(chǎn)生非常豐富和開(kāi)起來(lái)更真實(shí)環(huán)境。
文檔編號(hào)G06T13/00GK102982573SQ20121044972
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年11月12日 優(yōu)先權(quán)日2012年11月12日
發(fā)明者不公告發(fā)明人 申請(qǐng)人:沈陽(yáng)信達(dá)信息科技有限公司