[REQ] Native OBJ, FBX Import/Export


#1

It seems strange to me that such standard formats in 3D world aren’t fully supported in Sketchup:

  • OBJ - so many assets and 3D software are in this format or compatible with it… Sketchup cannot import or export it, though we can rely in Plugins;
  • FBX - It’s almost standard workflow in so many industries and Sketchup can only export it. I can’t understand why an export and not an import.

#2

The fbx format itself is proprietary, but Autodesk provides both a SDK to read and write and a utility to convert to and from fbx and several formats SketchUp can read. So yes, it is mysterious why there is an export but not an import.


#3

Well I know it’s proprietary and I also know there is a converter… I don’t see why this shouldn’t be simpler though.


#4

SketchUp does have an exporter for Pro and Shop editions, but lacks an OBJ importer.

One reason may be that there are several different formats, at least 2 Wavefront versions (2.11 and 3.0) and no industry adopted specification. (There is some old Wavefront docs floating around.)

As there are several commercial importers available, it seems to me this would be a waste of resources for the core. Ie, people who need it pay for it, those who don’t won’t.

There is also a free importer …


Since there are workarounds, this is likely to be very low priority.


#5

Well, my advice for importing OBJ files is to use blender to convert them to Collada DAE format and then import this format to sketchup.

Tig’s obj importer works, but takes a huge amount of time on hi poly geometry.

I didn’t try the paid plugin importers as I think they are expensive and I still think importers and exporters should be nativelly supported on the pro version.


#6

The Autodesk FBX converter seems to be discontinued but can be found in archives. Both OBJ and FBX (with 3DS) are more or less obsolete but yes, there are a lot of assets still around using them. I confess to not having needed them for years. I use Rhinoceros as an universal opener, it supports the largest collection of 3D formats that I know of, even some I have never heard of.


#7

Well, to be fair it’s free and it’s written in interpretive Ruby which can be slow in loops dealing with text strings. (The OBJ format is a plain text format so all the values in the file need to be first converted to floats, and then since they are all in “world” coordinates, those for groups need to be transformed into local coordinates. So there is a lot of work to do.)

Compiled libraries are always faster which is what the “native” importers are. But there may be some 3rd party compiled libraries out there.

I think this very unfair. Importers and exporters need maintenance, especially for those formats that are still “alive” and undergo revision. And then each and every time the .SKP format and SketchUp itself is revised (each year) every importer and exporter needs to be checked to see if anything is broken.

Forcing ALL buyers to support old, dead, limited formats like OBJ, FBX and 3DS does not make sense.

Ref: https://en.wikipedia.org/wiki/.3ds#Shortcomings

This is one of the reasons why SketchUp dropped support for the .epx (Piranesi) format.

We have seen the supported file converters (exporters mostly) being implemented in the cloud for SketchUp for Web. Going forward this may be a better solution as the server-side converter can be updated or fixed at any time, and later a pay-per-use (over some basic yearly amount) could be implemented to offset maintenance.

Many home users have need for Shop, but no need at all to export to any other format.


#8

I understand your reasoning.

I didn’t say that the OBJ importer plugin’s price was unfair. I said it was expensive for me. It’s a relative issue. I import OBJ seldomly but when I do I waste a lot of time. I’ve found the best way is using blender and converting to collada and then import to sketchup directly. If I worked on Rendering and needed the assets it would probably justify acquiring the plugin.

I also understand that Tig’s importer, being ruby and free, may be limited and therefore slow even if Tig is very talented, he can only do so much as is possible within that framework. However I found it very robust and reliable, as most of Tig’s work is. I didn’t want to make it sound I was criticizing. I was only stating that it is slow for big objects.


#9

That makes an argument against a native OBJ importer.


Oh, … an @TIG himself explains the likely best reason why a native importer is not implemented. (In a nutshell, it is easy for a programmer to create a proper OBJ file from SketchUp data, but difficult to deal with the numerous errors in OBJ files from other sources.)

In TIG’s words from his importer plugin page

Sometimes very complex OBJ shapes don’t receive their textures at all. Some OBJ files have tiny numbers: then faces might not be created: if so, retry with larger ‘units’, you can scale group(s) down afterwards. Some OBJ files have tiny face planar discrepancies: then some faces might get triangulated to compensate: if so, retry with smaller ‘units’ and scale group(s) up afterwards. Some complex files might need a bit of manual healing: they can also have erroneous vertices - so it’s recommended you use ‘Fix Problems’ accessed from the ‘Model Info > Statistics’ dialog - especially if the result takes a long time to process or have divided faces forced to form geometry or if it feels jittery when orbiting around the model etc… Some complex files with excessive smoothing etc might fail to import.


#10

I don’t know why? I have to import it and loose a lot of time when I do. I do it seldomly, but others do it a lot. If I waste a lot of time, I imagine others waste even more?

Well, @TIG did a good work with his as it seldomly fails, it just takes too much time. Blender did a good work with theirs. Thea did a good work too. Substance tools also did. I haven’t had issues importing with those.

So, the way I see it, it would be useful to have a native OBJ importer if it could be faster along with a native FBX importer. For me, obsolete or not, they are widely adopted and so useful.


#11

Actually, @TIG’s importer can be made much faster. I had to import some quite large OBJ’s last week (~250000 faces) and did some changes to the code in order to speed it up. The tweaked importer loaded the geometry in ~20s which is quite reasonable. I’m not sure about the robustness, but it worked well for my files.

Maybe @TIG can incorporate these tweaks into his importer.


#12

Well, my recent model had about 1240000 and took more than a day to import, but the converted collada file took only about a minute. Converting one isn’t that troublesome, if it happens that I need a lot, it’s a bit harder.


#13

1.2M faces distributed over 5 entities collections with 250000 faces each would take around 2-3 minutes in the tweaked importer. However, as always in Sketchup, performance is very non linear, if the 1.2M faces are all in a single group (entities collection) time will skyrocket. It should take a lot less than a day though.


#14

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.