mO2 User Manual

CHANGELOG
-
mO2 v1.4.4 31.08.2021
-
Improved support for Apple Silicon in compatibility mode (Rosetta 2)
-
Improved user experience in Final Cut Pro
-
-
mO2 v1.4.3 04.05.2021
-
Improved glTF support
-
Improved import of mTracker3D data
-
-
mO2 v1.4.2 28.01.2021
-
Improved SVG import
-
Added support for Compressor and export to Apple Devices
-
Crash and bug fixes
-
-
mO2 v1.4.1 01.12.2020
-
Crash and bug fixes
-
-
mO2 v1.4.0 19.11.2020
-
Added support for mTracker 3D data
-
Added a new Shadow Catcher Mode in the Material's Opacity channel
-
Added an option to disable post-processing effects on the Background
-
Added a new Physical method for computing the Camera's Lens Distortion
-
Improved Alpha Channel support
-
Removed the Color Space parameter – mO2’s output color space now depends on the host app’s project settings
-
Increased render bit depth
-
-
mO2 v1.3.3 10.11.2020
-
Crash and bug fixes
-
Added Big Sur support
-
-
mO2 v1.3.1 08.09.2020
-
Crash and bug fixes
-
-
mO2 v1.3.0 28.08.2020
-
Motion Cameras can now be used to drive mO2's internal Cameras
-
Added orthogonal Camera views
-
Added import of animated position, rotation and scale parameters from FBX, glTF and DAE formats
-
Crash and bug fixes
-
-
mO2 v1.2.0 16.04.2020
-
New Capture Envi feature – create new Environment textures that take your scene geometry into account
-
Redesigned Ambient Occlusion – AO shadows are now much more accurate and they affect surfaces that have Planar Reflections enabled
-
Performance improvements
-
Crash and bug fixes
-
-
mO2 v1.1.0 02.12.2019
-
Added new Alpha Channel Background mode that allows to render mO2 scenes on a transparent background
-
Added an empty mO2 title with transparent background for easier workflow in Final Cut Pro X
-
Anti-Aliasing improvements
-
Fixed rendering of refractive objects in Planar Reflections
-
Fixed the black OSC issue which appeared after updating Final Cut Pro X to version 10.4.7
-
Performance improvements
-
Crash and bug fixes
-
-
mO2 v1.0.5 09.01.2019
-
Added a new Blend Opacity Mode to the Material
-
Added a Cutout Threshold parameter in the Alpha Cutout Opacity mode
-
Added a "Tile Mode" parameter within the Material -> Texture Mapping
-
Applying a Material with custom Texture Mapping (Cubic, Planar, etc.) onto the entire Instancer will now texture all of its instances accordingly,
-
Illuminance Channel can now be used in the Refraction and Blend Opacity Modes,
-
Motion Blur amount parameter now works correctly,
-
SVGs aspect ratio is now applied to its source shape instead of the object's scale so Bevel is no longer being stretched out,
-
Ctrl+LMB now works in the Scene Structure view,
-
Importing incorrect SVGs should no longer crash mO2. The problematic paths will now be simplified or removed completely,
-
Effector's Invert Shape and Light's Cast Shadows options are now properly imported from Cinema 4D files,
-
Fixed various other bugs.
-
GETTING STARTED
mO2 is a plugin that allows to quickly and easily add, customize and animate 3D models and text directly within Motion 5 and Final Cut Pro X.
It is based on Physically Based Rendering and therefore can be used to create very realistic 3D intros, compositions, titles, transitions and many, many more.
Tutorials
Learn how to use various functions of mO2 by watching these tutorials
FAQ
-
1. What are the recommended hardware specs for the mO2 plugin?
Graphics – mO2’s rendering engine does most of its calculations on the graphics card so the faster your GPU is the better (Intel Graphics are not supported!). Also, all assets (3D models, textures, environment, etc.) need to be uploaded to your graphics card’s video memory so the more VRAM you have the more complex scenes you’ll be able to create. Once the video memory is full, OpenGL will start to use your machine’s system memo- ry (RAM) but this will significantly reduce rendering performance.
RAM – most of the plugin’s assets are loaded into the the graphics card’s video memory (VRAM) so if you have enough RAM to run Motion 5/FCPX, the plugin should run properly as well.
CPU – mO2 uses the CPU for several important calculations so faster chips will yield better performance in complex, animated scenes. Also, remember that it’s better to have a few faster cores than a lot of slower ones.
-
2. Why are Intel graphics not supported?
Most importantly, integrated GPU’s “borrow” their memory from RAM – this is not a normal way to handle memory and therefore can cause various issues. Also, many features are handled differently than by AMD/ Nvidia cards, which support them in a more predictable way. Lastly, integrated graphics are usually very poor in terms of performance and therefore should not be used for complex calculations such as 3D animation or physically based rendering.
-
3. Is there anything I can do to speed up mO2 in FCPX?
Most importantly, please make sure that Background render is disabled. This can be done by launching Final Cut's preferences from the top menu (or using the ⌘+ , keyboard shortcut), going into the Playback section and disabling the Background render checkbox at the top of the list.
Once disabled, you can still render your Timeline by selecting the desired element and pressing Ctrl+R.
Pressing Ctrl+Shift+R on the other hand will render the entire Timeline, regardless of the selected items.You can also speed up your playback of an unrendered Timeline by going up to the View menu located in the top-right corner of Final Cut's Timeline Viewer and choosing the Better Performanceoption.
-
4. Can I use my own models/textures/environments?
Yes, even though mO2 only uses assets that are stored in its Libraries on your local drive, you can import your own models and textures into them.
-
5. I can’t see the On Screen Controls in Motion 5, how to enable them?
By default, Motion does not display the selected Generator’s controls so you need to enable them manually. You can do it by changing the tool to Adjust Item or by simply right-clicking on the generator within Motion’s viewport and picking Control.
-
6. Can I use Motion's behaviors to drive my mO2 scene?
Motion's behaviors link to specific parameters. But mO2 can't create a set of position/rotation/scale sliders for each object within the scene because neither Motion nor FCPX could handle that amount of parameters in a single project (it already takes them a bit of time to create the existing ones – selecting the Generator for the first time takes a while). Because of this we use a single set of parameters and use it to handle the currently selected object. As a result, if you for example select your Camera, apply a Wriggle behavior to its Position Y parameter and then select a different object, this behavior will no longer be attached to the Camera's position, but to the position of the newly selected object. The same rule applies to all Materials.
There is a quick and dirty way around this if you really need it though – once you apply your behavior, transform it into keyframes (using the ⌘+K keyboard shortcut). They will be applied to the Camera's parameters and saved within mO2 so even if you select a different object, they will be left in place. Just remember not to use too many of them, having a lot of data (keyframes) in a single project may eventually affect performance.
-
7. Is mO2 compatible with mObject projects, models or texture packs?
There are a couple of things worth noting on this topic:
-
Most importantly, please note that mO2 is not an update for mObject but a completely new plugin. It has been written from the ground up and therefore will not be able to use its scene files etc.
-
mO2 uses a completely new shading system that requires a different set of textures (mObject used parameters such as Specular and Specular Exponent whereas mO2 uses much more intuitive Metalness and Roughness channels). That being said, you can still import textures from mObject’s Material pack manually into mO2's Texture Library and build materials from them (you’ll find these files in your /Library/Application Support/mObject/Materials folder), but before doing so, please keep the following things in mind:
-
Diffuse textures contained highlights and shadows which may result in a weird material behavior in certain lighting situations (Albedo shouldn’t have any lighting in it, just a flat base color of the surface).
-
Specular textures won’t really match any of mO2's material channels because they did not describe any physical property of the material. But you should be able to achieve some interesting results by dropping them into the Roughness channel and checking its Invert checkbox.
-
mO2 calculates Ambient Occlusion on the fly so AO textures should not be used. If you wish to use them anyway, simply load them into the Material’s Cavity channel.
-
-
Models from mObject packs were provided in OBJ format so you can import them into mO2, but there are a couple of things you need to remember:
-
OBJ’s material and texture info is stored in MTL files which weren’t included (mObject stored it in its custom format) so these models will load with a default material,
-
the models’ textures can be imported manually into mO2's Texture Library and re-attached to their materials. But due to mO2's new shading system you may want to do the same thing as with materials - put Diffuse textures into Albedo, Specular into an inverted Roughness channel etc.
For best results Metalness textures should be created manually in an up such as Photoshop by selecting pixels that are supposed to be made of metal (for example using the Color Range selection) and making them white while leaving everything else black,
-
mObject didn’t provide an option to save customized models to the library. mO2 does so once you set up your model, simply right-click on it within the Scene content and pick “Save to Library”. After that it will become available in the Model Library, from which you can load it into all of your future projects without the need for any further customization.
-
As for using textures meant for other 3D apps, it depends on whether they have been created for the Metalness/Roughness material workflow or not.
If not, it doesn't mean that they won't work at all. Textures such as Albedo (also called Color, Diffuse, Base Color), Normal, Glossiness (inverted Roughness), Illuminance, AO, etc. are still valid and you can create new mO2 Materials using them. Of course Specular textures will be most problematic, but you can try using them in the inverted Roughness channel, as mentioned above.Lastly, remember that even though Materials created using non-native textures may look OK in certain situations, they will be far from the ones created specifically for the Metalness/Roughness workflow. mO2's Advanced Shaders Material Pack is not only built with this workflow in mind but it's made up mostly from actual scans of real life surfaces, allowing you to reach even higher levels of realism.
-
-
8. Which Material Workflow should I choose when importing my 3D model?
Physically Based Rendering (PBR) is a concept that can be achieved using different kinds of texture sets. The two most popular workflows are called Metalness/Roughness and Specular/Glossiness:
-
Metalness/Roughness is used natively by mO2 and it defines the surface’s behavior with respect to light-based on whether it’s a metal or not and how rough (matte) it is. Materials based on this workflow will usually have textures with “Metalness”, “Metal”, “_M”, “Roughness”, “Rough” or “_R” in their file names.
-
Specular/Glossiness is a bit less intuitive as it requires info about the surface’s specularity, as well as its shininess (an opposite of roughness). Materials based on this workflow will usually have textures with “Specular”, “Spec”, “_S”, “Glossiness”, “Gloss” or “_G” in their file names, which will be automatically converted to Metalness/Roughness before placing them into the mO2 Texture Library*.
Also, since for many years, 3D applications (such as 3DSmax or Maya) allowed the user to create materials using surface color (often called Diffuse), Normal, Specular Intensity and Specular Power, mO2 includes the Legacy option that will attempt to convert them to a usable form in Metalness/Roughness workflow.
Note
Materials converted from Legacy or Specular/Glossiness may differ from how they look in other renderers that support them natively.
-
-
9. Why doesn’t mO2 load textures provided with the model I’ve downloaded?
Unfortunately it depends on the model’s creator. Let’s take an OBJ format as an example. It contains the entire geometry data, as well as names of the materials that are applied to specific parts of the model. But all remaining material settings such as surface color, links to texture files, etc. are stored in a separate MTL file. Sometimes this file is almost empty (you can check and even edit them using TextEdit) or is not provided at all so there’s literally no way to tell which texture should be applied to which material (or if it was even meant for this model).
Another example would be FBX which stores everything inside a single file but is still vulnerable to human error. If it was exported using incorrect settings, you may end up with a file that will search for textures on the model creator’s desktop instead of in the folder next to the FBX file.
C4D files don’t suffer from these issues (assuming that textures were actually included) but since they are based on the “legacy” workflow (with settings such as Specular Intensity, Specular Width, etc.) their materials need to be converted into Metalness/Roughness, which isn’t always perfect.
In general, if the textures are not being loaded into mO2, chances are that the model was exported incorrectly, resulting in the mentioned issues. If this happens you should ask the model’s creator for a proper file.
glTF 2.0 is a solution to all of this. This format was created by the same team that brought us OpenGL and it was meant to standardize the creation of PBR content, making it ideal for mO2. It supports pretty much everything you’d want in a model file and it was designed with Physically Based materials in mind so all you need to know is which PBR material workflow is used in the one you wish to import (Metalness/Roughness or Specular/Glossiness) and everything else will just work.
-
10. How to animate an object within the scene?
The easiest way to animate an object is by using an Object Behavior. mO2 includes an entire library of animations that can be applied to your object.
Once a behavior is picked, its Start and End Times can be adjusted to match your animation. Its intensity can also be adjusted on Position, Rotation and Scale separately.
When a more complex animation is needed, it can be created in Motion 5 using keyframes. mO2 has been tightly integrated into Motion’s interface, which means that you can keyframe your animation the same way as you’d animate Motion’s built-in layers, cameras or lights:
-
Reveal the plugin’s parameters by selecting the mO2 generator and navigating to Inspector -> Generator tab
-
Select the desired object within mO2’s Scene Content view
-
Modify one of its parameters and add a new keyframe to it
-
Go to a different frame, modify it again and a new keyframe will be added automatically. After that, the parameter will change its value when moving from one keyframe to the other
Even though you can animate objects in Final Cut Pro X, it only supports linear keyframing so it’s not suited for creating organic animations. Instead, we recommend animating the scene using Motion 5 and saving the template for further use in FCPX.
Note
Neither Motion nor FCPX can handle the number of parameters that would be necessary for even the simplest scene (each model, Instancer, Material, etc. would require its own, dedicated set of parameters!). mO2 uses a single set of parameters that affect only the currently selected object, so if you select a different item, these parameters will no longer be linked with the one you had selected before. Because of this, Motion’s built-in behaviors will not work on mO2’s parameters, Object Behaviors need to be used instead.
-
-
11. Can I use a video as the background for my mO2 scene?
Yes, you can do this either by setting it up as the source for the Drop Zone Background mode or by switching it to Alpha Channel.
The Drop Zone mode is mainly used for a more complete integration of the background with the mO2 scene – refractive objects will actually refract the image used as the Drop Zone's source and objects that use Planar Reflections will reflect it as well.
When in Alpha Channel mode, mO2 doesn't have any information about its background so refractive and reflective objects will use the Environment instead. On the other hand, it's a lot easier to set up and can be used to export mO2 scenes on a transparent background for further use in other editing and compositing apps.
-
12. What’s the difference between Direct and Environment Lighting?
Environment Lighting uses the Environment texture and lights the scene based on its brightness and colors. Using actual images will introduce a lot of variance in lighting and therefore may improve the realism of your renders. It is also the quickest and easiest way to set up fantastic looking scenes.
Direct Lighting comes from actual light sources such as Point/Spot/Directional lights. It requires a bit more knowledge than Environment Lighting but many concepts from regular studio lighting apply (setting up Key/ Fill lights, etc..) so a bit of playing around will provide enough experience needed for using them in production.
Note
If you wish to use only Direct Lighting in your scene, simply switch the Environment to None and it will no longer light its content.
-
13. Is it possible to create a mirror-like Material that is not metallic?
Mirrors are created by applying a thin layer of metallic, reflective material (such as silver) to a sheet of glass and can’t be created using dielectrics. Since you can’t find such materials in real-life, you won’t be able to create them in mO 2.
-
14. My scene is too dark, how can I make it brighter?
Three main things affect the scene's brightness:
-
Camera Exposure – once you select the currently used Camera, its parameters will show up in the Inspector, inside the Camera Settings group. The Exposure parameter located near the top works exactly the same as exposure available in real-world cameras and camcorders – bumping it up will increase it the amount of light perceived by the Camera, resulting in a brighter image.
-
Environment Lighting – using a dark environment will often result in a dark scene. To make it brighter, try loading a more intense Environment map or increase the current one's Brightness parameter located in the Environment's Color Correction group.
-
Lights – if you need to make a specific area of the scene brighter, finding the right Environment may be difficult. An easier solution is to add an Area Light to your scene. Additionally, if you only wish to brighten the shadowed areas while maintaining the overall lighting of your scene, adding an Ambient light will be the best way to go.
-
-
15. My project is running too slow, how can I optimize it?
If you only wish to temporarily speed up rendering to navigate through the scene, the best way to do this is to switch to the Constructor Mode, in which the heaviest post-processing effects are disabled.
That being said, some features affect performance more than others:
-
Objects – each object has its own set of properties such as position or rotation, their animations, etc. that need to be saved in the scene. At some point the amount of stored data will start to affect Motion's and Final Cut's performance. This means that if you can choose between a model merged into a single mesh with a lot of polygons and a model built from several meshes with less polygons, we recommend picking the first one. Invisible objects are also present within the scene so if you've got a lot of unused ones, deleting them will improve performance.
-
Textures – each graphics card has a finite amount of video memory. If a lot of different textures are used in a single scene, they may not fit inside it. If this happens, OpenGL will start to move them to your system memory, resulting in a significant performance drop.
-
Instancers – Instancers work best for duplicating a single object many times. The more objects are dropped into it and the more complex they are (an object within an object), the slower it will become, even if the resulting amount of instances is the same in both cases. Additionally, animating the Instancer's parameters or objects inside it will also affect its performance so changing their position, rotation and/or scale them via Modifiers will work much faster.
Please note that each effect requires a certain amount of processing power so the more of them you have enabled, the slower your render will be. Each can be either disabled or adjusted via parameters located in the Render Settings (link) section:
-
Ambient Occlusion – AO is the most system-intensive effect in mO2 so disabling it will greatly improve performance. You can also make it a bit faster by keeping its range at a relatively low value.
-
Depth of Field – this effect blurs each pixel by a certain amount. If the blurring range is large, it will render slower so if you can keep your Focus Amount low, it will improve your scene's performance.
-
Motion Blur – just like Depth of Field, this effect blurs pixels so the stronger the effect, the more calculations will be required.
-
Shadows – to generate shadows, the scene needs to be rendered from the Light's perspective. For Spot Lights, it's indeed just a single additional render, but since a Sphere Light covers a much larger area, casting shadows from it requires not one but six additional renders of the entire scene so if you can change your shadow casting Sphere Lights into Spot Lights, doing that will significantly improve your scene's performance.
-
Planar Reflections – just like shadows, they require re-rendering the scene so if your render doesn't necessarily require it, disabling this feature will improve your rendering speed.
-
-
16. Is there a way to improve Anti-aliasing in my scene?
The first thing you can do is adjust mO2's AA settings (available in Render Settings -> Anti-Aliasing group) to make these artifacts less apparent:
-
Camera Jitter – mO2 uses Temporal Anti Aliasing that regenerates detail by slightly jittering the camera at each frame. This is very useful in static scenes but it can make aliasing more visible in other situations. In general, if your scene’s content is moving all the time, you can even bring it down to 0
-
Reduce Ghosting – this checkbox reduces the “echo” effect caused by moving objects. Disabling it will reduce aliasing but note that by doing so such trails may become more visible
-
AA Sharpness – a sharper image will have more aliasing so you can reduce it by lowering this value
Another thing worth noting is that aliasing is always more apparent in areas where really bright pixels show up next to much darker pixels. Such contrasts can be caused by a couple of things:
-
Tiny light sources. Small highlights = more visible aliasing so if you’re using Spot or Sphere lights, try increasing their radius
-
HDRI Environments with high intensities and contrast will have the same effect as small Area Lights. mO2 doesn’t include such Environments but if you decrease Gamma too much on any of them, you may end up with a very contrasted Environment texture that could make aliasing more apparent
-
Very low Roughness. Shiny surfaces have much sharper reflections so aliasing caused everything mentioned above will be more visible on them. If your Material doesn’t need to be perfectly smooth, try increasing its Roughness. Doing this alone will reduce most aliasing problems
Lastly, remember that Anti-Aliasing is meant to hide artifacts caused by insufficient image data. This means that if you can't achieve the desired quality when working in HD, simply increasing your project's resolution to, say, 4K should result a much more accurate image.
-
-
17. Is my 3D model’s scale important?
mO2 uses physical units across its engine so rendering a spoon that’s 10 meters long or a house that’s 10 centimeters tall will most likely look unnatural. Scene scale is especially important when combined with effects such as Depth of Field – just like in photography, focusing on a huge object will usually result in a fairly sharp image (also due to a wider Camera Field Of View) and a tiny object will introduce more DoF, as if it was shot using a macro lens. Ambient Occlusion is also very sensitive to the scene’s scale – it will generate very weak shadows for extremely large models and very dark ones for extremely small models.
Of course, all models provided with mO2 have been prepared to match their real-life scale but you can easily control your own models’ size during import. After picking the desired file, the model’s X, Y and Z dimensions will be displayed (in meters). Adjusting its size on one of the axes will automatically update the remaining ones so you’ll know exactly how large it will be after placing it in your scene.
-
18. I have the plugin’s generator selected but I can’t see my animation in Motion’s Keyframe Editor, why?
To make things clearer and more intuitive, mO2 only displays keyframes for the currently selected objects (just like Motion). If you wish to preview or modify an object’s animation curve, simply select it within the Scene Content view and it will become visible.
-
19. When loading my FBX, mO2 doesn't load textures included with it, why?
When importing an FBX, mO2 will look for its texture files in the locations provided by the FBX itself. If it can't find them, the textures were either moved from their target folder to a different location, or they were never taken into account when exporting the model from the app the FBX was created in.
Luckily, even though FBX is a binary file, it contains explicit links to the texture files used in its materials. This means that if textures are indeed used in this file, we can check where they are supposed to be placed. To do this, simply open the FBX using TextEdit and search for the texture's file name inside it. Depending on the results, we can determine the source of the problem:
-
if the texture's name can't be found, it means that the FBX was exported incorrectly and loading it into any 3D software will give us materials without any textures. The solution to this is to manually import all of its textures into mO2's Texture Library and load them into the corresponding Material Channels. Once all Materials are set, the entire model can be saved into the Model Library to make sure it is ready for use in future projects,
-
if the texture's file name has been found within the FBX, it will often be included with its entire file path. For example, if you can see it as "textures/[texture_file_name.extension]", you will need to create a folder called "textures" next to your FBX and put your texture there. If it's "maps/[texture_file_name.extension]", you'll need to create a folder called "maps" and put your texture inside it, etc.
-
if the texture's file name has been found within the FBX but it doesn't include the entire file path, the textures most likely need to be placed in the same folder as your FBX.
-
-
20. How exactly do mO2's Drop Zones work?
-
As you know, mO2 allows to use up to 10 Drop Zones per scene. Of course this doesn’t mean that you are limited to just 10 Materials that use them. The plugin simply provides access to a list of 10 global mO2 Drop Zones that can be filled with your own Motion layers and then used as Albedo textures in as many Materials as needed.
-
To fill a specific mO2 Drop Zone, select your Material, scroll down to its Albedo Channel, change the “Texture Source” parameter to Drop Zone and pick the desired one from the “Use Drop Zone” list. Once you do this, its corresponding Image Well parameter will be displayed and you’ll be able to drag & drop your Motion layer onto it.
-
Once you fill a Drop Zone, mO2 will mark it as used. Thanks to this, if you select a different Material and change its Albedo “Texture Source” to Drop Zone, it will automatically pick the next unused Drop Zone for you.
-
If you wish to use the same Drop Zone in multiple different Materials, all you need to do is make sure that all of them have the same “Use Drop Zone” value selected.
-
CONTROL PANEL
Creating 3D scenes involves adding new objects, grouping them into more or less complex structures, applying materials and more. This section describes mO2's Control Panel, in which all of these actions can be done.
Scene Content
This view contains the entire content of the current 3D scene so all models, lights, cameras, etc. are going to be listed here.

