Sign in to follow this  
Followers 0
Codewarrior Congrejo

Topology - the often neglected entity

34 posts in this topic

... or in other words: "Topology  - The 'anatomy' of your model"

This post is meant as informative article and to share thoughts and insights into topology and good structuring of a model (mesh). So feel free to add your thoughts about topology as well as questions : )

This is a lot to read - suggested only for whomever it may concern / interest =)

Everywhere were you see models you see differences in how they have been made. Models made by different kind of people vary of course from others: professional 3D artists, hobby modelers and people who are new to it and just started on this matter. In addition we can divide into models created for different targets: movie, game industry, certain 3D engines, and as in here: allowed uploads into existing engines (like secondlife).

The difference in their creation does not only depend on the artist making them and their specific workflow and pattern, it also strongly depends on what they are made for. As mentioned above a gaming model will differ a lot in its requirements from a model being made for a high quality rendering movie. Not necessarily in its quality rather than certain requirements to polycount, mappings, rigging methods, skinning and a certain topology in order to function with the existing structures.

Especially the newcomers or hobby artists are often overwhelmed by all the terminology and different workflows. They  have a hard time understanding which of them are even important to take into account and which should not concern them at all.

Topology is one of the terms that is important in any of these cases.

We can make increments of where it is more important and where it is half-ways negligible. But it always is an important part.

To start on the matter let's go first into 'what is topology' to clean up some common misunderstandings:

1) The word topology refers to the geometric surface characteristics of a 3D object.  
2) Modelers try to keep "clean" topology, typically illustrated by a 3D mesh with efficient polygon distribution, proper edgeflow and placement of polygonal edge-loops, few or no triangular faces (as opposed to 4-sided "quads"), and clean precise creases that minimize stretching and distortion.
3) A further aspect of good topology, and an important concept when modeling for animation is increased polygonal resolution only in areas of a 3D model that will undergo the most deformation during animation (joints, facial features, moving parts)

This means Topology is rather to see as the 'anatomy' of your model than seeing it in relation to it's polycount or mesh density. Even though the density / or count of faces relates to more dense areas where they are needed. (see 3) ). And of course the general topology of your model will define the complete amount of faces being used in your model. 

Note: the consistancy of keeping quads has to do with workflow. Normally you try to keep your model in this state till the very end of your modeling process in order to have a : more visually conclusive model, edgeloops you can work with, and to work well with modifiers like subdivision. As soon as your model is insides of an engine, or being rendered it all comes down to triangles anyways. (because that is all your graphic card will see and read)

Where is topology a rather unimportant part? Or let's better ask: where are 'certain parts' of topology being rather negligible?

- Edgeflow: we don't really  need to care about edgeflow when  making a 8 polygon tube object being used as static prop. 
- We also can abandon the concept of edgeflow when it comes to rather technical constructs like a house etc. Here the topology matters more in terms of how you place the faces, and how to achieve certain shapes (like beveling the corners) with a limited amount of faces by placing them in the right orientation, rotation. Unless (!) we want to make very organic shapes. 

Where is topology definitively important ?

- Organic shapes, everything that is supposed to mimic the visual nature and behaviors of organic parts (muscles, skin, plants, certain materials, wrinkles, and much more).
- Here the edgeflow and all over layout of the model plays a big part in the visual outcome and the behavior of the mesh when being animated.
- When working with subdivision a good topology also becomes crucial. Subdivision will make every mistake stand out much more.

Edges, Vertices and Edgeflow have to be in certain places and positioning to achieve  good bending,stretching or compressing of the model when being animated.


Topology is important the most where the model has to deform the most. (such as: crotch/hips/butt, shoulders/armpits, mouth corners/cheeks, knees, elbows, hands/fingers)

Side-Note for Second Life purposes: Here we are having already parts where we can (at least in terms of animation) abandon the concept of 'additional edgeloops' for better bending in spots like feet, hands and the face. The Secondlife Skeleton does not have toe-, facial- or finger-bones (yet). Means: you don't need to add unneeded loops and hereby more faces to your model to achieve a good animation in parts that aren't even animated. Spare those faces for more needed areas.

- And yes, topology is also important when it comes to efficiency as in fast render times (real time as well as pre-rendered)

There are 3 ways to actively 'create' topology:

- Lowpoly Modeling, Face Extrusion, Boxmodeling (these kind of fall into the same category)
- Sculpting a highpoly-model and then 'retopologizing' it 
- Subdivision Surface Modeling (by applying any kind of subdivision modifiers to break down your model further from a very basic polygonal geometry)




At the very end of editing your topology you mostly will start to 'optimize' things. Make dense rows of faceloops connect to a less dense area where you wouldn't need so much detail (i.e. the back of the head does not need to have the same density as the face). And start to stitch your all over Topology-Pattern together to achieve the best outcome.


PS: Extensions to this will be posted - titled as "Extension Nr.#" as replies to this thread so keep browsing through the pages when you want to read more.

So far existing: 
- Extension 1 -  Shirt Example - analysing anatomi and fabric
- Extension 2 - Pants Example - Edgeflow and anatomy
- Extension 3 - Poles, Loops, Edges, N-Gons - The pattern of your topology
                           (and the question: How many polygons to i "need" ?)
- Extension 4 - Retopology - or : Topology Reverse
- Extension 5 - How to give your mesh several secondlife-conform faces (in blender, plus ZBrush)
- Extension 6 - Textures and Lowpoly Model

Cheers, Code.

10 people like this

Share this post

Link to post
Share on other sites

