Commit Graph

207 Commits (01d4b10f1404da833a42262b33932fc04e8002f3)

Author SHA1 Message Date
Tommy fb4a67d4fe Improve FBX material import.
Some properties were being incorrectly interpreted,
and by default it was relying on a legacy system.
2018-01-11 17:30:21 +01:00
BuildTools 66171de915 Successful lib build, unit testing still WIP 2018-01-05 16:18:33 -08:00
rickomax 4623c2f14c FBX Embedding Fix
FBX files may use a texture reference from an embedded texture that hasn't been loaded yet. This patch fixes this issue, storing all texture filenames, that can be acessed later via "scene::GetEmbeddedTexture", when all textures are already loaded.
Some warnings have been added to other file formats that uses embedded data.
2017-12-18 18:14:54 -02:00
Kim Kulling 0588d6cccf FBX: closes https://github.com/assimp/assimp/issues/1619: return correct index for embedded textures. 2017-12-07 09:44:48 +01:00
Turo Lamminen e8eccfa27d FBX: Replace ScopeGuard with std::unique_ptr 2017-12-02 17:19:18 +02:00
Turo Lamminen 583d3f88b8 FBX: Remove dead assignment 2017-11-15 11:45:21 +02:00
Kim Kulling 4a4f3fddc7 closes https://github.com/assimp/assimp/issues/213: log an error instead of letting the fbx-importer crash. 2017-11-05 22:52:07 +01:00
Thomas Lemaire 5b76a31485 fix trivial warnings
mainly unused parameter and unused function
some parameters are indeed used in a debug built, I used the
(void)(param) trick
warnings reported by clang 4
2017-11-02 11:13:52 +01:00
Kim Kulling c4e91eb33f add some asserts. 2017-09-30 10:47:23 +02:00
Kim Kulling d27e667f1e Merge branch 'master' of https://github.com/assimp/assimp 2017-09-19 00:32:50 +02:00
Kim Kulling af9596674d FBX: add missing inversion of postrotation matrix for fbx. 2017-09-19 00:31:41 +02:00
Kim Kulling b5f770e456 Merge branch 'master' of https://github.com/assimp/assimp 2017-09-12 19:07:21 +02:00
Kim Kulling e3163ec15e FBX: fix some minor findings. 2017-09-12 19:07:17 +02:00
Tammo Hinrichs 12a28d33ce FBX importer: try a constant again (ll suffix this time) 2017-08-25 12:14:03 +02:00
Tammo Hinrichs 9a12b6ef0b FBX importer: Back to INT64_MIN but include <stdint.h> also. 2017-08-25 11:17:07 +02:00
Tammo Hinrichs 80489963a1 FBX importer: don't rely ont INT64_MIN / ..MAX macros 2017-08-24 17:18:54 +02:00
Tammo Hinrichs 7182f89a51 FBX importer: Use actual min/max of animation keyframes when start/stop time is missing 2017-08-24 14:40:53 +02:00
rickomax c86013b08d Fixed many FBX bugs
Fixed a bug where FBX loader won´t load embedded textures that don´t have the Content data filled. Some FBX files only fill this data once, so any embedded texture with the same source filename, should use the pre-loaded data.

Fixed another bug where FBX Texture "Filename" field came different than  on some files than the one defined by the code. One suggestion is load all properties by the case-insensitive function created.

Added the "AI_CONFIG_IMPORT_FBX_SEARCH_EMBEDDED_TEXTURES" flag to tell the importer to load embedded texture data from already loaded ones.
2017-07-15 00:27:33 -03:00
Kim Kulling a2b8d66a86 Update license info. 2017-05-09 19:57:36 +02:00
Kim Kulling f312d8709e More cleanup 2017-02-28 16:37:07 +01:00
Matt Oliver 2f2fe92b62 FBX: Add additional material properties.
Currently there isnt a AI_MATKEY_DISPLACEMENTSCALING define but fbx supports the value so for the moment it is just manually specified.
2017-01-09 17:03:38 +11:00
Matt Oliver 5be2351dc6 FBX: Correct camera position and clip planes.
Fbx cameras are stored in the scene graph as well as having separate camera properties.
The separate camera properties have a camera position and direction that is already fully
transformed based on its position in the scene graph so this results in the assimp
camera being transformed twice. Since the scene graph contains all the relevant
transformations the camera position and direction can just use default values. Fbx
specifies cameras along the positive x axis so the default camera values have a up and
direction set accordingly.

