Home Technical Talk

How The F*#% Do I Model This? - Reply for help with specific shapes - (Post attempt before asking)

Replies

  • wirrexx
    Offline / Send Message
    wirrexx ngon master
    Bear with me, i fucked up the shape (no ref used) But.
    1. Create the main shapes that define your object
    2. Create the part that will be subtracted or added to your primary shapes.  For ex. The big cylinder in the middle is to cut a curve into the base big rectangular shape. However the spherical shape (the sphere that is seperated into two parts) will be added to the middle part by simply aligning them and joining them, later i weld all the vertices.
    3. Picture 4 (middle one) you can see that i have joined all shapes. But the picture after i started to clean it up and made sure that the top. Is even. Why? I'll tell you in the next step.
    4. Picture 7 is the mesh but subdivided once, the clean up i did before that step, was to get even out shape so i could cut in the last part. The holes.
    5. Compare picture 6 to 8. Picture 8 has clearly more "divisions" so i could cut in the smaller shapes.

    Summa summarum like we swedes say. Build the Primary shapes, Add the Secondary shapes too make sure that the topology supports eachother. Start Boolean/cut or add/intersect stuff. When that is done, add supporting loops to hold the shape for atleast 1-2 Subdiv. Add the smaller parts.

    Best REgards.. the one that fucked up the shape.

  • rtos
    Offline / Send Message
    rtos polycounter lvl 2
    I'm trying to model this chain in Blender and I can't find any good way to do it. It's mirrored both on the X and Z axis (Z is up in Blender) but flipped, so I can't use a standard mirror modifier. You can do it with an Array modifier but it's really funky, you can't reliably move points that are mirrored so it's a pain in the ass to match align them between the 3 mirrored objects and you main object which has editable geometry.

    Arrays modifiers use Object offset with 2 emptys rotated on an axis at 180°. Merge option is turned on of course and I turned off relative offset. I think this technique is mostly used to get radial symmetry in blender but for my case that's all I could come up with.

    Working with array is a pain because it hasn't been designed to do that. Merging vertices is really complex and it's even hard to think about your loops. Because you have no equivalent to the clipping function in the mirror modifier you really on automatic merging distance within the array modifier, which is horrible since the snapping function doesn't work reliably with arrays, so good luck getting a decent topology with this workflow.





    My best attempt:






  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    @rtos That kind of looks like Cuban style chain? Do you have a reference photo of the exact type of link?

    The array modifier has a distance merge option and the values can be set very low. Having the bevel in the middle of the stack may be compounding the problem. Try running all the array modifiers first then run the bevel.

    Here's what I came up with using a similar technique: my stack is array (Z -180) array (Y 180) bevel (1 segment small width and .5 profile) subdivide. The shape of the chain is more a rotated copy than a direct mirror.



    It was actually faster to model the entire chain using low segment primitives and then deleting the unwanted geometry. Keeping the array modifiers in preview and using the gizmo it was fairly easy to figure out how the verts needed to move so they would merge. The object rotation and orientation of the mesh do play a role in ease of editing.

    Given the shape it might just be easier to keep the base mesh as low poly as possible and model it. There are alternate options for Cuban style chain using solidified curves and boolean operations but that may not fit what you're looking to use the final mesh for.
  • rtos
    Offline / Send Message
    rtos polycounter lvl 2
    @FrankPolygon Ok so basically I just need to keep at it but you gave me hope! Sorry I couldn't edi my post to add references, polycount is very troublesome for me on Firefox idk why.
    I like your result it's pretty good, my particular cuban chain (didn't kjnow they were called like that, thanks!) has a strong dip and the bevel is running all around it, it has a pretty complex flow but I guess I'll just restart tomorrow with a fresh mind full of hope and take my time modeling it properly.
    Still not very satisfied with how this work, I feel like Blender could offer a better way than the array modifier for that.
    You suggested curve and boolean which I tried too after feeling frustrated with my first attempt but my model is actually quite a lot more complex than what you shown, so it didn't work as I need a lot of flowing edges. I think I'm going to dumb it down a bit and see where it gets me. I don't need all the details anyway.
    Thank you!
  • rtos
    Offline / Send Message
    rtos polycounter lvl 2
    @FrankPolygon Took me 2 hours but got it pretty close to my reference in the end.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    @rtos Looks like you got the shape. Were you able to use a mirror modifier stack or did the empty offset arrays work out?
  • rtos
    Offline / Send Message
    rtos polycounter lvl 2
    @rtos Looks like you got the shape. Were you able to use a mirror modifier stack or did the empty offset arrays work out?

    I had to use the double array trick, it was the exact same technique I used before but took more time and avoided moving too many vertices at once, trying to keep the edge flow between arrays managable if that make sense.
  • Maya2025

    It depends on a lot of things. Does the shape need to maintain those flat segments? Does the shape need to be completely round? Does the shape need to be made in zBrush?

    In a standard modeling package I'd try something like this:


    Start with a base shape. Cut in some edge loops. Create a single repeating part, copy it and merge it down. To create the single part: scale the outside verts along the edges. Inset. Inset. Add a loop for support. Copy and merge down the segments. This technique will still work if you need the hard segments. Adjust the starting shape's segments as needed. There's a few other ways you could cut in geometry if you need more accuracy. Again it all depends on the size of the object and how you're going to use it.





    Wow, it helped me a lot !! thank you so much. !!

  • UhhNope
    Having a bit of an issue where this smaller cylinder intersects a larger one. It looks great subdivided until I look at the profile view and see it's all lumpy on the side of the larger cylinder where it meets the smaller one:


  • yakoho
    Hey guys. i'm trying to model a plane. the way i decided to approach it, is to create all of the major parts separately, and then connect them together, as the parts are quite complex in form i find this technique better than just creating the plane as one object. So i made all of the parts (main fuselage, wings, chassis...), and now all there left to do is to connect them. i had little problem connecting simple parts, but currently struggling to connect the most complex one - the wing section. as you can see on the pictures the sub-d level i have on it is quite high as i had to crank it up in order to model the flaps and other details on the wing. i seem to be able to connect the top and the bottom side without too much struggle, but the left and the right sides are just too hi-poly. i'm trying to reduce the amount of loops on these sides but some of them go along the details and i'm forced to keep them. So i wonder if anyone can help me with this? is there any good way of reducing the geometry in these spots or anything else i can do? Thanks!
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    Shading / subdivision errors on cylinder intersections is a common problem. There's a few ways to fix it and what's right for the project will depend on factors like object size, view distance, object importance, etc.

    The basic idea is: subdivision modeling won't produce CAD quality results. There will be errors and the goal is to either confine the errors to a small area or to average the errors out over a larger area. Pinching and undesired deformation on the existing mesh can be manually adjusted out but at the cost of accuracy. Whether or not that's acceptable is up to you to decide.

    The pinching and sinking errors are caused by: low segment count on the large cylinder (combined with the tight edge loop at the base of the intersection) and stress from the flat area in the loop layout where it meets the segment in the big cylinder.

    To resolve the issues in the existing geometry: remove the edge loop at the base of the intersection on the big cylinder's side. This allows the subdivision to average out the errors over a larger area. Scale or move the highlighted vertex in the big cylinder's wall segment down until it falls back in line with the cylinder's diameter when in subdivision preview mode. This will compensate for the stress and even out the distance around the intersection area. This low density geometry is viable and easy to edit but requires more manual editing and isn't always accurate.

    Another option is to increase the segment count on the large cylinder until it matches where the segments on the small cylinder will intersect. This provides more support and reduces the area where mesh errors can occur. The denser mesh requires less manual adjustment and is more accurate but may be harder to edit if there's lots of changes down the line.



  • UhhNope

    Another option is to increase the segment count on the large cylinder until it matches where the segments on the small cylinder will intersect. This provides more support and reduces the area where mesh errors can occur. The denser mesh requires less manual adjustment and is more accurate but may be harder to edit if there's lots of changes down the line.

    Curious about this option: How can I add more segments to the large cylinder without starting over or losing the cylindrical shape? I'm using Blender.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    It's a destructive process so there are two concerns: preserving shape accuracy and avoiding manual work. Manual work is slow and the results are often inaccurate. Tools (used correctly) will be faster and more accurate than pushing points around manually. There's a couple ways to quickly re-build the shape without doing a lot of manual editing. It's also possible that there's an add-on or plugin that would help rebuild it with minimal editing.

    On super simple shapes, just rebuild them. It's going to be faster and more accurate. There's no sense in comprising and throwing more work after something that's fundamentally flawed. The process to re-create this would be: insert two new cylinders of an appropriate size and segment count, join object, boolean, select edge loops, bevel, clean up the four pole areas, add loop cuts, connect the verts and it's done. With that said, sometimes you have to re-work a small section.

    If I wanted to salvage the mesh this is how I'd do it.

    First row:
    Move the base of the small cylinder inside of the large cylinder along normal constraints. Split the small cylinder and large cylinder at this loop. Fill the open face on the small cylinder. (Keep the small cylinder concentric and of an equal diameter.) Snap the cursor to the center of the large cylinder's diameter. Edge loop select the top segment of the large cylinder and duplicate it. Use select linked to grab the large cylinder and delete it.

    Second row:
    Spin the copied cylinder segment to re-build the large cylinder with an appropriate number of segments and merge. Select the small cylinder and run a boolean union. Run the bevel operation. Merge down the vert on the outside loop so the line segment on the cylinder remains parallel. Edge loop select the left over geometry and edge loop delete. Run tri to quad.


    Third row:
    Split the shape in half, fill the end cap, add an edge loop to the large cylinder, mirror, merge and recalculate normals outside. Select the n-gons, triangulate, run tri to quad.

    Fourth row:
    Finished geometry and subdivided result.

    Lots of steps but the payoff is an accurate mesh that subdivides cleanly. The tools are keeping things parallel and concentric. Merging down to specific verts is slower than distance merging but it keeps the verts from wandering around. Mirroring and cleanup tools help cut time wasted by manually connecting verts to make quads, etc.

    With the command menu and hotkeys the whole re-build (shown above) took less than two minutes. Creating the same shape from scratch takes less than a minute and a half. If a mesh segment is junk then throw it out and start over. No sense in compromising or struggling with something that may come back to bite later in the project. If you can find an add-on tool or plugin that will do this and maintain accuracy then it's worth using it.

    The earlier geometry was viable but it needed some manual adjustments. It would be fine for a small part on a background prop. For a large part on a hero prop then it's worth the time to rebuild it.

  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    @yakoho

    One option is to cut vertical edge loops in the fuselage to match the segments on the wings before joining the two. Where the wing is partially connected I can see potential problems if the vertical loops are cut into the skewed horizontal loops.

    It might be worth going back a step on that section of the fuselage and cutting the loops without the wings attached. Then attach the wing and graft that section of the fuselage back onto the rest of it. Depending on what you're looking to do with it and what you have for revision files saved, maybe match up the fuselage section with the wing at a lower subdivision level before merging them?


  • abronee
    Offline / Send Message
    abronee polycounter lvl 4
    Hi everyone!

    Could anyone help me on how to tackle this topo- wise. It's a wood pillar with an inset for a horizontal woodplank.

    Thanks and happy holidays!

  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    @abronee Happy holidays to you too!

    What sort of trouble are you having with this model?

    There's a discussion about cutting square holes in cylinders on page 168 and a discussion about adding squares to the outside of cylinders on page 169. See if any of those posts cover the issues you're running into. If you need more information: let us know what's happening with the mesh and what you expect to happen with the mesh.
  • yakoho
    @FrankPolygon ok thank you for answering.

    So what are you saying is basically what i was doing, adding cuts to the fuselage from the top and from the bottom to connect them to the wing section, as you can see on the 1st picture i added a lot there on bottom, since that part of the fuselage has no wild curvature and the mesh itself is subdivided already, so adding these cuts don't seem to mess with the model's curvature at all and i got it connected at the bottom and the top.

    My bigger concern are these parts (how would i conect them horizontally.) any way i can reduce the amount of those horizontal loops? as i said, many of them are parts of some details on the wing,  so i can't just remove them 



    Btw, I'm using boolean union to connect the parts and then i fix everything by hand, here are those parts before the boolean:

     
  • Krychazz
    Hello,

    I'm trying to model this piece:

    I've attempted to do it using Zbrush, the high poly looks good and quad re-meshing it gives good enough smoothed result but the geometry is very messy:


    I just feel that this should not be as complicated, does anyone has any tips on how to achieve a cleaner result? maybe with some other technique.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    A lot depends on how the model will be used. Is it going to be used as is or will it be subdivided again?

    If it's going to be used as is then just match the segments as best you can and let some of the segments join as tris.

    If it's going to be subdivided again then matching the segment counts and having clean loops is going to be fairly important. Stepping back one subdivision level on the wing would make it easier to blend the wing to fuselage fairing into the body. After that's done the mesh can be subdivided again.

    Another thing to look at is whether or not there's a seam in this area that's visible in reference photos. (What type of plane is it?) Most of these wing to fuselage fairings have a seam on the wing side, the fuselage side or both sides. If the real fairing has seams then you can model it as a separate part and blend it into either the wing or the fuselage. That way it's easier to model and true to life.

    If the seam is on the wing side then you can have less dense geometry where it blends into the fuselage while matching the shape where it meets the wing. If the seam is on the fuselage side then you can project the last edge loop onto the mesh and call it good. If the seam is on both sides of the fairing then it might be worth reducing the mesh density a little. Again it all depends on what the real plane looks like and the intended use for the mesh.
  • SnowInChina
  • yakoho
    @FrankPolygon
    I'm making this model as a game asset. After this hi-poly is done, I'll then build a low-poly on top of it, and use the hi-poly to bake various maps. And yeah, the model would be subdivided again, so i'm trying to do it the proper way, since my last reply i did managed to connect the parts in a not such terrible way as i thought i would, the topology turned out not that bad, i also had some problematic tri's but i decided to leave them, since they don't seem to affect the sub-d at all and solving them into quads would be more problematic. so after all it turned out alright. thanks for the help. this is my first big model so i'm learning a lot
  • UhhNope
    More problems with cylinders.   :s

    I successfully took care of the first step which was joining a smaller cylinder perpendicularly to a larger one, but now I need to join another, slightly larger one like so and I don't know how to proceed as with the last one because it's edge count doesn't line up nicely and I can't move anything on the existing merged cylinders.



  • sacboi
    Offline / Send Message
    sacboi high dynamic range

    UhhNope did you try adding another segment to the large central cylinder?

    Just save what you have then redo by adding a new cylinder and test whether an extra segment/s are required in order for both sets of control edges to form a good union?

    EDIT:

    Check out FrankPolygon's technique, backtracking 12 posts above simplifying the process without to much manual editing, when reworking simple shapes. 

  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    It depends on which critical part is going to constrain the surrounding geometry but the basic principle is the same: match the edge segments of the intersecting geometry. If that's not possible (because of some geometry restriction) then the next best thing is to either spread the error out over a wide area or limit the error to a small area that's out of the way.

    The small cylinder looks good but where it breaks down is planning ahead. Using the minimal viable geometry, maintaining good edge flow with matching segments and reducing or hiding shading errors is more or less the crux of subdivision modeling. It becomes easier with practice to see how thing will fit together with minimal editing.

    Let's look at a couple scenarios:
    All cylinders can be adjusted. Use less geometry for the smallest cylinder and use more geometry for the two larger cylinders. Use more geometry for all of the cylinders. (The latter is not recommended.) Using a primitive editing plugin in Blender will speed up this process.

    All cylinders can't be adjusted. Use a wider transition area around the base of the intersection and slide some of the geometry along edge normals until the triangulation errors are limited to an area where it's not visible. Leverage tools like edge loop select and edge loop slide to move things quickly and evenly. (It looks like this is a small intersection on a larger object so the joint will be covered by either weld details or surface imperfections in the normal texture. In the grand scheme of things, minor imperfections like this are inconsequential. Avoid wasting time perfecting things the players won't see or notice.) This geometry is viable, even if it's a little messy.

    Only the medium cylinder can be adjusted. Use a higher segment count on the medium cylinder until it matches the segments on the large cylinder. Changing it from 8 segments to 10 segments will get it close enough. Run the usual boolean, bevel and cleanup operations. (If a wider loop is used on the big cylinder side, slide the control loop down on the medium cylinder to sharpen things up.)

    Both strategies in scenarios 2 and 3 are viable for most projects. Having a few triangles or n-gons (that subdivide properly) isn't the end of the world. What's "best" comes down to what saves time, works well with surrounding geometry and looks good when baked down and textured.

    Here's an example of the same shape made using the last two strategies. Can you tell which is which?



    This question comes up a lot so let's take a deep dive into it and look at the hows and whys.

    Starting at the block out stage it's obvious that the eight segment version will require some finessing. In most cases: the simplest, straight forward way to get around this is to adjust the segment count until it's close. When this isn't possible it comes down to controlling where and how the mesh subdivides and minimizing shading errors.

    Eight segment on the left, ten segment on the right. Block out and boolean the shapes together. Close is good enough. If it's not perfectly aligned that's ok. Subdivision models aren't perfect. Get it close and use a wider bevel (chamfer) size to compensate.


    Manually generated shapes tend to be inaccurate and since these shapes were generated by tools (like create primitive, spin and boolean) we trust that they are "correct". The goal is to preserve the accuracy of these shapes and create a controlled transition from one shape to the other. Keeping the highlighted verts and edges straight will prevent the mesh from going lumpy.

    The middle edge loop (at the base of the intersection) is important but it's going to be used to take up the difference between the two outer control loops. Selectively merging down the outermost verts on the big cylinder side of the intersection allows for a quick clean up using the edge loop select and edge loop delete tools.

    Each segment can be merged down and cleaned up in a couple of clicks and key strokes. With a shape like this it's recommended to work on half and mirror it over. No sense in doubling the work.


    Below is what the mesh looks like when it's cleaned up. Note how the slop was taken up between the middle edge loop and the control loops. (There's on edge on the 10 segment cylinder that I decided to merge down in line with big cylinder's segment but the opposite would have been viable.) The eight count version pinches a little but it doesn't break the shading so I'm ok with it. Where the triangle is placed and whether or not to use an n-gon in this area is up to your personal preference.


    The final product. This sort of question comes up a lot so I think the big things to take away are: block out stuff before diving in, match segment counts where possible, control the edge flow to minimize shading errors, rely on geometry generated by tools, avoid overthinking and go for it.



  • sacboi
    Offline / Send Message
    sacboi high dynamic range
    @FrankPolygon like your style, straightforward and concise mini-tutes readable for anyone willing too learn, regardless of experience...oh, by the way congrats making the front page, nice one :)
  • miners

    It kind of looks like there's a step between some of the parts which suggest they're separate pieces. If that's the case then it would be easier to model the parts individually. Is it some kind of stamped metal shroud?

    For the mesh you already have: the simplest solution is to run an inset on the flat area, merge down any messy verts and connect the edge loops where necessary. The loops running into that area will end on a flat so it can be a little messy.


    If you were starting over from a clean block out you could do a chamfer along the hard edges and clean up any stray verts or pinching edges. On the actual shape there's a few spots where you can leverage existing geometry as edge loops. This example doesn't have those areas.

    Oh yeah i got it now thanks a lot realy helpful advice 😁
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    yakoho: Good to hear you were able to resolve the issues by working through it. Best of luck with the rest of the project!

    sacboi: Thank you. Glad to share and hope people find it helpful.

    miners: You're welcome.
  • UhhNope
    sacboi said:
    @FrankPolygon like your style, straightforward and concise mini-tutes readable for anyone willing too learn, regardless of experience...oh, by the way congrats making the front page, nice one :)
    Agreed. Thank you, I am learning a lot very quickly about hard subdiv modeling thanks to your guidance.  :smiley:

    I had a bit of trouble planning this model because it's a bicycle frame and I have to plan the intersection of 5 differently shaped cylinders all at once at different angles. So for example increasing the geo on the medium cylinder in the last example means I have to join it with a smaller cylinder with less geo up at the bike seat.  :s
  • Filip5
    Offline / Send Message
    Filip5 polycounter lvl 8
    Hey guys, here I have  basic question in Blender, which is giving me headache for past 2 hours. How do I model bending on this wall ?



    I used to do this in Max, there was an option to move gizmo, which solved it. But seems blender is only capable of  blending to circle. Even simple deform modifier didnt do the trick as it was bend into circle again.  So how can I achieve this instead of doing it manually ?
  • sacboi
    Offline / Send Message
    sacboi high dynamic range
    @Filip5 try the Shear modifier.
  • Filip5
    Offline / Send Message
    Filip5 polycounter lvl 8
    sacboi said:
    @Filip5 try the Shear modifier.
    Shear isn't exactly the tool I am looking for. I would still manually have to do each part. More like I am loking for something like setting a cursor, then clicking and blender would add curved faces. But if I recon right, there should be something like that, shouldn't it ?
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    @Filip5

    It sounds like the process and result you're describing is the spin tool or a curve / array modifier combination. The curve and array modifier workflow is more complex and wouldn't make sense unless there was repeating geometry in the field between the arch components.

    (If neither of these is the workflow you're looking for: it may make sense to post the question in the Blender thread here in the technical talk section. Seeing an example of the Max workflow you're trying to replicate may also be helpful.)

    Here's an example of re-creating the arch shape using the spin tool:
    • Establish the radius of each arch element. (The outer edge radius is larger than the inner edge radius.)
    • Delete the face connecting both arch elements.
    • Place the 3D cursor tool at the appropriately sized circle's origin.
    • Select the top edge loop on the inner arch component.
    • Use the spin tool to duplicate the geometry along the circumference of the circle.
    • Repeat the previous three steps with the outer arch component.
    • Loop select the inside edge loop between both arch elements.
    • Use the bridge edge loop function to fill the faces with quads.
    • Use the mirror modifier's bisect function to automatically cut and merge the arch's center point.
      (Alternately: cut and clean up the mesh manually.)


  • Daf57
    Offline / Send Message
    Daf57 polycounter lvl 9
    Hey all, need a bit of help, please. I'm using Max 2020  -  I'm trying to model an adjustable clamp bit around the stock, and other parts, of this rifle. This is a high poly venture - that's why I would like to model this bit rather than add as a normal map. Right, so I've added some pics of what I mean and what I've tried. I started by detaching a bit of the lower stock and then subdividing it up - dot loop then deleting the "holes" for the clamp. But it goes awry at that point. The border  edges keep the stock's shape but all the additional edges I've added really jack up the face. So what would be the best way to model the clamp bit with the holes? I could try boolean but setting it up will be a bit of a task - plus I'd love to learn how to do it with poly modeling, if possible. Thanks for any help!
    Daf

    First image - I've circled all the places where I will need a clamp bit.


    So I detached a strip from the stock to be the clamp...


    Dot loop - for the holes (the additional edges are there from the stock - they will be removed)


    The result - yikes!


  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    The base geometry that's controlling the subdivision isn't dense enough to support the perforations. For that to work the mesh would have to be subdivided to an appropriate level before the perforations are added. There are several alternatives that will look better, work better and require less effort.

    If the model is going to be high poly only then it's acceptable to have through holes on overlapping components.

    If the model is going to be baked down to a low poly then there are situations where through holes on overlapping components can result in baking errors. In these cases the low poly will also need through holes (increasing the geometry density). Alternately: the through holes on the high poly can be simulated by tapered blind holes that bake down without producing artifacts. It's also worth considering that the highlighted areas (with the exception of the strap on the scope) won't normally be visible to the player. Increasing low poly geometry to support clean bakes on all those through holes would eat a lot of resources that could be better used elsewhere.

    Adding these perforation details to the normal map is going to be the quickest and least resource intensive workflow. That said, it is possible to add them to the high poly without spending a lot of time on them.

    Adding these perforations to the high poly could be done in several ways:
    • Subdivide the base geometry until it has a sufficient number of segments to support insetting the perforations.
      (Labor and resource intensive - not recommended.)

    • Create a small portion of the clamp's strap and use an array / curve / spline modifier setup to deform the strap to fit around the underlying shapes. (Efficient and easy to adjust - recommended if the goal is pure subdivision modeling.)

    • Create a single perforation floater and copy instances across all of the straps. (Very efficient but could cause minor baking errors on tight curves and doesn't look good in a high poly render - recommendation depends on the end use.)

    • Create a boolean perforation mesh and re-mesh the resulting geometry with ZBrush, Quad Remesher, etc. (Requires additional software and processing. Viable but may be slower than the section curve array method. Not easily editable without re-meshing.)

    • Create the straps with subdivision modeling, export them to ZBrush and sculpt the perforations into the mesh. (Viable but it could be time consuming and may not be able to produce the desired results.)

    There's probably a few other ways to do it but those were the top five that came to mind. Here's a comparison image of the following: segment arrayed along curve (baking), segment arrayed along a curve (rendering), floaters along a curve and boolean operation cleaned up in ZBrush.



    Trying to subdivide a copy of the existing stock mesh and working in the perforations is a lot of repetitive, manual work. Manual work sucks. Repetitive work sucks. Don't do it. Let the tools do the work. That's all there is to say about that approach.

    Creating a small portion of clamp band means it's less work to build, edit and adjust. This technique can be used with tapered blind holes for baking and with through holes for a render mesh. The modular segment tiles along it's length and is built up from half of the actual tile.

    It could be made with a quarter of a tile if the back side was also mirrored. Mirror it across it's face and it could be done with one eight of a tile... Though the inset might be a pain to do with only 1/8th of a tile.



    The way this works is the modular base starts out as a square, the ridges are cut in and extruded, the perforation is inset and edge loops or creases are added as needed. The modifier stack is mirror to build the modular tile segment, array to copy it into a strap, curve to deform the strap around existing shapes and subdivision to smooth out the mesh.

    The images above and below were made using the same base mesh and modifier stack setup. Any adjustments to the curve object are automatically reflected in the strap. This makes it easy to edit and fit to various surfaces. If I were doing this again I would just mirror the front to the back so there would only be one quarter of the tile to work with.


    Floaters (floating geometry) is a tapered blind shape with an outer lip that's parallel to the underling mesh surface but offset above the surface of the mesh. Since the shape is floating above the mesh there's no real concern about edge topology. The only thing to worry about is keeping the outer lip parallel to the underling mesh. If it's not parallel to the mesh surface then it will cause baking errors. There's different ways to achieve this. Shrink wrap with a surface offset is a common one. There's a little latitude in how parallel the flat part of the lip has to be but that's something you'd have to experiment with to find out what works on your particular part.



    For hard surface stuff, Boolean and re-meshing is usually faster than subdivision modeling. But in edge cases like this it's probably going to be significantly slowe than the other methods. This is especially true if the process requires a lot of manual placement of shapes that follow twisting and overlapping paths. The process itself is fairly straightforward. Punch holes in the mesh with boolean operations, export to ZBrush, polish the surface, re-mesh, export and re-import into your main editing application.


    Again. Let the tools do as much of the work as possible. The nice thing about the array / curve workflow is the mesh could be built in such a way that it's possible to have the inside of the holes filled (blind) for baking and then delete them for rendering the high poly. When it's a small modular piece controlling all of the straps on the entire model it's easy to make changes. That's the method I would use.
  • Daf57
    Offline / Send Message
    Daf57 polycounter lvl 9
    Awesome reply, Frank! Thanks a million!

    "Create a small portion of the clamp's strap and use an array / curve / spline modifier setup to deform the strap to fit around the underlying shapes. (Efficient and easy to adjust - recommended if the goal is pure subdivision modeling.)"

    This sounds like the way to go. I'll be working on this method first!

    Thanks again!
    Daf

  • Daf57
    Offline / Send Message
    Daf57 polycounter lvl 9
    Hello again - the bit below:
    use an array / curve / spline modifier setup to deform the strap to fit around the underlying shapes


    I might need a bit of a tutorial on the array/curve/spline modifier part. Do you create the clamp portion independent of the shape? The piece I cut out  of the stock ... I can't even get a good array going - not to where the pieces can be welded together. Tried the spacing tool as well and no luck there - see screenshot.
    Thanks!

  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    It looks like you're on the right path. The two basic components are the path the strap will deform along and the duplicated segment that makes up the strap's mesh. Both of these will be new and separate components from existing geometry and mesh objects.

    The basic workflow is: Create a straight and flat portion of the strap and tile it until it's the correct length. Create a path (curve / spline) that fits around the other components. Deform the flat strap around the path and adjust as necessary.



    There's a couple ways to do it but the basic principles used to create chains and belts are the same ones used here. To learn about setting up these modifiers and how to use their features, I recommend looking at Autodesk's official documentation for clone, array and path deform. It may also be worth searching for 3DS MAX 2020 video tutorials using terms like: array along spline, path deform modifier, belt modeling, chain modeling, etc.
  • ralphykwix
    Hi, i don't know if i done this correctly, is this okay or how to do it better?

  • Daf57
    Offline / Send Message
    Daf57 polycounter lvl 9
    I'm on it - thanks again, Frank!
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    It depends on what the mesh is for and if there are any shading or normal errors. If it's a low poly model then there's a lot of loops that could be removed to optimize the mesh. If it's a high poly model then the edge flow could be optimized for cleaner subdivision and easier editing.

    A few things to consider:
    Unless there's a technical limitation or shading errors, it's OK to have n-gons and tris in a subdivision mesh.
    Use the minimum amount of geometry needed to hold shapes without causing shading errors.
    Use wider control loops on edges to soften the mesh so bevels and edges remain visible when baked down and viewed from a distance.
    Establish edge flow paths early in the block out and match the segments on cylinders to adjoining geometry.

    Here's what the base geometry looks like when it matches the number of segments on the cylinder. From here it's just a matter of running a quad chamfer / bevel operation. Establish a clean base and try to rely on tools for generating additional support geometry. Manual work tends to be time consuming and inaccurate.



    This is what the edge flow should look like after the support loops are added. The wide support loops are for illustration purposes.


    This example uses minimal geometry but still holds a tight edge. The polygons surrounding the circle could be triangles instead of n-gons. In most cases, flat surfaces will render and bake correctly with "messy" geometry like poles, miss matched edge loops, triangles and n-gons. Curved surfaces and areas near shape transitions are where problems with miss matched geometry can show up. Spend time improving the geometry where it matters.



    There's a trade off between efficiency and topology quality. What's right for a particular project depends on a variety of factors like object size / importance, view distance, high frequency normal details, mirror type materials, schedules, budgets, etc.
  • izmuze
    Hello All,
    I am having issues with the shape bellow, I think it maybe more of an edge flow issue or I am lacking some sort of basic understanding.
    In this model when I smooth it, I need the lines circled in with "A" to stay straight giving me that Z like swoosh.
    When I put extra edges on the side however it either cause lumps in my mesh where the curves from the nose and wings meet, or you can see the hard lines running up the wing towards the flat base.

    Sorry if the error is hard to see.

  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    @izmuze

    The short answer is: the vertical support loops are causing pinching where they meet the curve of the leading edge of the wing. Terminate these support loops closer to triangular notch, delete the remainder of the loop and leave the resulting triangles near the corner of the notch.



    Here's a break down of this shape:
    Start with the basic form and cut in additional shapes. Use tools that will maintain planar geometry. Avoid manually moving geometry to try and force things in to place. Use existing geometry as a guide for cutting in additional edge loops that will support the wing shape.

    Establish the top of the wing and add the radius on the leading edge. Add edge loops to the fuselage until the segments on both elements match. Blend the wing into the fuselage.

    Select the transitional edges (highlighed) and run a chamfer / bevel operation. This adds support loops around each distinct surface. Clean up any excess geometry (in this example it's at the base of the notch at the top) and apply a subdivision modifier.

    With this shape there's a couple things to watch out for:
    Try and keep all of the geometry planar. Manually moving geometry on surfaces with compound angles is likely to cause problems once a vert or edge comes out of plane. Continue relying on tools to generate the necessary geometry over trying to manually push things into place.

    Cutting in too much geometry can make it difficult to adjust things further along in the process. Let the subdivision do as much of the work as possible and use the minimal amount of geometry to hold the shape. (The web at the root of the wing is looking a little too dense.)

    Keep matching segments of intersecting shapes and support loops. Remember that (although the goal is an accurate mesh) subdivision is inherently inaccurate or approximate. Try to contain shading errors in a small area or average them out over a larger area.



    Using minimal geometry and keeping even segment width around shape transitions goes a long way in making a clean mesh. Match segment counts where possible and try to contain shading errors in a small space or average them out over a wider area.

    Here you can see there's a lot of stress around the top of the point and near the notch at the top. Tris and n-gons are fine on flat surfaces: the mesh still shades correctly and it looks like this area needs additional details. As the mesh develops the stress should average out. If not, cut some additional edge loops to support the top of the point.


    Here's a top and bottom view of the shape. The curved surfaces blend into the flat areas with minimal shading errors. Appropriate mesh density will vary based on secondary details, size and use.



    The key is to block out as much of the shape as possible and figure out how many segments you'll need to support the details. It's easier to start with the basic shape and work into the details rather than starting with the details and working backwards.

    It looks like you've got the basics down. So it's down to planning and practice. Hope that helps.

  • Klo Works
    Offline / Send Message
    Klo Works polycounter lvl 8


    which method usually is better for subdive left or right? 
    the left,less loop but less control than the right side. 
    so if anyone can  light me which one better specially if it was more complicated 
    thanks.
  • wirrexx
    Offline / Send Message
    wirrexx ngon master
    Klo Works said:


    which method usually is better for subdive left or right? 
    the left,less loop but less control than the right side. 
    so if anyone can  light me which one better specially if it was more complicated 
    thanks.

    I Prefer the right one on your picture (left on mine), cause that's how it looks when I extrude it. Lazy.


  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter

    It depends on what the mesh is being used for and what it's part of. Both methods are viable but with subdivision modeling the goal is to use the minimal amount of geometry that will hold the shape and maintain a smooth edge flow. Outside of the few edge cases where the boxed corner interfaces with other shapes, the mitered corner will be easier to edit, more efficient and have better edge flow.

    Mitered corners allow the edge loops to flow around the shape without crossing over or terminating. Boxed corners cause the loops to intersect each other where they cross over. On more complex shapes this can become a problem.


    Here's a comparison of both mesh flows with the support loops added. In most cases the edge width of the support loops will control the overall "accuracy" of the shape. Comparing the wire frames shows the overall stress patterns in the corners and the additional geometry added by crossing loops with a boxed corner.



    Here's a comparison of the above meshes with a tighter edge with and subdivision applied. There's very little functional difference in the accuracy on this test shape. If the shape was wider then adding an edge loop between both corners would help even out the mesh and sharpen things up near the edge.



    When it comes to control, the mitered corner allows for adding support loops without influencing the other corners. In some situations it would be difficult to route support loops around additional geometry when using the boxed corner topology.



    This comparison shows just how much additional geometry is required to add double loops to the box corner layout.



    What's "right" will depend on the project. Like wirrexx mentioned: there are cases where the boxed corner will be quicker to make. Whether or not the resulting topology is "right" will depend on how the shape interacts with surrounding shapes and whether or not you'll have to come back and edit it.

    In most situations the mitered corner is the better choice but without seeing the rest of the project and the surrounding shapes it's up to you to decide what's right for your project. Hope this helps.
  • izmuze
  • Brandon.LaFrance
    Offline / Send Message
    Brandon.LaFrance polycount sponsor
    @FrankPolygon If you were to compile all of your replies into PDF and put it up on GumRoad, I would totally throw money at you.
  • sacboi
    Offline / Send Message
    sacboi high dynamic range
    Ha...ninja'd by @Brandon.LaFrance that's exactly what I was going too propose, plus if Frank has time to spare I'd pay extra for whatever further subd meshy thoughts ruminating on his mind, probably goes for @wirrexx as well...come to think of it same for any other poly guru contributor, could evolve into a "Tome of Polygonal Subdivision Wisdom" of some sort.

    EDIT
    BTW @FrankPolygon, are you related too @perna, by any chance :D
  • Klo Works
    Offline / Send Message
    Klo Works polycounter lvl 8
    wirrexx @FrankPolygon   I really appreciate taking your time for explaining everything with images .. big thanks
    I will use the right one next time, because of "mitered corner ". I went back to one of my project and it was box corner .Yeah it was  pain to control the width of the edge.
    now I feel I understand a lot , thanks 
    <3 

    like @Brandon.LaFrance said  I will be next one to throw money lol.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon grand marshal polycounter
    @izmuze Glad it was helpful. It sounds like you have a solid process.

    @Brandon.LaFrance Thank you. I'm looking into this and when the write ups are formatted into a searchable PDF the link will be in my forum signature.

    @sacboi Thank you. There are some short form subdivision modeling tutorials in development and a long form article about creating game assets. I used to read polycount back in the late 2000's so both Joe Wilson and Per Abrahamsen deeply influenced my approach to subdivision modeling and efficiency. A big thank you to them for the paint overs, write ups and tutorials they've done over the years.

    @Klo Works Thank you for taking the time to ask the question. Every project you work through will validate whether or not a method works best in that particular situation.

    @polycount Thank you to everyone who submits questions and answers in this thread. It's a great resource for the community and I'd encourage everyone to participate.

Sign In or Register to comment.