Extension 1 :



Now that we know all this. Lets have a look with the help of our well known default female avatar model from Second Life.

( I hope they are not going to chop my head off for analyzing their model's qualities lol. And we may or may not discuss how efficient it is. I still think in terms of an organized model made to fit the requirements for their engine it has stable ground.)




As you can see the edgeloops (red) clearly define the flow of the shoulders.

The mesh contains also a higher density in these areas. (because as we learned: more density where more bending and movement is needed)


Also the edgeflow in the belly area is having this layout and curvature for a special reason - to mimic the chest and its rips. Down to the rather straight line at the belly where the body also tends to bend rather in a straight way. And everything kind of flows together / is centered.


In the green areas they spare adding more faces and keep a lower dense mesh. (because not much will go on here while being animated and posed)


The orange edgeloops define something most starters totally neglect: the shoulder muscles and the skin-bend over the shoulder joint.


The breast / chest area (blue) might look odd to us, but its topology is made with keeping all sorts of deformations down to a completely flat chest in mind. So also here the topology has its purpose. (something we could never achieve by having just some straight faceloops, which would be pulled out a bit)


Now with this 'anatomy' in mind it should clearly come to our understanding why a shirt like this: 



>>> would not work well. 

Not only does it 'not' support the curvature and bend in a shoulder it also does not reproduce the curves around the breast.


Of course now some might say : but I can 'hide' this part of the avatar, by using some alphatextures.


Well of course you can - But keep in mind: Not only when planning topology for a body - but also for clothes that are supposed to animated 'well' along with the underlying avatar and its skeleton.. And most importantly are supposed to behave 'realistically and reasonable' (readable as kind of realistic for the eye) you have to keep the anatomy in mind.


And if something bends rather like a 'rubber-pipe' in spots where muscles and all sorts of anatomic influences would bend the fabric of your shirt, then the general outcome just isn't right. : )


This is just one example, but it applies to everything else. (pants, custom avatar meshes, rigged attachments etc)


See it like this: with your faces and edges in the mesh you are imitating the behaviour of certain fabrics. And where we  have one face there would be tonns of tiny strings in a fabric which can be pulled from several sides and be under the influence of several muscles and bones. Forces of any kind tend to 'concentrate' and flow together in certain areas. This is something you have to break down in the all over topology of your model.


In high end game engines this 'sub' behavior (and for other purposes)  is often enhanced by using 'Tessellation' (something we dont have in SL-yet) at real time. But the general model it is applied to still has to pe-define the all over structure.


Sometimes you might want to have a different edgeflow or topology for certain reasons - with a different behavior to the underlying model in mind. Those are cases where you have to decide based on the material's substance and behavior  how you want their topology to be. (as in plastic, leather, fabric, metal etc -  not meant as in material-maps) 


Just give it a try and Google for "t-shirt topology" (same of course with all other potential items you want to make)  and you will find many great examples and ways to make a good layout. (not all of them are of course applicable on the SL model. But hey you can download SL's avatar for free and just analyze yourself to find the best method)

3 people like this

Share this post

Link to post
Share on other sites

thanks =) much appreciated.

( I have expanded the first entry in form of a reply, keeps it more clean and not too long as when being in one piece,. I will try to keep updating on it with further 'extensions')

Share this post

Link to post
Share on other sites

This is exactly why I have oftened wondered if it wouldn't be better to use the avatar's mesh to create clothing instead of the checkerboard like mesh that I see most people using.

Share this post

Link to post
Share on other sites

This is exactly why I have oftened wondered if it wouldn't be better to use the avatar's mesh to create clothing instead of the checkerboard like mesh that I see most people using.

yes and no =) the usual "unsatisfying" answer - but I will try to explain (from my perspective) when yes and when no applies:

- nononono : definitively no for the 'checkerboard' (as you named it) ; )

So let's break it down into yes = when do I stay very close to the avatar's topology, and no = when do I go more into a different topology' (checkerboards excluded ! )

- yes when you plan on making very tight clothes. (and here I include most clothing items like shirts, jeans, pants etc)
- yes when making any kind of clothes based on soft material that is being influenced a lot by the muscles etc.

- yes & no : in  'parts' of the topology where the 'shaping' you want to reach can't be provided by the topology of the avatar's ,mesh you make it for. There u have to gradually have the topology change over between edgeflow  you 'should' keep and edgeflow that is needed to achieve a certain shape.

- yes & no : when making tight clothes that have parts extending from it or materials that have often some own kind of anatomic behavior (very thick leather etc).  In those cases I try to keep the 'general defining' edgeloops and their flow  (mostly those in the joint-areas) in the same flow but gradually have them change over to accomplish what the other shape / fabric requires.

- no when the structure and behavior of the fabric or material this item is supposed to mimic, is 'very' different from the underlying structure of the default avatar (or my own mesh avatars and their own topology) like lets say a metalplate- which would 'move' with the arm but of course not bend. So here I totally don't need to care about having the same topology as the avatar. (when  we want something like this to expand over a joint they would, just as in an armor, either have gaps or own mechanical joints.)


3 people like this

Share this post

Link to post
Share on other sites

This thread is awesome and you are awesome for making it.

I hope I have some free time to chime in soon.

Share this post

Link to post
Share on other sites

Extension 2  - Pants Example - Edgeflow and anatomy

Okay and here comes the next step. 



In order to show a simple example of what differences the edgeflow can make I did the following:



A)  made 2 simple pair of example shorts (pants)

