SubD objects with sharp edges (aka. weighted creases), and SubDs with 2,000 to 128,000 faces now have smoother display meshes.
What
We are trying to make SubD display smoother and easier to use in smooth SubD display mode. The most important change is:
SubD objects with sharp edges (aka. weighted creases), and SubDs with 2,000 to 128,000 faces now have display meshes that are 1 level of subdivision denser than they used to be.
This work is being tracked in “RH-86272 SubD meshing parameters: defaults are too coarse. Big and small SubDs don’t look smooth enough in Display and Analysis modes”.
This also impacts meshes obtained from a SubD with adaptive display density: analysis meshes in commands like _CurvatureAnalysis
, render meshes, mesh objects exported from the _Mesh
command.
This does not impact flat SubD display mode aka. box mode.
SubD display meshing rules as they are in Rhino 8. The WIP builds now use a table like this:
Display density | Mesh faces per SubD quad | Max SubD Faces, SubD without sharp edges | Max SubD Faces, SubD with sharp edges |
---|---|---|---|
0 | 1x1 | N/A | N/A |
1 | 2x2 | ∞ | ∞ |
2 | 4x4 | 128000 | 128000 |
3 | 8x8 | 32000 | 32000 |
4 | 16x16 | 8000 | 8000 |
5 | 32x32 | 2000 | 0 |
6 | 64x64 | 0 | 0 |
For example, a SubD with 500 faces and some sharp edges used to display with a mesh obtained at subdivision level 4: 16x16 mesh faces on each SubD quad, for a total of approximately 128k faces in the display mesh. It will now display with a level 5 mesh, 32x32 mesh faces on each SubD quad, for a total of about 512k mesh faces.
Another example, a SubD with 5,000 faces (with or without sharp edges) used to display at level 3, with approximately 320k mesh faces; it now displays at level 4, with approximately 1.28M mesh faces.
Why
We had received complaints that SubD display was not very smooth for SubD with sharp edges and high edge angles on these edges. The faces of their display meshes could get quite far from the curves used to display their edges. Similarly, on very big SubDs the same phenomenon was easy to reproduce on the boundary, around corner vertices and pointy features.
This should make these SubDs easier to edit directly in smooth SubD display mode, which will now more accurately reflect the shape of the limit surface as it is being changed. The flat SubD display mode remains unchanged.
How
Display
For display meshes, there is nothing to do: the changes are automatically applied when a file is opened in a recent WIP version. Since there are no options to change the density of SubD display meshes in Rhino, you cannot modify the new behavior to restore the old behavior.
This can make display of SubDs in smooth SubD display mode slower, especially in files that have many SubDs that are close to the 8k, 32k, and 128k faces limits. If this does not work for your usecase, we would like to know. Which way do you need to adjust the speed vs. precision slider?
Analysis and rendering
For other meshes:
- analysis meshes (like in the
_CurvatureAnalysis
command), - render meshes (using the options in the document properties’ Mesh page,
- and the per object custom render mesh options), and for meshes exported using the
_Mesh
command,
the simple settings use the adaptive rules with a customizable density upper limit (like in Rhino 8), starting from the base table of Rhino 9 shown above. These meshes now have, in the detailed options, access to absolute SubD meshing rules. In this mode, the mesh is created exactly at the subdivision level requested by the user.
We are also strongly considering removing the option to change the analysis mesh for SubDs at all. This would make analysis meshes of SubDs be exactly the same as display meshes in Rhino 9, simplifying big pieces of code and speeding up the creation of most SubD analysis meshes. Do you often use the meshing options for SubDs in analysis modes? How do you change then and why?