How to paint Rhinoceros FBX from Rino3D to Substance Painter workflow

update JUL 2019


  • Have fun making the 3D model in Rhino as usual.
  • When is finish inspect that there are 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 (the material).
  • In each sublayer, assign a material and give it a name.
  • Select the surface anc convert them to polysurface for each material. Joint them where is possible using: ! _Join
  • Now start making unwrapping for a preliminary texture UV projection mapping for each joining surface. If is not possible to use one unwrapping technic and you need a different technique for portions of the same polysurface, then extract individual polysurface for each unwrapping:
    You can follow this tutorial:
    [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 better control.
  • Convert the surface into triangles excellent tool: ! _Mesh. But much better is to create a custom tool in Grasshopper for converting into the mesh and inspect triangles.
  • 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. First, pick the UV mapping and put them out from the centre. Then “join” the meshes (for game developers this will reduce the number of draw calls).
  • Move, scale and pack the mapping island UV. Do not make the UV unwrapping in Blender because you can lose the vertex normal. Or use other UV professional tool; Rizone, Unfold 3d. etc…(Add bones, separate the moving parts, animation, etc…)
  • [Just in case] I do not remember well if you need to add here the materials.
  • Check and change the correct naming in the mesh and materials.
  • Bake the Ambien occlusion in Blender if necessary since Substance Painter AO is not excellent.
  • Or make the AO mesh with different material to bake it later in Painter
  • Check the normal map and texture works well. And export the textures (example AO).
  • Add one extra empty mesh (this helps Painter) just in case if you want to improve later or change the meshes. Painter does not allow you to change the mesh easily and this fix the problem.
  • Export the final mesh model from Blender as OBJ. DO NOT USE FBX because has a bug and vertex normals are not preserved correctly.
  • Import the OBJ to Rhino and convert it into FBX or use directly the OBJ into Painter, Unity.
  • Import to your render editor the OBJ (example Unity) and later,
  • Open from your editor the OBJ using the real-time extension for Substance Painter. It will import the OBJ automatically. ( Import manually the textures AO).
  • In Painter bake the starting AO and other information of the 3D model.
  • Have fun painting
  • Use the dynamic exporter to visualise the final result in real time and get the final textures.
  • When the model and textures are finished, put them into your personal Library folder as a final object.