6/01/2007

"id" game & engine analyze



最近在研究遊戲引擎...
稍微整理一下id Software...

這一家game engine的始祖...

他們幾個經典遊戲比較...

well...只能說...

他媽的會不會太深奧...

bytheway...更扯的是...

老闆有錢到去玩火箭是怎樣...
就是上圖那個3D之神John Carmack...
看來我以後沒弄個太空梭不就遜掉...


Wolfenstein 3D
1992/5/5
Wolfenstein 3D engine
可算是第一人稱射擊遊戲的老祖宗了。它除了是FPS遊戲的始祖外,還是全世界第一個名義上接近3D的第一人稱射擊遊戲。

Doom 1
1993/10/8
Doom 1 engine
非在同一水平線上有高度差異。非垂直的牆壁(德軍總部的牆都成矩形的)。武器的晃動。所有表面都可貼圖。光線的差異(德軍總部都呈現同樣亮度),成功的由光線和陰影製造視覺上的錯覺。

Doom2
1994/10/10
Doom 1 engine
沒有革命性的技術革新,沒有圖像上的驚人改進,沒有在遊戲性上面能看的出來的修改。遊戲的環境還是用毀滅戰士引擎構造的非線性關卡,仍然是尋找開門的鑰匙,在無數的怪物中間殺出一條血路。

Quake 1
1996/5/31
Quake 1 engine
最早的全3D人物模型引擎,而不是將2D地圖渲染成3D圖像。組合了lightmap和dynamic light sources。首先使用fluid control scheme ,滑鼠來觀看/瞄準/定向以及用鍵盤前進/後退/側移。且帶來了獨立3D顯示卡的革命。

Quake 2
1997/11/30
Quake 2 engine
首次實現了彩色光影效果,使得遊戲中的物體在反射光影時候能展現出不同樣的色彩效果。單人遊戲中充滿了陷阱和機會,玩家在享受絢麗效果和屠殺樂趣的同時可以擁有解謎的樂趣。

Quake 3
1999/12/2
Quake 3 engine
多人連線第一人稱射擊遊戲。第一個不支持Software Render的第一人稱射擊遊戲。玩家必須擁有一個有硬體加速能力的顯示卡才能夠運行遊戲。此遊戲簡單易上手,變化多速度快,開創了連線對戰的風潮。

Return to Castle Wolfenstein
2001/11/20
Quake 3 engine
重返德軍總部來自德軍總部3D。但使用大幅度改動的Quake III引擎,由於圖像技術大幅度改進和遊戲方式變化,這版本已和原來大不相同。內容大綱主要依照原來故事單線進行,但有4種職業可相互支援增加可玩性。

Doom 3
2004/8/3
Doom 3 engine
增加了bump mapping, normal mapping, 和specular highlighting,最主要的是使用了全動態的per-pixel lighting。提供了之前的遊戲所沒有做到過的真實的光線與陰影。

Quake 4
2005/10/18
Doom 3 engine
單人遊戲中故事接續二代,玩家必須對抗稱為Strogg的外星生化改造種族。多人遊戲模式分死亡Deathmatch、Team-Deathmatch、Tournament和Capture the Flag,對戰感和前幾代遊戲是很相似的。

5/29/2007

我熱愛台中腔

台中腔 台中腔 我熱愛台中腔
有沒有 有沒有 打電話過來

台中腔 台中腔 我熱愛台中腔
有沒有 有沒有 你給我打過來

有一天朋友說要去一個地方
那裡充滿著我的幻想
距離不遠它還是在台灣
到了之後最先看到是 一根鋼管

進入了這世界 真讓我開了眼界
從沒碰過的事 在這裡全都看見
上空的辣妹 還有便宜的酒店
唔………………………….

渾身的粉味 真是會讓人留念

台中腔 台中腔 我熱愛台中腔
有沒有 有沒有 打電話過來

台中腔 台中腔 我熱愛台中腔
有沒有 有沒有 你給我打過來



台中是個好地方...雖然只熟中港路...
但逢甲和東海夜市可是走透透...
美食俗又大碗好料永遠吃不完...
地大路大感覺心胸就是比較開闊...

上個禮拜跟阿那答與好友小白同學...
一起去台中慶生順便找理由度假....
又發現2家很優的Cafe和Bar...

一家是很有藝術氣氛的"胡同"...
因為新朋友Jenniffer的特別招待...
嘗到了特製密藏不賣"酒釀香吉士"...
那酸酸甜甜現在回想還是口齒留香....

一家是復古超台"好望國名小學"...
裝潢仿照以前國小連菜單都是課本...
因為點很多台啤很多熱炒又唱卡拉OK...
我們這桌整個超嗨老闆王子麵都混熟...