Fixes: #807 #643
2017-01-09 17:03:32 +11:00
Matt Oliver b34a552fb7 FBX: Add correct light locations and falloff values.
Fbx lights are stored in the scene graph as well as having separate light properties.
The separate light properties have a light position and direction that is already fully
transformed based on its position in the scene graph so this results in the assimp
light being transformed twice. Since the scene graph contains all the relevant
transformations the light position and direction can just use default values. Fbx
specifies lights along the negative y axis so the default light values have a up and
direction set accordingly.

The DecayStart value specifies the distance from the light that the light intensity
will drop to half. Using the default assimp falloff equation of f=1/c+lr+qr^2 then
the falloff coefficients can be calculated for either c,l or q accordingly by setting
r=DecayStart and f=0.5.

Fixes #851
2017-01-09 17:03:25 +11:00
Kim Kulling dcfc696e86 FBX: woraround for issue 1089. 2016-12-02 11:32:34 +01:00
Jared Mulconry f206249fbf Merge branch 'master' of https://github.com/assimp/assimp into implementation_warning_fix
# Conflicts:
#	code/AMFImporter_Postprocess.cpp
#	code/FBXConverter.cpp
#	code/IFCLoader.cpp
#	code/NDOLoader.cpp
#	code/glTFAsset.inl
2016-11-23 22:24:04 +11:00
Kim Kulling a446d75250 Ue new alloc semantic when using aiMetadata + increase test coverage. 2016-11-22 21:06:14 +01:00
Jared Mulconry 2ac9b0ce45 Fixed build warnings on MSVC14 x64 in the FBX format sources. 2016-11-19 23:50:03 +11:00
Kim Kulling cae8a172c3 Merge branch 'master' into coverity_scan 2016-11-18 11:38:45 +01:00
AndrzejKozik dcb7478785 Update FBXConverter.cpp 2016-11-04 09:20:04 +01:00
AndrzejKozik a074ca58b3 Keys interpolation fix
In line 3073 there was an unproper scope of cast to double.
2016-11-04 08:48:14 +01:00
wise86Android 33dcf4dbd3 122185 Pointer to local outside scope 2016-09-24 20:24:38 +02:00
roshan.c 27f81884f9 adding support to store all the layered textures 2016-08-15 09:58:53 -07:00
Chris Russ fa1d6d8c55 propagating precision requirments into operations 2016-07-16 18:23:33 +10:00
Kim Kulling 7207e5117c Use new include bracktes. 2016-06-06 22:04:29 +02:00
Turo Lamminen c7c756d344 FBX: Use C++11 range-based for loop 2016-05-22 13:57:13 +03:00
mensinda ae99f99b99 Replaced boost::tuple with std::tuple 2016-04-06 00:17:21 +02:00
mensinda 5dacda0a08 replaced boost smart pointers with c++11 smart pointers 2016-04-05 23:23:53 +02:00
mensinda 18843fe5e1 Replaced BOOST_FOREACH with c++11 ranged for loops 2016-04-05 22:53:54 +02:00
Kim Kulling f2d5921252 Update FBXConverter.cpp
FBXConverter: initialize aiNodeAnim with nullptr.
2016-04-04 12:48:53 +02:00
Kim Kulling 76e4e82ecb FBX: fix https://github.com/assimp/assimp/issues/782 2016-03-16 20:26:33 +01:00
Kim Kulling 53370d0d31 FBXImporter: some refactorings to increase readability. 2016-03-03 18:38:50 +01:00
Kim Kulling 2b09199f4a FBXImporter: move MeshGeometry declaration into its own header 2016-03-03 15:19:38 +01:00
Kim Kulling 1191d03405 Update license info. 2016-01-01 21:07:24 +01:00
Kim Kulling 398c1361d3 Merge pull request #674 from suikki/master
FBX import: If animation is not defining keys for all vector components (x, y and z), use the node transform as the default value.
2015-11-26 13:50:34 +01:00
Otger c876dce82b Fixed crashes for Video with no content 2015-11-23 21:46:55 +01:00
Otger f94bc8d66e Initial support for FBX embedded textures 2015-11-23 19:49:54 +01:00
Olli Kallioinen 12ed07a939 FBX import: If animation is not defining keys for all vector components
(x, y and z), use the node transform as the default value.
2015-10-27 21:03:24 +02:00
Richard 83de707587 Refactor: Expand tabs to 4 spaces 2015-06-28 16:04:15 -06:00
Richard a96a595a7a Refactor: Trim trailing whitespace 2015-06-28 16:01:32 -06:00
Kim Kulling 2bfc353fde License info: update year info. 2015-06-28 21:48:25 +02:00
abma 8c45a4dc3b Merge remote-tracking branch 'origin'
Conflicts:
	code/C4DImporter.cpp
	code/OgreImporter.h
