Home Technical Talk

All maps in one 4k bitmap?

polycounter lvl 2
Offline / Send Message
Pinned
schmigel polycounter lvl 2
Hi everyone,
I got this briefing that I all the maps should be in one bitmap with 4k.
Like having Albedo/Diffuse, Gloss, Specular and AO , and Normal Map in one image.

Anyone worked with this workflow before?
If so, can you please share the correct way to do that?
This is new for me.

Thank you

Replies

  • frmdbl
    Offline / Send Message
    frmdbl polycounter
    Well, you have 4 channels max, so I hardly see that possible.
    That said packing textures is a normal thing, I don't think you can say there's a correct way though.

    You can pack Albedo with AO, so it's an sRGB texture, then Gloss/Specular in a linear texture and another for the Normal map.
    Or you can have an Albedo with alpha plus an AO/Gloss/Specular texture so that all channels are used.
  • Joopson
    Online / Send Message
    Joopson quad damage
    You can pack gloss/spec/AO into a single RGB image, with each map being a certain channel. But you wouldn't be able to do the same with Normals or Albedo, so I'm at a loss, if that is indeed what they're asking for.
  • schmigel
    Offline / Send Message
    schmigel polycounter lvl 2
    I was thinking about using the channels.
    But was wondering if is there any workflow that you just use one space in the canvas for each texture.
    Like having a grid and then four 1k maps into this one 4k bitmap.
    Thats something I never saw before.

    The packing thing makes sense. I will look into that.

    Thanks
  • frmdbl
    Offline / Send Message
    frmdbl polycounter
    Ah, then you're talking about a texture atlas, but it usually combines textures of the same type.
    If you pack normals that way I guess you need offset UVs for them, but that's possible.

    Is that for mobile? Otherwise seems strange.
  • schmigel
    Offline / Send Message
    schmigel polycounter lvl 2
    So, it will be something like this:

    First texture
    RGB - Albedo

    Second texture
    RGB channels - gloss/spec/AO

    Third texture
    Normal Map
  • schmigel
    Offline / Send Message
    schmigel polycounter lvl 2
    frmdbl said:
    Ah, then you're talking about a texture atlas, but it usually combines textures of the same type.
    If you pack normals that way I guess you need offset UVs for them, but that's possible.

    Is that for mobile? Otherwise seems strange.
    The atlas is for a lot of objects sharing the same Texture. Each one with his own uv space. Am I right?
    The asset is for VR; Maybe mobile VR, I dont know

    EDIT: I dont know if the briefing is talking about atlas ou texture channels. Thats why I got confused the first time, cause I never saw atlas being used for sharing maps.
  • frmdbl
    Offline / Send Message
    frmdbl polycounter
    schmigel said:
    The atlas is for a lot of objects sharing the same Texture. Each one with his own uv space. Am I right?
    Yes, usually.
  • Joopson
    Online / Send Message
    Joopson quad damage
    Yeah, usually atlases would be for multiple assets, and you'd have a diffuse atlas, normal atlas, etc. Each object having its own part of the texture. I've never heard of an object using different UV channels so the normal/diffuse/spec/gloss/ao could be atlased onto the same texture. If I'm not mistaken, that would probably be innefficient? That would be my assumption, anyway.
  • schmigel
    Offline / Send Message
    schmigel polycounter lvl 2
    Context:
    Im a student in the 3D game art area.
    I got this opportunity to get my first freelancer job in game assets.
    And the client asked for a small test.

    The briefing said this weird thing we are discussing.
  • Joopson
    Online / Send Message
    Joopson quad damage
    Personally, I'd just ask them to clarify.
  • schmigel
    Offline / Send Message
    schmigel polycounter lvl 2
    Joopson said:
    Personally, I'd just ask them to clarify.
    Yes. I asked.
    He didnt reply. 
    I guess that he will not reply because the ´test thing´

    But thanks anyway
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    Joopson said:
    Yeah, usually atlases would be for multiple assets, and you'd have a diffuse atlas, normal atlas, etc. Each object having its own part of the texture. I've never heard of an object using different UV channels so the normal/diffuse/spec/gloss/ao could be atlased onto the same texture. If I'm not mistaken, that would probably be innefficient? That would be my assumption, anyway.
    You could probably do it in shader as well? Though I'm still not too clear on what is needed here, and what I do understand seems like a tremendous hassle ;)
  • Eric Chadwick
    It's certainly a weird request, but not impossible. If you do a 2x2 grid, that gives you room for four "textures" each with their own 3 or 4 channels. In the fourth cell you could put an alpha map, or an emissive map, or some other effect you want to add.

    We have some resources here about packing and unpacking texture atlases, might help you.
    http://wiki.polycount.com/wiki/Texture_atlas


  • Bruno Afonseca
    I can't see why not, but then don't forget that diffuse/basecolor textures are in sRGB space and normal and other maps are in linear space.
  • Zack Maxwell
    Offline / Send Message
    Zack Maxwell interpolator
    cptSwing said:
    Joopson said:
    Yeah, usually atlases would be for multiple assets, and you'd have a diffuse atlas, normal atlas, etc. Each object having its own part of the texture. I've never heard of an object using different UV channels so the normal/diffuse/spec/gloss/ao could be atlased onto the same texture. If I'm not mistaken, that would probably be innefficient? That would be my assumption, anyway.
    You could probably do it in shader as well? Though I'm still not too clear on what is needed here, and what I do understand seems like a tremendous hassle ;)
    That's what I was thinking; that it might be possible to have the shader single out a particular portion of the atlas for each channel, and have the UVs cover the full texture space as they normally would.
    I have no where near enough experience with shaders to know how or if that can actually be done though, and it seems more like Technical Artist work, making this a weird test.
  • DavidCruz
    Offline / Send Message
    DavidCruz interpolator
    I can't see why not, but then don't forget that diffuse/basecolor textures are in sRGB space and normal and other maps are in linear space.
    This probably answers the main issue with this but i once also thought about doing things like this.  It is a good question though and would it save on draw calls or make them more complicated, since it would be calling a single 1024 but then have to go to a 4096 map (if i understand calls correctly.) Wouldn't that just increase call/loading time? <(this is an in the wind guess.)

    Really cool never the less.
  • schmigel
    Offline / Send Message
    schmigel polycounter lvl 2
    The client replied. The briefing was bad written.
    He wants 4 textures, 4k each.

    I get the point where atlas is useful, and in other hand why to use one map per channel in a bitmap.

    The thing is that making a grid and using one space for each map, just to have all maps in one bitmap, is a complete different approach.
    I never saw one bitmap with all the maps in a grid be used inside any engine.

  • Nam.Nguyen
    Offline / Send Message
    Nam.Nguyen polycounter lvl 9
    I think it's about efficiency, both resource and working efficiency. Packing all the maps in one atlas like that is just overcomplicated things

    1. For example you have Albedo, Normal, Metalness and Roughness (all 1k maps ). you can pack Metal and Rough to alpha channels of Albedo and Normal so you'd have two 1k sRGB map that's equal one 1024x2048 sRGB atlas (*)
    Meanwhile if you pack 4 of them in one atlas, it's going to be one 2k sRGB map but only half of it use sRBG. Even if you manage to coordinate which part of the atlas is sRGB, which part is grayscale, you'll still end up with two 1024x2048 atlas.
    now I'm an artist so sorry if I did that math wrong.

    2.  Either we need to have a common coordinate system across all real-time render and game engines, let's say the bottom left 1/4 of the atlas will always be albedo, top left is normal,  bla, . . .bla, . .. bla ..... Or the artist have to manually coordinate which part of the atlas is which map ( that doesn't sound fun ).  That's only 4 maps, what about emissive, opacity, displacement,.....

    3. You can texture each map and combine them in the end, but what if you need to edit them after ? Imagine working with 8k atlas for a tank model ( 4k maps ), if the file too heavy then what ?, split them, edit separately and merge again ?

    + what if you need to reskin a model for example christmas event that require and additional emissive map, you have 5 maps now, how are you going to pack it ?


    and so on, . . . .


Sign In or Register to comment.