Wednesday, October 24, 2012

FBX Viewer 3.00 posted


I posted the source to my FBX viewer.   It has been significantly reworked to isolate the renderer from the FBX importing step.

http://code.google.com/p/fbxviewer/


It supports Visual Studio 2010 and Visual Studio 2012.

x86 and x64 bit builds.

FBX SDK v 2014.0 beta 2

Uses FreeImage to load texture files.

Uses DirectX 9.0 for rendering, however, since the graphics API is abstracted, other version of DirectX or OpenGL could be used.

-Doug




7 comments:

Unknown said...

Thanks mr Doug Rogers

Stevenmbiz said...

Have compiled and can open the humanoid.fbx playing animation. One problem though, it takes about 5 minutes to load the skinmesh in win32 debug mode (vs 2010). Any clue for that?

Doug Rogers said...

@Stevenmbiz,
There are several reasons. The FBX format is not suited to real time/ game-style rendering. I do a lot of processing to convert the FBX format into a "real-time" format that is suitable a a game. This make heavy use of STL. The debug memory manager in VS tracks every single memory allocation and really slow this processing down.

FBX should remain an asset file storage format. This fbxviewer is meant to assist in converting FBX to a final format that is suitable for real time rendering.

Stevenmbiz said...

Understood. BTW I used my own game character model for testing and it seems ok for common game assets import. I'm currently studing the FBX file format and your code really helpful for me anyway.

Anonymous said...

Hi. I am trying to rebuild FBXViewer, but getting all kinds of build errors in VS 2012:

C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(226): error C2504: 'lpiFrame' : base class undefined (FBXViewerLib.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(226): error C2504: 'lpiFrame' : base class undefined (Direct3D.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(226): error C2504: 'lpiFrame' : base class undefined (FBXViewer.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(272): error C2504: 'lpiAnimationSet' : base class undefined (FBXViewerLib.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(272): error C2504: 'lpiAnimationSet' : base class undefined (Direct3D.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(302): error C2143: syntax error : missing ';' before '__cdecl' (FBXViewerLib.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(302): error C2433: 'FBXCompressedAnimationSet::lpPlaybackType_e' : 'virtual' not permitted on data declarations (FBXViewerLib.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(302): error C2143: syntax error : missing ';' before '__cdecl' (Direct3D.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(272): error C2504: 'lpiAnimationSet' : base class undefined (FBXViewer.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(302): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (FBXViewerLib.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(302): error C2433: 'FBXCompressedAnimationSet::lpPlaybackType_e' : 'virtual' not permitted on data declarations (Direct3D.cpp)
1>C:\Codes\FBXViewer_2012\FBXLib\FBXLib.h(302): error C2495: 'FBXCompressedAnimationSet::lpPlaybackType_e' : '__declspec(nothrow)' can only be applied to function declarations or definitions (FBXViewerLib.cpp)

..
..
..
..

Doug Rogers said...

class lpiFrame is define in lpiScene.h, which is included by Lightpoint.h In Direct3D.h, the header file are included in the proper order. Is it possible that you have a header conflict? Perhaps with the direct3d.h file?



Unknown said...

I want the older version of fbxviewer which uses visual studio 2008 fbxsdk 2011.
The version you posted in january 2010.Please help...