Fixing Graphical Glitches in UnrealED
Last updated: 16 November, 2005

Disclaimer
We hope these articles and resources will prove useful, but your projects are your responsibility. Always make any necessary backup of your work to revert to incase things go horribly wrong.

Introduction
This tutorial aims to show some of the many graphical glitches that the Unreal level editor may attack you with every so often; and, of course, overcome or work around them with as little disruption to your level as possible. Chances are, when making a map, you will run into one of the problems listed below.

Tutorial Navigation
- White Screen
- BSP Holes
- Black Surfaces
- Unlit Static Meshes
- Black Static Meshes
- Mesh Not Visible Through a Transparent Window
- Sky Texture Appearing Stretched
- Sunlight Not Shining Through a Window Mesh
- Strange Widespread Mid-Air Flickering
- Dark Surfaces Not Lighting Properly

White Screen
The screen is white when you start the editor.

UnrealED screen appears white.

Although not strictly related to this tutorial, I thought I'd include a quick paragraph for anyone looking for this problem. This is sometimes caused by changes in resolution. Basically, all the editing viewports are closed, leaving the white background. It's easy to fix; to open them again, click on 'View' at the top of the editor and go down to the bottom of the drop down list where it says 'View ports' and from the side menu that pops up, click 'Configure'. Then choose your view port style and hit OK. I recommend having 2 view ports unattached, so you can maximize them, since you'll be able to see a better view and make less 'unknown mistakes'.

BSP Holes
Holes appearing in the map, sometimes causes a ' Hall of Mirrors' effect. Very common.

Corridor leads out into a BSP Hole.

Image: A hole leads out into the void in the editor; the corridor to the left has been sliced in half. (Notice the black editor background with the dark blue grid). Appears as a "Hall of Mirrors" in game. This can look ugly, confuse the player, cause death when touched, and cause the player to fall through the map.

Perhaps the most common problem people discover when making maps; The much loved BSP hole is especially a newbie's nightmare. These can be caused by messy geometry, complicated brushes, tiny mistakes after editing vertices and bad zone portals. A lot of new map makers don't bother keeping things neat or simple, and end up with their level cut to ribbons by these mysterious holes of fun.

How to Fix:
• Investigate the area where the BSP hole(s) are occurring. We're looking for anything even a little out of place; this is what causes the holes in nearly all cases...

• Check that your brushes are perfectly aligned on all views; they should be flush (aligned perfectly) with each other. It's not always possible to see anything out of place unless you zoom in very closely by holding both mouse buttons and moving your mouse forward. If not, align everything perfectly by resizing or vertex editing your brushes, and rebuild. If you map is very messy, you should see a big reduction in problems after tidying it up.

• Check the brushes where the hole(s) are occurring. Are they complicated? Any brushes with irregular shapes, or a lot of angles, vertices or sides can cause this. If so, you'll need to recreate this area by using simpler brushes or more brushes to get the shapes you want. Keep to simple, regular shapes like cuboids as much as possible, then rebuild. Try replacing anything too complicated with static meshes. If you are using a brush with a lot of sides, aviod convex angles and consider splitting these up as mentioned above.

• If you've been editing the vertices on the brushes, check to see that all vertices are aligned, and not slanted. (So that all sides on the brush(es) are completely flat, and not curved. (Vertices can be out by as little as one square to cause this). Again you may want to zoom in for this.

• Are you trying to place a zone portal where the hole(s) are occurring? Make sure the zone portal is completely watertight, and doesn't intersect any complicated brushes.

Work Around:
If you're confident that all the above is perfect, and worst comes to worst, you might consider changing the room or corridors where the holes appear. This means resizing or moving them elsewhere, or even redesigning them slightly. Last resort!

Black Surfaces
A completely black surface with no lighting; Can appear at random in any area of the map.

A surface is completely black

Image: The problem surface is highlighted by the red border. Instead of being lit properly, it's completely black. What causes this remains a mystery to me. They seem to suddenly spring up even with perfectly aligned editing. No amount of rebuilding seems to fix them. But I found a work around after hours of trying to fix it.

Work Around:
Resize the offending brush in one of your 2D views by 1 unit/square on the smallest grid scale. You may want to use the vertex editing tool for this, and it's handy to have the 'Show Large Verticies' option turned on. (See below for the button). Hit F8 and rebuild, and this should be fixed. (If not, try resizing by a couple more units/squares). Make sure you tidy up any other brushes aligned with the one you resized. There should be no noticeable difference to the size of this room when in-game.

