Professional Documents
Culture Documents
The In-Camera VFX Production Test is a Virtual Production sample that uses Unreal Engine and an LED
Volume to feature traveling vehicle shots, multi-camera setups, and multi-user setup for making quick
changes between takes. This sample was created in collaboration with filmmakers' collective Bullitt. The
team produced final pixels in-camera over four days on Nant Studios' LED stage in Los Angeles.
Multiplayer Shootout
DMX Previs
Infiltrator Demo
Meerkat Demo
MetaHumans
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
ea u a s
Photorealistic Character
Watch on
The short produced from the project.
Exploring and modifying the sample will help you learn how you can:
Structure your Virtual Production project so multiple artists can collaborate simultaneously on scenes
during production.
Use GPU Lightmass with Multi-User to bake lighting on one computer and share to all computers in
the session for faster lighting changes.
Render the inner frustum using mGPU on a multi-screen nDisplay cluster.
Apply color correction and OCIO profiles to your nDisplay renders to achieve the desired look for each
scene.
Build the UI of your Remote Control Web Application to meet your production's needs and make quick
changes on set from a tablet.
Apply cvars to improve performance in the project.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
This guide covers how the production team used Unreal Engine's features in the project to make the final
result. Use this project as an example for designing your production. For learning the basics of in-camera
VFX, refer to the In-Camera VFX Quick Start. For behind the scenes footage of this production, refer to the
Unreal Engine Spotlight.
Four nDisplay nodes were used to render the following volume, with 2 LED panels assigned to each node:
This real production sample is both CPU-intensive and GPU-intensive so it can render on this large LED
volume at a camera-ready resolution. The diagram below shows every device contributing to the production
and the connections between devices on stage. To learn about the roles of each device in the shoot, refer to
In-Camera VFX Overview for details. To learn what hardware is recommended for an in-camera VFX shoot,
refer to In-Camera VFX Recommended Hardware.
Getting Started
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
In addition to the nDisplay Config that represents the topology of the real stage used in production, a
simple nDisplay Config is included in the project so you can view the scenes on a single computer without
an LED volume. This section shows how to use the simple nDisplay Config to render the scene and make
changes in a multi-user session on a single computer.
Follow these steps to launch an instance of the Unreal Editor and another instance of Unreal Engine with
the nDisplay renderer in a multi-user session on your computer.
1. Download the In-Camera VFX Production Test sample project from the Epic Games Launcher under
the Learn tab.
If this is your first time running Switchboard, the Add New Switchboard Configuration window
appears when Switchboard launches.
If you have run Switchboard before, click Configs > New Config in the top left corner of the
window to open the Add New Switchboard Configuration window.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
Adding a new Switchboard configuration
a. Set Config Path to the name and location where you want to store your Switchboard
Configuration file.
b. Set uProject to the location of the In-Camera VFX Production Test sample project file,
TheOrigin.uproject.
c. Make sure Engine Dir is pointing to the Engine folder for your Unreal Engine.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
a. Click Add Device again and select Unreal from the dropdown.
b. In the Add Unreal Device window, set the IP Address to the local computer: 127.0.0.1.
9. Click the Connect to Listener button for the nDisplay Render_2 device to connect to
SwitchboardListener.
10. Click the Start Unreal button for the nDisplay Render_2 device to launch Unreal with the nDisplay
renderer in a multi-user session.
11. All windows automatically minimize and the full screen nDisplay render appears. The view might be
dark but you will change the view in a later step.
12. Open the minimized Switchboard window, and click the Connect to listener button for the Unreal
device to connect to SwitchboardListener.
13. Click the Start Unreal button for the Unreal device to launch an instance of the Unreal Editor in the
Multi-User Session.
14. In the Editor, on the toolbar click Open Level Snapshots Editor.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
15. In the Level Snapshots Editor, double-click the CaveEntrance_NantStudiosSimple_SetupA Level
Snapshot and click Restore Level Snapshot.
16. In the Unreal Editor's World Outliner panel, select the nDisplay Root Actor NDC_NantStudios_Simple to
see its updated position.
Before Level Snapshot restore
After Level Snapshot restore
17. The nDisplay view updates with the changes you make in the Unreal Editor instance.
18. Select InnerCamera_A under the nDisplay Root Actor and move it around the scene to see the inner
frustum move in the nDisplay view.
Moving InnerCamera A around the scene
These steps showed how to run the project on a single computer. You can use similar steps and modify the
nDisplay Config that represents the real stage to test on your own LED volume.
The production leveraged multi-GPU to improve performance during the shoot. Rather than relying on a
single GPU to render all viewports, a second GPU was dedicated to rendering only what appeared in-
camera, to allow for the highest fidelity where it counted most. Refer to the nDisplay Overview to learn how
to use mGPU in a project.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
TIP
Unreal Engine includes the Stage Monitor tool so you can receive reports associated with
specific events from all the nDisplay cluster nodes in one application. You can have the tool
enter a critical state while filming so you can easily notice events that could affect your shot. For
more on how to use this tool, refer to Stage Monitor.
Remote Control
With Remote Control, the production team, while on set, was able to control the displays and virtual
environment dynamically from a web application running on a tablet. Exposed controls from the project
included lighting, color grading of the displays, and modifying the position and rotation of the stage in the
virtual environment.
In the Getting Started section, you used an Unreal Editor instance to make changes to the scene and see
the updates immediately in the nDisplay render. This section shows how to do the same thing using the
Remote Control Web Application designed for the project.
Follow these steps to view the Remote Control Web Application designed for this project, and move the
nDisplay Root Actor remotely:
1. In the Content Browser, go to TheOrigin > Content > Tools > RemoteControl and double-click
RCP_NantStudios to open the Remote Control Preset in the Remote Control Panel.
TIP
If there is no option to launch the web application in the Remote Control Panel, ensure
the web application was built properly. You may need to modify the Remote Control
section of the Project Settings to build it on your computer. Scan the Output Log in the
Unreal Editor for errors.
3. You might need to rebind properties to work with the level and stage you have open.
5. Move the joysticks to change the location of the nDisplay Root Actor.
Moving the joystick to change the nDisplay Root Actor location
The Remote Control Web Interface is a plugin that provides a companion web application to Remote
Control. The web application includes a UI builder so you can create and customize your own web
application without any code.
To switch to the UI builder of the Remote Control Web Application, toggle the Control button to Design, and
modify the UI for the project. Save the Remote Control Preset Asset to save changes to the Remote Control
Web Application's UI design.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
The following list describes the controls exposed in each tab of the Remote Control Web Application
designed for this production.
Stage: Combines the controls for the Stage Position and Rotation within the Level.
Stage controls
Viewport Settings: Combines the controls for the global Viewport Screen Percentage and per-viewport
Screen Percentage parameters.
Color Correction: Combines the controls for global Color Correction and per-viewport Color Correction
parameters.
Snapshot: Shows all Level Snapshots in the project, and combines controls for taking and applying
Level Snapshots. See Level Snapshots for more details.
In order to preserve accurate and consistent color across the pipeline, the art and stage teams leveraged
OpenColorIO (OCIO) to standardize color space conversions. These color space conversions accounted for
display differences between monitors, LED panels, and production cameras.
A sample OCIO configuration and its look- up tables (LUTs) are included in the OCIO Plugin. This project has
an example OCIO Configuration Asset that references this OCIO configuration and is assigned to both
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
nDisplay Config Assets. You can find the OCIO Configuration Asset in TheOrigin/Content/OCIO.
TIP
To learn more about creating OCIO configurations and color space conversions for your
displays, see In-Camera VFX Camera Calibration.
Follow these steps to use your own OCIO configuration in the project:
1. In the Content Browser, right-click and select Miscellaneous > OpenColorIOConfiguration to create a
new OpenColorIO Configuration Asset.
3. In the Asset Editor, under the Config section, set the Configuration File field to the path of your OCIO
configuration file on disk.
5. When the OCIO configuration is successfully loaded, expand the Color Space section.
6. Add the Source and Destination color spaces you wish to use. The options available are determined
by the OCIO config you specified.
7. To apply this configuration to your nDisplay viewport, open the level containing your nDisplay Config
Asset, and search for OCIO in the Details Panel of the actor. Ensure that you have Enable Viewport
OCIO set to true.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
b. Set the Source and Destination color spaces.
These steps demonstrate how to add your own OCIO configuration to the project. You can also set OCIO
configurations per viewport and separately on the inner frustum. For more information, refer to Color
Management in nDisplay.
The production team used the new GPU Lightmass feature to bake the scenes' lighting and thus minimize
how long the production had to wait for lighting changes in their multi-GPU and multi-user environment.
Light baking occurred on a single multi-GPU workstation and then was distributed over the network
through the multi-user session. This meant that the scene could be baked quickly and reloaded on the LED
walls without needing to close and relaunch the cluster.
Follow these steps to use GPU Lightmass to bake lighting for the scene:
1. In the Toolbar, click the arrow next to Build and select GPU Lightmass from the dropdown.
2. In the GPU Lightmass window, click Build Lighting to begin your bake.
3. When the lighting finishes building, in the main menu choose File > Save All to transmit the changes
to the other computers in the multi-user session.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
TIP
Instead of sharing all changes with the other computers in the multi-user session, you can also
choose what changes to transmit.
2. Select only the levels and build data you want to save and transfer.
3. Click Save Selected to transmit the changes to the other computers in the multi-user
session.
For more on the settings you can change for your lightmass bakes, refer to GPU Lightmass.
NOTE
Transferring GPU Lightmass bakes through the multi-user session is an experimental feature.
Scenes that produce large BuildData files may experience issues with the transfer. If this
happens, you can:
2. Through source control, sync the changes to your render nodes to distribute the updated
lightmaps.
Level Snapshots
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
The production team used Level Snapshots to save configurations of the Actors in a Level for each scene.
Once Level Snapshots were created, the team was able to restore the scene later to exactly how it was set
up for a specific shot. Level Snapshots also track changes to the nDisplay Root Actor, so modifications to the
inner frustum and color grading can be saved and applied to the nDisplay renders at any time.
The following sections describe how to use the filters and presets included in the project. To learn about
creating your own filters and other features in the tool, refer to Level Snapshots.
Included in the project is an example Blueprint Level Snapshot Filter that lets you filter Actors in the Level
Snapshot changes by their Class. You can find the filter LSF_FilterByClass in
TheOrigin/Content/Tools/LevelSnapshotFilters. This section shows how to use this filter in the project.
Follow these steps to filter Level Snapshot changes and apply them to your project:
1. In Unreal Editor's Content Browser, go to TheOrigin > Content > StageLevels > NantStudiosSimple >
StageLevels and double-click CaveEntrance_NantStudiosSimple to open the Level.
2. In the Toolbar, click the arrow next to the Level Snapshots button and select Open Level Snapshots
Editor from the dropdown.
3. There are two Level Snapshots already created for the Level CaveEntrance_NantStudiosSimple.
Double-click CaveEntrance_NantStudiosSimple_SetupA to see how the Actors saved in the Level
Snapshot differ from the current state of the Level.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
4. Click Filter Group.
5. Click Add Filter and in the dropdown choose Blueprint Filters > LSF Filter by Class.
7. In the Default section next to Class, click the dropdown and search for Light Card.
9. Now, only changes to Light Card Actors are shown. To turn off the filter, right-click the filter and select
Ignore Filter.
10. Click Refresh Results and see the nDisplay Root Actor appear in the list again.
With Level Snapshot Presets, you can set up logic using Blueprint and C++ filters and save it as a preset.
Later, you can load the preset to use this logic again. Included in the project is an example Level Snapshot
Preset located in TheOrigin/Content/Tools/LevelSnapshotPresets.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
This preset strings multiple instances of the Filter by Class Blueprint Filter together with the OR boolean so
only Actors that match any of those Classes will appear. The Classes used in the preset are: LightCards,
Stages, Cameras, SyncTestBall, ColorCorrectRegion, and PostProcessVolume.
Follow these steps to use the Level Snapshot Preset in the project.
1. In the Content Browser, go to TheOrigin > Content > StageLevels > NantStudiosSimple > StageLevels
and double-click CaveEntrance_NantStudiosSimple to open the Level.
2. In the Toolbar, click the arrow next to the Level Snapshots button and select Open Level Snapshots
Editor from the dropdown.
3. There are two Level Snapshots already created for the Level CaveEntrance_NantStudiosSimple. Click
Load/Save Filter and choose ExampleStagePreset.
5. When the Level Snapshot is opened, only the Actors that fit the filter loaded from the preset are
shown.
Project Structure
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
The In-Camera VFX Production Test is a great example to see how to structure an Unreal Project for Virtual
Production. The following folders define the overall structure for the project's content and separate it into
relevant categories.
[Assets[(#assets)
Envs
OCIO
StageLevels
Stages
Tools
Assets
This folder typically contains all assets for creating Characters, Environments, and FX. Level Assets are not
included here. The following list is how the assets were categorized for this sample project.
Atlases
Decals
FX
IES
Landscape
Materials
MS_Presets
Props
Rocks
Scatter
Sky
Textures
Vegetation
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
Environments
CaveEntrance
CavePath
SpaceJunkyard
Environment Structure
Since source control only lets you exclusively check out binary assets, such as .umap files, each artist
working on an environment at the same time must work in their own level. The solution to this is to divide
an environment up into multiple sublevels based on the type of Actors in each.
For example, a lighting artist would work in the lighting sublevel, and an FX artist in the FX sublevel. It is
also common to have multiple GEO levels that divide the environment up into regions, each being worked
on by a different artist. The number and types of sublevels used should be dependent on the needs of the
production.
The following are the folders used for each environment in this project:
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
OCIO
This folder contains the OpenColorIO Configuration Assets. There is one Asset for this project:
ExampleOCIO. For more details on using OCIO in this project, refer to the Color Grading and OCIO section
on this page.
Stage Levels
The folder contains all the Level Assets that have both the environment and stage Actors. Open these
assets when you want to render with nDisplay. The stage levels are categorized by the stage used in the
Level Asset. This sample project uses the following structure to match the stages:
NantStudios
CaveEntrance_NantStudios
CavePath_NantStudios
SpaceJunkyard_NantStudios
NantStudiosSimple
CaveEntrance_NantStudiosSimple
CavePath_NantStudiosSimple
SpaceJunkyard_NantStudiosSimple
Stages
This folder contains the nDisplay Configurations which describe the topology of the LED volumes. The
production used one stage for all the shots: Nant Studios. A simpler version of the stage is provided as well
so you can render the front walls on a single desktop.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
The NantStudios LED stage
Click image to expand.
NantStudios
Config: An nDisplay Config Asset for the stage that defines the topology of the LED volume and how to
render on it.
LEDMeshes: Static Meshes and materials with the LED panel resolution used in the nDisplay Config
Asset.
LiveLinkPresets: These are previously created configurations for Live Link that are required to load
LiveLink sources on the nDisplay nodes at launch. The default preset is specified in Project Settings >
Live Link > Default Live Link Preset. They can also be used to quickly reload different sources in an
editor environment.
NantStudios_Stage: A Level Asset that contains only the Actors that represent the stage, such as the
nDisplay Root Actor, ICVFX Cameras, and Light Cards.
Config: An nDisplay Config Asset for the stage that defines the topology of the LED volume and how to
render on it. The topology looks the same as the Nant Studios configuration, but only two of the front
walls are set up to render.
NantStudiosSimple_Stage: A Level Asset that contains only the Actors that represent the stage, such
as the nDisplay Root Actor, ICVFX Cameras, and Light Cards.
Tools
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
This folder contains custom Blueprint controls, Level Snapshot Filters and Presets, and Remote Control
Presets. The following list describes each tool.
CaveMaterialControl: A blueprint controller for various Material Parameter Collections used by objects
in the scene. Contains controls for things such as caustic speed, light shaft intensity, and global color
shifts for the rocks.
HierarchicalInstanceConverter
HolePunch: A spherical actor used to create a hole in the geometry of the cave. This was used on the
day of the shoot to create an additional light shaft.
InnerFrustumCamera: A CineCameraActor with a LiveLinkComponent. This Blueprint simplifies the
camera tracking by not requiring the user to manually add an instanced LiveLinkComponent to the
scene actor.
LevelSnapshotFilters: Custom Blueprint Filters for Level Snapshots.
LevelSnapshotPresets: Presets of groups of filters for Level Snapshots.
RemoteControl: Remote Control Presets.
SyncTestBall: This tool creates a bouncing red ball used to test synchronization. Place the ball in the
scene so that it appears on the seam between two walls. A visible tearing of the ball occurs at the
seam if the synchronization is not functioning properly.
Cvars
To improve performance while rendering with nDisplay on stage, the production team used the cvars in the
table below to tweak settings. You can set cvars during an nDisplay session in Switchboard and have them
applied to the cluster.
1. Open Switchboard.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
2. Under the nDisplay Monitor tab, in the Console: text box, enter the cvar and the desired value, if
applicable.
3. Click Exec.
NOTE
The following values are what were used for the In-Camera VFX Production Test. You might
need to use different values depending on the content in your project and what look you want
to achieve.
Ray Tracing
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
r.RayTracing.ForceAllRayTracingEffects 0 Forces all ray
tracing effects
either on or off.
Options for value
include:
-1: Do not
force (default)
0: Disable all
ray tracing
effects
1: Enable all
ray tracing
effects
r.RayTracing.Reflections.SortMaterials 0 Determines
whether reflected
materials will be
sorted before
shading. Options:
0: Disabled
1: Enabled,
using Trace >
Sort > Trace
(Default)
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
r.RayTracing.Reflections 0 Turn OFF only ray
tracing reflections
in your level. This
is useful in case
you still want to
use ray-traced
shadows or other
ray tracing
features, and not
pay the cost of
ray-traced
reflections.
Options:
-1: Value
driven by the
postprocess
volume
(default)
0: Use
traditional
rasterized
SSR.
1: Use ray-
traced
reflections.
r.RayTracing.Geometry.Landscape 0 Include
landscapes in ray
tracing effects
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
(default = 1
(landscape
enabled in ray
tracing)) In order
to optimize the
levels that
needed ray-
traced reflections,
we disabled
landscape ray-
tracing as it was
not adding much
to the final look,
and disabling it
gave us some
performance
boost.
r.RayTracing.Reflections.ScreenPercentage 50 Screen
percentage the
reflections should
be ray traced at
(default = 100). If
your scene
doesn't have very
shiny and clean
reflections you
can reduce this
value and you will
gain some
performance.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
Upscaling Resolution
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
for Temporal AA
Options:
0: Gen 4 TAAU
(default)
1: Gen 5 TAAU
(experimental)
This will turn
ON our new
Gen5 TAAU in
case some
resolution
upscaling is
needed .
r.TemporalAA.Upsampling 1 Whether to
perform primary
screen
percentage with
temporal AA or
not. Options:
0: Perform the
spatial
upscale pass
independently
of TAA
(default).
1: TemporalAA
performs the
spatial and
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
temporal
upscale using
the screen
percentage
method.
SSGI
r.SSGI.Enable 0 Whether to
enable or disable
Screen Space GI
Options:
0: Disable
1: Enable
Turns OFF
Screen Space
GI.
r.SSGI.HalfRes 1 Whether to
perform SSGI at
half resolution.
Options:
0: Disable
(defaults)
1: Enable
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
number of rays
shot with SSGI,
between 1 and 4
(defaults to 4).
Volumetric Fog
r.VolumetricFog 0 Whether to
enable the
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
Volumetric Fog
feature. Options
0: Disabled
1: Enabled
This can be
used to
quickly turn
OFF
Volumetric
Fog and
determine
how much
performance
it uses.
Rendering
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
0: Disable the
showflag.
1: Enable the
showflag.
2: Do not
override this
showflag
(default).
0: Disabled
1: Enabled
(default)
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
r.Streaming.PoolSize 3600 -1: Default texture
pool size,
otherwise the
value is the size
in MB. This cvar
can be used to
increase the
texture pool size
at runtime in
order to allow
higher mipmaps
to be loaded, if
the pool size
originally was set
too low and your
hardware allows
a higher texture
pool size.
0: Disabled
1: Enabled
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!
-1 is disabled.
This is useful for
testing how much
performance or
quality can be
gained by forcing
a specific LOD on
the scene.
Tags
BACK T O T OP
© 2004-2021, Epic Games, Inc. All rights reserved. Unreal and its logo are Epic’s trademarks or
registered trademarks in the US and elsewhere.
PDF hecho con ❤ en https://www.htmlapdf.com. ¿Quieres convertir un sitio web completo a PDF? Mira el tutorial aquí!