They are organized in a “tree view” and their placement is fully editable – any object can be selected (using the left mouse button), dragged up or down on the list and even dropped “into” another object, thus making it its child. After that, moving, rotating and scaling the parent object will also affect all of its children, but not the other way around. This workflow is called parenting and it allows for creating groups of objects that can be animated and even textured together if needed.
Note
To access mO2’s controls, its Generator (in Motion 5) or Title/Transition/Effect Template (in FCPX) needs to be selected. After that, they will become available within the Inspector.
Context menu

Right-clicking on an object within the Scene Structure displays a context menu with the following options:
-
Duplicate – choosing this option will create a copy of the clicked object with its current settings, Material, etc. If other objects were placed as its children, the entire hierarchy will be duplicated.
-
Group – once this option is picked, mO2 will create a new Null object and set the clicked object as the Null's child. The Null will take over the clicked object's transform settings while the object itself they will be reset to zero values.
-
Delete – picking this option will remove the picked object and its children.
-
Apply Material – this context menu allows to apply Materials saved within the Material Library. It's an equivalent of the Apply Material context menu.
-
Capture Envi – this option allows to create an Environment texture from the perspective of the clicked object.
Environment lighting is one of the most accurate lighting methods available in mO2, it makes each 3D mesh appear as if it was located in the place where the Environment image was shot. Its main drawback is that each object is rendered as if it was the only mesh in the scene, without considering its surrounding objects. This is OK for lighting single models or outdoor scenes, but sometimes the user may want to build indoor locations such as rooms or hangars. In such cases mO2 will still render each object separately, causing them to reflect the Environment instead of the floor, walls or the ceiling created by the user within the mO2 scene.
The Capture Envi feature allows to go around these limitations. It lets you generate a new Environment texture that will take into account the currently picked Environment along with all 3D objects present in the scene.
Once this option is picked, mO2 will display a window where you can specify the name of the captured Environment and the category under which it will be saved within the Environment Library.
Clicking on the OK button will launch the capturing process from the clicked object's perspective, save it to the Environment Library and set it as the current Environment texture.
Note
The clicked object will not be included in the rendered Environment texture. To keep every object in it, simply create a new Null object, move it to a location from which you wish to capture the Environment and run the Capture Envi option on it.
Note
Make sure that your Environment's Horizontal Offset and its Color Correction settings (Brightness, Gamma, etc.) are set to 0 after the Environment is captured, otherwise these modifications will be applied twice – once when the Environment was being captured and the second time after it's already set as the current Environment.
-
Save to Library – this option allows to save an object along with its current settings, keyframe animation and Material in mO2's Model Library for further use in other projects. If other objects were placed as its children, the entire hierarchy will be saved.
Material Icons

Each item within the Scene Content can have a Material applied to it, for example using the Apply Material context menu.

Once it does, it can then be selected by clicking on its icon [X], after that a set of parameters for adjusting its properties will be displayed within the Inspector.
If an object doesn’t have a Material applied to it, it will be rendered using a default one. It will also check if any of its parent objects have a Material and if it does, it will use it along with its Texture Mapping settings, as if it was applied to it as well (for more info on editing Materials please refer to the Material section of this manual).
Imagine a 3D model of a wooden table made up of a couple of planks. You could apply the same wood Material to each of them independently but thanks to this solution, all you need to do is apply it to their parent object and all of them will inherit it automatically.
Materials can also be moved between different objects within the Scene Content view by simply dragging & dropping it onto the desired item. Once the Material is dropped, a context menu will provide a set of options to choose from:
-
Apply a reference – choosing this option will leave the original Material on the object it was dragged from, as well as create a reference on the object it was dropped on. This means that changing its settings in either of them will update both.
-
Apply a copy – choosing this option will leave the original Material on the object it was dragged from, as well as create a copy on the object it was dropped on. Both Materials will be completely separate so changing one of them will not affect the other.
-
Move – choosing this option will remove the Material from the object it was dragged from and apply it to the one it was dropped on.
Note
Once a Material is selected, a blue outline will be displayed around its icon. If the scene contains references to the selected Material, all of them will have a white outline, so you can easily determine, which objects will be affected by your changes.
Note
References share all Material settings except Texture Mapping and Drop Zone Settings. This allows to, for example, apply the same wood Material on two objects: one with its grain set horizontally and vertically on another.
Visibility 
This checkbox controls whether an object should be visible in the final render or not. It is a shortcut for the “Visible” setting located within the Basic group.
Shortcuts
Several keyboard shortcuts can be used when working inside the Scene Content view:
-
<—/Del – removes the currently selected object(s) / material
-
G – puts the currently selected object(s) into a new Null object
-
D – duplicates the currently selected object
-
Holding Alt/⌥ and clicking the left mouse button to unfold a list of grouped objects will also expand all groups inside it. Doing it on an open group will close it as well as everything inside.
Note
For these shortcuts to work the Scene Content view needs to be in focus – this can be done by simply mouse clicking inside it.
Buttons

