GSoC 2019: Fast Import and Export

Is there any hope that the project will be continued by the developers?

1 Like

good question. USD export is coming very soon but I don’t know if it’s FAST

The USD exporter is written in C++, so it’s likely going to be faster than the current Python-based OBJ exporter. On the other hand, the USD exporter builds a new dependency graph for the scene, so for exporting a single object at a single frame, it could be faster to write to OBJ. All depends on the specifics of the scene and the object in quesion, I guess.

5 Likes

Why don’t you / Do you plan to base Blender core on USD entirely ?

Houdini is doing so, and it promises real-time rendering and next-level performances.

What is BF opinion about this ?

Why don’t you / Do you plan to base Blender core on USD entirely ?

I don’t speak for the BF, but I did do some investigation and discussed with @brecht and @mont29. USD and Blender have intrinsically different approaches to data; USD is strictly hierarchical, whereas Blender uses a flat data structure (for example, you can access all materials in a flat list bpy.data.materials). Because of such differences, altering Blender to support USD as first-class data file structure would be years of work (rough guesstimate: approximately 10 years).

Houdini is doing so, and it promises real-time rendering and next-level performances.

USD is no magical bullet that all of a sudden will make Cycles 10x faster. Spending more time on Cycles is what would make it faster. Personally I think it’s better to focus on improving Blender’s performance regardless of what file format is used to store the data.

16 Likes

Totally agree with this

blender is not competeing with 3dsmax or any other DCC

Blender isn’t competing in a financial sense, but it’s better for everyone when there’s FLOSS that can do the work they do. So in this sense, free software is competing with proprietary software, and the stakes aren’t financial gains but user freedom. So while it’s totally OK for the proprietary apps to exist alongside Blender, it’s important to make Blender every bit as good/capable as any of them. Then the end user has the choice to work in their field without losing their freedom.
That’s my opinion, don’t know how closely it aligns with the BF.
But you’re right, competition isn’t the best way to look at it. Fast I/O is import to Blender in a pipeline, because it’s an operation most professional users will need to do quite frequently.

1 Like

From the developers point of view? Perhaps not. But from the point of view for a potential user evaluating software for the next project it sure is.

Autodesk is getting a lot of help from Pixar,Animal Logic & Blue Sky to get a complete intergration of USD in Maya & probably Max in the future…While i hoped that kind of support should go to Blender, but reality is different as their pipelines are centered around those Softwares.
Imho Blender should at least have it in the most best possible way to remain current to the latest workflows & not too far behind.
Hopefully one day will get that kind of support from Studios.

1 Like

Let’s stop this discussion about what is and is not competition. This thread is about the GSoC Fast Import & Export topic, let’s keep it that way.

3 Likes

As someone who makes money importing large volumes of cad data per month and contributes regularly to the Blender Foundation, I wholeheartedly disagree with this statement. In a way, I’m losing money importing data because it takes so incredibly long to import a file using Blender’s python based file translation.
OBJ into 3ds Max: 15 seconds.
OBJ into Blender: 6 minutes.

4 Likes

It seems someone made a c++ obj importer for Blender and is planning on putting it on github once stable.

For me it either errored out or crashed Blender but it seems some people have more luck with it.

Since Blender is only covering parts of my pipeline I’m heavily relying on importing/exporting as well, for now I try to use alembic as much as possible. It’s way faster (5-10 seconds instead of 200 seconds for a 12 million tri mesh) than obj/fbx and, even 3-6 times faster than alembic maya (depending on using 2.80 which is faster or the latest 2.82 alpha) - I know it’s drifting off topic a bit, just wanted to put it out there for people struggling with obj’s as an alternative depending on the packages they’re using.

2 Likes

To me that sounds not entirely true. Please make a difference between “I could make more money if the process was faster” (i.e. you have an in-flow of money) or “I’m losing money” (i.e. you have an out-flow of money). How can you loose money when you’re using free software for commercial work?

It’s a binary format with a well-written C++ library for reading/writing the files, so it’s bound to be faster. I still have to make a comparison between Alembic and USD, but they should be at least similar in speed.

3 Likes

The software price is not the only cost - it doesn’t matter if you run a company or just freelancing.
I would even say that the software price is the smallest part of the overall cost if you are running a company, employing people.
So yes, more time needed to finish the project then anticipated = losing money.

1 Like

Oh I agree there. To me personally that still looks like more of an issue on the “than anticipated” side of the equation, though. It’s been this speed for a long time. Building a business on the assumption that it’s faster than it actually is seems like bad planning to me.

Anyway, we’re veering beyond the scope of this GSoC project. Yes, I too would love to see these importers improved, I think nobody objects to that. It’s just a matter of finding time. If anyone wants to pick up the work, please help out.

5 Likes

I was not meaning to sound alarmist. I was simply trying to project the importance of speed on the import and export process. I don’t know anyone who deals with 3d data and only uses one piece of software, whether they are making films or games in a large pipeline or are independent artists doing product renders.

I would love to take on the task of modifying the importers but whenever I try to dig into Blender coding, I get caught up in another paying project and I have a family to feed. My company was going to pay an outside firm to write importers but they wanted to bring in their legacy code which would add 200 MB to Blender, and they wanted to make it as an external .dll with a python wrapper, so not cross platform. My point is that I’m not opposed to helping raise funds to bring a faster importer, but I’m not sure where to find coders that I could be sure that the end result will be acceptable by the Blender Foundation because I don’t want this only for me but also for all people who look to use Blender for serious 3D work. I also don’t want to have to deal with creating my own builds to have this capability.

3 Likes

Time = money. Wasted time = wasted money. Wasted money = lost money. The cost of the software has nothing to do with that, it’s just identifying a place where improvements ought to be made to save everyone both time and money. Of course there are priorities so we can’t expect every improvement to be a top priority, but this certainly is an important one.

That’s a bit reductive. As a business you have to consider “price of action” x “actions to perform” + “initial cost”. The software cost is part of the initial cost. The speed at which that software can perform the required action is part of the price of that action. If you decide to base the financial health of a company on a certain software package, you’d better make sure that the software is up to the task.

Assuming the financial planning of the company is healthy and it survives for the forseeable future, there is no “lost money”, just “hypothetical profits”. Investing €1000 and seeing €800 in return on that investment is actually lost money. Having a €1000 revenue when it could have been a hypothetical €1200 if the software was faster than it actually is, that’s a nice fantasy.

Again, I totally see the benefit of having a faster workflow, faster turnaround on projects, better efficiency, etc. Nobody is denying that.

It’s awesome that your company was willing to do that. Maybe https://www.blendernetwork.org/ is a better place to recruit developers? If it’s 200 MB of external DLL with legacy code, I’m also doubting that they were going to produce GPL-compatible code… But that’s just my gut feeling. And yes, I know the struggle of finding good developers!

2 Likes

If I quote a job a $8000 not knowing the complexity of the models that I will be importing…mainly because I work with architects and engineers who don’t think about poly counts or applying materials in the cad program to save time later for rendering…then that conversion process takes two days instead of half a day, I’ve lost money. Say this was supposed to take me 10 days, I’ve now LOST $1200.

It’s not as simple as saying “ok 3ds Max has fast import and export, so as long as this loss happens twice in one year I can justify the cost of 3ds Max.” Import export isn’t the only consideration. If I can model, clean up cad data and render in Blender faster, I would either take a loss on the remaining 9.5 days of this theoretical job, or have to charge more for my work meaning I would probably get less work.