Bright Engine v0.1.3c Released – Performance & Optimisation

August 18, 2018
TABLE OF CONTENTS

This final entry in the 013 update series has brought some closure to the missing settings of the world panel, with room & weather transitions to give more natural effects. On top of all this, we’ve gone and done another performance sweep, optimising what’s there, and removing what’s no longer needed, resulting in a much higher fps!

New Features

Room Interpolation

The star of this update is the new Room & Weather Interpolation systems. Instead of simply switching settings when changing rooms, there is a transition area set by the user for each room placement which defines the area in which the settings gradually change. This creates a much more natural blending effect when interacting with your world while simultaneously removing the horrible pop-in effect.

Light Flickering

Another new introduction which was previously not planned is the new Light Flickering system! You can now make a much wider variety of lighting effects instead of just a constant light source. Maybe you need a slow fading in and out effect or a fast flashing light caused by electric sparks, it’s all possible now!

Undo System

The last thing on the list of new features is not really a new feature but rather a complete overhaul of an old, broken one. An Undo system is key to world-building. Being able to backtrack on unwanted progress allows for a more fluid workflow and experimentation within the scene. This system had been broken for quite some time but now works like a charm.

Currently, it is restricted to only work with changes made to Model, Lights and Emitters. This is because we want our testers to find any problems that may exist before taking it engine wide.

Changes & Improvements

CPU & GPU Performance

Here is where most of the effort was assigned for this update. We did a complete sweep through the engines shaders and found several areas in which we’re being calculated multiple times per frame despite the fact it only needed to be done once:

  • Optimised Various minor aspects of the PBR Shader, removing more branches
  • Optimised LOD fading algorithm to prevent calculation when it’s not needed
  • Optimised Skybox Blending algorithm to prevent unnecessary additional calculation
  • Optimised Fog Blending algorithm to prevent unnecessary additional calculation
  • Optimised Color Modification algorithm to prevent unnecessary additional calculation
  • Optimised Bloom algorithm to prevent unnecessary additional calculation

Putting all these improvements together saw a huge improvement in performance on the GPU as well as a minor reduction of CPU usage, resulting in a drastic increase in frame rate!

Tested on an Intel i7 3770k processor.

Tested on Nvidia GT 740 to compare performance on older cards.

Particle Bloom

But aside from improvements to performance, we also did some additional tweaking of existing systems. Particles now have a new setting in place that allows you to define whether or not they should be drawn into the bloom pass, to give an extra glow effect. In previous versions, this was on by default, which was great for stuff like magic effects, but not so much for the weather. In fact, a common problem was glow-in-the-dark snow! In any case, you now have the option to enable or disable this effect for each individual particle for each Emitter.

3D Cursor

Lastly, upon constant request (and rightfully so) by the community, the 3D Cursor has had a complete rework. Originally the offset translation was calculated based on Mouse movement horizontally for X and Z axis transformation and vertically for the Y axis. This worked great so long as you were facing the 3D cursor from the right angle. Otherwise, it had a tendency to start moving things in the opposite direction to what the mouse was doing. Not anymore! We’ve completely scrapped this method and replaced it with the far more accurate and more optimised Projected Plane Intersection Method (nerdy math stuff). The cursor reacts exactly how you would expect it to, with no annoying random movement!

Bug Fixes

World Editor

  • Fixed a bug where adjusting the orbit value of a particle didn’t update until after another setting was changed.
  • Fixed a bug where Ambient Occlusion Baked Textures were being distorted by Parallax Occlusion.
  • Fixed a bug where Emission Baked Textures were being distorted by Parallax Occlusion.
  • Fixed a bug where the Engine Exit button didn’t work.
  • Fixed a bug where switching zones would sometimes cause a crash.
  • Fixed a bug where switching zones would cause the Shadow and AO pass to skip drawing some models in the scene.
  • Fixed a bug where closing a project did not clear the data correctly.
  • Fixed a bug where clicking on a drop-down menu item triggers a mouse click within the workspace, causing unwanted selections.
  • Fixed a bug where Emitters and clouds did not render behind Room Placement Volumes.
  • Fixed a bug where vertical and horizontal bloom methods were being calculated twice per frame instead of once.
  • Fixed a bug where Emitters were being drawn into the Bloom Pass, creating an unwanted effect.
  • Fixed a bug where weather being triggered inside a room transition zone caused a crash.
  • Fixed a bug where weather Emitters did not render behind Room placement Volumes.
  • Fixed a bug where duplicating a lamp or emitter caused some of the data not to be copied correctly to the new object.
  • Fixed a bug where bounding boxes weren’t drawing correctly, resulting in visual errors in the Occlusion Culling System.
  • Fixed a bug where undoing or redoing an action caused the Shadow and SSAO maps to fall out of line, causing visual artefacts.
  • Fixed a bug where undoing an action would not revert back to the original state but rather one action above the original state.
  • Fixed a bug where creating a new project would result in the wrong version being stored in the data files causing chaos when reloading the project.

What’s Next?

This final update brought the conclusion of the 013 series, and we are proud to know that we achieved all our targets for the series. Developers on older GPUs can now run the engine on a smooth 37-40 fps as opposed to the 10-15 fps from before, making the experience that much better. We are far from done with performance and optimisation, but the time has now come to refocus efforts on a lot of new systems.

The 014 series is all about terrain! While Bright does have a basic terrain system already in place, we are going to be revamping the whole thing. We’re going to fix the clunky sculpting and introduce painting tools, tessellation, and the long-awaited model brush system for ultra-fast environment building!

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

Home » News » Patch Notes » Bright Engine v0.1.3c Released – 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.