How to improve render performance without sacrificing render quality/features?

Post Reply
User avatar
Linuxdirk
Member
Posts: 3435
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

How to improve render performance without sacrificing render quality/features?

by Linuxdirk » Post

Heyo :)

With all the new and cool render features, like shadows, water reflections, specular lighting, etc. I get a pretty decent looking result.

d.jpeg
d.jpeg (812.75 KiB) Viewed 2823 times

This is very great, but results in extremely low FPS around 30-40 on average, sometimes down to low twenties. My machine isn’t the newest anymore. It’s from circa 2015, sporting 16 GB of DDR3 RAM and a GTX 1080, powered by an Intel Core i7 4790K.

When turning off most of the modern render settings I get constant 60 FPS. But this is of course not what I have in mind. I’d like to keep the cool new visuals but improve my framerate.

So, lowering render distance, or disabling specific shaders is ruled out: what other options hidden deep inside the advanced manual configuration do I have?

Here are the relevant settings from my configuration file:

Code: Select all

# Graphics (2K = 2560x1440)
screen_w = 2560
screen_h = 1440
fsaa = 0

# Visuals
mip_map = true
leaves_style = fancy
enable_shaders = true
enable_weather = true
wieldview_node_tiles = false
wieldview_update_time = 2
enable_node_specular = true

# Shadows
shadow_filters = 2
shadow_map_texture_size = 4096
enable_dynamic_shadows = true
shadow_levels = 4
shadow_map_texture_32bit = true
shadow_map_color = true
shadow_strength_gamma = 0.8
shadow_soft_radius = 15.0
shadow_update_frames = 16
shadow_map_max_distance = 288.0

# Bloom
enable_bloom = true
enable_bloom_debug = false
bloom_intensity = 0.2
bloom_strength_factor = 0.5
bloom_radius = 5.5

# Volumetric light
enable_volumetric_lighting = true
enable_auto_exposure = false

# Water shaders
enable_water_reflections = true
enable_waving_water = true

# Clouds and Sky
soft_clouds = true
cloud_radius = 26
fog_start = 0.6
enable_fog = true

# All viewing distance related settings
viewing_range = 400
max_block_send_distance = 25
block_send_optimize_distance = 13
max_block_generate_distance = 25
server_side_occlusion_culling = true
client_mapblock_limit = 15625
max_simultaneous_block_sends_per_client = 128
I am not looking for exclusively only changing the settings posted, they’re just here for reference.

Any tips and tricks are welcome!

Thanks in advance!

User avatar
Blockhead
Moderator
Posts: 3076
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: How to improve render performance without sacrificing render quality/features?

by Blockhead » Post

You should try to determine whether your problem is CPU or GPU bound. Often with Luanti it's the CPU, especially historically. I haven't done comparisons between 5.10 and earlier.

Have you played with the mesh chunk settings as well? If you are managing alright with CPU usage but low on GPU usage, it should rebalance it in your favour.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂

User avatar
Linuxdirk
Member
Posts: 3435
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: How to improve render performance without sacrificing render quality/features?

by Linuxdirk » Post

Thanks for pointing out the mesh chunk configuration!

This unfortunately doesn’t really change anything to the overall better. I feel like I get a bit more frames when not moving or looking around (I tested a very demanding area of the world and got ca. 40-45 frames instead of 20-30). But I clearly see micro lags while moving or looking around, even in areas where I get constant 60 FPS.

CPU seems to be pretty unaffected when Luanti is running:

swappy-20241207_095321.png
swappy-20241207_095321.png (34.12 KiB) Viewed 2791 times

Astrobe
Member
Posts: 721
Joined: Sun Apr 01, 2018 10:46

Re: How to improve render performance without sacrificing render quality/features?

by Astrobe » Post

A little late to the party but... what works for me:
  • Select the "lowest" shadows setting then reset the shadow texture size to default (2048). If neither you or your machine can stand the result, you are better off disabling the dynamic shadows entirely. If your machine can handle that, the you can retry with a higher base setting ("low", "medium" etc.).
  • "shadow_update_frames" in advanced settings is a key parameter one would rather set to 1 to prevent shadows from blinking. This parameter seems to be ignored in 5.11 specifically (bug?), but works again in 5.12. The default (16) is bad even if your rig can sustain 60 FPS. Set it to 1 if you can, maybe 2 if you need to spare some power. But capping the FPS to 50 may be a better compromise. Hopefully some sort of "double-buffering" for dynamic shadows will eliminate this blinking entirely.
  • To determine the best value for the chunk size, set it to a quite high value (e.g. 10); you should notice "hick-ups" at regular intervals. Now reduce the value until you don't notice them anymore, and then reduce it by 1 again to spare some computing power for more complex scenes.
  • "mesh_generation_interval" is another parameter with a default value which is not nice to "modest" configurations. Furthermore it specifies a delay in milliseconds, which makes it difficult to tune with regard to FPS. A value from 1 to 5 can help with FPS drops when (re)loading map blocks (or chunks), but a value too high can increase the number and duration of temporary "holes" in the landscape.
  • Some network-related settings still apply to the singleplayer/offline case and can cause visual defects such as "holes" in the landscape as well. Ideally Luanti would determine when it is not really used as a server, or one could have an offline/LAN/WAN profile selection like for dynamic shadows to help with setting those somewhat arcane parameters. I am talking about the last section of the quoted config, for instance enabling server_side_occlusion_culling in an offline context might partially duplicate the work.
That being said, there is a constant effort to optimize while improving a lot the in-game visuals, which allows to run a server and 2 clients decently even on a 10+ old machine, and I appreciate that a lot.
My game? It's Minefall.

User avatar
Linuxdirk
Member
Posts: 3435
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: How to improve render performance without sacrificing render quality/features?

by Linuxdirk » Post

Astrobe wrote:
Sun May 25, 2025 07:46
A little late to the party but... what works for me:
Thanks! I’ll try to tweak my setup a little with this in mind.
Astrobe wrote:
Sun May 25, 2025 07:46
That being said, there is a constant effort to optimize while improving a lot the in-game visuals, which allows to run a server and 2 clients decently even on a 10+ old machine, and I appreciate that a lot.
Absolutely! With 5.12, my FPS are now around 50. It’s finally mostly playable again! 👍

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests