Platform 1.0 Release

Recently, we released Platform 1.0 on our GitHub repository and here we wanted to show a little insight into the origins and future of our now public rendering library.

Platform is a wide complex system to render graphics, as it encompasses 7 graphics APIs (D3D11, D3D12, Vulkan, OpenGL, OpenGL ES, ‘PS4 Rendering API’, ‘PS5 Rendering API’ and ‘Switch Rendering API’) across 8 Platforms (Windows, Linux, Xbox One, Xbox Series, PS4, PS5, Switch and Android); all with varying standards and requirements. Platform also encompasses mathematics, memory tracking, filesystem, camera, inputs and debug rendering components that blur the line between a pure rendering API and a broader game engine-like system. Console code is stored in private submodules linked to the main repository.

Platform has undergone significant changes during the development of trueSKY 4.4 and TeleportVR, such as:

  • The addition of Raytracing functionality in D3D12.
  • Better representation of VkDescriptorSet for Vulkan.
  • Multiview / View Instancing rendering for D3D12 and Vulkan.
  • Vulkan continuous RenderPass for better GPU performance; especially on Android.
  • The switch to VMA and D3D12MA for better heap management.
  • The introduction of the TextureView system to accurately specify subresources in a texture.
  • The addition Dear ImGui for both 2D and 3D GUIs.
  • FMT logging.
  • Shader support for 16-bit types.
  • The Shader variant system allows one shader to be compiled multiple times with indifferent inputs.

These changes, along with refactoring and code reorganisation, have greatly improved the usability and feature set that Platform offers.

Sfx is the magic compiler!

Sfx is based on Microsoft Effect from D3D9, but we have expanded the idea and targeted multiple platforms and shading languages. With the Effect system, we can specify multiple shaders, passed, techniques and fxgroups to be compiled each with unique DepthStencil, Rasterizer and BlendState. Also, SamplerState is exported from the shader and is automatically generated and set when calling a shader pass.

The Sfx compiler takes shader files (.sfx) and shader include files (.sl) and uses Flex & Bison to generate intermediary shader files, like .hlsl or .glsl. As .sfx files have multiple shaders and associated states, Sfx compiles them all into one large binary and reflection file for easier handling of shader assets.

What’s new for Platform?

Platform is continually being updated and fixed to have greater stability and more features. We are keenly interested in changing some core API designs to better suit low-level explicit GraphicsAPIs like D3D12 and Vulkan. Older APIs are being sunset and there’s now a real opportunity to build an API that reflects modern graphics APIs and GPU architectures. This might include something like a Render Graph system, which would easily allow the use of Async-compute to execute complementary workloads in parallel on the GPU for more performance, instead of serialising the workloads. 

Another aspect would be the multithreaded command generations and submission to the GPU, leveraging modern multicore CPU architectures on desktop and mobile platforms.

At present, we’re placing a lot of focus on Compute due to its origin in trueSKY, but with TeleportVR, we’re now directing much of our attention to Graphics. Things like Mesh Shader and Variable Rate Shading may also appear to speed up Graphics workloads.

We’d love to hear your feedback on Platform, and tell us what you’d like to see next!

Unreal 5.4 Plugin now available!

We now have a new Unreal 5.4 plugin available! Available for both trueSKY 4.3 and 4.4, the latest plugin is available to download on our website.

New 4.4 Features – Cloud Regions

We’ve been hard at work on new 4.4 features, and in our latest update we have included our initial implementation of cloud regions. This feature allows you to create custom shapes which clouds will generate within.

Spherical regions, alongside the choice of Fill or Cull volumes to specify where you do and don’t want clouds.

We now have the option to craft unique 8-Point Shape with Custom Vertex Positions. Current shapes are Spherical, Cylinder and Rectangular. *Cumulonimbus is a WIP option and will not currently work.

These regions don’t need to be filled entirely with cloud. The image below displays a region of clouds partially filled! All our regions use our existing cloud properties, along with additional properties specific for regions.

You can use these regions together or alongside global layers! Shadows are generated on the ground and between layers automatically.

We are working hard to get new documentation available along with additional videos on our new features, for now here is a very quick example on creating a region – https://imgur.com/a/uncaBfL. But be on the look out for more examples soon! As we are still in our 4.4 beta, be aware that these features are all in their early stages and we are keen to hear your feedback. Join us on Discord to send us your feedback and anything else trueSKY!

Later this month we will have a larger bug fixing patch for 4.4, alongside trueSKY Unreal Linux support!

55% off Dash ending soon!

Don’t miss out on the great Dash promotion where you can get 55% off for a full year, using the code TRUESKY at : https://cutt.ly/vw0NCQHX

They also offer a free 14 day trial at polygonflow.io! Give it a go, check out our collaboration video below and decide for yourself if Dash and trueSKY can help with your world building in Unreal!