@zellski zellski released this Mar 29, 2018 · 43 commits to master since this release

Assets 5

This patch release comes a little sooner than expected, because it fixes a crashing bug.

  • Fix embarrassing overrun while writing long integers to a buffer allocated for short ones.
  • Joyously accepted the @davilovick PR that eliminates FBX' use of scaling transforms on all nodes directly below the root. We now bake this scale factor (which comes from unit conversion) into the actual vertices.
  • We now mark exported materials up with a little metadata as to their origins. See e992aac for details.
  • Do a slightly better job locating textures in the local filesystem.
  • We now treat a PNG texture as non-opaque only if it actually contains alpha pixels < 255. Previously the mere existence of an alpha channel would result in glTF alpha-blending.
  • We now correctly clamp common constants (e.g. emissiveFactor) to glTF-approved values, since FBX allows them free range.
  • Improvements to the Lambert/Phong -> PBR conversion.
  • When we fail to load a texture, we now replace it with a tiny static transparent PNG, rather than a tiny static transparent GIF. (It's still possible that this is a generally poor idea; perhaps we should go the opposite route and use a very obvious 'broken' symbol texture.)
  • Somehow we weren't looking for an ambient occlusion texture. Fixed.

@zellski zellski released this Feb 20, 2018 · 59 commits to master since this release

Assets 5

After a few months of being mired in other obligations, here is a new pre-release patch 0.9.4 of FBX2glTF. This is mostly a catch-up release for the various fixes that have accumulated:

  • We now support 32-bit indices. By default, they are used for meshes with > 65535 vertices. The user can override this behaviour.
  • @robertlong implemented the new extension KHR_materials_unlit: #61
  • @davilovick found and fixed a problem in the way we transform normals, binormals and tangents: #48
  • @davilovick also came up with a great fix for nodes with duplicate names: #51
  • FBX2glTF will now (once again) compute normals. By default, we only replace spot-replace broken normals, but the user can tweak the conditions.
  • @msfeldstein dragged the camera code into the modern age: #50
  • Removed the broken and ornery code that tried to create fancy PBR textures from old-style Lambert/Phong type assets (but would often just create blank images). There is too much weird magic in those old models -- instead, FBX2glTF will now slam the material's diffuse texture (if it exists) into baseColor, and pick simple constants for metallicFactor and roughnessFactor.
  • Bumped the embedded Draco version we depend on to 1.2.5.

@zellski zellski released this Dec 1, 2017 · 79 commits to master since this release

Assets 5

Pre-release patch 0.9.3 of FBX2glTF brings a bunch of fixes, as well as the first means of importing PBR materials natively.

Main Feature

  • Materials that were exported via the Maya Stingray PBS ShaderFX preset will be picked up as native metallic/roughness by FBX2glTF and should, if all goes well, wiggle through the series of pipes and tubes and emerge unscathed on the glTF side of things.

Fixes and Tweaks

  • Instanced meshes will now be preserved as such, and no longer erroneously duplicated in the output. Many thanks to @davilovick for the fix.
  • The JSON block we generate should now be ordered more sensibly. The previous (unsolicited) alphabetisation of keys has been banished.
  • Blend Shape normals and tangents are now only included on opt-in command line options. It appears that they are often computed by the SDK, from the underlying geometry -- which is likely not at all what the artist wanted. That said, normal-less morph targets can look pretty terrible in their own way. Thus, we leave the choice up to you.
  • We now compute glTF opacity as the inverse of the average of the RGB channels of FBX transparency. This should yield more natural results.
  • We were erroneously marking some materials as transparent, when they should've been opaque.
  • We no longer warn against the (perfectly valid) situation when a material lacks diffuse texture or vertex colour. This does increase the need for more information about materials when running in verbose mode; see #43.

@zellski zellski released this Nov 6, 2017 · 97 commits to master since this release

Assets 5

The second patch release of FBX2glTF continues our march towards the 1.0 feature set, while fixing some bugs that've cropped up.

The next major TODO item after this is Stingray PBS support.

New features and improvements:

  • Support for FBX Blend Shapes, including progressive morphs: #33.
  • For vertex-coloured surfaces, we now splice off all transparent triangles (defined as containing at least one non-opaque vertex) into their own separate glTF level mesh primitive: #32


  • Enabling Draco support no longer results in an immediate program crash.
  • Cope gracefully with polygons that explicitly opt out of any material.
  • Empty animations no longer result in the generation of a spec-violating empty array. Thanks @robertlong!
  • Texture resolution now works properly when converting a .fbx in our current working directory.
  • The --keep-attribute option was inadvertently disabled. It's now back online.
  • The NPM module now reports error feedback correctly.

@zellski zellski released this Oct 24, 2017 · 122 commits to master since this release

Assets 5

The first patch release of FBX2glTF brings a small list of urgent fixes and pleasant improvements:

  • Texture coordinates are now vertically flipped by default, as per #21. In the common case, this is a required translation between the FBX world and spec-compliant glTF.
  • Texture image files are now resolved on the local filesystem with more discipline, and clearer warnings when they can't be found. When generating .gltf rather than .glb, we additionally copy the texture files into the output folder, and reference them appropriately in the model file. See #16 and #23 for details.
  • The Node API has been much improved, as per #10.
  • The main README has been given some love, and should now be a more dependable source of information.

@zellski zellski released this Oct 19, 2017 · 134 commits to master since this release

Assets 5

This is the first public release of FBX2glTF, a previously internal Oculus/Facebook command-line tool for converting FBX models to glTF. Precompiled binaries are provided for Linux, Mac OS X and Windows platforms.

While the tool has been in steady use in internal 3D asset pipelines for many months, those use cases have necessarily lain within a limited range. FBX2glTF has not yet been exposed to the wide variety of FBX variations out there in the wild. For that reason, we're releasing this as version 0.9.0, a beta pre-release, with the intention of finding and fixing any critical issues in the next few months, until we're comfortable calling something 1.0.

We actively encourage feedback! If you don't see the behaviour you expect, and especially if the tool should crash, please file an issue with as much detail as you can.

For easy online viewing of glTF files, you might point a modern browser at this three.js based one or the babylon.js sandbox.