專利名稱:場(chǎng)景物件的實(shí)例化渲染的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,更具體地說,涉及大量場(chǎng)景物件的渲染優(yōu)化方法。
背景技術(shù):
在交互式程序中,豐富用戶體驗(yàn)的重要方法之一就是呈現(xiàn)一個(gè)充滿大量各種有趣物體的世界。從數(shù)不清的草叢、樹木到普通雜物所有這些都能提高畫面最終的效果。從渲染的觀點(diǎn)來看,實(shí)現(xiàn)這種效果,無非就是渲染大量小物體,一般情況下,這些物體彼此都很類似,只在顏色、位置以及朝向上有細(xì)小的差別。舉個(gè)例子,比如森林中所有樹的幾何形狀都是很類似的,而在顏色和高度上有很大差別。對(duì)用戶來說,由外形各異的樹組成的森林才真實(shí),才會(huì)相信它,從而豐富自己的游戲體驗(yàn)。但是,使用當(dāng)前的GPU和圖形庫渲染大量由少量多邊形組成的小物體會(huì)帶來很大的性能損失。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)大量幾何體渲染提供場(chǎng)景物件的渲染優(yōu)化方法。本發(fā)明所采用的技術(shù)方案是一種場(chǎng)景物件的渲染優(yōu)化方法,其要步驟如下
1)把場(chǎng)景中渲染的幾何體實(shí)例對(duì)應(yīng)的物件網(wǎng)格模型,作為第一個(gè)流傳入;
2)把場(chǎng)景中物件的幾何體的LocalToWorld矩陣作為第二個(gè)流傳入;
3)根據(jù)幾何體批次的原理,編寫頂點(diǎn)shader程序,主要的程序代碼如下
Stuct InstanceVertex
{
D3DVECT0R3 mPosition;
//other properties......
WORD mlnstancelndex[4]; //Direct3D requires SHORT4
};
float4 worldPostion = muI(input, position, modelMatrix)。本發(fā)明的優(yōu)點(diǎn)在于最小化渲染狀態(tài)和紋理的改變,同時(shí),在Direct3D中使用一次方法調(diào)用,在同一批次中對(duì)同一三角形進(jìn)行多次渲染。這樣,就能減少CPU提交批次的時(shí)間,把CPU資源留給物理、Al等其他系統(tǒng);由于最小化了 CPU負(fù)載和內(nèi)存占用,這種技術(shù)能高效的渲染同一幾何體的大量副本,大大的降低硬件的負(fù)載,同時(shí)又不影響場(chǎng)景效果。
權(quán)利要求
1. 一種場(chǎng)景物件的渲染優(yōu)化方法,其要步驟如下1)把場(chǎng)景中渲染的幾何體實(shí)例對(duì)應(yīng)的物件網(wǎng)格模型,作為第一個(gè)流傳入;2)把場(chǎng)景中物件的幾何體的LocalToWorld矩陣作為第二個(gè)流傳入;3)根據(jù)幾何體批次的原理,編寫頂點(diǎn)shader程序,主要的程序代碼如下 Stuct InstanceVertex { D3DVECT0R3 mPosition; //other properties...... WORD mlnstancelndex[4]; //Direct3D requires SHORT4};float4 worldPostion = mul(input, position, modelMatrix)。
全文摘要
本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,更具體地說,涉及大量場(chǎng)景物件的渲染優(yōu)化方法,最小化渲染狀態(tài)和紋理的改變,同時(shí),在Direct3D中使用一次方法調(diào)用,在同一批次中對(duì)同一三角形進(jìn)行多次渲染。這樣,就能減少CPU提交批次的時(shí)間,把CPU資源留給物理、AI等其他系統(tǒng);由于最小化了CPU負(fù)載和內(nèi)存占用,這種技術(shù)能高效的渲染同一幾何體的大量副本,大大的降低硬件的負(fù)載,同時(shí)又不影響場(chǎng)景效果。
文檔編號(hào)G06T15/00GK102929641SQ201210446280
公開日2013年2月13日 申請(qǐng)日期2012年11月9日 優(yōu)先權(quán)日2012年11月9日
發(fā)明者不公告發(fā)明人 申請(qǐng)人:沈陽創(chuàng)達(dá)技術(shù)交易市場(chǎng)有限公司