Home Technical Talk

how to have even texel density correctly?

Bumblebee
polycounter lvl 3
Offline / Send Message
Bumblebee polycounter lvl 3
so i was working on this piece here and as you can see, the walls all have dfferent texel density. How would I turn them into a consistent texel density. I am also very unsure about how to uv unwrap longer pieces inside 3ds max. I know like a square 1x1 wall should occupy the 0-1 space but what about a 2x1 or 2x1x3 wall ? How would I unwrap this to not make it look skewed and still tile? I tried reading jacob norris's modular environment but I didnt quite get it. Is there a way to have 3ds max show me a  grid representing the outside 0-1 space? Again the brick modules are like 5 in one uv space so they occupy most of the space in the uv island but that makes the texel density across the thing incosistent

Replies

  • Bumblebee
    Offline / Send Message
    Bumblebee polycounter lvl 3
    Is there a script in max that will automatically do it for me? Again Im kinda new to uv unwrapping modular stuff, i usually do props.


    what i am also kinda wondering, do I not have to make some pieces use the 0-1 uv space to the fullest to ensure texel density? I was always told to pack tightly as possible. Here are some light bakes. Again what I am also wondering is, in the unreal documentation they dont reccomend overmodularizing your levels, however I almost see in evry 3d game that there are modular pieces to construct buildings and rooms etc. I am just wondering how do they not have seams? I was looking on some rainbow six buildings that obviously were baked yet there were no seams, also in some other titles. I have to deal with this:


  • Mark Dygert
    Every block doesn't need it's own unique space, you can unwrap a few and then copy and rotate them to get variation. You could easily put them on the same sheet, in the window holes of the first mesh.

     BUT... I also think that making every block it's own unique piece is probably a mistake. Especially if you're using normal maps. It's going to make creating LODs a bit of a nightmare, you won't get the same savings as you would with simpler geometry. There are a lot of hidden verts that aren't going to crunch well and in turn make managing your FPS a bear.

    I think you should create a few straight sections of those blocks out of rectangles, bake them down to something that has enough polys to hold the interesting shapes but not so simplified that it's just rectangles, you can do that for the lower LODs if you need to. Then rotate and flip those sections so you get variation. Then make some arches and any other trim that you need.

    As for texel density, you want to get them to match as much as you can but it's not a perfect science, somethings don't need to be the same size and others might require a bit more space. In 3dsmax it has a normalize shells button that makes them all the same texel density, I think Maya has something similar but I can't fire it up right now to check. I think relaxing everything at the same time also normalized the shells in both programs. 
  • Alex_J
    Online / Send Message
    Alex_J grand marshal polycounter
    in maya UV toolkit, transform > get > set to copy paste texel density from one shell to another
  • jakemoyo
    Offline / Send Message
    jakemoyo polycounter lvl 4
    One of the things I really had to wrap my head around when I first started shifting from just making one off props to full environments was: modeling and uving doesn't have to be a linear process. I was accustomed to making a high poly, low, unwrap, pack it all in the 0-1, etc neat-o, I made a model. But when I tried to make modular walls and stuff and I was just modeling it out, unwrap, pack it etc. And then wonder why I had problems with tiing and issues like that. Environment modeling is more about making a small amount of work go as far as you can. Sculpt a few bricks, some flat stones, square pillar bases, etc combine those objects, put them all on one uv set. Export em bake them, then bring them back into your program and lay them all out to build your walls, corner pieces, arches, floor tiles etc flip them around every so often to break up the repetition. All of those duplicates are using the same single texture sheet you made way back when. Sometimes you might have a texture you make before hand that has little bolts and panel lines and details with beveled normals already on it and you unwrap directly onto that, matching your shells to the details you need, no high poly involved. It depends on the situation. Usually with wall pieces and architecture the first uv channel is a total mess there's nothing in the 0-1, everything's scaled however, turned any which way, but it only matters if it looks good. You only have to worry about fitting the edges to the grid if you're using a seamless texture on a flat surface that you plan to lay end to end. Also if you're using Max I'd recommend Textools. They have a bunch of texel density tools, so you can set a pixels per cm ratio and it will scaled your uvs accordingly. Lot of other cool features but I think the dev switched to blender awhile ago and the Max version may not be as up to date. 
  • gnoop
    Offline / Send Message
    gnoop polycounter
    You have to care about texel density only if your shader does another macro or micro texture layer scaled of same UV.   And of course for same materials sharing same textures.      Having those edge blocks a bit higher res is nothing wrong at all.   For distant background buildings out of close player access it would be a rule actually since the edges is what draws most of attention.

    For close playable scene  people usually just do tillable repeating textures  for wall surfaces + lots of decals + scattered small uniquely unwrapped geometry instances.  Those edge blocks could be just 3 kind of such instanced geometry.     Steady texel density is desirable but still nothing to spent too much time on and not a dogma. Not a reason to keep unused UV space in textures at least.
    For walls you could just keep world scale auto generating UV in Max.    It doesn't matter much where in UV space tilable textures are. Just try to keep them out of 100 UV value.    Still a road texture could tile along the road whatever UV value it may have.  in fact the scale for tilable textures often being set in the engine itself by multiplying node in a shader . In some engines  per object, material or  surface patch etc.

    As of AO bake you are trying to do AO is usually either done by the engine  itself ,in real time/screen space,  or statically baked onto second automatic unique UV unwrap nobody cares about  texel density for.
  • Bumblebee
    Offline / Send Message
    Bumblebee polycounter lvl 3
    so here i have split and unwraped the same wall in 2 different ways. 1 piece has a 3 meter long wall unwrapped as one piece and one has 3 seams and layed perfectly square. Which one would work best?

    so I understand correctly that I can just unwrap pieces like I would do props and then adjust the tiling accordingly in the engine?

  • Bumblebee
    Offline / Send Message
    Bumblebee polycounter lvl 3
  • Farfarer
    Your best bet here is to use tiling textures, rather than trying to uniquely unwrap each piece - especially for things like walls.

    You can use smaller bespoke parts to break up repetition, mixed with with maybe something like a vertex colour blended shader and decals.
  • Bumblebee
    Offline / Send Message
    Bumblebee polycounter lvl 3
    hey, sorry to revive this thread. So I was doing more expirements and learned about TD. Here I created a 100x100cm plane and applied a 1024x1024 tex resolution with 1024px per 100m on it and then i got the TD the texel density and applied it to this 400x800 wall module. The Uvs got upscaled alot and now I am stuck on how to figure out how to make it tile with tileable textures and just modularity as the bricks wont allign.

    ^here i snapped the same mesh next to each other. Im just unsure how to set the uv island to make it tile. Ive seen some other examples, but in them they had their modular pieces mostly in 0-1 space full covered but I dont fully understand how I need to work when the islands are bigger now due to texel density or smaller for small pieces. How do I tile those?

    If i try to make a 4x4m plane and have a 1x1m plane next to each other the tile of the brick texture is off obviously. Any insight would be helpful. I tried researching but didnt understand some stuff as environment art is new territory. I understand that TD is important for scale so that tileable textures also dont look different sizes. But I never know how to do the uvs for them correctly so they always tile nicely.
  • Eric Chadwick
    One way:

    Create a 100cm x 100cm plane. Duplicate it, one for each modular piece. Attach one to each modular piece, aligned to same place on each one. Use Snap tool. Bottom corner? You decide, as long as it's consistent.

    On the first piece, select the 100x100cm plane element, and add a UVW Map modifier. Use the Fit option, then make sure the gizmo scale values are exactly 100x100. Then delete the plane element. 

    Repeat for each modular piece. 

    There are other ways to do this too. 
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    I usually just stick a uvw map modifier on, set it to box and set the dimensions to match the  physical size of the texture.

    That gives you a decent base to start from - all the densities are correct and it's easy to shift stuff around. 
  • Bumblebee
    Offline / Send Message
    Bumblebee polycounter lvl 3
    One way:

    Create a 100cm x 100cm plane. Duplicate it, one for each modular piece. Attach one to each modular piece, aligned to same place on each one. Use Snap tool. Bottom corner? You decide, as long as it's consistent.

    On the first piece, select the 100x100cm plane element, and add a UVW Map modifier. Use the Fit option, then make sure the gizmo scale values are exactly 100x100. Then delete the plane element. 

    Repeat for each modular piece. 

    There are other ways to do this too. 
    hey eric, could you elaborate it a bit. I admitedly have a hard time understanding, im sorry :)
  • Eric Chadwick
    Then poopipe's suggestion is better.
Sign In or Register to comment.