B) For both all weighting I did was only just to copy / paste weights from the avatar's lower body.  (to ensure that no one feels like 'enhanced' weighting would make the 'difference' here)

C) Posed the Avatar and both pants in the same pose (in this case we go for a split pose example)


D) Comparing the differences in behavior and their qualities.


Note: The more optimal pants was based on 96 quad polygons, and the worse example on 99. Means the bad example could not even with having more polygons before subdivision gain any advantages. (we will later inspect 'why' that is - and what makes the difference)

This example does not only apply to pants in certain - it also applies to custom avatar-legs you eventually want to make.


1) First let's have a look at the topology of the default female linden lab's avatar - lower body

   (if you are making cloth for another custom made avatar you have to inspect its topology of course)


The edgeflow is here definitely defining the general flow of the upper thighs muscle tip and the lower body.


2.) Now let's pose that lady

( I choose a split pose because it shows the bending and the muscle influence the best for this example)



Here u can see whereto those former marked edges 'wander' off when being posed.

(Lindenlab got some extreme angles going on here due to how the edges are placed. Almost 90° for some of them but it works out more or less ; ) )


3.) Now the (bad) generic example.

Some pants made the way most people would start with: make some loops around the hip and behind and then extrude some loops straight down the legs. (Means not taking any anatomy into account here)




The problem with these is that everything is in a rather checker-like pattern and does not really provide supporting edgeflows that would behave like real pants would on a body.


4.) And now some pants that actually have some edgeflow and a more thought-though topology:




These pants are made with 2 principles in mind:

(which you learned before  - in case you read the former entries, that is ^^)


- More detail where more bending and compression will appear when a body moves (animation), and lesswhere it is not needed.

- Following the anatomic curvature of the kind of body we want to make it for (humanoid, in this case)


5.) Let's see how the generic pants would look in this pose:




The obvious problems:

The first impression one gets here is that It rather behaves like 'folded paper' then actual worn clothing.

There is a lot ugly stretching going on (loops that get torn apart from each other) because this topology simply does not support these kind of movements between joint arrangements like this very well.

Especially between the legs its getting really ugly and behaves rather un-natural.

It also does not really simulate any existing thigh muscles.


6.) Now we compare the look of the better topology in this pose:




This looks way more like something we would expect:

The edgeloops in the crease between upper thigh and lower body support the contraction.

All edgeloops wander off in an even behavior to the places where we actually need them.

The relation between the loops stays consistent and fluid. (no big stretching or looking torn apart)

The first edgeloop on the upper leg nicely 'imitates' the curving of the upper leg muscle.




What is making the difference here?


A different topology from the avatar mesh, but yet still following its important edgeloops / flows.

Supporting anatomic behavior.

Putting the loops in spots and positions where they are used to shape and imitate certain body features.

Keeping the bones and their position and movements in mind too.


Simply adding more faces or more subdivision is never the 'key' to success. It's about 'where' you add more and where to spare them.

(i.e.. If I would just subdivide the whole pants mesh the 'crease's contraction' would become way too dense and strong) Have dense areas join less dense areas instead of subdividing your model into the nimbus of polygon overload. ; )


7.) And at last let's compare this with real human examples:

This will make the (hopefully) now obvious even more justified.




When we are inspecting closely the way the fabric is being pulled and stretched (upper example) we can clearly see how the movement and positioning of the bones are working on some pants / fabric in these spots.

And even more standing out: the fabric between the legs doesn't just get spread out in a flat manner, it rather 'contracts' before it starts spreading out. (this is due to not much forces going on in this particular spot = the lower pelvis)


When inspecting the lower example we see that a human leg when being bend back or sidewards creates a certain 'crease' between the lower body and the top of the thigh-muscle.


Some last words regarding fabric and clothing:


  • When you make pants or any clothing you have to keep anatomy in mind, yes.
  • But break it down to the 'main' influences.
  • You don't need to bother forming the shape and behavior of every muscle in a leg into some pants (unless its some sort of tight stretchpants lol).
  • Keep in mind what you can already accomplish with texturing, versus just adding more faces.
  • Take into account that fabric always has an 'own life' as well. Because it floats above the skin and thus can move opposed  / or barely influenced by some of the ongoing forces. 
  • Also different types of materials (thick leather, rubber, soft wool, satin) have different attributes (stiffness,softness, etc).
  • Just like with modeling - try to see it in bigger pattern and just stick to where its the most needed.


There is no absolute solution or best way to do it. Practice and you will find your own ways to accomplish certain things ! =)


Cheers, Code.

7 people like this

Share this post

Link to post
Share on other sites

One of the most usefull threads I have seen here .

I will be editing some of my past posts to include Links to here so that if anyone comes across them while searching they will get a better understanding of how it should be done (and more importantly perhaps, why it should be done like this )  .

Share this post

Link to post
Share on other sites

One of the most useful threads I have seen here .

I will be editing some of my past posts to include Links to here so that if anyone comes across them while searching they will get a better understanding of how it should be done .

That would be lovely. Feel free to link it wherever u think it could be useful.

And I'm glad to see some people are enjoying it =)

Share this post

Link to post
Share on other sites

Just chiming in to convey my kudos to you too, Code. :matte-motes-smile:

Although I've previously created rigged clothing for usage in Poser (3D rendering etc), I am still learning to optimise for SL's low poly environment and so I'm always open to new ideas and methodology. Your posts give me new ideas and directions to approach SL clothing creation from - I especially like your pants post (the upward slanting loops method to better follow the AV edgeflow).

