rdBPtools Tutorial 1.2 – Setting StaticMeshes Instance Configuration
Last Updated: 9th December 2024
Tutorial created using rdBPtools version 1.40
When creating prefabs, things like StaticMeshes materials and reverse-culling are taken from the actors. There are some settings specific to ISMs that aren’t stored by actors, so rdBPtools has a system of storing these settings per StaticMesh in their Assets.
The values set as defaults are going to be good for almost everything, but there are times when you’ll want to customize to the next level.
You to configure any/all Static Meshes with their own Instancing Settings, like shadows, culling, lightmaps etc.
The information is stored in the StaticMesh itself and is transported along with the mesh, so once you made these settings you don’t have to make them again.
If you’re wanting to have the same StaticMesh with different default settings, Duplicate the Mesh and set each copy to how you want them rendered, just remember which is which. The values contained in Sids override these settings, so you can configure any variety of settings from them at any time.
To Change these settings, just select as many as you wish in the Content Browser and Right-Click – select “Instance Settings…” from the rdBPtools submenu in the Content Menu. If you’re using rdInst, use the “Instance Setings…” from the rdInst menu – both are stored independently.
This opens the Window with your Options. To find out more about each option, look at Epics Documentation on their Foliage Instance Settings:
The options in this window support Indeterminate values, so if you change some values with a selection of meshes with various settings, the unique values will not be changed.
Not all the options are available for BP based Prefabs, the image below shows options that do work with BP.
Here’s a list of the various options and what they do.
Start/End Cull – The distance in world units (100 units = 1 meter) to distance cull the instance. For StaticMesh Components, the End Draw distance is calculated as the middle of the start/end range. 0.0 for both means don’t cull.
WPO Cull – The distance to disable WPO on the instance materials (stops VSM invalidation at that point). 0 = don’t cull.
Min Draw – The distance from the camera to start rendering from. For example, a value of 1000 would only start rendering the instances/Meshes when they’re 10 meters away. This can be a useful tool when combined with a mesh with the same end cull distance, swapping from one to the other just from the MinDraw and Cull values. Note that for ISMCs and HISMCs the distance is from the center of the bounding box of all instances rather than per-instance.
Nanite Prog – This is new to UE5.5. It specifies the distance from the camera at which to stop rendering using the ProgrammableRasterizer which handles things such as masking. Setting this value allows Nanite meshes to swap to opaque at a distance.
MinLOD – The minium LOD to start rendering with. The higher the value the lower-poly the Non-Nanite mesh will be.
RandomSeed – The Random seed for the Instance or StaticMesh Component.
LightChannels – You can choose which light channels to use for shadows etc.
Mobility – The Mobility type for the StaticMeshes – if you’re using Baked Lighting, make these “Static”. Note that you’ll also need to make your entire prefabs static as they default to Movable – just right-click on the prefab and select the “Mobility->Static” sub-menu option in the rdBPtools menu.
Collision – The type of collision to use for the Meshes. Note that if you have collisions turned on with StaticMesh Instances, it can have an impact on the performance of spawning and transforming them.
CustData – The number of floats to store for each instance.
Collision Profile – The Profile to use for Collisions.
Shadows – Various Flags to control how shadows are rendered – or not.
Shadow Invalidation – The Type of Virtual Shadow Map invalidation to use for the mesh. Setting this to “Static” can be a great performance boost – but stops things like WPO wind movement from being rendered on the shadow. Having a mixture of some meshes being Static and some Dynamic can work well.
Receives Decals – When ticked the SM or ISMs will accept decal rendering
Disable Collision – A quick flag to disable all collision on the ISMC.
CanEverEffectNavigation – Whether this component can potentially influence navigation – used for StaticMeshComponents more than Instances.
HasPerInstanceHitProxies – Used for InstanceComponents – when ticked, each instance stores a HitProxy which is used for Editor based selection and editing.
RayTracingFarField – When ticked, this StaticMeshComponent or ISMC will be available to ray trace as a far field primitive even if hidden.
AffectDynamicIndirectLighting – When ticked, the SM or ISMC influences the Dynamic-Indirect Lighting.
AffectDistanceFieldLighting – When ticked, the SM or ISMC influences the Dynamic-DistanceField Lighting.
Selectable – When ticked, the SM or ISMC instance (when PerInstanceHitProxies is enabled) can be selected in the Editor.
WPO Writes Velocity – This Flag is used to remove smearing when using temporal AA/Up-scaling techniques.
RenderInMainPass – When ticked, renders the Mesh in the main render pass (defaults to on). It’s possible to simplify shadow rendering for Non-Nanite SMs (not ISMCs or HISMCs) by using a pair of meshes, one high detail mesh which you render in the MainPass, and one lower poly, preferably opaque, no materials and render than in the DepthPass for the shadows. Probably the most use is for when using RVTs and StaticMeshes such as roads.
RenderInDepthPass – When ticked renders the Mesh in the depth render pass (defaults to on). The DepthPass is used for shadows etc.
EvaluateWPO – When unticked, the meshes materials will ignore WPO.