UDN
Search public documentation:

VFXOptimizationSplitScreen
日本語訳
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Particles & Effects > Particles Systems > VFX Optimization in UE3 > VFX Optimization: Split Screen
UE3 Home > FX Artists > VFX Optimization in UE3 > VFX Optimization: Split Screen

VFX Optimization: Split Screen


Detail Mode Overview


UE3 currently allows for the switching between 3 detail modes. Low, Medium, and High. In cases involving effects detail modes are set for Medium, and High detail. This is used primarily for the case of split screen where draw calls can reach performance lowering levels. The primary objective being to reduce draw calls in medium detail mode by culling or reducing emission rates.

Changing the setting in the Medium Detail Spawn Rate Scale field on the emitter in cascade will reduce your emission rate, when the game is running in Medium Detail Mode. These settings can be used to reduce overdraw and draw calls depending upon requirements. In the case of split screen draw call reduction is key.

How do I determine Draw Calls?

It is possible to view Medium Detail Mode in Cascade using the view menu drop downs, or the cascadedetail.jpg icon. View mode can be set in the editor using the View menu/Detail mode settings. Change to Medium to see Medium Detail Spawn Rate Scale and you should see red text displaying the detail mode currently active. It is critical to work in Medium Detail Mode only when adjusting effects for this mode. Changes will not be visible in game by default, unless your project defaults to Medium Detail Mode.

Medium Detail Spawn Rate Scale is a multiplier, sticking to a 0-1 range will set the appropriate value. Essentially setting to .5 will halve particle emission counts, a value of 1 will use the current emission rate. The values are clamped and will not go above 1.

It is good practice to consider split screen when in the process of placing Ambient effects. If the effect is non-essential to split screen and has a high number of draw calls, it might be a good place to start reducing emission counts especially if the effect consists only of mesh emitters.

It is important to remember Draw Calls for particles are determined by material, and are a fixed cost regardless of emission count. For example, a 1 pass material on an emitter with an emission rate of 30 is only 1 draw call.

Commands


There are several commands which are useful in determining Draw Call costs.

To switch to SplitScreen Mode in PIE or the game use the command debugCreatePlayer1

If you only have 1 controller use the command ssswapControllers to jump between Players.

Enable the splitscreen overlay using the command STAT SPLITSCREEN

For particle effects, reference the Particle Draw Calls section, keeping an eye on the MeshParticles section which is where greatest gains can be made quickly by setting the MediumDetailSpawnRateScale.

View drawCalls for a given area using the command DumpParticleFrameRenderingStats

This command dumps a spreadsheet and a screenshot of where the action took place. If the STAT SPLITSCREEN command is enabled a readout of Draw Calls when the shot was taken will be visible. This screenshot is an estimation since it is taken after the data is dumped and is more of a visual reference.

Viewing the stats in the spreadsheet is straight forward, the spreadsheet should look something like this.

particlestats.jpg

In this case the fix is pretty straight fwd, we have one effect that must call a bunch of meshes and they loop spawn most likely. This can be tricky however, because if 1 effect is the primary culprit, and you wish to keep the effects current visuals there is only one option, convert the meshes to sprites.

If however the emitter is not necessary for splitscreen, set the mediumDetailSpawn rate to 0.00.

Spread Sheet stat columns are named with appropriate descriptions:

RenderTime ms
how many ms it takes to render the effect
NumComponents
how many instances of the particle system are in view and active
NumPasses
how many passes are in the material being called by the emitter
NumEmitters
how many emitters are in the particle system
NumDraws
the accumulated number of draw calls for all instances of the particle system

Back to VFX Optimization