Of course, there will always be generic issues common to 3D we will have to live with - but half the fun (at least to me) is in developing work-arounds to avoid and/or hide the annoyances.

Your posts are gold - a forum mod should sticky this for easy future reference. :matte-motes-smile:


Share this post

Link to post
Share on other sites

Just chiming in to convey my kudos to you too, Code.

Thanks a bunch, Maeve : )

...Your posts give me new ideas and directions to approach  from ...

Sentences like that make me happy ! That's what i'm doing it for.


Share this post

Link to post
Share on other sites

Extension 3  - Poles, Loops, Edges, N-Gons - The pattern of your Topology

.. And the question: how many Polygons do I "need"?


1) The never ending question, how many polygons do I need, or should I have?

As stated in the earlier posts: it depends.. 

It depends on so many factors as there are stars in the universe. And all comes down to 'what engine, platform, or target-industry am I making it for'. So let's concentrate for now on Second Life, which in turn means, go with default standards for engines of this kind. (a little reference: the whole default avatar has around 7000 tris. That is close to the regular standards for platforms and games of this quality and type)


I know it can be hard to have a value in mind and then actually figuring: how on earth do I make my model have this exact count.. It can be pretty easy with constructions like houses but with organic shapes the polygon counts just sometimes feel out of control and keep doubling while modeling when you don't know how to influence them.


There are several ways to do it:

- I have described them more in the former posts. But to repeat shortly: 

- Box-Modeling, Poly-by-Poly Modeling and Extrusion Modeling, Sculpting and Retopology, Subdivision Modeling


How intense or dense a model is going to be is pretty much in your hand when you 'actively' model it. Rather then just relying on procedures and modifiers alone.


Keep in mind that with every face you are adding things can increase easily and you loose control.


2) A lower leg - one way to do it


- When you actively model your parts you have a certain control. 

- By taking into account that when using subdivision you will 'approx.' end up with the double amount of faces, you can influence this on your lowpoly cage.

- Every loop and face will define the final models polycount. (before optimizing)

- Rule Nr. 1 Break down everything into the main-shapes, and needed features


- Let's make a lower leg (just simple for this example, no toes):



1. That is actually all it takes to define the shape of the leg and the foot.

(You can work with drawings or reference images or concept art you made / been given or just from your mind if you have the shape in your head)

I am blocking the shapes only with a new extrusion wherever I know  I need a line or point to define a curve or shape.

2. Leg 1. In side view to see the 'boxes' it's made from.

3. Here we start to move the 'vertices' and shape the leg and its features (not faces or edges that would not really allow us the all over shaping) 

4. With subdivision on level 1 this is what we get (after some more pushing, pulling and tweaking)


You might wonder why I didn't add one additional edgeloop in the front / back of the leg, like it did on the side. With knowing I'd be using subdivision I knew I will get this cut anyways, and adding it already would just double the whole loop after subdivision. Which would be way more then I'd want or even need.


3.) Let's compare once more with our default avatar



The obvious things:

- As the blue lines show I came out with almost exact the same amount of loops, even though my shaping is quite different.

- Why is that ? Surely not because I counted their loops, the answer is way easier...once more it's 'anatomy'. 

- A leg has a certain shape and thereby certain 'breakpoints' you have to have make to define the curves and shapes. When you break it down into it's absolute basics this is mostly what you will end up with. And thus you can be sure you got a good amount going !

(unless you have to do real lowpoly characters of just a few hundred for the whole body then you have to break down even more and 'fake' the rest with textures. But luckily SL is not 'that' limited ; ) )

4. ) Yet there is still a difference:

Lets inspect the topology first before digging into terms like 'poles' etc.


- The SL avatar leg and mine have almost the exact amount of faces (roughly around 360) for this area of the leg.

- But.. The default Avi leg has way less vertices then mine.

- Why ? One might wonder.. Because visually they have the same amount of loops going from top down to the toe area.

- Here is why: The SL avatar is made towards tris and vertex-count.

- One important thing to know is that polygons nowadays are still to consider but easier on the machine then in old times. But vertices still remain to be the 'heavy' load. (and certain things like UV-Map-Seams, Smoothing groups etc even double vertices at those points. Which happens inside the engine. Your 3D software is not able to tell you this computational and graphically higher amount of vertices - I have just found once a script that did that)


But let's have a look:Topology16.png


The Sl avatar is triangulated. (because that's what the engine anyways does with the model at the end)

Their model is 'finished' means they don't need to preserve the 'quads' anymore for further modeling.


But yet we can still see the quads its made from - have a close look:

- I drew outlines to show you where each of them tris build a quad. (left side: blue, and green)

- and here is where the 'magic' happens..  the orange areas

- Magic ?? What where? How ???

- Remember the first post in  this threat ? The last image shows how to transition between higher and lower density areas.

- In the orange spots they break down from a higher density of mostly 2 loops into just one loop, by working with 'Poles'.

- One point in addition where they spared a lot vertices is the red area where the toes would be. Due to everything already being triangulated they could just collapse this without worrying about ugly subdivision when having tons of tris. (and due to the fact they knew they didn't want toes and rather texture or attachments as foot or shoes)

5. ) Small things with big influence:



- one more thing before we jump into the universe of poles and loops etc:

- Always Think twice ! Where do I "need" a face in terms of the shape?

- would I have extruded the heel of the foot also as full box this would have given me way more faces. (it might not seem much to you the difference from 26 (right) to 32 (left). But with potentially more subdivision or other things to be done this can fast quadruple it's amount)

- Plus.. No heel would look that much bulged anyways. o.O


- But oh shock.. You used a triangle !!

- OMG! Yes I did.. But I knew some magic would happen when I apply subdivision. As you can see in the most right image with subdivision applied.. Magic, yes.. There is no triangle to all ! (we will come to that later)


6.) Edgeloops and Faceloops




- wait what? There is a difference ? Yes there is !

- Edgeloops (red) are loops of edges that connect.

- Faceloops (orange) are loops of faces (including there horizontal and vertical edges) that connect.

- Both loops can be stopped by so called 'breakers' such as: wholes, poles, tris, and steep edge angles.

- And as you can see on the most right image faceloops in their most appearing form on models: spread over /insides a grid. 


7.) More Loops




