|
通常來(lái)說(shuō),只要談到影子及影子制作,首先想到的不外乎3D。游戲中的影子設(shè)計(jì)大致可分為硬實(shí)現(xiàn)和軟實(shí)現(xiàn)兩種,比如像“游戲影子制作技術(shù)”這篇文章所談到3D游戲影子制作方案Projective Shadow、Shadow Map以及Shadow Volume均屬于硬實(shí)現(xiàn)。硬實(shí)現(xiàn)的效果最逼真,相對(duì)的運(yùn)算量也較高;而對(duì)于Silverlight開(kāi)發(fā)2.5D網(wǎng)游來(lái)說(shuō),我們通常會(huì)采用折中的軟實(shí)現(xiàn)去表述場(chǎng)景中的動(dòng)態(tài)光影效果。精致的光影能讓玩家充分體驗(yàn)到空間立體感,當(dāng)然也是2.5D網(wǎng)游所不可或缺的條件之一。
Silverlight 2.5D網(wǎng)游中的光影效果軟實(shí)現(xiàn)主要采用模擬仿真方法,傳統(tǒng)的處理方案大致有三種:
一)垂直照射的固定圓影。我們可以假想當(dāng)角色被頭頂上的光源所照射時(shí)會(huì)產(chǎn)生圓形光影,游戲中我們僅需一個(gè)圓影素材,根據(jù)角色的占地比例進(jìn)行縮放匹配,2.5D立體效果立刻顯現(xiàn):
二)基于紙娃娃系統(tǒng)的動(dòng)態(tài)光影。原理也很簡(jiǎn)單,就是將影子作為角色紙娃娃的部件之一根據(jù)角色的實(shí)時(shí)動(dòng)作與其他部件進(jìn)行動(dòng)態(tài)組合。以增加美術(shù)的工作量為代價(jià)換取程序設(shè)計(jì)簡(jiǎn)單化:
三)動(dòng)作同步映射的動(dòng)態(tài)光影。與上一種方法所達(dá)到的效果一致,區(qū)別在于此方案我們無(wú)需額外的影子圖片資源,而是通過(guò)Silverlight內(nèi)置的WriteableBitmap配合上OpacityMask(透明蒙版)來(lái)實(shí)現(xiàn),比如類似如下邏輯:
WriteableBitmap writeableBitmap = new WriteableBitmap(role.OverallWidth, role.OverallHeight);
writeableBitmap.Render(role.Entity, null);
writeableBitmap.Invalidate();
Rectangle rectangle = new Rectangle() { Width = role.OverallWidth, Height = role.OverallHeight, Fill = new SolidColorBrush(Colors.Black) };
rectangle.OpacityMask = new ImageBrush() { ImageSource = writeableBitmap };
NET技術(shù):Silverlight 2.5D RPG游戲技巧與特效處理:(三)動(dòng)態(tài)光影,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。