Cooking is a process in which the project is converted for more memory and performance-effective usage. After editing and finalizing the project files on Reality Editor, it is important to cook the projects. Preparing a virtual set, is actually creating a standalone version of your Unreal Project, which can run without editor. This improves performance of the Reality Engine, because that the computer does not need to run on the Reality Editor anymore. Use the Reality Control which is placed under C:\Program Files\Zero Density\Reality Control Applications\4.25 as ZDRealityControl.exe as follows:

The version number on images in this article may be different from the version you are installing as these images are just for reference. The cooking method is same for all versions.

 

Double-click on this executable file to run the application. After double-clicking you will see the below splash screen:

Then the Reality Control Application will launch as a separate desktop application.

This application has 4 tabs by default:

Launcher: This module has direct communication with all the Reality Engines connected within the network. This module sends commands to each Reality Engine simultaneously for sending projects OnAir. Launching a studio is the final step towards executing the virtual set project for live broadcast production. Launcher module will populate all the projects which are configured in Studio module of Reality Control application with their launchable states. Each Reality Engine can have same or different projects configured. On launch of a project, the project will run on that defined Reality Engine(s) and is seen on program output displayed via AJA I/O board on that Reality Engine.

Studio: This module is used to configure a project/virtual set to a specific Reality Engine (or lets call it as a profile). This will define which Reality Engine should run which project when the project is launched from Launcher module. Same or different projects can be assigned to every Reality Engine while you can save an .rgraph file per Reality Engine. A Studio must be created in order to launch a cooked project. The project can be either started in shipping or editor modes. Studio offers the functionality to launch specific Reality Engine(s) with their specific shipping or editor version of your project(s). When you have more than one Reality Engine working together, you can launch same cooked project on both the Reality Engines or with different cooked project on each Reality Engine.

Cook: Cooking is a process in which the project is converted for more memory and performance-effective usage. Uncooked projects will launch in Editor mode, which is also called “Standalone mode”, which may not give as good performance as a cooked project as the project will execute Reality editor in the background, which is very resource costly. The cooked projects are configured to run with Reality Engine in the Studio module.

Engine Monitor: Within this module, it is possible to view details of every Reality Engine connected with this control server. This module shows real-time variations of hardware components processes and details about installed components in the workstation. It is a kind of system resources monitoring for the Reality Engine. It follows the general lead of the built-in Windows Task Manager tool, but extends the feature set greatly. These expanded features allow the real-time state of the system and other process-level minutia.

Cook Server

After finishing the designing of a project, as it needs to be cooked before using in live broadcast, it is important to note that having a configuration which is more efficient, less time consuming and better for network traffic. In the connectivity diagram below, you can see that a Network Attached Storage (NAS) is recommended for R Drive. And there are two server definitions:

The configuration of the machines that will be used can be noted down under five categories:

  • Cook Server: The cook server is used to cook a project to be run in shipping mode. Cooking is a process in which the project is converted for more memory and performance-effective usage. All cooked projects are found in Shipping mode. Cook server will run Reality Cook Server application. This machine does not need a graphic card, however it needs to have Reality Editor. Installation of Reality Editor and Reality Control is mandatory on this machine.  Cook Server installer is an optional installer component with the Reality Editor installer. Run Reality Editor installer setup and choose only the component  "Cook Server". 

The project cannot be cooked without Reality Editor, hence it is mandatory to install Reality Editor on the Cook Server machine. If possible, keeping cook server as a separate powerful machine for cooking purposes is always a good idea for the performance.

  • Reality Engine:  It is the main Reality Engine which contains all the projects/virtual sets. There can be one or multiple Reality Engines installed. This should be high performance workstation as projects will run from these Reality Engines with Reality Engine license. AJA I/O video boards will be installed on this machine. Installation of Reality Editor and Reality Control is mandatory on this machine. Each Reality Engine has its own cache and each time the project is launched and the engine server is on, the Reality Engine calls the latest version of the studio from its local cache.

  • Control Server: As the name suggests, this is the main controlling source from where one or multiple Reality Engine(s) can be controlled by providing various commands to each Reality Engine. The operators will use Reality Control on these control machines during live broadcasting. Control application send commands to Reality Engines to launch/stop the projects, controls the way projects are handled in Reality Engine for performing desired output. It also communicates with Cook Server to perform cooking process. Control application can send commands to Reality Engines to launch/stop the projects, controls the way projects are handled in Reality Engine for performing desired output. It also communicates with Cook Server to perform cooking process. Control application also lets you setup a studio configuration and define a connection of virtual scene with every Reality Engine(s) and using a simple interface, compositing rendering pipeline by connecting nodes such as video input and output, keyer, color correction, connecting tracking camera, virtual scene etc. This is mostly a onetime process if you don’t intend to make any changes in the setup. Once setup is done, simply launch the studio and go On Air in no time. You can on demand trigger various functions and control the virtual elements in the scene. This machine doesn’t require high configuration as it is used to simply control one or multiple Reality Engine(s) and Cook servers. You can use low configuration computer or even a laptop. Installation of Reality Control is mandatory on this machine.

  • Reality Editor: The designers will use Reality Editor on these machines with Reality Editor license. A USB dongle supplied with Reality Editor License must be connected to this machine to run Reality Editor. Installation of Reality Editor is mandatory on this machine. The Reality Prerequisite installs "CodeMeterRuntime64-650.msi" which is necessary for licensing Reality Editor. Find steps on Using CodeMeter Control Center.

  • Network Attached Storage: This will be the R: Drive that all the other workstations in the Reality Suite can access and read or write the projects' configuration files. For working with Reality Suite, you must map a shared drive having enough HDD free space (We recommend a minimum of 100 GB).

