13
$\begingroup$

I'm wondering about the best way to go about setting up textures for a house meant for a game.

I've read some things that say I should create a single large texture (2056x2056), paint all my details into there and then shrink it down to a smaller size for use later (512x512).

Another option is to create several materials with tileable textures for the brick, wood, shingles etc. and apply them to the faces that need them. This would allow me to save a lot of memory on textures since I could reuse them on other models.

If I go the one-big-texture route, would I run into problems if I try to make something really complicated like a castle? A 2056 square image might be okay for a one room house, but I'm worried that a castle would require an image that would be to huge to handle.

enter image description here

$\endgroup$
5
  • 3
    $\begingroup$ Make all the textures individually to provide higher detail, then bake it down to one tex, for game friendliness. $\endgroup$
    – ruckus
    Aug 3, 2015 at 21:26
  • 2
    $\begingroup$ and use 2048, not 2056 (or 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, ...) $\endgroup$
    – Bithur
    Aug 3, 2015 at 21:56
  • $\begingroup$ (i)You can use multiple textures if you separate the object into pieces. This should be possible with any game engine/export format. (ii)Some game engines/exporters allow you to have multiple materials on a single object so you can use multiple textures with only one model. $\endgroup$ Aug 4, 2015 at 5:17
  • $\begingroup$ You can have several UV Maps with different textures on the same mesh $\endgroup$
    – J Sargent
    Aug 4, 2015 at 14:32
  • 1
    $\begingroup$ Every texture creates a Draw call, but if you have multiple separate textures on your object that means you will get more then one draw call per object, and if its a castle for example that should definately create a lot of draw calls, so if you won't use the same textures anywhere else it would better be to make all the textures as one. $\endgroup$
    – A.D.
    Aug 22, 2015 at 16:09

2 Answers 2

2
$\begingroup$
  • You should only use as little as possible textures (regarding the number) per object for games. Explanation below.

  • Textures should always be in a power-of-two square size: 512x512, 1024x1024, 2048x2048...

  • You should always aim for a texture resolution as high as possible, downscaling can be done within the game engine via quality settings or as a batch process, e.g. with a free software like Irfanview. Upscaling is hardly possible. On the other hand, the higher the resolution, the more human resource goes into the creation process.

  • Textures should not only include a diffuse channel, but also normal & bump as well as Ambient Occlusion. (Depending on the game engine even light/shadow maps, reflexion maps etc.) Most game engines will utilize the unused Alpha channel of a texture, so your put your diffuse channel into RGB and the bump map into the Alpha channel, for a smaller number of textures. E.g.:

Diffuse+Bump.png

|_RGB = Diffuse

|_Alpha = Bump

A texture of 2048x2048 for a whole house may work for a game, where the camera is far away, e.g. Anno type games. If you have a first or 3rd-person camera this resolution will be very blurry when getting closer to the house.

If it's not possible to cover a large object like a castle with one texture you can use multiple textures. However this shouldn't change your strategy to use as little textures as possible over using small, recyclable textures for multiple objects.

Use single, per-object textures for the following reasons:

  • Project organization: Handling textures per object is much easier regarding changes, integration and management of your project
  • Game engine integration: Depending on the game engine you may have to assing textures manually to each object
  • Level design & workload: Handling many files is always slower than handling fewer, bigger files. Using multiple-object-textures over different game levels will nullify the advantage of less disc & memory space.

You can also create a free account on Turbosquid.com and look up their "Game Ready" specification, sadly this document seems not to be available ATM without login in:

http://support.turbosquid.com/entries/171903-Game-Ready-Certification-Specification

Here's an overview of texturing in Unreal Engine 4:

https://docs.unrealengine.com/latest/INT/Engine/Content/Types/Textures/index.html

As well as materials in Unreal Engine 4:

https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/IntroductionToMaterials/index.html

Pay attention to the image under "Material Expression Nodes and Networks" to get an impression how UE4 handles UV's and textures.

$\endgroup$
0
$\begingroup$

i would like to give another point of view. as the texture memory is relevant in a game you will often use multiple textures which correspond to the distance of view, rather than an 8K 64MB texture , which could not even be enough for a house for the instance,you have to master the techniques which will allow you to break repeating patterns for instance you can have a global noise map which will drive a mixer between two similar textures for the same material or create color variations, add detail map which will only be activated if you are near enough of an object.I had to work on a 50x150m underground parking lot texture and it was challenging since i had to break the repetition pattern. It would had been too obvious that there is an unnatural pattern repeating if i had just copied place 1A for all the parking places.The skill of being able to program particular pattern generator to mix texture smoothly which is a part of so called procedural texturing is the best way to do it and the best skill to acquire i think since whatever in blender or UE5 you can access variables of position in world space which can drive the generation of the pattern. The only issue is that you can not import a procedural texturing in unreal but with Houdini as far as i know .You have to build a smart texturing system with a minimum of procedural texturing by yourself if you care about memory and that you want a homogenous texturing quality viewed from a distance and nose on the material. To achieve this goal unreal as blender offer the possibility to use multiple UV maps because a general UV map is enough to place the general colors, you will create color variation procedurally then you can break down the parts or separate them in other UV map for the normals and another one for additive normals because you need another level of detail, the grain of the material for instance.the goal is to bring all the complexity of the real life variations into a minimum of memory so use multiple small textures correctly managed is far more efficient than a big one.

$\endgroup$
1
  • $\begingroup$ Hi. Could you please add paragraphs to your post so it doesn't look like a daunting wall of text? Thanks $\endgroup$ Apr 25, 2022 at 22:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .