All you need to do is not terminate the tris right on the edge of that back side. You could delete the back and re-extrude the same edges without terminating edge loops and fix it in less than a minute.
Now a client or lead comes and asks for changes and you do that again. A chamfer modifier (or shader) would remove the need for this process entirely, keep it a ton more lightweight and easy to edit
New playable species and reclassification of existing species + average heights. Races fit in a 1x2x3 meter cube. Minimum and maximum player race heights established.
This is a brief overview of a couple ways to streamline poly modeling and a quick visual comparison of a few high poly workflows.
There's a lot of different ways to approach poly modeling but most artists usually start out with the basics: inserting primitives, cutting in edges, then pushing and pulling the geometry into shape while using basic modeling operations like loop cut, loop slide, extrude, inset, bevel / chamfer, etc.
In some ways this is a very direct and linear process, so while the modeling tools and order of operations might vary, it tends to be a relatively intuitive workflow that's fairly easy to pick up. There's certainly nothing wrong with this approach either: manually creating mesh components and destructive editing tends to work well for modeling simple, irregular, or organic shapes but it can sometimes be a real struggle when it comes to complex hard surface models with repetitive features. Especially when those repetitive features have subtle differences or are part of complex shape intersections.
Below is an example of what a basic poly modeling approach might look like on a relatively simple part with some repetitive features.
Block out the major form with a primitive, loop cut, then inset to create depth and round off the secondary shape profiles with a bevel / chamfer operation. Create the rest of the secondary features with simple operations like extrude and spin. Smaller tertiary details could either be manually created using the same loop cut and extrude process or by boolean subtracting another mesh. Clean up and simply the mesh as required.
Again, there's a lot of different ways to approach modeling this. Which
means it's less about the order of operations and more about
the total number of steps needed to create the base mesh and there's
always the question: What happens if the shapes need to be corrected or
the mesh density needs to be changed? With basic poly modeling the
answer usually ends up being either manually adjusting the
mesh or completely re-modeling the part from scratch. Depending on the size problem that rework could be anything from a slight annoyance to a major time sink.
Mirroring the mesh is an easy way to reduce repetitive work but it's possible to take this a step further by splitting the mesh down into tileable sections for each repetitive feature set. Adding an array modifier to these tileable mesh sections is a quick way to copy and merge them. With the added benefit that any edits to the original will automatically propagate to all the copies.
The example below shows what poly modeling those tileable mesh sections could look like. Insert a basic open cylinder primitive, delete the unnecessary segments, extrude upwards to create the flat features, then add a loop cut and scale it up from the center origin point to create the major diameter of the ribbed section and use a bevel / chamfer modifier controlled by edge weights or vertex groups to create the round over.
Here's a wider view of what the process looks like once the array modifier is added.
Define the larger primary forms of the major diameter first then extrude the edge along the minor diameter outwards to fill in recessed section between the ribs. Round off the corners of the first and last segment of the array with another bevel / chamfer modifier and that's it for the primary and secondary shapes. The rest of the tertiary shapes can be added with a series of boolean modifiers.
In this example the larger primary forms were created quickly with basic [destructive] poly modeling operations but since it's tileable and all of the secondary and tertiary details are generated by modifiers it's fairly easy to edit everything without having to do a lot of repetitive re-work. Though not ideal, it's even possible to destructively change the segment count of the primary forms by simply re-spinning the center edge profile up to where it meets the flat features at the top of the model.
Streamlining polygonal modeling with non-destructive parametric mesh primitives and modifiers like boolean, bevel / chamfer, deform, etc. take this concept a step further. Once the primary shapes are established, the curvature and mesh density of almost every single surface is independently adjustable throughout most of the block out process. Which makes it a lot easier to line up the segments for subdivision modeling and a lot of this flexibility also carries over into the base mesh for
modifier based subdivision and single application re-meshing high poly
workflows.
The example below shows what this process could look like.
Intersect cylinder primitives with a simple editable mesh that outlines the internal features of the flat areas at the top of the grip then round off the corners of that rectangular portion of the mesh primitive using a bevel / chamfer modifier. Add a torus primitive and use an array modifier to copy it along the length of the cylinder primitive then boolean union them to create the ribs. Use additional primitives and boolean operations to add the smaller tertiary cut out details.
Better references and thorough block outs do help prevent the kinds of problems that often require completely reworking large sections of a model but sometimes certain features just need to be adjusted. Especially when it comes to refining the visual read of shapes in vague and unpolished concepts or when there's a limited amount of reference material available.
This approach doesn't have to be all or nothing either: sometimes it only makes sense to make certain features non-destructive. So try to anticipate what parts of the model may need to be changed and plan accordingly.
Another advantage to this kind of streamlined poly modeling workflow is that, regardless of the final high poly process, the low poly model is essentially "free" because of how easy it is to generate different base meshes from the same model. As shown in the example below.
All three workflow examples generate the same exact
base
mesh. So, which approach to poly modeling makes the most sense? Well that all depends:
What's the model
for?
What's the available tool set?
What's the chance the model will need significant changes?
Sometimes the most direct approach [destructive editing] is the quickest and easiest.
Other times it's much easier to rely on parametric primitives and
modifiers to generate surface features with accurate and consistent geometry. Sometimes it's nice
to have some flexibility when it comes to easily adjusting shapes and mesh
density.
What makes sense for one part of the model may not make sense for another. So it often just comes down to balancing accuracy, effort, and flexibility. I.e. how much work it takes to create the shapes and how easy it is to
change things like curvature, mesh density, proportions, etc. without
having to re-do a lot of the existing work.
A similar streamlined modeling approach can also be used to generate the high poly model.
Below is an example of a modifier based subdivision workflow. A fairly simple base mesh, previously
generated by the parametric primitive and boolean block out workflow,
has all the support loops generated automatically by a bevel / chamfer
modifier that's controlled by edge weights. Which means the base mesh is fairly easy to edit and the width of those support loops can be changed by simply adjusting the width parameters in the modifier panel.
Below is an example of a single application modeling, re-meshing, and smoothing workflow in Blender. The same parametric primitive and boolean block out is used to generate a denser base mesh then voxel remeshing and corrective smooth modifiers added to polish the surface. Without creating micro bevels there's a distinct lack of variable edge width but any changes to the primitives, modifiers, and meshes that drive the remeshing modifier are almost immediate and there's no need to export the base mesh or switch apps to generate a bakeable high poly for game art.
Below is an example of a DynaMesh and polish workflow. The same denser base mesh from the previous example is exported to ZBrush for a DynaMesh pass then followed up with polish by group and polish by crisp edges. For most game art workflows the high poly model still needs to be decimated and exported out of ZBrush for baking.
High poly comparison, left to right: Subdivision @ 2x or 180K.tri, Blender remesh + smooth @ 7M.tri, ZBrush DynaMesh + polish @ 7M.tri
Overall the subdivision high poly is clean with minimal
smoothing artifacts. The single application re-meshing and smoothing workflow in Blender produces a high poly that's mostly smooth but does have some subtle crunchiness in spots. Surface quality of the high poly generated by the ZBrush DynaMesh
and polish workflow is mostly on par with the subdivision high poly.
All the results are more than passable for high to low poly baking. Especially when considering
the material has a moderately rough surface texture and the part will be relatively
small when viewed from a first person perspective. There's some amount
of variability in the high poly workflows but overall it's fairly
representative of what can be expected in most cases.
Recap: look for ways to automate or reduce repetitive modeling tasks by sectioning the mesh into tileable sections, offloading modeling operations to modifiers, and leveraging the flexibility of parametric primitives. Consider whether each part of the model needs to be simple, quick, or flexible, and adjust the workflow for each part accordingly.
Here's a couple of links to other write-ups that explore streamlined poly modeling and modifier based subdivision workflows a bit further:
There's still a lot of noise, is this a stylistic choice?
I would love to see more care taken with the roughness texturing. The reflections are very even and bland right now. The wood is flat, especially the bowl and table top, but so are the metals, and the food. There could be grog spills, food grease, etc. to make the lighting reflections pop.