大多數(shù)游戲中,都有流光效果,這樣大大增強(qiáng)裝備的感官刺激。。
其實(shí)要實(shí)現(xiàn)流光,非常簡單,只需要混合兩層貼圖,調(diào)整一下操作符,然后在流光貼圖層變換UV就OK了。。。
但是這里有一個問題,也就是說這樣的邏輯應(yīng)該放在哪一層實(shí)現(xiàn),如何實(shí)現(xiàn)?
我個人不推薦放在邏輯層實(shí)現(xiàn)。。。這樣的話在邏輯層都出現(xiàn)了DEVICE之類的接口調(diào)用。。。缺乏美感了吧。。。
既然是紋理,那就應(yīng)該用材質(zhì)系統(tǒng)。。。
但是如果是用材質(zhì)系統(tǒng)的話,我們先來看看OGRE對這樣的效果有沒有支持。。。。
其實(shí)但從實(shí)現(xiàn)流光的效果來講,用OGRE的材質(zhì)系統(tǒng)是可以實(shí)現(xiàn)的,1個pass里面2個TEXTURE_UNIT_STATE,搞定。。。
但是如果在我們的游戲中出現(xiàn)了500個裝備,10種UV貼圖,那就要配5000個材質(zhì)腳本。。。
但是如果能將它們分離,而通過材質(zhì)系統(tǒng)中叫做MaterialBlend的方法(自創(chuàng),哈哈哈哈),由引擎的材質(zhì)系統(tǒng)提供相關(guān)的接口,那這樣就只需要配510個材質(zhì)腳本。。
詳細(xì)的設(shè)計(jì)就不提了。。。大致的思路就是通過passNew = pass1+pass2,用過重載操作符進(jìn)行。。也有passNew = pass1*pass2,用以不同的方式混合
然后entity->setmaterial(passNew)
說起挺簡單的,具體編碼可能還是會遇到很多問題!