NitroxNova / humanizer

convert MakeHuman to Godot4
The Unlicense
149 stars 15 forks source link

Thoughts on C++ implementation #22

Closed samkoesnadi closed 4 months ago

samkoesnadi commented 4 months ago

Humanizer runs wonderfully well on my machine. Thanks for the work!

A question from my end, have you ever thought on eventually converting the library to perhaps GDExtension C++ to make it faster? Does it worth the effort you think?

Thanks before :)

NitroxNova commented 4 months ago

glad to hear its working for you! someone in my comments, purplepixeleater i think, had mentioned they were working on converting it, but idk how thats going, i dont know c++ so i probably wont be doing it myself.. most of the hang time is from generating normals/tangents and baking/recompressing the textures which im already their builtin functions for, so i dont know if it can be much faster, but if you have any thoughts on it let me know!

jsbrn commented 4 months ago

I'm not an expert on GDExtensions, but as someone who plans on using this plugin a lot in the future, I don't have any interest in making my tooling any more complicated than it needs to be. If using a C++ plugin in Godot would mean anything more than downloading a different pre-built variant of Godot, I would personally vote against it. Even then, I would prefer to stay within the lines as a relatively new student of the engine.

I might be one of the few people who don't see any problem with using gdscript aside from the quirks in the language itself. I believe non-performant code is only sometimes caused by pushing a language to it's limits. In the large majority of cases it's an architectural or implementation problem (not saying @NitroxNova wrote slow code in this case, just explaining my reasoning).

samkoesnadi commented 4 months ago

That's fair enough. I see some for loops in the code. This is normally where optimization is done by moving the for loops to a lower-level code such as C++. That would be my consideration.

Regardless, moving to C++ is not an easy task, as it requires whole re-writing of the codes and compiling. So, if you say it might not be worth it, I will have that as the best suggestion here.

NitroxNova commented 4 months ago

well, i'll keep this in mind as a future possibility, always appreciate suggestions and feedback! and if anyone is wanting to try to convert i'm happy to answer any questions, but for now i will continue working in gdscript