Add Object 
Clicking on this button will display a context menu with a list of all available 3D objects. They have been grouped together for convenience so all Lights, 3D models, etc. can be accessed quickly and efficiently. You can also pick the From Library option, which will launch the Model Library window where all available 3D models can be previewed and added to the scene.
mTracker 3D Data
mTracker 3D is a powerful plugin that analyzes a video sequence, reconstructs its 3D camera motion and allows to pick 3D positions on surfaces that it was able to detect. This 3D data can then be copied from mTracker 3D and pasted into the current mO2 scene using this option.
Once tracking data is imported, a new animated Camera object will be added to the scene. Its movement and settings will match the real-life camera used to film the tracked video so setting it as Active will cause the scene objects to move as if they were present in the source clip.
But having a properly tracked Camera is not enough, correct placement of 3D objects is extremely important too. Say we've got a 3D car model and wish to make it look as if it was standing on the street in our tracked video. We have to be careful not to position it too far or too close to the Camera, otherwise it will move as if it was behind or in front of our desired location on the street. To make it look convincing, it should be placed in exactly the same distance as our picked position and finding it manually can be a very time-consuming process. Luckily, mTracker 3D removes the need for "eyeballing" the objects' positions – once a clip is tracked, just pick a location on the video and it will compute its 3D position. These positions are included in the copied tracking data and once it is pasted into mO2, they will appear as regular Null objects. This means that the correct placement of our 3D car model boils down to dragging it "into" the desired Null (thus making it its child object) and setting its position and rotation settings to zero to make sure they are perfectly aligned.
Note
Make sure that your model's Anchor Point is placed correctly. In case of the car model mentioned above, it should be aligned with the bottom of the wheels because this is the part that is supposed to "stick" to the picked location on the video.
Apply Material 
Clicking on this button will display a context menu with a list of all available Materials. They have been categorized based on their type so different kinds of metal, wood, etc. can be easily found. You can also pick the From Library option that will launch the Material Library window where all available Materials can be previewed and applied to the currently selected object.
Save Scene
Often a project needs to be moved to another computer. Since mO2 uses assets stored within its local Libraries, they need to be transferred with the project itself. This option will save the entire mO2 scene along with the used meshes, animations, materials and textures to the specified location on your disk. It can also be used for backing up your work.
Load Scene
This option is meant for loading a scene saved using the “Save Scene” option. When loading an external scene, all of its assets (meshes, textures, etc.) will be imported as a single “model” to the mO2 Model Library stored on the local drive. Once this is done, these local files will be used when working on the imported scene.
OSC
While most of mO2’s settings can be accessed via Inspector, various parameters such as the active Camera’s viewing direction can be adjusted quickly and intuitively via On Screen Controls
Note
Motion 5 doesn’t display the selected Generator’s controls by default, you need to enable them by switching to the “Adjust Item” tool or by right-clicking on the Viewport and picking “Control”.

Note
Motion 5 also includes an option to disable all overlays, which may prevent you from seeing mO2’s OSC. To turn them back on, go to the View menu in the upper-right part of Motion’s UI and make sure that the “Show Overlays” option is enabled (or use the ⌘+ / keyboard shortcut).
Camera Controls
mO2 renders the scene using its own, built-in 3D Cameras. If the scene contains more than one, the first active Camera (the one with the “Visible” setting enabled) from the top of the Scene Content will be used.
The plugin also allows to use temporary views:

-
Perspective view, which can be used to make adjustments in the scenes where all cameras are already animated and therefore should not be changed.
-
Orthogonal Front, Back, Left, Right, Top and Bottom views, which can be extremely useful for accurate placement of 3D objects, for example when building an mO2 scene from scratch.

Perspective View

Front

Back

Left

Right

Top

Bottom
Once a Camera becomes active, the scene will be rendered from its perspective. Its viewing direction can be controlled using the Orbit, Pan and Zoom controls located in the upper-right corner of the Viewport by simply clicking on the desired one and dragging the mouse cursor.
The Frame Object button located next to them is meant for instantly positioning the current camera (Active or Perspective) so that the currently selected object fills the screen. It is extremely useful, both when building and modifying the scene as it removes the need for manual positioning the camera when attempting to preview a specific object in the scene.
Note
mO2's built-in Camera Controls are not available if the current Active Camera uses Motion Camera as its Source
3D Gizmo
Once an object is selected, it can be moved, rotated and scaled using the 3D transform gizmo that provides instant control over all of these settings in all three dimensions. The current manipulation mode can be changed by clicking on the gizmo’s arrows (Position), boxes placed on all three axes (Scale) or circles at the tips of the gizmo’s arrows (Rotation). Once enabled, the chosen controls will become active while the remaining ones will become greyed out.

Position and Scale modes also include an additional element in the middle of the 3D Gizmo that combines the effect of all three axes. In the case of Scale, clicking and dragging on it will cause the selected object to be scaled uniformly on all three axes. On the other hand, doing this in Position mode will move the selected object perpendicularly to the current Camera’s viewing direction.
Additionally, holding Shift while changing the gizmo's position will move it with 0.1 meter increments and rotating it while holding Shift will rotate it with 15 degree increments.
Tip
Switching between different manipulation modes can be even more transparent. If you wish to move your object while being in Rotation mode, simply drag the grayed-out Position arrow and the 3D Gizmo will update automatically.
Rendering Modes
mO2 provides two rendering modes between, which you can toggle via OSC.
Constructor 
As its name suggests, Constructor is mainly meant for constructing the scene. In this mode, the computationally-heavy effects such as Depth of Field or Ambient Occlusion are disabled so it's perfect for fast modifications in complex scenes, as well as for building the scene from scratch on slower machines.
Beauty 
This mode is meant for viewing and tweaking the final render. When enabled, all post-processing effects such as Depth of Field, Motion Blur, AO, etc. will be calculated and applied to the rendered frame. Also, an additional menu will become available in the upper-left part of the OSC, which will help with making quick adjustments to the now enabled post-processing effects. This menu also contains buttons for the Pick and Link Focus features.

BASIC TRANSFORMATION
Depending on the selected item, different sets of parameters will be available within the Inspector. Some are shared between multiple types of objects, others are specific to certain kinds of items.
Basic group will be displayed after selecting any object that can be moved, rotated and/or scaled (3D models, Cameras, Primitive objects, Lights, Instancers, etc.).

Visible
This checkbox controls whether an object should be visible in the final render or not. It can also be used to switch between Cameras, if the scene contains more than one of them.
Visible Side
This list determines which side of the object’s surface should be visible in the rendered image: Front, Back and Both options are supported. “Both” can be used for proper rendering of single-sided geometry but note that it may decrease performance when used in many complex models within the scene.

Visible Front only (view from side)

Visible Back only (view from side)
Position, Rotation & Scale
These 9 parameters are meant for positioning, rotating and scaling the currently selected object. All of them can be keyframed so this is the go-to place for animating 3D objects over time. These parameters can also be controlled visually through On Screen Controls, using the 3D Transform Gizmo

Transformation of parameters in the inspector and 3D gizmo preview.
Anchor Point
Anchor Points determine the object’s origin, a point, around which it will be rotated, and based on which it will be scaled so its position and rotation are very important when animating objects. Both position and rotation can be adjusted, either manually or using the Alignment option that allows you to set the Anchor Point to the Center, Left, Right, Top, Bottom, Front or Back of the currently selected object.


Animation
Keyframing the object’s position, rotation and scale manually may require experience with animating 3D objects. mO2 provides a simple solution for users who don’t have such experience – every object in the scene can have an Object Behavior applied to it.
-
Object Behaviors button – clicking on this button launches the Object Behaviors Library that contains all included behaviors. Selecting one from the list will apply it to the selected object and hitting OK will apply these changes within the scene.
-
Start from Current Frame button – clicking on this button will set the current frame as the starting point for the picked Object Behavior. It can also be set manually via the Start Time slider listed below.
-
End at Current Frame button – clicking on this button will set the current frame as the ending point for the picked Object Behavior. It can also be set manually via the End Time slider listed below.
-
Start Time – determines the frame, at which the picked Object Behavior is going to start animating the currently selected object. Clicking on the “Start from Current Frame” button mentioned above sets this parameter to match the current frame.
-
End Time – determines the frame, at which the picked Object Behavior is going to finish animating the currently selected object. Clicking on the “End at Current Frame” button mentioned above sets this parameter to match the current frame.
-
End Condition – controls how the object is going to behave when the end of the applied Object Behavior is reached. Both options are pretty much self-explanatory: Loop will cause the animation to start from the beginning and Ping-Pong will generate each next iteration in reverse. Note that for this option to work, you need to have the Loop Count set to more than 1.
-
Loop Count – sets how many times the Object Behavior’s animation is going to be repeated.
-
Position Multiplier – if the picked behavior modifies the object’s position, modifying this value will change the magnitude of the resulting position offset. For example, if you pick a behavior that causes the object to move 5 meters to the right, setting the Position Multiplier to 2 will cause it to move 10 meters, 0.5 will move it by 2.5 meters and so on. Negative values will cause the object to move in an opposite direction.
-
Rotation Multiplier – if the picked behavior modifies the object’s rotation, modifying this value will change the magnitude of the resulting rotation offset. For example, if you pick a behavior that causes the object to turn around once clockwise, setting the Rotation Multiplier to 2 will cause it to rotate twice, 0.5 will result in a half turn and so on. Setting it to a negative value will cause it to rotate counterclockwise.
-
Scale Multiplier – if the picked behavior modifies the object’s scale, modifying this value will change the magnitude of the resulting scale offset. For example, if you pick a behavior that causes the object to scale up to twice its size, setting the Scale Multiplier to 2 will cause it to scale up to four times its size and 0.5 will actually leave its size intact (2 * 0.5 = 1).
MATERIAL
Materials define the appearance of the model’s surface, whether it’s a metal plate or a rubber duck. Their behavior with respect to light is controlled by a set of Material Channels: Albedo, Normal, Metalness, Roughness, Cavity, Illuminance and Opacity, all of which have been described below.

Materials Button
Clicking on this button will open a Material Library that contains all available Materials. Selecting one from the list will apply it to the selected object and hitting OK will apply these changes within the scene.
Save Material Button
This button allows saving the currently selected Material to the Material Library for further use in different projects. For more info please refer to the Material Library section of this manual.
Material Preview
This view displays a live preview of the currently selected Material. Each time an adjustment to any of the Material’s parameters is made, the Material Preview will reflect these changes in real-time.

Material Channels
The color of every surface we see in real-life is actually a reflection of light that has fallen on it. mO2 simulates this color based on the current lighting conditions (from both Environment and Direct Lighting) as well as the raw surface data stored in Material Channels, which may have a constant value throughout the entire surface (for example a solid Albedo Color), read this data from a texture, or combine both of these inputs using the Mix parameter for even more control over the Material’s appearance:
Albedo
This channel determines the base color of a surface without any shadows or highlights. It can be determined by a single color, a texture picked from the Texture Library or streamed in real time from a video or layer present in your host project.

-
Texture Source – when designing a Material with a variable surface color (for example to create a colorful pattern or include several different substances within a single Material), you can use this parameter to tell mO2 to use a texture from the Texture Library or stream it via a Drop Zone.
In Motion 5, the Drop Zone functionality is straightforward – once this option is activated, the TEXTURE button will be replaced by an Image Well parameter so you can simply drag and drop a layer from your project directly onto it. Once you do this, the dropped layer will be instantly applied as the base color of your Material. Due to the performance hit associated with retrieving frames from Drop Zones, mO2 allows to use up to 10 of them per scene.
Final Cut Pro X only supports Drop Zone layers created in and published from Motion 5 so the Image Well parameter will not be available in it. All templates provided by motionVFX that are based on this functionality (including the built-in ones) already have them set up, custom ones need to be added and dragged onto the Image Well in Motion 5. The empty mO2 Generator included with the plugin that is meant for creating entirely new scenes in Final Cut has 5 Drop Zones set up so if you switch the Texture Source to Drop Zone in it, mO2 will automatically link it to one of them.
Note
If a simple image file can be used instead of a Drop Zone, you can improve your project's performance by simply importing it into the Texture Library and loading it using the Texture button described below.
Aside from the mentioned differences, changing the Texture Source to Drop Zone in either of these apps will display an additional "Drop Zone Settings" group containing a set of parameters for controlling the input image:
-
Source Type - this parameter specifies whether the dropped item is a video or an image. Choosing the correct one is important because it eliminates several problems with using video files, as well as improves the quality of still images.
-
Pan X/Y – allows to adjust the position of the Drop Zone's content.
-
Zoom – controls the size of the Drop Zone's content.
-
Rotation – allows to rotate the content of the currently used Drop Zone.
Note
Drop Zone settings are separate for each object, no matter if its Material is a single copy or a Reference (link) to a different Material. This allows to use and the same Drop Zone source on many different objects and set their Pan, Zoom and Rotation settings differently to create scenes such as 3D "Drop Zone walls" without reducing performance.
-
-
Solid Color – this is where you set the Material’s uniform color. Don’t hesitate to use it as often as you can, it will not cause the Material to look flat. Its surface will still react to light in a realistic way, based on its other properties but will render faster and consume less video memory than when using textures.
-
Texture Button – real-world surfaces rarely have a single uniform color throughout their entire surface. For example, a green apple isn’t actually completely green. If you look closely it has a lot of tiny, bright spots, it can be brighter at the top and darker at the bottom, etc. Such variations in surface color can be achieved using textures. Clicking on the TEXTURE button will launch the Texture Library, from which you can load one of the included textures as well as import your own images.
-
Texture Mix – this parameter allows for mixing the texture (or Drop Zone) with the picked Solid Color. The higher the value the more of the texture will be used and the lower the value the more of the Solid Color will be used. Setting it at 0.5 will take 50% of the texture and 50% of the Solid Color and so on.
-
Color Correction – every once in a while you may want to adjust the picked Albedo texture to match your scene’s colors or simply achieve a different variation of the same Material. This group contains basic parameters such as Gamma, Hue, Saturation and Brightness for adjusting its colors without having to open it in a third-party image editing app.
Note
If you’re trying to recreate a surface from the real-life that appears bright, the perceived color may be a result of a strong light bouncing from its shiny surface. Its actual color can be determined by looking at it from different angles and under ambient lighting conditions, for example under an overcast sky.
Normal
Each pixel of a surface can be tilted to a specific direction without the need of altering its geometry. Normal maps are meant for this exact purpose – their pixels determine a direction that will be taken into account when calculating surface lighting. Even though this is a “fake” tilt, it can greatly improve your surface’s detail by adding tiny bumps, dents and cavities in exchange for storing an additional texture in your video memory.

-
Texture Button – Clicking on it will launch the Texture Library, from which you can load one of the included textures as well as import your own images. Be sure to use actual Normal maps for this channel because loading standard images as Normals will produce unexpected results.
-
Flip Direction – since each pixel on the Normals texture determines an actual direction, its Red, Green and Blue channels need to be assigned to something. In reality, you only need to note the Red and Green channels – mO2 rendering engine uses OpenGL, which means that green pixels are pointing up and red pixels are pointing right. Normal textures meant for DirectX use a different approach – green pixels are pointing down and red pixels are pointing left. The Flip Direction parameter allows you to use these textures anyway, all you need to do is set it to Both after applying it to your Material.
An OpenGL Normal map and its result, when applied to an entirely flat surface, lit from the left. Source: WikiPedia
-
Intensity – this parameter controls the intensity of the Normal map. It can be used to soften or exaggerate the texture’s pattern.
Metalness
Most surfaces from the real-world can be divided into two main categories: metals and non-metals (also called dielectrics). Their behavior with respect to light is drastically different. If you shine a lamp onto a dielectric material, a part of its light will bounce from its surface but some of it will also travel inside it and go back out in the form of soft, diffuse lighting. With metals, the majority of the lamp’s light will bounce from their surface resulting in a much more reflective appearance.

