**Bella for Maya** [Bella for Rhino](../bella_rhino/index.html) | [Bella for Maya](../bella_maya/index.html) | [Bella for SketchUp](../bella_sketchup/index.html) | [Bella GUI](../bella_gui/index.html) | [Bella CLI](../bella_cli/index.html) | [Bella Core](../bella/index.html) | [Tutorials](../../tutorials) | [Node Definitions](../nodes/index.html) | [Main site](https://bellarender.com) | [Discord](https://discord.gg/AaQtpWt5aT) Introduction =================================================================================================== Bella for Maya integrates Bella directly into Maya, allowing for interactive rendering of scenes while they are being created and edited. Bella is based on a nodal system much like Maya's own, and Bella's nodes are exposed in Maya as native nodes, yielding a natural experience for Maya users. It is possible to work entirely within Maya, but the plugin also bundles the [Bella GUI](../bella_gui/index.html), for rendering outside of Maya, which will generally yield superior rendering performance, and keep Maya free, for you to keep working on your model. The currently-supported versions of Maya are 2018, 2019, 2020, and 2022. Note that though Bella natively supports Apple Silicon, as of the time of this writing Maya does not, so if you are on an Apple Silicon machine, you should definitely perform final rendering in Bella GUI. ## Scope This document pertains specifically to Bella for Maya, and does not cover general Bella concepts, for which you should refer to the [core Bella](../bella/index.html) and [node definition](../nodes/index.html) documentation. For information on Bella licensing, and how to install your Bella license, see Licensing in the [Bella GUI](../bella_gui/index.html) documentation. Installation =================================================================================================== To install Bella for Maya, download the package appropriate for your operating system (.zip for Windows, .dmg for MacOS) and follow these steps: ## Windows 1. Unzip the downloaded .zip file on your desktop. 2. Double-click on the installer .exe file and follow the directions. 3. Open Maya, go to Windows > Settings/Preferences > Plug-in Manager. 4. Scroll down, check Load and Load at startup for bella_maya.mll. ## MacOS 1. Double-click the downloaded .dmg to mount it. 2. Drag bella_maya and bella_maya.mod to the Maya folder. 3. Open Maya, go to Windows > Settings/Preferences > Plug-in Manager. 4. Scroll down, check Load and Load at startup for bella_maya.bundle. Note: it is recommended to have Load at startup enabled, because unlike some rendering plugins, Bella for Maya loads very quickly. Getting Started =================================================================================================== With the plugin loaded, you will find a new Bella shelf, and Bella as a choice in Maya's Render Settings, Render View, and Hypershade windows, where it will function similar to other renderers. ## Shelf The plugin adds a new Bella shelf to your workspace, which contains just a few commands: ![](shelf.png) Button | Function ---------------------|---------- Render in Bella GUI | Export to BSX file and start rendering in Bella GUI. Settings | Select the bellaSettings node. Beauty Pass | Select the bellaBeautyPass node. Color Dome | Connect bellaColorDome to bellaSettings:environment, and select it. Image Dome | Connect bellaImageDome to bellaSettings:environment, and select it. Sky Dome | Connect bellaSkyDome to bellaSettings:environment, and select it. Disable Dome | Clear bellaSettings:environment. Help | Show this help in the default browser. [Shelf buttons.] Besides the first and last, these are really just shortcuts for what you can otherwise do (i.e. connect and/or select the related node) via the Maya Outliner or Node Editor. *Render in Bella GUI* is for sending the scene to render outside of Maya (as opposed to rendering in the Render View) in Bella GUI, leaving you free to keep working in Maya as Bella renders the scene. The Help command depends on a web browser being set up correctly in your operating system, so if you click Help and nothing happens, ensure that .html files are associated with a web browser. You can also view help for all Bella node definitions [here](../nodes/index.html). ## Render Settings As would be expected, the plugin adds a Bella option to Render Settings > Render Using: ![](render-using-bella.png) Selecting Bella here will show Bella's Settings, Beauty Pass, and Environment tabs in the Render Settings window. The controls found in these tabs can be thought of as "remote control" for actual nodes that the plugin maintains in the Maya scene: the bellaSettings, bellaBeautyPass, bellaColorDome, bellaImageDome nodes (which are created on-demand, and none of which may be deleted): ![](standard-nodes.png) It is worth noting that not every attribute of these nodes is represented in the plugin's Render Settings tabs; to access some of the more obscure attributes, you can use the related Bella shelf buttons to select these nodes in the Attribute Editor. The Settings tab controls where output files are written, what they are named, and the way they are rendered: ![](settings.png) Note: to add extra render passes, click the Settings button in the Bella shelf and edit the bellaSettings node directly: ![](extra-passes.png) The Beauty Pass tab controls aspects of the default beauty pass, including when/how it should stop, which type of output it should produce, and how often that output should be saved while rendering: ![](beauty-pass.png) The Environment tab controls the type of environment used to render, and exposes attributes for the currently-selected environment: Scene Setup =================================================================================================== ## Camera The Bella camera is mainly accessed via the Bella section of Maya cameras: ![](maya-camera.png) Bella camera values not shown in this section (e.g. lens shift) are generally obtained from the parent Maya camera, in order to ensure natural interoperation with native Maya functions and 3rd- party nodes or scripts. The only Maya-specific attribute added here is the explicit Focus Distance checkbox, which prevents the plugin using standard Maya methods to compute the camera's focus distance, and puts it under your full control. Though rarely necessary, note that it is possible to override settings here by explicitly linking a bellaCamera, bellaSensor, and/or bellaLens in the Overrides section, though this will involve some experience with these Bella nodes, since there is a deal of non-obvious work done by the plugin when translating a Maya camera to its corresponding Bella camera/sensor/lens nodes. ## Materials Though the plugin will attempt to perform a reasonable translation of various Maya and Arnold materials, for best results it is strongly recommended to always use Bella materials. Bella materials are assigned and managed as any others, and appear as expected in a Materials sub- category of the Bella nodes category: ![](materials.png) In general, Bella material interfaces in Maya appear similar to how they do in the Bella GUI, since they are created using the same node definitions. However, to make things a bit easier, materials that support layers (bellaConductor, bellaDielectric, and bellaSubsurface) also expand their referenced layer in-place, when a layer is referenced: ![](embedded-layer-ui.png) The Bella material nodes attempt to provide a useful viewport representation, but if you would like to directly control what is shown in the viewport, you may also connect the outColor of some node to a Bella material's viewportShader attribute: ![](viewport-shader.png) ## Textures At the current time, Bella has only a small number of built-in procedural textures; in addition to file-based textures, we have only the bellaChecker, bellaColor, and bellaRandomColor nodes (we will be adding more over time): ![](textures.png) Beyond these there are also the Bella map textures: bellaBumpMap, bellaNormalMap, and bellaThicknessMap. These are not so much textures in and of themselves, but rather they are used to modify how Bella uses some other texture, which is connected to their Map attribute, for example: ![](maps.png) Regarding the bellaFileTexture shown above, it serves a purpose similar to that of the native Maya File node, but provides Bella-specific functionality (the abiity to connect a Bella input path node, set pixel-interpolation mode, etc): ![](rgbxform.png) Its use, however, is optional, and you may also use the standard Maya File node if you prefer, in which case the plugin will attempt to translate using your chosen color space (note: use Raw for linear), and will use Color Balance > Default Color for the Bella borderColor attribute. Another node which is not specifically a texture, but which is often useful when working with textures is the bellaRgbXform node: Note that bellaRgbXform does not yet have a viewport shader implementation, so it is most often useful to connect its input to the viewportShader attribute of nodes connected to its output. ## Lights Bella supports several types of Maya lights: - Area - Point - Spot - Directional In each case, a set of Bella attributes are added to the light, which work in conjunction with a few of the light's own attributes. For example, the areaLight is extended with Multiplier, Output, and Emitter Override attributes: ![](lights.png) Since Bella is a physically-based renderer, its light (emitter) output is generally specified in real units. However, this would often be cumbersome when dealing with an analytical light type in the host application. Therefore, the Bella light has both an Intensity attribute, taken from the Maya light, and a Multiplier attribute, which is used to scale the output of the Bella light to roughly match that of the Maya light, when it is rendered in Maya, or another renderer. Once the Multiplier has been set to obtain a rough match, the Intensity value can then be used to control output in both Maya and Bella. Other attributes added to Maya lights depend on the light type; if it has area there will be an Output attribute, to determine how to adjust power output as the light is scaled, as well as an Emitter Override to allow explicitly assigning a Bella emitter material. ## Render Flags Bella's renderFlags node is not directly exposed in Maya; rather attributes are added to Maya's Transform node: ![](render-flags.png) The function of these flags, however, is no different, and indeed, will be represented in the Bella scene through the use of a linked renderFlags node. ## Render Perfect Several types of geometry support the Bella Render Perfect option. For example, the Maya polySphere: ![](render-flags.png) It must be noted that Render Perfect applies to specific mesh generators, like polySphere, and not to meshes in general, nor to instances of them. This is because a mesh without its generator loses any concept of "sphere", "plane", and so forth. As such, pay attention to the options for Duplicate Special when duplicating meshes that use Render Perfect, since they will no longer do so, if they are duplicated without their generators. Furthermore, note that if you choose to apply Render Perfect to a piece of geometry, you will naturally lose some other abilities, such as the ability to assign per-face materials, or to arbitrarily deform the geometry. Rendering =================================================================================================== ## IPR When Bella is set as the current renderer, you can use the standard IPR commands in Maya's Render View window to start a Bella IPR session. ![](renderview.png) While IPR is active, Bella will listen for changes in the scene, interactively applying them to the rendering scene. In some cases it may be necessary to use the Refresh the IPR Image function, when certain actions that are not yet supported interactively are executed. These may include changes made to non-polygon geometry, grouping or un-grouping of objects, as well as various other actions. ## Render Similar to IPR rendering, you can also use the Maya Render command to render a final image (i.e. using the current Bella Beauty Pass solver) in the Maya Render View. The renderer may be stopped by using the ESC key. However, note here again that better rendering performance will generally be achieved by using Bella GUI, and you will also keep Maya free, to keep working on your model. ## Render Region Whether rendering in IPR or not, you may set a region by selecting a rectangle in the Render View: ![](render-region.png) ## Sequence Render Bella supports Render Sequence, just click main menu > Render > Render Sequence. NOTE: we have detected a rather severe memory leak in some versions of Maya, when the "Add to render view" option is enabled: ![](add-to-renderview.png) This is not related to Bella, and can be reproduced using any renderer, so we must recommend to avoid its use. ## Batch Render Bella also supports Batch Render. Note that it should work out of the box when initiated from within Maya, but that if you try to use Bella via the Maya Render command-line application, it is necessary to ensure that the plugin's bellaRenderer.xml file is copied to Maya's bin/rendererDesc directory. On Windows, bellaRenderer.xml is copied to this directory by the plugin installer, but on MacOS it is necessary to manually copy it from the plugin's install directory to Maya.app/Contents/bin/rendererDesc. ## In Bella GUI In addition to rendering via the standard Maya methods, you may prefer to export the scene to .bsx format and render it in the Bella GUI, allowing you to keep working in Maya, as Bella renders in the background: ![](render-in-gui.png) Note that while IPR and Render in Maya use the camera selected in the Render View > IPR > IPR Render menu, this command uses the current viewport camera. ## Hypershade Bella supports the standard Hypershade-based material preview workflow: ![](hypershade.png) Bella material nodes may be created using the Create Node window, or by going to Create > Bella Materials in the main menu. However, note that Hypershade may not show some Bella material-related nodes by default (e.g. bellaLayer, bellaScattering), and that it may be necessary to clear the default filter, in order to allow them to be shown: ![](hypershade-filter.png)