hello everyone
I've been thinking about environment art, not as many enthusiasts as in character art eh?
anyway, I was thinking about the best approach in texturing a house or building. my question is about texture usage.
say, my house intends to have at least 5 materials (outside brick, outside brick columns, roof, inside walls, inside wooden supports, inside floor 1, inside floor 2), uhm ok those were 7 materials, which emphasizes my question even more.
should I get all of my materials on a single texture (like uwvmapping+texturing a character), or should I make all materials a separate texture?
this is intended for an RPG with a free camera (think Oblivion), the camera will often go near walls and surfaces and so quality needs to be kept good.
so I am concerned about both problems of quality (texture space and resolution) and performance (amount of textures), and while poop's thirding technique might help with both methods, it isn't decisive as to which method to use.
another factor that could be important is that these houses and buildings will be modular.
I believe Oblivion uses a different texture for every single different environment feature it has (method 2), is this the best approach? what about other games?
thanks
Replies
It's also ok to use one texture for multiple materials (the thirding technique)
As far as everything on one texture, this technique is better for lower resolution art such as RTS, but it can work if you want to be really clever with your UVs.
The only drawback to this is mip bleed. You can avoid it by using a bit of extra cushion in the texture though.
Having used both techniques, especially with current gen multi-map shaders, I'm starting to lean more toward the single sheet solution. Well built buildings tend to have a nice uniform look to them. Diffuse tones, specular levels, amount of bump all tie together well to make the building look right.
If you are using multiple unique tiling textures, there often ends up being a lot of hue shift, shine variation, and difference in amount of bump. The building can look slightly Frankenstein-ish if you don't watch it. With one sheet, you can avoid these anomolies and make corrections a bit quicker. With multiple tile sheets, it takes quite a bit more wrangling, and back and forth to make sure they all fit together. Just something to watch out for, if you decide to go with this route.
You can also avoid mip bleeding by claming your UVs.
Also the comment about having everything in one file makes a lot of sense too, that is way easier than tweaking 12 different texture or however many. So its a balance and pros and cons either way....
you can still manually tile your textures by dicing up the geometry and being precise with your UV placement
[/ QUOTE ]Eesh, thats such a horribly wasteful way to work for as far as I can see a very minimal amount of gain. What advantage is there in having all the textures on one sheet besides a little colour and light direction variation which should be avoidable if you have the necessary textures open up side by side in Photoshop. Thats my logic anyway (that of a hand-held game developer). What am I missing?
Example: Build you shop with common/shared textures, then use a detail textures sheet that has all the signage.
For Gothic 3 we made houses with 10 or more materials but after testing some levels in the engine we decided to cut down the number of materials to 3 or 5, because the engine was getting slow because of the high number of draw calls.
So we combine the textures, made them tileable in one direction and added some more edges in the buildings where we have to. Some more polys won´t hurt the framerate so much compared to a higher number of materials.
Although todays graphicboards have 256 or 512 MB you still have to keep the texture memory small, because in the most cases you have more textures for one material(diffuse map, specular map, normal map and maybe some RGB multiply shaders. So try to live with 1024 or 512 Textures, especially when you have a wide, open terrain level with woods, mountains, houses, props, characters and so on.
Thanks for the explanation.
But you can't clamp coordinates and still use tiling? Maybe a better approach for architecture is to pick textures that only have to tile on one axis, usually x, and stack them on the other axis. That'd give you, say, 3 512s and a bunch of trims in one 512*2048.
[/ QUOTE ]
i love that idea
Yes, doing tile strips across the top or up the side of the sheet is a nice technique that I use quite a bit. Unfortunately, doing this doesn't always leave me with sufficient space on the sheet for all of the other details that I need. So I might do a skinny tile strip across the top, then split my geometry horizontally, then map both the upper and lower sections to my tiling strip. This may save me a quarter or more of the sheet, which is sometimes necessary.
Although, I've used both the shared-tiling and the individual sheet options, I've found that tiling sheets just takes a lot more wrangling. On top of that, as Rick pointed out, you might have some small and minor prop calling a whole gaggle of 1024 sheets at the same time, which really drags things down.
Jackablade, consider consolidating several of those little alpha textures into a few slightly larger ones. It'll make less calls, and could help a little. I'd try to group them so that the objects that are seen at the same time go on the same sheet, if that were at all possible. By having fewer textures, it'll also make any editing of them less of a wrangling task as well.
I do this in 2d games where I have an entire sheet devoted to a particular tileset. I use it also for ISO games where I put an entire sprite animation on a sheet and then code the animation calls to use cell coordinates.
- Jesse
The point of texture atlasing is to reduce batches and get slightly more efficient loading, not to avoid loading things into texture memory.
I did this image for someone @ another forum but it applies to what I'm saying here as well:
The image on the left shows how the shell of a scene I'm doing is using 12 pieces to do the walls. Even some of the detail pieces I used populate the scene are modular (re: the ceiling details).
This scene isn't being created for an engine so I've been loose with limiting myself to memory footprints or any such bologna so 12 is a little high. The image helps illustrate the technique I mentioned.
You've a lot of ways to work at your disposal; it all depends on the game and what the engine is capable of. Research mod-friendly engines out there, find out what they're capable of and what techniques people use to create some work for it and try your hand at that. Exposure to multiple ways of working is really beneficial to developing your skill set.
Using modular sections is a good way to ensure consistency in design, which is one of the hallmarks of well-planned architecture.
Once again, check texel density of each module to ensure consistency between each of the different sections.