- Loops can be created in several ways and are used to define certain shapes, control behavior like muscles and much more. And to create more detail / more faces and connect those to an area of less density.

- common ways to create a loop: select an area of faces and extrude them - then scale inwards and voila you have a new loop around this area (right image)

- Another method is : 'split vertex' and move

- easiest example (upper right) split those 4 vertices (red dots) and shrink the result. Now add faces into the empty area. (result is on the right of it)

- Another use of the split method (lower right) is to create very certain loops and even crazy looking ones like this (blue).

(those can  be used to pull certain details out of your mesh without disturbing the all over topology as well as being used in areas like the nose etc to define complex shapes)

- Note: with loops like the last one you have a lot to 'resolve' in order to keep all adjecant faces as quads. But i won't go too deep into that matter now. If someone is interested, feel free to drop a question here and i'll gladly reply.


8.) Poles



- What are those things? It has nothing to do with the North Pole, nor a dancing pole .. That's for sure !

- A pole (red dots) is a vertex with several edges connecting to it. (essentially every vertex that does not just float alone)

- There are types of poles We 'want'  = Poles with 3,4, and 5 Edges connecting to it 

- There are poles we do not want = everything above 5 !!

- Why don't we want poles with more edges ? This is easy to answer: Every edge connecting to a pole means there are are also more faces, and eventually faceloops streaming towards this point (just like in the pinched top and bottom of a sphere). Which means in return, that this pole will have a lot 'influence' when being animated or used to model further. And all of it concentrated into one point. This leads just to unwanted results. So let's stick with a maximum of  5.


- Poles are being used to create transitions between different dense areas (middle image), to create more density, or to remove it. And they Appear in their 5, and 3 edges form in the corners of every faceloop.


9.) N-Gons:




- N-Gon is a polygon with n sides. For example, an 8-gon is another name for an octagon.

- So basically every poly is a N-Gon.

- But we do make differences here again when  it comes to modeling.

- A Tris (triangle, polygon with 3 sides).. We try to avoid these for former described reasons. And preserve quads wherever possible. And when we don't find any way to resolve a tris, then we will try to put it in a place where no one really can see it. Or where it doesn't interfere with subdivisions or other procedures.

- Polygons with more then 4 sides.. Are mostly completely abandoned in organic modeling. They can be useful in technical constructions (like octagons etc). But for organic shapes and in animation they are kind of a big no-no!


... BUT.. Sometimes.. Yes sometimes we can actually use them to.. Yeah here it comes.. To do some magic again!


- Actually it's not magic ... I have to reveal this now. Even if magic would make it more appealing ; ) It is plain math!


- If you know how the subdivision algorithms work that your 3D software uses (and they are basically almost 99% identical across all common 3D suits) then you can actually make use of them.


- the above image shows what 'magic' happens when you apply subdivision level 1 and 2 to a shape being created with a 5 sided N-Gon below 2 faceloops of quads on each side:


They get resolved into quads ! Yippee... Quads our friends, there they are.

And apart from that we have made an awesome transition from 6 faceloops (green) into just 2 faceloops (blue) !

Told ya.. It's magic ..ehm I mean math! ^.^


10.) More fancy looping:



- Muscles and other shapes can often be mind-boggling to construct. 

- Because they bulge out of the shape and often  have several bulgy shapes flowing into another.

- With methods like shown in 9.) and other ways you can  even accomplish complex structures like this

- Another way is to retopolgize a sculpted model and then create edgeloops around the muscle area. But as you can see here Even those you can create insides of your model when you know how to add faces, edges and loops in  order to achieve a certain result.


11.) So what is all this good for ? - Optimizing your model




- you can either directly plan the outcome before subdivision. But sometimes its not achievable because you needed a certain loop to define a more shaped area. And once you are done you want to get rid of the doubled loops that have been the outcome of this away from the part where u need it.

- And also to optimize or break down a model even more.

- Or to add more detail in certain areas later on.


So let's come back to our leg:


- In the image above I am showing one way to get rid of more faces and verts. In order to reduce the amount.

- sometimes you just can't easily delete a loop because there is an interrupted loop or you need certain parts of it.

- One important thing in mind: I try to stay away with poles in areas where animation will take part (like the joint-area of the foot i.e..) I keep them below or above with at least 1 regular faceloop in between.

- so actually we don't need that much detail on the side of that foot. but we needed more detail in the joint area for animation and where the ankle was to shape that out. But we can get rid of it below.

- start by 'merging' the first 2 vertices together (left) and then proceed as in the middle image. Proceed also underneath the foot and continue up to the same height on the other side of the foot. Outcome would be the image of the right side. At the end get rid of those 2 tris (orange) and make a 1 face/quad out of them.


- You mostly will need to move some vertices again to 'reshape' a bit, since you just removed a certain detail defining part that's just normal =)


