Home 3D Art Showcase & Critiques

[Question] Modular Environment Texturing

polycounter lvl 10
Offline / Send Message
Starkist polycounter lvl 10
Latest:

qwm40nyzutng.jpg

Unity:

5qzm2zjm2god.jpg
3enya4ezd2z3.jpg

Original Post:

Hi there folks,

In the past few days I've been reading articles and tutorials on modularity.

I started planning my own modular set, and trying everything I've read about.

I have a question about the texturing of the set. I saw that a lot of people like to create the texture and then unwrap the modular blocks accordingly. Which is a great way to save memory and time, but I thought that breaking a model into a lot of UV islands isn't a great practice, is it true?

Also, I plan to create a texture for every block and then make an atlas texture by just packing the textures side by side, is that a good idea?

My target platform is PC.

Thanks in advance,
Michael.

Replies

  • Joost
    Offline / Send Message
    Joost polycount sponsor
    Having a lot of uv islands isn't really going to be a massive problem in modern engines. It basically just adds extra verts.

    Probably should have posted this in the technical talk subforum btw.
  • Starkist
    Offline / Send Message
    Starkist polycounter lvl 10
    @komaokc, Thanks man, so I guess it's not a big issue then, it doesn't increase the amount of draw calls, right? I guess I can test that.

    Yeah, sorry about the wrong forum :/
  • Joost
    Offline / Send Message
    Joost polycount sponsor
    No, only when you use a different material afaik.
  • Spoon
    Offline / Send Message
    Spoon polycounter lvl 11
    You dont create extra drawcall by having UV islands, correct.

    You only create more verts, if the UV seam wasnt a hard edge already. Otherwise it is free.

    The reason people like to texture an atlas, and then unwrap to that instead of unwrapping and baking the unique object, is for it to be reusable. When your normal map is flat, instead of full of gradients, you can also bend it to your will and overlay it on everything.
    Basically, you just get a ton more value out of 1 texture than you would otherwise do.

    Am I understanding the question correctly?
  • Starkist
    Offline / Send Message
    Starkist polycounter lvl 10
    @Spoon, you are indeed. It's like I thought it is.
    Now I just need to figure out what would be the best workflow for me.

    I'm still kind of in favor of making a model then unwrap it and then texture.

    I wonder in I can take the biggest blocks on every "theme" and model > unwrap > texture those, as they have the most amount of detail. Then overlay the smaller blocks on that atlas.
  • Joost
    Offline / Send Message
    Joost polycount sponsor
    No reason you can't mix the 2. Contruct some high polys and bake them onto low poly blocks and use tiling textures/ detail sheets where possible.
  • Starkist
    Offline / Send Message
    Starkist polycounter lvl 10
    Ok, so I have these basic blocks:

    Walls (pink), big blocks(blue), garden thing(~orange), glass floor(red) (can be viewed from bottom and top, can float in air).

    dunwziwjztwk.jpg

    I plan to create a high poly for the big ones, then use that unwrap the smaller versions accordingly.

    noxkwdijmvdo.jpg

    What do you guys think?

    P.S. these are just blocky representations of the actual modular pieces, so basically just dimensions.
  • Tobbo
    Offline / Send Message
    Tobbo polycounter lvl 11
    What you want to do is look into tileable textures and creating them if you're planning on using the same texture on different assets.

    For instance, with your last pic, let's just assume the sides will be some kind of concrete texture and the main top flat part will be another texture, such as pavement.

    You would want to create a tileable concrete texture and a tileable pavement texture, for a total of 2 tileable textures. Then you can apply them appropriately to the right sections, regardless of the differences in the mesh. This will give you the best results for texture reuse.

    What you don't want to do is try and make a unique texture for one object and try and have that unique texture applied to different sized objects with different sized UV's. Even if you try and match the UV's up, your texture texel-density will be different and there will probably be stretching.

    Now, if you want some unique areas that you don't want to be tiled throughout you could look into using a decal or blend materials, or just have that section be uniquely unwrapped and textured.

    The best way to learn is to just give it a shot! :)
  • Starkist
    Offline / Send Message
    Starkist polycounter lvl 10
    @Tobbo, yes I'm aware of tileable textures, and I'll use them.

    Here my attempt at unwrapping the big block (after I defined the shape a little more), basically I modeled it so that I can properly straighten it in order to avoid anti-aliasing.

    It's made of 3 uv islands: corner, middle long part, and 1 quarter of the dirt area.

    In order to save texture space I have to divide the whole thing into quarters so that I can tile the huge dirt area.
    I'm aware I could just break the long part into 2 halves and make a perfect quarter, but I thought I might want asymmetrical detail, and more space for the other pieces to use this texture.

    I was looking at the Mass Effect 3 piece for reference (bottom of page). (My texture is purely to see what I can do with unwrapping, by no means a final texture)

    As expected the top of the corner in skewed but If I don't put anything that should be very straight or of an expected shape, it's not very noticeable.

    The texture sheet size is 1024, but as you can see atm, I only use a small portion of it.

    I plan to model and unwrap all other pieces of this set onto this texture.

    Please tell what you guys think, perhaps there's a better way.

    zniz2g3iyttk.jpg
    jjvotymimm3m.jpg
    wnyqmy3mj0mt.jpg

    Progress: All of the blocks use the above texture. Now for the high-poly.
    **I ended up mirroring the long part so that the scaling would work properly.

    qwm40nyzutng.jpg

    Unity:

    5qzm2zjm2god.jpg
    3enya4ezd2z3.jpg
Sign In or Register to comment.