I am prototyping a racing game in Unreal 5 and using Blender to build the tracks. The game uses the normals on the track mesh to calculate the orientation of the race car.
To make the track in blender I created a track segment and a Bezier curve. I then used the Array Modifier and Curve Modifier to array the track segment along the curve. I then applied Shade Smooth to the mesh. The problem is that the Shade Smooth does not work as desired. The smoothing applies to each track segment, and does not smooth the entire track together.
For reference, I can achieve the desired mesh normals if I create a mesh (e.g. a UV Sphere), apply Shade Smooth, and export the FBX from Blender. In this case the mesh looks smooth in Blender and the car drives smoothly on the surface of the sphere when the mesh is used in game in Unreal.
TL;DR - How can I combine Shade Smooth with the Array Modifier? Or, if there is a different strategy to build a track along a Bezier curve I would be grateful for input.
- The track segment.
- The track.
- Shade Smooth appears on the individual track segments, but not across the length of the track.
- The track after enabling Array Modifier > Merge.
- Rendering of the track and vertex normals (red lines) in Unreal. Note the vertex normals are parallel to the face normals, rather than matching the normal of the track curvature.
- These images show correct (top) and incorrect (bottom) vertex normals on a sphere in Unreal. Both spheres were created with Blender. The vertex normals are only correct when Shade Smooth is used.