Friday, July 30, 2010

做模型的有多少面子

相信有研究/製作 3D 模型的朋友一定會知道模型是由 點, 線 和 面 組成的, 遊戲模型比較少用到 線段, 我就不在此處詳述了.
提到 面組 的話就立即令人想到是連接各個 Vert點 而成為可見的實體模型了. 比較有經驗的朋友還會加上 "面組 還連接了貼圖用的 UV點". 其實 面組 還連接 Normal, Vertcolor...
一般人都會忽略這些東西, 是因為大多數的遊戲引擎都採用了共用 面組 資料的方式來建模型, 也就是共用相同數量的 Vert, UV, normal... 那樣只要讀取一次 面組 資料就可以了.

這種方式對反過來研究遊戲模型的我們卻不是件好事. 由於在同一個座標地點可能有多個相同的 vert點, 做成了鄰近的 面 也可能用上不同的 vert點. 模型容易變得不平滑, 也容易出現裂縫!
如果是用 3dsmax 的就更差了, 因為 3dsmax 不記錄 normal點 的, 而是用 smooth group! 那有方法解決這問題嗎!?

近日我就是主力研究解決這問題的方法! 一個比較簡單的方法是用上不同的 面組 記錄 Vert點 和 UV點. 再建立一個 Vert_UV_Lookup_Table 然很在讀取 Vert點 資料時對照一下這個位置是否已經記錄. 把索引記錄到 Vert_UV_Lookup_Table. 在讀取 面 資料時對照這個 Vert_UV_Lookup_Table 來 Vert_Face_Array 和 UV_Face_Array. 如事者還可以建立 Normal_Face_Array, VertColor_Face_Array...


讀到這裡可能有人會問, 為甚麼耍這樣子大費章節, 在把模型導入後 Weld 上 Vert點 就可以了. 這個當然可以, 但如果要考慮到遊戲模型的蒙皮資料呢!? 而且考慮到遊戲模型的再導出(比如做 mod 的), 蒙皮一定要是最後一項工作呢!?

Sunday, July 25, 2010

PS2 Gantz

Gantz 這個遊戲的模型人物是我一直很喜歡的, 可是它的模型格式就很不簡單了, 而且貼圖格式也不好解(雖然也是TIM2, 但卻是sizzled了), 我是從09年9月起開始研究的, 一直到現在還沒有成功解出來! 貼圖是可以解讀了, 而且近日在模型方面也有新突破, 骨骼和模型都解讀成功了, 但是模型本身是去掉 transform 的, 也就是一定要把它們連繫上骨骼的 transform 才能成型. 可是我就在這裡停滯不前了. 在這裡先作個記錄, 不知道何年何月才能完成了...

Thursday, July 15, 2010

Comfort Zone

說到研究 PC 遊戲的模型可以是我的起強項. 不用花太多時間就能把整個格式解讀出來, 而且起碼是70~80%準確的!
就以今天看的這個格式為例, 不到半天就整理完成了!


今天看的是一個叫 XNALara 的程序, 是 Tomb Raider Fans 不會缺失的東西.
你可以用它來做出各種動作, 可絕對是快速版的 Lara Croft 專用 Poser!!!
如果你有恆心的話還可以自行 修改/導入 模型呢! 這程序還有導出 obj 格式的功能啊!


那我為甚麼要解讀它的格式!? 是無聊再加上個人興趣吧!


Wednesday, July 14, 2010

回來唱戲了!

很久沒有 blogging 了, 原因是我開設了一個同類型的論壇 遊戲格式研究網. 就這樣子的數個年頭, 在那裡記錄了不少的心血和各樣研究成果.

因為近這個月來一直在家, 所以把整個論壇閱覽一片. 覺得原來自己一直都只在唱獨腳戲!
然後有人把我研究的成果 自吹自雷! 更有人作商業行為!

反正是唱戲, 回到這裡唱吧!