-
Metalness – this parameter determines whether the surface is made of metal or not. Setting it to 0 will create a dielectric material, 1 will result in a metallic surface.
Note
In general, you won’t find any materials that are partially metallic. Because of this, it’s best to keep these values at 0 or 1. Intermediate values can produce unnatural results, although may be helpful when creating Materials such as metallic paint.
-
Texture Button – a single mO2 Material doesn’t necessarily have to be a solid metal or dielectric. Imagine a metal ball splattered with mud – most of it will need to be set as metallic, but not the mud parts. Such variations in the Material’s properties can be achieved using textures. Clicking on the TEXTURE button will launch the Texture Library , from which you can load one of the included textures as well as import your own images. Just like with the Metalness slider, higher pixel brightness will result in a metallic surface whereas dark ones will cause the surface to behave as a dielectric.
Muddy metal ball and the metalness texture used to create its material variation – black splatters mean that these areas will be treated as dielectric instead of metal
-
Invert – enabling this checkbox will reverse the way the picked texture is going to be treated so bright pixels will represent a dielectric, and dark ones will make it metallic.
-
Texture Mix – this parameter allows for mixing values from the Metalness slider and the used texture. You can consider it as the amount of the texture on top of the Metalness slider -setting it to 0 will use just the value from the Metalness slider, 0.5 will take 50% of the slider value and 50% of the texture, 1 will use the texture alone and so on.
Tip
When recreating real-world materials, try to mimic the properties of the topmost substance. A painted metal should no longer be treated as a metal because it’s completely covered by a non-metallic paint. In such case, its Metalness should be set to 0.
Roughness
This is one of the most important channels in the entire Material. It determines how rough or polished the Material surface is going to be and can turn a relatively simple surface into a photo-realistic beast. Higher Roughness values will cause the surface to appear matte, whereas smaller ones result in a more glossy look.

-
Roughness – this parameter sets a single roughness value to the entire surface of the Material. Setting it to 0 will create a polished material whereas 1 will result in a matte surface. Intermediate values can be used as well.
-
Texture Button – this is where the magic happens. Even though Materials with a single roughness value set for their entire surface render nicely and are desirable in many situations, add- ing variation to it will take the Material to a whole new level. Clicking on this button will launch the Texture Library, from which you can load one of the included textures as well as import your own images. The more contrasting texture you use, the more visible variations you’ll end up with.
Metal ball and the roughness texture used to create its material variation
-
Invert – enabling this checkbox will reverse the way the picked texture is going to be treated so bright pixels will represent a glossy surface and dark ones will make it rough.
-
Texture Mix – this parameter allows for mixing values from the Roughness slider and the used texture. You can consider it as the amount of the texture on top of the Roughness slider - setting it to 0 will use just the value from the Roughness slider, 0.5 will take 50% of the slider value and 50% of the texture, 1 will use the texture alone and so on.
Note
A low Roughness value doesn’t necessarily mean that a Material will be completely reflective, it simply determines that it has a smooth surface. Its overall reflectivity is also heavily affected by its Metalness.
Illuminance
Surfaces not only reflect light, they can also emit it. mO2 simulates this effect via Illuminancechannel and the higher its intensity, the brighter it will appear. Also, once a pixel’s brightness exceeds a certain limit, it will start to glow and bleed its aura onto the neighboring pixels.

-
Intensity – this parameter controls the overall brightness of the Illuminance effect.
-
Color – if you wish to tint the Illuminance with a specific color, this is where it’s supposed to be set. In general, using colors that are a mix of red, green and blue channels will provide the best results. Colors that have one or more of their RGB values set at zero (for example pure red, pure green or pure blue) aren’t recommended because they will not produce white “burns” at high intensities that occur in real-life.
The Illuminance channel can light up the entire surface evenly, but it can also be limited to specific areas of your Material using textures. The following settings are meant for handling them in the Illuminance channel:
-
Use Albedo Texture – enabling this checkbox will set the current Albedo texture as the source for the Illuminance channel. It is particularly useful when using Drop Zones for objects such as glowing screens, etc.
-
Texture Button – clicking on this button will launch the Texture Library, from which you can load one of the included textures as well as import your own images.
-
Texture Blend Mode – depending on the picked mode, the Illuminance Color will be blended with the picked texture or not. Setting it to Mix will result in exactly the same behavior as in other Material channels so setting the Mix parameter to 1 will take 100% of the texture and none of the Illuminance Color. Linear Burn, on the other hand, will always take it into account, even if Mix is set to 1. This is particularly important when you do own an Illuminance texture for your model but wish to tint it to a different color without having to run it through a third-party image editing apps.
-
Texture Mix – this parameter controls how much of the picked Illuminance texture’s color is going to be taken into account so the higher the value the more of it will be used. The end result, however, will depend on the picked Texture Blend Mode.
Note
Using the Illuminance Channel will not actually light the neighboring objects like a regular direct light (Sphere, Spot) and is meant mainly as the source for the Bloom effect – for more info please refer to the Bloom part of this manual.
Cavity
Cavities are these tiny pores and cracks on the surface of a Material where the light goes in and never comes back. The darker the pixel value, the darker the surface will be. It works similar to the old Ambient Occlusion textures, but since mO2 generates AO in real-time, this channel is meant for really tiny details.

-
Texture Button – setting a single Cavity color for the entire Material wouldn’t make much sense so to make use of this channel you need to pick an actual texture. Clicking on this button will launch the Texture Library, from which you can load one of the included textures as well as import your own images. Black pixels on the picked texture will darken the Material and white will leave it intact.
-
Invert Texture – this parameter allows you to invert the way colors from the picked texture are going to be taken into account so white pixels will darken the Material and black won’t affect it at all.
-
Texture Mix – the amount of darkening caused by the picked Cavity texture can be controlled using this parameter so if the effect is too intense, simply lower it to a more moderate value.
Opacity
Materials such as glass or water are semi-transparent and therefore reveal objects located behind them. mO2 supports three methods of transparency:
-
Alpha Cutout – this mode is meant for Materials that do not cover the entire object and therefore require an Alpha Mask texture to “cut it out” from the model (black pixels are discarded, white are visible). It can be used for rendering objects such as leaves where the leaf part is 100% visible and everything outside it is completely transparent. This mode is also really fast to render and therefore it does not affect performance.
The most basic usage of the Alpha Cutout mode – the Material’s surface is either completely transparent or completely opaque.
The Alpha Cutout Mode provides access to several additional parameters:
-
Cutout Threshold - determines the Alpha value, above which the surface is considered fully opaque. Values below it will be rejected, resulting in a fully transparent surface.
-
Use Albedo Alpha - once this option is enabled, mO2 will read the Alpha Channel from the current Material's Albedo texture and use it as the source for the Opacity Channel. It can be used to read Alpha from a video placed in the Albedo Drop Zone, but since this feature allows to use an existing Albedo texture instead of loading a new one, it's also useful for optimizing the Material's VRAM usage.
-
TEXTURES button – clicking on this button will launch the Texture Library, from which you can load one of the included textures, as well as import your own images. White pixels represent fully opaque areas while black pixels represent completely transparent ones. Grey pixels will be taken into account based on the Cutout Threshold value.
-
-
Refraction – this mode is meant only for semi-transparent, refractive Materials such as tinted glass or water. It provides control over the Material’s overall opacity, as well as Index Of Refraction, which determines the way light refracts when going through the Material’s surface, thus distorting the Environment and other objects located behind it.
Refraction Mode allows for creating refractive Materials such as glass or water.
The Refraction Mode provides access to several additional parameters:
-
Opacity – lowering this value will cause the Material to become more and more transparent while keeping its specular reflections.
-
Specular Opacity – this parameter allows for lowering the visibility of the Material’s reflections.
-
IOR – every transparent substance refracts light in a specific way. You can clearly see it takes place when looking at a glass ball – it doesn’t simply reveal the environment behind it, it distorts its image as well. The amount of this effect is determined by the glass’ Index of Refraction and that’s exactly what this parameter represents so increasing it will cause the Material to distort the environment behind it. Physical IOR values of real-world substances can easily be found on the internet – for example, window glass has an IOR of 1.52, water is 1.333 etc.
-
TEXTURES button - clicking on this button will launch the Texture Library, from which you can load one of the included textures, as well as import your own images. White pixels represent fully opaque areas, black pixels represent completely transparent ones and values in between will result in a semi-transparent surface.
-
Texture Mix - once an Opacity texture is picked, its pixel brightness will determine the Opacity of specific areas of the Material. Its overall influence can be controlled via this parameter – lowering it will mix values from the picked texture with the Opacity value specified above. This allows to make the transparent areas more opaque (when Opacity is set to 1) or to make the fully opaque areas more transparent (when Opacity is set to 0).
Note
Refraction is computed only for surfaces that are closest to the Camera so if a transparent object moves behind another, only the one in front of it will be visible. Also, this mode requires additional calculations and therefore increases video memory usage and slightly decreases performance.
-
-
Blend
Blend Mode allows for creating animated materials by using footage with alpha channel.
Contrary to the Alpha Cutout Mode, Blend allows to create Materials that contain completely transparent, completely opaque, but also semi-transparent areas. It's also different from the Refraction Mode because areas with 0% Opacity will indeed be fully transparent in it – they will not refract objects located behind them or contain any specular reflections. These properties make it perfect for incorporating elements such as keyed green screen footage into the mO2 scene.
The Blend Opacity Mode includes several parameters for controlling its behavior:
-
Opacity – lowering this value will make the Material more transparent, while increasing it will make it more opaque.
-
Use Albedo Alpha – once this option is enabled, mO2 will read the Alpha Channel from the current Material's Albedo texture and use it as the source for the Opacity Channel. It can be used to read Alpha from a video placed in the Albedo Drop Zone, but since this feature allows to use an existing Albedo texture instead of loading a new one, it's also useful for optimizing the Material's VRAM usage.
-
TEXTURES button – clicking on this button will launch the Texture Library, from which you can load one of the included textures, as well as import your own images. White pixels represent fully opaque areas, black pixels represent completely transparent ones and values in between will result in a semi-transparent surface.
-
Texture Mix – once an Opacity texture is picked, its pixel brightness will determine the Opacity of specific areas of the Material. Its overall influence can be controlled via this parameter – lowering it will mix values from the picked texture with the Opacity value specified above. This allows to make the transparent areas more opaque (when Opacity is set to 1) or to make the fully opaque areas more transparent (when Opacity is set to 0).
Note
As mentioned in the note above, mO2 supports only one "layer" of Refraction, meaning that only surfaces closest to the Camera will be rendered and other refractive ones located behind them will be omitted. But using one keyed clip in front of another is a rather common situation, for example when placing two videos of a burning fire in front of a model of a destroyed car. mO2 will let you do this, but note that only three such overlapping "layers" will be rendered properly. This will allow you to create more sophisticated compositions, although to achieve this, mO2 will need to render these objects three times, therefore affecting performance.
-
-
Shadow Catcher
Once this mode is enabled, the entire object will become fully transparent. Its main purpose is to receive shadows cast by Area Lights, as well as shadowing from Ambient Occlusion. It is especially useful for compositing the mO2's scene with live action footage, but also when presenting models on a synthetic background.
Setting a material's Opacity Mode to Shadow Catcher makes the plane transparent.
The Shadow Catcher mode allows for compositing the mO2 scene with background footage.
Additionally, all objects located behind the model that uses the Shadow Catcher feature are going to be invisible, which means that it can also be used as a mask for the mO2 scene.
Example of masking parts of the 3D object.
Texture Mapping
Enable OSC for Texture Mapping
Once enabled, the 3D Transform Gizmo within the On Screen Controls will move, rotate and scale the selected object’s Texture Mapping instead of transforming the object itself. Its actual values can be previewed and set manually via Mapping Settings -> Transform group.

Mapping editing inspector and 3D gizmo.
Note
This mode will become available when the currently selected Material’s Texture Mapping is set to anything but “UV Mapping”. Also, since it defines how textures are supposed to be projected onto the model, it will not be available if the currently selected material doesn’t contain any textures.
“Clean” Materials look gorgeous in mO2’s engine so using textures is not necessary (it will also render faster and consume less video memory). That being said, textures can add a significant amount of variety to the surface and give it character. But for the texture to be rendered properly, the engine needs to “know” which pixel to display on which part of the model’s surface. A properly created 3D model should have these coordinates embedded so they can be used through UV Mapping to wrap all textures based on this data.

Unfortunately, not all models include UV data, applying texture-based Materials to them will appear distorted. This can be fixed by either unwrapping them manually in a 3D modeling/texturing application (such as Cinema4D, Maya or Blender) or picking one of the universal texture projection mapping methods supported by mO2:
-
Cubic – projects the Material’s textures from six directions in a cube-like fashion. It is one of the most versatile texture projection methods and therefore can be used for most 3D models that don’t contain too many curved surfaces.
-
Planar – projects the Material’s textures from a single direction.
-
Cylindrical – projects the Material’s textures as if they were wrapped around a cylinder.
-
Spherical – maps the Material’s textures as if they were projected from an infinitely distant sphere. It is well suited for texturing round objects, such as a 3D globe.
Mapping Settings
Tile-able textures are created in different scales which means that one may represent a large surface (for example an entire wall covered with graffiti) and another will cover only a small area such as a couple of floor tiles. Because of this, you may want to adjust their overall scale and positioning. This is exactly what the following parameters are for:
-
Tile Size X/Y – by default, the Material’s textures will be stretched to fit the picked projection but they can also be tiled to better match the current object’s scale – higher values will result in larger tiles, lower values will make them smaller.
-
Offset X/Y – these settings allow to move the texture horizontally or vertically.
-
Transform – once you set a specific projection via the Texture Mapping option modifying just the Tile Size and Offset may not be enough – for example, the Planar mapping relies heavily on the direction, from which it’s projected so you may want to rotate it. The position, rotation and scale of all projections can be controlled either through the Viewport using the Edit Mapping option or manually via parameters located in the Transform group.
Since we can control the Mapping's scale and position, at some point the texture may no longer reach the entire surface of our model. Once this happens, mO2 will tile this texture by default to fill these gaps. This parameter allows to pick the method of tiling the texture in such areas:
-
Repeat – the default setting that will cause the texture to tile on the surface of the model
-
Mirrored Repeat – similarly to the Repeat mode, it will cause the texture to tile, but in this case each tile is going to be a mirrored version of its neighbours.
-
Clamp – choosing this mode will prevent the texture from tiling so once the border of the texture is reached, it will be extended along the model's UVs.
CAMERA
Different hardware, as well as settings of a real-life camera, can drastically change the resulting image. Old lens will have more vignetting and aberrations, bumping up the ISO will add grain to the image, whereas new ones may be a bit sharper with less optical imperfections. mO2 cameras are no different, so once you select one, a group called Camera Settings dedicated for adjusting its internal parameters will appear within the Inspector.
Basic Settings
mO2 uses its internal Camera objects to render the scene. Their position, rotation, etc. can be adjusted and animated via parameters located in the Basic group.
The plugin also allows to match its internal Camera's movement with the Camera used in the current Motion project. To do this, simply change the Source parameter from "mO2" to "Motion". After that the Basic group will be hidden and all transformation will be read from the Motion Camera. Additionally, mO2's Camera Controls will not be available.

