Home Technical Talk

Multi/Sub-Object vs texturing an unwrap

polycounter lvl 9
Offline / Send Message
Chase polycounter lvl 9
A lot of tutorials I've watched show an object being given a multi/sub-object and giving parts of the model its own textures. Yet it would seem like the best option would be to unwrap the whole thing and texture each piece in the 0-1 UV space. I've only ever used a multi/sub-object on a tree where I had two materials, bark and tree limbs that were laid on a plane so I might be misinterpreting its use. I know how to set it up, just not why.

Replies

  • Butthair
    Offline / Send Message
    Butthair polycounter lvl 11
    Multi-Sub object or Multiple Material IDs have benefits and drawbacks.

    Things like tress are the best reason why you would use multiple IDs. Depending on other circumstances, multi-ID may be a better course to go for modular workflow.

    For example, maybe you design multiple texture pages with the same layout, therefore making them interchangeable on objects that have multiple ID's (it's as if you've create these ID's, literally, to designate a material type - wood, stone, brick, concrete, shingles, bark, transparency, etc.)

    A key point is the engine preference. I know for a fact that UDk would much rather you make a master texture then have multiple IDs for each ID is a separate drawcall, even if it's the same asset, it needs to still render in a separate pass each material, for each one draws to an ID (even if the materials are instances, it would still require more processing).

    Other engines may differ and have different preferences. In the end, multiple IDs are not intended for real-time, therefore, cinematic within an engine wouldn't matter.

    This is the most significant key difference between the two. Otherwise, if you've developed this awesome method that relies heavily on multiple ID's for all your world assets, it may just as well be a better path then having more textures, materials and instructions by different methods.
  • Chase
    Offline / Send Message
    Chase polycounter lvl 9
    So multi/sub-objects allow you to export multiple materials as one material? You still have to import the textures in UDK, but this groups everything in one file of sorts? I'm not understanding how you apply a multi/sub-object material to an object you've already unwrapped and textured? For instance, I just watched a tutorial where an Ak-47 was modeled, the wood parts of the model were given ID 1, and the metal parts to ID 2. I understand how to apply the IDs, but can't figure out the process behind unwrapping and texturing in the 0-1 UV space vs applying material IDs. Like you said it adds extra draw calls and it would also seem like a waste of memory to apply individual textures to an object you have to unwrap anyways.
  • Bunglo
    Offline / Send Message
    Bunglo polycounter lvl 16
    When using multiple matIDs, your UVing and texturing process remains the same. If you're going to give an asset a unique texture, unwrap it in the 0:1 space. If you're unwrapping for a tileable texture, unwrap it so it goes with you're tileable texture. If you're unwrapping with a semi-unique/tileable texture, unwrap it so... you get the point.

    Multiple material IDs allow you to use multiple textures on one asset, regardless of how the asset is unwrapped.

    A practical example would be a building that will be exported as one mesh, but is comprised of multiple assets that were modeled, unwrapped, and textured individually. Say you have a set of windows, a door, some trim, and the walls, all as individual assets. With multiple matIDs, you can attach all of those assets you unwrapped and textured so they're now one mesh but still retain their UV coordinates and textures.

    Applying the multi/sub-object material is no different than a regular material, just drag and drop. What is different though is the setup. Where a standard material has one slot for your diffuse, spec, normal, and so on, a multi/sub-object material has the same but per matID.

    Mutli/Sub-Object Material:
    MatID 1: Diffuse = texture.tga
    MatID 2: Diffuse = texture.tga
    MatID 3: Diffuse = texture.tga
  • pass
    Bunglo wrote: »
    When using multiple matIDs, your UVing and texturing process remains the same. If you're going to give an asset a unique texture, unwrap it in the 0:1 space. If you're unwrapping for a tileable texture, unwrap it so it goes with you're tileable texture. If you're unwrapping with a semi-unique/tileable texture, unwrap it so... you get the point.

    Multiple material IDs allow you to use multiple textures on one asset, regardless of how the asset is unwrapped.

    A practical example would be a building that will be exported as one mesh, but is comprised of multiple assets that were modeled, unwrapped, and textured individually. Say you have a set of windows, a door, some trim, and the walls, all as individual assets. With multiple matIDs, you can attach all of those assets you unwrapped and textured so they're now one mesh but still retain their UV coordinates and textures.

    Applying the multi/sub-object material is no different than a regular material, just drag and drop. What is different though is the setup. Where a standard material has one slot for your diffuse, spec, normal, and so on, a multi/sub-object material has the same but per matID.

    Mutli/Sub-Object Material:
    MatID 1: Diffuse = texture.tga
    MatID 2: Diffuse = texture.tga
    MatID 3: Diffuse = texture.tga
    thanks for sharing.g.gif
  • Chase
    Offline / Send Message
    Chase polycounter lvl 9
    I'm pretty sure I understand things now. I just put to practice what you said about tillable textures and their unwrap. I feel like an idiot haha. For some reason I didn't think Unreal would remember how I set the UV's for a tiling texture. Silly me haha. I can see how a multi/sub-object works now. I think the whole draw call increase might be a bit of an issue though if you have a ton of materials loaded, right?
Sign In or Register to comment.