Godot Version 4.3
I’ve created some procedural terrain using SurfaceTool and FastNoiseLite. The generated mesh itself seems fine however when I light it, in this case with a single DirectionalLight3D, I get very odd looking shading. Incidentally the meshes Material is set to per-pixel shading. Those shading artifacts look suspiciously ‘vertexy’ to me, seemingly following the edges between vertices.
Initially I though this was an issue with generate_normals() in SurfaceTool but I’m not sure because setting the normals per face manually gives me the exact same output as generate_normals() with set_smooth_group(-1). I’ve also tried using ArrayMesh directly instead of SurfaceTool - same result again. This is what it looks like in all three of those cases which, in itself, looks a bit odd to me. Why is there a diagonal ‘direction’ to a lot of the per face shading here? The light is facing directly towards the camera (negative Z).
Does anyone have any idea what is happening here and how it can be fixed? Any help would be much appreciated!