I’ve been working on rendering forests for my terrain renderer. A problem with forests in large areas are the large amounts of draw calls required for all the trees. To make forests possible I had to add geometry instancing to the render system. Instancing allows you to draw many copies of an object with a single function call. Before using instancing I could only render a few hundred trees without impacting performance and after adding instancing I can draw over 30000 trees with barely any impact on rendering performance.
Here are some images from the terrain renderer I have been working on for a couple of weeks.
The view distance in these screenshots is approximately 5000 meters. The sun is fully dynamic and there is a running day and night cycle. There are as of yet no shadows.