Rendering Environments

FxCore supports two types of rendering environments: 2D and 3D.

When a new composition is created, it defaults to a 3D enviroment. Click on an empty section of the graph, and then on the Options button to view and change the current environment:

Environment

Environment

The 3D environment is designed to create a simple 3D scene that supports the concept of a 3D camera and uses a depth buffer to guarantee that objects rendered closer to the viewer hide objects further away from the viewer.

FxCore does not provide any lighting or fog options that Quartz Composer exposed by virtue of using OpenGL 1.x APIs. FxCore is based on Metal, with its performance-focused design. Features such as lighting, shadows or environmental effects can only be offered by specific nodes. They are not defined in terms of a global 3D environment.

If your composition is destined to work mainly or exclusively with 2D images, and produces output in 2D, you should select the 2D environment.

In a 2D environment, the only supported renderer is a Billboard, which draws its input image to the output frame, ignoring any 3D transformations. The 2D environment is a faster, less resource-intensive option if your composition is mostly designed to use Core Image filters, Vision or CoreML nodes whose output does not need to be rendered in true 3D. It is still possible to simulate 3D transformations using Core Image filters.

Core Image Options

Because of its close ties to Core Image, FxCore allows you to control certain aspects of the context in which image processing filters are executed.

Core Image Options

Core Image Options

You can customize the working color space, pixel format and caching behavior of the underling Core Image context associated with your composition. Please refer to the Core Image documentation for more info.

When using FxCore to create visual effects for FxFactory, it is recommended that you leave the Cache Intermediates option off, as it is counter-productive to aggressively cache any effects applied to an ever-changing stream of video frames.