12.) Wait there is more stuff we don't need...




- do we really need that loop there? (left )

- but it was kind of defining that shape so nicely.. Well we can restore that..just wait and watch..

- select the loop and choose delete: loop.

- This will bring up something like this (middle)

- to obtain the shape from before: Select that new top-loop (red) and edge-slide it to a comfortable middle position between the other 2 edgeloops. And slide the edgeloop that is closer to the toes also a bit upwards.

- now you can position or maybe even scale the loop a bit to recreate the same shaping we had before. And voila same look with a whole faceloop less to worry about.

- And since "most" humans >.>.. Have 2 feet, this is taken into account 2 times. Means we saved even more ; )

How far down can we go? Well.. How far is it from here to the orion galaxy?? You could keep stitching and merging and removing until the end of the day, or as long as it still preserves the quality and the shape you had envisioned ; )


Congratulations.. You made it !!!.. You read through this and you are still alive ! I am proud of you!! Means you have the will to learn more things, that's great =)


And because you have been so brave, I'll leave you alone for now.. Until I drop the next part.


Have fun creating, Cheers! Code

4 people like this

Share this post

Link to post
Share on other sites

Wow. I applaud the effort that must have gone into all this. This is an overwhelming amount of information to tackle in one post -- You actually managed to do a "Everything you need to know about manipulating topology in one thread post" which i didn't think was possible.

If every mesh content creator read this, the content of second life would be (insert arbitrary percentile here)% higher quality and less processor intensive.

Share this post

Link to post
Share on other sites

...Wow. I applaud the effort that must have gone into all this. This is an overwhelming amount of information to tackle in one post -- You actually managed to do a "Everything you need to know about manipulating topology in one thread post" which i didn't think was possible....

...If every mesh content creator read this, the content of second life would be (insert arbitrary percentile here)% higher quality and less processor intensive...

Thanks Rahkis, i'm glad you guys obviously appreciate it : ) And hey, i still didnt cover 'all' of it ^.- i'll keep going =)

Share this post

Link to post
Share on other sites

- Extension 4 - Retopology - or : Topology Reverse

- retopololopo what?
- You think now I'm just making up words, don't you? No I am not ; )
- Retopology is 'redoing topology' when we already have a model whose topology is not appropriate for our needs.

Example case:

- now we have this fancy sculpting program (Zbrush, Mudbox, Sculptris.. You name them), and we have produced our  awesome looking model.. But oh shock.. we are facing several millions of polygons... that is. just... not right!
The platform we want to use it for doesn't support quantum-mechanics-super-nova-computers and we need less polygons.. way less !


There are many problems with meshes being made plain out of sculpting procedures (and by that I mean as long as you did not start with a low poly model that is precise enough to use in it's unsculpted, no high detail form for your purposes)

One might think but we could use a decimator procedure on it. Well yes you could. But if you possibly want to animate this, UV unwrap it, or maybe even use it in a game. You better consider what the rest of us artists do too: retopologize it! 

The decimating processes break your model into mostly tris, you have no real control of how the outcome would be, and where which loops wander off to. Plus you decimate it from an already not being optimal model so the outcome is just mostly one thing: absolutely not usable. Unless you just want a statue to stand around somewhere ; ) But everyone who has tried already to decimate a several million heavy model down to a usable amount, has probably already discovered why everybody else is retopologizing, since it becomes worse and worse with every step down.

Think how much can possibly go wrong when you try to decimate and deconstruct your model in an automated way from some millions to only around 6000 polygons. - yepp that should make it clear ; ) the work you would have afterwards to organize and solve all this would take you most likely longer then just retopologizing it.

Retopologizing means that you take your model and begin to rebuild it polygon, by polygon.
Building the loops and shape it's whole topology all new.


Normally you do this by bringing your high resolution model into your 3D software, and start to cover it with polygons while having some sort of surface restriction or snapping method on. So that the newly created vertices will snap onto the surface of your model and allow you to 'recreate' it's shape.

Lets grab my big beast and make an example:


First you start making really rough polygon fields and decide the mainloops and shapes.
(since his head is kind of a big skull plate he won't have much facial structure to worry about in terms of faceloops and edgeloops etc)

And already this start image shows how much 'less' polygons we actually 'need' in order to create the same shape. Of course we won't have high detail structure like skin pores etc. But those we would produce in game engines by using displacement, bumpmapping, and various other technics  (I'll explain a few later in this post). But in second life we can't use these anyways. So let's stick for now with just retopologizing our model.

After a few hours of work we will reach something like this:


Try to keep the anatomy already in your mind when doing the retopology.

Block and loop out shapes where u know certain areas like chest, six-pack etc will be. (light blue).

Create the denser areas where u know a lot of bending / contraction will go on. (light green)
Just to name a few of the pre-planned shapes.

This is is long not the end. There are several hours of retopo, and later on optimization ahead. 
( just wanted to show you what it is and how it's done so i'll stop it here.)

With methods I have described in the former extensions. I would remove unneeded edgeloops, merge verts, in order to get as low as possible on the poly count. Make transitions, create further shaping loops around the muscles etc..etc.

How far I have to go down would again depend on what target engine I am making it for.
And keep in mind there are so many things we can 'fake' with good textures. We don't need every detail being shaped out. Plus: the SL Skeleton doesn't allow us to add additional bones (yet) in order to animate muscles or other features.

In addition a few things to now:


