2011年7月19日 星期二

圖形除錯設備

今年 GDC 給我的一個大震撼,就是,Game Engine / Graphic Engine 裡,要加上圖形除錯功能。

回頭翻了一本 3D Game Engine Architecture 的書,才發現人家早早就有說了。

這些功能的用處很大,做了絕對有好處。

然後發現,啊,Engine 裡頭那個顯示 Bounding Box 的物件,不就是其中一個圖形除錯物件麼?

Bungie 在開發 HALO 時,連網路封包的數據與優先權都用即時圖形顯示。

image

我們真的該把圖形除錯的功能加到 Engine 裡。

我叫它做「圖形除錯設備」。 ( Graphic Debugging Facilities )

首先,我把 Game Timer 做了修改。加上加速、放慢、暫停、甚至每個 Frame 更新固定時間的功能。這些在我們做 Animation 的除錯時,應該會很有幫助。另外,我還加了一個 Real Life 的 Timer,我們總還是會需要知道真實時間的吧?

然後, Engine 裡面加了一整組的 Debug Drawing API,包括畫線、畫圓、畫顆 Wireframe 的球、畫個十字、畫個座標軸、顯示字串訊息在 3D 場景裡,還有一個很有用的,畫個 Frustum 出來。

最後一個組件呢,就是弄了一組除錯用的 Camera 跟 Frustum。遊戲場景的攝影機,是場景管理中很重要的運算基礎,但是我們怎麼知道這些運算有沒有問題? 例如,Frustum 的 Culling 運算、遠方物件的 LOD 選擇,有了除錯 Camera 的模式,我們就可以很簡單的做檢查。

image

Hmm... 看來 Frustum 的 Culling 並沒有算得很乾淨...

3 則留言:

zoearthmoon 提到...

大大您好
看到您對於3D遊戲研究很深
想跟您學習
做個好朋友
不知道可不可以呢?
雖然我本身是寫網站的
但是對於unity遊戲引擎興趣很深
感謝分享

zoearthmoon 提到...

阿 我的email
zoearthmoon@gmail.com

藍斯洛 提到...

沒問題的,相互討論吧....