Hey again! Progress on FPEngine is currently slowed down a bit because I’m in the process of rewriting core parts of the renderer for performance improvements. And since a culling system was added, a bug was fixed related to certain GPU’s and some optimizations are done, I thought it was time for a new performance test. At this point I’m simply testing the performance by checking the framerate with all graphical options enabled and maxed, using the same hardware for every test. I use this method to make sure that while I’m rewriting things the performance goes up and not down.
Using an Intel Core i7-4720HQ combined with an NVIDIA GeForce GTX 970M (3GB dedicated VRAM), the engine managed to reach 5.3 million visible polygons drawn on screen per frame before dropping below the 60 frames per second minimum. This is a massive improvement as the previous test resulted in 1.3 million. Right now the scene contains a point light that isn’t optimized yet. It draws every single car mesh that’s visible in its light camera’s into the cubemap for shadowing. So that means those 5.3 million polygons are all rendered for a second time in a depth shader. Performance will greatly improve once I get to implementing light range and selective lighting/shadows. Directional lighting (e.g. sunlight) is also coming up to light up the scene after I complete the core rendering tasks.
The next thing up the list is Level Of Detail (LOD). While currently having about 16k polygons per car mesh for the performance tests, it doesn’t mean that lower resolution meshes will improve the overall performance in a scene. I have to make sure that no more vertices are being processed than the ones required to make a scene look good. The engine will need LOD for both terrain and objects to filter out those unnecessary vertices in the distance, where you can’t see details in an object no matter how many you are drawing because it’s simply too small on the screen.