In this video Phil Cook from Simply Rhino takes a look at another new feature in Rhino v7 WIP; QuadRemesh.
This new quad mesh command (QuadRemesh) can create a quad dominant mesh from any input object – Surface, Polysurface, Sub-D or existing Mesh – and provides an extremely efficient way of reverse engineering existing data particularly given that it can convert directly to SubD.
We’ll also look further at SubD workflows, a subject we started looking at in our previous video ‘An Introduction to SubD (SubDivision Surface Modelling) in Rhino v7 WIP’. You can watch that SubD video here.
In this QuadRemesh focused video the functionality and command options of QuadRemesh are shown in detail before Phil moves on to look at a real world example of how reverse engineering complex laser scan data can be radically simplified.
Finally, Phil takes a look at how QuadRemesh can be used to quickly determine the starting topology of a conceptual hand-wash bottle model before moving on to demonstrate more SubD modelling and workflow techniques.
Note: In the video Phil explains the technique that was used before the QuadRemesh tool was developed and he mentions our white paper describing this. Reading this white paper helps explain how QuadRemesh has made something that was very difficult has now become quite easy. Read the white paper on working with scanned meshes here: Creating an editable surface in Rhino3d.
Credit: Shoulder Disarticulation Prosthetic in Video and Images – Izzy McInnes – www.instagram.com/izzy.makes
Rhino Training: If you’re interested in talking to us at Simply Rhino about improving your Rhino skillset or help with a particular project then get in touch. More details on our bespoke and tailored live online training can be found here on the Simply Rhino website.
Watch the Introduction to QuadRemesh in Rhino v7 WIP Video:
An Introduction to QuadRemesh and more on SubD workflows in Rhino v7 WIP – Video Transcript.
We’ve made a transcript of the video for anyone who would like to follow the video by script, you can read that here:
This is Phil from Simply Rhino and in this video, I’d like to introduce another new feature in the work in process (WIP) version of Rhino 7.
(Note: we’re using a work in progress version of the software, and so some features may be further developed by the time the product ships).
Today, I’d like to take a look at QuadRemesh and how this works in conjunction with the SubD (Subdivision Surface Modelling) objects I looked at in the last video.
I’ll start by taking a look at the functionality and command options of QuadRemesh, before moving on to look at a real world example of how reverse engineering laser scan data can be radically simplified. Finally, I’ll take a look at using QuadRemesh to help determine the starting topology of this conceptual model of a handwash dispenser, before moving on to look at some more SubD modelling workflows.
- Subject Overview
In the previous SubD video, I mentioned that in some cases, limiting SubD to a four sided topology can be useful, particularly when SubD is being used as a step in the modelling process and the ultimate aim is to output good quality NURBS surfaces, which of course have a four sided topology. I also looked at using meshes as the starting point for SubD objects.
Now, one of the limitations of the existing mesher in Rhino, is that it outputs a mixture of triangular and quad meshes and because of this, it is not an ideal starting point for moving to SubD. Also, the way in which the original object is built determines the final mesh topology. Let’s take a look at a couple of small examples.
Here, we have a polysurface that has five constituent surfaces. If we look at a mesh created with the standard mesher, you’ll see an uneven topology, a mixture of quad and triangular meshes, and that the mesh is split about the surface edges. Now if we look at the same geometry, but this time measured as a revolved, trimmed surface, then the mesh created using exactly the same settings is very different.
So, what QuadRemesh gives us is a way of creating a quad mesh with control over the topology. The face layout, number of faces and size of faces all have some level of control, making the mesh output much better for the downstream workflow. QuadRemesh also allows us to output SubD directly.
- So what do these new tools in Rhino 7 look like?
Let’s first take a look at some simple examples that I can use to demonstrate the various settings and controls in QuadRemesh.
In this first example, I have a surface that, in plan, measures 100 x 100mm. I’m going to select the surface and run QuadRemesh and first of all, we can set the mesh either by specifying a target edge length or a target quad count. So, I’ll use edges to start off with, set the value to 10, hit preview, and then, so I can better see the mesh in preview, I’m going to hide the input object. As expected here, I get 100 faces, and of course, because all those faces are the same size, I’m not able to resolve the curve detail in the middle of the surface.
Now, if I switch to a quad count setting rather than an edge length setting, I’ll have more controls at my disposal and the first control I have here is adaptive size. This basically adapts the size of the quad faces to suit the curvature of the surface. So, it will push more of the quads into the area of curvature or detail and I’ll have larger quads in the area where there is less curvature. So, this works on a percentage basis, 0 is no adaptation and 100 is fully adaptive. Now, you’ll see with that value set on its highest, that I have large quads here, and more smaller quads here that are pushed into this area. So, now I am able to better resolve this curved form. Now, one of the things that you may see in certain instances, is that, particularly in this instance where we have something that is linear, that maybe the shape is starting to distort slightly in the middle.
Now, what you can also do, is you can run an option called adaptive quad count. What this does is, it pushes more quads into the areas of curvature or detail and will increase the target quad count here. You’ll see it does this quite substantially. So, what I can do in this case to reduce the overall quad count, is to reduce the adaptive size, and you’ll start to see that the quad count comes down, but I still retain the structure or the topology of the mesh that I had previously. When I want to build a mesh, I just hit okay, and now you’ll see the mesh that’s been created for my surface.
- Mesh to SubD to NURBS in a flash!
In this second example, I have a recessed feature with a sharp edge. So, I’m going to go ahead and run QuadRemesh and I’m going to start with the settings that I used in the last example. So, I’ll turn on preview and hide the input objects, and you can see that we don’t have enough meshes to generate the recess shape. So, I’m going to increase the adaptive size, and the next thing that I can do now is, if I want to capture the hard edges of this feature, I can turn on, use surface edges.
Now the smart option will just use edges that contribute to a shape change, and the strict option will use all the edges in the surface. In this example, I’ll get the same result with both, but generally, you’d want to be using the smart option here.
You’ll see now, how I’m starting to pick out these issues. So, what I really need to do now is sort out the topology of the mesh. So, maybe just as a starting point, I would reduce the adaptation and just increase the number of quads. Now, we’re seeing the shape a little better.
Another thing that we can do is that we can instantly convert to SubD and if we want to maintain the sharp edges on the Sub D, I need to make sure that the SubD is crease aware and I also need to use this setting here, detect hard edges.
The original surface of course is symmetrical in both X and Y, and I can create a symmetry axis here and this is about the X and Y of the object itself, and you can see when I do this, that our patch layout is now symmetrical, but also, what you can see is that because I’m using the surface edge option here, is how the topology of the mesh is running around that edge.
I’m just going to increase the quad count here slightly and then let’s export this out.
If we have a look at these two. Looking pretty similar. You’ll notice that in this original here, I have a hard edge around the mitres. Now, I can get that back here in my Sub D, just by using sub-object selection, picking these edges here and then adding a crease to those.
So, now you can see I have a SubD with control topology that closely resembles my target polysurface.
- Getting deeper into the new Mesher for Rhino
In this example, I have a cylindrical feature that’s raised out of a plain surface. Now, if I run QuadRemesh and I preview the result and just for the moment hide the input object, then you’ll see that using similar settings to what we ended up with in the previous example, I can get a good result. You’ll see that the topology here transitions from being circular to being much more rectangular as it gets out towards the edge of my planar surface.
If I wanted the circular topology to persist slightly further, so I could for example put a circular feature into the resulting SubD, then what I can do is I can use guide curves. So, I’ll turn on a layer here that has a curve on this and I’ll select that curve and enter to accept the result and I have some options with the curve influence here. I can have that, having no influence. I can use an approximate influence, or I can create either an edge ring or an edge loop. Now the edge loop would be the obvious answer in this situation, and now you can see that I’ve got an edge loop that is near to my guide curve and now all of the topology inside of that is circular.
Now let’s build the SubD and take a look at putting in that round recess. So, I’ll just move the SubD surface out of the way and here I want to pick a face loop and I’m going to use the gumball to push that down. Couple of quick things that I’ll mention that perhaps I should have mentioned in the last video, that it’s a good idea to have a lighter object set and it’s also a good idea to use smooth dragging so that you don’t inadvertently snap to any other objects. Smooth dragging will give you much more control over moving faces and edges with the gumball.
I’m just going to pull down now here, just to create this and let’s put another one here. So, let’s pick another face loop, and pull that down and push that one upwards maybe.
So, now you can see that because we’ve been able to control the topology of the mesh or the SubD, we can now create a SubD object that we can modify in a particular way.
- Rhino 7 QuadRemesh and SubD for Reverse Engineering a Scanned Mesh
Now, let’s look at a real world application for QuadRemesh and SubD. This is a good example of how the modelling process can be radically simplified by using these new tools. This is a Rhino model of a shoulder disarticulation prosthesis created by Izzy McInnes. Izzy works as a special effects designer in film and TV, but also designs these fully functional prosthetics. I first saw Izzy’s work when she attended one of the Simply Rhino intermediate advanced training classes in London.
Now, at the time of making this video, we’re in the middle of the global pandemic and all our training has been moved online. You can see details of all of our online training at simplyrhino.co.uk or, of course, you can call us for more details.
These prosthetics are for people, mainly young adults, who would like to express their individuality and personality via their prosthetics, rather than use a more modest, standard medical device. The result is both attractive and functional with a tattoo-like decoration on switchable covers and practical features such as the concealed storage compartment and a mobile phone charger.
- It’s a real effort to go from complex 3D Scan to Rhino 3D surface right? Not any longer.
The starting point for a project like this would be a laser scan of in this case, the wearer’s left arm.
Having created and mirrored the scan, the next step would be to create editable surfaces from the mesh that could then be split, offset into solid parts and then detailed. With a traditional approach, this scanned mesh to NURBS conversion would be a time consuming bottle neck. If we look at the scan, it’s incredibly complex and there’s almost 100,000 faces in this example. One existing workflow would be to create multiple regular section curves through the scan, in the desired U and V directions. These would then be rebuilt as smooth degree 3 curves with a known number of control points, before building a number of separate surfaces.
You can see a white paper describing this process on our website, and I’ll leave a link to this in the description below.
This traditional process would be incredibly time consuming, but thankfully, this is now virtually a simple push button conversion. We can use QuadRemesh to take our scan and convert that directly to a SubD surface. So, I’ll pick the mesh and open up QuadRemesh and I’ll start with 2000 quads, 80% adaptive size and an adaptive quad count. I’ll have ‘detect hard edges’ on, convert to SubD, and crease SubD so I can maintain the crease at the top of the shoulder here. I’ll turn on the preview and hide the input objects and what we’ll see when the mesh is generated is that first of all we get a closed SubD, which is composed entirely of quads. If we look at the detail areas around the ends of the fingers and between the fingers, these are all closed off. But perhaps the most important thing is that the topology of the NURBS patches, or indeed the mesh faces if you were just wanting the mesh output, is derived from the principle curvature of the object we are remeshing, and what that means is that our layout of our patches, of our SubD faces are almost ideally where we would want them to create either a good SubD or a good downstream conversion to NURBS.
You can see here that we’ve reduced the number of faces to under 4000 from our 100,000 original faces, and although there are some detail areas around here where we might need to get closer to the mesh, this is a fairly good start.
Now, in reality, probably what we would want to do is create a separate QuadRemesh for the forearm, where we’d want the quad layout on that to be fairly open and then a separate quad mesh for the hand and finger details, where we’ve got a much higher level of detail that we need to resolve and because the parts are going to be split out, there is no problem in creating those separate meshes.
However, before we do that, I’m just going to accept the SubD conversion and move this out the way, and then just compare these two objects with each other. So, what you can see is that we get a really good clean, smooth conversion of our scan and immediately, we have a surface that we can actually work with. So, the importance of this is that we can do something perhaps in one or two minutes that might have taken half a day previously.
Now let’s take a look at a couple of strategies for the forearm part.
First, we could take a copy of the scan and trim out the section we needed. Next we can use QuadRemesh to produce a SubD surface with a limited number of faces. As the scan mesh is now open, I’m going to use the interpolate option to get the SubD closer to the target mesh. This is the time saving part where we can go very quickly from a complex mesh, to a simple editable SubD surface.
Next, we have a choice as to whether to continue working in SubD or convert the SubD to NURBS. For offsetting as a solid, and splitting it to panels or parts, we could use either, but if we wanted to apply the tattoo style decoration with either flow along surface or orient on surface, then NURBS may be the best option, but the simplest solution might not be the most obvious.
Let’s first of all convert the SubD surface to NURBS. This gives a polysurface with a surface patch for every SubD face. If the aim was to use ‘flow along surface’ or ‘orient on surface’ to apply the decoration then we’d really need a surface rather than a polysurface. Both of these commands will only work with a single surface at the time. So, for example, if I go to transform and ‘orient on surface’, and I attempt to orient the decoration on to the polysurface, then it will only let me orient on to one constituent surface of that polysurface. Likewise, if I work directly with the SubD, then I’ll be limited to one of the patches of the SubD that I can orient to.
So, let’s take a look at a couple of ways by which we can create single surfaces. Now, the first method is slightly risky and I wouldn’t suggest this method for any objects that have much in the way of local shape change.
I am going to take the polysurface that was created from the NURBS conversion and I’m going to explode that into its constituent surfaces. Then I’m going to go to surface and surface edit tools and use the merge command. It’s important when you use this command in instances like this that the smooth option here is turned off. What we do is we take a pair of surfaces at a time and merge them together.
Now, as I’ve tried to explain in the introduction, if there is not much in the way of local shape change going on, then we should be able to merge surfaces together into a larger, single surface. The second method is somewhat simpler and we’re going to work directly with the SubD surface. Now, when we created the SubD from the mesh, effectively we reverse engineered the Sub D from the mesh, and we’re now going to reverse engineer a NURBS surface from the SubD, and the way that we’re going to do this is to extract the wire frame from this SubD. So, we’re going to go to curve, curve from objects and extract wireframe. Pick the SubD object and enter. Then we can take that wireframe and because it has a very simple structure, we can use a surface command to build a surface directly from that wireframe. So, I’ll use surface, curve network, select the result here. I’ll probably use a fairly loose tolerance on the edge curves, maybe 0.1 of a millimetre and an even looser tolerance on the interior curves, in an effort to get a very simple surface. Then I’ll accept the result and there is my single surface.
- 3 x Steps from Mesh to Surface, nothing Magic about it.
Now we can go from mesh, single editable Sub D surface, to single editable NURBS surface, in three very quick steps.
So, now I’ve split out the forearm panel by using split at isocurve with the shrink option turned on and now I’m just going to take a quick look at flowing this pattern on to the forearm panel. So, I’ll go to transform, flow along surface, pick the pattern and enter. Then I’ll use the plain option and describe the rectangular plain and click on the target surface. The idea with the plain option is that the rectangular boundary here, represents the boundary of the surface. So, it gives me some control over where the pattern will sit on the surface.
Now let’s take a look at the result and you can see both the surface of the panel and the pattern look acceptable.
Let’s now take a quick look at how to create a solid offset panel using SubD. So, the first step would be to remove the appropriate faces. So, I’m going to use the face loop tool here and select the faces I want to remove and then delete them. Now, note at this stage that the corners will become smooth. This isn’t what I want to achieve but this is fairly easy to sort out once we’ve configured the panel.
So, next I’ll use the offset SubD command to create a solid offset and I’ll flip the direction, because I want to offset inwards and I’ll set the distance to 4mm and again, you’ll see that the edges are smooth, which isn’t what I want in this instance. So, I’ll switch to the flat display mode. Now, there is now an icon for this tool, which toggles between flat and smooth display mode, but you can also use the tab key to toggle between those modes. Now that I’m in the flat mode, I’m going to select the edges. So, I’m using sub-object selection here, holding down shift and control. Once I’ve got all those edges selected, I can add a crease to them, then I can return to the smooth mode and we’ll see the final result.
Now of course, you could start the whole process in flat mode if you found that easier.
- Rhino v7 (WIP) QuadRemesh and SubD for quick conceptual modelling – structural packaging example
For the last example in this video, I’d like to look at some more SubD workflow.
This hand wash dispenser bottle, lends itself well to be modelled in SubD. An example of where you might use this process is in creating a number of conceptual iterations of the bottle that all use the same pump dispenser. So, there would be a need to generate the concepts quickly, but they would also need to be modelled reasonably well so that good quality renderings can be produced from the Rhino data.
- Improving the workflow for Packaging Designers
So, the starting point for this model would be this open polysurface with these curves projected on to the front curved surface. So, I’ll pick the poly surface. I’ll run QuadRemesh and I’ll turn on the preview and hide the input objects. I’ll make sure that my output is SubD and I’ll select the curves that I want to influence the topology. I’ll choose edge loop. Finally I’ll set Y axis symmetry and to improve the edges, I’ll select smart edge. Then I’ll accept the result. Whilst the SubD is highlighted, I’ll move that to a new layer and I’ll copy that on to a third layer. This means that I have a copy of the original SubD and then a second copy that I can now edit. Next, I just want to remove this edge on both sides, so that my topology is similar top to bottom. So, I’ll tap to show the flat display mode and I’ll select this edge and this edge and delete them. Then I’ll tab to go back into smooth mode.
Now, my topology is similar top to bottom at the centre.
Next, I want to create the raised area for the label. So, I’ll first of all make sure that my face selection is selected and first of all, I’ll choose a face loop and I’ll select this area and then I want to use a brush tool to select inside that area.
Once I have this area selected, I can save that selection. This is a new feature in Version 7, and I can go to panels and named selections and I can save this selection as label area. So, this is a really handy way of being able to save any sort of selection in Rhino. With that area selected, I’m just going to push this out very slightly. So, I’m going to turn on the gumball, make sure the gumball is aligned to object with smooth dragging, and just pull this out slightly.
Next up, I’m going to harden the edge of that area by putting in a crease, so, I’ll disable the selection, I’ll use shift and control and double click to pick the boundary of that region and I’ll add the crease.
- Rendering tools are there for all users of Rhino, not matching V-Ray for Rhino or KeyShot but likely good enough for some.
In order to see features like this better, I created a custom display mode called surface evaluation. It’s very easy to create custom display modes in Rhino 7 or indeed Rhino 6. It’s just a case of going to the Rhino options, going to view and display modes, and in this case, I took the shaded mode and made a copy of it. Once you do that, you will see all of the features for the display mode in question and all that I did in this instance was to create a custom material for all of the objects that just had a highly reflective environment and that environment just had the blurry spherical image applied to it.
Before I move on and do more sculpting of the shape, I’m going to look at another feature in Sub D, and that is called reflect, and that allows me to create a symmetry across a centre line of the object. So, what I’m going to do is pick my face selection and I’m going to select all of the faces on the one side of the object and delete them. I’m then going to run the reflect tool and I’m going to pick the Sub D that I want to apply a reflection to. I’m going to choose the C plain Y axis, and I’m going to pick a point on the geometry to keep. The idea of this is that any geometry between the point that I’m picking on now and the Y axis, can change in order to create the symmetry and anything in this case to the left of that is going to be maintained. So, I’ll pick that point and then I’ll enter to accept the result.
Now of course, because my geometry was already mirrored, the result is exactly the same here. But the idea now is that if I pick a face here, and I then turn on my gumball and edit that face, then the symmetrical face will update as well. So, this makes editing a symmetrical object an awful lot easier. So, now I can start to sculpt the SubD by moving faces, edges and point and gradually resolve the shape.
Personally, I find it useful to use the flat display from time to time to help me for example line up rows of points along an edge. As usual, I would save the geometry on to layers as I go, in case I need to return to a previous step. Once I’m happy with the shape, I’ll use reflect again, to create the rear of the form. The result is now a closed SubD. for my visual, I’ll need to create a thickness to the bottle, whilst maintaining a solid volume and I’ll need a separate solid volume for the liquid. I’ll need solid so that the retrace renderer can calculate the correct refractions.
Let’s first take a look at the bottle and I’m going to start by removing these two faces here and remember that I have reflect on, so the faces at the back will also be removed, and I’m now going to use the offset command, to offset this volume, inwards. First of all, I’ll switch to the flat display mode and I’ll then run the offset SubD command. I’ll make sure that I’m offsetting inwards, and I’ll set the distance to 1.2mm.
Once the offset has been created, I can pick the top edge and the bottom edge of the opening and I can add a crease to them. I can then return to smooth mode. To create the liquid, I’ll start with another copy of the closed SubD volume, and I’ll use the offset SubD command, and this time, I’ll offset inwards by a distance of 0.6mm with the solid option turned off. You’ll notice that when I do this, I lose the crease on the label area, and because of the way in which the object is built, i.e. it’s a blow moulding that is only controlled by its outside or A surface, then the idea that we smooth off this feature on the inside, actually creates a lifelike offset.
If we wanted to put the crease back in, of course we can select the edge loop and add the crease to it.
To move on now and to create the top of the liquid, I’ll probably be better off converting the object to NURBS. So, I’ll copy this on to a new layer and I’ll convert the geometry to NURBS. Then I can create the top of the liquid by creating a line and using a solid tool such as wire cut to cut through the top of my volume.
If I want to create the curve meniscus on the edge of the liquid, then I can remove the flat plain which was created by wire cut and I can draw a curve and then I can orient this to the edge of the opening. So, I’ll use transform, orient, perpendicular to curve, and then I’ll pick this edge here. You’ll see that orients and I’ll flip this in Y, to get this the right way around and place this here. Okay, then I can use sweep 1 rail, with the chain edges option turned on and autochain selected, pick the edge as the rail and then pick the cross section curve and enter. Just accept the default free form and do not change cross sections for this. Join the sweep on to the polysurface and finally I can cap the remaining plainer hole and just check that this is a closed solid polysurface.
To add the neck and finish to the bottle, I will need to convert to NURBS as SubD being equivalent to degree 3 NURBS, won’t create the correct circular section I need. Whilst I was editing the SubD, I removed some edges, and you’ll see that I have a six sided face here, and a five sided face here. When I convert to NURBS, there’ll be some extra patches added here that I’m not in control of and it’s probably a good idea to avoid these five and six sided faces where possible. The rest of the model can now be completed in NURBS. I created the transitional neck and finish with screw thread as a solid polysurface and then I joined this to the solid bottle.
Although there are two solid components, it is much easier to separate out the inner and outer surfaces of both and then trim, join and fill it, the outer surface, and repeat for the inner before joining everything back into a solid.
So, that’s about it for this video. Please feel free to leave any comments below and if you have found this video useful, please hit the like button. To keep up with all the latest Rhino news and developments, please subscribe to this video and do also remember to check out our website for details of our online rhino training. Thanks for watching.