|
通常來說,只要談到影子及影子制作,首先想到的不外乎3D。游戲中的影子設計大致可分為硬實現和軟實現兩種,比如像“游戲影子制作技術”這篇文章所談到3D游戲影子制作方案Projective Shadow、Shadow Map以及Shadow Volume均屬于硬實現。硬實現的效果最逼真,相對的運算量也較高;而對于Silverlight開發2.5D網游來說,我們通常會采用折中的軟實現去表述場景中的動態光影效果。精致的光影能讓玩家充分體驗到空間立體感,當然也是2.5D網游所不可或缺的條件之一。
Silverlight 2.5D網游中的光影效果軟實現主要采用模擬仿真方法,傳統的處理方案大致有三種:
一)垂直照射的固定圓影。我們可以假想當角色被頭頂上的光源所照射時會產生圓形光影,游戲中我們僅需一個圓影素材,根據角色的占地比例進行縮放匹配,2.5D立體效果立刻顯現:
二)基于紙娃娃系統的動態光影。原理也很簡單,就是將影子作為角色紙娃娃的部件之一根據角色的實時動作與其他部件進行動態組合。以增加美術的工作量為代價換取程序設計簡單化:
三)動作同步映射的動態光影。與上一種方法所達到的效果一致,區別在于此方案我們無需額外的影子圖片資源,而是通過Silverlight內置的WriteableBitmap配合上OpacityMask(透明蒙版)來實現,比如類似如下邏輯:
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技術:Silverlight 2.5D RPG游戲技巧與特效處理:(三)動態光影,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。