Replies: 8 comments 7 replies
-
What is your use case for using usd? What is the problem or limitation you are having in your project? Describe how to implement usd for your proposal? It cannot be worked around with a few million lines of c++ code. It will probably be a gdextension in the asset library. |
Beta Was this translation helpful? Give feedback.
-
For future reference https://github.com/fynv/usd2glb appears to be a usd converter using https://github.com/syoyo/tinyusdz |
Beta Was this translation helpful? Give feedback.
-
Hey guys, I've been playing about with USD a bunch recently and have been looking into using Godot for a personal project. USD is a huge project and it's pretty hard to explain what it is and what it's useful, especially for gamedev. One way that I'd describe it is that it's a very powerful file format & API for 3d scenes. It's important I think to differentiate 3d models vs 3d scenes here. USD is at it's best when it's instancing a whole bunch of 3d models around and while you can store 3d models as USD files, you can also use plugins that convert from glTF (see guc) or FBX (see usdFBX) into USD. Having a scene format that's not tied to a specific DCC (Digital Content Creation program, e.g. blender with .blend) or game engine (Godot, Unreal, etc.) means that you can switch back and forth between programs at will and use the best of all worlds. I've been playing around with the aforementioned guc plugin with usdview and have come up with a simple example of what USD can do:
Here's how this scene displays in I think a good first step for USD support would be to allow for this sort of simple glTF + USD scenes. I might see what I can cook up using the USD python bindings, but no guarantees. TL;DR, I have a bunch of DOs and DON'Ts for developers interested in USD:
|
Beta Was this translation helpful? Give feedback.
-
here's an example of a feature that is an absolute workflow nightmare in Godot, i think the asset workflow is probabally our biggest weakness personally gLTF2.0 that i currently use seems to be the best, you can use it automaticly (place blender files in project and set blender as an external app to convert them)... it has reasonable material support thank god for this no instancing! so if you make a building with 20x window instances, as you do it's most logical.... when you import to Godot it becomes 20 meshes... it's a nightmare.... so Godot has no understanding at all these are the same windows also the lights are just garbage, they never match at all, i'm almost resigned to that one the lighting might be impossible to really look the same but it doesn't feel like it even bothers at the moment so USD would be amazing if Blender and Godot could exchange information this way... clearly that Blender/Godot hybrid format is going nowhere, and that would have been Blender exclusive anyway .... that said i know it might not be exactly that simple, but would not even partial support be acceptible? does anyone really expect Godot to fully support Pixars screen description format or wouldn't it be more like we can benefit from this open standard because, finally, everyone agrees on something (NVidia are going all in with the Nucleus platform, i see other 3D packages seeing it as a good survival strategy) so anyway i second this if possible, if it solved these problems |
Beta Was this translation helpful? Give feedback.
-
I have taken https://github.com/V-Sekai/USD-Fileformat-plugins and built a 1.6 gigabyte package for python 3.10 (windows / linux). It can convert some openusd to gltf. I believe blend shapes don't currently convert. |
Beta Was this translation helpful? Give feedback.
-
Just adding my two cents, here. Hope I'm not late to this discussion. USD and gltf are formats that solves very different issues. gltf excels at handling 3d meshes for game development. Is lightweight and fast to process. It has it's limitations when dealing with complex scenes or different kinds of objects, as others pointed out, but that's kind of the point. It's a 3d model format. USD is a scene descriptor. It packages a whole bunch of other information along with what's exported, along with potential custom data that can be tagged along. USD is a very flexible format, whose main use cases steer away from just allowing the artist to have a faithful representation of the scene with its lights and instances and what not, and pave the ground for teams to build complex pipelines with external tools. IMHO the advantage of having USD support comes especially from having both an importer and an exporter. This allows, for instance, technical artists to have the ability to interact with a Godot scene with external tools such as Houdini or blender geometry nodes, populate the scene with other stuff in a way that Godot wasn't made to do (and arguably shouldn't), and bring it back to Godot, without the hassle for you Godot devs to support all of those funky pipelines natively. |
Beta Was this translation helpful? Give feedback.
-
Nice presentation from Remedy |
Beta Was this translation helpful? Give feedback.
-
a better idea is replace tres(object based)/tscn(scene based) with openusd(scene based with object based build blocks) related |
Beta Was this translation helpful? Give feedback.
-
Describe the project you are working on
N/A
Describe the problem or limitation you are having in your project
N/A
Describe the feature / enhancement and how it helps to overcome the problem or limitation
OpenUSD is becoming a universal standard, it makes sense to support it.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
N/A
If this enhancement will not be used often, can it be worked around with a few lines of script?
N/A
Is there a reason why this should be core and not an add-on in the asset library?
For universal out-of-the-box compatibility.
Beta Was this translation helpful? Give feedback.
All reactions