Default
Note
The Motion Camera needs to be located in the same group as the mO2 Generator.
Note
To render the scene from the Motion Camera's point of view, the mO2 camera that uses it as its source needs to be Active.
Presets
Here you can pick from a set of built-in Camera presets. Note that they not only change the settings available in the Camera Settings group but also introduce additional effects correlated with the picked preset.


Default

Sharp

Old

Hazy

Macro
Camera Properties
The following settings control how the Camera perceives the mO2 scene.
Exposure
This setting controls the amount of light reaching the Camera’s virtual sensor and therefore affects how bright or dark the resulting image will be. Since it determines the overall scene brightness, it will also affect the Bloom effect.


Scene rendered with smaller (left) and higher (right) Exposure Values.
FOV
Field Of View determines the horizontal viewing angle of the selected Camera’s virtual lens. If you want to take a wide shot of a large scene, set it to a large value. Macro or Zoom shots will require a smaller value.


Default Field Of View set to 90 degrees.

Field Of View set to 45 degrees.
Note
Just like in a real camera, this value will also affect Depth of Field – narrow angles introduce a shallower DoF whereas using a wide angle will result in a sharper image.
Post-Processing Effects
Lens’ imperfections introduce a lot of variation to the final image. In fact, we got so used to it that without them the image may appear “too clean” and unrealistic. mO2 includes a range of post-processing effects that mimic this real-life behavior. Some of them can be computationally expensive so they can only be seen in the Beauty Mode.
Aberration
A low-quality lens doesn’t focus light evenly throughout their entire surface, which results in colored edges near the borders of the image. Increasing the Aberration slider will mimic this behavior in the currently selected Camera.

A simple scene with increased Aberration. Notice the slight coloring on the edges of the model.
Bloom
Bloom is a result of an overbright surface. Once a pixel reaches a certain brightness, it will start to bleed onto the neighboring pixels, resulting in a soft, glowy look. This intensifies the perceived brightness of a surface and therefore can be used for objects such as car headlights or neons, but also to soften the entire render, giving it a flatter, filmic look.

Camera Bloom setting increased.
Bloom’s behavior and appearance can be controlled by the following settings:
-
Threshold – this parameter determines how bright a pixel must be for it to affect the Bloom effect. Increasing its value will cause only really bright pixels to bloom whereas bringing it down to 0 will take the entire image into account during calculations.
-
Brightness – the overall Bloom intensity can be controlled using this parameter.
-
Dirt Amount – even a tiny speck on the surface of the real-world lens can appear in the resulting photo, either in the form of a blurry dot or an aberrated shape of your aperture. Increasing this parameter will mimic the result of such a dirty lens.
Depth of Field
Depth of Field is an optics-based effect that keeps focused pixels sharp and blurs objects that are closer or further than the focus plane. The intensity of this effect can be adjusted using the Focus Amount parameter.

Depth of Field example
mO2 supports two methods for focusing objects:
-
Pick Focus
While in this mode, the focus distance (in meters, counting from the current Camera’s position) is controlled by a single value, editable via the Focus Distance slider. It can also be set automatically after clicking on the pixel that’s supposed to be in focus directly within the Viewport. To do this, make sure you’re in Beauty Mode, open the Post Effects menu, hit the Pick Focus icon, click on the desired pixel and it will become focused. You can also set it manually via the Focus Distance parameter.
-
Link Focus
This mode allows to set a single position in 3D space that will always be in focus, regardless of the Camera’s position. Just like Pick Focus, it can be set within the Inspector, as well as via OSC in Beauty Mode - after clicking on the Link Focus icon and picking the desired pixel within the Viewport, the current Camera’s Depth of Field effect will always focus on this exact position.
Film Grain
When the signal from a camera’s image sensor is boosted by increasing the ISO, the noise will start to appear in the resulting image. The Grain effect simulates this behavior and therefore can be used for example to make a dark scene look as if it was shot using an actual camera. Its appearance can be adjusted using the following settings:
-
Intensity – this parameter controls the intensity of the Grain effect
-
Size – high-resolution cameras usually produce a lot finer noise than ones that capture images at lower resolutions. This setting allows for adjusting the size of Grain’s noise.
Lens Distortion
This effect simulates the distortion caused by the radial lens. It heavily affects the perception of even a simple artificial image and can be used to increase the photorealism of your scene.

Lens Distortion setting increased. Left half of the model with distortion off, right half with distortion on. The grid at the corner of the screen symbolizes distortion behavior.
mO2 includes two methods for generating this effect:
-
Simple – An approximation of lens distortion that is very easy to use – the higher the Strength value, the more distorted the image will be.
-
Physical – A physically accurate method that distorts the image based on the K1 and K2 coefficients. It's especially useful when importing tracking data from mTracker 3D which computes these coefficients automatically (the imported mTracker 3D camera will already have these parameters set to proper values).
Note
Real-life K1 and K2 values are usually very small. To avoid issues with the limited accuracy of Motion's parameters, in mO2 these values are multiplied by 100.
Lens Ghosting
Shining a flashlight directly at the camera will produce bright “ghosts”, a result of the light reflecting between different parts of the lens. mO2 simulates this behavior via the Lens Ghosting effect, which can be adjusted using the following settings:
-
Intensity – increasing this value will make Lens Ghosting more apparent, decreasing it will fade it away
-
Scale – this parameter controls the final size of the ghosting artifacts
-
Threshold – Lens Ghosting is a result of bright objects visible in the current frame. The threshold parameter determines how bright a pixel must be for it to affect the Lens Ghosting effect. Increasing its value will cause only really bright pixels to be seen as “ghosts” whereas bringing it down to 0 will take the entire image into account during calculations.
-
Threshold Smoothness – simply clipping the pixel’s value via Threshold can result in overly harsh edges of the ghosting elements. Threshold Smoothness allows you to soften the transition between pixels that generate ghosting and the ones that don’t.
Lens Sharpness
Imperfections of a real-world camera lens result in a very slight blurring in various areas of the image. You can use this parameter to either include them in your render or remove them completely.
Motion Blur
Motion Blur is an effect that simulates long exposure times so the faster an object will move (or the higher the Motion Blur Amount), the more blurred it will be.

A model and the motion blur resulting from its movement.
Vignette
Increasing its strength will darken the edges of the rendered image, imitating the real-life lens’ vignetting effect.

No Vignette (Left) and set up to 1 (Right).
PRIMITIVE OBJECTS

Primitive Objects are a group of special 3D models that can be generated in real time using a handful of input parameters. They load a lot faster than regular 3D geometry and can be used to create entire scenes without the need for importing models from the disk.
mO2 supports 12 different kinds of Primitives that complement the plugin’s Cinema 4D scene support.
Capsule

-
Height – determines the overall height of the Capsule Primitive.
-
Radius – controls the Capsule’s radius.
Segments – each Primitive is built from a finite amount of vertices – points in 3D space that are connected together to form their surface. In general, the fewer segments you have the faster they will render but lowering them too much may result with visible “steps”, especially on the curved areas of their surfaces. To avoid this, simply increase the segment count for the desired area:
-
Rotation Segments – determines the number of steps around the Capsule’s circumference and therefore can be used to achieve a smoother arch, for example during close-ups.
-
Height Segments – this parameter is mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances you’ll end up with along its height.
-
Cap Segments – just like Rotation Segments, this parameter controls the smoothness of the Capsule’s surface, although it only affects the rounded top and bottom parts of the Primitive.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
Cone

-
Top Radius – controls the radius of the Cone’s tip.
-
Bottom Radius – determines the radius of the Cone’s base.
-
Height – controls the overall height of the Cone Primitive.
Segments – each Primitive is built from a finite amount of vertices – points in 3D space that are connected together to form their surface. In general, the fewer segments you have the faster they will render but lowering them too much may result with visible “steps”, especially on the curved areas of their surfaces. To avoid this, simply increase the segment count for the desired area:
-
Rotation Segments – determines the number of steps around the Cone’s circumference and therefore can be used to achieve a smoother arch, for example during close-ups.
-
Height Segments – this parameter is mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances you’ll end up with along its height.
-
Draw Caps – disabling this option will cause the Cone’s top and bottom Caps to disappear from the final render.
-
Cap Segments – just like Height Segments, this parameter is mainly meant for instancing objects on the surface of the Primitive.
Rounding – sharp edges are often desirable in certain projects, although such objects don’t exist in real-life. The Rounding feature helps remove these unnatural areas, as well as provide an additional toolset for creating different variations of the same Primitive:
-
Top – enables rounding for the tip of the Cone.
-
Top Radius – determines the radius of the arch at the tip of the Cone created by the Roundingfeature.
-
Top Height – controls the height of the arch at the tip of the Cone created by the Rounding feature.
-
Bottom – enables rounding for the base of the Cone.
-
Bottom Radius – determines the radius of the arch at the base of the Cone created by the rounding feature.
-
Bottom Height – controls the height of the arch at the base of the Cone created by the Rounding feature.
-
Rounding Segments – increasing this value will cause both roundings to be smoother, lowering will start to reveal “steps” in their geometry.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
Cube

-
Lenght X/Y/Z – these three sliders control the base size of the Cube. The difference between these parameters and the Scale located in the Basic group is that Length is specified in meters whereas Scale is the multiplier for the entire object and its children.
-
Segments X/Y/Z – these parameters are mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances you’ll end up with along each dimension.
Rounding – sharp edges are often desirable in certain projects, although such objects don’t exist in real-life. The Rounding feature helps remove these unnatural areas, as well as provide an additional toolset for creating different variations of the same Primitive:
-
Enable – enables rounding for all of the Cube’s edges.
-
Radius – determines the size of the resulting rounded edge.
-
Segments – controls the overall smoothness of the Cube’s rounding.
Cylinder

-
Height – determines the overall height of the Cylinder Primitive.
-
Radius – controls the Cylinder’s radius.
-
Rotation Segments – determines the number of steps around the Cylinder’s circumference and therefore can be used to achieve a smoother geometry, for example during close-ups.
-
Height Segments – this parameter is mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances you’ll end up with along its height.
-
Draw Caps – disabling this option will cause the Cylinder’s top and bottom Caps to disappear from the final render.
-
Cap Segments – just like Height Segments, this parameter is mainly meant for instancing objects on the surface of the Primitive.
Rounding – sharp edges are often desirable in certain projects, although such objects don’t exist in real-life. The Rounding feature helps remove these unnatural areas, as well as provide an additional toolset for creating different variations of the same Primitive:
-
Enable – enables the Rounding feature both at the top and bottom of the Cylinder.
-
Radius – determines the size of the resulting rounded edge.
-
Segments – controls the overall smoothness of the Cylinder’s rounding.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
Disc

-
Outer Radius – controls the Disc’s outer radius.
-
Inner Radius – controls the radius of the Disc’s inner hole.
-
Rotation Segments – determines the number of steps around the Disc’s circumference. Increasing this value will cause the curve at its edge to be dense and smooth, decreasing it allows for creating simpler round surfaces.
-
Cap Segments – this parameter is mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances on its surface you’ll end up with.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
Null
Null objects don't contain any geometry so they can't be seen in the final render. They do have a Position, Rotation and Scale though and therefore are perfect for grouping multiple objects inside them. Just drag one or more items from your scene and drop them directly onto the Null. After that all of them can be moved, rotated and scaled simultaneously using its Basic parameters.
Oil Tank

-
Height – determines the overall height of the Oil Tank Primitive.
-
Radius – controls the Oil Tank’s radius.
-
Cap Height – controls the height of the Oil Tank Caps. The higher the value, the more convex they will become.
-
Rotation Segments – determines the number of steps around the Oil Tank’s circumference and therefore can be used to achieve a more round geometry, for example during close-ups.
-
Cap Segments – since the Oil Tank’s caps are curved, increasing their height may reveal steps, resulting from an insufficient amount of subdivisions. Increasing this value will smooth the Caps’ curvature.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
Plane

-
Size X/Y – these two parameters determine the Plane’s width and length.
-
Segments X/Y – these parameters are mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances on the Plane’s surface you’ll end up with.
Platonic

-
Platonic Type – the main rule behind a Platonic solid is that all of its faces need to be identical and meet at the same 3D angles. This allows for multiple variations of this Primitive, 5 of which are supported by mO2: Tetra, Hexa, Octa, Dodeca and Icosa.
-
Radius – controls the Platonic’s radius.
-
Segments – determines the number of segments on each of the Primitive’s face. This setting is mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances you’ll end up with.
Pyramid

-
Lenght X/Y/Z – these three sliders control the base size of the Pyramid.
-
Segments – determines the number of segments on each of the Primitive’s face. This setting is mainly meant for the Instancer and its Object distribution mode – the more segments you set the more instances you’ll end up with.
Sphere

-
Radius – controls the radius of the Sphere Primitive.
-
Segments – defines the number of subdivisions for the entire Sphere. The more segments you have the smoother it will look during close-ups and the more instances you’ll end up with when dropping it as the source for Instancer’s Object distribution mode .
-
Sphere Type – differences resulting from the chosen Sphere Type can be seen with really small Segment counts, as well as in the instances’ placement when using the Instancer’s Object distribution mode. mO2 supports six types of Sphere Primitives: Standard, Tetra, Hexa, Octa, Icosa and Hemisphere which will generate an equivalent of the top half of a Standard Sphere Primitive.
Torus

