le717 / LDR-Importer

Import LDraw .dat and .ldr models into Blender 3D
GNU General Public License v2.0
61 stars 19 forks source link

What's next for this project? #94

Open rioforce opened 9 years ago

rioforce commented 9 years ago

This really isn't an issue, more of a discussion, but I didn't have a better place to put it, so I am going to drop it here.My question is, what's next for this project? Obviously, we need to get the importer to be more efficient, but how are we going to do that? Will we re-write it? We tried that, it didn't work very well. Other people have re-written it, but there are major feature implementation needs and a lot of import errors. Are we just going to improve on this existing script?

There have been many feature requests, but due to the lack of understanding of how this importer really works, it has been extremely hard to implement the requests. So before we can even implement any new features we need to choose the direction to go with this project.

So that is why I ask, what's next for the project?

JoshTheDerf commented 9 years ago

From my point of view, what probably needs to happen is a full rewrite from scratch at this point, well commented and explained. More advanced features can be added later.

Also we need more developers with free time. :stuck_out_tongue:

le717 commented 9 years ago

Also, we need more developers with free time.

More like we developers need more free time, though a new (suitable) dev would be nice... :P

I will comment with my plans later, on mobile right now. ;)

JoshTheDerf commented 9 years ago

More like we developers need more free time, though a new (suitable) dev would be nice... :P

Haha, indeed.

BertVanRaemdonck commented 9 years ago

Hi, I've been using this importer for a bit now, and have looked into the code.

If I understand the code directly, right now each and every brick and primitive is constructed for every instance of it, leading to a lot of double opening of files, resulting in long wait times for the importer. This might be improved by using a dictionary with a certain brick as key and all of the orientation matrices in a list as value. Once this dictionary is made, each occuring type of part can be parsed only once and then duplicated/linked several times, resulting in much less opening files. This could be done on a deeper level with the primitives as well, but then the program would have to store a lot of data and might run into memory issues. Also, for a few common primitives, like the cilinder and the circle, it might be better to directly add such a mesh in Blender instead of looking into those files and constructing all the quads/tris. I htink those changes might reduce the time to import a model drastically.

There are also some other issues regarding the extra features, but I think it's better to discuss those in a separate issue.

But already a lot of thanks to you guys for making it possible to do LEGO renders in Blender! You don't know how much I appreciate your work. I'm looking forward to collaborate with you guys.

le717 commented 9 years ago

This might be improved by using a dictionary with a certain brick as key and all of the orientation matrices in a list as value. Once this dictionary is made, each occuring type of part can be parsed only once and then duplicated/linked several times, resulting in much less opening files.

I've been wanting to do this exact thing for a long time, but the script is written in such a way that it's very hard/near-impossible to do.

Also, for a few common primitives, like the cilinder and the circle, it might be better to directly add such a mesh in Blender instead of looking into those files and constructing all the quads/tris.

This was suggested in #44, but it is low priority. You are welcome to submit the feature yourself. :)

I'm looking forward to collaborate with you guys.

Always nice to have help. :) If you don't know where to start, I have a number of incomplete branches you can pull and help me figure out. :) Ignore anything with "-ng" in the name. I'd say #82 is the most pressing issue right now. It needs testing on Mac OS X and Linux before anything can continue.

Just to add some input, I am starting working with @Tribex on getting some code of his in a good place for use here, so hopefully we can begin to use it very soon while bugfixing the current script.

TobyLobster commented 8 years ago

Hi folks, I've just written a new importer that may be of interest. It solves a lot of the problems encountered here, and adds a lot more features and enhancements.

https://github.com/TobyLobster/ImportLDraw

It was inspired by and started life based on this importer, but turned into a complete rewrite. Enjoy.

JoshTheDerf commented 8 years ago

Oooh, looks interesting @TobyLobster!

TobyLobster commented 8 years ago

Thanks @Tribex