馬肝寫的一些關(guān)于優(yōu)化渲染效率的技術(shù)。
http://oiramario.cnblogs.com/archive/2006/06/02/415394.html
看完是挺有感悟的。之前一直以為,如果不提交新數(shù)據(jù)的話,只是做重復(fù)的DP應(yīng)該是沒有什么效率耗費(fèi)的,畢竟Ogre中是有這一項(xiàng)技術(shù)的(iteration per light)。不過在那里討論了之后,被告知DP的調(diào)用是嚴(yán)重受到制約的,大失所望,此后使用multiple pass的時(shí)候就要思量思量了。
此外想到state change,撇開DP不說,其實(shí)提交頂點(diǎn)數(shù)據(jù)算是一種state change,只是以前一直狹隘的認(rèn)為SetRenderState(), SetTextureState()之類的才算state change罷了。
state change是有開銷的,這在很多書籍方面都有記錄。Ogre的渲染隊(duì)列中,對(duì)渲染對(duì)象是根據(jù)render state進(jìn)行歸類的,每個(gè)state一組,渲染的時(shí)候盡量減少change的開銷。而排序是根據(jù)渲染對(duì)象的z值進(jìn)行,(不透明質(zhì)材)以盡量減少render target的寫入為目標(biāo)。
兩種方式的結(jié)合是先用state進(jìn)行歸類,然后在每個(gè)類別中進(jìn)行排序,關(guān)于這個(gè)是瞎猜的^_^。
posted on 2006-06-04 21:15
LOGOS 閱讀(382)
評(píng)論(0) 編輯 收藏 引用