The 'Vertex Editing' tool.
The "Vertex Editing" tool.

The 'Show Large Vertices' button.
The "Show Large Vertices" button.

Editor Tip:
Using the vertex editing tool is useful for making small changes or changing the shapes of your brushes. Keep things simple; any "curved" surfaces or messy vertices can cause the editor to crash or make BSP holes appear!

Unlit Static Meshes: (2K3/2K4)
A static mesh that appears unlit or black when in 3d lighting mode or in game, when it's supposed to be lit correctly.

Static

Image: A small number of static meshes appear completely unlit, whilst the rest of the map is lit perfectly. This is sometimes caused when static meshes are sticking out of zones or into the void. or the surrounding lighting. Some of the stock Epic static meshes use light maps in their textures, and this could cause it to appear unlit. This problem is usually easy to fix.

How to Fix:
If you really don't want to have to move your static mesh(es), try this. Give the zone where your unlit static mesh is a tag name. (Right click the Zone Info actor, select properties. Expand events, type a name in "Tag" field.) Next, open your static mesh properties, expand display and type the same tag name in the 'ForcedVisibilityZone' field. Then, hit F8 and rebuild. This is also an nice optimization method, as the static meshes will only be rendered when the zone is being rendered. You may want to do with for all your meshes.

Set the mesh ForcedVisabilityZoneTag to the same as the ZoneInfo tag.

If this didn't solve the problem, you can try altering the static mesh lighting properties. In the static mesh properties, expand display and try changing these lighting fields, one at a time: bUseDynamicLights, bUseStaticLighting, bUseLightingFromBase. Also note the 'bUnlit' property; this is false by default.

If you don't mind moving or resizing your meshes a little, then check that they are not sticking out into other zones or into the empty void.

Finally, there is a Scale Glow setting on the static meshes display properties you can change to make the mesh brighter/darker, which can also help you find the mesh lighting you want.

Editor Tip:
Naming your zones with a tag name and setting the Forced Zone Visibility property to your static meshes display properties, along with other optimization methods, can seriously improve your level performance and FPS, and fix a lot of mesh lighting problems! See above on how to do this.

Static Meshes Appear Black (2K3/2K4)
A static mesh which appears completely black.

Sometimes one or more of your static meshes can appear completely black. This happens when all the vertices that make up the mesh are receiving hidden and recieving no light, or are sticking out into the vois. Meshes use vertex lighting, which means the vertices that make up the mesh are what recieve the light, and the poloygons between the vertices are blended using the light values.

How to Fix:
The first method would be to resize or move the mesh, using the DrawScale3D properties, so that light can reach the vertices. This obviously depends on if you have room for monouvering it. You could also try subtracting some space around it.

