Home Digital Sketchbooks

Sketchbook: Frank Polygon

polycount lvl 666
Offline / Send Message
FrankPolygon polycount lvl 666
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 polycount lvl 666
    @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 polycount lvl 666

    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 3
    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.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon polycount lvl 666
    @Nominous Thank you, glad you enjoyed the content. Overall I'd have to agree that getting a clean and consistent result is (almost always) an important priority.

    Modifier based modeling strategies can be a really efficient way to work since the underlying mesh is kept relatively simple. This makes the model easier to edit since most of the support loops are generated by the modifier system and will remain editable (via modifier settings) throughout most of the modeling process.

    Offloading repetitive modeling tasks to tools and modifiers should reduce manual editing and increase shape consistency. The structure of the underlying mesh topology tends to have the single greatest influence over the quality of the geometry generated by modifiers and other tools. If the input mesh is clean, straight and well organized then the support loops added by the modifiers should be clean, straight and well organized.

    It should be possible to re-create the previous example without having to apply any modifiers. Here's an example that shows the base mesh and modifier settings required to get this to work in Blender 2.91. Depending on the shapes, angle based modifier controls aren't always accurate or reliable so sometimes it's necessary to use grouping or weights to achieve the desired results.

    Correct: there's a significant efficiency bonus to using the same base mesh for both the high poly and low poly models.

    Using modifiers to control the geometry density of specific features means this process works in both directions since the parameters can be used to add or remove geometry from across the entire mesh or specific areas.

    How complex this setup is depends entirely on the project and the complexity of each individual part. It's all about balancing shape accuracy and editability to efficiently arrive at a result that hits the project's quality goals.

    This process is something I plan on covering in the near future.
  • Hoodelali
    Extremely useful and very well detailed, you're doing an amazing job 🔥 please continue! 🙏
    Thanks a lot for your hard work ❤️
  • FrankPolygon
    Offline / Send Message
    FrankPolygon polycount lvl 666

    Subdivision modeling: use more geometry or create better geometry?

    Removing subdivision smoothing errors from shape intersections on curved surfaces is a common theme for questions about hard surface subdivision modeling. A lot of these questions are about pinching and stretching issues near corners and around shape transitions. Most of these questions have been asked countless times and more often then not have been answered with some variation of "Just use more geometry." but is this really the best answer?

    More importantly, if using more geometry is the best answer to these questions then how much more geometry is enough geometry?

    In most cases: increasing the geometry density does tend to increase the overall accuracy of the underlying shapes but it also tends to increase the complexity of the base mesh. Adding unnecessary complexity will make it harder to edit the base mesh and using too much geometry on a small segment of the model can generate it's own type of smoothing artifacts.

    Outside of the obvious cases where there isn't enough starting geometry to support the intersecting shapes, arbitrarily increasing the number of segments in the starting geometry can be a viable solution to remove some smoothing issues but there's diminishing returns on the trade off between accuracy and efficiency.

    In some cases there's already more than enough starting geometry and the smoothing issues are caused by improper geometry distribution or topology flow that disrupts the natural forms of the underlying shapes. Fundamentally these type of smoothing issues are problems with the underlying shapes not the geometry density. Blindly increasing the amount of the geometry will work but it's a brute force approach that doesn't address the root cause of the issue.

    Subdivision modeling is a [mostly] approximate process but the smoothing behavior is relatively consistent across all platforms. To understand how subdivision smoothing works it's important to break things down into their simplest forms and observe the fundamental smoothing behavior of the basic shapes. Once subdivision smoothing behavior is understood it becomes easier to plan out efficient topology routing solutions for complex shape intersections.

    Below is an example of basic cylinder geometry:

    Row 1: The edges that define the cylinder wall segments tend to pull inwards uniformly. To counter this it's necessary to add support loops around the edge loop at the top and bottom of the cylinder. These support loops counter the uniform inward pull and deform the top of the shape into a flat plane with a rounded transition into the cylinder wall.

    Row 2: Moving an individual segment of the cylinder wall (in or out, up or down, right or left) will change the spacing between the segments and this causes the wall of the cylinder to deform. Failure to maintain concentricity and spacing of cylinder wall segments is a major cause of smoothing artifacts on curved surfaces.

    Row 3: Adding edge loops that run perpendicular to the cylinder wall segments has virtually no effect on the curvature of the cylinder wall. Placing additional edge segments between existing cylinder wall segments tends to disrupt the subdivision smoothing which flattens the cylinder wall. Adding support loops to either side of existing cylinder wall segments tends to disrupt the subdivision smoothing and causes pinching.

    As shown in this example: moving existing cylinder wall segments can cause undesirable deformation. Additional geometry that runs perpendicular to simple curves tends to have a relatively minor impact on smoothing behavior along the curve. Additional geometry that runs parallel to existing edge segments in the cylinder wall tends to disrupt the smoothing behavior and is a major cause of smoothing artifacts on curved surfaces.

    To avoid these kind of smoothing errors it's important to maintain a relatively consistent spacing between curve segments and ensure that the smoothed mesh components and surface features are concentric to the wall of primary shape.

    Below is an example of basic rectangle geometry:

    Row 1: The edges that define the volume of the rectangle tend to pull inwards uniformly. To counter this it's necessary to add support loops around the edges that define each face of the rectangle. These support loops counter the uniform inward pull of the smoothing and deform the basic shape into a series of flat surfaces with a slightly rounded transition between each surface.

    Row 2: Adding geometry to or moving geometry along flat surfaces [between the outer support loops] generally has no major impact on the overall shape. Moving surface geometry components out of plane does cause deformation.

    When properly supported, flat surfaces are generally very tolerant to substantial topology changes so they can be a good place to simplify the mesh by culling unnecessary edge loop propagation. Flat surfaces that are angled, relative to other surfaces, should be flat to themselves. Keeping shape boundaries well supported and individual surface coplanar should be all that's required to prevent major smoothing issues on shapes with flat surfaces.

    The previous observations seem fairly obvious but it's important to keep this information in mind when merging shapes. Trying to add geometry to curved surfaces, without accounting for the effects of edge loop propagation, often results in pinching and stretching errors.

    The modeling process shown below seems to work but once the final support loops are added to the cube they run off the cube and parallel the existing geometry of the cylinder. This changes the segment spacing in that area and causes undesired cylinder wall deformation.

    Moving the extra edge loop along the cylinder wall can reduce the severity of the smoothing artifacts but it generally doesn't fully resolve the issue. It is possible to manually re-adjust the segments so things are relatively smooth but this often requires a significant time investment and tends to introduce other issues with the overall accuracy of the major shapes.

    When asking for feedback on resolving this type of smoothing error, it's very common to get a vague answer like "Just add more geometry." and that's understandable, because this strategy is simple, easy to explain and generally works. Sadly this advice is often simplified into something along the lines of "Just double or triple the segment count." Most of the time this will work but it's not an optimal strategy and this kind of advice ignores the wider context of what's appropriate for a particular part of a model.

    Arbitrarily increasing the complexity of the model without addressing the root problem that's causing the smoothing error is a sure fire way to reduce process efficiency. It will also make it more difficult for anyone who has to come back and make adjustments to that part of the model. This is why it's important to evaluate what's actually causing the smoothing error and take other factors (such as object size, average view distance, complexity of adjacent mesh segments, etc) and make an informed decision about where to add the additional geometry.

    A better answer is: match the segments of the intersecting shapes and use the appropriate amount of geometry to match the necessary edge loops on the adjacent shapes.

    Below is an example of how the number of segments on the larger cylinder can be increased to match the number of edges that make up the intersecting rectangle. As discussed previously, the number and position of the segments in the cylinder wall are critical elements that influence smoothing behavior. It's also generally considered best practice to use the existing geometry as support for the shape transition area around the shape intersection.

    The process of segment matching is fairly straightforward and this is one of the reasons why it's important to block out all of the major shapes before investing a significant amount of time in adding support loops and other details. Establishing accurate shapes with good topology flow between them will make it easier to place and route support loops that won't cause major smoothing issues.

    With subdivision modeling: the goal should generally be to use the minimum amount of geometry required to effectively hold the required level of shape accuracy and surface details.

    Once all of this is understood and put into practice it becomes much easier to generate meshes that have a better balance between shape accuracy and process efficiency. Here's an example of the previous modeling process but the number of segments in the cylinder is increased slightly to match the number of segments required to support the intersecting cube.

    It's also important to view the mesh from multiple angles and evaluate the total prominence of any smoothing artifacts. A shiny preview material with a wide highlight roll off can really light up surface imperfections when a mesh is viewed from off axis glancing angles. Using this type of material and toggling the subdivision preview will help make it easier to identify the severity and source of any smoothing errors.

    When increasing the mesh density there's a definite fall off in quality as the amount of geometry increases and there's a corresponding jump in editing difficulties. This is why it's important to consider how visible a smoothing error is before investing a significant amount of time trying to remove it. If there's minor smoothing errors in a small segment of the mesh that's not regularly visible to players or if minor smoothing errors are covered by high frequency surface normal details then there's minimal benefit to achieving perfection in these areas.

    Below are three examples [with increasing mesh density] to compare how increasing the amount of geometry effects the overall visual quality of the subdivided mesh and editability of the base mesh.

    Here's the cube intersecting a 12 segment cylinder.

    Here's the cube intersecting a 24 segment cylinder.

    Here's the cube intersecting a 32 segment cylinder.

    As the density of the mesh increases there's a clear fall off in the rate of change at which the difference in visual quality is perceivable.

    This means that, past a certain point [for an object of a given size, viewed from an average view distance] increasing the number of segments in a cylinder will no longer have a measurable difference to what players experience. At this point there's very few reasons to continue adding additional segments.

    Where good enough is good enough will be different from project to project but there's a distinct case to made against over complicating the mesh. Time spent perfecting something that doesn't directly effect the playability or player's perception of the overall visual quality of the model is time that could be better used else where. This all circles back to why block outs are so important.

    Another point worth making is that there will be situations where it's either impractical, impossible or imprudent to increase the number of segments in the base geometry. Often there's cases where parts are very small or constrained by adjacent geometry and the cost of making minor improvements far outweighs leaving in minor smoothing artifacts.

    In situations like this it's best to try and reduce the visibility of minor smoothing artifacts by manually adjusting the mesh to help pull everything to shape when subdivision is applied. Often small, soft smoothing artifacts can be covered by surface noise in the normal textures.

    It's generally acceptable to make minor manual adjustments to small details constrained by adjacent topology but keep in mind that using this to make large changes to most of the shapes in an object can produce undesirable results. Excessive manipulation of geometry components to compensate for an issue caused by a lack of adjacent supporting geometry can generate it's own type of smoothing issues and tends to decrease the overall accuracy of the shapes.

    Below is an example of what this process can look like. Dissolve unnecessary edge loops and with subdivision preview enabled, scale or move the offending geometry components back into line until the stretching or pinching issues are minimized.

    The results are far from perfect but it is an improvement on the original base mesh's smoothing behavior. This strategy is really only useful on making minor improvements to parts that would have otherwise required reworking a large section of the mesh to blend in. Again, it's important to evaluate the root cause of the smoothing issues and address that whenever possible. This solution is only passable on minor parts that are generally out of the player's close view.

    All of these principles can be applied to other shapes. Below is an example of how this works with cylinder to cylinder intersections. Start by blocking out the major forms then match the number of segments in the intersecting shapes. Preserving the natural shape of the underlying geometry will reduce the likelihood of prominent smoothing artifacts.

    The mesh in this example is passable if the geometry density is constrained by adjacent shapes but it does have some deformation issues caused by the limited amount of geometry in the larger cylinder.

    Here's another example that shows the same modeling process with more starting geometry.

    The overall goal should be to preserve the natural forms of the underlying shapes and increasing the geometry density to closely match the segments of the intersecting geometry tends to improve both shape accuracy and smoothing behavior. Using the appropriate amount of geometry will help provide a good balance between shape accuracy and process efficiency.

    it's also worth noting that transitions areas around shape intersections can provide natural support loops that should be used to constrain any smoothing errors caused by any differences between the geometry of the intersecting shapes.

    Below are three examples to compare the difference made by increasing the geometry density of intersecting curve shapes.

    Here's the small cylinder intersecting a 12 segment cylinder.

    Here's the small cylinder intersecting a 24 segment cylinder.

    Here's the small cylinder intersecting a 32 segment cylinder.

    After a certain point it becomes necessary to also increase the number of segments in the smaller cylinder to match the segment increase in the larger cylinder. Failure to match the number of segments on curved intersections will generally just move the smoothing issues from one shape to the other.

    Intersecting shapes with flat segments and sharp corners tend to be more demanding than circular shapes with soft corners. This circles back to the idea that it's possible to adjust the underlying geometry to compensate for minor smoothing issues. With cylinder to cylinder intersections it's often possible to average out any minor smoothing issues over a wider area without needing to increase the density of the starting mesh.

    As shown in the example below: there is a minor decrease in overall shape accuracy but the tension in both curves helps pull everything back into shape. The accuracy penalty for making minor shape adjustments on this type of geometry tends to be much less than when it's used on intersecting shapes with strong linear features.

    Becoming proficient at subdivision modeling does require practice but it also requires learning to see the underlying shapes and being able to extrapolate new solutions from existing knowledge. Limited experience can be a barrier that makes it difficult to take relevant examples and apply them to new problems. The basic principles will work on most shapes. Start by learning the fundamentals and build up from there.

    Below are a couple examples that show how the topology for a through hole is essentially the same as the topology for a boss. The only difference is one pushes inwards and the other pokes outwards. There's very little magic. It's mostly about repetition and rhyme.

    There will be challenges along the way but it's important to keep going and to study how other artists have resolved similar problems. Sometimes it seems like it can't be that easy [because sometimes it's not] but it just take thoughtful practice and evaluation. Experimenting with different topology solutions and comparing the results can help identify winning modeling strategies.

    Here's another example: surely an oblong through hole must have different topology than what's needed for a circular through hole! Nope. It's pretty much the same, just split the circular through hole and fill the gap. Fundamentally it's mostly the same or variations on a theme because the underlying process (subdivision smoothing) is relatively consistent. It's all repeatable which is why it's important to research, experiment, evaluate and repeat.

    Below is another example that's a variation on the theme: does it need more geometry or does it just need better geometry?

    Well for starters it's overly complicated and poorly organized. But remember that there's cases where more geometry is a brute force solution to problems with the underlying shapes. Effective subdivision modeling is about using the minimum amount of geometry required to accurately hold the shapes.

    Here's an example of how a better result can be achieved with the same amount of starting geometry. Start by defining ALL of the basic shapes, use the existing geometry as support for shape intersections and place the intersecting geometry on or between existing segments as appropriate.

    Below is a comparison of the same shape with different mesh densities. Under optimal conditions there's very little practical difference between all of these. With that said, there will be certain situations where increasing the sharpness of the edge width by adding additional support loops will require more geometry to support the increased edge sharpness.

    Again it all comes down to what the project requires and knowing how and when to make tradeoffs between accuracy and efficiency. This is why it's important to block out everything beforehand and evaluate how accurate things need to be based on player view distance.

    How about this shape? More geometry or better geometry?

    Parallel edge propagation is making an absolute mesh of the underlying shapes. This is a case where increasing the geometry density will help and so will adjusting the placement of the cylinder's edge segments so the intersecting geometry is properly supported by the existing geometry.

    Here's one example of how these smoothing issues could be resolved without throwing a lot of geometry at the problem. Start by blocking out the shapes then match up the segments of the intersecting shapes. Try to preserve as much of the existing geometry as possible and use it as support for the shape intersections.

    The initial result is much cleaner than the previous version but it does have some unwanted deformation near the peak of the circle at the end of the slot. This minor imperfection can be resolved by shirking the height of the circle's center vertex at the surface of the curve.

    As before, increasing the geometry density does tend to increase the overall accuracy of the shapes. The question is how much has this increase improved the results and how much has it complicated the underlying mesh? The answer depends on the quality goals for the project.

    It's also worth noting that, when increasing the geometry, it doesn't always have to be an even number and the segments don't always have to align perfectly. it's very common for artists to stick with common even numbers like 8, 16, 32, 64 or 12, 24, 48, etc. All of these numbers are easy to work with and visualize but sometimes it's better to use less conventional numbers like 10, 14, 20, etc. Sometimes it's more important to line things up with the intersecting geometry than it is to have a common number of segments.
  • 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.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon polycount lvl 666

    Subdivision [Saturday] Sketch: Camera mount baseplate.

    Last weekend's hard surface sketch continues with the camera rig theme. Here's a subdivision model of my favorite lightweight camera mount for standard 15mm rods.

    Another modifier heavy workflow where the basic shape is created with a series of boolean operations on a mirrored base mesh. Most of the support loops are generated by modifiers that are controlled by vertex groupings and edge weights. The waffle pattern on the rubber pads is a floater that's generated by a simple tile pattern and trimmed with a boolean operation.

    Some parts were reused from the previous project and everything is built to scale in real world units.

    Top row: shaded subdivision preview.
    Middle row: wire frame subdivision preview.
    Bottom row: base meshes with the mirror and bevel / chamfer modifiers turned off.

    When it comes to modifiers and non-destructive modeling there's a lot of different ways to approach creating the shapes but it's always important to evaluate the overall practical efficiency of the entire process.

    Some artists recommend only using unedited primitives with boolean operations. The argument in support of this strategy is that everything can be walked back to the original starting primitive and avoiding mesh edits will maximize the non-destructive editability of the surface features. While this type of modeling strategy can make sense on projects where large, continuous changes can be expected, there's often a significant efficiency penalty to brute forcing shapes with unedited primitives and over complicating the boolean stack.

    The idea that everything needs to roll back to unedited primitives to mimic CAD processes doesn't really hold water because drawing flat dimensional sketches and extruding basics shapes is an actual process used in CAD workflows.

    In most cases it will be more efficient to combine modeling operations wherever possible by editing the underlying shapes that drive the boolean operations. Keeping these mesh shapes simple and controlling surface features with other modifiers reduces complexity without sacrificing editability.

    Here's the basic modeling process for the camera mount's metal base plate. Start with the overall dimensions and use snap to grid to keep all of the mesh components in line when blocking out the basic shapes. Use bevel / chamfer modifiers to add chamfered and rounded corners that can be adjusted at any time. Both edited and unedited primitives can be used to define key surface features. Sketch out flat outlines of the complex pocket features and use modifiers to solidify the shape and add corner radii.

    Most boolean operations will leave behind some unnecessary geometry. Once all of the major features are present and the model is approved then it should be safe to apply the boolean operations and cleanup the mesh by triangulating and running limited dissolve.

    This editable base mesh can then be used to create both the high poly and low poly models. Add a bevel / chamfer modifiers to preview the edge width before cutting in surface features that are close to the outside of the shapes. A mirror modifier is used to simplify the base mesh and bevel / chamfer modifiers, controlled by face angles, edge weights and vertex groups, are used to automatically generate support loops that can be adjusted at any time.

    Here's the modeling process for the rubber pads on the top of the base plate. Start with the basic shapes and use bevel / chamfer modifiers to generate the corner radii and support loops.

    The waffle pattern is a simple inset tile that's repeated across the top of the surface and trimmed with a boolean operation. This surface detail is floating geometry [floater] so it's basically a one sided mesh that sits above the base mesh. More often then not it will be more efficient to add minor surface details like this using texturing tools.

    There's a lot of basic shapes and a few complex intersections with compound curves but the base mesh is fairly simple. All of the support loops are generated by un-applied bevel / chamfer modifiers and remain fully editable.

    The simplicity of the base mesh and use of modifiers means that making minor changes to the shape won't be an issue. Any major changes can be made by going back to the block out model with the active boolean operations.

    Additional standardized parts can be pulled from previous projects to save time. Here the flag head clamp screws are reused from the rosette clamp model.

    Keep the base mesh simple and use modifiers whenever possible to avoid repeating manual editing operations. Avoid over complicating non-destructive workflows and use destructive editing where it makes sense. Work in real world units and reuse components from other projects.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon polycount lvl 666

    Subdivision modeling: corner topology edge flow.

    Topology layouts for sharp, angled corners are fairly simple but often overlooked. This is why it's important to build a solid understanding of how different corner topology layouts impact edge flow, mesh complexity and smoothing behavior.

    Most corner topology can generally be described as being either boxed or mitered. Boxed corner topology tends to produce a linear edge flow where adjacent support loops intersect and run off the end of the shape. Mitered corner topology tends to produce a continuous edge flow that follows the form of the underlying shape.

    Both are viable but it's important to remember that efficient subdivision modelling is about cleanly directing edge flow while using the minimum amount of geometry required to accurately represent the shapes. The overall goal should be generate an accurate base mesh that's easy to edit and relies on the subdivision to generate smooth shape transitions and polished edges.

    Here's an example that compares the underlying topology layouts and edge flow for both individual loops and support loops. The top row shows how boxed corner topology creates linear edge flow channels that direct the loops across the mesh until they intersect each other or run off into adjacent shapes. Compare this with the bottom row where the mitered corner topology creates continuous edge flow channels that direct the loops around the mesh without generating any extraneous geometry.

    Enabling subdivision preview shows how the smoothing behavior deforms the underlying mesh and highlights where additional edge loops are needed to support the corners.

    The linear flow of the boxed corner topology does provide some additional support for the outside corners but this extraneous geometry could be problematic if it runs out into other topology layouts on adjacent shapes. Mitered corner topology layouts tend to use less geometry and in most cases this will make it a bit easier to work with.

    When comparing the results of the two topology layouts: there's often no significant perceptible difference in the overall quality of the shapes but there does tend to be a difference in overall geometry efficiency.

    Another important thing to consider is whether or not the support loops need to flow around the shape to support additional details. The continuous edge flow of mitered corner topology tends to make it easier to select and adjust the loops that support the shapes.

    Mitered corner topology also tends to make it easier to make consistent adjustments to adjacent corners without effecting adjacent surfaces. With that said, there are certain edge cases where the linear flow of boxed corner topology is needed to support additional shape intersections and surface features.

    Which topology layout makes the most sense will depend entirely on how the support loops interact with the surrounding shapes and whether or not the mesh needs to be edited again in the future.

    Choosing to use mitered corner topology isn't always that obvious. Certain types of shape intersections do require grid topology or intersecting loops to support the shapes but they can often be further optimized by using mitered corners on the perimeter support loops. The first and second row in the example below shows how support loop topology can be optimized to produce better results with less geometry.

    There's also some specific edge cases, similar to what's shown in the third row, where secondary surface features require additional support and support loops need to turn corners or flow around complex shape intersections. In cases like this the mitered corner topology will help direct the edge flow without creating extraneous edge loops that flow off into adjacent shapes.

    Optimizing the topology layout and edge flow will help reduce extraneous edge loops that tend to increase mesh complexity without providing significant improvements to the overall visual quality of the final mesh.

    Effective subdivision modeling is about balancing accuracy and efficiency so it's worth taking the time to block out all of the major shapes and figure out the most effective topology routing before jumping in and investing a significant amount of time adding support loops.
  • 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 polycount lvl 666

    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 polycount lvl 666

    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
Sign In or Register to comment.