tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
114 stars 17 forks source link

[Suggestion] 3D/OBJ/FBX model export of entities #2338

Open ItsCrusade opened 4 years ago

ItsCrusade commented 4 years ago

I'd like to suggest Starship EVO to have a 3d model exporting feature.

I've spent countless hours rendering player-made ships from Starmade - as Starmade has a 3D Export feature.

I'm not entirely sure of the technical limitations of such a feature, or what it would take to implement it, but I believe it would be a nice thing to have. You could produce high-quality renders of your ships/hovercrafts and any other creations in external programs, 3D Print your ships, import them into wallpaper engine, share them on Sketchfab and embed a 3d model instead of a static image into forums/Discord.

Having such a feature would be a fantastic option in my option, as well as allow the game to be used as a utility - increasing the potential userbase.

Attached are some renders of Starmade creations. Made with Blender, rendered with Cycles.

clean rend 06 render Solaris 4 render Solaris 5

ItsCrusade commented 4 years ago

More details:

I've managed to pull most of a SEVO ship with some DX11 intercepts.

Just the more accurate lighting looks amazing - even without textures.

progress3 progress4 progress5

tsunamayo commented 4 years ago

Yes it looks cool on paper, the problem is that my rendering tech is hugely specific: I have the stretch tech that is working on the GPU, and then the border tech, some block like Hull reading their neighbor information from a voxel structure on the GPU. So I cant really just export an OBJ and expect to get the same textured result as in the game.

ItsCrusade commented 4 years ago

I'm not sure the capabilities of Unity - but is it possible to grab an entity after GPU transform functions are done? Kind of like what I've done through brute force.

tsunamayo commented 4 years ago

yeah now I dont think we can do that natively, and anyway like I told you the problem is not the mesh (that is possible, just time consuming as I would have to duplicate code on the CPU side), that's the textures. You would need a very custom shader in whatever application you are using.

ItsCrusade commented 4 years ago

Yeah that's totally fair! The images of Starmade above are using a shader node tree I built in blender, and I went ahead and created a basic material node for my shuttle in Starship EVO.

Original: Starship_EVO_2020-04-27_18-04-48

Render SEVO

Thanks for the info Tsuna! :)