Running Cook Server Executable

Cook Server installer is an optional installer component with the Reality Editor installer. So make sure to install Cook Server from Reality Editor installer and check the “Cook Server” component. This executable should be run on only the Cook Server. To launch Cook Server, on the Cook Server, go to C:\Program Files\Zero Density\Reality Control Applications\4.25\CookServer folder and click on ZDRealityCookServer.exe. The indicator which shows the ON/OFF status of the Cook Server is on the right bottom of the Reality Control application:

  • Red Circle: Cook Server is OFF. Thus, you cannot cook a project. Launch Cook Server executable to enable.

  • Green Circle: Cook Server is ON (up and running). Thus, you are able to cook a project(s).

Cook

The Cook Server is used to cook a project to be run in shipping mode. Cooking is a process in which the project is converted for more memory and performance-effective usage. Under the Cook tab, there are 5 sections as shown below:

  1. Projects: "Unreal Project” which is created using “Reality Editor” and saved under the R:\Reality\Projects folder will be populated here. 

  2. Maps: List of Level map which is used from the selected Unreal Project.

  3. Cooks: All the projects added to the cooked list will be populated here.

  4. Cook History: You can view the history of the specific projects' specific map.

  5. Cook Setting: You can manage a specific cook by enabling some of the Project Settings that exist on Reality Editor. 

Remember that changing a Project Setting will require a longer cooking time as they may require compiling shaders. Still it is more practical than having copies of the same project with different Project Settings (i.e. one with Global Clipping Plane and one without it)

Cooking a Project

You should have at least one “Unreal Project” which is created using “Reality Editor” under R:\Reality\Projects path. The Cook tab under Reality Control scans this path for the project listing at every start of control application. If the desired project is not displayed, please use the Refresh button.

Please note that the Launcher only scans the Projects folder and it does not recognize any sub folders or other folders. See an example path of recognizable .uproject file by the Launcher.

Select which Reality Project you are going to use in this cook.

Select which level map is to be used from the selected Unreal Project.

Each project can have more than one map, and you can use any of the maps as a separate cook. This way you can have multiple maps within the same project, which saves you disk space and project management time.

Now click on Add to add a New cook item for your project.

In the "Add Cook" dialog, type a name for this cook and click Create. A Cook config file will be generated under the path R:\Reality\Cooks\ folder.

Your new cook item is going to appear in Cooks List.

Please note that, your cook is shown as NotCooked. This means that the “Cook” is not prepared (optimized) for real-time production. To start cooking, click on the Cook button to make this cook ready for On-Air production. This will start the “cooking” process, which may take few minutes, depending on your project size. 

After clicking on the Cook button, the Cook Settings window will appear. In this window, you will see few settings which are derived from settings done in Reality Editor while designing of the project. The benefit of these settings being here is that you can modify these settings from here itself. Tough it can be modified in Reality Editor by going to Edit > Project Settings, Reality Control software gives you the ability to manipulate these settings without going to Reality Editor to edit the original project file. After you change any settings for this project, click on Save & Cook.

If the options are not editable, then you need to set it to "Editable" mode. Please follow steps below to do these settings.

Go to Window > Settings

Scroll down and go to "Cook Settings" and double click the item name which you want to make editable.

The “Edit Cook Setting” dialog will be opened. Do the desired changes and click on “Save” to save these settings.

Tick “IsEditable“ to ON so that it will allow to edit values in project and cook settings before you start cooking.

As the cook process Starts, you can see the cook is in Started state on Cook History tab. This means that the cooking process has started successfully.

To watch for the cooking progress/warnings/errors, right-click on the cooked item and choose Show Log.

 

You will be directed to Cook Manager tab, where you can see the status of the particular cook and also the log.

After the cook is successfully finished, you will see that the status changes to Cooked under Cooks tab.

The cooking process ends here. The next section is explained about how to create a Studio and Launching a project.

If something goes wrong during cooking and your Cook State stays Red, you can right click on the log window, and right-click mouse button, then select Copy_to_Clipboard and paste the log into a text editor to see what kind of error has happened. Usually you will see that an asset file is missing from the project.

Unreal® Engine has a separate Shipping Executable, which does not include editor code. When we prepare the set, we are actually cooking the project asset contents for the shipping executable. This process converts the assets to a more performance effective format to maximize real-time performance. While you can test run your projects from the Reality Editor, in the editor you will have the editor code overhead, which will lower system performance thus hitting your frame rate down for real-time playback.