Another use of retopolgy, when it comes to games or even movies, is to make a retopology of your high detail model. And use it to create 'displacement' maps by having the differences between this low poly cage and the high-poly model being computed and baked out into a map.

The displacement map will then be applied to your low poly cage, and will come in when the model is rendered.
(means this is something that takes part when the model is actively rendered in the game or for a movie sequence)

I have once made a fast-scratch image tutorial to explain somebody how displacement works. It was based on Cinema 4D and Z-Brush (some of the other 3D suits I am working with on regular basis) let me attach it for you. It might make the subject more understandable:


It basically shows the steps from having a lowpoly cage, pumping it up to some millions adding some details (very simple here just for the example), and applying it at rendertime to the lowpoly by using the vector displacement map. Which in turn means we have a ring with just 418 polygons © rendered with the details of 1,2 mil. Polygons. (lower right, last image)

Especially new technics like Vector Displacement are plain magic when it comes to having a model in the scene with just a 'very rough polygon cage' and displacing its vertices and faces into 3 dimensions (opposed to the old way of displacement where they could just be "moved" out to a certain amount but not really create 3 dimensional 'shapes' where they haven't been there already. And thus have been rather used for structure and finer details on already existing features on the model)

A good example how far vector displacement can go by applying the V-D-Map onto a rather plain model of almost just a beveled box you can see here : (*edit: the forum seems to have a hiccup today, can't even post a simple youtube link, just search for this string on youtube: Mental Ray Vector Displacement Shader )


Tesselation is a process where the existing polygons are divided even further at realtime / while being rendered.
This article by Nvidia describes it fairly good :

I.e. the Unreal Enginesupports Tessellation. Many of you will most likely know it from playing games which are made using the this engine. A link with more information here:

But don't get your hopes up. Second Life does not have tessellation nor vector displacement (yet - and I am not sure if they ever will - the future will show, I guess )

aside from this, if you feel in need  to first shape your model in a sculpting program then the above shown steps to retopologize a model will become needed for you in order to create your 'usable' model.

I hope this was helpful and informative. Cheers to you all out there! Code.

3 people like this

Share this post

Link to post
Share on other sites

They don't have those methods of providing cheap high detail, but we will be getting normal map capabilities with the new material system (Whenever that happens).

That'll be a huge step up from what we have.

Share this post

Link to post
Share on other sites

Yeah i've seen that and been looking forward to it.. a lot.

It's still standard methods but will at least allow us to a certain extend to produce more 'visual' details on the model.

Apart from that: if i was Linden Lab i would think twice if i even ever want to support tesselation or vector displacement.
Given the fact we don't have a 'fixed and controlable' environment here and users can just upload the wildest models (in terms of too dense, or having other structural issues) that outcome would be rather machine-breaking ; )

Plus in a fixed game environment and its engine i can pre-determine the degree of tesselation or Vector displacement. And create my models based exactly for that with a given polycount and with vd-maps which support this level of detail.

I seriously wouldn't want to be the one wrapping my head around a system to limit that, and provide all the settings and needed structures in order to bring your selfmade model in with these kind of maps or tessellation applied.

Speaking of ... you should have a look at : 

Watchdogs - gameplay video.

They have some breath taking tesselation going on. All the clothings.. really impressive. (especially from ca 09:40 on) and not only in the videosequences it's also applied ingame. Not to speak of the obvious motion capturing for the animations, and expressions. Also the openworld and gameplay idea is pretty unique and nice. .. enjoy =)

Share this post

Link to post
Share on other sites

Definitely some of the best cloth I've seen in a game.

About Linden Labs, though, haha. Who knows what we'll have in the future, but it seems to me that they already have that problem!

How much of our current lag would just dissapear if everything was replaced with game optimized mesh? Obviously, most content creators aren't professional 3d asset designers, so that is not a realistic expectation but the point still stands. Add the new material support to the mix and we could have higher quality than what is currently feasible and still be able to run SL smoothly on the highest settings.

It's fun to dream.

Share this post

Link to post
Share on other sites

- Addition to: Extension 4 - Retopology - or : Topology Reverse

OK OK I actually wanted to stop there and just show you an example of what retopology is and how it's done.. but once more - as so often - I couldn't help but working on.

So even if just for complicity's sake or to show you what all that retopology is good for:

- I almost finished its retopo, 
- straightened it out (since it was a static model and shaped into a fix pose) so I would have a relaxed t-pose again,
- and rigged it to a female skeleton (yes to a 'female' skeleton ^^)


So now you know what it's worth for to do all the retopology. Since we could have never done this with a straight-out-of-the-sculpting-program model.

Still needs some optimization, removing some loops here and there. Tweaking the weights a bit more etc.
And i need to remove that mirror'ed horn in the middle of his back. Just have to keep it for now due to working with mirror modifiers, and its going to be an 'asymetrical' part - so can't really drop it out yet.

We'll see if I finally can take my hands off from it, or maybe go on and finish it all the way.

See you in the next episode..
Have fun creating - Cheers! Code

Share this post

Link to post
Share on other sites

For the pants example, could I possibly see a side and back view of the "more thought-though topology" pants model, along with the edge flows for the side and back of the pelvis? I tried looking at the at the topology of the avatar and the weights of the avatar but I still couldn't figure where the edge flows could be for the side and rear of the pelvis and legs.

Share this post

Link to post
Share on other sites

luckily i saved that file. Normally i kick them off afterwards.

Keep in mind that for the test in the example i made very 'simple' pants and only a 'copy paste' of the weights to show the difference in the behaviour already with those few loops following the crotchline and body curvature etc. instead of making those straight lined 'checker-topology pants'.


normally you would have to do more finetuning here still. But for a quick example. This is how the copy & paste of the  'upper legs' (mHipLeft / mHipRight) influence circa would be.

As u can see i follow more of an downwards curving on the backside, opposed to the avatar itself having more of of a upwards looping in the lower part of the buttox.

And here is the pelvis influence:
It would need some refinement like on the right side of the image below (usually i edit it so that the pelvis covers the crotchline all the way through to the backside. - This ensures that nothing in the middle will move around when the legs are being rotated- just as in real life where the crotch center area also has the lowest / or no influence by the legs)


If you want the backside to be even more accurately you can do something like this and bend the loops on the back so that they actually build a good flow from upwards curves to downwards curves (image below) .
But make sure that they still have this the right bend on the sides. (As in the images above.)


Can you post some screenies of the topology of your pants and it's current weights? that might help to give some suggestions. =)

PS: it's late now and i have to roll off to bed (4 AM here ^^) but i'm sure i can whip you some more example pants tomorrow, if you still can't find a good solution.

Cheers for now, Code 

2 people like this

Share this post

Link to post
Share on other sites

Okay and here as promised part 2...

Some more quick topology examples for backsides of pants, based on the former described upwards to downwards bend.


With adding different faceloops or changing the topology in certain ways you can  support the outcome in terms of certain  'shapes'. Like the more edgy buttox of a skinny male or the more round female behind. So if you want to preserve or predefine a certain shape or volume those are some examples how to reach them.

And the front and side views:

But again it all depends on what 'shaping' you want to achieve / had in mind.
Just a few loops can change the visual outcome a lot. 
So you have to decide what general shape it should have, and of course what kind of fabric /material it is made of.
(doesn't make sense to make a thick-leather pants sit on the body like a stretch-jeans ; ))

The shape is one thing - and anatomy another.

Here's the basic rules I am trying to stick to, no matter what the shape is:


However, a general thing to keep in mind, when dealing with rather limited amounts of polygons and animation in combination:

We are dealing here with the limitations that are pretty much still standard for game engines / platforms of this type.
Which means 5-7 K polygons per full character model.

If you want something like Poser, DAZ 3D, and other animation suits are using for their absolutely smooth pose'able models:

These models have 18 K (and more!) polygons (plus using different Skeletons). This is not to consider for SL.

Nor would it make sense to make some clothing of such a density to compensate for something that you can't reach anyways due to not having bones to move muscles etc. (just as example)

Note: And one thing to keep in mind: in animated movie sequences etc, we would normally shape parts that do not 'behave' nicely in a certain pose by using morphs or shapekeys, or even use a second model with a different topology. This is something we can not do in this certain case. So make a 'generally' stable solution, based on the current limitations.

My personal advice -  for limited environments (games etc) :

  • Find a target value for your clothing item, or avatar in terms of the poly count.
  • If you make i.e.. Some pants and you don't know how many polys that should have. Orientate yourself by selecting that area on the default model for a platform and check how many polys that has.
  • - With that number in mind, start to create your item.
  • - If there are some too much or too less, that is something you can always correct at the end. (if its some thousand too much then it becomes of course bothersome to correct that -  so it's better to build with a ca. number in your head)
  • If you feel it needs a few more in certain spots to achieve a better behavior, just add them. 
  • Keep in mind what you can achieve with textures and doesn't need to be shaped out.
  • Test your object / character in posemode. Try some extreme poses, but rather for finding big errors in the weighting. (like 'that one random vertex that all sudden pops totally out of position.)
  • Test casual and generic poses to get the best results out of those.
  • Don't get overboard with those tests. Keep in mind what normally would 'go on' and what not.
  • (extreme poses that last only for a second like a high kick etc, should not concern you too much, the eye is easily tricked)
  • Be aware of the existing limitations, don't await things that can't be reached and don't constrain yourself by trying to reach something that is not possible.
  • When the model's topology is good, then the rest is pretty much coming down to your skills in weighting. Try different things and see how it behaves.
  • There is always room for advancement, just try to pull 'the best out of what you have available'=)

3 people like this

Share this post

Link to post
Share on other sites

Ok this little Image tutorial has been made as answer to a user's question in another thread. But since it kinda belongs into the same category i'll add it here as well. (original thread

- Extension 5 - How to give your mesh several secondlife-conform faces

  equals: materials in blender

The examples are explained by using a jacket, shirt and buttons which are all 'one combined / joined' mesh.
And answering the question how you would manage to give each an own selectable face in SL and thus the abilty to texture them individually -  eventhough being one object.

The tutorial implies that the UVs have been already unwrapped, and made. And we are using the regular Blender materials (not Cycles)

It can also be used to learn how to assign different faces onto one object that is just 'one' ongoing mesh and not several joined meshes.

So here we go:








- basically you would be done here. This is all it needs to create a file that - once exported and imported to SL - 
  would have an own selectable face for each of these parts (shirt, jacket, buttons)

- But if you want to give them already insides Blender their textures in order to edit or refine them / or just check the
  visual nature, align to UVs etc, you have to do the following steps as well:





In addition : how to achieve this completely within ZBrush, there is another Turorial from me under this link:

It also contains steps on how to actually create several UVs for the same object / mesh within Zbrush, and different methods on how to handle such a model, to edit and create textures for those independent UVs and Texture maps.

Cheers, Code =)

1 person likes this

Share this post

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now
Sign in to follow this  
Followers 0