Realtime Mesh Component
The RealtimeMeshComponent or more commonly RMC, is a functional replacement to the ProceduralMeshComponent and DynamicMeshComponent. The RMC is more efficient at rendering than either component while also being far more flexible than both components. You can still use all the DynamicMesh Geometry Scripting tools while enjoying the benefits of a faster renderer, or you can take a more direct approach and feed raw mesh data into the component. RMC Documentation
For the CPU backend, we support both RealtimeMeshComponent and ProceduralMeshComponent (PMC), with one selected by the compiled plugin configuration. Enabling or disabling the RealtimeMesh plugin controls that CPU choice (see Installation).
When GPU is selected on the deformation component, the plugin uses its own GPU renderer whether RealtimeMesh is enabled or not. GPU LOD support does not require RMC. See GPU Backend. CPU (Deprecated) remains available for existing projects.
There's also a paid version of this plugin available on the marketplace, but we have not yet had the chance to test this version for compatibility with our component. We currently do not use any advanced features of the pro version like collision, nanite or lumen but this can change in the future.
Benefits / Features
The following RMC features concern the CPU-RMC workflow. The quoted performance ranges describe RMC versus PMC, not measured guarantees for this plugin's GPU backend:
- LOD Support, allowing engine maximum of 8 LOD levels and full dithering support
- 50-90% Lower memory usage than PMC
- 30-90% lower render thread CPU time
- Static draw path for maximum rendering performance (via optional setting)
- Dynamic Draw path for efficient frequent updates (via optional setting)
Installation
- Get the free "Realtime Mesh - Core" plugin from the FAB Marketplace.
- Download and install the plugin to your engine using the Epic Games Launcher.
- (Optional) Move the downloaded plugin to your project's plugin folder.
- Default Installation Location:
C:\Program Files\Epic Games\UE_[version]\Engine\Plugins\Marketplace\
- Default Installation Location:
- Enable the RMC plugin in your project: Edit > Plugins. Save and close the editor.
- Make sure your
uprojectfile contains at least two plugin entries, one for "RealtimeMeshComponent" and one for "DeformableStaticMesh" that are both enabled as you can see in the image below:
- Open your project e.g. with Visual Studio and build it. That's it.
- There should be a message like "DeformableMeshComponent: Using RealtimeMeshComponent!" in the build output (when building the project).
- Components using the CPU backend should use RealtimeMeshComponent now. You can double check the compiled CPU configuration by visiting the project settings and checking
ActiveMeshType. Components configured for GPU still use the GPU renderer.- Alternatively there is also a
MeshTypeproperty inside every DeformableMeshComponent.
- Alternatively there is also a
- In case this does not work, try to clean your solution (delete intermediate + binaries folder of your project and plugin) and rebuild your solution.
- When switching from PMC to RMC (or vice versa) we actually un-/define a C++ preprocessor
USE_RMCand this switches everything inside our component and the tool to the respective mesh component type. This logic is triggered inside the plugin's build.cs file.
- When switching from PMC to RMC (or vice versa) we actually un-/define a C++ preprocessor