1
$\begingroup$

I am working on a game and I use Blender for my models. In the game there will be a big house were one wall has a repeated square texture that creates a wallpaper pattern. I want to bake all the different textures of the to house to one big texture to make the game run faster.

My question is if there is a way to repeat a square pattern without repeating it in the baked texture. I made an example model shown in the picture below to make it easier to explain. As you can see the exact same yellow smiley is drawn many times onto the baked texture. In my game the wall will be much bigger and I therefor need a big texture just to fit a bunch of the exact same square texture onto it. Isn't that a waste of storage space and if so, is there a way to prevent this?

Thanks in advance. enter image description here

$\endgroup$

2 Answers 2

1
$\begingroup$

As already said in the first answer, baking is a process to save time but it comes at the cost of memory usage and storage. I wouldn't worry about your repeating texture not very much. It's more important to do other optimizations for game engines like removing everything that is not visible like skin under the cloth, faces inside the house or at the backside of walls, reusing texture space for mirrored parts/objects & repeating parts, using channel-packed textures, etc.

In games texturing and UV unwrapping is all about efficiency.

In games, texture baking is a common standard but there are also seamless textures used. Have a look at this more complex shader example for UE4. It's a skin shader with baked maps and with seamless pores textures because (quote) "Adding the Pores as separate tillable textures makes them stand out better but also makes adjusting them is much easier." => Unreal Engine 4: Creating human skin

For the UV maps, you want to use as much space as possible on the image. This is done by deleting all faces that are inside of the model that you won't see and all repeating parts. Also, the symmetry of the model is used to save texture space. Image sizes should be 2 power of x (256, 512, 1024, 2048, ...). Have a look here at Royal Skies' series here: https://www.youtube.com/watch?v=MZkC1XMDtDY&list=PLZpDYt0cyiuuwWbyUAWSllrhtZ9KfU3B_ - especially Blender 2.8 : The 3 Rules of Japanese UV Map Preparation

Textures usually have some redundancy because they come in different resolutions to support different hardware (hi-res for powerful PC hardware, low-res for mobile devices). Also, there are the same textures for different levels of details (LOD) in the so-called Mipmaps.

To save disk space the images are often channel-packed textures. This means using different grayscale images in each channel of a texture: Red, Green, Blue, and optionally Alpha. For example, you save the baked ambient occlusion map, the roughness map, the metallic mask, and the emission mask in the RGBA channels of just one image. The mipmaps also are packed on one single image as you can see in the linked examples.

What else is noteworthy and helpful is that Grant Abbitt has a series where you can watch him work at game assets for a mobile game: https://www.youtube.com/watch?v=TxOmflsO04A&list=PLn3ukorJv4vu4aF4bbDA9GeX_puW7sKdE

$\endgroup$
0
$\begingroup$

Baking is supposed to be used to speed things up so don't use it if it doesn't. It makes no sense to bake repeating color information into a huge terribly inefficient single texture at all.

You could bake light information like Diffuse and Glossy passes to another UV map, but for color information use separate textures with different UV maps.

I do architectural visualization and if I had a brick wall like yours, I would even have geometry for each brick(even if it's a single face for each brick) so I can distribute the UVs randomly on an image with a number of unique bricks. I find this to be most memory efficient since I can have the same bricks repeating unevenly and also rotated or flipped or with variation in brightness, hue and saturation so it's not perceivable. I cannot imagine having textures so big that they would fit all the wall - I mean I use 8K textures with the repeating tricks already, it just wouldn't be possible other way. I use this for floors all the time as well. enter image description here

This floor texture only has 12 unique boards, but it could be infinite without anyone noticing, since there are no repeating patterns made with those 12 boards and they differ in brightness randomly.

I don't know much about making games, but I bet these techniques might be useful in games as well.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.