很開心的2天假期....
吃吃喝喝玩玩笑笑...
人生阿不就是求這些而已...

那個"台中腔"是一首歌...
第一次看在"海洋熱"紀錄片...
這裡可以聽一聽很funny....

5/22/2007

屁屁體操



拿出力氣來 發出聲音來
Do Re Mi Fa 屁 屁 屁
放的響也好 放的輕也好
反正都一樣是屁
(要一邊唱一邊跳喔)
來要放囉 嘿 嘿 噗

From 交響情人夢第七集


開頭布拉格街景根本是我故鄉…
俊男美女的畫面很養眼...
漫畫式誇張動作有爆點...
無理頭野田妹怎麼跟妳那麼像…
讓人想睡古典音樂也可這麼嗨…
找時間來學個樂器裝氣質好了…
沒錯我可是人見人愛千秋王子…

5/12/2007

京都屋鰻魚飯







坐我旁邊的同事Jimmy又叫丁丁因為他是個人才...
很喜歡吃鰻魚飯所以找每個月發薪水時要吃ㄧ次...
本人個性隨和好相處又身兼美食老饕當然全力配合...
公司地處林森南京小倭寇高度密集之地當然很多家...
上個月的"魚心"雖然離公司只有10步之遙但品質soso...
NT140的鰻重小只附碗味增湯讓人有點意猶未盡...
中午人太多上菜有點慢服務平平...鰻魚還有些冷掉....
總之評價算是中等....下次要再光顧可以考慮一下...

這個月目標本來是大名鼎鼎"肥前屋"剛好禮拜一公休...
於是很快改變主意去吃附近另一家傳說中"京都屋"...
外表相當日式...但就是愛台灣使用新鮮在地鰻魚...
開放式烤鰻廚房...廚師一面施展手藝香氣一面吸引人客...
週一非假日晚上已排隊多組...還好輪轉快沒有等太久...
NT100的鰻魚煎蛋是第一個驚喜...熱呼呼剛出爐口感無敵...
NT280的錦系鰻重雖然有點小貴...但品嚐後完全不後悔...
鰻魚烤的皮是卡茲卡茲低脆而肉卻是好個入口即化低嫩...
飯和魚上面還有一層可算是殺手級的蛋絲...灑上獨門山椒粉...
天ㄚ我看到了洶湧大海....小鰻魚你這輩子也可算是沒白活了...
只能說這是我數10年來吃過最優的然後氣氛佳服務也好...
地址是天津街41號...下次想要去試試看全套鰻魚套餐...

5/10/2007

Alpha blending



Pixel data:

座標: X Y Z
顏色: RGBA

簡單地說這是一種讓3D物件產生透明感的技術。屏幕上顯示的3D物件,每個像素中有紅、綠、藍三組數值。若3D環境中允許像素能擁有一組α值,我們就稱它擁有一個α通道。α值是記載像素的透明度,範圍在0.0(透明)1.0(不透明)之間這樣。一來使得每一個物件都可以擁有不同的透明程度。比如說,玻璃會擁有很高的透明度,而一塊木頭可能就沒什麼透明度可言。α混合這個功能,就是處理兩個物件在螢幕畫面上疊加的時候,還會將α值列入考慮,使其呈現接近真實物件的效果。

Over定義:

RGBc = RGBf + (1-αf) RGBb

αc =αf +(1-αf) αb

Comp 定義:

RGBc = β(f over b) + (1-β)(b over f)

最後的描繪值= SRC(來源)*blending係數 + DEST(目的地)* blending係數

最後的描繪值= SRC*SRCalpha + DEST*(1-SRCalpha)

//--------------------------------------

// 設定Rendering state參數

//--------------------------------------

// 指定兩面描繪的模式

pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

// 光源沒有計算

pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);

// 比較Z

pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE);

// 混色模式(高品質描繪)

pD3DDevice->SetRenderState( D3DRS_DITHERENABLE, TRUE );

// Alfa Brending執行

pD3DDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE);

// Alfa Brending狀態的設定

pD3DDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );

pD3DDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

一般半透明效果(alpha=0.0~1.0):

D3DRS_SRCBLEND, D3DBLEND_SRCALPHA

D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA

  • 畫半透明模型要先畫其後面的模型, 否則即使前面是透明的, 後面的東西也不被描繪

// 描繪四方形

pD3DDevice->SetStreamSource( 0, m_pVB1, 0, sizeof(MY_VERTEX) );

pD3DDevice->SetFVF( MY_VERTEX_FVF );

pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );

// 描繪三角形

pD3DDevice->SetStreamSource( 0, m_pVB2, 0, sizeof(MY_VERTEX) );

pD3DDevice->SetFVF( MY_VERTEX_FVF );

pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );