turanszkij / WickedEngine

3D engine with modern graphics
https://wickedengine.net
Other
5.77k stars 606 forks source link

[feature] USD importer #787

Open MicrocosmStudio opened 9 months ago

MicrocosmStudio commented 9 months ago

Hi, First of, thanks for this amazing project.

I know gltf are a very good and very popular in the open source sphere. Usd file format get more and more popular in the professional sphere and the industry seem to push it as the new golden file format. So, my question is in the tittle, do you think it can be a good additon for the WickedEngine ?

Thanks.

turanszkij commented 9 months ago

Yes, supporting a new 3D file format would be a good addition, as long as it's free of ay dependencies and doesn't complicate build and such. I heard that USD is pretty complicated and hard to build, but I don't know if that's really true. Do you think it can be implemented as a light weight thing like GLTF? If USD is complicated and would require dependencies, in that case it can be made as a separate repository as an optional plugin, to not increase complexity of the base engine download.

Also I personally don't think I will be working on adding new file formats, but the community can always do it.

MicrocosmStudio commented 7 months ago

Hi,

Thx for the answer :) Sorry for my delais.

I have a better understanding of usd now, we investigate it at my work. I am in charge of this investigation and yes in fact is not an easy file format. And basically as many game engine you have your internal data definition. So, maybe the use of usd for having just a converter for usd to your data structure in and out (import, export) can be valuable. But for having the full usd data représentation and manipulation live in the engine, this will definitely add a big layer of complexity. Also, yes the usd have tons of dependencies, even if it is made easy to setup with Pixar Openusd, it is at least 20 gig's jus for build it all as shared lib, wich imply the need to distribute all that's dll with the concerned program and so on.

brakhane commented 7 months ago

Also, yes the usd have tons of dependencies, even if it is made easy to setup with Pixar Openusd, it is at least 20 gig's jus for build it all as shared lib, wich imply the need to distribute all that's dll with the concerned program and so on.

Sounds to me like finding a good USD2GLTF tool, and then improving Wicked's GLTF support to be able to import those GLTFs would be a better course of action, then.

MicrocosmStudio commented 7 months ago

Hi, There is value of the usd if there is a value for the product.. My words was just a small sharing of my humble investigation.

And as usual one key point is the data structure and how interpret it. Ideally the less format to format converting the data have to go through the better it is. So, if the engine have his own data representation (which is most likely the case) it can be more straightforward to avoid multiple covertions and convert the usd data to the engine data représentions directly.

All this is obviously subjective and on case to case.