-
Ring Radius – controls the radius of the Torus’ ring.
-
Pipe Radius – determines the Torus’ pipe thickness.
-
Rotation Segments – controls the number of steps around the Torus’ circumference.
-
Pipe Segments – controls the number of steps of the Torus’ pipe.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
Tube

-
Height – determines the overall height of the Tube Primitive.
-
Outer Radius – controls the Tube’s outer radius.
-
Inner Radius – controls the radius of the Tube’s inner hole.
-
Rotation Segments – determines the number of steps around the Tube’s circumference and therefore can be used to achieve a smoother geometry, for example during close-ups.
-
Height Segments – this parameter is mainly meant for the Instancer and its Object distribution mode – the more segments you have the more instances you’ll end up with along its height.
-
Cap Segments – just like Height Segments, this parameter is mainly meant for instancing objects on the surface of the Primitive.
Rounding – sharp edges are often desirable in certain projects, although such objects don’t exist in real-life. The Rounding feature helps remove these unnatural areas, as well as provide an additional toolset for creating different variations of the same Primitive:
-
Enable – enables the Rounding feature both at the top and bottom of the Tube.
-
Radius – determines the size of the resulting rounded edge.
-
Segments – controls the overall smoothness of the Tube’s rounding.
Slice – often only a portion of the Primitive is required, for example, to fit into a corner between two objects. The Slice feature allows for generating Primitives that start from and end at specific angles:
-
Enable – enables the Slice feature on the selected Primitive.
-
From – specifies the starting angle, from which the Primitive is going to be generated.
-
To – controls the end angle, to which the Primitive is going to be generated.
INSTANCER
Proper handling of Cinema 4D files wouldn’t make much sense without a proper support for Cloners – a special kind of object that automatically duplicates and places its child objects in 3D space, based on a handful of input parameters. mO2 not only supports importing C4D scenes that include them, it also allows for adjusting their parameters once imported and even adding new ones in the form of Instancers. Their advantages go far beyond simply duplicating objects. They can also be automatically animated using Modifiers and, most importantly, they render much faster than when using the manual approach. In mO2, four methods for placing instances in 3D space are supported and can be changed using the Distribution Shape parameter.
Note
Entire Instancers can be duplicated by nesting them within other Instancers. Different distribution methods can be used to achieve complex shapes and animations.
Linear
Distributes instances along a line, starting from the Instancer’s position. Each instance will be moved, rotated and/or scaled by a constant amount in relation to the previous one in line. By default, this step is generated automatically between the first and last instance, although it can also be entered manually.

-
Instance Order – mO2 allows to distribute more than one object within a single Instancer – to do this simply drag and drop more objects into it. The default Iterate option will cause instance sources to be picked sequentially from the top of the list so if you have and Instancer with a Sphere, Cube and Cone inside it and set the Instance Count to 9, the first three instances will be a Sphere, Cube and Cone and the following ones will repeat the same pattern.
You can also pick these sources randomly and that’s exactly what the Random Instance Order is meant for. Once enabled, an additional Seed parameter will appear and changing it will generate different random patterns.
-
Count – determines the overall amount of instances generated by the Instancer.
-
Offset – offsets all instances by a specified step. Increasing this value by 1 will move all instances to their subsequent instances’ positions and so on.
-
Amount – controls the overall “strength” of the Position, Rotation and Scale offsets for all instances. Setting it to 0 will cause all of them to be in the position of the Instancer without any additional rotations and scaling, 2 will double all entered offsets and so on.
-
Distribution Mode – this setting determines the way the offsets between instances' are controlled. mO2 supports two distribution modes:
-
End Point – this is the default mode, in which all instances are distributed uniformly between the Instancer's position and the position of the last instance so once enabled, settings for adjusting its transformations will become available:
-
END POSITION (X/Y/Z) - determines the position offset of the last instance from the Instancer’s position. All instances will be distributed evenly between the Instancer’s position and this point.
-
END ROTATION (X/Y/Z) - determines the rotation of the last instance. Each instance will rotate gradually until the last one reaches these values.
-
END SCALE (X/Y/Z) - controls the size of the last instance. All instances will grow or shrink gradually from the default scale to this value.
-
-
Step – this mode allows to set a step between each instance. The first one will be placed in the position of the Instancer, second will be moved, rotated and scaled based on the following offsets and so on:
-
POSITION OFFSET (X/Y/Z) – determines the position offset between each instance.
-
ROTATION OFFSET (X/Y/Z) – controls the rotation offset between each instance.
-
SCALE OFFSET (X/Y/Z) – controls the scale offset between each instance.
-
-
-
Disable Source Transform – any object within the scene can be moved, rotated or scaled via parameters from the Basic group. Enabling this option will completely omit these settings so the instances’ transformations will be handled entirely by the Instancer.
LINE TWISTING
-
Twist X/Y/Z – these parameters control the direction of where all subsequent instances will be placed resulting in a twisted line.
TRANSFORM ALL
All instances are moved, rotated and scaled based on the Instancer’s settings but they can also be transformed by a constant amount so if for example you want to tilt all of them by 45 degrees or double their size, this is where it can be done:
-
Position X/Y/Z – moves all instances by an equal distance.
-
Rotation X/Y/Z – rotates all instances by an equal angle.
-
Scale X/Y/Z – enlarges or shrinks all instances by an equal amount.
Radial
Distributes instances on a circle.

-
Instance Order – mO2 allows to distribute more than one object within a single Instancer – to do this simply drag and drop more objects into it. The default Iterate option will cause instance sources to be picked sequentially from the top of the list so if you have and Instancer with a Sphere, Cube and Cone inside it and set the Instance Count to 9, the first three instances will be a Sphere, Cube and Cone and the following ones will repeat the same pattern.
-
Count – controls the number of instances that will be placed in the specified circular pattern.
-
Disable Source Transform – any object within the scene can be moved, rotated or scaled via parameters from the Basic group. Enabling this option will completely omit these settings so the instances’ transformations will be handled entirely by the Instancer.
-
Align Rotation – enabling this option will cause all instances to point outside of the Instancer’s circular shape.
CIRCLE
-
Radius – controls the radius of the Instancer’s circular pattern.
-
Plane – having the shape and radius of the Radial Instancer is not enough to place it in 3D space. You also need to pick an axis that will determine the direction it should be facing. If you’re unsure which one you need to pick, simply look at the Instancer’s 3D Gizmo – the Instancer’s circle will always be perpendicular to the picked axis’ direction.
CIRCLE FILLING
Instances can cover only a portion of the Radial Instancer’s circle. The following options allow to specify angles, between which they are going to be distributed:
-
Start Angle – specifies the starting angle, from which the Instances are going to be generated.
-
End Angle – specifies the end angle, to which the Instances are going to be generated.
TRANSFORM ALL
All instances are moved, rotated and scaled based on the Instancer’s settings but they can also be transformed by a constant amount so if for example you want to tilt all of them by 45 degrees or double their size, this is where it can be done:
-
Position X/Y/Z – moves all instances by an equal distance.
-
Rotation X/Y/Z – rotates all instances by an equal angle.
-
Scale X/Y/Z – enlarges or shrinks all instances by an equal amount.
Grid
Distributes instances in a regular 3D grid.

-
Instance Order – mO2 allows to distribute more than one object within a single Instancer – to do this simply drag and drop more objects into it. The default Iterate option will cause instance sources to be picked sequentially from the top of the list so if you have and Instancer with a Sphere, Cube and Cone inside it and set the Instance Count to 9, the first three instances will be a Sphere, Cube and Cone and the following ones will repeat the same pattern.
-
Disable Source Transform – any object within the scene can be moved, rotated or scaled via parameters from the Basic group. Enabling this option will completely omit these settings so the instances’ transformations will be handled entirely by the Instancer.
INSTANCE COUNT
-
Count X/Y/Z – determines the number of instances along each of the grid’s axes.
GRID SIZE
-
Size X/Y/Z – these three parameters specify the size of the entire grid with separate control for each axis.
GRID SHAPE
-
The Instancer’s grid can be limited to a specific shape. By default, it is generated in the form of a Cube but Sphere and Cylinder shapes are available as well.
TRANSFORM ALL
All instances are moved, rotated and scaled based on the Instancer’s settings but they can also be transformed by a constant amount so if for example you want to tilt all of them by 45 degrees or double their size, this is where it can be done:
-
Position X/Y/Z – moves all instances by an equal distance.
-
Rotation X/Y/Z – rotates all instances by an equal angle.
-
Scale X/Y/Z – enlarges or shrinks all instances by an equal amount.
Object
This mode provides an option to pick an actual 3D model from the scene and distribute instances on its surface. Their amount and positioning are determined by the source model’s vertices.

-
Instance Order – mO2 allows to distribute more than one object within a single Instancer – to do this simply drag and drop more objects into it. The default Iterate option will cause instance sources to be picked sequentially from the top of the list so if you have and Instancer with a Sphere, Cube and Cone inside it and set the Instance Count to 9, the first three instances will be a Sphere, Cube and Cone and the following ones will repeat the same pattern.
-
Disable Source Transform – any object within the scene can be moved, rotated or scaled via parameters from the Basic group. Enabling this option will completely omit these settings so the instances’ transformations will be handled entirely by the Instancer.
-
Distribution Source – to pick the object, on which the instances are going to be distributed, simply drag it directly from the Scene Content view onto this parameter. Once this is done, its geometry and transformation will be taken into account when placing the instances in 3D Space
-
Align Clone – enabling this option will align all instances with the distribution source’s surface instead of placing them in an upward position.
TRANSFORM ALL
All instances are moved, rotated and scaled based on the Instancer’s settings but they can also be transformed by a constant amount so if for example you want to tilt all of them by 45 degrees or double their size, this is where it can be done:
-
Position X/Y/Z – moves all instances by an equal distance.
-
Rotation X/Y/Z – rotates all instances by an equal angle.
-
Scale X/Y/Z – enlarges or shrinks all instances by an equal amount.
MODIFIER
3D models that have already been duplicated and distributed via Instancers can be further moved, scaled and/or rotated using Instance Modifiers – invisible, animatable objects that affect all instances within their range. They can be in the shape of a Cube, Sphere or affect all instances equally, regardless of their distance from the Modifier. A smoother or more rapid behavior can be achieved by adjusting the Range Falloff parameter.
Only Modifiers assigned to a specific Instancer will affect its instances. To assign it to a specific Instancer, simply drag&drop the Modifier onto one within the Scene Content view. After that it will be added to the list located right under the Instancer’s name, indicating that it will be taken into account when distributing its instances.
Basic Settings

-
Modifier Strenght – controls the overall intensity of the Modifier. This is particularly useful when attempting to animate the effect of a Modifier with an infinite range in or out. Instead of animating each of instances’ position, rotation and/or scale parameter separately, all you need to do is animate this single value.
MODIFY POSITION
-
Position X/Y/Z – these settings control how the instances’ positions will be affected when they come within the Modifier’s range.
MODIFY ROTATION
-
Rotation X/Y/Z – these settings control how the instances’ rotation will be affected when they come within the Modifier’s range.
MODIFY SCALE
-
Scale Uniformly – enabling this option will cause all affected instances to be scaled by the same amount on each axis. Disabling it will provide control over them separately.
-
Global Scale – controls how the instances’ scale will be affected when they come within the Modifier’s range.
-
Scale X/Y/Z – once the Scale Uniformly option is disabled, these three parameters will replace the Global Scale slider, allowing the control of the instances’ scale on each axis separately.
SHAPE SETTINGS
Instance Modifiers can have an actual 3D shape that will affect their influence on the instances distributed throughout the scene. For example, a flat Modifier located in the middle of a large Grid Instancer it’s assigned to will only affect a portion of its instances. Increasing its height will start to affect additional ones because more of them will now be within its range.
Once a Modifier is selected, its 3D shape will be displayed within the On Screen Controls, providing an instant preview of its range when adjusting its shape controls:
-
Falloff Shape – this setting determines the Modifier’s basic shape. mO2 allows creating Modifiers (and import Cinema 4D Effectors) with the shape of a 3D Cube, Sphere as well as ones with Infinite range. Only the first two of them describe an actual 3D shape and choosing them will reveal the following settings:
-
Invert Shape – inverts the way the Modifier’s range is being taken into account. For example, if you have a spherical Modifier placed in the middle of a grid Instancer, by default all instances within its range will be affected. But once this option is enabled, the Modifier will affect all instances outside its range.
-
Global Range – controls the overall range of the Modifier. Changing it will affect its scale on all axes equally.
Note
The difference between these settings and scaling parameters located in the Basic group is that Range is specified in meters whereas Scale is the multiplier for the scale of the entire object and its children.
-
Range X/Y/Z – these parameters provide control over the Modifier’s range along each axis separately, so you can change its shape from a simple sphere into an ellipsoid, etc.
-
Falloff – this is a very important parameter, mostly because it can smooth out the transition of instances’ movement when they come within the reach of an animated Modifier. Setting it to 0 will cause them to instantly reach the Position, Rotation and/or Scale values set within the Modifier, 0.5 will cause them to reach these values at the half of the Modifier’s range, 1 will fully affect just the instances located exactly in the center of the Modifier and so on.
-
Behavior Mode
Modifiers can operate in one of three modes that affect the way they move, rotate and scale instances.
Simple
Once an instance distributed by an Instancer gets within the range of the Modifier assigned to the Instancer, it will be transformed based on the values used within the Modify Position, Modify Rotation, Modify Scale and Shape Settings groups. So if, for example, your Modifier has the Position X parameter set to 10, it will move the affected instances by 10 meters on the X axis.

Modifier with its Behavior Mode set to Simple.
Random
Once this mode is chosen, values set within the Modify Position, Modify Rotation and Modify Scale groups will determine ranges, from which the instances’ final transformation values will be randomly picked. For example, setting the Position X to 2 in a Random Modifier will cause the affected instances to be moved by a random amount from the -2 to 2 meter range, resulting in a much more sophisticated distribution.
-
Seed – changing this value will generate a new pattern for the instances’ random placement within the scene.

Modifier with Random Behavior Mode.
Noise
The Noise Modifier works in a very similar way to the Random one but it also changes the randomly generated values over time and therefore is meant for animating the affected instances in an organic manner using a handful of parameters.
Noise Settings:
-
Speed – controls how fast the transitions in the instances’ position, rotation and scale will take place.
-
Scale – determines the size of the animated noise pattern driving the affected instances. Setting it to a small value will cause them to change their transformation rapidly, resulting in a more chaotic behavior whereas increasing it will eventually cause the instances to form a wave-like pattern.
-
Seed – changing this value will generate a new pattern for the instances’ random placement within the scene.