If you really can't alter the position or size of the mesh, there's a couple of methods you can try. Firstly, you can turn off the shadow cast of any meshes covering the vertices of your mesh by changing bShadowCast to false (Located in it's display properties). Another method is to turn the static lighting off by setting bStaticLighting to false and add a slight ambient brightness to the mesh, also located in the display properties.

Mesh Not Visible Through a Translucent Window. (2K3/2K4)
Part or all of a static mesh isn't shown when viewing it through a translucent sheet.

Static mesh isn't visiable through the 'glass' sheet.

Image: Looking out through the BSP sheet (or window), you'll see that the leaves from the tree (a static mesh) isn't shown when looking through it. This is caused when you use a sheet or BSP for your translucent window, and when static meshes are too close on the other side. I'm not yet sure what sort of setting affects this, but a work around is easy enough.

Work Around:
Quick and easy: Move your static meshes further away from the translucent sheet until they are visible. Note that you may have to change your surroundings too. The following work around may be more suitable for you...

If you don't want to move your meshes: You will need to convert the translucent sheets or BSP into a static mesh (Recommended anyway). Create your window or translucent sheets inside UnrealED and add other detail (e.g. window frame) to complete it. You should create it in a empty space in your level, to make it easy to import.

Then, import them into your static mesh myLevel placeholder (If you want it embedded in your level). You may have to intersect your brushes before importing them to keep it intact, using the intersect tool. Alternatively, you can create your mesh in your favorite modelling program, such as Maya. Next, place the newly created static mesh in it's place. Remember to delete the old brushes inside UnrealED that made up your window, or what you built to create your mesh.

The 'Intersect' tool.
The "Intersect" tool.

Sky Texture Appearing Stretched (2K4)
The sky textures in the skybox appears stretched, looking striped.

Some sky textures appear stretched.

Image: When using certain skybox textures, they can appear stretched to the extent that they look striped. These behave a little odd because they have their Clamp Mode set to TC_clamp set in the texture properties. This can be fixed by changing this property to TC_Wrap, but a better workaround is to learn how to work with TC_Clamp and set up your skybox properly. This bug can be an issue when converting UT2K3 maps into UT2K4.

How to Fix:

Working with TC_Clamp:
Select all the wall sufraces, right-click, and select 'align > face' from the menu (The textures will still show up striped). Now with all four walls selected, right-click and go to the 'surface properties'. Next click the Pan/Rot/Scale tab. You'll have a box that looks like this:

This is the tool we are going to use to get everything aligned properly. The Pan option moves the texture up or accross by however many units you press. e.g. pressing U: 4 will move the texture by 4 units. It's basically a more accurate version of the texture moving tool. The rotation tool, yep, you guessed it, rotates the texture.

Pan one unit in the U and V, and the textures will start to look clearer, though still not aligned. Next Pan the U by 64 four times, and the walls should look aligned.

The floor and ceiling are a different matter however and require a bit more work. It's literally a case of getting the rotation correct and panning in both directions until they are perfect.

Using TC_Clamp is far superior to any other method for creating skyboxes. It just takes a bit of patience to familiarize yourself with the quirks of its behaviour, but worth it in the long run.

Work Arounds:
You will need to export the skybox textures and re-import them into your myLevel placeholder, then replace the skybox textures. The sky should now display perfectly.

If you are using custom textures, you can change the texture clamp mode to TC_Wrap in the texture properties (Right click the texure in your texture browser, select 'Properties', and expand 'Texture'.

Skybox Losing Alignment After Rebuilds..
As mentioned above, this is also an issue with TC_Clamp. When you first put in a skybox it may be perfect, then you notice several reubuilds later it has become streaky. Align the textures to face once again, then pan one UU horizontal and vertical. Now Highlight the skybox subtract, and then the rest of your actors inside the skybox Move the skybox to where the yellow subtract lines match where the streaks start. Rebuild level If streaks appear again readjust. It takes a couple tries sometimes. For some reason BSP cuts in your game level affect TC_Clamp.

(Many thanks to King Mango of Unreal Playground for the TC_Clamp info!)

Sunlight Not Shining Through a Window Mesh (2K3/2K4)
A sunlight actor doesn't shine through a translucent mesh, such as a window.

Sunlight actors can be used to project rays through windows to beautiful effect, however once you add your window mesh, it can be possible for the sunlight to be blocked, so the sunlight no longer shines through a window.

How to Fix:

Selected meshes: Turn off the Static Meshes collision, by selecting the offending mesh and switching bCollideActors and bShadowCast both to false in the meshes display properties. Once you've rebuild your map for the final time (final build), turn the collision back on by setting these to true again.

The static mesh properties box

All matching meshes: Open your static mesh browser, locate your mesh, and set the collision to false under the skins menu. This will alter all matching meshes. Warning: this method should be done at the very final build of the map, so that no official packages are modified. Otherwise, this may effect the meshes in other levels.

Strange Widespread Mid-Air Flickering (2K3/2K4)
Epileptic inducing strange flickering across the map.

Strange Widespread Mid-Air Flickering

This problem is difficult to describe unless you've experienced it before. The game flickers quickly, in varying degrees of severity. Usually more severe the higher or more detailed area you are. This problem will appear on all maps.

Possible Causes & Solutions:

• If you recently changed drivers, patches, or DirectX versions, try updating these or rolling back to your previous version.

• Your graphics card may be overheating (Mine was, lost my Radeon 9800 to it). You computer cooling could be fine, but the heatsink or fan on your graphics card may not be. Try taking the panel off your machine, and see if it helps. Try letting it cool off if you PC has been on a long time. Check it for dust. Check the fan is working (All common sense really).

Dark Surfaces Not Lighting Properly (2K3/2K4)
aka 'The Two Sided Trick'

Dark Surface Not Lit Properly...

Solution: Set the surface to two sided in the surface properties, and rebuild your map to light up problem areas correctly...

... Dark Surfaces Fixed!

 

Special thanks to UTManiac and Unreal Playground and their forumites. Without their helpful posts, this tutorial simply wouldn't exist.