View Issue Details

IDProjectCategoryView StatusLast Update
0005722DarkRadiantModelspublic02.04.2022 05:55
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status closedResolutionfixed 
Product Version2.13.0 
Target Version2.14.0Fixed in Version2.14.0 
Summary0005722: Add FBX model importer
DescriptionAdd a model importer module which is able to load FBX files. This allows mappers to at least take FBX models and convert them to a format supported by TDM, as-is.

The loader code can be based on the open-source openFBX importer (https://github.com/nem0/OpenFBX), which is a very small and also surprisingly convenient loading code falling under the MIT licence. There are no Debian packages for openFBX, but the importer consists just of a few files without any dependencies, so we can copy them into the DR repository without issues.

(Note on the decision not to use the official FBX SDK: even though the official SDK is available for download, only the runtime (DLL) is allowed to be redistributed with applications. This would make the DarkRadiant source code a bit less portable, requiring users to either download the SDK manually on their systems to be able to compile, or to make module compilation optional.)
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Related Changesets

DarkRadiant: master 7a40fd73

22.08.2021 13:33

greebo


Details Diff
0005722: Add openFBX source files - patched to work with zlib instead of minizip. Affected Issues
0005722
mod - LICENSE Diff File
mod - radiantcore/CMakeLists.txt Diff File
add - radiantcore/model/import/openfbx/LICENSE Diff File
add - radiantcore/model/import/openfbx/ofbx.cpp Diff File
add - radiantcore/model/import/openfbx/ofbx.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

DarkRadiant: master eb879593

22.08.2021 13:47

greebo


Details Diff
0005722: Add unit test checking the ability to load (and convert) an FBX model Affected Issues
0005722
mod - test/ModelExport.cpp Diff File
mod - test/Models.cpp Diff File
add - test/resources/fbx/test_cube.fbx Diff File

DarkRadiant: master 1560c0c9

22.08.2021 14:40

greebo


Details Diff
0005722: FbxModelLoader implementation Affected Issues
0005722
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/model/ModelFormatManager.cpp Diff File
mod - radiantcore/model/StaticModelSurface.h Diff File
add - radiantcore/model/import/FbxModelLoader.cpp Diff File
add - radiantcore/model/import/FbxModelLoader.h Diff File
add - radiantcore/model/import/FbxSurface.h Diff File
mod - test/ModelExport.cpp Diff File
mod - test/Models.cpp Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

DarkRadiant: master b5616fe0

22.08.2021 15:21

greebo


Details Diff
0005722: Fixup unit test.
DarkRadiant's LWO loader is doing the vertex normal generation differently than the engine's LWO loader, the 24 verts of the cube will be merged down to 22 on load - which won't happen for ASE models, so let's use ASE for this conversion test.
Affected Issues
0005722
mod - test/ModelExport.cpp Diff File

Issue History

Date Modified Username Field Change
22.08.2021 12:30 greebo New Issue
22.08.2021 12:30 greebo Assigned To => greebo
22.08.2021 12:30 greebo Status new => assigned
22.08.2021 15:21 greebo Changeset attached => DarkRadiant master 7a40fd73
22.08.2021 15:21 greebo Changeset attached => DarkRadiant master eb879593
22.08.2021 15:21 greebo Changeset attached => DarkRadiant master 1560c0c9
22.08.2021 15:21 greebo Changeset attached => DarkRadiant master b5616fe0
22.08.2021 15:22 greebo Status assigned => resolved
22.08.2021 15:22 greebo Resolution open => fixed
22.08.2021 15:22 greebo Fixed in Version => 2.14.0
02.04.2022 05:55 greebo Status resolved => closed