|
或許大家依舊對上一節(jié)中的“黑夜”及“夢回過去”記憶猶新,追問下去HLSL到底是何方神圣能實(shí)現(xiàn)如此炫酷之效果?HLSL(高級著色器語言)作為微軟的獨(dú)門兵器,僅供Direct3D使用。Silverlight無比幸運(yùn),從第二個(gè)版本開始便已獲得了這把曠世利器,雖然目前僅能發(fā)揮其不到3層之功力,不過前輩Moonlight近期已向世界宣布全面突破技術(shù)壁壘,HLSL的威力提升至7層左右。我們完全可以預(yù)料的是,未來Silverlight將手握HLSL,踏著GPU 3D API飛揚(yáng)馳騁,在RIA頁游領(lǐng)域所向披靡,制作一切特效及渲染動(dòng)畫都將成探囊取物般輕松而愜意。
接下來的問題是HLSL開發(fā)困難嗎?其實(shí),HLSL特效的制作無外乎“語法”+“公式”;是否還記得我之前曾寫過3篇關(guān)于HLSL在Silverlight中應(yīng)用的入門文章?Shazzam目前已經(jīng)發(fā)展到了1.3版本,除了無需額外安裝DX獨(dú)立運(yùn)行等新特性外,還新增了N多現(xiàn)成的特效以及一部脫機(jī)入門教程,奇爽無比。就算對HLSL一知半解或云里霧里的朋友,當(dāng)您下載Shazzam并運(yùn)行后,其中所演示的效果保證會(huì)讓您感到無比振奮。是的,或許從那刻起你會(huì)決定義無反顧的加入到我們的研究行列,接下來的展示和講解將會(huì)更堅(jiān)定您這偉大的信念,原來游戲中的特效渲染動(dòng)畫是可以來得如此之簡單!
上一節(jié)天氣系統(tǒng)中的“黑夜+雷電”效果就是通過HLSL分別對場景的地圖層(MapLayer)和場景空間(Space)進(jìn)行ColorTone和LightStreak動(dòng)畫渲染而呈現(xiàn)。毫不夸張的說,只要你有夠精通HLSL編程,那么目前網(wǎng)游中的絕大多數(shù)特效都可以完美實(shí)現(xiàn)。下面,我首先向大家講解如何通過Shazzam中現(xiàn)成的HLSL特效來實(shí)現(xiàn)場景之切換效果,即傳統(tǒng)回合制網(wǎng)游中的踩地雷特效。
以最經(jīng)典的馬賽克縮放動(dòng)畫效果為例,首先打開Shazzam并導(dǎo)出(Explore Compiled Shaders)名為Pixelat特效的ps文件;接下來在解決方案中新建一個(gè)Effects類,并在其中創(chuàng)建一個(gè)繼承自ShaderEffect名為EffectBase的特效基類:
/// <summary>
/// HLSL特效基類
/// </summary>
public abstract class EffectBase : ShaderEffect {
/// <summary>
/// 獲取渲染特效的文件地址
/// </summary>
protected Uri GetShaderUri(string shaderName) {
return new Uri(string.Format("/Effects;component/Source/{0}.ps", shaderName), UriKind.Relative);
}
}
NET技術(shù):Silverlight 2.5D RPG游戲技巧與特效處理:(五)圣贊之HLSL渲染動(dòng)畫,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。