Obviously you want to make sure that you use as much of your textures as possible, but at some point you have to draw the line and you will never be able to use all of it unless your texturing a square.
I was reacently texturing a prop that used all but 1/4 of a 512x512 texture. Because of its shape and the fact I didn't want to hack it in half with another edge I wasn't able to get a layout that would result in anything better than 1/4 of the texture going unused (even using a non-square).
I think if I had spent more time on it and maybe hacked it up I could have made it use most of the texture, but then it would have been harder to paint and also would have taken more time.
I'm just curious in your opinion, how much unused texture space is acceptable? I know it's not an easy question to answer but I'm just interested to see peoples thought process on this.
Edit: I suppose what I'm asking specifically is how much wasted space is TOO much wasted space. Where would you draw the line and say you need to go back and do something to utilize more of that space?
Replies
depends on the forms being use though tbh and as long as you can get the most texel density for the forms, with the space you end up using, I wouldn't call it a bad thing.
pixels aint nothin but a number.
1/4 of a 512x512 is quite a lot of space to just waste on nothing at all, IMHO... there's lots you could do with it without having to change your existing prop UVs or texture at all.
I have see this before in HL2 props on street lights for example. They take the very long vertical cylinder and hack it in half so it can fit more easily into the square texture space.
It can just be mind bending to figure out which is going to be the best route to take sometimes. Because adding more verts is not the best thing, but then again neither is wasting texture space.
I don't want to get into the semantics of performance questions because, as we are all aware, its highly dependent on your engine/hardware, but in general do you think its better to add say 20 more verts or waste a 256x256 texture?
Seams like it would just be better to add the extra verts, but then again this also makes things harder to paint.
It sounds like everyone agrees that 1/4 of a texture exceeds the threshold for acceptable waste under any circumstance.
But wasted UV space is wasted memory. If your texture requires such needs then try changing the texture side so that it may fit. Things like a 512x1024 texture and see how it goes.
I actually just pulled up the model and thought about it some more and I think the issue could have been resolved if I had not mirrored part of it. Which would have resulted in a larger piece that would have filled the gap.
Point being I am very sure there is a way to unwrap every model so that you don't waste 1/4 of your texture space. One way or another you can do it. It's just a question of time/skill.
I was just wondering how much was too much. Seams like 1/4 is beyond the threshold so in the future i'll opt to spend more time figuring it out.
Thanks for the replies everyone
There are probably more efficient ways to handle it all now.
I generally don't waste much space due to filling all the little gaps with other stuff, but doing characters I think you still end up with a lot of unused space between shells because of the funky organic shapes. Not always the case though.
I'd imagine that this had something to do with their memory management system - IE if a character was supposed to use one 512x512, that it would budget 512x512 for them even if you were using a smaller map.
There are half the pixels in a 256x512 and so they typically take about half the memory.
If the asset looks good in the engine and you've got 25% unused UV space, it's not necessarily a problem.
If you're running dangerously close to a memory limit, then I doubt that will be fixed by managing to use the remaining 25% of your UV space, and I'd look for a solution elsewhere.
Alternatively, if you're brave... in case there are repeated areas that have the exact same texture, you could make a portion of your 512x512 texture tileable and assign several overlapped polys to that part of the texture. That might let you squeeze more out of the rest of the real estate.
It's just a simple aircraft freight container which is shaped like the inside of the fuselage of an aircraft. It was close to being a square but not quite. I mirrored part of it which left this gap. The fact that I chose to mirror it was really what left the gap and didn't occur to me at the time.
So I was left trying to fill this gap with 4 separate pieces and all of them were either too big or too small and I kept on being left with about 1/4 of my space being unused.
With the exception of very organic stuff you can almost always unwrap something so that it uses almost all of your texture space, and after going to back to this I was able to do it. The problem was that I had to get the entire thing done in about an hour and a half at the end of the day and didn't want to have to take it home to work on it. It was just a simple little side prop, the kind of thing you really don't want to waste time on.
So really the question was just about time vs wasted space. Sometimes everything clicks and you don't waste space but other times it becomes more of a chore and you have to spend extra time working on something when you could have just moved on and already be working on something else.
If you need at max 500 of something, you just allocate all 500 in one continuous block of memory, and mark them as used or unused. When you need a new object, you just re-use an old one that was marked as dead.
Same with textures. If they all share the same pixel format (RGBA), then you can over write one with another. Trying to allocate a new 512x512 texture in free memory where an old 256x512 was just de-allocated will just cause the 512x512 texture to be fragmented in memory. You'll get the first 256x512 in there, and then the rest will be allocated in other free chunks of memory until you get the whole thing stored finally. (Wash/rinse/repeat that story with an entire game worth of textures being allocated and de-allocated, and you can imagine the mess your texture memory will become).
But that all depends on how the tech you are using handles that stuff. The video card will do whatever the engine/framework tells it to. It can make a mess with random allocations, it can be pooled, or you might have all your textured being atlased into chunks that are as big as the GPU will allow.
Don't worry about not using 1/4th of a texture. If all your objects are sampling from a 512x512 texture, than so be it. It doesn't matter to the renderer if you are using up all of 1 of the pixels. They only thing you are wasting is a chance to have more texels worth of detail in your model.
As for the 256x512 being the same as a 512x512, it could have been that that engine was padding it to fit into a pooling scheme. Data is often padded to fit it into power of 2 numbers for ease of seeking, and addressing. Even vertices, which are often stored as X,Y,Z, and an unused w coordinate.
but serious I think being a little bit extra strict with UV efficiency is always a benefit. Not to long ago I was creating one big texture combining almost previous 8 different texture sheets into one- because they were all kind of messy and not bandwidth and RAM effecient.
It really was worth the effort at the end because the texture could be more crispy and use less file size as the separate files before. The UV was thus very tight and it took some time packing it all in a efficient way - but worth the effort.
After that I used some RRT scripts to transfer the textures from the former UV's and materials to the new merged one.
oh and back on id tech 5 or mega texture:
there is a new paper btw. on the id tech 5 engine from Siggraph 2009, explpaining some of their technology:
http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf
from a technology point of view- its my most anticipated title to come
i was reading some documents for the x360 avatars and it said that a 64 x 64 uses the same memory as a 64 x 128. is this true?
uv elements? Can you elaborate on that?
Artistically, if it looks good in the final render, it's fine.
Technically, it's no different than using every pixel. The rasterizer doesn't give a shit.
However, you aren't using the full potential of the surface space you have. You can organize it better, and get more out of your texture, with a better texel density on all surfaces overall.
Yeah but if I scale it up some the pixels wont match up to my other props. Is that a problem?
Not many games I've played have had even pixel densities. It's often prioritized by object importance, or screen real-estate. Texel Densities with shadows are more important.
[ame]http://www.youtube.com/watch?v=N_NfdU5dIMM&feature=channel_page[/ame]
his toolset:
http://www.renderhjs.net/textools/
edit: but reconsidering, i don't know if that would change much, since the inner part takes up it's desired place, anyways
so, um, just leave it be
I'm also a little confused as to what's what in the circles. It looks like there's a big open hole in the middle of the middle one? Can you shrink down the bottom (right one?) and shove it inside there, since the bottom isn't going to be seen as much?