英吋 FBX

FBX SDK 探索筆記(Ver 4)

Autodesk FBX 
上禮拜明峻哥給了任務,心血來潮就去官網晃一下,沒想到有新版
蠻好奇版本編號怎樣設定的,竟然是 2009.1 版,老媽!我穿越未來啦!

上一個版本是 2006.11 ,之前並沒有很深入它,不確定有哪些大改變
進入正題~


連結函式庫的注意事項

因為要給美術範例檔測試才發現這問題的XD

要在別人電腦也能執行的設定重點:
   
[專案屬性] > [組態屬性] > [C/C++] > [程式碼產生] > [執行階段程式庫]

直接改成「多執行緒(/MT)」之後,編譯不會有問題
但開始連結函式庫就出現…

1>正在連結…
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _memmove 已在 LIBCMT.lib(memmove.obj) 中定義過了
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: __stricmp 已在 LIBCMT.lib(stricmp.obj) 中定義過了
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _strchr 已在 LIBCMT.lib(strchr.obj) 中定義過了
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _strpbrk 已在 LIBCMT.lib(strpbrk.obj) 中定義過了


的這種錯誤訊息

搞了老半天,最後發現只是一個小小的問題…

    [專案屬性] > [組態屬性] > [連結器] > [輸入] > [其他相依性]

把範例程式裡面所引用的 lib 一一測試,最後是「fbxsdk_md2008.lib」在搞鬼
找到 SDK 函式庫的資料夾,裡面放著一堆等我很久的答案「各種版本的 lib」
我是使用 VS 2008多執行緒(/MD) ,所以將使用的 lib 換成 「fbxsdk_mt2008.lib
OK!問題就解決了!

最後的重點就是「依照編譯器版本以及執行階段程式庫的模式,選用適當的 Library


一個詭異的小問題

在測試 ViewScene 這個範例時,有時候不知道怎樣它會無法辨識檔案
也就是出現…「Unable to open file humanoid.fbx」的錯誤訊息

如果重新執行一次還是無法解決,解決方法很簡單
就是對 humanoid.fbx 手動作一次「重新命名」的動作

就能正常執行了


Scene

場景(Scene)是一個包含模型(例如:網格)、攝影機、燈光等等 3D 物件的容器。一個 FBX 檔案只會有一個場景。


Take

Take 這個概念是用在 MotionBuilder 和 FBX 裡,但許多 3D 工具都沒使用,包括 3ds Max 和 Maya。對於支援 FBX SDK 2009.1 版本的檔案來說,只有 FBX 可以容納多個 take 。其他檔案可以包含動畫曲線資料,但他們不能儲存額外的 take 資料,這也讓他們只能包含相當於一個 FBX take 的資料。



嵌入媒體檔(Embedded Media files)

除了二進位(binary) FBX 檔以外,ASCII FBX 檔、OBJ 檔以及其他支援 FBX 的檔案格式都不能夾帶媒體檔。

如果媒體檔夾帶在二進位的 FBX 檔案裡,當你匯入檔案進入程式中,FBX SDK 匯入員物件會將媒體檔抽出來,並將它們複製到一個資料夾裡。預設是:

  • 存放媒體檔的資料夾,會是 FBX 檔案所在資料夾的子目錄
  • 子目錄的名稱通常基於 FBX 檔案的名稱。舉例來說,有個叫做 MyScene.fbx 的 FBX 檔,子目錄的名稱就會是 MyScene.fbm

如果不是選擇崁入媒體檔,FBX SDK 搜尋媒體檔的方式如下:

  • 先依照絕對位置去找。這是在匯出時,呼叫 SetFileName() 設定的。
    ※注意,這裡的絕對位置是以 FBX 檔為基準點。
  • 倘若沒找到,接著用相對路徑去找。這是在匯出時,可以設定相對路徑的基準點,基準點會存在 FBX 檔案裡面。


FBX SDK 裡的一些術語

這是在 KFbxMesh 裡面提到的。

  • 一個控制點(Control Point)是一個 XYZ 座標,它等同於頂點(Vertex)。
  • 一個多邊形的頂點(Polygon Vertex)是一個控制點的索引(Index),它等同於頂點索引(Vertex Index)。
  • 一個多邊形是控制點索引的群集(集合,Group)。


繼續探索…
話說,FBX 中文資料真的少得可憐QQ
有任何不錯的 FBX 文章請務必賞給小弟,在此拜託了!

–To be continue

2則迴響

  1. 小弟最近刚刚接触FBX SDK,想用它编一个小球简单运动的动画,用maya读取,不知道能不能实现。万分感谢!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.