Home Digital Sketchbooks

Sketchbook: Frank Polygon

insane polycounter
Offline / Send Message
FrankPolygon insane polycounter
I'll be using this sketchbook thread as a place to warehouse write-ups that wouldn't really fit anywhere else. Most of the content will cover concepts and fundamentals related to hard surface modeling with some broader commentary on the creative process.


  • Hoodelali
    Your teaching is very pedagogic and truly awesome, you always take the time to write detailed answer with amazing schematics in the topic "How the F# do I model that", will this thread be a repository of all those sweet detailed pictures/explanations you've posted there ?
  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter
    @Hoodelali Thank you.

    Most of what I intend to post here is new content that covers broader concepts with more of an emphasis on the how and why behind it all. Some of this content will be very niche hard surface, mechanical and fabrication stuff and how that ties into creating art. There will also be some general art process stuff that I think is worth sharing. The more technical stuff will be very image heavy and I've been considering doing some of that content as video (maybe audio) but it really depends on how it all works out and what people are interested in. Organizing links back to the existing write-ups so it's easier for people to find and share what their interested in will be a part of this thread but it will be one of the smaller parts.
  • Hoodelali
    Understood, thanks for the detailed answer ! Can't wait to read what you'll post here !
  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    Subdivision modeling: process optimization, order of operations and flat surface topology.

    Process optimization is an important part of skill building and taking the time to evaluate the underlying assumptions that drive your modeling strategy can help improve both the efficiency and quality of your modeling process.

    Below is a visual overview of a simple modeling task. Fill the cap between two cylinders that have different segment counts and add support loops to create a subdivision ready cage mesh. How much time and effort it takes to complete this simple task will depend on the modeling tools and strategies used.

    The following example is a modeling process that's driven by a lot of common preconceptions and assumptions. Here's a breakdown of the rational behind this process and a summary of how the model was created.

    Subdivision modeling implies that the cage mesh needs to be all quads with even grid topology to avoid smoothing artifacts. Starting with fixed topology suggest that everything needs to be manually joined together to create the perfect edge flow. Edge extrusion modeling extends the existing topology so it will be the fastest way to fill in the cap. Loop cut, fill and connect are basic operations that provide granular control of the topology layout phase of the process.

    Modeling process 1 (≈ 48-62 individual operations.)
    • Extrude upper outer diameter support loop.
    • Extrude upper inner diameter support loop.
    • Fill radial segment - 12x.
    • Cut lower outer diameter support loop.
    • Cut low inner diameter support loop.
    • Join inner diameter support loops as quads - 42x. (Alternate: select and fill as quads - 30x.)

    This modeling process relies heavily on a brutally straightforward approach that uses a very limited selection of modeling tools and a strategy that follows whatever trajectory feels right in the moment. There's a significant amount of time spent on repetitive modeling tasks and the misconception that everything MUST resolve into quads to be subdivision ready only compounds this problem. What follows is a look at whether or not the previous assumptions created artificial limitations that generated unnecessary complexity.

    Modeling process 1 technical parameters:

    All quad geometry - Unless there's a specific technical limitation that absolutely requires the cage mesh be all quad geometry there's generally minimal benefit to manually adjusting the topology to create it. Simply subdividing the cage mesh will make it all quads. If quad grid topology is required for other process (like detail sculpting) then using automatic quad re-meshing tools is a better approach. The assumption that all subdivision cage meshes need to be quad grids is something of a misconception and in this case it's an artificial limitation.

    Fixed segment counts - Part of the block out process is figuring out how much geometry will be needed for subsequent modeling operations. There will be situations where it's either impossible or impractical to plan for all additional details and in these situations the base geometry will become a limiting factor. This is a realistic technical limitation and it's important to build an understanding of how to work around issues caused by having a limited amount of geometry to work with.

    Manual topology routing - There are certain cases where manual topology routing is necessary but unless the automatic tools have failed to create usable topology there's no real benefit to manually creating all of the topology flow. Sometimes there's a tendency to assume that creating every face and placing every support loop by hand improves the quality of the mesh but reality is this is just needless busy work and this behavior should be avoided whenever possible.

    Edge extrusion modeling - Basic manual modeling tools can be used to accomplish a wide variety of tasks and tend to have a high degree of granular movement control but that doesn't mean they are always the best tools for the job. The biggest drawback to using these tools is it can be difficult and time consuming to maintain consistent edge width. More complex tools can be used to place support geometry and automatically maintain a consistent edge width. This will improve both the process efficiency and visual quality of the model. Improving the edge width consistency tends to improve the readability of the shapes and helps provide a clean, professional look.

    With the exception of fixed segment counts, most of these assumptions introduced artificial limitations that negatively influenced the modeling process by narrowing the tool selection and increasing the number of manual operations. If edge extrusion was the method of choice then it would be much better to extrude the inside and outside segments to form the support loops then fill the faces between them.

    The only really important part of the topology is the support loops on either side of the outer bounds of the main shapes. Flat areas are largely unaffected by changes in topology so it makes more sense to average out the the differences between the segments there rather than in the support loop around a key shape transition. With this broader context that's now backed up with experience gained through experimentation it becomes more obvious that the only real constraint here is the starting geometry. The rest of the process is open to interpretation.

    The following example is a modeling process that applies what was learned by removing unnecessary limitations, expanding the tool selection and adjusting the order of operations. Here's a breakdown of the rational behind this process and a summary of how the model was created.

    Modeling process 2 technical parameters:

    Fixed segment counts - In certain situations the underlying topology will be a limiting factor that determines how much geometry is available to work with. In these cases the fixed segment count of the inner and outer diameter is the only true limitations here.

    Abandoning the previously mentioned preconceptions means it's possible to explore new ways of approaching the problem of connecting two support loops with different segment counts. Thinking about what's actually important and what tools are available will help identify more efficient ways of adding the support loops around the shapes.

    Modeling process 2 (≈ 3-5 individual operations.)
    • Fill half cap - 2x.
    • Bevel / chamfer outer and inner diameter to add support loops.
    • Add edge between inner and outer support loops on the cap - 2x.

    Changing the order of operations and tools used means it's possible to add most of the support geometry in a single step and all of the newly added support loops will have a consistent width. The flat area between the two support loops around the inside of the cap is used to absorb any major topology changes without causing any major smoothing artifacts. Not only does this modeling process ensure that potential shading issues are minimized but there's also the added benefit of having a simplified mesh that's easier to work with.

    In most cases: the important topology layouts are around the shape boundaries and are made up of the support loops that hold the shapes. Whatever happens on the flat surfaces is often irrelevant. Trying to resolve all of the intersecting edge loops into quad geometry doesn't improve the smoothing results and (in this case) would only add unnecessary complexity.

    That's not to say that it's unimportant to be aware of how the underlying topology effects subdivision smoothing behavior or to just ignore technical specifications when situations call of quad grid topology. Instead the message is that, in most cases, a few triangles here and there is a moot point if they aren't causing any major subdivision smoothing artifacts. Along similar lines: N-gons can be especially useful since they make the mesh easier to work with and when used correctly they have virtually no downsides compared to mixed quad / triangle topology.

    The most important takeaway here is the most important geometry is the edges that define the shapes and the support loops that back up these shapes.

    Below is a sample of a variety of topology strategies that all produce similar results. Double looping isn't always necessary but it can be helpful on large flat surfaces where the distance between support loops is quite wide. It's also worth noting that there's practically no distinguishable difference between the all quad geometry and the mixed triangle topology when it's used on a flat surface. This isn't an exhaustive list of all the possible topology combinations but it illustrates the point.


    Taking time to evaluate the assumptions that drive the modeling process is an important part of skill building. Automatically following popular modeling mantras (without evaluating the broader context behind the how, when and why) can introduce unnecessary process restrictions that tend to lead to extra work and excessive complexity.

    Evaluate whether or not these assumptions introduce artificial limitations and experiment with different tools and order of operations to identify simpler and more efficient ways to model the underlying shapes.
  • Whoolkan
    Offline / Send Message
    Whoolkan polycounter lvl 4
    great insight on some modeling practices. sometimes i have a hard time making details work on curved surfaces without having shading distortions, it's always good to know some extra tricks
  • Nominous
    Offline / Send Message
    Nominous polycounter lvl 7
    Great posts, Frank. :) Your last post reminds me that I need to embrace how subdivision is just an approximation and use more shortcuts to model faster. I've avoided Blender's bevel modifier like the plague since I obsess over perfectly straight support edges when, in hindsight, wobbly support edges aren't really noticeable after they're subdivided and especially after texturing.

    Are you using 3ds Max in your screenshots btw? I had to add a bevel weight to those bottom two diagonal edges connecting the cylinder to the cuboid in Blender since its bevel modifier doesn't support both sharp and arc outer miter types at the same time.

    Also, an important question: do you model the high poly base mesh and the low poly model at the same time in order to have most (like 80%~) of the low poly done right off the bat? I can see a significant advantage of using the bevel modifier instead of manual support edges in that there are much less support loops to remove for the low poly as opposed to using manual support loops.
  • Hoodelali
    Extremely useful and very well detailed, you're doing an amazing job 🔥 please continue! 🙏
    Thanks a lot for your hard work ❤️
  • Jackskullcrack
    Offline / Send Message
    Jackskullcrack polycounter lvl 2
    I'd very much like to see you do some tutorial videos or perhaps a live stream at some point so we can see your process in real-time.
  • ant1fact
    Offline / Send Message
    ant1fact polycounter lvl 8
    Hi @FrankPolygon
    Would you consider selling some kind of 3d reference package of these subd examples that you have made over time? as .blend or .obj? Thanks
  • wirrexx
    Offline / Send Message
    wirrexx polycounter

    Subdivision [Saturday] Sketch: Camera rod clamp and rosette.

    [Trying a new content format with more images and less text.]

    Here's a basic overview of my hard surface subdivision modeling process. Most of the support loops are added with a bevel / chamfer modifier and can be adjusted at any time.

    The support loops around some of the smaller shapes and fine details on some of the parts required limited manual adjustments. In those cases the bevel / chamfer modifier was applied and the mesh was adjusted.

    Only the body of the clamp and the head of the flag screw have manual support loop edits. All key features are modeled to scale in real world units.

    Top row: shaded subdivision preview.
    Middle row: wire frame subdivision preview.
    Bottom row: base meshes with the bevel / chamfer modifier support loops turned off.

    Here's the modeling process for the rosette and small screws. Start with primitive shapes and add details with inset operations, using real world scale and incremental snapping.

    The teeth on the rosette were created by making a single tooth and spin duplicating it in a circle. Screw holes are added with simple boolean operations.

    Both the rosette and the screw have support loops generated by active (editable) modifiers.

    Here's the modeling process for the body of the clamp. It starts with primitive shapes and edge loop sketches made to real world scale.

    Connecting geometry is created with single click automated bridge and fill operations. Minor details are added with inset operations and boolean subtractions. Support loops are generated with bevel / chamfer and inset operations.

    Minor topology adjustments are made after automated edge loop placement. Triangles and n-gons are used to simplify the modeling process. Since they aren't causing any major smoothing issues there's marginal benefit to resolving the topology to all quads.

    hey Frank, love theses!!
    One question, the first picture with the spilnes (maybe nurbs?). You use it as a guide to fill in the missing polygons by hand or do you close it automatically? if then, how?

    Keep up the great work!

  • wirrexx
    Offline / Send Message
    wirrexx polycounter
    @Jackskullcrack Thank you for the feedback. Workflow related video content is something I've done in the past and will probably try adding again sometime in the future. That type of content tends to require a significant level of commitment and it's something I'd like to do in a way that provides viewers a meaningful way to interact with the discussion and ask questions but in the past moderating comments has been an issue. Video platforms tend to have a different audience so it's very likely any future video content will just be unlisted and posted here.

    @ant1fact Thank you for the feedback. I'm currently reworking my gum road content and topology samples are something I'll be adding there. Once the content refresh is complete I'll add that page to the rest of my links.

    @wirrexx Thank you. The highlighted lines in the first picture are just raw verts and edges generated by flat primitives. They're used in a way that mimics the sketch feature in Fusion. This makes it easier to figure out where everything needs to be before committing to certain shapes.

    Fill in geometry is automatically generated by using face fill selection, grid fill or bridge operations. All of the face geometry is automatically generated from the n-gons using triangulation and quadrangulation operations. Every operation is tied to a hotkey or macro button so the whole process only takes a couple keystrokes and selections.

    Here's what these steps look like, starting from the highlighted edges in the previous image. Order of operations is important to reduce the amount of clicks but there's no hard and fast way to go about filling everything in. The n-gons on the sides could really be left in until after the support loops are added with modifiers but the compound rounding on the corner does need to be filled by triangulating and quadrangulating the large n-gon.

    The actual corner is rolled over with a belt sander in a couple of different directions so it's not perfectly spherical and the shape was a good excuse to use triangles and n-gons in an unexpected way. If the shape was perfectly spherical the geometry would be slightly different.

    This is something that will be covered a bit more in a future post about making revisions to existing projects.
    You’re awesome thank you!
  • dixi
    Offline / Send Message
    dixi polycounter lvl 8
    Hello. I, too, like you, am a researcher of subdives, and I have my own theory about this. Unfortunately, I do not know English, and I translate this text using google translator, so I cannot fully convey the technical terms of my subdivision theory. But, I can point out the main elements that are not correct for you from my point of view.
    1. You admit the presence of n-gons in the topology.
    2. You use a lot of tris instead of avoiding them.
    3. You create many edges that go very close to each other, thereby increasing the density of the topology in this place, which is bad for the uniformity of the mesh.
    I hope Google translated what I wanted to say correctly.
    I am a supporter of the correct topology:
    1. N-gons are prohibited.
    2. Trises are allowed but should be avoided.
    3. The entire mesh should be uniform, without tension, without tightly spaced edges, etc. I know that in most cases, this is difficult to do, but you should strive for it.
    Thank you for listening to me.
    Good luck.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    Subdivision modeling: block outs and incremental progression.

    Drawing is a creative process that most people encounter quite early on so it's often appealing to try and draw parallels between the initial rough sketch used to develop a finished drawing and the block out mesh used to develop a finished model.

    Taking this simple analogy at face value tends to overlook how sketches can be more than just a framework that guides the creation of the finished drawing. Sketching is also something that tends to happen throughout the entire drawing process. Sometimes it happens above the paper and sometimes it happens on the paper. This is repeated throughout the drawing process until more and more of the initial sketch is lost to incremental progression. The transitory nature of sketching, along with the rough sketches (test samples) actively discarded along the way, tends to suggest that block outs can also be treated as purely disposable elements.

    The idea that the block out is only used to establish proportions then is thrown away is problematic because: at best it undersells the importance of a process that helps solve shape and topology issues before they become major problems and at worse it reinforces the idea that the process is some kind of redundant work that only needs to be done to tick another box. This overly simplified view of things can make it tempting to skip over the block out process to save time.

    While block outs can be used like rough sketches, to establish forms, check proportions and test out different ideas, they can also have a more direct role in defining the quality of the finished product. Skipping over the block out or only using it during the very beginning of the modeling process often leads to situations where unnecessary complexity ends up causing problems that burn up more time than was initially saved.

    Blocking out the base [cage] mesh is important because it's a lot easier to get the shapes and basic topology flow right without all of the support loops and excess geometry in the way. Support loops and topology layouts are important but they won't really matter if the underlying shapes are so inaccurate that the final mesh doesn't look anything like the concepts or references.

    Creating a block out may not be the most exciting thing in the world but jumping into a model without having a clear idea of what the shapes are and how the topology will flow often results in creating an unnecessarily complex mesh. All of this added mesh complexity often makes it difficult to join shapes, route topology and (most importantly) make changes to the model.

    Here's an example of a typical modeling workflow where the block out process stops after the basic outline of the shape is created. Support loops are added right away and the rest of the model is created with a subdivision modifier active. A lot of time and effort goes into manually placing and straightening support loops to provide space for additional surface details. All of the details are added with basic modeling operations that preserve the underlying quad topology.

    The result is an all quad mesh that doesn't require any major cleanup but this approach also tends to generate a dense topology that locks in the shapes and makes the mesh difficult to edit. Shortening the block out process did save some time but it also means that if any major smoothing issues appear or if any major change requests are made then it's very likely the entire model will have to be reworked.

    Here's an example of a modeling workflow where the block out process extends well into the addition of minor secondary surface features. Editable modifiers make changing most of these surface details a non-issue but even if this wasn't the case the incremental progression of the block out makes it easy to roll back to a previous iteration and make changes without having to redo a lot of existing work. Most of the time and effort in this example is focused on the creation of accurate shape details to match the references. Only once the shapes are correct is any time spent managing support loops.

    That's not to say that support loop topology isn't important. It is. Instead the idea is that the underlying shapes will determine what the support loop topology needs to look like so it's more effective to manage the basic shapes first then the support loop topology second.

    Keeping the mesh relatively simple and progressively adding details before adding support loops (generated by modifiers and a couple of inset operations) means that any change requests can be handled before a significant level of mesh complexity makes changing the shapes a lot of extra work. Waiting to add additional support loops until after the block out model is approved reduces the risk of having to rework a significant portion of the model to accommodate even relatively minor changes.

    Both modeling process produce usable results but there are subtle differences in overall surface quality. The model created with a limited block out phase suffers in a couple of places where the underlying topology had to be deformed to accommodate the serrations while also maintaining quad geometry. However this minor quality difference shouldn't be the primary focus. The major difference here is the amount of additional time and potential risk for rework that can accrue when skipping over or shortening time spent on the block out.

    It's often helpful to think of the block out as more of an extended process of establishing the shapes that make up the major forms while also developing the underlying geometry. Time spent resolving shape and topology issues early on in the modeling process is often paid back later when the mesh complexity starts to increase. Making major changes to a simple but accurate base mesh is much easier than trying to re-route a bunch of extraneous edge loops around additional shape intersections or surface details. This is why it's important to work through the block out phase and really nail down the major shapes before adding all of the support loops.

    For those interested in some additional reading on the topic: shape analysis is another important part of the block out process that's covered in this write up: https://polycount.com/discussion/comment/2745166/#Comment_2745166

    Avoid jumping into a subdivision model without doing some level of planning. Block outs can be used to experiment with different forms and topology layouts but they're also an important part of the modeling process. Often the final quality of the subdivided mesh is directly influenced by the quality of the shapes that were created while blocking out the base mesh. Incremental progression also helps reduce risk by creating regular opportunities to evaluate and change the model while also generating iterative states to fall back on if major changes are required.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    Subdivision modeling: mesh complexity and shape accuracy.

    Modeling hard surface objects with more organic surface features, like stamped metal parts and castings, can be challenging because of the complex compound curves and the odd combination of hard and soft shape transitions. When working on these types of models it can be helpful to block out the major forms of the complex compound curves with a relatively simple cage mesh then apply the subdivision to lock in the shapes and provide support for smaller surface features.

    While this strategy of incrementally applying subdivision to a model with a lot of complex compound curves does tend to work well, one thing to avoid is applying too high of a subdivision level too early in the modeling process. Subdividing a mesh beyond the minimum amount of geometry needed to hold the shapes tends to introduce a lot of unnecessary mesh complexity. Which can make it difficult to adjust the larger shapes without generating slight undulations in the subdivided mesh.

    Over subdividing the mesh can also make it difficult to add larger secondary surface features without having to add or reroute support loops. This can be especially problematic when the additional support loops deform the underlying surface or significantly change the segment spacing of a curve on the larger shape. These extra support loops often generate undesired creasing or pinching elsewhere on the curve of the larger form and it can be extremely difficult to manually even out the curvature.

    Below is an example of what the modeling process can look like when too much subdivision is applied to the basic shape. Though most of the larger forms on the tank are correct, applying the subdivision too early has made it difficult to adjust the mesh in a way that effectively creates some of the secondary shapes where the sides of the tank curve inwards. This unnecessary mesh complexity also tends to actively discourage fully exploring some of the finer shape transitions and can push artists to try manually carving the details into the larger shape.

    While there are some cases where it's necessary to model sharper raised or depressed panel lines (welds, gaps, bead rolls, coining, embossing, etc.) most deep shapes formed in a single sheet of metal have very soft, gradual shape transitions. With traditional metal forming, extremely sharp or harsh shape transitions on pressed metal objects tend to indicate spots where multiple parts have been joined together. Too much harshness in the shape transitions can give the model a different appearance or surface read from the actual object.

    When modeling hard surface objects with soft compound curves it's important to analyze the reference images and establish realistic transitions between the primary and secondary surface forms. Gather good reference images that show the object from multiple angles and under different lighting conditions then study how the shapes flow into each other.

    Below is an example of what the modelling process can look like when less geometry is used and the mesh topology is kept relatively clean and simple. Start by blocking out the major forms and only apply the subdivision when it's absolutely necessary to support the shapes. Keeping things as simple as possible for as long as possible tends to make larger shapes easier to work with.

    Try working in some of the secondary shapes earlier in the block out process and carry that simplicity over into the base mesh. This should help reduce the overall complexity of the cage mesh. It can also be helpful to deform some of the edge loops on the base mesh so the underlying topology will fit around the shapes in the references. This will make it easier to add surface details without having to use a lot of complex boolean operations.

    The closer the shapes are to what's in the references, at the lowest possible subdivision level, the easier it should be to add additional details to the curved surfaces later in the process. Spend the time refining the shape of the curves at the lowest level that makes sense then work up from there while keeping things as simple as possible.

    Avoid the assumption that a dense or complex mesh is an accurate mesh. Mesh density does tend to increase the quality of a subdivided surface but the position and form the underlying geometry is what really determines the overall accuracy of the mesh. Poorly constructed shapes that don't match the reference images or are inconsistent won't be improved by increasing the mesh density.

    In fact there's a lot of situations where arbitrarily increasing the mesh density can actually introduce more issues than it solves. Representing as much of the surface shapes as possible at the lower levels will also help keep things relatively simple. When to add additional subdivision levels or support loops will depend entirely on the complexity of the shapes / details that need to be added, as well as where it all falls in the overall modeling process.

    Take the time to gather quality reference images. Study these reference images and if necessary draw over them to highlight important shapes and shape transitions. Carry the block out process as far as it needs to go to accurately develop all of the shapes. Avoid over subdividing the mesh and trying to manually carve or batter surface features into shape. Start with a relatively simple mesh and use the appropriate amount of geometry to hold the shapes. Let the subdivision do the work of filling in the geometry and smoothing the shapes.
  • KebabEmperor
    What camera rig is this exactly ? I want to give it a try as well. Looks like a good practice. Couldnt find the name

  • pixelpatron
    Offline / Send Message
    pixelpatron interpolator
    Incredible stuff happening in here. Where were you when I needed you in 2015!?
  • dlz
    Offline / Send Message
    dlz polycounter lvl 4
    I'm glad I encountered that thread! All the processes are very illustrative, well described and I value a lot that you explain the benefits and the reason for each process.
  • pignaccia
    Offline / Send Message
    pignaccia polycounter lvl 10
    pure pornography! thx
  • jeanfree
    Imagens boas. Tem tutorial?
  • HAWK12HT
    Offline / Send Message
    HAWK12HT polycounter lvl 9
  • SnowInChina
    Offline / Send Message
    SnowInChina greentooth
    nice clean work
  • dopamine
    Offline / Send Message
    dopamine polycounter lvl 4
    This is the most precious thread which I read on this site.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    Thank you, glad it's helpful. Just a small part of the institutional knowledge available here on Polycount.

    Sketchbook backlog

    Slowly working through the content backlog. There's the usual mix of subdivision modeling examples, along with some other write ups about general art processes, low poly optimization and creating materials. Posts will continue as time allows.

    Individualized feedback

    After some requests for focused, individualized feedback: I've started doing artistic and technical critiques. The goal of these critiques is to meet the artist where they're at in the process and provide actionable feedback that fits within the context of the project and artist's skill level.

    Depending on the nature of the critique the feedback will be provided as images, text or some combination of the two. Some things are fairly straightforward but doing a deep dive into the evaluations tends to take a significant amount of time. So there's a limited depth and number of [unpaid] reviews that I can handle at any one time.

    Currently only considering feedback requests [at any stage] on full cycle hard surface game art portfolio projects. So this requirement is less about what stage a project is at and more about the attempt to create a finished portfolio piece and the learning that takes place along the way.

    If this is something that interests you then message me on Polycount or on ArtStation.
    This is just something I'm testing out on a small scale. If it's sustainable then it will probably be spun off into it's own thread in the appropriate section. As such the current focus of this sketchbook thread hasn't changed. So I will continue to post hard surface modeling and art process content here.

  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    Subdivision modeling: mesh density Vs loop structure on curved surfaces.

    Sharpening corner details by adding support loops that interrupt the segment spacing of a curved surface will generally result in some kind of smoothing artifact. The example below demonstrates how adding the highlighted support loops to the existing edges of the cylinder produces an undesired faceting artifact.

    Increasing the number of segments in the curved surface, until the desired level of edge sharpness is reached, is a common fix for this type of smoothing artifact. This approach to modeling tends to produce evenly spaced topology layouts that provide consistent results when subdivision smoothing is applied.

    Though dense topology layouts tend to be predictable they can also be difficult to work with. Creating larger objects or sharper corners will often require adding a significant amount of geometry to the curve. Which can make it difficult to manage complex shape intersections that require a lot of manual clean up.

    The example below shows just how much geometry is required to produce a relatively soft corner on a shape that doesn't take up much of the screen. Segment counts from left to right are 24, 48, 96. If the object needed to fill the screen and have fairly sharp edges it's quite possible that the density of the starting geometry would have to double or even triple to maintain the current level of corner sharpness.

    Adding support loops to the corners, that merge into the existing segments of the cylinder, is another option for resolving this type of smoothing artifact. This type of topology layout can be used to produce sharper corners with less starting geometry. When the support loops are generated by a bevel / chamfer modifier the width of the edge highlight can be adjusted any time before the modifier is applied.

    Though this topology layout tends to be easier to work with and can be quite flexible when pared with support loops generated by modifiers, it does tend to have some minor artifacts that can be visible in the edge highlights around the outside corners. With sufficient starting geometry and minimal deformation of the underlying shapes these minor artifacts generally won't be visible at normal viewing distances.

    The example below shows how this type of topology layout can be created with basic modeling operations. This modeling process starts by figuring out the minimum number of segments required to create all of the basic shapes. A loop is added to the middle of the cylinder and the shape of the loop is adjusted to match the concept references. Running a bevel / chamfer operation produces two loops that are a set distance apart then the depth and taper is added with an inset operation. Support loops are added around the highlighted edges with a bevel / chamfer modifier and subdivision is applied.

    Bottom row shows the base mesh with the modifiers turned off, smoothing preview with the support loops added and shaded view of the subdivided model. The cylinder primitive used in this example has 48 segments.

    Below is a comparison of both topology layouts with similar levels of edge sharpness. It's worth noting that the structured edge loops can produce a sharper edge highlight with significantly less geometry and minimal mesh complexity. The quality trade off being the slightly truncated edge highlight near the outside corners of the shape.

    This same modeling and topology layout strategies can be applied to more complex shape intersections that are present on a lot of popular hard surface modeling exercises. With these kind of shapes it's often a good idea to start by trying to find the minimum number of segments required to hold the shapes. Assuming the radial features are symmetrical: if there's 8 tapered tabs and 8 tapered cut outs that's a minimum of 16 segments to capture the basic shapes.

    Since these features are often curved along the shape of the underlying cylinder it makes sense to add a bit more geometry. Using two segments per feature and adding an additional segment for each of the tapered transitions brings the total minimum viable segment count up to 48 but using three segments per feature brought the segment count up to 64 and improved the smoothing results near the corners of the cut outs. From there the shapes themselves are pretty basic and can be create quickly with standard modeling operations.

    Start by blocking out the basic shape of the cylinder. Add the loop cuts for the secondary surface features. Move a section of the new loops to create the basic outlines of the shapes and use inset to add depth and (edge taper) draft. Straighten out some of the edges and merge to remove the excess space between the shapes. Select the outline of the bottom lug and use inset again with the same settings to produce a consistent extrusion away from the main shape. Cut in another edge half way through the truncated cone at the bottom and use join through to create the basic angle of the shape. Dissolve the edge along the bottom of the shape to produce the tapered transition into the truncated cone. Setup the edge bevel weights and add a bevel modifier to generate the support loops.

    This same topology layout strategy still works at lower density levels but after a certain point there just isn't enough starting geometry to hold the shapes and the smoothing artifacts around some of the loops become more apparent. For this shape a 48 segment starting primitive is about the limit before the artifacts become visually intrusive.

    There's some misconceptions about just how much geometry is actually required to hold radially tiling shapes and often the threshold is much lower than is expected. Increasing the geometry density is often a go to recommendation because it's simple to explain and is predictable. However it isn't always the most efficient way of doing things.

    Well structured support loops that produce minimal shape distortion are generally going to be more efficient but the trade off is they sometimes produce very minor cut offs in the edge highlights. Another thing to consider is that: when trying to attach a single shape to a cylinder it's important to work between the segments but with radial details that are unbroken it's sometimes easier to just run the support loops around the continuous shapes.

    In this case very few of the support loops actually displace or disrupt the vertical edges of the cylinder so it doesn't cause a smoothing issue. On this shape the reasons this works is because most of the support loops are perpendicular or diagonal to the existing edges that make up the wall of the cylinder so instead of displacing the geometry sideways it just moves it upwards which doesn't effect the underlying curvature.

    Increasing the density of the starting primitives does tend to increase the sharpness of surface features on a curved surface. However this increase in geometry does have diminishing returns and there's a steep fall off in editability as the mesh density increases.

    Using well structured support loops that merge into the existing geometry can be used to create sharper surface features with less starting geometry but there are some tradeoffs in visual quality when minor artifacts appear near the outside corners.

    Both approaches are viable so it really comes down to whether or not the tradeoffs are acceptable for a given project.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    Subdivision modeling: working through complex shape intersections.

    A fair number of questions about mesh topology [on curved surfaces] are focused on finding an answer that completely explains a very specific type of complex shape intersection. While this approach to trying to solve all of the topology problems at once can sometimes yield results, if someone else has solved the exact same problem, it may not be the best way to frame the question.

    Instead try to break down each part in the reference images into a series of simple shapes. This will make it easier to search for solutions that solve the problems with similar shape intersections. Which can then be applied to each individual shape that was identified earlier. Each of these simple solutions can then be layered on top of each other to build up the shape without having to spend hours trying to find or wait for someone to post a perfect solution to the whole problem.

    The example below shows how a series of simple shapes can be combined with basic subdivision modeling principles, like placing intersecting shapes between existing geometry, matching the number of edge segments in intersecting curves and blocking out the shapes to resolve topology flow issues before adding support loops, to create a very simple but effective base mesh.

    Once the basic shapes are blocked out and the segments are matched the shapes can be joined with boolean operations and cleaned up with limited dissolve. From there it's a simple process of cutting in additional support loops that snap to the existing vertices and adding support loops around the edges that define the shapes. Solving the majority of the topology flow issues at the lowest possible level helps keep the mesh relatively simple and can reduce the amount of work required to get a clean result.

    Once the basic topology problems are solved the same process can be used to iterate on the existing model by adding more complex shapes. The example below shows how changing the shape and position of the block out primitives will produce a more complex variation of the first model that more closely matches the reference images.

    Again. It's very important to solve most of the topology flow on the simple block out mesh. Doing this will help ensure that the intersecting shapes define the path of the supporting topology. Which makes it much easier to add support loops without generating smoothing artifacts. Starting with an appropriate number of segments for the size of the object and matching the segments of the intersecting shapes to the underlying geometry will also help prevent smoothing artifacts.

    When trying to solve topology issues around complex shape intersections: start the block out process by breaking the object down into simple shapes. Look for existing topology solutions for each individual shape. Solve the topology problems with each individual shape and layer each solution onto the previous one to create the complex shape intersection out of simple shapes.

    Use fundamental subdivision modeling techniques like placing intersecting shapes between existing edge segments on curves, matching the segments in intersecting shapes whenever possible and resolving topology flow problems before adding a lot of support loops.

    Here's a link to another write up that covers how break down complex shapes into simple ones and blocking everything out before adding more complex support geometry. https://polycount.com/discussion/comment/2745166/#Comment_2745166
  • HAWK12HT
    Offline / Send Message
    HAWK12HT polycounter lvl 9

    Hey Frank Thank you so much for these tips on modelling.

    You mention getting this sort of shape in few clicks and I am trying to wrap my head around this, the breakdown you posted earlier helped me get manual shape but I had to do a lot of clicks and use conform tool for that rounded corner. Can you explain more in depth. Cheers 

    My attempt, somehow with tight loops around the curves I manage to get result similar to yours but with pinching and plenty of manual work. 

  • FrankPolygon
    Offline / Send Message
    FrankPolygon insane polycounter

    The surface of the softened corner (on the second iteration) is fairly smooth but it doesn't have a single, continuous curvature. This is because the shape is created by blending several curves together. It's a bit counterintuitive but the center of that softened corner is actually being flattened by the three shallow round overs that all converge around that point.

    Below is an example that shows how the basic shape would be made by grinding off the pointed corner and rolling the part along each of the three edges, that originate from the points of the starting triangle, to create the round overs.

    Each iteration of the model has a corner shape that's based on a different machining process. The image below shows the basic topology and the tool shapes they were derived from. From left to right: The first has a continuous curvature that's based on a sphere. The second has a blended curvature that's based on three shallow, intersecting curves. The third has a continuous curvature that's based on a single, steeper curve.

    There's a few different ways to approach modeling the shapes. Most of the simple curves can be generated with standard bevel / chamfer operations or modifiers. On this particular shape the round over along the bottom is always slightly smaller than the radius on the back.

    The workflow in the previous examples becomes more application specific when it comes to sketching shape profiles with just edges and vertices. In applications that support this, it's possible to develop some of the shape profiles by either inserting primitives that are just vertices and edges or by duplicating existing edge geometry without attaching it to any faces. Which opens up some additional possibilities for previewing and lofting edges in a mesh edit without having to work with splines, NURBs or Booleans.

    This edge and vertex only, primitive based sketching workflow is what's shown in the first post about the rod clamp.

    Of course this approach has it's own set of drawbacks that will need to be carefully managed. Most of which are related to unintentionally creating unwelded duplicates or non-manifold geometry but that's to be expected with any unconventional workflow that's trying to mimic parametric sketch based modeling functions. So there's a relatively narrow path where this type of modeling make sense and it relies heavily on application specific tools or modifiers and working with incremental snapping to real world units.

    Here's an example that shows how duplicating the edges from the existing curve can also be used to quickly sketch the corner profile but will leave behind non-manifold geometry when the corner vertex is deleted or dissolved. In applications that don't support this type of workflow it will be necessary to look at alternate modeling operations like boolean subtraction, lofting splines, etc.

    One of the previous questions about this workflow was whether or not the faces had to be created individually by hand. The short answer is: No, there's tools for locating non-manifold geometry, filling edge strips with faces, converting n-gons into triangles and converting triangles into quads. So the discussion about click count and hot keys is mostly within the context of filling non-manifold geometry and converting n-gons into organized faces. https://polycount.com/discussion/comment/2749130/#Comment_2749130

    Below is an example of how non-manifold geometry can be resolved to organized topology with a series of simple operations. Select by feature can be used to identify all non-manifold edges. Face fill can be used to close the non-manifold edges with N-gons. Face select mode can be used to select the corner n-gon and the attached edges. Triangulate faces can be used to turn the n-gon into triangles. Tris to quads can be used to turn the triangles into quads that are organized by features like face angle and shape angle.

    All of these operations can be done in one or two clicks, depending on how many parameters need to be adjusted. These tools are fairly reliable so there really isn't much need to manually create or adjust faces in most of the shapes here.

    Most of the time the support loops can be created with bevel / chamfer operations. Modifiers provide some additional flexibility for previewing and adjusting the edge width on the fly. Though there's going to be certain shapes where there just isn't enough room for support loops. That's a point where either the base mesh needs to be adjusted to make room for the loops or the modifier needs to be applied so the overlapping geometry can be removed.

    Another fairly efficient way to add support loops around certain types of complex shapes is to use a series of inset operations. Working through one side of the support loop at a time and having direct control over the selection tends to make it easier to avoid creating overlapping support loop geometry.

    The example below shows how this process could be done. On some shapes there just isn't enough room in the corners so overlapping geometry is inevitable. This can usually be cleaned up with merge by distance and vertex dissolve operations. The left over edge loop around the bottom of the chamfer can be removed with edge dissolve.

    This particular corner shape was built to mirror specific processes so it's not representative of anything other than itself. As far as workflow goes the vertex + edge sketching might be a little bit off the wall but the rest of the modeling operations are fairly standard. There's lots of different modeling tools and that means there's different ways to approach creating this shape or something that looks similar. So after a certain point the whole conversation moves from the technical to the expressive.

    It can be tempting to try to resolve smoothing issue by moving lots of geometry around but the problem is that once something moves far enough out of plane it's pretty much over. Any modeling operation that comes afterwords just inherits the inaccuracy of the starting shape and the errors will just keep piling up on top of each other.

    There's definitely a time and place for manually cutting in support loops to organize topology flow, moving vertices to compensate for smoothing artifacts and conforming geometry to clean primitives to restore curvature but for most shapes it doesn't have to be the defualt method for generating a clean result when subdivision is applied.

    Mathematically generated shapes created by primitives and tool operations tend to be more accurate and consistent than geometry that's created by freehand modeling the shapes. With a lot of hard surface objects it's important to preserve the accuracy of these underlying shapes and avoid introducing any undesired surface deformation.

    That's why it often makes sense to rely on tools to generate consistent shapes and whenever there's major issues with artifacts or the accuracy of a surface it's probably worth looking at resolving any problems in the underlying shapes first.
Sign In or Register to comment.