Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Pros and Cons of different 3D model formats. FBX, DAE, ect.

Discussion in 'External Tools' started by Thedudely, Jul 28, 2015.

?

Which file type(s) do you use for most, if not all of your models and why?

  1. FBX

    72.8%
  2. OBJ

    16.7%
  3. DAE

    11.7%
  4. BLEND

    12.2%
  5. Other. (Please elaborate in comments.)

    3.3%
Multiple votes are allowed.
  1. Thedudely

    Thedudely

    Joined:
    May 11, 2013
    Posts:
    2
    So I've seen one or two threads on which file type people should use and most people have said to use FBX. Well I did some testing on a simple model from Google Sketch Up which revealed that out of all the file type I tested (OBJ, DAE, and FBX) that FBX had the biggest file size followed by DAE and then OBJ with the smallest file size. I then converted all these files into FBX using auto desk FBX converter 2013 (because someone told me that Unity just converts non-FBX files into FBX anyway.) Now the results showed that the OBJ file that was converted to FBX was still smaller than the other formats converted to FBX (how ever the standard OBJ file was still the smallest.) Note that this was a small, texture-less, simple model exported from Sketch Up. I also noticed that FBX had scaling issues when imported into Unity. All of them. Even the ones that were other file types then converted to FBX. However, when I took the OBJ file and converted it to FBX via Blender it worker flawlessly, unlike the OBJ to FBX via FBX converter. This all got very confusing but I walked away thinking there must be some reason everyone recommends FBX. (Unless everyone uses FBX because everyone's been told to use FBX...) So anyway, why does everyone use FBX and what are it's advantages? I know OBJ must have some disadvantages, but so far it's worked the best for me. What are the pros and cons of any relevant file types for that matter? What do any of them do differently? TLDR: What distinguishes the different file types? What makes some better for some things and some better for others? Is one just better than all of them in every way, if so then why?

    Actual TLDR: What do different 3D model formats do differently? What are there pros and cons of each one?
     

    Attached Files:

  2. AaronC

    AaronC

    Joined:
    Mar 6, 2006
    Posts:
    3,544
    I use FBX because its so universal. Fbx can be a clunky experience between different versions of its SDK though. Obj doesn't support animation which is likely why you are seeing smaller file sizes. Its fine for static models although if you need a second UV set you will want FBX. Can't speak for .collada sorry. Never used it.
     
    Thedudely likes this.
  3. Teo

    Teo

    Joined:
    Oct 31, 2009
    Posts:
    564
    OBJ can't store any kind of animation or anything defined.

    FBX is an exchange format for Autodesk apps, while DAE is for a true general usage. For both FBX,DAE, almost nobody respect full specification, either exporter, either imported. And we all know results.
     
    Thedudely likes this.
  4. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    844
    FBX and Collada DAE are both full scene formats, there's no point in comparing them with obj.

    I avoid anything that only exports DAE, it's buggy and unpredictable. Sony started it, then abandoned it to open source caretakers, who then made "bits" of it commercial IIRC. Some people have issues with FBX, but when it's supported correctly it's extremely reliable. I'm not saying don't use DAE, I'm just saying I've developed a habit of avoiding it through bad experiences. I simply trust FBX more, and some of that comes from integrating both SDKs into proprietary software engines.

    That doesn't mean don't use obj, but don't always put FBX (or DAE) over it. It's still useful and simpler to transport, but it has additional limitations such as no vertex color support in the standard definition (there's an enhanced definition, but fragmentation).

    Re: File sizes, don't read "smaller is better". FBX and Collada in ascii are both xml formats. The larger file may be saving more information, or just using longer labels. Obj only stores geometry information and is natively a binary format. None of which matters inside Unity anyway, because all the data you use is imported to Unity's native format.

    But there is no silver bullet, as @Teo points out, everyone supports file formats to varying levels of competence, and both FBX and DAE are extremely complex formats. The "professional" level of the software doesn't always mean one thing or another either (Modo has very inconsistent FBX support for instance because of the way it's scene data is represented internally)... use what is best supported by the software you're using, both in Export at one end and Import at the other.
     
    Last edited: Jul 28, 2015
    OllyNicholson and Thedudely like this.
  5. hammer

    hammer

    Joined:
    Jul 11, 2012
    Posts:
    62
    There is no SDK for reading/writing DAE files. That's why there are so many buggy interpretations of it.

    FBX has a SDK, so everybody reads and writes FBX files the same way. But, it's not open-source like DAE.
     
  6. Teo

    Teo

    Joined:
    Oct 31, 2009
    Posts:
    564
    DAE is just an XML file. Is not hard to read/write, if you fallow the Collada specifications, is relative easy to use it.

    But, FBX is other story, indeed comes with SDK, the problem is that FBX wasn't designer for a true exchange format, was designed for exchange between Autodesk apps, and contains a lot of Autodesk specific data. That's some times really difficult to extract what you need from it.
     
  7. hammer

    hammer

    Joined:
    Jul 11, 2012
    Posts:
    62
    I disagree. FBX has history, it wasn't "designed" for Autodesk products.
    https://en.wikipedia.org/wiki/FBX

    It has several bits of technology in it. Filmbox, Motionbuilder, 3dsmax, Maya, etc...

    The most important fact is that it has a SDK. A single SDK that everybody uses. There are no wrong interpretations of the format. Consistency makes life a whole lot easier. These are things the DAE implementors did not understand.

    The only negative I see is that it's closed source.
     
    Last edited: Aug 14, 2015
    tachyon-particle likes this.
  8. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,514
    Short version : Use Fbx with Autodesk DCM.

    Fbx : Use this for skinned meshes - static meshes with vertex colors. Best DCM are pricey and come from Autodesk, other DCM may or may not work.

    Obj: Use this for transfer static meshes between programs for retopo / normal baking. Every DCM supports it. Does not support skinned meshes or vertex colors.

    DAE : Do not bother, it is a waste of time and money.

    File sizes become irrelevant for the final build, since the models regardless their format are converted into unity's internal mesh representation.

    @Pix10
    Obj is not a binary format, it is ASCII, you can open it with notepad and play if you like. It is so small because it contains the "bare minimum".
     
  9. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    844
    @Ippokratis My bad, you're right. There is/was the .MOD binary flavour, but it's a closed format...not much use for it I guess.
     
  10. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    844
    There are/were at least one or two Collada based interfaces (from memory, the FBX SDK isn't much more than a bunch of interfaces). We used FCollada from Feeling Software back in the day. It was poorly documented though, and they soon started to make it commercial - which sort of defeats the point if you're looking for an open source format. Not sure if they're still developing it. It had some interesting stuff such as support for particle systems (if you were willing to pay extra), but no idea if the premium side was worth the effort. We went FBX after a single project using DAE.
     
  11. jRocket

    jRocket

    Joined:
    Jul 12, 2012
    Posts:
    482
    I'm not sure of the technical details, but I'm pretty sure that vertex colors work with .objs, at least in Autodesk software and Zbrush. . That's now Zbrush users export their polypaints.
     
  12. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,514
    There might be custom obj definitions that those two programs share, but the standard definition, what every program is guaranteed to use is this one:

    https://en.wikipedia.org/wiki/Wavefront_.obj_file

    From this, unity uses ( last time checked in 4.x ) geometry, uv, normals, materials. So, if you e.g use vertex colors to store ambient occlusion in Wings and save the file as obj you will get no vertex color information.

    If something changed since last time I checked them out, let me know.
     
  13. hammer

    hammer

    Joined:
    Jul 11, 2012
    Posts:
    62
    Yes, ZBrush exports vertex colors, but this is written in a custom format that only Zbrush understands. They hijacked the .obj format for their own purposes. Other apps will simply ignore it, since it's written like a comment.
     
  14. Korok

    Korok

    Joined:
    Dec 19, 2011
    Posts:
    179
    sometimes I lost my skinning info using DAE, you can't have animations with OBJ so I think fbx is the best
     
  15. mkgame

    mkgame

    Joined:
    Feb 24, 2014
    Posts:
    583
    OBJ has no animation as mentioned, but stable, can be read correctly by any 3D tools.
    FBX is a closed format, free tools like Blender must hack it way through. Sometimes it works, sometimes not. I guess it belongs Autodesk.
    DAE (Collada) is a free format. Should be the standard format, but somehow Autodesk is not interested, why? ;)
    Blend: Makes no sense in Unity, Unity converts it to FBX in the background anyway. Use FBX or DAE instead, they can be understand by another tools like Substance Painter. But always keep your .blend file.

    So, FBX/OBJ, due to the not well supported DAE format. Even with Blender FBX/OBJ.

    Hint: DAE is not unstable, the tools are.
     
    Last edited: Jun 27, 2017
    Siccity and fabioj like this.