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