Overview
Today I had a simple idea: to recreate a CryEngine-era starter template island (it's strange that all those CryEngine goodies have vanished - otherwise I'd just link a YouTube video) in Godot, as a kind of inspirational playground.
A modern equivalent would be something like this open-world landscape environment.
The idea itself is straightforward:
- A 2 km x 2 km island
- Millions of trees (tall, short, and shrubs)
- An ocean
- A sky
The Challenge
Creating the island itself was easy. The problem came when I tried instancing around 10,000 trees. Each tree mesh had about 240K faces, and even in Blender, instancing them with linked copies slowed the editor to a crawl (not surprising, though I had forgotten how slow Blender can get - that's why I once experimented with Clarisse).
Importing that into Godot proved impossible: the .blend file was only 6 Mb, and the editor just hung.
When comparing 5,000 MeshInstance3D
objects with 5,000 instances in a MultiMeshInstance3D
, the performance gain was minimal. This reminded me of a fundamental problem I'd almost forgotten: even if you reduce draw calls, fragment shading still happens, and rendering all those meshes at once causes severe overdraw.
So, does this mean densely populated environments are not trivial in Godot? I do miss Unreal's shadow quality, but when it comes to large worlds, its automatic HLOD optimizations start to look tempting again.
Then I remembered all the headaches with Nanite, Lumen, and other Unreal frustrations.
Am I doomed?
Future Work
As it turns out, Godot does support HLOD, along with plenty of optimization options.
Ultimately, everything depends on the purpose and final effect. There's no free lunch. This also highlights how little raw GPU processing power has advanced for single workloads - despite the massive petaflops of modern DGX systems, most of that is geared toward distributed or server-scale computing.
If the goal is a stylized, large-scale world with detailed models but limited materials, Godot can probably handle it just fine.
Top comments (0)