Home Technical Talk

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

Replies

  • towser
    @FrankPolygon joined Polycount today and this was the first post I came to. Great reply and thank you - learnt a lot from it, just the sort of explanation I'm after (trying to build on my understanding of why we model things in a particular way - if that makes sense :-)). 
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    Hey guys, need some help trying to get a similar effect to this:



    Notice how the cylinders on the side blend well with the vertical cylinder? I am trying to replicate this but am struggling with the amount of sides for each cylinder and always end up with an amount that does not play well or is mis-aligned as I do want the two side cylinders to be different widths. I must note, I am fairly sure there are added loops on the vertical cylinder in the picture above as the edges are not perfectly even. Probably evened the distance of the additional vertical loops with set-flow.

    Here is what I have currently. The gray cylinder lines up nicely with the vertical one.


    However you can see with the green cylinder, because it is a different width compared to the gray, the edges don't match up:


    I have played around with different edge counts but can't seem to get it right. I am thinking the smaller green cylinder would need LESS edges compared to the bigger gray one? Even if I get the right count, I'm not sure how to get the green and gray cylinders to meet perfectly in the middle like this top picture.




  • Kanni3d
    Offline / Send Message
    Kanni3d interpolator
    @guitarguy00
     They don't have to be PERFECTLY aligned, you can just weld them together. You can see that these edges aren't perfectly straight, artist didnt have them perfectly aligned to begin with, but flows well enough

    (weld horizontal onto vertical cylinder's vertexes, if you weld other way around, you'll tamper with the silhouette of the vertical cylinder)


  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master
    @guitarguy00 You are on the right track. Really good start!

    The other model has a slight taper where the small outlet intersects the standpipe. This taper is taking up the size difference between the large and small outlets and evens out the intersection on the standpipe. Also the vertical edge loops are skewed to to meet the intersecting verts. This is fine for a low poly model but could cause distortion on a high poly model.

    Match the segment counts until they're close and run a Boolean operation. Clean up the mesh by merging down any left over verts onto the vertical segments of the standpipe. Cut a support loop on each outlet (near the intersection) and chamfer / bevel the loop at the intersection until they meet between the outlets. Clean up any loose geometry by merging down.


    The chamfer around the intersection is exaggerated for illustration purposes. See if this strategy works for your mesh and post screen shots if you run into any problems.
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    @guitarguy00 You are on the right track. Really good start!

    The other model has a slight taper where the small outlet intersects the standpipe. This taper is taking up the size difference between the large and small outlets and evens out the intersection on the standpipe. Also the vertical edge loops are skewed to to meet the intersecting verts. This is fine for a low poly model but could cause distortion on a high poly model.

    Match the segment counts until they're close and run a Boolean operation. Clean up the mesh by merging down any left over verts onto the vertical segments of the standpipe. Cut a support loop on each outlet (near the intersection) and chamfer / bevel the loop at the intersection until they meet between the outlets. Clean up any loose geometry by merging down.


    The chamfer around the intersection is exaggerated for illustration purposes. See if this strategy works for your mesh and post screen shots if you run into any problems.
    Thanks heaps for the detailed info! It will be a game model but baked down from a high poly. I will give this a go cause it has had my pulling out my hair but I can't walk away from it  :p

    You have a new follower on Artstation by the way :D 
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    Kanni3d said:
    @guitarguy00
     They don't have to be PERFECTLY aligned, you can just weld them together. You can see that these edges aren't perfectly straight, artist didnt have them perfectly aligned to begin with, but flows well enough

    (weld horizontal onto vertical cylinder's vertexes, if you weld other way around, you'll tamper with the silhouette of the vertical cylinder)


    Thank you bro, I will try this. I'll definitely weld the horizontal to the vertical and not vice versa.
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    @guitarguy00 You are on the right track. Really good start!

    The other model has a slight taper where the small outlet intersects the standpipe. This taper is taking up the size difference between the large and small outlets and evens out the intersection on the standpipe. Also the vertical edge loops are skewed to to meet the intersecting verts. This is fine for a low poly model but could cause distortion on a high poly model.

    Match the segment counts until they're close and run a Boolean operation. Clean up the mesh by merging down any left over verts onto the vertical segments of the standpipe. Cut a support loop on each outlet (near the intersection) and chamfer / bevel the loop at the intersection until they meet between the outlets. Clean up any loose geometry by merging down.



    The chamfer around the intersection is exaggerated for illustration purposes. See if this strategy works for your mesh and post screen shots if you run into any problems.
    This is my result after about 5 attempts. Struggled to get the right amount of edges. I started off too high because I do want this to be a low-poly game model baked from a high poly but also didn't want it too low poly. 

    Here it is with subdivision applied:

    The vertical cylinder has 36 sides, while the fatter side one has 28 and the thinner side cylinder has 22. There is some minor pinching where I have some triangles due to using different sided cylinders. I feel my example is not as clean as yours though.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master

    Reducing the segment count to the minimum amount of geometry required to hold a shape and maintain edge flow is a good strategy for subdivision modeling. The base geometry looks good. You have the basic shapes and loops working together. Definitely on the right track.

    The distortion between the two outlets can be corrected by increasing the loop count on the chamfer / bevel and adjusting the bevel profile settings until the fillet radius matches the reference image. This example is similar base mesh (32,24,16) and shows the stress patterns.


    I didn't see any triangles on the front of your mesh so they must be on the sides or the back? Edge loops can be cut in on the back of the stand pipe to match the horizontal segments on the outlet intersections. Triangles and n-gons are fine as long as they aren't causing visible artifacts. Part of subdivision modeling is controlling shading errors by either limiting them to a small area or averaging them out over a larger area. Sometimes it just takes a couple extra loops to match the surrounding geometry.



    The subdivision workflow for creating game models is usually something like this: start by blocking out the shapes with a base mesh. Use this base mesh to create the high poly model. Either optimize the high poly cage mesh by deleting edge loops and collapsing geometry or use the base mesh and build up the low poly model. Uv unwrap, setup mesh smoothing groups and bake.

    Technical requirements for high poly models and low poly models will be different. A lot depends on the project. Overall it looks like you have the process down. Now it's just a matter of working through the shapes and matching the reference image.
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3

    Reducing the segment count to the minimum amount of geometry required to hold a shape and maintain edge flow is a good strategy for subdivision modeling. The base geometry looks good. You have the basic shapes and loops working together. Definitely on the right track.

    The distortion between the two outlets can be corrected by increasing the loop count on the chamfer / bevel and adjusting the bevel profile settings until the fillet radius matches the reference image. This example is similar base mesh (32,24,16) and shows the stress patterns.



    I didn't see any triangles on the front of your mesh so they must be on the sides or the back? Edge loops can be cut in on the back of the stand pipe to match the horizontal segments on the outlet intersections. Triangles and n-gons are fine as long as they aren't causing visible artifacts. Part of subdivision modeling is controlling shading errors by either limiting them to a small area or averaging them out over a larger area. Sometimes it just takes a couple extra loops to match the surrounding geometry.



    The subdivision workflow for creating game models is usually something like this: start by blocking out the shapes with a base mesh. Use this base mesh to create the high poly model. Either optimize the high poly cage mesh by deleting edge loops and collapsing geometry or use the base mesh and build up the low poly model. Uv unwrap, setup mesh smoothing groups and bake.

    Technical requirements for high poly models and low poly models will be different. A lot depends on the project. Overall it looks like you have the process down. Now it's just a matter of working through the shapes and matching the reference image.
    Thanks again so much. This is a picture of the back. Any tips on how to clean it up? There is no noticeable pinching now on the High Poly so maybe any cleanup is not needed but still nice to know.


    I was planning to make the Low Poly first and then add in loops/insets to make the high poly later but with this model it seems as though I can simply delete the support loops and maybe collapse some verts and have my low poly as there is almost no difference in silhouette between the two. 
  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master

    Looks pretty good. If it's subdividing without pinching or stretching then you should be good. The only thing I would change (being nitpicky) on the back of the mesh is matching the edge flow from top to bottom. The bottom has that extra loop that veers off to the side and I think if you used the same layout you have on the top half it would still work but without the extra loop. Overall it looks like you have the process down.
  • Hoodelali
    I think it's the noobiest question ever, but how do I model that cube with blue wireframe ? I only manage to do something not very elegant if I tinker with the vertex, is there a way to do this properly, to divert the faceloop like on the blue wireframe ? by turning the quad upside down or something ? (using blender)



    I think the answer lies in the order of which to apply the bevels but I can't figure it out :anguished:
  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master

    It looks like there's a specific order of operations. Start by beveling the opposing vertical and horizontal edges. This should create the desired edge flow. Select the new edge loop and bevel. The difference in bevel width on the second operation looks uniform so it may be a percentage or distance based bevel. The specific bevel operator settings are something you'll have to experiment with to find the exact shape.


  • Hoodelali
    Thank you so much for your very precious help !!! You're awesome !
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3

    Looks pretty good. If it's subdividing without pinching or stretching then you should be good. The only thing I would change (being nitpicky) on the back of the mesh is matching the edge flow from top to bottom. The bottom has that extra loop that veers off to the side and I think if you used the same layout you have on the top half it would still work but without the extra loop. Overall it looks like you have the process down.
    Thanks again so much. 
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    Have another one. I want this rectangular object extruded out from a cylinder. All is fine with the low poly but when Subdivision is applied I get pinching in the corners. Also when I add support loops going across the rectangular object, I harden the edges of the cylinder in the High Poly(expected).



    I know I need more natural geometry in the cylinder first(currently 30 sides) so I can use the even distributed edges as support loops going left-right of the rectangle but this is going to be a game object so I'm asking is there a way around this because I will eventually need a low poly variant and dont really want to resort to deleting the cylinder edges manually.

    I know I can simply  Boolean the rectangular piece in the cylinder in Zbrush and use polish but to me that is kind of cheating lol. How would you guys approach making this a High poly but also a low poly so it can be baked down?
  • Kanni3d
    Offline / Send Message
    Kanni3d interpolator

    I know I need more natural geometry in the cylinder first(currently 30 sides) so I can use the even distributed edges as support loops 


    The pinching is coming from the 5-star poles you created from the corners of the extrusion. There's no other real way to get a good quality result other than the way you described. That's the pretty much the nature of making a low poly - removing edges from a "midpoly" middle ground mesh. It shouldn't really be too hard to remove all the extra/unnecessary loops either, just use dot ring/dot loop to select every other loop and remove.
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    Kanni3d said:

    I know I need more natural geometry in the cylinder first(currently 30 sides) so I can use the even distributed edges as support loops 


    The pinching is coming from the 5-star poles you created from the corners of the extrusion. There's no other real way to get a good quality result other than the way you described. That's the pretty much the nature of making a low poly - removing edges from a "midpoly" middle ground mesh. It shouldn't really be too hard to remove all the extra/unnecessary loops either, just use dot ring/dot loop to select every other loop and remove.
    Thanks for that. Just wanted to know if there was a method I didn't know of. Will try with a 64 sided cylinder and just delete every second edge later. 64 sides should provide enough support for the rectangular shape at least on the outside of it before subdivison.
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    Kanni3d said:

    I know I need more natural geometry in the cylinder first(currently 30 sides) so I can use the even distributed edges as support loops 


    The pinching is coming from the 5-star poles you created from the corners of the extrusion. There's no other real way to get a good quality result other than the way you described. That's the pretty much the nature of making a low poly - removing edges from a "midpoly" middle ground mesh. It shouldn't really be too hard to remove all the extra/unnecessary loops either, just use dot ring/dot loop to select every other loop and remove.


    This is the result with 64 native edges. Should bake fine and I can delete the edges down to 32. Could I go with something like 128 native, delete every 2nd loop(giving me 64) and then delete every 2nd loop after that giving me a final 32 for the low poly?
  • Kanni3d
    Offline / Send Message
    Kanni3d interpolator
    @guitarguy00

    Yep exactly, be careful of what every 2nd loop attaches to, so you dont accidently remove that rectangular detail of course.

    Although, that seems a bit sharp for baking - you should be good with 64 sides, gives you a fatter bevel to bake down onto your 32 sided low poly :smile:


  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    Kanni3d said:
    @guitarguy00

    Yep exactly, be careful of what every 2nd loop attaches to, so you dont accidently remove that rectangular detail of course.

    Although, that seems a bit sharp for baking - you should be good with 64 sides, gives you a fatter bevel to bake down onto your 32 sided low poly :smile:


    Thanks again, Might even just leave it at 64 for the high poly like you said, would give me better highlights compared to 128 and less work too. 
  • JordanDaushvili
    Offline / Send Message
    JordanDaushvili polycounter lvl 2
    My low poly mesh is just over 2k polys but i know there is a more efficient way
    of making this topology. Any ideas on how to make the support loops that connect
    with the cutout holes more efficient without them having to go around the whole model?


  • wirrexx
    Offline / Send Message
    wirrexx interpolator
    My low poly mesh is just over 2k polys but i know there is a more efficient way
    of making this topology. Any ideas on how to make the support loops that connect
    with the cutout holes more efficient without them having to go around the whole model?



    Excuse the "none" explanation. big cylinder is 32, small cylinder is 16 and smallest is 8. Build the main cylinder (the biggest one) and try to match the Second largest cylinder to fit into the topology, which you did pretty well in your attempt. but the smaller one (the gap at the bottom) is using more geo then the bigger shapes. Which should be the other way around. Big shapes = More geo. Small shape = less geo.
  • Kanni3d
    Offline / Send Message
    Kanni3d interpolator

    Any ideas on how to make the support loops that connect
    with the cutout holes more efficient without them having to go around the whole model?

    It seems like you're enforcing quads only for some odd reason, don't be afraid to terminate your loops in a similar fashion in the image I uploaded, just so you don't have a ton of unnecessary geo laying around


  • JordanDaushvili
    Offline / Send Message
    JordanDaushvili polycounter lvl 2
    Kanni3d and wirrexx   
    Thanks guys it turned out ok and i had no shading problems!
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    How would you guys go about making a thread pattern for a bolt? It will be baked down to a simple cylinder so floaters are an option. I have come up with 2 ways:

    I created a Helix and adjusted it around this cylinder and then used the Extrude modifier to get some size to it.  



    This is it baked down, you can see the problem where it comes to an abrupt stop at the bottom because I am unsure how to straight out the lowest row smoothly. I know it is currently too sharp and I need to soften the edges for baking but just wanted to do a test bake before spending too much time on it. I can't extend the helix lower than the bottom of the cylinder because then it projects onto the flat part/bottom of the cylinder:




    My second option was to just use the Stripe mask and add a blur filter in Substance Painter and adjust the rotation to hide the UV seam(tri-planar projection  gave me strange distortion even when I messed around with the offset:


    This method works but I would rather do it pre-bake so I can get the the thread pattern included in the bake maps(AO, Curvature, Normal, World Space etc). 

    Anything else you guys suggest? I am definitely all ears. Thanks in advance.

  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3

    It really depends on the size of the object and whether or not it will be seen up close by the player. Fastener threads usually aren't something that players are looking at up close. Adding this kind of detail in Substance painter is probably the fastest and easiest route.

    Using floaters probably makes sense if the object is a little bigger and the threads will be viewed closer than usual. To keep it simple you could scale the verts at the major diameter down the the minor diameter at the beginning and end of the thread. Again, if this isn't something that will be seen up close it doesn't make sense to waste time on it. This isn't super accurate but it's passable.



    Both sample threads you posted look like they are supposed to be single start ACME or Worm type threads. The one baked from floating geometry is a left hand thread and the one made in Substance painter is a right handed thread. If accuracy is a concern (because the players are looking at threads this closely) then there's a few things to consider: form (profile), pitch (spacing), start (number), taper, count, angle, diameter and direction. All of these factors will influence the complexity of the thread shape.

    If the players are supposed to be scrutinizing the threads this closely then they'll probably notice if something is off. It all depends on the object's scale, the type of material the fastener is made out of and what it's being used for. ACME and Worm threads aren't rare but they're not super common either. Most of the day to day stuff is V shaped, right hand threaded and medium or coarse TPI count.



    The effort required to go from floating geometry to full Sub-D isn't that much more and if the thread detail is that critical then it might be worth modeling it all out. It looks really complex but it isn't that bad.

    Sub-D modeling threads:

    Start off with the thread profile and establish the basic helical geometry. If there's critical dimensions like pitch, angle and pitch diameter make sure they are accurate. Also make sure the thread is going in the correct direction! If there's more than one start (helix) then the process is a little bit more complex but this strategy should work for single and multi start threads.

    Cut off the lead in at the start of the minor diameter and cut off the lead out at the start of the major diameter. Add a triangle to bring the lead in back to the original number of segments. Extrude and merge the missing top half of the lead out. Add a slightly smaller circle in front of the lead in and bridge the loops.

    If there's tapered and undercut lead out (common on manually machined threads) then add a slightly smaller circle above the lead out and bridge the segments. Finish the top of the fastener as needed. Use creases or add supports loops with chamfer and merge down loops in trouble spots as needed. How clean the mesh needs to be will depend on the scale of the object.



    If the fastener doesn't have a tapered lead out then cut off the lead in at the start of minor diameter and leave the lead out as it is. Fill the triangle on the lead in to even out the segment count and extrude the loose edges above the lead out. Delete the last segment of the lead out. Fill the faces around the minor diameter on the lead out and move the minor diameter to the center of the face.

    Add a slightly smaller circle below the lead in and bridge the segments. Use creases or add support loops with chamfers and clean up any excess geometry by merging down. Use triangles and N-Gons to terminate excess edge loops.

    This type of lead out is more common with rolled threads and larger production runs where the end of the thread isn't as important.



    For common V threads it's a little easier. Establish the thread profile and the basic helical geometry. Cut the lead in and lead out at the closest minor diameter. (Low cost hardware often has rolled V threads since it's cheaper than machining so there isn't any fancy tapered lead out and sometimes there isn't even a tapered lead in.) Fill the left over triangle to even out the segment count and add a slightly smaller circle below the lead in and bridge the segments.

    Add a circle that's the same size as the major diameter above the lead out and bridge the segments. Create the rest of the fastener. Make sure the triangle in the lead out continues in the same direction as the rest of the thread. Use creases or support loops to harden the edges.



    Try to leverage what ever tools are available in your software package to generate threads. Most of the manual work here is cleanup and filling a couple adjacent edge segments with triangles until the circle segment count matches the rest of the geometry. Fasteners like this shouldn't take more than a couple minutes a piece.

    The key is to cut the lead in and lead out at the correct place, fill the left over segment with a triangle and bridge to a new circle.

    Keep in mind that when looking at a thread head on the shape won't be perfectly cylindrical. The face of a single start fastener looks kind of like an offset circle, a double start looks like an oval and four start looks like a rounded square. Low grade hardware has really nasty threads.



    There's probably some specialized plugins that can generate accurate threads and fasteners. If I had to make a bunch of these I'd look at investing in something like that. Honestly I don't think players would ever look this closely at a thread so I wouldn't spend a ton of time trying to make them perfect. For something this small it's a case of get it close enough and call it good. Spend the time on things that matter.

    Wow, thanks so much for the detailed reply, truly awesome =)

    The bolts are for a fire hydrant I am working on(the previous example you showed me with boolean and different sized cylinders) so the bolts are a minor item.  I may try you method just to have the knowledge but it is such a small part I may leave it to Substance Painter. Thanks again.
  • gutek78
    Offline / Send Message
    gutek78 polycounter lvl 8

    Hello 

    I would like to ask for help with this shape. I have no idea how to cut this and merge together to make this cornice shape.


  • headachedotpng
    hey guys i was wondering if there was a fix to this ive tried everything but no matter what i do its always pinching 
  • wirrexx
    Offline / Send Message
    wirrexx interpolator
    gutek78 said:

    Hello 

    I would like to ask for help with this shape. I have no idea how to cut this and merge together to make this cornice shape.



    extrude those edges and simply boolean them into eachother!
  • headachedotpng
    u could use an array and a simple deform at 360 @wirrexx

  • gutek78
    Offline / Send Message
    gutek78 polycounter lvl 8
    Thank you very much fotr  your help
  • headachedotpng
    np just dont forget to merge it down before applying the modifier 
  • WilliamVaughan
    Offline / Send Message
    WilliamVaughan greentooth
    One option for creating threads:


  • WilliamVaughan
    Offline / Send Message
    WilliamVaughan greentooth
    Alternate solution: 

  • wirrexx
    Offline / Send Message
    wirrexx interpolator
    u could use an array and a simple deform at 360 @wirrexx


    nice, new to Blender anyways. But i found a solution of my own too :D.
  • headachedotpng
    oh shit its mr vaughan himself can we get a sneak peak on the next workbook? :p 
  • wirrexx
    Offline / Send Message
    wirrexx interpolator
    hey guys i was wondering if there was a fix to this ive tried everything but no matter what i do its always pinching 

    this is my approach in 3Ds Max.
  • Jackskullcrack
    Offline / Send Message
    Jackskullcrack polycounter lvl 2
    hey guys i was wondering if there was a fix to this ive tried everything but no matter what i do its always pinching 
    Yeah, Wirrexx has the right idea, you want to try and keep all the distortion contained in a small area, that way it's not noticeable. That's the reason you're getting that distortion, it's from the long stretched polys you have connecting up too the sharp bevel 
  • aregvan
    Offline / Send Message
    aregvan polycounter lvl 5
    Hello everybody.

    I have been trying to model this fire hydrant extended piece, and cannot figure out the smoothest way possible for a LP and HP piece.



    My attempts have been extruding a relaxed loop out and sculpting, but with my absolute beginner sculpting skills, that produces a very bad and non precise result.






    Thank you in advance
  • WilliamVaughan
    Offline / Send Message
    WilliamVaughan greentooth
    oh shit its mr vaughan himself can we get a sneak peak on the next workbook? :p 
    :) still letting the dust settle on Volume 2 :)
  • Jackskullcrack
    Offline / Send Message
    Jackskullcrack polycounter lvl 2
    oh shit its mr vaughan himself can we get a sneak peak on the next workbook? :p 
    :) still letting the dust settle on Volume 2 :)
    I read through Vol 1, and I just got Vol 2 recently, I can't wait to absorb all the information from it :) 
  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master
    @aregvan It looks like you're on the right track.

    The key to clean cylinder intersections is to match the number of segments on both shapes near the intersection. Try matching the wall segments on the critical part first and adjust the perpendicular loops second. The alignment doesn't have to be perfect. Close enough should be good enough. (Page 171 has a discussion about cylinder intersections on hydrants.)

    Manually pushing or sculpting geometry into place isn't that accurate and can become very time consuming.

    Block out the shapes, match the segments near the intersections and rely on tools to generate the geometry. After the basic shapes are correct, run a Boolean union operation, add support loops around the intersections with a bevel or chamfer operation and merge down any left over geometry. Use the gap between the support loop and the base of the intersecting shape to take up any difference between the cylinders. Repeat as necessary to add additional details.

    This example is more illustrative and the amount of geometry required to hold the shapes on your hydrant may be different.


    Looking at images of Bayard hydrants, there's a couple variants and they have different shapes. One has this barrel shape and the other has a uniform outer diameter. The one with the uniform diameter has a curve at the back of the stand pipe that (when viewed from the side) makes it look like the diameter of the stand pipe is larger than the diameter of the outlet. Cross check several references when working through the block out to make sure the basic shapes are correct and the rest should fall into place.
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    @aregvan It looks like you're on the right track.

    The key to clean cylinder intersections is to match the number of segments on both shapes near the intersection. Try matching the wall segments on the critical part first and adjust the perpendicular loops second. The alignment doesn't have to be perfect. Close enough should be good enough. (Page 171 has a discussion about cylinder intersections on hydrants.)

    Manually pushing or sculpting geometry into place isn't that accurate and can become very time consuming.

    Block out the shapes, match the segments near the intersections and rely on tools to generate the geometry. After the basic shapes are correct, run a Boolean union operation, add support loops around the intersections with a bevel or chamfer operation and merge down any left over geometry. Use the gap between the support loop and the base of the intersecting shape to take up any difference between the cylinders. Repeat as necessary to add additional details.

    This example is more illustrative and the amount of geometry required to hold the shapes on your hydrant may be different.


    Looking at images of Bayard hydrants, there's a couple variants and they have different shapes. One has this barrel shape and the other has a uniform outer diameter. The one with the uniform diameter has a curve at the back of the stand pipe that (when viewed from the side) makes it look like the diameter of the stand pipe is larger than the diameter of the outlet. Cross check several references when working through the block out to make sure the basic shapes are correct and the rest should fall into place.
    Could you show us how you go about making this part?



    Given there is such a limited amount of vertical native geometry, how would you avoid distortion on the cylindrical parts? Also when you weld the side cylinders to the main vertical one, do you weld all the verts of the side cylinders to the vertical one, or vice versa?

    This is one example after your advice and others one here too:


  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master
    @guitarguy00 Not a problem.

    That loop part starts out as a circle with a segment count that's matched to the area it will attach to. The back end of this part doesn't matter that much since it will be lost in the Boolean operation.

    Land the part between two of the vertical segments and use those segments as support loops. Add support loops to the sides and cut across the flat to give the extra edge loops some where to run out on.


    I think the best answer to the question of how it works with so little geometry is: using the surrounding geometry as support for every part that's added on. It could be made more accurate with more geometry but the question is how accurate is accurate enough?

    Some of these examples use very little geometry because it makes it easier to see the edge flow and it emphasizes that most shapes don't require a ton of geometry. What's right will depend entirely on what you're trying to model and how accurate it needs to be. A background prop doesn't need to be perfect it just needs to be passable. What's passable will depend on the project and the artist. So the examples are more of a baseline or a starting point.

    Another thing that can help is playing to the strengths of how an object was made and what it was made out of.

    Most hydrants are cast in either bronze or iron. Metal casting is still a very hands on process in many parts of the world. It's only in the exotic and high precision casting where machines take over most of the process. That's slowly changing but it's still common for a lot of hand work to go into molding, shake out, grinding and blasting. By the time something leaves the foundry there's a good chance that there's some superficial or cosmetic imperfections. It's just the nature of the process. The roughness and texture is part of what makes an honest casting.

    Casting patterns also need a lot of draft (taper) and soft shape transitions. Otherwise it's too difficult to pull the pattern out of the sand molds without destroying the mold in the process. This means that most high volume and low cost castings are going to have softer shapes than something that's machined out of a billet. It's a similar sort of thing with injection molded plastics and blow molded plastics.

    There's always going to be some distortion on a sub-d mesh and it comes down to a question of where to hide it. Sometimes the distortion is averaged out over a wide area and sometimes it's constrained to a smaller area. You can use this basic understanding of how things are made to try and figure out where's the best place to hide distortion in the mesh and how wide support loops and edge widths need to be.


    The smaller cylinders on the side don't have dedicated support loops on the stand pipe side of the mesh. The wall of the stand pipe is acting like a support loop and the support loop that's on the base of the small outlet is doing all of the work. So the distortion is averaged out across the transition.

    As for where to merge down existing geometry, it depends on the shape and how it's reacting to the subdivision. When using chamfer to add a support loop around the base of an intersection, the base of the intersecting object (the inside of the support loop) usually stays where it's at. Running a Boolean operation there might be some stray geometry on this inside loop. Merge that down to the verts on the intersecting object. The outside loop is usually (but not always) merged down to the verts on that object to maintain shape accuracy. Whatever happens between these two loops usually doesn't matter that much and that's where the difference between the intersecting objects is averaged out.



    I think the sample you posted looks fine. At a glance everything seems smooth and the transitions are soft. What's "right" depends on the project. If there's a lot of little details that need to be blended into the standpipe then it's going to require more geometry.


  • aregvan
    Offline / Send Message
    aregvan polycounter lvl 5
    @aregvan It looks like you're on the right track.

    The key to clean cylinder intersections is to match the number of segments on both shapes near the intersection. Try matching the wall segments on the critical part first and adjust the perpendicular loops second. The alignment doesn't have to be perfect. Close enough should be good enough. (Page 171 has a discussion about cylinder intersections on hydrants.)

    Manually pushing or sculpting geometry into place isn't that accurate and can become very time consuming.

    Block out the shapes, match the segments near the intersections and rely on tools to generate the geometry. After the basic shapes are correct, run a Boolean union operation, add support loops around the intersections with a bevel or chamfer operation and merge down any left over geometry. Use the gap between the support loop and the base of the intersecting shape to take up any difference between the cylinders. Repeat as necessary to add additional details.

    -

    Looking at images of Bayard hydrants, there's a couple variants and they have different shapes. One has this barrel shape and the other has a uniform outer diameter. The one with the uniform diameter has a curve at the back of the stand pipe that (when viewed from the side) makes it look like the diameter of the stand pipe is larger than the diameter of the outlet. Cross check several references when working through the block out to make sure the basic shapes are correct and the rest should fall into place.

    Perfect! Simple and to the point. This has helped me more than I was expecting! 

    Problem is, I begin modeling before I even have the basic shape, and always thinking it's harder than it really is.
    And what do you mean by "rely on tools to generate the geometry"?

    Thanks all!
  • guitarguy00
    Offline / Send Message
    guitarguy00 polycounter lvl 3
    @guitarguy00 Not a problem.

    That loop part starts out as a circle with a segment count that's matched to the area it will attach to. The back end of this part doesn't matter that much since it will be lost in the Boolean operation.

    Land the part between two of the vertical segments and use those segments as support loops. Add support loops to the sides and cut across the flat to give the extra edge loops some where to run out on.



    I think the best answer to the question of how it works with so little geometry is: using the surrounding geometry as support for every part that's added on. It could be made more accurate with more geometry but the question is how accurate is accurate enough?

    Some of these examples use very little geometry because it makes it easier to see the edge flow and it emphasizes that most shapes don't require a ton of geometry. What's right will depend entirely on what you're trying to model and how accurate it needs to be. A background prop doesn't need to be perfect it just needs to be passable. What's passable will depend on the project and the artist. So the examples are more of a baseline or a starting point.

    Another thing that can help is playing to the strengths of how an object was made and what it was made out of.

    Most hydrants are cast in either bronze or iron. Metal casting is still a very hands on process in many parts of the world. It's only in the exotic and high precision casting where machines take over most of the process. That's slowly changing but it's still common for a lot of hand work to go into molding, shake out, grinding and blasting. By the time something leaves the foundry there's a good chance that there's some superficial or cosmetic imperfections. It's just the nature of the process. The roughness and texture is part of what makes an honest casting.

    Casting patterns also need a lot of draft (taper) and soft shape transitions. Otherwise it's too difficult to pull the pattern out of the sand molds without destroying the mold in the process. This means that most high volume and low cost castings are going to have softer shapes than something that's machined out of a billet. It's a similar sort of thing with injection molded plastics and blow molded plastics.

    There's always going to be some distortion on a sub-d mesh and it comes down to a question of where to hide it. Sometimes the distortion is averaged out over a wide area and sometimes it's constrained to a smaller area. You can use this basic understanding of how things are made to try and figure out where's the best place to hide distortion in the mesh and how wide support loops and edge widths need to be.



    The smaller cylinders on the side don't have dedicated support loops on the stand pipe side of the mesh. The wall of the stand pipe is acting like a support loop and the support loop that's on the base of the small outlet is doing all of the work. So the distortion is averaged out across the transition.

    As for where to merge down existing geometry, it depends on the shape and how it's reacting to the subdivision. When using chamfer to add a support loop around the base of an intersection, the base of the intersecting object (the inside of the support loop) usually stays where it's at. Running a Boolean operation there might be some stray geometry on this inside loop. Merge that down to the verts on the intersecting object. The outside loop is usually (but not always) merged down to the verts on that object to maintain shape accuracy. Whatever happens between these two loops usually doesn't matter that much and that's where the difference between the intersecting objects is averaged out.



    I think the sample you posted looks fine. At a glance everything seems smooth and the transitions are soft. What's "right" depends on the project. If there's a lot of little details that need to be blended into the standpipe then it's going to require more geometry.


    Thanks again for your time and effort, much appreciated.
  • FrankPolygon
    Offline / Send Message
    FrankPolygon ngon master
    @aregvan @guitarguy00 You're welcome. Glad it was helpful. Thank you to everyone else who posts questions and answers too.

    Relying on tools to generate geometry just means avoid doing unnecessary manual work when there's a tool or modifier that will do the job quicker and more accurately.

    Here's an example of manual work. Please, for the love of all that's holy, don't do this sort of stuff.

    The verts are moved into place freehand, edge loops cut in one segment at a time and the fillet is scaled up manually. Yes, the result is usable but the amount of work that went into it doesn't justify the result. There are tools that can do most of this in just a few keystrokes and will be more accurate than an artist pushing geometry.



    Here's an example where using the correct tools speeds things up. Generate the primitives. Block out the intersection and match the segment counts. Run a Boolean operation. Run a chamfer operation. Merge down the left over geometry. Add three edge loops and join them up with the base of the intersection. The tools have done all the work and kept the geometry reasonably accurate.

    If shape accuracy isn't a big deal then the Boolean operation could have been cleaned up with a merge by distance operation and the perpendicular edge loops could have been added before the chamfer operation. This would have been even faster but less accurate.


    There's a fine line between manual work and manual adjustment. Manual adjustment is part of the process and the important thing is to use tools that will keep the mesh co-planar and parallel along edge normals, etc.

    If the shape requires an excessive amount of manual adjustment then it might be time to re-evaluate how the shapes were blocked out. Sometimes it just doesn't matter and the project calls for something quick and dirty. Some shape intersections can be fudged and others can't.

    Here's an example where the geometry was created using tools and some minor manual adjustment was required at the end. The vert was moved along the edge normal to alleviate the stress where the support loop came close to the cylinder's edge segment.



    Generally speaking, as long as the geometry remains in plane and subdivides cleanly then it's OK to use tools to move things around accurately. There's also exceptions to this where the geometry has to be purposefully distorted to counter subdivision smoothing but that's a different discussion.

    Here's a subdivision preview of all the meshes. They all work. It's just that some took significantly longer to make than others. Manually creating everything and manually adjusting everything can be a huge time sink. Avoid it where you can and spend time wisely.



    The big take away is avoid having to manually bash things into shape by moving every vert, cutting every edge loop and smoothing shapes by hand. If things are falling apart and causing smoothing errors then there's a fundamental problem with the geometry. Stop and take the time to block things out and work through each problem.

    Also don't get caught up on perfection. It's subdivision modeling, not CAD. There's going to be some imperfection. Get it as good as it needs to be and move on to the next part.


  • aregvan
    Offline / Send Message
    aregvan polycounter lvl 5
    @FrankPolygon

    This truly helps for this project and future ones!

    You are right; things are more simple than we perceive them as. 
    I always stayed away from boolean operations, but seems its inevitable for any detailed mesh play.

    Thank you again for a great discussion, Frank.

Sign In or Register to comment.