Lilypie 1st Birthday Ticker

2007年1月20日 星期六

幾何問題 (2003-01-30 01:15:01)

題目如下:
已知角1及角2、邊長a及b,還有向量OC,試求向量OA及OB。

各位朋友,玩過3D遊戲嗎?今天要和大家討論的是,3D遊戲中,製作天空的方法分類。

天空的製作一直是遊戲製作家的一門課題。近似無限延伸的特性,使得這個課題成為問題不大,但難度頗高的挑戰。我說問題不大是因為遊戲並不一定要設計成看得到天空,例如QuakeII在室內、WarCraftIII只看得到地板、X-fighter在太空等等。
而難度高,則是因為天空在遊戲中,通常占的地位不是很大,玩家可能久久才會抬頭看一下,那麼為了畫出廣大擬真的雲層及大氣所花費的電腦計算時間, 豈不是很划不來,CPU應該要多播點時間給AI、人物、地形建築等更重要的處理計算。但是全然不管天空的死活,似乎也不行,畢竟玩家還是有機會抬頭往上 看。
如何以最有效的方式,製作出可以接受的天空品質,各家發展出來的技術五花八門、變化繁雜。以下就介紹一些我所知道的方法與技巧。

一、單色法:
  最簡單的方法。就是先在背影塗上一片天藍色,再開始畫其他的物件,這樣至少有個藍色的天空。這種方法通常結合下面的第二種技巧。

二、太陽、月亮:
  在天空中擺上個太陽或月亮,這樣即使天空沒有作別的布置,也不會顯得太單調。實例:Starwar EpisodeI Racer的陸上關卡。

三、箱蓋法:
  這是最popular的一種方法,說穿了很簡單,就是作一個箱子,把所有的3D物件全部蓋住,這時只要在箱子的內部畫上天空,就能夠看起來像無限遠了。當然這個方式所呈現的效果與畫天空圖的功力有關,箱子各個角落的位置若是沒有好好設計,也很容易被玩家看出破綻。

四、球蓋法:
  為了彌補上一個方法的缺點,球蓋法應運而生。基本上這個想法與箱蓋法很像,但是用一個扁球來代替箱子的功能。這個方法不會給玩家看到角落的破 綻,天空的連續性也大幅改善。然而這樣的效果是有代價的:球的面數遠高於一個箱子的六個面。面數越多,代表電腦花在處理天空的時間越久。

五、平面法:
  有些遊戲(如QuakeII)是設計在一個封閉的世界中,天空只有頭抬得夠高時才看得見。這類遊戲就可以只做一個平面放在上頭。但是這種方式受限太大,大部分遊戲並不適用。

六、小弟昨天所研究出來的方法:
  嘿嘿嘿,小弟的這個方法,是使用僅僅一個小小的平面(真的很小),卻能造成無限遠的天空效果。不但電腦能快速處理,也不會造成任何破綻。這個方法的基本,就是本篇文章開頭的幾何問題,原理簡單,但是效果驚人。

好了,愛現時間結束,下次再會!

沒有留言: