Got a DM question about how to maintain texel density when unwrapping game meshes.

I unwrap using Maya LT at the moment, and it has a feature called get and set under the scale transform of the uv tools.

Got "get" the texel density of a polygon, and the "set" the others.
Maintaining texel density is most important at seams, where it becomes very clear when there is a mismatch between the two.

However the actual truth is you don't have to maintain a perfect texel density across all of a model. Some parts just don't get seen by the player...
For example who gives a rusty old damn if the inside of a character's mouth, guns inside barrel or the underside of cars mudflaps are lower res than everything else?

You can often cheat density to allow key features close to the camera are crip.
So part of the question was when to know to split off to a second texture. Well, this comes from the complexity of the model, and any modularity that may be needed.

Say I was doing a space marine from 40k. It makes sense that the majority of the body armour...
Is on one texture. However the pauldrons, insignia and head vary from character to character.

The smart move would be to have the head and neck area on one texture, so it can be super crisp and detailed for cinematics and the skin would have sub surface maps the armour doesn't.
Likewise, if I had an emissive (glowing stuff) cybernetic eye and a light here and there, but the whole armour has no emission, it saves a big empty texture to separate those parts off.

The general rule to break a texture up into several is that you cannot...
...get the resolution you need on all the parts within the max texture size (usually 1024x1024 or 2048x2048 depending on the project platform).

You can figure this out using screen appearance size. Say we do a huge closeup on our hero's face and we want to do this in HD 1080p
We want at least 1080 (the vertical screen size) for the face texture, and higher if possible because to describe pores needs a few pixels.

(You can achieve this by layering masked tiled fine detail textures in the shader -however, but that is for another lesson)
So it makes sense to have a 2k face texture.

But if your hero gets only close enough for a quarter of the screen, then you are looking good at 512x512.

So back to laying out UVs, I start by laying out the biggest, most important islands first and using "get" to see..
...what kind of texel density they have... then I picture that in my head and think about the output size. If I am happy, I will cram in everything else to that density.

Sometimes, however, I waste texture space NOT cramming in the UV tightly, but ensuring the shells are...
Aligned and scaled in a certain way. This allows me to apply effects such as offsetting uvs for damage variants, overlaying wood grain that runs a certain direction and so forth.
This is why I push students to learn to unwrap manually, and not rely on packing algorithms all the time. Knowing how to uv map well allows me to do a tonne of tricks.

And that brings me to the third part of the DM question... substance not working well with tiled overlaps...
So, say I have a character with loads of spikes on their armour. I could bake say, three or four of the spikes and then reuse the texture on all the rest by overlapping UVs.

But your bake will fuck up if you do this.

The answer is you just export two versions of your model...
One has the four spikes unwrapped, whilst the other spikes have their UVs offset off the 0-1 uv square,or scaled down and placed on an empty bit.

When you bake, these polys won't overwrite the four you want.

You then switch the model for one with overlapped uvs to paint it.
But, I wanna just add that the old school way we did texel density us still with us.

Checkers.

That black and white checks texture lets you eyeball the density.

Works a treat unless you need absolute precision :)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Delaney King 👩🏻

Delaney King 👩🏻 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @delaneykingrox

Mar 25
Thanks for all the new #gamedev follows. Here is todays mini lesson...
If (!strangersToLove){

me.rulesKnowledge = true;
you.rulesKnowledge = true;

}

svn commit /what/Iam/Thinking/Of/* --FULL
Read 4 tweets
Mar 23
Quick #gamedev #gameart lesson.

Interpenetration is when you stick an element of an object through another. In some cases it can be handy, but it isn't always the best idea. Image
In the early days of 3D, interpenetrating geo saved us a lot of polygons. But engines worked differently then... polygons where expensive.
In this example, if I welded the beam into the block, it would increase the polycount by whopping... wait for it... 6 whole triangles. Image
But the rules are different now, 3d cards use a whole new set of rules.

The texture takes up more memory than the mesh you save, so if you bake like this, some of the texture will be wasted.

Either way, the saving isn't as big as it used to be.
Read 9 tweets
Mar 23
Version control for #gamedev is a serious problem you have to get on top of early as an indy.

At one studio, the artists were just sending each other files via chat. They had no source control for maya files, psds or any source assets. Their concept art was on usbs.
A second issue is that artists and programmers work totally differently with their data.

Files fall into two types- you have your text based stuff (ascii) and your data stuff (binary).

A script would be text based, a photoshop or Blender file would be a binary file.
Now when two programmers work on the same text file, you want to merge their work.

But artists pretty much never want to merge their text files.

Artist text files are things like shader code or level scenes. Merging these is going to explode shit badly.
Read 17 tweets
Mar 22
#Gamedev advice for students.

Your passion for games can and will be weaponized against you by companies.

You desperately want to be part of the magic of the thing you love, and will work yourself to burn out point.

You need to keep perspective.
If you are serious about working in the games industry, it will serve you to remember it is an industry that turns passion into profit.

Trade your time wisely for a fair compensation.
My advice is work hard at the start to secure a "NO fund". Savings that you can live on so you can say NO and walk away from a company that is harmful and find a better job.

This can be hard, but resist spending your early earnings on cool stuff until you have this.
Read 7 tweets
Mar 21
So, in closing... the real question isn't which Doctor Who has fucked their respective incarnation of The Master/Missy, the question is which Doctor is the bottom in each incarnation.

Thank you for coming to my lecture.
Bottom
Bottom.
Read 29 tweets
Mar 21
For the HD version of Stellaris, our team had to create all new high detail icons as the original ones looked too muddy when scaled up to 4k.

I used big blocks of colour, dark lining and sharp contrast so when the paintings were scaled down they would be crisp and clean.
Here is another painting from that project- again, big blocks with dark outlines so they would scale down and become crisp, easy to read icons.
I think Jack and I did like a few hundred? It was a lot.
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(