【Three.js:3D模型】各種模型簡單介紹
3D模型的格式有很多,每個公司或軟體都可以自己定義自己的格式,或公開或不公開。如max,obj, x(微軟),fbx(被Autodesk收購),dae,md2(Quake2),ms3d(MilkShap3D),mdl(魔獸3)等等。MD2是Quake2裡的模型檔案格式,帶有頂點動畫;OBJ是一種文字格式儲存的模型檔案格式,只能儲存靜態模型;MS3D模型檔案格式,全稱MilkShape 3D,是一種帶骨骼動畫的模型格式,也是《半條命》所使用的模型格式。md3是關鍵幀動畫,md5是骨骼動畫。
常用的3D模型有靜態的和動態的,區別就是前者不可以插入動畫(無論是骨骼動畫還是關鍵幀動畫),而後者可以插入動畫。靜態的如3ds和obj等,3ds是3DsMax的最早版本格式(Autodesk公司),也是比較通用的格式,幾乎所有的3D軟體都可以使用;現在好像已經被廢棄了,取而代之的是他們的max格式(3dsmax專用格式),max檔案可以包含動畫,被其他軟體或遊戲引擎(Uinty3D)直接支援。在openGL下匯入3ds模型很方便,如果不願自己寫匯入檔案,就去找lib3ds吧,它是專門讀取3ds模型的標準類庫。
OBJ檔案是一種標準的3D模型檔案格式,很適合用於3D軟體模型之間的互導。比如你在3dsMax或LightWave中建了一個模型,想把它調到 Maya裡面渲染或動畫,匯出OBJ檔案就是一種很好的選擇。目前幾乎所有知名的3D軟體都支援OBJ檔案的讀寫,不過很多軟體需要通過外掛才能做到這一 點。obj檔案本身雖然不能包含顏色資訊,但它可以引用材質庫。在maya匯出obj時,如果匯出材質,maya會同時生成一個名為.mtl的檔案,這個檔案包含著模型的顏色資訊。也可以認為,obj是可以包含材質和貼圖資訊的。這點和makehuman是一樣的,如果選擇匯出obj格式的模型就輸出三個檔案其中兩個就是obj和mtl。
fbx格式和MS3D格式,是一種帶可以骨骼動畫的模型格式,後者也是《半條命》所使用的模型格式。好像是fbx格式沒有公開的原因,openGL 要接助官方提供的fbx SDK 才能方便地讀取儲存等操作。
另外:發現google SketchUp也是一個不錯的3d軟體,小巧精緻.