whoimi

A geek blog

View on GitHub

Building Better 3D Meshes and Textures

Meshes And Textures are basic assets. It’s important to control the asset detail to get better game performance.

Naming Conventions

First of all, I want to discuss is Naming Conventions . It’s Great you can know what they are when you read the asset list by reading their name.

There are examples. We can prefix with a couple of letters to help us quickly identify what type of the data is.

SM_Rock_00 - Static Mesh for a Rock variation 00

T_Rock_00_BC - Base Color Texture for a Rock variation 00

SKM_RockBun_00 - Skeletal Mesh

Texture Creation

We prefer to: (GPU like it)

Textures should always be a power of 2.

Textures do not have to be square, just use a power of 2.

If you go with power of two texture the advantage is that Engine will generate mip map chain for you that will really help in terms of performance and quality.

We cant bring a non power of 2 texture but Engine will do some like padding internally so that like square, so you end up with wasting space

UI stuff non power of 2 is not so bad, because those are alway at full resolution.

We have a very flexible in the type of texture like:

PNG- Embed Alpha Support
PSD- Embed Alpha Support
TGA- Embed Alpha Support
BMP
FLOAT
PCX
IPG
EXR
DDS - Cubemap Texture (32 Bit / Channels 8.8.8.8. ARGB 32 bppm unsigned)
HDR - Cubemap Texture (LongLat Unwrap)

JPEG is compressed ,So you will let go some quality. because Engine will recompress over JPEG.

Texture Import

Drag into editor Or Use import Panel.

Alpha Import

In terms of storage, splitting the alpha from the texture make that we can use different size of alpha. if we have limited space.

There are something need be known

LOD bias.

Channel Packing.

Srgb.

Mip Mapping

Base Version is full resolution, other are smaller.

Mip Gen Setting: Filtering.

LOD bias.

Texture Group: Pre-configure texture based on their usage.

## Texture Compression

Main modes are:

DXT1 - No Alpha

DXT5 - Alpha

these are tile-based compression.

There ara some special mode for HDR texture.

bc7 - compression time is longer but you have higher quality over the DXT1 and DXT5.

System Unit

UE4 use Centimeters for unity of measurement.

Make sure set DCC unit to centimeters

Triangle Counts

Do not model small detials.

You should constantly check the triangle count.

Engine can deal with a lot of polygon ,but we should prepare scene properly for that.

Material ID

As you model your object , you can specify which polygons use which material in your mesh. Engine treat material id as separate objects. GPU rendering this robot is equivalent to rendering two objects.

Material ID in unity is corresponding to submeshes.