Home Technical Talk

2x1024 or 1 x 2048 ??

TAN
polycounter lvl 12
Offline / Send Message
TAN polycounter lvl 12
Hello everyone. Just a fast noob question.

I am prepairing textures for a character. I just wanted to ask if 2 x 1024 or simply one 2048 map would be optimised ( for game engines)

Yeah I always wondered that :D

Thanks a lot.

Replies

  • Bek
    Options
    Offline / Send Message
    Bek interpolator
    define 'optimised'

    Also realise that 2x(1024x1024) is only half of 1x(2048x2048 ). Think about it spatially; two side by side 1024^2 maps would be 1024x2048; only taking up half of a 2048x2048 map.
  • Surfa
    Options
    Offline / Send Message
    Surfa polycounter lvl 12
    To be honest it really depends on your situation in terms of graphic memory then two 1024^2 Maps will use less memory then one 2048^2 map. But using more maps will increase the number of drawcalls. Now depending on what the bottleneck is either could be considered more optimized.
  • IchII3D
    Options
    Offline / Send Message
    IchII3D polycounter lvl 12
    I think its fairly common to texture parts of a character separately, especially the head. I personally don't have any character experience but it can be something like.

    1024x1024 head
    1024x1024 Torso and Arms
    1024x1024 legs and feet.

    Elements such as hats, gloves, shoes can often be separate also. I have known characters to be broken down even more than this and then combined for optimization in an automated pipeline.
  • NinthJake
    Options
    Offline / Send Message
    Well I've always had the (perhaps false) assumption that less images to load = easier management for both the game engine and the artists.

    When making props I always try to squeeze in as many props as I can on the same texture. Even if there's less texture space for each prop I still get more pixels to work with for each prop which means I can get more details on them.
    Also when I neew different maps for specular / normals / height / AO / gloss / displacement it helps me keep the amount of textures down. All these maps for each individual props would be almost unmanageable.

    Anyway that's just my amateur observation, perhaps it's different for characters which I have zero experience with. In any case I would also like more experienced input on this.
  • rollin
    Options
    Offline / Send Message
    rollin polycounter
    Surfa wrote: »
    To be honest it really depends on your situation in terms of graphic memory then two 1024^2 Maps will use less memory then one 2048^2 map. But using more maps will increase the number of drawcalls. Now depending on what the bottleneck is either could be considered more optimized.

    that's not completely right.. the "materials" / shader calls are drawcalls.. one shader which is using 2 textures will generate the same amount of drawcalls compared to the same shader using just one texture
  • Kurt Russell Fan Club
    Options
    Offline / Send Message
    Kurt Russell Fan Club polycounter lvl 9
    But to be fair rollin if we're talking about a character with two textures, one applied hands and head and the other applied torso and arms/legs then you're going to have two draw calls. In this example, anyway.

    Two maps will be one draw call if you use layering with two textures applied over all pixels, or write some code to use vertex colours to pick the texture. Two maps with one draw call will be a higher cost per-pixel than one map with two draw calls.
  • TAN
    Options
    Offline / Send Message
    TAN polycounter lvl 12
    @ Surfa, Bek: Thanks for the technical details. Now it is easier to think about problem.

    @ IchII3D, NinthJake: Thanks for sharing experience. I'll think about those.

    To further detail it down I think todays graphics cards ( for PC's I mean) suffer from speed ( processing power) , not from enough memry. I usually see a lot of cheap GPU's with 3 GB of memory but the "real deals" has much more processing power.

    In this case do you think it is wise to go for less drawcalls ?
  • Kurt Russell Fan Club
    Options
    Offline / Send Message
    Kurt Russell Fan Club polycounter lvl 9
    "Premature optimization is the root of all evil."

    The best rules of thumb are to do things so they're not dumb and slow (there's no easy, clearly better solution) and then optimise as you go. You'll get 80% of your speed savings from fixing up 20% of your project - you just need to find the bottlenecks. If your game can't support one extra draw call per character, and that's your bottleneck, it's an easy fix later on to combine textures. But more likely than not your bottlenecks will be fill rate or CPU limitations so you'll do this and forget about it.


    Basically, when two things are in the same order of magnitude, you just need to test it. You could make ten games and have five run faster with more maps and the other five run faster with larger maps.

    It depends on so many factors that to guess without knowing them (and even to guess when knowing them) would be like looking at an X-ray of a brain and trying to work out what it was thinking. You just test these things. Spend this time focusing on making better art, not mathematically correct art :)
  • TAN
    Options
    Offline / Send Message
    TAN polycounter lvl 12
    @ Kurt Russell Fan Club


    Guess you sais the last and right word mate. :D


    Thanks a lot everyone. I will be going with a 2 x 1024. And from now on I guess I'll have to test it out.

    Of course if I encounter anything intersting. I will be writing it here.

    Good bakin' everyone and thanks again :D
  • Farfarer
    Options
    Offline / Send Message
    rollin wrote: »
    that's not completely right.. the "materials" / shader calls are drawcalls.. one shader which is using 2 textures will generate the same amount of drawcalls compared to the same shader using just one texture
    I'm not sure that's true.

    One material with 2 textures is 1 draw call.

    Two materials with 1 texture each is 2 draw calls.

    And in forward rendering, that's also an extra draw call per material per per-pixel light (so for 2 per-pixel lights, we're now at 2 draw calls and 4 draw calls, respectively).

    And, depending on the engine and batching, you might have to add another draw call per material for each shadow-casting light.
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    Farfarer is right, texture calls is not draw calls. If you put 2 shaders/materials with the same texture they will still render 2 draw calls, but only one texture call on memory.
  • Surfa
    Options
    Offline / Send Message
    Surfa polycounter lvl 12
    When I wrote my first post it seems I got caught in two minds and didn't fully type what I wanted to. I always seem to do this. I get distracted and don't fully explain my posts.

    The problem was I was trying to generalize a simple rule for draw calls where by if you use two textures across different sections leading to two materials and therefore 2 draw calls. Obviously it is a lot more complex then this as you have to take into consideration the lighting and whether you are using a forward renderer or a deferred renderer.
Sign In or Register to comment.