Sunday, January 13, 2008

製作 OGRE 的 Material 工具

一個多星期前,我開始製作一個 OGRE 的 Material 工具,我預先設計好一個「 可設定資料量 」,例如:每次只能夠製作一個 Material,每個 Material 只會有一個 Pass 和三層 Texture Layer,以及一些如 Alpha Blend、Depth Check 或 Receive Shadows 等等的選項。初時只是做一些 Win32 API 的程式,還是頗為順利的,但後來牽涉到要讀取 OGRE 中已存在的 Material 時候,就令我更覺得 OGRE 本身的冗長。我建立了一個 ResourceGroup,加進了現時的 Directory 後叫 OGRE 讀入這個 ResourceGroup,便以為可以簡單知道已讀進那些 Material,但是我卻找了很久才知道怎樣才可以找回那些資料。OGRE 的 Material 中基本分別有 Technique、Pass、TextureUnitState,當中很多資料都在 TextureUnitState 裡,看到這些一大堆的資料,我又需要再加入一堆自訂資料,將設定資料記下來給 Material 工具顯示出來,同時亦要將這些資料作改動後,Save 起來做一個 Material Script,工序可以說是甚為煩瑣。

雖說工序是甚為煩瑣,但一想到在 MilkShape3D 中設定的 Material 資料過於基本,而自己也不想「 編寫 Material Script 」且不能方便地看其效果,所以一個可設定簡單 Material 資料 ( 限制於可設定資料量 ),及可以即時看到效果的 Material 工具,仍是一個不二之選。

3 comments:

Anonymous said...

good job!

NDark said...

hi,你好,我是台灣的遊戲開發者,這個材質設定器是定位為material script的產生嗎?是否有其他的技術文件可以參考?
謝謝.

Ngan Lo ( 顏佬 ) said...

是的, 這個設定器是用作產生 material script 的, 但暫時只能產生一些非常普通的 script, 只有 ambient light, texture name 之類, 不不齊全的說 :P

我也只是到 Ogre 的 forum 看, 和 API 的 doc, 沒有其他資料參考過. (因為也頗難找呢...)