Bright Engine v0.1.1 – Performance & Optimisation

March 22, 2018
TABLE OF CONTENTS

Over the past month, the development team have been hard at work redesigning a lot of the core systems to improve performance. The bulk of it is still unfinished, but so far, we’ve already seen large leaps in performance and sizable drops in memory usage, so it’s exciting to see how much more speed we can push out of Bright Engine!

New Features

Terrain Sculpting

Despite this update primarily aimed at reducing the draw time per frame, we did spend a good chunk of the past month further developing the terrain system. We are happy to announce that the engine now allows users to create blank height maps within the editor (instead of having to import a height map), as well as introducing a full suite of sculpting tools!

The Terrain Sculpting Suite consists of 2 brushes (Square & Circular) with more advanced brushes such as noise & erosion on the way. Each is fully customisable and can be used in conjunction with 7 different tools allowing for near-limitless possible terrain designs!

Aside from the Terrain Editing, one of the biggest requests was the ability to upgrade projects to the latest version of the engine so that there weren’t any compatibility errors. Frankly, this feature should have been introduced with the first released version of the engine, but this has finally been implemented. Whenever you load a project made on an older version of Bright Engine, it will recognise it and update it accordingly automatically for you, hassle-free!

Changes & Improvements

This was the core focus of the v0.1.1 patch, and we were able to improve various systems quite drastically. The default shaders have been rewritten in a much more efficient manner. This gave a very minor boost. However, this will solve some more serious problems that would have occurred later down the line in more complex scenes.

While Instanced Rendering is still yet to be finished, we have laid the groundwork by optimising the data passing between the CPU and GPU, reducing the amount of data flowing through by about 25% while retaining the same results. It didn’t give a noticeable fps increase. However, the average CPU usage dropped by about 3.5%!

Tested on an Intel i7 3770k processor.

One of the biggest drains on rendering performance is dynamic lighting with shadows. There is still much work to be done, but as an initial start, we found an interesting method using geometry shaders to calculate the shadows of a point light in a single pass rather than 6.

Screen Space Ambient occlusion, a very popular post-processing effect, to say the least, got a complete rework, streamlining it into a more suitable method for real-time rendering. We’ve added more control over the process and reduced the drag it caused on the system at the same time.

Tested on Nvidia GT 740 to compare performance on the older card.
Bright has also been tested on an Nvidia GTX 970 and achieved a stable 60 fps.

Bug Fixes

World Editor

  • Fixed a bug where Point lights which cast shadows caused an increase in brightness when stacked.
  • Fixed a bug where Bloom was still being calculated even when it was disabled.
  • Fixed a bug where adjusting SSAO Blur Radius didn’t actually do anything.
  • Fixed a bug where debugging terrain chunks didn’t actually show the chunks.
  • Fixed a bug where the green Selection Box was affected by Bloom (while cool, it got annoying).

What’s Next?

Well, we have been receiving a lot of pressure to finish the terrain editing suite entirely, which, to be fair, there is only the painting system left to do, so it’s close to being done. However, the optimisations to Bright so far have shown that the engine was in dire need of performance patching. We haven’t even scratched the surface of some of the efficiency issues, so instead of focusing on adding new features, we intend to focus purely on further optimisation so that the core of Bright Engine becomes even more stable and accessible to people with older graphics cards.

If you would like to join the testing process of Bright Engine and become a member of our growing community of developers, then just follow the Discord link on the Bright Engine main Page!

All performance tests are performed in the engine demo scene included in the installation.

Home » News » Patch Notes » Bright Engine v0.1.1 – Performance & Optimisation
Bright Engine 2022 R3 Released – Performance & Optimisation

Bright Engine 2022 R3 Released – Performance & Optimisation

Continuing on from the upgrades introduced in R2, the engineering team have been redesigning major parts of Bright Engine’s rendering system. Plenty of redundant code has been removed, and significant chunks of the CPU-sided code have been rewritten to be both more memory efficient and reduce GPU idling.

Bright Engine 2022 R2 Released – Performance & Optimisation

Bright Engine 2022 R2 Released – Performance & Optimisation

It’s been two months of an architectural overhaul for the Bright Engine render pipeline. The engineering team have been making substantial changes to how the engine draws the scene, resulting in significant performance boosts without loss of graphical fidelity. Let’s dive under the hood to see what’s changed.

Bright Engine 2022 R1 Released – UI & Resource Management

Bright Engine 2022 R1 Released – UI & Resource Management

After months of programming, the time has come again to show off what our engineering team has been up to. A lot of under-the-hood architecture has been rewritten, drastically reducing memory usage and improving frame rate. Meanwhile, a brand new UI system and editor have emerged. This is more of a technical update than a visual, so pretty pictures will make a return next time.