BenchMark 2. Convenience Store

The next test is with a complete building and contents. It tests the various techniques of editing and rendering the buildings in the ways described on page 1.

These run on UE5.3 pre-release 1 (seems to give good consistent results if I hold my breath and don’t load anything else, same as 5.2) and with Epic scalability on the RTX3070ti. This store consists of 457 objects, 31 of which are lights or reflection and 426 static meshes.

1. As singular actors (in this case most are blueprints with 1 or 2 meshes)

In this test, the default actors are used with the layout from the demo level. Most of these actors are blueprints which contain one or more static meshes configured from settings in the blueprint.

Editing the store wasn’t snappy fast, but after a long pause when copying – editing wasn’t too bad.

With 7 stores ranging off into the distance, the frame-rate was around 55FPS.

Timings:

Render: 18.13 milliseconds (55.16 FPS)
Dup1: 3.54 seconds
Load: 16.52 seconds
Save: 9.01 seconds
Play: 3.91 seconds

Ratings:

Rendering: 2/5
Editing: 3/5
Playing: 4/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 2.2/5


2. Prefabs created with default tool

The next test was to create a Prefab Blueprint using the default “Convert Selection to Blueprint Class” tool.

Like the first test, the editing was unusable – 5-20 second pauses when trying move etc, playing didn’t have a long delay as there was less objects than the previous extreme test. dragging the prefabs was extremely slow.

Timings:

Render: 16.51 milliseconds (60.56 FPS)
Dup10: 16.61 seconds
Load: 1.67 seconds
Save: 11.75 seconds
Play: 3.51 seconds

Ratings:

Rendering: 2/5
Editing: 1/5
Playing: 4/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 1.8/5


3. MergeActor Instancing

This test uses the MergeActor Batch Instancing tool to create instanced static meshes of the store. The store is then repeated 7 times in a similar manner to the previous tests

The tool misses some of the assets and they disappear – the test ignores this. It also doesn’t do the lights, decals and a few other things – those need to be manually duplicated and moved.

Editing them wasn’t too bad as far a speed, but having to go and add the other bits slowed the process, and the editor down.

The rendering speed doesn’t look like it’s much better in this test. Even though the static meshes are instanced, they are only instanced per store, so there are still multiple draw calls for each mesh.

Timings:

Render: 13.34 milliseconds (74.96 FPS)
Dup1: 1.68 seconds
Load: 7.25 seconds
Save: 1.80 seconds
Play: 2.00 seconds

Ratings:

Rendering: 3/5
Editing: 2/5
Playing: 4/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 2.2/5


4. MergeActor Merged Mesh

This test merges the walls, floors and ceilings – and uses the doors, populated shelf meshes and other assets from the pack.

Editing it was pretty good – there are less actors that the original so a slight speed up. Playing is good too. Rendering is ok – there are a lot of lights and this is lumen so it’s doing pretty good (they all are).

Timings:

Render: 13.06 milliseconds (76.59 FPS)
Dup1: 2.10 seconds
Load: 7.99 seconds
Save: 1.41 seconds
Play: 2.31 seconds

Ratings:

Rendering: 5/5
Editing: 4/5
Playing: 5/5
Variety: 0/5 (cannot introduce variety into a static mesh)
Interact: 0/5 (cannot interact with individual components of a static mesh (easily))

Average: 2.8/5


5. Merged into a PackedLevelActor

This store uses a multitude of lights, reflection cubes and decals – none of which are able to be converted into a Packed Level Actor – it’s just static mesh instances. For the test I had to copy/paste all those objects back into the scene after placing the PLAs.

Timings:

Render: 13.21 milliseconds (75.70 FPS)
Dup1: 1.37 seconds
Load: 2.14 seconds
Save: 1.45 seconds
Play: 1.98 seconds

Ratings:

Rendering: 3/5
Editing: 5/5
Playing: 5/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 3/5


6. rdBPtools prefab with default instancing

This test converts the complete store into a Prefab using rdBPtools and it’s default instancing.

Creating the prefab was fast, and editing with it is good – there is an initial pause when duplicating (recreating) but it’s not as long as the individual actors. Moving them is smooth. Rendering was faster than the Batch Instances at around 86FPS.

Timings:

Render: 11.52 milliseconds (86.82 FPS)
Dup1: 3.92 seconds
Load: 4.23 seconds
Save: 1.20 seconds
Play: 1.96 seconds

Ratings:

Rendering: 4/5
Editing: 4/5
Playing: 5/5
Variety: 5/5 (randomization build into rdBPtools Prefab classes)
Interact: 1/5 (potential to add variety with custom blueprints/c++)

Average: 3.8/5


7. rdBPtools prefab with rdInst instancing

This is the final test using rdBPtools to create a prefab with rdInst instances.

It was much easier to edit, faster and smoother – and rendering is much faster than the other methods. Because there are so many lights in the test (250 odd) there was still a slight lag with editing.

Timings:

Render: 10.44 milliseconds (95.77 FPS)
Dup1: 3.02 seconds
Load: 2.45 seconds
Save: 1.10 seconds
Play: 0.99 seconds

Ratings:

Rendering: 5/5
Editing: 4/5
Playing: 5/5
Variety: 5/5 (Randomization built into rdInst – fast c++)
Interact: 5/5 (rdInst has tools to convert instances to actors (and actor pooling) and back to instances)

Average: 4.8/5