Performance¶
We have worked hard to make sure trueSKY will run on many different architectures, and we know each of these have different capabilities. That is why trueSKY’s setting can be adjusted to make it run as efficiently as possible, talking up only a few ms in processing time.
Use the Blueprint function GetProfilingText to get GPU and CPU timing numbers for trueSKY as a tree. trueSKY performance is highly dependent on your choice of settings. Once you have good settings for a given target hardware setup, performance will be consistent - i.e. there won?t be spikes or hitches. For PC, you may want to make some of these settings controllable for the end user. For console hardware, it is usually best to choose the settings based on your target GPU time for skies, then lock them down.
Unreal Specific Profiling¶
trueSKY for Unreal has a built-in GPU and CPU profiler that shows detailed performance information. To enable it, use the console command
r.truesky.profiling 1
Profiling is displayed as a tree. You can append the maximum detail levels for the GPU and CPU to the command, e.g.
r.truesky.profiling 1 7 5
This will show a profiling tree seven levels deep for the GPU, and five levels deep for the CPU.
To output the profiling data to the Log, use
trueskyprofileframe
Depending on the output, you may want to adjust different trueSKY parameters for optimal performance.
High Cost Settings¶
We are always aiming to increase performance where we can. This section may change based on improvements we make.
Clouds¶
Maximum Cloud Resolution¶
At resolutions over 1024, the cost can be very great. There is minimal difference from 1024 and upwards, usually 512 is optimal for most scenarios.
Maximum Cloud Distance¶
Cloud distance can produce a heavy performance impact, but usually is only noticed at high altitudes. If you have increased this value, this is one of the first settings you could likely reduce.
Render Grid Size¶
Grid size can be our most expensive variable if set to a low value such as (0.1, 0.1), an increasing it can help improve performance drastically. Increasing grid size will improve performance, but will make the grid more noticeable amongst the clouds. To counteract that, you can adjust the different noise values.
Default Number Steps¶
Reducing the number of ray-tracing steps from within the clouds will give a helpful performance boost.
Amortization¶
Spreading the cost of rendering over multiple frames is a great way to improve performance. If you or the clouds are moving quickly however, high Amortization setting can make the clouds appear pixelated as they translate across the screen.
Sky¶
Amortization¶
Just like the cloud Amortization, spreading rendering costs for the atmosphere will always help improve performance, but is not recommend for fast moving scenes.
Water¶
Resolution¶
The resolution of the water (Found in the trueSKY Actor Settings) is again an obvious value. (In some versions, Half-Resolution has an view issue that is currently being resolved)
Screen Space Reflections¶
Screen-space Reflections on a boundless ocean can produce a large performance hit.
Profile Buffer Resolution¶
If you have noticed your water “shimmering”, it may be because you need to increase your buffer resolution. A low minimum and high maximum waves mean you will need to increase the resolution for the water to stay looking great.
Low performance¶
Create a SkyDome with trueSKY (Unreal)¶
With trueSKY, you can create an Cubemap of the sky. While you will lose some visual fidelity and the ability to move through the clouds, this is a great way to incorporate high quality, customised clouds with a minimal performance hit.
This is currently done through a blueprint, RendertoCubeMap. Select your cubemap resolution, and the cubemap you want to draw to.
Known Performance Issues¶
We are currently aware of an issue with older graphics cards, which in full-screen can cause severe frame drops. We are working on a solution, which should boost performance for all graphics cards.