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.
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:
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.
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"?
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.
@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.
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.
the boolean-less method would require less cleanup and it goes like this choose 4 or more faces (in this case 16 ) then inset and use the loop tools addon (or the to sphere tool) to turn it into a circle extrude flatten the face turn the front faces into an ngon and bevel https://imgur.com/a/0iMmEkv this was done with a 16 side cylinder itself and it still has no pinching or artifacts
keep in mind there are many more ways of extruding a cylinder from another one but iam too lazy to show off everything so iam just gonna direct you to the https://motionworks.net/shop/making-it-look-great-11/ course its a bit pricey but its a damn good course for learning the fundamentals imo. though keep in mind its made in c4d so u need figure out which tools are which in another software
I have a question about this process. It's very fast and there's no cleanup but the topology seems to cause problems when it's subdivided. Any thoughts on how to resolve these edge flow problems or another way to use the same process to end up with an edge flow similar to the Boolean workflow? The to sphere operator and loop tools circle operator both create geometry that has leaves notches in the corners.
The inset circle and extrude geometry could be adjusted to even out the notch (both examples using this workflow have it) but then it ends up being the same amount of work as the Boolean workflow. If this method can be used to produce the same edge flow as the Boolean intersection method than it would be a powerful way to deal with this type of shape intersection.
This topology comparison shows both edge flows at extreme angles and
they both have some smoothing issues. There's some soft undulations around the circle and extrude geometry that phases in and out as the object is rotated. This could could cause problems when baking normals and when viewed from glancing angles. The Boolean intersection isn't
perfect either but it appears to be significantly cleaner and it doesn't have these surface undulations. There seems
to be a trade-off here between speed and shape accuracy.
The inset circle and extrude method is very fast and probably good enough for background props. It seems to work very well with 8 segment circles but with higher segment counts it starts to push the edge flow a little too hard. Where it seems to break down is in the offset it creates when it pulls the edge flow away from the edge segments on the wall of the large cylinder.
The way to avoid artifacts around this type of intersection is to match the segments on the intersecting geometry with the edge segments on the cylinder wall. As long as that happens the topology should produce minimal smoothing errors.
i guess knife projection could be one way where you put an object in front of another after aligning it ofc and having it projected on the main shape though the speed of that method is prolly comparable to using a boolean if you dont count addons that make the boolean workflow way faster
the last one i know about is shrinkwrapping but thats a headache of its own depending on how shrink wrapping works in your software of choice https://imgur.com/a/wMOCptO
Hello there! I was working on a recent project of mine and noticed black edges on my normal map after baking. So i know this is a problem that happens when your low poly doesn't have enough subdivisions to meet with your high poly especially on round corners. The problem is visible only on couple of spots of the model and i was wondering if there would be a problem if i added some edges only on the areas that need topology. Is this a terrible solution if i want to avoid extra polygons? is there any other way instead of just subdividing the whole model ? Thank you!
@JordanDaushvili Hey there, buddy. You have two issues here. The first one you circled is waviness, most prominent on the top one you circled, and is discussed in detail here: https://polycount.com/discussion/81154/understanding-averaged-normals-and-ray-projection-who-put-waviness-in-my-normal-map#latest You should absolutely read through the entire thread, but here's the short version: Waviness happens because your highpoly's cylinder sides varies from the lowpoly cylinder sides. The waves captured aren't errors. They're the output of what you input. You can do one of two things: Limit the amount of sides on your highpoly to match the lowpoly, and chamfer the edge instead of subdividing it...
I can't stress enough the fact that waviness is not incorrect. It is the natural result of correctly baked normals between two cylindrical objects with a non-equal # of sides. If you don't want it, just match the number of sides:
Or increase the sides to your lowpoly around that edge to the degree that you can't discern the waves from the desired rendering distance. If you choose this method, I would do it like this (in blue) Note that simply adding those verts won't change the result. They need to follow the curve of the highpoly.
The dark edges won't be helped from that though. They are something else entirely, and happen because the visible lowpoly captured a part of the highpoly onto the normal map that allows you to see an edge at such an angle that you'd never see it on the highpoly from that same angle. Below are three examples. First is highpoly only, second is what you want in order to hide the dark edge, third is what you have.
@Thanez Thank you very much! I was waiting for someone to give a good piece of advice for couple of days and i couldn't wait because i wanter to proceed with the project. I made the changes right away after i got home and honestly the results are great thanks again!
There is no more skewing and the topology looks ok i guess.
Not sure how to solve this polygon flow in this model I'm doing just for practicing. Just starting so not a good distribution of polys yet. A few lines showing how to do it better will be appreciated. Thanks
It's not perfect but it's the closest I've gotten while keeping each part about the same width and mostly similar. I'm wondering if I'm way off with this?
It's not perfect but it's the closest I've gotten while keeping each part about the same width and mostly similar. I'm wondering if I'm way off with this?
What car modell is it? Do you have higher res pictures. If it sub-ds good and there's no big issues. go for it.
A Ford mustand II King Cobra. I've had some issues finding good high-res references and couldn't find any proper blueprints, some versions have these window covers while others don't. I don't know anything about cars so it might be different year models.
The subdivided mesh seems mostly fine, some minor artifacts where it's the densest so I'll have to spread the edges out a bit and tweak the overall shape here and there but I'm always worried I'm doing things terribly wrong.
@amoeba there are no hard and fast 'rules' when it comes to modeling something, just general optimisation techniques shared over time among people passionate for our craft which by the way are really worthwhile keeping in mind, like here, for example. Anyway as mentioned, if your mesh overall sub divides with a few minor shading errors and does not compromise the object's aesthetic fidelity you're specifically aiming for, then I'd say all good. However, that said an automotive polygonal workflow will on occasion throw up a challenge every now and again, unique to 'class A' surfaced objects, simply because in the modern era, manufacturing methods are typically reliant upon CnC/CAD design principles so trying to replicate double precision smoothness can be a right old head ach. Although during my time modeling cars I've stumbled across one or two gems and this resource I'd highly recommend...for what it's worth, insights shared here helped level up my skillset:
I'm aware, it's just I feel so inadequate compared to you guys. It's just mindblowing how clever you guys are and some of the solutions I've seen here. Incredibly helpful stuff. I absolutely love this thread.
Also, holy cow, thanks for that link! Very useful stuff there.
It's probably a bad habit but often when I run into ugly reflections, I create a higher density mesh of the broken part (usually with inefficient topology though) and use the Blender modifier "shrinkwrap" on my "more" efficient lowpoly mesh to wrap it onto the higher density mesh underneath and that takes care of things sometimes (and creates seamless reflections across separate parts as well) although it creates some extra work.
@amoeba You're definitely on the right track. What you have right now looks fine on a flat surface and the basic edge flow is there.
Most of these window louvers snap into place on the surround trim or are
glued directly onto the glass and body work with adhesive or double
sided tape. Some people like them and some people don't. This is why
there are cases of the exact same car model showing up with and without louvers.
Whether or not they are OEM equipment on a specific trim level is
something that you could find out in a forum dedicated to that car. There's all kinds of esoteric trim packages and dealer installed options from this era.
To build on what sacboi and wirrexx have already recommended:
If the window louvers have compound curves (it looks like they have a slight bend to fit the body line around the window): then it's also important to have sufficient geometry that's evenly spaced to support the curvature of the overall shape. One thing to watch out for is smoothing errors or shape deformations caused by inconsistent edge loop and segment width.
Shapes like this could be modeled flat and bent into shape with
modifiers or they could be modeled in the round off of existing
geometry, once the rest of the car's body work is complete. Here's a comparison of two different edge flow strategies and how they perform when pushed into a compound curve on two axes. The compound curve was pulled with proportional editing so the tail of the shape isn't perfect.
One method is to split and shear each louver section into shape. The vertical segments are all evenly spaced, the louvers all start and end on an even segment and the edge loops are added using a chamfer / bevel operation. This edge flow continues around the back of the shape and is similar to what's in the reference photo.
Another method is to use a series of inset operations to raise each louver. The edge loops are manually added using a loop cut operation. This topology leverages existing geometry by having the louvers fall between existing segments. Overall this approach uses less geometry but requires an additional operation to add the crease around the back of the shape.
Both of these methods and edge flows should work in most situations. Pick elements of each that best fit the shape. Your edge flow
strategy is very similar to the examples shown here and is headed in the right direction. The only two things I would recommend are: matching the segments to the surrounding geometry and working on segment / edge width consistency.
Like wirrexx and sacboi mentioned: subdivision modeling is more of an approximate process. If the mesh is easy to work with, subdivides cleanly and shades / bakes correctly then it's passable. How much geometry is required depends on the surrounding geometry and the overall project goals.
This thread is majestic (and it helps a lot) but i can't figure out how to inset rectangle in ellipsoid form at it's border. And second question - how to optimize topology in all quads. i think i do it in wrong way (trying to figure out about month, hate it). can't attach obj(
I fail to see a problem here. Is this not the result you were going for? And why do you want the topology in all quads? Are the n-gons giving you issues?
Outside of specific project requirements, stock 3D certification programs and technical edge cases, there really isn't anything wrong with using triangles and n-gons in subdivision modeling. Flat surfaces are arguably the least effected by messy topology. As long as the corners are supported and the surfaces are co-planar then it should subdivide without causing any major problems. If a mesh is easy to edit and subdivides cleanly, without any major smoothing errors, then it's passable. There's a point where done is better than perfect.
As an example: here's four subdivision previews (left column) and four topology strategies (right column) can anyone spot the subtle differences and match up which subdivision preview belongs to which mesh?
The four topology samples (right column) are:
Triangles and quads.
N-gons, triangles and quads.
Quads only (manual cleanup)
Quads only (tool generated)
The matching subdivision previews are directly across from the mesh samples.
For most high poly baking models, what happens on the flat areas between the edge loops doesn't make much difference. As long as the shape intersections and the support loops are properly structured the flat areas will remain flat. They generally subdivide and bake without causing any major issues.
There are edge cases like highly reflective surfaces where the quality of the mesh does effect some things but whether or not this is relevant for a project is something that can be validated with some test bakes.
The n-gon mesh is easier to edit but there are some cases where curves need the stress from triangles to help pull the edge loops into shape.
Manually cleaning up a mesh to make it all quads is a major pain and often a waste of time. Avoid throwing more work into bad geometry. If it's broken enough that it needs a lot of manual cleanup then it's probably worth rebuilding correctly.
Take the time to plan out the shapes and match the segment counts between adjacent shapes. Plan out the edge flow so edge loops can be added without effecting critical shapes.
Here's an example of how planning out the edge flow and working through the shapes will result in all quads with minimal cleanup. The segment count is a little higher than I would generally recommend for a game model of this scale but the assumption is that the corners on the USB ports need to be curved. This could have been done using a wider support loop on the corners but leaving it in shows how to deal with similar shapes that require more geometry.
Start out with the basic shapes and define a clear path for the support loops to run out on. Match segment counts to minimize the amount of geometry required to support the shape. Rely on tools for creating basic geometry, curves and edge loops whenever possible.
The support loops around the Micro USB port are added with a chamfer operation and run out between the two USB ports. The support loops inside the USB port are added with a loop cut and run out to the sides of the case and around the Micro USB port topology.
Use a chamfer operation to add the support loops around the face of the USB port. Adjust the segment count on the circular case geometry and bridge the edge loops so all of the segments are connected. This side is now complete. The other side will have the same number of segments.
Use the same segment count for the opposite side of the case and the button cut out. There's a support loop that holds the shape for the outside of the case and it eats up one segment of the button so an edge loop needs to be added between the case and the button to equalize the segment count. Additional support loops could be added to the right side of the button if necessary. Bridge the faces to close the geometry. The basic shape is now complete.
Add additional support loops around the button and outside of the case. Move the center loops back to set the button depth and the seam depth between the case and face plate. Extrude the rest of the shape out to form the rest of the case. All quads and no manual cleanup work to remove triangles or n-gons. How much geometry is required will depend on the desired shape accuracy.
Subdivision modeling is about planning out the edge flow and shape intersections while choosing the right trade-offs between efficiency and shape accuracy. If there's no hard requirement for all quads then use the minimum amount of geometry required to hold each shape. Triangles and n-gons that aren't causing smoothing problems are fine. In most cases (if they aren't causing smoothing errors) it's not worth the time to edit them out.
Here's a comparison of two extremes: a mesh that leverages a lot of n-gons and a mesh that has been made all quads for compliance. The n-gon strategy is easy to work with but may not pass some strict QA / QC processes for stock 3D. The all quads compliance strategy hits this metric but the over optimized edge flow makes it difficult to add or remove loops. The geometry is locked in.
What's right depends on the project and part of the process is balancing technical demands with the art process and time management. A product visualization model is going to have different requirements than a background prop for a mobile game. Narrowing down the scope of the project will help determine which strategies will work best.
If a project genuinely requires all quad geometry: Take the time to plan the edge flow and block out the shapes ahead of time. Match each shape's segment count with surrounding geometry and run out edge loops where they won't disturb adjacent shapes.
The mesh you already have shows a good compromise between efficiency and accuracy. There's only a couple spots that could cause problems with subdivision and even then it might not be a problem if the smoothing errors aren't visible when baked out and textured.
Add the rest of the support loops and subdivide the mesh to see if there are any major smoothing problems. If the mesh looks good with subdivision then it's fine.
Outside of specific project requirements, stock 3D certification programs and technical edge cases, there really isn't anything wrong with using triangles and n-gons in subdivision modeling. Flat surfaces are arguably the least effected by messy topology. As long as the corners are supported and the surfaces are co-planar then it should subdivide without causing any major problems. If a mesh is easy to edit and subdivides cleanly, without any major smoothing errors, then it's passable. There's a point where done is better than perfect.
As an example: here's four subdivision previews (left column) and four topology strategies (right column) can anyone spot the subtle differences and match up which subdivision preview belongs to which mesh?
The four topology samples (right column) are:
Triangles and quads.
N-gons, triangles and quads.
Quads only (manual cleanup)
Quads only (tool generated)
The matching subdivision previews are directly across from the mesh samples.
For most high poly baking models, what happens on the flat areas between the edge loops doesn't make much difference. As long as the shape intersections and the support loops are properly structured the flat areas will remain flat. They generally subdivide and bake without causing any major issues.
There are edge cases like highly reflective surfaces where the quality of the mesh does effect some things but whether or not this is relevant for a project is something that can be validated with some test bakes.
The n-gon mesh is easier to edit but there are some cases where curves need the stress from triangles to help pull the edge loops into shape.
Manually cleaning up a mesh to make it all quads is a major pain and often a waste of time. Avoid throwing more work into bad geometry. If it's broken enough that it needs a lot of manual cleanup then it's probably worth rebuilding correctly.
Take the time to plan out the shapes and match the segment counts between adjacent shapes. Plan out the edge flow so edge loops can be added without effecting critical shapes.
Here's an example of how planning out the edge flow and working through the shapes will result in all quads with minimal cleanup. The segment count is a little higher than I would generally recommend for a game model of this scale but the assumption is that the corners on the USB ports need to be curved. This could have been done using a wider support loop on the corners but leaving it in shows how to deal with similar shapes that require more geometry.
Start out with the basic shapes and define a clear path for the support loops to run out on. Match segment counts to minimize the amount of geometry required to support the shape. Rely on tools for creating basic geometry, curves and edge loops whenever possible.
The support loops around the Micro USB port are added with a chamfer operation and run out between the two USB ports. The support loops inside the USB port are added with a loop cut and run out to the sides of the case and around the Micro USB port topology.
Use a chamfer operation to add the support loops around the face of the USB port. Adjust the segment count on the circular case geometry and bridge the edge loops so all of the segments are connected. This side is now complete. The other side will have the same number of segments.
Use the same segment count for the opposite side of the case and the button cut out. There's a support loop that holds the shape for the outside of the case and it eats up one segment of the button so an edge loop needs to be added between the case and the button to equalize the segment count. Additional support loops could be added to the right side of the button if necessary. Bridge the faces to close the geometry. The basic shape is now complete.
Add additional support loops around the button and outside of the case. Move the center loops back to set the button depth and the seam depth between the case and face plate. Extrude the rest of the shape out to form the rest of the case. All quads and no manual cleanup work to remove triangles or n-gons. How much geometry is required will depend on the desired shape accuracy.
Subdivision modeling is about planning out the edge flow and shape intersections while choosing the right trade-offs between efficiency and shape accuracy. If there's no hard requirement for all quads then use the minimum amount of geometry required to hold each shape. Triangles and n-gons that aren't causing smoothing problems are fine. In most cases (if they aren't causing smoothing errors) it's not worth the time to edit them out.
Here's a comparison of two extremes: a mesh that leverages a lot of n-gons and a mesh that has been made all quads for compliance. The n-gon strategy is easy to work with but may not pass some strict QA / QC processes for stock 3D. The all quads compliance strategy hits this metric but the over optimized edge flow makes it difficult to add or remove loops. The geometry is locked in.
What's right depends on the project and part of the process is balancing technical demands with the art process and time management. A product visualization model is going to have different requirements than a background prop for a mobile game. Narrowing down the scope of the project will help determine which strategies will work best.
If a project genuinely requires all quad geometry: Take the time to plan the edge flow and block out the shapes ahead of time. Match each shape's segment count with surrounding geometry and run out edge loops where they won't disturb adjacent shapes.
The mesh you already have shows a good compromise between efficiency and accuracy. There's only a couple spots that could cause problems with subdivision and even then it might not be a problem if the smoothing errors aren't visible when baked out and textured.
Add the rest of the support loops and subdivide the mesh to see if there are any major smoothing problems. If the mesh looks good with subdivision then it's fine.
OMG, thank you so much you definetely need to combine all your tips in great tutorial, very inspiring
Hi guys. Glad there's already a post for asking how to model things.... I'm stuck on this one braided band on the handle of an axe in this concept art and was wondering if anyone had any ideas how to go about modeling it? I tried doing this coil of alternating half cylinders but it didn't overlap properly. ATTEMPT: GOAL:
Comparing the concept to hilt wrapping tutorials: it looks like there's at least two strips of fabric that are looped around to make a four strand braid. The two loops spiral back and forth across each other and the wrap is tighter at the top and looser at the bottom. One thing to watch out for is a change in perceived shape based on viewing angle.
There's a few ways to approach this, so what's going to work best will depend on how closely you want to match the concept.
Here's an example of using modifiers to create the basic helical geometry for each of the four strands. Each helical strand has a slightly different diameter to allow them to overlap correctly.
The strands are grouped together in pairs and joined at the top and bottom. Another option is to model at knot at one end of the wrap or extrude the tails and leave them loose. After the strands are connected, the mesh is adjusted as necessary and the support loops are added.
Another method is to subtract the negative spaces from a cylinder and cut across the mesh to generate a tileable segment. This segment is mirrored and rotated 90* to create the opposite strand on the other side of the wrap. These two shapes are inset to add depth and the tileable segment is mirrored and copied until the wrap is the desired length.
Combined with path and deform modifiers this allows a very small amount
of geometry to control a larger shape. This makes editing the mesh and
adjust the shape much easier.
The negative spaces in the wrap could be filled and inset for better baking performance on extremely low poly meshes.
Both of these strategies would work for subdivision
and polygonal modeling for high and low poly models. How the helical geometry is created and routed around the shape will
depend on the hilt shape, wrap complexity, available tools and modeling
strategy. The mesh density
will depend on the project and how the model is going to be used.
There's definitely a lot of ways to approach this shape so it really depends on what you're working with and what you're looking for. Alternate methods include extruding a poly
strip around the hilt manually, shrink wrapping and manually blending
several shapes, sculpting or using ZBrush's mask extrude feature, etc.
With simple shapes like this it's probably faster to rely on
tools and modifiers to generate the base geometry. More complex hilt shapes and free form wraps would probably require a more manual approach. That said: leverage the available tool set and modifiers where possible.
@FrankPolygon Wow, those are great tips. Really helps. I figured it had something to do with helices but didnt know how many or where Dx. I'm working on a hand-painted game character from concept and the first one seems low poly enough. Thanks!
I'm trying to find a good way of adding supporting loops without affecting the round shape. The build end tool (3ds max) sort of works for the top one but I can't find a way to solve the bottom one. Maybe someone knows a good or better way to solve it?
Similar issue regarding cylindrical/round details repeated in this thread countless times, same solution. You need a lot more base geometry. If you're adding a support loop to the bottom of the planar flat detail (on the right), you'll get a gnarly pinch on the curved detail on the left.
A good way to establish curvature/base geometry without affecting the model, or redoing the model rather, is to just delete all unnecessary edges/support loops, double check your smoothing groups to be correct, and add a turbosmooth modifier with smoothing groups checked. This will keep all your hard edges, and round out any faces that are set up with smoothing groups properly. You may find that you'll have to tweak your SGs in a certain way that doesn't break the geometry, like adding multiple SG's on a flat planar area to get the correct result.
@Povilas pages 169-171 have additional examples of cylinder shape intersections.
To add to what Kanni3D has already said and to prevent these types of smoothing errors in the future:Match the segment count on the rounded shape to the intersecting geometry. How much geometry needs to be added will depend on how accurate the shape needs to be.
Use existing geometry as support loops by intersecting the shape between the cylinder's segments instead of on the segments. Adjust the edge flow on the flat, rectangular areas to redirect the support loops away from the curved shape. This will reduce unnecessary complexity.
Many ways to get to this shape with some good suggestions already in this thread. What it comes down to is what tools are available, how much time is available and how accurate the shape needs to be.
hey guys, what should i do to build the curving pipe with all those convex on it like the ref. 1&2. and this is what I got for now. I dont now if i do it in the right way? and what should i do next to get that kind of convex.
hey guys, what should i do to build the curving pipe with all those convex on it like the ref. 1&2. and this is what I got for now. I dont now if i do it in the right way? and what should i do next to get that kind of convex.
create a spline (line in 3ds max) and use the filet tool. to create that curve.
@lindsay_han As I understand you, you're looking for the ribs on the tube going from the 90° bend pipe to the wall.
I would make a new spline, linear, with as few verts as possible to achieve the desired curve, trying to space them as evenly as possible, and avoiding 90° bends, something like this: For segments and setup, I chose an even number of segments (6), then an edit poly modifier to delete the end caps: Now a turbosmooth modifier and an edit poly modifier. In the edit poly, I select one edge, hit loop, then a dot ring selection that I will delete: This has essentially doubled the smoothness of the curve without adding uneccessary segments around the pipe. Repeat that step 4-5 times to end up with this, a tube with a very smooth curve, but low segments: RIB TIME! In a new edit poly modifier, select one ring, then dot loop, convert selection to polygons, and extrude. The extruded polygons should be square. Now just turbosmooth that result and yer done. This is where my love for modifiers in max comes in. I can go back to the spline and change the thickness, or grab verts of the spline and move them around with an instand result
I'm about to walk out the door, so can't post any workflow pics, sorry.
Ok well, a simple straightforward approach I'd suggest which pretty much works for me most of the time. Is to first breakdown the shape into basic forms, much like blocking out. So what I can see in your image, is a half cylinder with two extruded double sided edges of equal width, now basically what I'd advise is to model perpendicular (vertical) too horizontal axis.
In other words roughly eyeball it's dimensions, loop cut a cylindrical shape, extrude the sides (mirrored) then further refine tweaking the overall piece into it's final state.
If that dosen't make any sense go back 3 or 4 pages, I recall a @FrankPolygon tute about generating a basic object with inclined surfaces, from scratch...it's easy peasy to follow rather than spend your life trying to decipher the mess I wrote
@Udjani You're on the right track. Sacboi is right about working through some additional block-outs to analyze the shape.
There's a few distinct features that appear to be in conflict: the oblong boss appears to have a fixed width, the pattern draft appears to be relatively uniform and the complex profile appears to have little effect on either of the previous features. This results in a shape conflict that may be the result of several assumptions. To correct this we'll need to test these assumptions and figure out what compromises need to be made for this shape to work.
The two key assumptions seem to be that the draft (taper) and the width of the boss is either relatively consistent or fixed. These assumptions hold true for the basic shape but breaks down as soon as the complex profile is cut into the side of the boss. Cutting into the profile preserves the draft angle but causes the face width to spread out. It's likely that there's more to this shape or there's some kind of compromise between the face width and the draft angle.
Looking at the reference images: the face width of the oblong boss does appear to be slightly thinner near the middle and thicker near the ends. This could just be a lighting issue where the highlight is tricking the eye or it could be that the draft angle is steep enough that the width change is relatively subtle. If there's enough wiggle room in the reference image, you could try a steeper draft angle and see if it's close enough.
Here's what the mesh looks like if the draft angle is held constant and the face width is left as is when the profile is cut. Using a steeper draft angle would reduce the rate which the face width widens when it's cut out. This strategy could be a viable option (with some adjustments) since it looks like there's some variation in the face width in the reference image.
This mesh started out as the basic oblong shape and the profile (with the compound curve) was cut in using a Boolean operation. Cleanup
was done with a limited dissolve and chamfers were added along the face loops to add support for subdivision. (Omitted for clarity.)
Looking closely at the reference images: it appears that the profile cut at the end of the boss has more of a flat profile than a compound curve. This is something I'm going to adjust and carry forward but it's something that could be easily added back in.
Here's what the shape looks like if the face width is kept consistent and the draft angle is allowed to run wild. This strategy is probably the fastest but it's also the least accurate since it relies on subdivision smoothing to average out surface inconsistencies. For a more CAD style result it would be better to rely on an approach that maintains consistent face angles that maintain co-planar geometry on angled faces.
The mesh was created by starting with the basic oblong shape and using the shear tool to bend the various profile angles into the face. Changes in draft angle are allowed to run out over a wider area and minimal support loops should allow the mesh too smooth without causing surface undulations.The shading gradient on the subdivision preview shows where some of the angle inconsistencies are averaged out.
Building on what we've learned in previous block-outs: If the object in the reference images was designed with CAD then it's likely that there's more to the shape than is immediately visible. The shading on the side of the object suggest that there may be a shape transition somewhere in the profile. This would support the assumption that there's a consistent face width and draft angle.
Here's what the the shape looks like with a consistent draft angle, face width and additional profile geometry. The sharpness of this transition is something that can be adjusted to match the references.
Here's a softer version of the previous block-out. This checks most of the boxes and validates the original assumptions.
Here's the modeling process I used to generate this geometry:
Create the basic shapes with the key features (face width and draft angle)
Add support loops where additional operations will take place.
Shear the top of the rounded end to the correct profile angle.
Extrude the faces and dissolve the left over edge to meet the correct profile angle.
Dissolve any excess edge loops (to soften the shape transition)
Add support loops to the face with a chamfer / bevel operation or modifier.
Leverage geometry mirroring and other modifiers where possible.
Bringing it all together:
Reverse engineering shapes for a block-out is an iterative process and it doesn't always work out on the first few tries. Sometimes it's helpful to take a break, search for additional references, get a fresh pair of eyes, study the references and try to think through the process the original designer could have used. Iterating on a bunch of small geometry samples to isolate certain variables can also be helpful.
Working from CAD data and near orthographic photos is a great starting point but there's always a fudge factor and the possibility of compounding errors pushing things out of bounds. This is especially true when working off of 3D renders since there's the adder layer of complexity not knowing if the original designer used hacky geometry to generate the shapes. Sketches can be another level of abstraction so there's almost always an acceptable tolerance value. Sometimes it just comes down to knowing when to call it: close enough can be good enough on small parts if the overall form is there.
It definitely looks like the basic shape is there so you're close. Work through a couple options for the secondary shape on the profile and it should get you where you need to go.
I'm fairly new to modelling and as you would expect, I'm finding struggles with things that may appear to be rather easy to solve (at least I hope so). Regardless, I'm asking for your help so I can overcome these headaches that I just can't figure out.
In this example, I've laid down a surface (green mesh) to which, I've decided to extend the border of and curve it in a way so the slope acts like a border wall (grey mesh). The problem I have is that the topology of the two is different enough to present me with this problem:
Due to the edges not accurately connecting with each other, I'm left with tiny holes in between. My question is: what would be the best solution to this? I'm certain I'll need to recreate the border wall but I'm wondering which would be the best way to do it because I'd like to retain the kind of pretty, uniform quad size and topology I got with it so I don't have issues UV mapping it later on.
The second question I have (I hope it's okay to bundle them into one post) regards this model right here:
I'd like to recreate it from scratch and make a slightly altered version of it but I have no ideas on how to even begin to generate the kind of topology flow that it has. I'm mostly referring to the outer flat border which surrounds the inner piece, as well as the center which ascends in the middle and gradually flattens as it extend towards the ends of the mesh. I haven't gotten far with my own take on it as I've only been able to make an outline for it.
Anyhow, I'd really appreciate any sort of help with these two concerns I posted. Thanks all!
@FrankPolygon Thank you very much! Your last example is spot on i think, looking closely at the reference i can see some shading difference from manual adjustments.
Just to clarify, the original piece was done with sub-d.
@apb Hey, you might not have been yet introduced to the wonders and sadness of sub-d modeling, but that is usually the way to got for organic shapes if you are using a polymodeling software.
For both of your examples my suggestion would be the same, you will have to model it thinking about how the hole shape will look like, figuring out things like. Should i extrude it and then bevel?, or bevel and then extrude? etc. This way you don't get problems like your first images. Doing simple-ish models like those is usually very easy with sub-d.
When i was first starting i didn't know that sub-d was a thing, then i learned and it melted my mind just as it melts topology. Here is a good introduction.
Replies
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:
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!
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.
So i know this is a problem that happens when your low poly doesn't have enough subdivisions to meet with your high poly especially on round corners. The problem is visible only on couple of spots of the model and i was wondering if there would be a problem if i added some edges only on the areas that need topology. Is this a terrible solution if i want to avoid extra polygons? is there any other way instead of just subdividing the whole model ?
Hey there, buddy. You have two issues here. The first one you circled is waviness, most prominent on the top one you circled, and is discussed in detail here: https://polycount.com/discussion/81154/understanding-averaged-normals-and-ray-projection-who-put-waviness-in-my-normal-map#latest
You should absolutely read through the entire thread, but here's the short version: Waviness happens because your highpoly's cylinder sides varies from the lowpoly cylinder sides. The waves captured aren't errors. They're the output of what you input. You can do one of two things: Limit the amount of sides on your highpoly to match the lowpoly, and chamfer the edge instead of subdividing it...
Or increase the sides to your lowpoly around that edge to the degree that you can't discern the waves from the desired rendering distance. If you choose this method, I would do it like this (in blue)
Note that simply adding those verts won't change the result. They need to follow the curve of the highpoly.
The dark edges won't be helped from that though. They are something else entirely, and happen because the visible lowpoly captured a part of the highpoly onto the normal map that allows you to see an edge at such an angle that you'd never see it on the highpoly from that same angle.
Below are three examples. First is highpoly only, second is what you want in order to hide the dark edge, third is what you have.
Thank you very much! I was waiting for someone to give a good piece of advice for couple of days and i couldn't wait because i wanter to proceed with the project. I made the changes right away after i got home and honestly the results are great thanks again!
There is no more skewing and the topology looks ok i guess.
Not sure how to solve this polygon flow in this model I'm doing just for practicing. Just starting so not a good distribution of polys yet. A few lines showing how to do it better will be appreciated. Thanks
Front view of the model:
Here are my low polys:
Close up from the side
From above
and here it is subdivided
It's not perfect but it's the closest I've gotten while keeping each part about the same width and mostly similar. I'm wondering if I'm way off with this?
My steps are these roughly.
What car modell is it? Do you have higher res pictures. If it sub-ds good and there's no big issues. go for it.
Here are a few clearer ones:
http://assets.mustangandfords.com/f/240552494.jpg?width=620&
https://www.car.info/en-se/image/ford-mustang-side-power-big-meet-2015-1-133384
https://live.staticflickr.com/65535/47969877271_f381a9d871_b.jpg
The subdivided mesh seems mostly fine, some minor artifacts where it's the densest so I'll have to spread the edges out a bit and tweak the overall shape here and there but I'm always worried I'm doing things terribly wrong.
Also, holy cow, thanks for that link! Very useful stuff there.
It's probably a bad habit but often when I run into ugly reflections, I create a higher density mesh of the broken part (usually with inefficient topology though) and use the Blender modifier "shrinkwrap" on my "more" efficient lowpoly mesh to wrap it onto the higher density mesh underneath and that takes care of things sometimes (and creates seamless reflections across separate parts as well) although it creates some extra work.
this is pretty much my best try so far
OMG, thank you so much
I'm stuck on this one braided band on the handle of an axe in this concept art and was wondering if anyone had any ideas how to go about modeling it? I tried doing this coil of alternating half cylinders but it didn't overlap properly.
ATTEMPT:
GOAL:
Thanks
Wow, those are great tips. Really helps. I figured it had something to do with helices but didnt know how many or where Dx.
I'm working on a hand-painted game character from concept and the first one seems low poly enough. Thanks!
Similar issue regarding cylindrical/round details repeated in this thread countless times, same solution. You need a lot more base geometry. If you're adding a support loop to the bottom of the planar flat detail (on the right), you'll get a gnarly pinch on the curved detail on the left.
A good way to establish curvature/base geometry without affecting the model, or redoing the model rather, is to just delete all unnecessary edges/support loops, double check your smoothing groups to be correct, and add a turbosmooth modifier with smoothing groups checked. This will keep all your hard edges, and round out any faces that are set up with smoothing groups properly. You may find that you'll have to tweak your SGs in a certain way that doesn't break the geometry, like adding multiple SG's on a flat planar area to get the correct result.
and this is what I got for now. I dont now if i do it in the right way? and what should i do next to get that kind of convex.
As I understand you, you're looking for the ribs on the tube going from the 90° bend pipe to the wall.
For segments and setup, I chose an even number of segments (6), then an edit poly modifier to delete the end caps:
Now a turbosmooth modifier and an edit poly modifier. In the edit poly, I select one edge, hit loop, then a dot ring selection that I will delete:
This has essentially doubled the smoothness of the curve without adding uneccessary segments around the pipe. Repeat that step 4-5 times to end up with this, a tube with a very smooth curve, but low segments:
RIB TIME! In a new edit poly modifier, select one ring, then dot loop, convert selection to polygons, and extrude. The extruded polygons should be square.
Now just turbosmooth that result and yer done.
This is where my love for modifiers in max comes in. I can go back to the spline and change the thickness, or grab verts of the spline and move them around with an instand result
Notice how on the original the sides are the same width, i don't know hot to make that cut and keep it like that.
In this example, I've laid down a surface (green mesh) to which, I've decided to extend the border of and curve it in a way so the slope acts like a border wall (grey mesh). The problem I have is that the topology of the two is different enough to present me with this problem:
Due to the edges not accurately connecting with each other, I'm left with tiny holes in between. My question is: what would be the best solution to this? I'm certain I'll need to recreate the border wall but I'm wondering which would be the best way to do it because I'd like to retain the kind of pretty, uniform quad size and topology I got with it so I don't have issues UV mapping it later on.
Anyhow, I'd really appreciate any sort of help with these two concerns I posted. Thanks all!
Just to clarify, the original piece was done with sub-d.
For both of your examples my suggestion would be the same, you will have to model it thinking about how the hole shape will look like, figuring out things like. Should i extrude it and then bevel?, or bevel and then extrude? etc. This way you don't get problems like your first images. Doing simple-ish models like those is usually very easy with sub-d.
When i was first starting i didn't know that sub-d was a thing, then i learned and it melted my mind just as it melts topology. Here is a good introduction.
https://www.youtube.com/watch?v=QFckVSyvVy4