Home Technical Talk

How do I go about texturing small environmental assets?

I'm making a game with some people, we're all new to this, we have only one experienced artist but he's unavailable right now so I figured I'll just ask here.

We're using Unreal Engine 4, and it seemed a little excessive to me to make a different texture map (in Substance Painter) for each single environment object. To reduce draw calls I figured it could be efficient to use the same texture map for multiple different small assets. So for example I'd have a bunch of random pots with different shapes, colors and patterns, and their UV shells are all on the same "square" or I guess map, but they don't overlap, so they can use the same image file(s) for their unique textures.

Is this a good idea or a bad/useless idea? Does Substance Painter let you do this in an efficient way (so I don't have to cut and paste in Photoshop)? Or should I just create a different texture map for each individual asset, the way I'm taught it in my game design study? Or rather, the way I'm taught to texture important stuff like weapons. Or should I do something else entirely? To clarify I'm not talking about slapping a material on some asset, I mean a custom texture map with edge ware and details etc that's unique to the asset. I guess for things that are entirely made of one material you could use just one material image and maybe just have a unique normal map that overlaps with the material's normal map, not sure how/if they do that.

I hope for some definitions and techniques I can google and stuff, that usually expands my knowledge, I only started making 3D assets 1 year ago and I don't know what I'm doing half the time. I know about trim-sheets, and how they let you use the same texture map for multiple different objects, that's sort of what I had in mind.

Replies

  • GlowingPotato
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Its very common to shares textures among multiple assets in a scene, specially those that will be rendered together. 

    Make the UVs for your assets, pack all Uvs together and send it to painter.
  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    It is good to do a test first to figure out how you want to batch things together. THere is a lot of variables involved so it's impossible to find the right combination from the onset.

    Get stand-in textures to represent the main elements you'll be working with. e.g. a tiling brick texture, concrete, metal, glass, etc. Block out your scene and use these stand-in textures to get a sense for how final product will look.

    Then you take into account all the other factors you are dealing with and can make the best plan for how to batch textures together.

    Along the way, make sure you are setting up your substance painter projects with modularity in mind. You will need to change the way textures are packed together as assets come and go so make that easy for yourself by preparing ahead of time.

    PRinciple is don't try to do it perfect the first time. Set yourself up for ease of iteration.
  • Ghogiel
    Offline / Send Message
    Ghogiel greentooth
    Substance painter doesn't let you compile what would be multiple texture sets to one map. It probably should imo as doing what you want by atlasing several objects to one sheet does have optimisation uses. But the good news is that there are some solutions https://gumroad.com/l/TextureSetCombiner

    There are times where you just wouldn't want to make a 20 object substance scene with everything spread out enough on one texture set to get in to every angle you need to actually texture all the different object, it's just a mess to have small rocks and huge rocks in the same substance scene even. Not to mention it's not great for how substance fundementally works with bounding boxes. nicer to be able to use texture sets to break up those atlases in more managable chunks. That way you don't have to keep looking at tons of layers for all those 20 objects chugging the system, if it was broke up you could be turn off the texture set and those layers and you good to go

  • ShankyBambi
    Ghogiel said:
    Substance painter doesn't let you compile what would be multiple texture sets to one map. It probably should imo as doing what you want by atlasing several objects to one sheet does have optimisation uses. But the good news is that there are some solutions https://gumroad.com/l/TextureSetCombiner

    There are times where you just wouldn't want to make a 20 object substance scene with everything spread out enough on one texture set to get in to every angle you need to actually texture all the different object, it's just a mess to have small rocks and huge rocks in the same substance scene even. Not to mention it's not great for how substance fundementally works with bounding boxes. nicer to be able to use texture sets to break up those atlases in more managable chunks. That way you don't have to keep looking at tons of layers for all those 20 objects chugging the system, if it was broke up you could be turn off the texture set and those layers and you good to go


    Thank you for the reply and the link, I have a few issues though: I don't know what Bounding Boxes are, I don't know what Atlases are and what you mean by breaking them up, and how that's opposed to working with bounding boxes. If you could explain that for a layman I'd be very grateful.
  • zachagreg
    Offline / Send Message
    zachagreg ngon master
  • Ghogiel
    Offline / Send Message
    Ghogiel greentooth

    Thank you for the reply and the link, I have a few issues though: I don't know what Bounding Boxes are, I don't know what Atlases are and what you mean by breaking them up, and how that's opposed to working with bounding boxes. If you could explain that for a layman I'd be very grateful.


    Part of what atlasing means is just putting a bunch of different models textures onto one texture sheet, like what you have done with those mentioned pots, you atlased their textures all together to use one material by making all their UVs fit on one sheet.

    Breaking things up just makes things easier to work with. In particular to painter, imo even in the most basic scenario, I do not really want say 12 rocks/rockformations, which range in sizes all lined up across the scene spaced away from each other so you can actually texture them, and no way to toggle visability and focus on any particualr rock or object. Nor do I want 12 separate painter files. You can't move them around out of the way once in painter, nor would you want to do so elsewhere and reimport into painter, that would break how painter works because you would be affecting the bounding volume of the model painter is looking at, screwing up anything painted in the viewport. It's like having going back to exploded baking.

    In other scenarios painters performance might be a concern or at least annoying, you might have 5 things atlased with complex layer stacks. Using texture sets you can hide and unhide those layers along with the geometry more easily, which helps a lot with performance.

    It's also good because each texture set you can bake independently. You might want different bake settings on different parts, maybe the search distance max is too high for some part screwing up a little piece of it. Maybe it's just easier/better to use a cage for a particular part but not others.
    Also UVs change, and the number of materials one might want to atlas on any sheet shouldn't be a scary prospect to modify imo. So having a post export tool like the one I linked does solve having to manually stitch textures in PS at least. 

    Hopefully in the future how texture sets work gets improved, like combining all or some into one map being built into painter, or even being able to make polygon selections inside painter and assigning a new texture set right there. 
Sign In or Register to comment.