Skip to main content

Apex Dev Log: May-June Updates: Vulkan Basics

Apex Development Log: May-June Updates, focusing on Vulkan Basics

2024 01 01 DevLog intro 01

The Apex Engine's recent updates have markedly improved shader management and object architecture, vital for supporting expansive open-world environments.

Object Architecture Overhaul:
Resource management has been streamlined by delegating load-handling duties to the resource manager. Additionally, the handling of editor objects within the Bright Engine has been completely redesigned to enhance both performance and usability.

Shader Enhancements:
The adoption of Vulcan shader libraries has refined CPU and GPU communication, optimizing the process of transmitting uniform variables which previously caused GPU idling and reduced performance.

Terrain System Updates:
The terrain rendering system has been significantly revamped. Replacing the older chunked Level of Detail (LOD) system, the new continuous distance-dependent LOD system eliminates visual gaps in expansive landscapes, enhancing the rendering quality without compromising performance.

World Editor Improvements:
The World Editor has seen numerous bug fixes and optimizations:

  • Corrected the SSAO texture blur that caused screen-space artifacts.
  • Removed unnecessary shadow calculations for non-existent light sources, improving performance.
  • Fixed issues with scene depth data, emissive terrain without emission maps, and frequent wind noise texture bindings.
  • Adjustments were made to ensure the correct display of light illuminance and spotlight radii.

Feature Updates and Performance Optimization:

  • A new project upgrade feature allows automatic updates to the latest engine version, providing backward compatibility and a hassle-free user experience.
  • Performance enhancements include restructured test shaders and optimized data flows between CPU and GPU, which have reduced data throughput by about 25% and lowered CPU usage by roughly 3.5%.

Vulkan Integrations and Updates Continue
For testing purpose we utilized a temporary workaround by hard coding vertices in the shader, acknowledging the need to refine the implementation of proper vertex buffers. 

  • Employed a clever technique allowing the CPU to prepare for the next frame while the GPU finishes rendering the current frame, effectively reducing idling times
  • Began using command buffers, which, despite their complexity, enable the multithreading of nearly all rendering-related tasks. 
  • This approach significantly enhances efficiency over traditional methods used with Direct3D and OpenGL.

These developments have substantially improved the functionality and efficiency of the Apex Prototype, reinforcing its capability to support the creation of complex and dynamic 3D environments.

  • Hits: 136