How can I import textures into UnrealEd?
Open the Texture Browser, click File -> Import, select your image(s) and click Open.
A small window will pop up for every image you selected.
It has fields for Package, Group and Name. Type the name of the package you want the texture to be in into the Package field.
to learn how to use packages.
The Group field allows you to type in a Group for the texture. Groups are categories in a packages. Using them is completely optional, but it can help you organize textures. E.g. you could have 100 textures in your package and it would be a pain to scroll through them all all the time. If they are grouped into Wall, Ceiling, Floor, Ground, Deco, SFX, and whatnot you'll have an easier time finding what you need later on.
Lastly the Name field lets you specify the texture's Name.
To find out more about the checkboxes, read the respective paragraphs below.
If the specifications of your images were compatible with UnrealEd your texture is now in your package. Make sure to read this
to learn how to make it stay there!
To learn more about the specifications, read on.What image formats and resolutions can I use?
I recommend 24 bit BMP for 100% opaque textures and 32-bit TGA for textures with alpha. You can also use PCX.
Experts who want maximum control over their textures can also create their own DDS files and import those, but UnrealEd will turn imported textures into DDS internally anyway so most users can just import their images in the above formats and let UnrealEd do the rest.
All textures have to be in resolutions where the sides are powers of two.
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 (the engine supports up to 4096, as far as I know, but you will probably never need textures that big and you should avoid using such textures just for the heck of it because the strain on graphical performance really isn't worth it in most (read: 99.9%) of the cases).
The sides don't have to be the same (i.e. the textures don't have to be squares), so texture sizes of 128*256 or 512*32 are possible as well.What resolution should I use for my textures?
Whether a texture needs to be 512*512 or 1024*1024 depends on how detailed you need it and over what sizes you want to stretch it.
E.g. you have a painting in one of you buildings which is 64*64 unrealunits in size (roughly 1m²). If you would use a 2048*2048 texture to skin it that would be overkill because you would have to scale down the texture a lot to fit it on the painting. In the end you would have (2048/64=32) 32*32 pixels of texture on 1*1 uu (roughly 0.25cm²). It doesn't need to be that detailed.
By default a texture is applied to brushes so 1unrealunit² in the level is covered with 1pixel² of the texture. That's a bit low, so usually you want to scale it by 2 (or 4 if you want it really detailed) so 1uu² is covered with 2*2 pixel² or 4*4 pixel² respectively. Example a 256 uu high wall can look good with a 512*512 texture, or great with a 1024*1024 texture. Anything above this is a bit much, but it's really up to you. Don't worry too much about extreme close-ups, as this is where DetailTextures come in.DetailTextures
DetailTextures are textures that are blended over the actual texture and become more visible the closer you get. This means that the texture will still look like the texture, but up close it gains additional small structure so it looks realistic even under very close inspection.
DetailTextures are usually gray-scale images with a generic structure of a material. E.g. small scratches and dents for metal or long wrinkles for wood, etc. The game you are mapping for should come with a few you can use (but I don't know in which package they are), but you can make those on your own as well.
To apply a DetailTexture to your texture, open the Texture's properties in the Texture Browser and go to Texture -> Detail. That's where you have to 'use' the DetailTexture (i.e. leave the properties window of the texture open, select the DetailTexture in the Texture Browser and then click 'use'). The number below is how you want to scale the DetailTexture. Experiment with this until you find a setting you like.Mipmaps
Mipmaps are smaller versions of the texture and UnrealEd can switch out the full-resolution texture with one of the smaller versions at a distance. It's a LOD system for textures. No use rendering a 1024*1024 texture on an object that is only 2 pixels wide on your screen because it's so far away...
Pretty much every environmental texture should have mipmaps. Textures that are only going to be used for interface stuff, e.g. HUD elements or graphics in a menu don't need mipmaps as they are always viewed from the same "distance" so generating and saving mipmaps for them would be a waste of space.
How does this affect me when I import textures?
If you want mipmaps to be generated for your texture leave the checkmark for "generate mipmaps" when you import it into UnrealEd.Alpha
Images can have a so-called Alpha channel. It's basically the same as the R, G, and B channel, which determine the color contents of a pixel on your texture (R=red, G=green and B=blue) but instead of mixing colors it is used to determine how transparent a pixel should be.
32 bit TGA files have an alpha channel, for example.
This is, for example, used for making transparent glass textures and things like that.
How does this affect me when I import textures?
If your image is (partly) transparent mark the Alpha checkbox when you import it so the Texture's Surface -> Alpha setting is set to True for you. This makes UnrealEd display the Alpha channel. If it's set to False, which it is by default, it is simply going to be ignored and the texture is going to show up 100% opaque. I found this to be a bit buggy sometimes, so if your alpha doesn't show up in your imported textures check that setting in the Texture's properties in the Texture Browser yourself.Masked
Sometimes you need textures which are 100% opaque in some places and 100% invisible in others. E.g. a wire fence texture. The wire parts should be 100% opaque and in between the texture should be invisible. To make textures like this make the invisible parts 100% black and when you import it check the 'Masked' box so UnrealEd makes the black parts invisible.
The same effect can be achieved with an Alpha channel as described above, but this is going to take up more space. It can still be the better option though. E.g. if you want to apply something like Antialiasing to the wire fence. If it's masked its borders are either 100% opaque or 100% invisible, which means you'll see tiny pixel stairs there. With an Alpha channel you can have some pixels only partly (in)visible so the transition can look a lot smoother.
Your choice.Texture compression
Newly imported textures are saved as uncompressed RGBA8 textures.
RGBA8 means they are uncompressed 8-bit per channel. The R, G and B channel (making up the colors of your texture) and the Alpha channel (determining how transparent the texture is). The Alpha channel is only displayed if you set the texture's Surface -> Alpha to True, but regardless of it being displayed or not it is saved.
You should NEVER
leave textures uncompressed! To let UnrealEd compress them, right-click them in the Texture Browser and select 'Compress'.
Not only are they smaller then so it's easier for clients to download the map from a server, but they are also more easily digestible for GPUs.
Compress them to what?
If they don't have Alpha (e.g. a regular wall texture) compress them to DXT1.
If they do have Alpha compress them to either DXT3 or DXT5.
DXT3 if the alpha changes sharply across the texture (e.g. one pixel is fully transparent and the one next to it only half)
and DXT5 if the alpha changes gradually across the texture.
Depending on the size of the texture this can take a few seconds.Material-based footstep sounds and hit effects
That's it for looks now, but you also want the correct foot-step sounds to be played when someone waltzes over a floor with your texture on it in-game and you want the correct decal to be painted on it and the right kind of debris, sparks or splinters to fall out of it when it gets shot. For that open its properties in the Texture Browser and under SurfaceType select the type of surface you want it to be. E.g. concrete, wood, etc.