Preparations in Rhino
- Create your 3D model as usual, ensuring there are no flipped surfaces.
- Organize your PolySurface model into one main Object layer (the surfaces).
- Divide your model into sublayers based on materials.
- Name each sublayer and assign a material to each layer.
- Join surfaces where possible.
- Duplicate the main layer with all polysurfaces. The new one will contain all the meshes.
- In the new layer, convert the surfaces into a mesh. Delete the surfaces. I created a custom button:
! _ExtractRenderMesh
_Delete
_DivideAlongCreases SplitAtTangents=yes SplitAtKinks=Yes enter
Explanation of the issue:
Rendering in Rhino 7 can be slow, particularly for large scenes. Like 15min to start rendering.
With careful attention to your model, you can reduce the rendering start time by an order of magnitude (1 minute to start).
-
UVs are important. By improving UVs and managing textures, you can achieve a lot. There are benefits to making good UVs inside the 0 to 1 space, utilizing RizomUV Real Space (not Virtual Space).
-
Export as FBX directly to Substance Painter: to export, select all the objects, sublayer meshes, and export selected.
I made this custom button:
! -_Export _GeometryOnly=_Yes _SaveTextures=_No _SaveNotes=_No _SaveSmall=_Yes
"X:\..YourPath..\DoNotMove\Rhino-Painter\MeshPainter.fbx"
ExportNurbsObjectsAs=Mesh ExportMaterialsAs=Phong YUp=No ExportFileAs=Version7Binary ExportVertexNormals=_Yes enter enter
-
Open Substance Painter, for Normals select OpenGL and choose this template:
-
This will define the channels. You can add more channels here, like transparency, emissive, etc., or remove them for each material.
-
Bake the ambient occlusion here since Substance Painter’s AO is now excellent.
-
After you finish painting and saving,
-
There is a second template for exporting textures. I prefer using a custom output template:
-
After you’ve created the template, you need to select it in the settings for exporting the texture.
-
For each material, you can select which textures you want to export, as well as their size and format.
------issues
Rendering in Rhino 7, a large scene can take up to 15 minutes to get started. However, you can reduce this time by an order of magnitude if you optimize your model. For instance, consider hiding all the meshes that take a long time and isolating the ones that render quickly. Later, you can invert the hiding process: start with the fast ones and troubleshoot the meshes that take longer to run. Several issues can slow down the rendering start time:
-
Creating good UVs within the 0 to 1 space using RizomUV Real Space can help (I tested Virtual Space, but it did not work with Rhino).
-
Create a “Texture” folder under the main 3D model folder and place all your textures in there. Having the textures located far away, or worse, unlinked, can significantly slow the start-up.
-
To reduce the size of the textures on the disk, use JPG RGB with no alpha 8bit, quality 10 for color albedo. And grayscale for ambient occlusion, opacity, metallic, and roughness. Use PNG for Normal OpenGL 16bit. Stick with small sizes like 512 or 1024. For the main hero object, you can go with 2048 or eventually if the surface is big and close 4096.
-
At times, PBR material can increase your starting time. Try to remove all the nodes and replace them with new ones, or create a fresh new material and copy all the parameters.
-
Some materials may have Color, Roughness, and Metallic nodes but without any texture applied to them. Remove the node and use the sliders instead.
-
Avoid using options in the Texture detail panel to change the texture, like inverting, using alpha, or changing the color ramp level. Instead, create a new texture with changes done in Photoshop or Gimp.
Last Tutorial: Speedy Selection of Layer and Sublayer Objects: Custom Script Example