Home Technical Talk

Environment Art texturing doubt

kapgowild
node
Hi guys, I've started studying 3D two months ago, focusing on environment art, but there are some concepts that I'm not quite understanding. At first I was told that UVs should always fit into the 0 to 1 space, then I found out about tiling textures and trim textures, and how UVs in these cases can be bigger than the 0 to 1 space and can also overlap.With that in mind, my question is: Is there a limit of how big can I scale an UV shell to have the right texel density in a tiling or a trim texture? For exemple, if I want to texture a big scene floor with a texture that I've created on substance designer, or even texturing buildings, can I scale the shells really big to have a nice texture quality? If so, why people always talk about creating modular pieces for floors and walls? Sorry for the silly questions, and thanks in advance.

Replies

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    Two ways to accomplish your goal.

    1: Scale the UV shells
    2. Change the amount of tiling of the textures

    Option 2 is usually better because it is nondestructive and done in your render engine.

    Also, I don't think there is any rules in 3d that should have the word "always" in them. If you hear that, test things out for yourself. It's a computer, you can try anything you want. Nobody can stop you.
  • icegodofhungary
    Offline / Send Message
    icegodofhungary interpolator
    With tiling textures, you still keep your shell within the 0 to 1 space because the texture tiles. There's no need to go outside, it'll just be the same texture. Tiling just means repeating in a direction. Tiling textures repeat in U and V directions. Trim textures usually repeat in one direction, either U or V or Harry Styles. Let's say you're trying to texture a long wood beam with a trim texture that has a single wood strip on it. In that case, to get the proper texel density, you must have your UVs run outside the 0 to 1 range. But, this is for the texture only and your lightmap UVs must still be within the 0 to 1 range.

    If you want to change your texture density on an object with a tiling texture, it's probably better to change the UV tiling in the texture settings than changing the UVs. Like if you're in Unreal 4, there's a way to change the tiling in the material settings (tex coord node). You wouldn't really want to jump back to your 3D package and scale up the UV shell, then jump back to Unreal to check it and then jump back for more adjustment.

    You should determine your texture density when picking the resolution. For example, if the object you want to texture is 4m long, and you want 512 pixels per meter, then you want a texture that's at least 4 * 512 px long, or 2048px. You have to kind of go back and forth with your trims/tiling textures and what you're making.

    Now, here's where scaling the UV shell comes into play. Let's say you have a 2048px texture, and you want to texture something 2m long but keep the 512 pixel density. That's when you would scale the shell down to cover the appropriate area (half of the texture). Let's say you have a 8m piece but the same 2k texture and you want the 512 density, now you need to scale your shell to go outside the 0 to 1 range. This is what you'll do with trims. You'll find that you must go outside your range to maintain the density. However, like I said, if your 8m object has a simple tiling texture on it, you could just increase the tiling of the texture within the material settings to double, and keep your UV shell in the 0 to 1 range. It's accomplishing the same range. If you're in the opposite situation and all you have is a 512x512 tiling texture, you must tile it 8x to get the proper density (512 per meter on an 8m object).

    If you're in a situation where you absolutely must stay within the 0 to 1 range, you can make cuts to your object and fold the UVs onto themselves to achieve a tiling effect for larger objects and maintain proper density. There's a good example of this in the modular environment section of the wiki.




    I guess the tl;dr version is that you're controlling the density of the texture on the object in multiple ways. Scaling the UV shell isn't the only way. You can control it with the texture's size, or the texture's tiling.

    Make sure you look at the wiki really well there's some good tutorials and breakdowns that exhibit these ideas.

    Watch every single one of these videos multiple times:

    Also

    And some

    This has a good image of UV optimization for a prop


    If so, why people always talk about creating modular pieces for floors and walls

    Everything doesn't have to be modular. You can create unique pieces. Modularity is just a way to help bridge the gap between repetition and creating a unique asset. If you're doing a big floor, you can break it down into sections or you can just do a big single-plane object. In fact, you want as few pieces as possible and you want them to be as large as possible. This just means be efficient. If you're trying to make a 10m x 10m floor, you probably don't want to make it a bunch of 2m square pieces unless it's some kind of super sci-fi floor with lots of modeled detail and requires being in small modular parts. Modularity also lets you re-use assets a lot. If you make a single building for a portfolio piece, odds are you're not going to use that building for anything else. But when you're making a game and you have hundreds of buildings, it helps to have modular pieces that can be used and re-textured over and over.












  • kapgowild
    Thanks for the detailed answers! I'll make sure to read all the articles and watch the videos that you've recommended. Have a great day!
Sign In or Register to comment.