Commit Graph

210 Commits

Author SHA1 Message Date
Pär Winzell 449c5ed59d
Upload release artifacts for Windows (#197) 2019-05-16 12:39:39 -07:00
Par Winzell 7683d208cb Prepare for merge with master. 2019-05-16 12:39:08 -07:00
Par Winzell 75f811491c auth token encrypted against FB acct 2019-05-16 11:59:16 -07:00
Pär Winzell 8f51ee4016 Conan doesn't like adding remotes twice. 2019-05-16 11:11:51 -07:00
Par Winzell b8b470395b Build all branches, cache Conan downloads. 2019-05-16 10:58:56 -07:00
Par Winzell 07c69ce0e7 Don't skip tags, whitelist test branch. 2019-05-16 10:32:41 -07:00
Pär Winzell a66049f2e8 Conan doesn't like adding remotes twice. 2019-05-15 00:33:41 -07:00
Pär Winzell 959d799482 Try AppVeyor auto-upload release builds. 2019-05-14 22:09:11 -07:00
Jesse Vander Does feb2768b61 Added sdk to dockerignore
I've added the sdk directory to the docker ignore.
With the SDK ignored, we can install the SDK before
adding the project source. This allows the docker image
to preserve most of the layer caches when source code is
changed.
2019-05-14 07:16:28 -07:00
Pär Winzell 3c57e62ae5
Have Travis upload build artifacts (#194) 2019-05-14 07:14:26 -07:00
Pär Winzell 0ba34ee7f5 settings.libcxx -> settings.compiler.libcxx 2019-05-11 16:38:29 -07:00
Pär Winzell 80e4a96d9b Constrain our GCC build tweak to GCC.
Only for GCC (5.*) is it necessary to instruct the compiler to avoid
falling back on a very old libstd ABI.
2019-05-11 15:08:35 -07:00
Pär Winzell 6b8490a6ae
Update README.md 2019-05-07 17:27:22 -07:00
Jesse Vander Does 1100e09111 Dockerize FBX2glTF (#184)
Added dockerfile and docker-compose.
2019-05-07 17:20:38 -07:00
Par Winzell 1cc57c90b2 Update internal databases. 2019-05-07 15:32:35 -07:00
Par Winzell f0eaa1efb2 Travis CI Support. 2019-05-07 15:08:12 -07:00
Par Winzell ed43cacb33 Ensure Conan downloads modern binaries.
On a system with GCC 5.* Conan will conservatively choose 'libstdc++'
over 'libstdc++11' for compiler.libcxx, and then proceed to download
libraries compiled with the older ABI.

Meanwhile, though, our own CMake setup dictates the use of the modern
ABI, and the result is an application binary with ABI mismatches that
yield SIGSEGVs almost immediately.

Here, we guard against erronous invocations, and gently push the user
towards sending in the right explicit override for their system.
2019-05-07 13:15:54 -07:00
Par Winzell 33ef6fef2e We now have a good FBXSDK_SDKS default. 2019-05-05 22:18:08 -07:00
Pär Winzell b1960feb64 Let's try AppVeyor... 2019-05-05 10:16:21 -07:00
Par Winzell 8e5ded122e Argh. This is the actual commit intended. 2019-05-05 01:21:25 -07:00
Par Winzell df00e0538d Ignore animation 'takes', calculate frame intervals ourselves.
Lifted from comment in source:

Individual animations are often concatenated on the timeline, and the
only certain way to identify precisely what interval they occupy is to
depth-traverse the entire animation stack, and examine the actual keys.

There is a deprecated concept of an "animation take" which is meant to
provide precisely this time interval information, but the data is not
actually derived by the SDK from source-of-truth data structures, but
rather provided directly by the FBX exporter, and not sanity checked.

Some exporters calculate it correctly. Others do not. In any case, we
now ignore it completely.
2019-05-05 01:00:53 -07:00
Par Winzell a07cabd1ec eTotalOne is strictly a subset of aNormalize. 2019-05-03 21:48:51 -07:00
Pär Winzell 4b501431fe
License -> BSD (#186)
Relicense FBX2glTF as BSD.
2019-05-03 16:13:18 -07:00
Pär Winzell 7fc7120487
Azure CI build support. (#182)
Azure build support.
2019-04-23 12:44:03 -07:00
Par Winzell 366e904b70 FB Copyright compliance. 2019-04-22 08:45:05 -07:00
Pär Winzell 7970914dd0 Delete spurious (and utterly broken) log line. 2019-04-20 22:08:24 -07:00
Par Winzell 5ba62a726c these were never meant to be here 2019-04-19 23:58:13 -07:00
Pär Winzell 7dd8438c78
Embrace Conan, use it to grab boost::filesystem. (#180)
With this, we are able to get rid of all the increasingly broken file
system utility code, and trust boost::filesystem to handle all the
cross-platform complexity.

The first version of this PR centred around C++17 & std::filesystem,
but support remains too elusive; it seems works out of the box in
Visual Studio (especially 2019), but is entirely missing from the Mac
dclang, and even with GCC 8.0 it requires an explicit '-l c++fs'.

Luckily the std:: version is almost exactly the boost:: version (not
surprising) so when the world's caught up, we can ditch Boost and go
all stdlib.

Setting up Conan requires a bit of work; we'll want to document the
details in the README.
2019-04-19 23:54:11 -07:00
Simon 4bb4bdbac1 animation framerate option 2019-04-18 09:24:38 -07:00
Par Winzell 4ed510ca8e Add required Facebook copyright headers. 2019-04-17 18:06:09 -07:00
hhalen 13f463d336 Fix skinning weight normalization. Previous code would call Normalized() on a Vec4f containing the weights. This normalizes the vector, i.e. makes the length of the vector equal to 1.0. For skinning weights what we want is the sum of the weights to be 1.0, which is a different. This commit fixes that. 2019-04-09 10:12:11 -07:00
Par Winzell 9c76e5ade1 Stop testing if conversion failed. 2019-04-07 18:33:27 -07:00
Pär Winzell 769454e964 This all needs rewriting, but at least let's make it not crash on Windows. 2019-04-07 15:18:13 -07:00
Par Winzell 11398f6acb This is an expected case and shouldn't be logged. 2019-04-03 11:57:20 -07:00
Par Winzell 910a8bfdd0 Left-over debug line. 2019-04-03 10:37:13 -07:00
Par Winzell 9e6ab31e37 Oops, forgot to actually commit json.hpp. 2019-04-03 09:58:48 -07:00
Par Winzell c6ed20a45a Commit JSON header-only dependency to our repo. 2019-03-29 20:05:01 -07:00
Par Winzell 1f21a50cc9 Fix the previous fixes.
Alright, less haphazardly now after the two previous botched commits,
this fixes mistakes and bugs made a year or more in the past:
 - We now always pass the metallic and roughness factors through all
   the way to the glTF layer. They should not be multiplied into the
   generated textures, and so they should be present as-is in glTF
   output.
 - We only generate the AO/Rough/Net combined texture if at least two
   of the constituent textures are present.
 - We only reference the generated texture as an occlusionTexture if
   there really was an occlusion map present (and it had non-trivial
   pixels).

It's also now ridiculously clear that:
 - The material conversion section is long and tortured and it's very
   easy to screw up. It should be broken into functions and classes.
 - We urgely need a real regression suite, and we need to model some
   artificial FBX files that test both realistic scenarios and edge-
   case permutations.
2019-03-29 19:56:33 -07:00
Par Winzell 46f6234af5 Fix previous fix. 2019-03-29 10:29:59 -07:00
Par Winzell d2f7d0e270 Generally repair old broken logic around aoMetRough texture. 2019-03-29 09:59:57 -07:00
Pär Winzell ca78a31b22
Merge pull request #171 from mtostenson/master
Only create aoMetRoughTex when metalnesss or roughness texture provided.

Following up with tweak commit.
2019-03-29 09:31:44 -07:00
Michael Tostenson 9c114ffa49 Only create aoMetRoughTex when metalnesss or roughness texture provided 2019-03-26 17:28:10 -07:00
abbaswasim 678a9bf844 Fix typo (#167)
Corrects spelling of `roughness`
2019-03-11 12:45:38 -07:00
Pär Winzell b8d587d2c7
Add link to bleeding-edge builds. 2019-02-25 09:31:15 -08:00
Par Winzell a596073f04 Identify materials by unique ID, not name.
At the end of the various material/mesh transformations we do, we were still using a ridiculously simplistic method of mapping RawMaterial to glTF MaterialData.

This switches to using FBX's GetUniqueID(), which should be the law of the land in general. Other model entities may need further investigation as well.
2019-02-24 19:32:13 -08:00
Par Winzell 4780efdc6f Extend tests a bit. 2019-02-24 17:42:13 -08:00
Par Winzell a3841fe7cd Formatting-only change. 2019-02-23 23:51:05 -08:00
Par Winzell e83d495fdc Fix Draco. How long was this broken? 2019-02-22 23:02:14 -08:00
Par Winzell 713ee2f879 Tiny type tweak. 2019-02-22 17:15:42 -08:00
Par Winzell 9d4a599d0c Pin STB header files at working versions. 2019-02-22 17:11:34 -08:00