Assets Objects Other Scenery Splines

Low Poly Lighting – It’s all about the Normals

In the beginning Trainz (and most games around the 2000s) needed to use low poly assets due to hardware capabilities. These days we use low poly assets for either low LOD or art style choices. That isn’t to say you can’t use low poly assets up close but there isn’t really a need if you are trying to get your assets to look as real as they can be, and in Trainz Railroad “Simulator” that is how we try to approach things.

For those that still like to dabble in low polygon assets, here is some information on how you might get your lighting to look better inside Trainz’s modern engine.

What is the issue?

Well basically it comes down to “lighting”. When light hits a surface on a mesh, a surface normal is used to calculate the lighting. By default, 3D software usually set the normals for you and most of the time you probably won’t go editing them.

Trainz low poly legacy content when rendered in TRS19 appears to look incorrect.

This isn’t a bug, it is just that the normals on the surfaces of the mesh are all pointing outwards in different directions causing different shading on the polygons. There is technically nothing wrong with the mesh but visually it just doesn’t look desirable. Here is what the normals look like for the above asset:

What is the solution to the above visual issue?

The first thing you might consider is to stop using low polygon assets. The days of the crisscross ( X ) mesh to mimic a bush are limited as modern hardware is capable of rendering enormous amounts of polygons so bulk up your shrubs!

The next thing to consider if you just have to use a low polygon mesh up close to the camera is to change your normals. Make sure all your normals point upwards so when each surface on your mesh is lit they will all be lit the same no matter which direction the light is coming from. We have updated the normals on the above mesh in our 3D software package to have all the normals pointing upwards.

Doing so should give you the following result in Trainz:

Other things to consider that you might run into when trying to use low poly assets and adjusting the normals…

Using the metadata tag two-sided to generate additional polygons (the back faces in this example above) will result in the normals being flipped. Best to generate additional polygons in your 3D software package if you plan on changing the normals of your mesh.

There is a new metadata tag called “bend-normals-upward-ratio” for any assets that are 4.7 or higher. When you set this value to 1.0 it points the normals of the .trainzmesh upwards (like in the image above where the normals point upwards). This means you don’t need to manually edit the normals of your low polygon mesh in your 3D software package, you can just add this tag to the metadata file.

Hopefully this gives you some insight into why the lighting might look dark and light on different sides of low poly assets in TRS19 and also a way to help you resolve this if that visual outcome isn’t what you desire.

You may also like