Instances moved using a Noise Modifier.
Note
A single Instancer can use any number of different Modifiers and a single Modifier can affect any number of Instancers at the same time.
Note
The order, in which Modifiers are listed within the Instancer matters – modifiers are being taken into account from top to bottom.
TEXT
mO2 includes an advanced 3D text generator with simple and intuitive controls and an intelligent algorithm that allows for expanding or shrinking fonts and their bevels without self-intersections

Basic Text Settings
-
Library – clicking on this button will open a Text Presets Library that contains all available Text Presets. Selecting one from the list applies it to the selected text and hitting OK confirms these changes. For more info on the Text Presets Library please refer to the Text Presets Library section of this manual.
-
Text – this field contains the source text string that’s going to be extruded in 3D space.
-
Font – displays the currently used font for the 3D text. It can also be used to pick a different font installed within the operating system.
-
Font Style – displays the currently selected font style. Depending on the picked font, Regular, Bold, Italic, Bold Italic, Oblique, Light, Light Oblique, Bold Oblique and/or other styles can be used.
-
Tracking – determines the horizontal distance between each letter.
-
Line Spacing – determines the vertical distance between each line of text.
-
Extrude Depth – controls the amount of extrusion of the currently selected text.
-
Alignment – determines whether the Anchor Point’s horizontal axis should be aligned to the Left, Right or the Center of the entire 3D text.
-
Vertical Alignment – determines whether the Anchor Point’s vertical axis should be aligned on the Top, Bottom or the Center of the entire 3D text.
-
Weight – allows for expanding and shrinking the entire font. Positive values will cause the text to expand while using negative ones will deflate all letters by a constant amount. Using extreme negative values will shrink the letters to a point where they disappear completely.
Bevel Settings
-
Bevel Shape – determines the base appearance of the text bevel. These presets can be divided into two types: Full (Bevel, Round, Concave, etc.) and Outlines (Square Ring, Bevel Ring, etc.).
-
Bevel Weight – allows for expanding and shrinking the text bevel. Positive values will generate the bevel outwards causing the text to expand whereas negative will generate an inner bevel.
-
Bevel Multiplier – controls the scale of the text bevel. Using 0 will result in a flat bevel.
-
Bevel Face Position – controls the distance between the text face and its body. Positive values will cause the face to move in front of the text, negative will push it inside.
-
Draw Face – determines whether the text face should be visible or not. This setting not only shows/hides the face but also generates the missing geometry when face drawing is disabled.
Text Behaviors
mO2 includes a wide range of pre-made animations that can be applied to the currently selected text. Clicking on the Library button will launch the Text Behaviors Library, from which different animations can be picked. Once a Behavior is chosen, a new set of basic parameters for controlling its timings and appearance will become available:
-
Start from Current Frame button – a button meant for setting when the Behavior’s animation is going to start. Clicking on it will match the Behavior’s Start Time parameter’s value with the current frame on the Timeline.
-
End at Current Frame button – a button meant for setting when the Behavior’s animation is going to end. Clicking on it will cause mO2 to read the current frame and combine it with the Start Time to calculate how long the Behavior is going to last. The result will be set as the Behavior’s Duration .
-
Start Time – determines the frame, from which the selected Behavior is going to start.
-
Duration – controls the overall duration of the picked Behavior.
Each Behavior can modify the text’s position, rotation, scale and tracking. The magnitude of these modifications can be altered using the following parameters:
-
Position Multiplier – increases or decreases the position offset caused by the picked Behavior.
-
Rotation Multiplier – increases or decreases the rotation offset caused by the picked Behavior.
-
Scale Multiplier – increases or decreases the scale offset caused by the picked Behavior.
-
Tracking Multiplier – increases or decreases the tracking offset caused by the picked Behavior.
SVG
Extrusion of 2D shapes doesn’t have to be limited to only text. Often custom shapes such as logos need to be included in a 3D animation and since vector images contain simple descriptions of each shape instead of storing a set of flattened pixels, they can also be used for 3D extrusion.

Import
Since vector images are meant to be displayed in 2D, they are often built using multiple colored layers stacked on top of each other to produce the final image which can be a problem when attempting to extrude them into 3D objects. Imagine a black rectangular logo with a white letter "A" inside it. If it's created using two shapes: a black rectangle and a path that cuts a hole in it in the shape of the letter "A", using such vector image in mO2 will be pretty straightforward. But the same 2D image can be achieved by a different set of shapes: the same black rectangle and a white letter "A" on top of it. Visually both images are exactly the same but since the latter one contains overlapping paths, mO2 will combine them instead of cutting a hole. We address these issues by allowing the user to decide which paths to use and which are supposed to be considered as holes. Once an SVG object is added to the scene and a vector image is picked from the hard drive, a new Load SVG window with the necessary tools will appear:

The left section of the window contains the hierarchy of the paths included in the picked SVG file. Hovering the mouse cursor over them will highlight the according area in the preview so you can easily determine where each path is located.
The SVG format supports a lot of different types of shapes, transparency, embedding rasterized images and other features that can't be translated to 3D. Because of this, exporting all shapes as simple path objects in SVG 1.0 format should generate a proper result. If for any reason the preview doesn’t look correct, the Load SVG window will provide basic control over each path via checkboxes located next to their names:
-
Use – determines whether a path is going to be considered when generating the extruded shape or not and by default it is enabled for all paths.
-
Hole – paths aren’t always added together, they can also cut holes in the entire SVG shape. This checkbox determines whether a path should be treated as an additional element or a hole.
Basic SVG Settings
Once all paths are set, clicking the Load button in the lower-right part of the window adds the extruded SVG object to the scene and its extrusion settings can be accessed via Inspector:
-
Extrude Depth – controls the amount of extrusion of the SVG shape.
-
Weight – allows for expanding and shrinking the SVG shape. Positive values will cause it to expand while using negative ones will deflate its shape by a constant amount. Using extreme negative values will shrink it to a point where it disappears completely.
Bevel Settings
-
Bevel Shape – determines the base appearance of the extruded SVG’s bevel. These presets can be divided into two types: Full (Bevel, Round, Concave, etc.) and Outlines (Square Ring, Bevel Ring, etc.).
-
Bevel Weight – allows for expanding and shrinking the extruded SVG’s bevel. Positive values will generate the bevel outwards causing the extruded SVG to expand whereas negative will generate an inner bevel, thus keeping the SVG’s design intact.
-
Bevel Multiplier – controls the scale of the extruded SVG’s bevel. Using 0 will result in a flat bevel.
-
Bevel Face Position – controls the distance between the extruded SVG’s face and its body. Positive values will cause the face to move in front of the SVG, negative will push it inside.
-
Draw Face – determines whether the extruded SVG’s face should be visible or not. This setting not only shows/hides the face but also generates the missing geometry when face drawing is disabled.
AREA LIGHTS
The mO2 scene can be lit from two types of sources: the Environment image (for more info please refer to the 3D Environment section of this manual) and Direct Lighting – actual 3D lights placed within the scene.
Area Lights are a special kind of Direct Lights. Just like all real-world light sources they have a physicalshape, making it easier to show the material properties of a specific surface. This means that if you shine such light onto a highly polished surface, its reflection will be in the form of a sphere instead of an infinitely small point. Objects with a rough surface will also be lit differently based on the light’s radius. Its effect can be observed by placing a Sphere Light next to a matte, round object. Making the light really small will cause it to behave just like a regular Point Light, but a larger radius will eventually cause its lighting to wrap around the object next to it, resulting in a softer look.
mO2 supports four types of lights: Sphere, Spot, Directional and Ambient.
Sphere
Sphere Lights shine in all directions and illuminate the scene based on their intensity, color and radius.

Sphere Light
-
Color – controls the color of the currently selected light.
-
Intensity – determines the total amount of light emitted by the Sphere Light in all directions and it’s independent of the light’s size. This means that making it larger will not change the illumination of your scene but highlights produced by such light will get dimmer as its area increases (since the same power will be distributed over a larger area), as well as in the light’s appearance when the “Display in Render” option is enabled.
-
Render Shape – controls whether the light’s shape should be visible in the scene or not. Note that even if this option is disabled, highlights produced by such light will remain present.
-
Light Radius – controls the physical size of the light in meters.
-
Enable Shadows – controls whether the light is going to cast shadows or not. Note that enabling this option for a Sphere Light will require six additional renders of the entire scene per frame , thus affecting performance.
Spot
Spot Lights work similarly to Sphere Lights and include all of their settings. The main difference is that they shine in a single direction so rotating them will affect the way they illuminate the scene. The Spot Lights’ angle and falloff can also be adjusted to achieve different results.

Spot Light
-
Color – controls the color of the currently selected light.
-
Intensity – determines the total amount of light emitted by the Spot Light and it is independent of the light’s size. This means that making it larger will not change the illumination of your scene but highlights produced by such light will get dimmer as its area increases (since the same power will be distributed over a larger area), as well as in the light’s appearance when the “Display in Render” option is enabled.
-
Render Shape – controls whether the light’s shape should be visible in the scene or not. Note that even if this option is disabled, highlights produced by such light will remain present.
-
Light Radius – controls the physical size of the light in meters.
-
Spot Angle – determines the width of the Spot Light’s cone.
-
Angle Smoothness – controls the softness of the Spot Light’s border.
-
Enable Shadows – controls whether the light is going to cast shadows or not. Note that enabling this option for a Sphere Light will require six additional renders of the entire scene per frame , thus affecting performance.
Note
To make the lighting in mO2 as realistic as possible, the lights’ intensities are provided in physical units, in this case, Lumens (lm). These can be entered as desired, although picking real-life values is preferred. Light bulb manufacturers usually include the luminous power of their products on the packaging so using them along with the correct scene scale (in mO2 1unit = 1meter) will result in a more realistic light behavior.
Directional
Directional Lights can be perceived as extremely distant lights that illuminate the scene from a certain direction, as opposed to Sphere and Spot Lights that emit light from a spherical shape located in 3D space. Because of this, their influence on the scene is determined mainly by their rotation. Of course Color and Intensity parameters are also taken into account, although note that since they are really far away, the latter one is provided in a much larger light unit – in this case hundreds of Lux – so if you wish to mimic the luminance of the Sun, make sure you set your Directional Light’s Intensity to around 1100.

Directional Light
Ambient
Ambient Lights don’t have a source as they light all surfaces by a constant amount. They are especially good for softening harsh lighting and even faking Global Illumination.
Say you’ve got a scene where some object casts a really dark shadow that you wish to brighten. Simply adding the Ambient color to your current lighting would affect the entire scene and require re-adjusting all remaining lights. That’s why in mO2 Ambient Light only affects pixels that are darker than the light itself. This way you can add it to any scene and adjust its intensity so that only the dark regions are affected.

Ambient Light
-
Ambient Color – mO2 provides two ways of determining the Ambient Light’s color:
-
Manual – the light’s color will be set to a constant value.
-
Environment – the light’s color will be based on the current Environment Lighting color. Using this mode will cause the Ambient Light to increase the diffuse illuminance of the Environment.
-
-
Intensity – controls the light’s overall intensity.
SCENE SETTINGS

Environment
In mO2, the main purpose of the 3D Environment is to illuminate the entire scene using a high dynamic range image (HDRI). Environmental Lighting exploits extreme differences in pixel brightness that simply cannot “fit” within regular 8bit images, such as JPG. Instead, 32 and 16-bit formats like EXR or HDR are required.
-
Environments Button – clicking on this button will open the Environment Library that contains all available HDRIs. Selecting one from the list will apply the selected Environment and hitting OK will accept these changes.
-
Horizontal offset – allows rotating the 3D environment horizontally.
Color Correction
Since the 3D Environment is based on an image, adjusting its color or intensity boils down to applying a filter to it. This group contains basic parameters such as Gamma, Hue, Saturation and Brightness for adjusting its colors without having to create a new HDRI in a third-party image editing app.
Background

mO2 provides four types of backgrounds:
Gradient
A smooth gradient with editable ranges, colors and gradient Gamma. Two types of gradients are supported:
-
Radial :
-
Inner Color – determines the inner color of the Radial Gradient.
-
Outer Color – determines the outer color of the Radial Gradient.
-
Center X/Y – controls the location, from which the Radial Gradient is going to be generated.
-
Radius – controls the size of the Radial Gradient’s color ramp.
-
Feather – controls the smoothness of the Radial Gradient’s color ramp.
-
Aspect – this parameter allows to set an aspect ratio for the Radial Gradient, resulting in an oval shape.
-
-
Linear:
-
Color A – determines the color, from which the Linear color ramp is generated.
-
Color B – determines the color, to which the Linear color ramp is generated.
-
Point A X/Y – controls the position of the point, from which the Linear color ramp is generated.
-
Point B X/Y – controls the position of the point, to which the Linear color ramp is generated.
-
Feather – controls the smoothness of the Linear color ramp.
-
Environment
The 3D Environment texture is wrapped around a sphere that surrounds the entire mO2 scene and therefore can also be used as an interactive background that will match the Camera’s viewing direction.
-
Blurriness – the displayed background can be softened by choosing from a range of steps available on this list. Note that this only affects the Background, the objects within the scene (especially ones with low Roughness) will still reflect the unblurred Environment texture.
Image
A custom image can also be used as the Background – a variety of designs is available within the Background of custom images can be imported as well.
-
Snap To – by default, the background image is going to be scaled to match the project’s width. Changing this parameter to “Height” will cause the background image to be scaled to match the project’s height.
-
Pan X/Y – these parameters allow for moving the background image horizontally and vertically.
-
Zoom – controls the overall size of the background image.
Drop Zone
In this mode, a custom Motion 5 layer (or group) can be used as the source for the 2D Background.
Note
The layer/group you wish to use needs to have the same resolution as the mO2 generator. If it doesn’t, you can drop it into a new 2D group and, in the Inspector -> Group tab, enable the “Fixed Resolution” check-box and make sure that both “Fixed Width” and “Fixed Height” parameters match the generator’s resolution. After this group can be used as the source for the 2D Background Drop Zone.
-
Drop Zone – an Image Well parameter, onto which the Motion layer/group needs to be dragged and dropped. After it will be used as the source for the Background.
-
Pan X/Y – these parameters allow for moving the background Drop Zone horizontally and vertically.
-
Zoom – controls the overall size of the background Drop Zone.
-
Time Offset – the used layer/group may contain animated elements or even a video layer. This parameter allows for offsetting the time, from which the frame is going to be read.
Alpha Channel
Once this mode is enabled, the mO2’s scene will be rendered on a fully transparent background. It can be used to export the entire animation with Alpha Channel for further use in other editing and compositing applications.