2015-04-16 01:03:00 +02:00
abma bf4913b5c9 remove AssimpPCH.h: fixes #534 2015-04-16 01:00:17 +02:00
George Papadopoulos 08ba782bd5 [FBX] add support for multiple animations (by using LocalStart/LocalStop in takes)
+ change key type from uint to int (fixes bugs from negative int_t becoming a junk uint_t value )
+ detect and ignore channels with no keys in the specified take start/stop window
+ add test model with multiple animations
2015-03-26 23:23:38 +02:00
Turo Lamminen e8bcad0840 Silence a warning and add an assertion
Another false positive uninitialized variable. Actually it's only false
if ToOutputVertexIndex does't return NULL which should only happen if
index is out of bounds. Add assertion to make sure of that.
2015-02-27 23:09:03 +02:00
abma 775b26e614 use std:: namespace for most cmath functions:
http://en.cppreference.com/w/cpp/header/cmath
2014-09-23 00:43:33 +02:00
Jared Duke 046b7e5f47 Rebase FBX regression db entries
The FBX importer now properly parses field-of-view tokens. Rebase
only the failing FBX entries to accomodate the fix, also removing
the comment noting the (now incorrect) comment about improper import
of the FOV property.
2014-09-15 18:14:38 -07:00
abma 6c5f9ecb06 fix most warnings with -pendantic 2014-08-18 02:09:06 +02:00
Alexander Gessler d044ce7a62 FBXConverter: avoid creating an empty metadata slot (UDP3DSMAX was erased from list _after_ its size was taken)/ 2014-06-17 14:31:14 +02:00
arkeon b2ac7b878f Correction on FBX material texture UV index
(keep the previous method for "allMaterials" option, this should be change too since the materials indexes used are not the good ones, or just remove the object / material test
2014-05-27 09:11:27 +02:00
Alexander Gessler 1b6b238f09 FBX: fix handling of string metadata. Before, we would accidentially confuse aiString and std::string and trigger a debug assertion. 2014-05-22 16:22:38 +02:00
Léo Terziman 7c3a039349 Merge remote-tracking branch 'official/master' into contrib
Conflicts:
	include/assimp/matrix4x4.inl
	include/assimp/vector2.h
	include/assimp/vector3.h
2014-04-22 14:32:59 +02:00
Kim Kulling a6044e125e Merge pull request #249 from attila-barsi/master
Initial version for FBX layered textures.
2014-04-01 16:02:16 +02:00
attila-barsi 4f36e85bd8 Added required changes to doc and protection from nullptr. 2014-03-31 10:30:04 +02:00
DoubleLee 2e3b602c0b Aspect Ratio fix, and comment about field of view. 2014-03-26 16:44:49 -05:00
attila-barsi ed9204ab1b Initial version for FBX layered textures.
Fixed assert during parsing UDP3DSMAX.
2014-03-24 11:46:36 +01:00
Léo Terziman 1f3be52079 Merge remote-tracking branch 'official/master' into contrib 2014-03-24 10:44:57 +01:00
Léo Terziman 82cc038a83 Merge remote-tracking branch 'official/master' into contrib 2014-03-19 10:18:47 +01:00
Frederik Aalund 595529ef8b Refactored the metadata for inner consistency. 2014-03-15 08:37:45 +01:00
Frederik Aalund a8401ba377 Added support for heterogenous metadata on the aiNodes. 2014-03-14 14:17:34 +01:00
Frederik Aalund f65e5d5487 Fixed a compile error due to a >> expression in a nested template statement. 2014-03-09 17:04:27 +01:00
Frederik Aalund 9eb8677aba Added unparsed FBX properties to the aiNode's metadata. This allows the
user to extract extra/custom/user attributes/properties from the scene
graph. E.g., extracting attributes set under "extra attributes" in Maya.
2014-03-09 16:18:05 +01:00
Léo Terziman 172c917c37 Merge remote-tracking branch 'official/master' into contrib 2014-03-03 12:47:45 +01:00
Léo Terziman b90718bd21 Merge remote-tracking branch 'official/master' into contrib
Conflicts:
	code/IFCLoader.cpp
2014-02-26 18:06:46 +01:00
George Papadopoulos 2db48ef532 [FBX] Do not rename nodes if they are marked as null in fbx. Preserve this information in node metadata.
Use can use node.Metadata.Get("IsNull") to check. (returns "true" or "false")
2014-02-23 12:27:34 +02:00
George Papadopoulos 5ef8c09dbb Use AiNode's metadata to keep per-node(and per-instance) FBX (3dsmax) UserDefinedProperties
Also simplify metadata structure to avoid unnecessary allocations (and make it easier for wrappers like AssimpNET to read it)
2014-02-22 21:57:01 +02:00
Léo Terziman b75f27492a Merge remote-tracking branch 'official/master' into contrib 2014-02-17 08:49:43 +01:00
George Papadopoulos 02c4344d1d detect FBX glossiness map (ShininessExponent) 2014-02-14 15:15:18 +02:00
Léo Terziman 7372bf2467 Merge commit 'c0871b35c0ab7091f68c794eb954493722522d4c' into contrib 2014-01-17 11:59:31 +01:00
Léo Terziman 4e7b59be55 Improving homogeneity of DEBUG macro for improved portability with compilers other than Visual Studio 2014-01-17 11:43:48 +01:00
George Papadopoulos 2d709dd638 Fix for FBX pivot transformation.
Parse and use the GeometricScaling,GeometricRotation and GeometricTranslation model properties in node transformation
2013-12-29 21:02:16 +02:00
Sherief Farouk 9b591fadb8 Fixes for uninitialized variable warnings. 2013-08-09 19:52:15 -04:00
Sherief Farouk c8428fa67a Added value range assertions to prevent static analysis false-positives on Clang. 2013-08-07 18:43:29 -04:00
Alexander Gessler a288a631e2 - FBX: avoid more gcc warnings. 2013-04-08 20:21:28 +02:00
Alexander Gessler 5fe03f692e - FBX: silence some warnings produced by clang about missing switch cases. Add TokenType_BINARY_DATA to TokenTypeString() function. 2013-04-08 19:45:09 +02:00
Jared Duke 20506ead3c Update code/FBXConverter.cpp
Fixing VC10 build.
2013-01-24 19:44:08 -08:00
Alexander Gessler c1cd88e9de - fbx: take shortest quaternion path when interpolating. 2012-08-26 20:10:01 +02:00
Alexander Gessler 5bc573edb8 - fbx: pre-filter animated property we don't support as early as possible. 2012-08-26 18:40:04 +02:00
Alexander Gessler 9ea7fc2856 - fbx: don't die if a file contains no GlobalSettings. 2012-08-26 17:45:09 +02:00
Alexander Gessler cdb7caffbd - fbx: add special output node name tag to mark fbx null nodes. 2012-08-25 22:24:08 +02:00
Alexander Gessler c9facf16fa - fbx: support reading of scenes containing no geometry. 2012-08-25 18:17:11 +02:00
Alexander Gessler 375c4b4242 - fbx: read framerate and output it in aiAnimation::mTicksPerSecond. 2012-08-25 17:31:15 +02:00
Alexander Gessler 5ea9de5d3e - fbx: return time in seconds. 2012-08-25 16:13:19 +02:00
Alexander Gessler 3f2a796b9d - fbx: fix time scaling in my previous patch. 2012-08-20 19:23:54 +02:00
Alexander Gessler 99aab0d9a7 - fbx: also handle cases where some of the SRT channels are empty/constant. 2012-08-20 19:15:59 +02:00
Alexander Gessler 6bbbbfde4c - fbx: collapse animation nodes whenever possible to avoid overly busted output scenes. 2012-08-20 18:33:54 +02:00
Alexander Gessler 3e86e1b857 - fbx: add import settings to public assimp config interface. 2012-08-11 16:41:44 +02:00
Alexander Gessler 1cd04a2671 - fbx: formatting. 2012-08-11 02:24:59 +02:00
Alexander Gessler 826b97a4fa - fbx: handle arbitrary rotation orders (all combinations of euler angles etc). 2012-08-11 02:17:22 +02:00
Alexander Gessler 1a5bf26e91 - fbx: light & camera conversion was missing in assimp, somehow. 2012-08-11 01:51:04 +02:00
Alexander Gessler 8d5b78c035 - fbx: 32 bit build fixes. 2012-08-10 23:26:49 +02:00