How to paint Rhinoceros FBX from Rino3D to Substance Painter workflow

The process for a good rendering or game object is long. Rhino is one of the best tools for creating hard-surface. Is possible to paint the final product in Substance Painter, but Rhino is still not a good friend tool for the final unwrapping triangle polysurface model (unwrapping). Also converting into mesh quads or triangles is a bit overcomplicated full of unexpected results as for example, not align triangles, holes, etc.

Still, Rhino can be a very 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 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 for each material and joint them where is possible using: ! _Join
  • Now start making unwrapping for a preliminary texture UV projection mapping for each joining 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. Or other UV professional tool; Rizone, Unfold 3d. etc…
  • 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 in Blender 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!

You can use the Blender 2.80 importer I created to go directly from a Rhino 3dm file to Blender

2 Likes

FROM SURFACE TO MESH DEVELOPMENT WORKFLOW FOR RENDERING

  • 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 different technique for portions of the same polysurface, then extract individual polysurface for each unwrapping:
    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. But much better is to create a custom tool in Grasshopper for converting into 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 center. Then “join” the meshes.
  • Make the final unwrapping. Move, scale and pack the mapping island UV. 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.
  • Bake the Ambien occlusion in Blender since Substance Painter AO is not excellent.
  • 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 FBX.
  • Import to your render editor the FBX (example Unity) and later,
  • Open from your editor the FBX using the real time extension for Substance Painter. It will import the FBX 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 relatime and get the final textures.
  • When the model and textures are finish, put them into your personal Library folder as a final object.
1 Like

update JUL 2019

FROM SURFACE TO MESH DEVELOPMENT WORKFLOW FOR RENDERING

  • 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: 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 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.

update JUL 2019

FROM SURFACE TO MESH DEVELOPMENT WORKFLOW FOR RENDERING

  • 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 surfaces and 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: https://www.youtube.com/watch?v=75cQX-iF8YA . When you can’t make a unique type of unrwrape, you can divide the object in to polysurface for each urwrping technic. But you can not join them later.
    [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 polysurface to mesh in Grasshopper for converting into the mesh and inspect triangles smoothenss in realtime. Then convert to mesh using Grasshopper HummanUI for inspecting better the final result dynamically and accuracy instead of just using the mesh command. Sceenshot. Since the UV mapping info is missing in the mesh using Grasshoper graph, you need to run Rhino mesh command using the info you get in Grasshoper.
  • Control that the new mesh has same uv mapping: There is bug in the UV editor. It does not update properlly. As a solution you can export as FBX and reimport or inspect the FBX UV mapping in Painter.
  • Back in Rhino, 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]. There is bug in Blender exporting in FBX to Painter.
  • 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 Rhion custom vertex normal. Or use other UV professional tool; Rizone Realspace (that conserve vertex normals), 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.(I use Blender).In Painter 2019 you can change the material name there.
  • 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. Substance Painter does not allow you to change the mesh easily and this fixes 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. [video explanation] [Bug report]
  • 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 (Unity, Unreal, etc) the Rhino FBX(/OBJ) using the real-time extension for Substance Painter. It will import the FBX(/OBJ) automatically. ( Import manually the textures AO).
  • In Painter bake the starting AO and other information of the 3D model or import it (I use 4K).
  • 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, remember to put them into your personal Library folder as a final object or a shortcut link to your project.