GSoC 2020: Faster IO for OBJ, STL & PLY. Feedback

@xueke_pei I’m not sure what you mean. If you have an example .blend file that doesn’t get correctly exported because of a UTF-8 problem, please file a bug so I can reproduce it and fix it.

Hi guys just pointing out there is also a faster STL importer in the works that is also worth looking at Native STL importer

4 Likes

Not sure if its same Unicode error but:

Unicode in paths cause problems

Summary
  • filename with unicode name in new exporter:

obraz
gives:

nameWithUnicode«¹„‟‹›…±°²³».obj


  • pathname in new exporter:

obraz
gives


it says it cant find file in case you didn’t know polish that windows decided to randomly put there

old one works fine in both cases



edit:
fixed by: ⚙ D13879 Fix new Wavefront OBJ exporter not saving non-English filenames properly on Windows
wow, it was already fixed when i posted it, but i had one day old build

1 Like

@Howard_Trickey
Hi, How could I report a bug privately? I can send this file to the blender bug report page, since it’s under NDA.
Thank you.

You could send it to me at [email protected].

1 Like

The latest version of the exporter seems to not like file name patterns with multiple dots as in “asset.name.obj”, the exporter filename line only accepts the file name as “asset.obj”

OK, will have Aras look into this (he has kindly been taking on all regressions-from-old-behavior bugs).

3 Likes

The option to choose whether to apply modifiers or not has been removed, from the add-on to export in OBJ format, can you restore this option?

2 Likes

OK well, was fixed in the latest release 3.1.2…

1 Like

Hello. I have modified the PLY importer to work with a large number of previously incompatible “flavors”. As this is a mod to an existing Official addon, do I submit it under the Addons submission process or elsewhere? Our Repo is at: https://github.com/TombstoneTumbleweedArt/import-ply-as-verts

Thank you!

2 Likes

You might but @Howard_Trickey or @sybren might have a more precise answer. Also, there is Native STL importer .

Thank you! I will contact them.

I figured maybe this giant thread would need an update on current status of the OBJ exporter/importer, and future plans.

  • New OBJ exporter has been in Blender since 3.1; labeled “experimental” in the menu item. The new exporter is ~10x faster than the old one. The old one is still available.

    • Since Blender 3.2, the new exporter is another ~10x faster, meaning it’s ~100x faster than the old exporter.
    • Currently there are three known issues (bugs/regressions) about the new exporter: incorrect vertex groups export (T96824), issues exporting Poly curves (T97095) and missing Path Mode setting (T96399). I’m fixing them as we speak.
  • New OBJ importer has been in Blender 3.2 alpha since 2022 April (commit), generally between 5x and “many many times” faster than the old one.

    • Additional speedup of the new importer is in progress (D14586).
    • The new importer likely also has some bugs or regressions, any & all bug reports are welcome! Both the new one (“experimental”) and the old one will keep on being available for quite a while.

After both the new exporter & importer are solid & good, I think it would make sense to do some OBJ feature improvements. Largest ones that come to mind: 1) support for vertex colors, and 2) improved support for PBR materials (clearcoat maps, anisotropy etc.).

23 Likes

now-thats-what-im-talking-about-wiggle

Also I hope you guys go for the widely accepted obj with vertex colors support format (like the one from zbrush). All major dccs can read it. :v:

Which one is the more widely accepted? (I know of two vertex color formats: “xyzrgb” where vertex colors are 3 extra numbers after vertex position and “MRGB” where vertex colors are a long string of hexadecimal characters)

MRGB seems to be the one.

1 Like

@aras_p
I’m planning on sending the first of two PLY patches this afternoon via the Diff upload page. I had a couple of questions:

Should I tag you in it at that time or later?
Do you also want the new .py file and/or link to git where it’s stored?

The first patch fixes compatibility and is one file. The second adds vert/color import and requires adding a function to init.py as well. For the second part, I assume a .diff is needed for each file?

Thank you!

A single diff/patch can totally change multiple files. What I typically do is either export a single git commit as a patch and then submit that, or create a diff of two git branches (git diff master..my-branch-name) and submit that.

Thank you @aras_p, I’m still new to this process! Ok, I’ll just send the one diff, there’s not that much that’s been added.

Hi @aras_p
The OBJ importer in Blender 3.1.2 currently generates duplicate materials for each import:
afbeelding

I would love to see an option to use existing scene materials if they share the same name. That way, it is not necessary to reassing materials for imported objects.

Also, I have just been testing exporting files from Revit and they come accross as heavily teselated. Is it possible to merge coplanar faces on import (to create quads and Ngons) and/ or to process the entire mesh with tris to quads?

E: Just came across a C++ Blender OBJ exporter on Github, may be worth taking a look at?

4 Likes