Alpha Channel
Contrary to the Drop Zone mode, Alpha Channel doesn’t require a background image source. This means that effects such as Refraction or Planar Reflections will not be able to access the background image and will therefore refract and reflect the Environment texture. If the background image is supposed to be refracted and reflected by objects in the scene, Drop Zone mode should be used instead.
All post-processing effects take Alpha Channel into account. This means that effects such as Motion Blur and Depth of Field will blur the elements visible in the scene and fade out gradually when transitioning to the transparent background, Bloom and Lens Ghosting will generate proper, semi-transparent glows, etc. Videos and graphics placed below (“behind”) the mO2 generator will not be affected.
Note
To export an mO2 animation with Alpha Channel, a proper file format and codec must be used. In case of video formats the most commonly used codec is ProRes 4444. For image sequences, formats that support Alpha Channel include PNG, TGA, TIFF and OpenEXR.
Color Correction
All types of backgrounds, except the Alpha Channel, can be adjusted using the parameters located in the Color Correction group. Note that even if 3D Environment is selected as Background, changing these settings will only modify its appearance in the background, leaving all lighting and reflections intact.
Apply Post Effects
By default, the Background color is affected by all post-processing effects – it generates Bloom, it is blurred by Depth of Field, colorized by Filmic Tone Mapping etc. Disabling this option will skip the Background when computing these effects.
Ability to disable Post Effects on the Background can be very useful when compositing the mO2 scene with live action footage. Videos placed into the Background Drop Zone already include all imperfections such as Depth of Field, Lens Distortion, Aberration and Film Grain so there's no point in applying them again. It makes more sense to disable them on the Background image and tweak them to match the clip's distortions.

Background can now be excluded from Post Effects.
Render Settings

Each effect requires a certain amount of processing power so the more of them you have enabled, the slower your render will be. Each can be either disabled or adjusted via parameters located in the Render Settings section:
Ambient Occlusion
AO is an effect used to darken areas where surfaces are close to each other, therefore increasing the realism of the final render. The following settings allow for adjusting its appearance:
-
Intensity – controls the overall darkness of the AO. The higher the intensity, the darker the effect.
-
Range – this parameter determines how far the Ambient Occlusion algorithm is going to look for neighboring geometry. To bring out only the really small details of your geometry, decrease this value. On the other hand, to achieve a soft, diffuse shadowing, set it to a higher value.
Anti-Aliasing
mO2 uses a Temporal Anti Aliasing method to smooth out the jagged edges, as well as eliminate extremely bright pixels popping in and out during movement, a known issue in PBR rendering.
Scenes can be vastly different in terms of material settings, animation, lighting, etc. so to eliminate artifacts that occur in certain situations, Anti-Aliasing can be adjusted using the following settings:
-
Enable – enables or disables the Temporal Anti-Aliasing effect.
-
Camera Jitter – Temporal AntiAliasing uses movement to smooth out the jagged edges, but there are times where only a slight or even no movement is desired. In such cases, edges are being reconstructed by slightly jittering the Camera at every frame. This parameter controls the magnitude of the said jitter.
-
Reduce Ghosting – Temporal AntiAliasing uses information from the previous frames to reconstruct edges in the current frame. Because of this, artifacts such as trails left by a moving object may occur. When this option is enabled, our algorithm will attempt to reduce these artifacts in exchange for a more aliased output.
Color Correction
This group contains parameters that control the output color.
-
Filmic Tone Mapping – enabling this option will apply a filmic tone mapping curve based on the well-known ACES to the output image.
Post Effects
The following options are meant for enabling or disabling post effects, even when Beauty Mode is enabled:
Reflections
Enable Planar Reflections – enables or disables the Planar Reflections effect.
Shadows
-
Enable – enables or disables the computation of shadows from Area Lights
-
Shadow Map Resolution – determines the resolution of shadow maps. Changing it to Low, Medium and High will set the shadows’ resolution to 256x256, 512x512 and 1024x1024 pixels respectively. Default is the equivalent of the Medium setting.
PLANAR REFLECTIONS
Since all Materials reflect light (rough ones scatter it around whereas polished result in sharp reflections), neighboring objects should be visible in their reflections.

3D geometry and its reflection generated using the Planar Reflections feature.
Calculating these reflections for each pixel in the scene would be extremely slow so, by default, Materials only reflect the 3D Environment. The actual scene content, on the other hand, can be reflected using mO2’s Planar Reflections feature. Once enabled, it will act as an invisible, flat “3D mirror” whose reflections will be displayed instead of the mentioned 3D Environment. The mirror’s position and direction need to be aligned with the surface that’s going to make use of these reflections – this can be done using settings listed below:
-
Enable – enables or disables the Planar Reflections feature on the selected object.
-
Pick Origin button – clicking on this button enters a mode, in which you can pick a pixel aligned with the desired surface by simply mouse-clicking on it directly inside the Viewer.
-
Distance – allows to manually set the position of the mirror in relation to the currently selected object’s3D position. Changing this value will move the reflection plane along the direction set by the Rotation X/Y/Z sliders below.
-
Rotation X/Y/Z – provides manual control over the reflection plane’s direction.
Note
Planar Reflections can be used for creating reflective floors, walls as well as other flat surfaces but they require an additional render of the scene per frame and therefore increase video memory usage and may affect performance.
LIBRARIES
All assets used in mO2 are placed within Models, Materials, Textures, Environments, Backgrounds and Text Presets Libraries and all of them can be used in a similar way:
-
Every item within a specific Library is assigned to a category. To create a new category, right-click on the master category (Textures, Models, etc.) and choose the “Add new category“ option.
-
Each category can contain multiple subcategories that can be created in a similar way – by right-clicking on the desired category and choosing the “Add new subcategory” option.
-
Both categories and subcategories can be renamed by double-clicking on their names as well as rearranged via drag & drop as desired within this view.
-
Once a category is selected, all items assigned to it will be listed in a scrollable view in the main part of the Library window.
-
All items within a Library can be renamed or removed via the context menu. To bring it up, simply right-click on the desired item. Their names can also be changed by double-clicking directly on them. Built-in assets determine the most basic content and therefore can't be removed.
-
Items can be moved from one (sub)category to another by dragging and dropping them onto the desired one on the list.
-
Certain Materials, Textures or Models are used more often than others. mO2 includes an option to mark them as Favorite by clicking on the star icon located in the upper-right corner of their preview image. Once marked, they will be listed after selecting the Favorites category.
mO2 also includes additional static libraries: Text Behaviors and Object Behaviors . Their content and categories can’t be modified by the user.
Model

Contains all available 3D models. mO2 includes a set of models that are available instantly after installing the plugin – to add one to the scene simply select it on the list and hit the “Add to Scene” button.
Import Model window
Custom models can also be imported to the Model Library by clicking on the Import Model button located in the lower-left corner of the Model Library.

Various 3D file formats are supported: glTF 2.0, OBJ, FBX, DAE, 3DS, LWO, LWS and more.
The Import Model window provides a set of controls:
-
A text field, where you can type in your model's name, under which it will be listed in the Model Library.
-
Save to Library – this list contains all available Categories, as well as an option to create new ones. The Category, in which the model is placed can be changed later on.
-
Size – displays how large the imported model will be after importing it to mO2's Model Library. Adjusting one dimension will scale the remaining ones proportionally.
Scale is very important in Physically Based Rendering so make sure your Coin model isn't as tall as a building, unless that's what you actually need.
-
Import Materials
This option allows to import the model's Materials as well as choose their Material Workflow
Once the model file is picked, the plugin will require additional info such as Name and the Category it’s going to be assigned to. You will also need to specify other important details such as the model’s size (in meters) and its Material Workflow. The latter one determines what kind of textures are provided with it:
-
Materials for Physically Based Rendering (PBR) are usually provided with one of two texture sets: Metalness/Roughness, which is used natively by mO2 so the imported textures will be copied to the Library without any alterations or Specular/Glossiness , which will be converted automatically before copying. Both workflows may contain Albedo (also called Diffuse or Color), Normal, Illuminance and Cavity (Ambient Occlusion) textures. If you’re having problems with determining the PBR Material Workflow, try checking the texture files – if one of them is a grayscale image with “Metalness”, “Metal” or a “_M” suffix in its name, it’s safe to say that the Material is prepared for the Metalness/Roughness workflow.
-
If a model was created for use in a 3D application such as Maya or 3dsmax, its textures will most likely be based on a non-PBR workflow and therefore Legacy should be used. After that, the plugin will automatically convert them to the native Metalness/Roughness workflow. If a model was created for use in a 3D application such as Maya or 3dsmax, its textures will most likely be based on a non-PBR workflow and therefore Legacy should be used. After that, the plugin will automatically convert them to the native Metalness/Roughness workflow.
Note
PBR and Legacy workflows aren’t directly compatible so the converted materials may differ from how they look in other renderers that support them natively.
Note
If you’re importing a model meant for the Unreal Engine 4, it can also be used in mO2, although the Normal maps will need to be flipped vertically in the Material settings (packed channels are not supported).
-
-
Import Animation
This option allows to import models with animated position, rotation and/or scale parameters. Additional settings can be used to tweak it to your needs:
-
Animation – this list contains all animations embedded within the selected file, the selected one will be used in the imported model.
Note
There are multiple ways of storing animation data and they can differ between formats. When exporting a model from Blender 2.8 or later, we recommend using the following settings:
-
For FBX files, "NLA Strips" and "All Actions" options should be disabled.
-
For DAE files, Animation type should be set to "Curves".
-
For glTF files, the "NLA Strips" option should disabled.
-
-
Duration – determines the final duration of the imported animation. This parameter can be modified to make it quicker or slower.
-
End Condition – this option determines how the model is going to behave once the animation finishes playing:
-
Hold – once the last keyframe of the animation is reached, the model will stop moving.
-
Loop – once the last keyframe of the animation is reached, the model will animate again from the beginning of the animation. The amount of loops is determined by the Loops parameter located below.
-
Ping-Pong – once the last keyframe of the animation is reached, the next loop will animate the model backwards in time, next will animate forward, and so on. The amount of loops is determined by the Loops parameter located below.
-
-
Additionally, mO2 includes extensive support for Cinema 4D (.c4d) files and can import various types of data stored inside it:
-
Static geometry (Polygon Objects)
-
Parametric Primitives – Capsule, Disc, Cone, Cube, Cylinder, Oil tank, Plane, Platonic, Pyramid, Sphere, Torus, Triangle and Tube
-
Cloner objects – Linear, Radial, Grid and Object distribution modes are supported
-
Effectors – Plain and Random Effectors are supported
Note
Each application has their own algorithm for calculating random values, which is why the result of mO2’s Random Modifier may differ from the C4D’s Random Effector.
-
Materials – Color, Image Textures and their Mix values are supported. Material settings are converted from Cinema 4D’s “Legacy” to mO2’s Metalness/Roughness material workflow
-
Animations – all keyframes and their Bezier Curves for the basic transformation settings such as Position, Scale, Rotation, the supported Material parameters as well as settings for the supported parametric objects (Primitives, Cloners) will be imported.
Note
All unsupported parametric 3D objects such as Extrude NURBS, Sweep NURBS will also be imported as static, non-editable geometry, but this cached data needs to be embedded within the C4D file. To include it, open the desired project in Cinema 4D, go to Edit -> Preferences -> Files section, make sure that the “Save Polygons for Melange” option is enabled and re-save it.
Material

mO2 includes a comprehensive library of real-world materials, ranging from metals, plastics and glass to woods, rocks and more. To apply one to the selected object simply pick a category, select the desired Material from the list and click OK to apply changes. Custom made materials can be added to the Library by selecting the desired Material within the Inspector and hitting the Save to Library button at the bottom of the selected Material’s settings.
Texture

Textures are meant for adding variety to the Material’s surface. Even a single texture can make a big difference in its appearance, adding more realism to the surface. This Library is being launched after clicking on the Texture button located in each Material Channel. Once brought up, selecting a texture from the list will set it in the Material Channel, from which the Texture Library was opened.
Note
Currently used Textures need to be copied to the graphics card’s video memory and at some point, they may fill it completely, drastically affecting performance so the less of them you use in your scene, the better. When creating your own Materials, start off without any textures, then add Roughness and if that’s not enough, move on to Normal, Albedo, Metalness, Cavity and Illuminance.
Note
Once the Texture Library is open, you can load textures to different Material Channels without closing its window. Simply click on the Texture button within the desired channel and the newly picked texture will be applied to it.
Environment

Contains environment (HDRI) textures, both provided with the plugin and imported by the user. To preview the result of a specific Environment within the viewport, simply click on the desired image. After that mO2 will load it from the disk and the scene’s lighting will be updated. For more info on using 3D Environments please refer to the 3D Environment section of this manual.
It also contains an “Import” button that allows to import custom Environment images to the Library. mO2 Environments require actual High Definition Range data so only .exr and .hdr formats are allowed.

Additionally, mO2 allows to import Environments in both equirectangular and “cross” formats.
mO2 also allows to create new Environment textures taking your current scene objects into account. For more info, please refer to the Capture Envi section of this manual.
Background

Contains all available background images, both included and imported by the user. To set a Background within the host app’s viewport, simply click on the desired image and the scene will be updated. For more info on using the available background types please refer to the 2D Background section of this manual.
Text Presets

mO2 contains an entire library of presets that affect the appearance of the text and SVG objects. They not only apply specific materials to their face, bevel and/or body, but also set a matching bevel style and, in case of 3D text, font, tracking, etc. They have been carefully stylised to provide a simple one-click solution for finding the right style for your 3D extruded object. To apply a preset, simply click on the desired one from the list and the currently selected object will be updated.
Text Behaviors

Contains all available Text Behaviors – predefined sequences that can be used to quickly animate 3D text within mO2. They have been categorized based on the types of animations they represent. Each animation can be previewed by hovering the mouse cursor on their image on the right part of the Text Behaviors window. To apply a Text Behavior, simply click on it and it will be applied to the currently selected text. For more info on using Text Behaviors please refer to the Text Behaviors section of this manual.
Object Behaviors

Contains all included Object Behaviors – predefined animations that can be applied to any object within the scene. They have been categorized based on the types of animations they represent. Each animation can be previewed by hovering the mouse cursor on their image on the right part of the Object Behaviors window. To apply an Object Behavior, simply click on it and it will be applied to the currently selected item. Object Behaviors are completely separate from Text Behaviors so a single Text object can have both a Text and Object Behavior applied to it. For more info on using Object Behaviors please refer to the Animation section of this manual.