Why should I convert Brushes to StaticMesh?
There are three basic reasons why you should convert small decorative geometry parts to StaticMesh:
a) It is easier for you
to dublicate a lamp or to take one from the StaticMesh browser and place it in a few spots than it is to select all the brushes that are part of one of them, dublicate them, rebuild your level to see the changes take effect (and see you level torn toe shreds by bsp-errors).
b) It is easier for the engine to reuse it! It just lets your graphics card calculate one instance of the StaticMesh and then it just dublicates, transforms (move, rotate, scale, switch materials, ...) and lights the other instances, rather than calculating everyone completely individually.
(Note: It can only do this if the graphics card supports Hardware Transform & Lighting, also known as Hardware T&L. Almost every card that can run UT2004 and every
card that can run it decently supports this)
StaticMeshes aren't just faster than Brushes because of Transform and Lighting, but also because light is handled differently on them. On a brush, light is rendered with a lightmap, which is basically a colored texture, layed out over every surface of the brush to make it seem like it was lit. These lightmaps are generated when you rebuild lighting. StaticMeshes aren't lit with lightmaps but per vertex, which means that only the vertexes of a StaticMesh count when it comes to lighting it and their light-values are spread out over the surfaces around them. Compared to having a light-value for every pixel on the lightmap this is peanuts.
StaticMeshes also take significantly less time to be "rebuilt" than the same objects as brushes.
Faulty Brushes (and/or many complex Brushes in general) are prone to cause BSP-errors
. StaticMeshes can never cause them.How do I convert Brushes to StaticMesh then?
To convert one or more Brushes to StaticMesh simply select
them, then right-click one in a 2d viewport or the wireframe view and select Convert -> To Static Mesh in the context menu that pops up. A window will open and you will be asked to give your StaticMesh a name and assign it to a package
Keep in mind that this treats all Brushes as additive! You have to build your objects with Add Brushes only if you want to convert them to StaticMsh afterwards.
Alternatively you can just build them with a combination of adds and subtracts and when you are done (don't forget to rebuild your geometry!) build a builder brush (the red one) around the object so it is completely inside it and click the Intersect-button. The builder brush will take the shape of your brush object and you can add it some place else. The texturing of the original object will also be copied by this. As the object consists of an additive brush now you can easily convert it to a StaticMesh as described above.
For numerous reasons it is recommended the build StaticMeshes in an external program such as Blender
. Smoothing Groups allow softer lighting, more complex UV mapping features, more control over triangularization, hidden faces can be deleted for better performance, etc. pp. Converting a complex, decorative Brush to StaticMesh is more efficient than keeping it as a Brush, but just creating the object in an external program is the even better way.
As StaticMeshes are lit per vertex huge faces without vertices on them will look strange as the only light information they get are the vertices they are made up of which could be far away from the point you are looking at. To get more detailed lighting either realize large, flat faces with a brush to benefit from its detailed lightmap or break the face into sections so there are more vertices on it.
StaticMeshes that are created in UnrealEd can have white glitter on their corners. This is a bug and I don't know a way to prevent or fix it. It seems to occur more often when the brushes the StaticMesh is made of were faulty, but I can't say if it is directly connected to that. If it bothers you too much: Use an external program for Mesh creation.