Rhino to Substance Painter

Does anyone know if it would be possible to use opennurbs to create a bridge to Substance painter? I need to open a .3dm file in Substance to add the texture and keep it in .3dm format so that I have access to all the unroll/flattening comands and maintain the texture UVs. and the big question after looking through all the areas…how would I go about doing this…as right now …I have NO CLUE! :confused:

1 Like

Hi Scott,

I could wrong here. But from what I can tell (via Google searching), Substance Painter can only import meshes. So, I am assuming its a mesh modeler. So here probably isn’t much hope of round-tripping 3dm files and NURBS geometry.

– Dale

Yeh I think you may be right…to bad that when using mesh to nurb the UV info is destroyed…that would save a great deal of headache all-around…also too bad you can-not use any functions to unfold / unroll etc on a mesh!!! Best program there is for those functions and turns out to be useless for my application!

Hi Scott -

it is a long shot, but you can at least try using the input mesh as a custom mapping object on the outuput.


Thanks Pascal…I will have to learn that as I tried it once and ended up with a decent UV but no texture…and got hopelessly lost trying several more times with various settings…but will try again with a very simple mesh and move forward from there…thanks for reminding me of this…I hope I can get something…as my meshes are in no way simple…

Well I have learned several thing while playing with mesh2nurb…I found out that I can use object as custom mapping and apply texture, though if it has several parts and the texture is a single file I found no way as yet to get all the parts and textures alligned, but also when using this method, if you change the original mesh say from quads to triangles and then delete the nurbs mesh, Rhino may crash…and smash/unroll may give you an almost black mesh ( in my case) so I have no idea what the texture may have been like…
Another way I found…was to first bring in the mesh and edit the UV, and assign/load the texture file, then mesh2nurb and you will get a texturized poly mesh…but the texture is usually pixelated and unusable and I have not found away around it. Also anything beyond a simple box with texture will bring Rhino to a virtual standstill for several minutes when mesh2nurb is used and display is still on render setting and switching between view modes will do the same…Neon Render will lock up the system.

Object on the left is the original mesh with UV edited in Rhino, the mesh2nurb on the right, you can see the pixelation as well as the jagged mesh.

Objest on the Right is the original .FBX with a 512x512 texture and nurb on the front…this one will bring Rhino to a standstill using Rhino render viewport …a good 3 minutes to release… still pixelated…it has to be how Rhino assigns the UV to the polymesh that is slowing things down so much…as I have full scenes with these type objects and way more lights and such and they will render in a few seconds. I am still working on it and hoping that a fix for UV from mesh to Nurb is in the works!

Yes, is possible but Rhino is a very bad friend tool for this workflow because is not so simple to control the final unwrapping and triangle polysurface unwrapping.

But still Rhino is a good option and here is a draft copy of my workflow:

  • Have fun making the 3D model in Rhino as usual.
  • When is finish inspect that there is no flipped surfaces.
  • Put the model in one main Object layer.
  • Select the surface by materials and make sublayers for each material. Put the surface you need in each sublayer by material.
  • In each sublayer, assign a material and give it a name.
  • Select the surface for each material and joint them where is possible using: ! _Join
  • Now start making unwrapping for a preliminary texture UV projection mapping for each join surface:
    You can follow this tutorial: https://www.youtube.com/watch?v=75cQX-iF8YA
    [Bug]: If the projection black wireframe pops up and persist, then delete it and press undo.
  • Since same UV projection mapping is overlapping you need to separate the overlapping projections and when you need more control over the final procession, you can use other tools as for example Blender for a better control.
  • Convert the surface into triangles excellent tool: ! _Mesh
  • Inspect that there are no holes open triangle meshes: ! _AlignMeshVertices
  • Convert the quads into triangles: ! _TriangulateMesh
  • Select the triangle polysurface and you need to rotate them having your Y up before exporting.
    I usually do this in Blender. But you need to rotate around X clockwise 90°.
  • Export as OBJ or FBX. [The OBJ is for the Blender step; Final UV mapping. The FBX if you go to substance directly]
  • Open other 3D software as for example the free one Blender for making the final UV mapping manipulation.
  • In there import the OBJ (or FBX if other software)
  • Make the final unwrapping. (Add bones, separate the moving parts, animation, etc…)
  • [Just in case] I do not remember well if you need to add here the materials.
  • Bake the Ambien occlusion here since Substance Painter AO is not excellent. And export the textures.
  • Add one extra empty mesh just in case if you want to improve later or change the meshes.
  • Export as FBX.
  • Open Substance Painter and import the FBX (And the textures AO)
  • Have fun painting

Good Luck!

I’m very interested into a live connection Rhino-Substance. Until then I’m using Blender. There is a new LIVE connection:

And some youtube videos: https://www.youtube.com/channel/UCltFEMs-2P6pte1pLEN0fjQ/videos

You might want to check out InstaLOD We’re looking at using it to optimize our pipeline for Rhino to game engines.

Looking forward to a workflow to connect Substance Painter with Rhino! :boom:


JAJAJAJA I’m waiting this kind of feature since the Rhino 1 beta! at Rhino 3 I understand that Rhino do not improve in that direction. Rhino 7 hope that FBX tools get love but I lose any faith in it. Rhino was never friend to game development so there are not much tools like Alias or Maya for that. What I do is to export the heavy mesh to Blender and fix it there UV rapping, fixing the mesh normals and in some cases retopology before exporting from Blender to Adobe Substance Painter.

Adobe Substance Painter is part of the workflow for rendering and in Rhino is missing developers that push in that “MESH” direction. For example exporting the surface to mesh you can’t preview the mesh and if is low quality settings is not optimise.

Probably Rhino do not want game developers. I hope this attitude change in Rhino7
We need better mesh retopology with good vertex normal editing!
XYZ software is converting surface IGS into mesh.

Umm ? Just make use custom mesh and preview result if u are happy make uv next extract render mesh export selected to painter save texture and apply it thats all.

For the last one weld unweld is usualy enough.

Oh btw. for keeping track of poly this may come in handy - HUDStatistics -> https://www.food4rhino.com/app/framing-helper

Hello - in this case, use the Mesh command, inspect the resulting mesh and then export the mesh directly.


The mesh command does not allow you to visualise the surface smoothness because of the triangular vertex lines that are always there. And up to Rhino V6 there is no way to take them out when you are making the mesh conversion. Is not possible to look to the quality of the mesh in realtime while you are changing the values.

SOLUTION: The best way I can think of is to make a Grasshopper tool with sliders for this:

You can add other add-ons to Grasshopper to control and disable, from the remote control panel the Display>Preview Mesh Edges

But using Grasshopper i was not able to preserve the UV mapping in the converted final mesh.
So I compy the Grasshopper parameters and apply mesh rhino function at the end of the process.

Hm - I use the flat shading to looks at meshes if I care about the actual mesh and not the ‘smoothed’ one:


1 Like

Hi Pascal!
If you what to render the mesh, us it for VR presentation or in a game, vertex normal direction is more important than the flat mesh.

Adobe Substance Painter will include an importer with automatic UV mapping.


Updated workflow: How to paint Rhinoceros FBX from Rino3D to Substance Painter workflow