Live Rendering and Live Baking with the Beast Maya Plug-in

Uploaded by GameWareHowTos on 04.09.2012

Autodesk Beast is a software development kit
that allows you to create realistic lighting for games.
You can integrate Beast into any game engine.
However, the SDK also comes with a pre-integrated Maya plug-in.
This plug-in uses existing Maya lights in combination with the Beast Renderer
to display interactive renders right in the workspace.
In this movie, we’ll use Beast’s Live Render and Live Bake modes
to ready our scene for rendering.
Here we have a textured scene with a single directed light source representing the sun.
We can use the Beast plug-in to interactively preview how our scene will look
once rendered and lit.
This is known as a Live Render.
To view a live render of your scene, select Beast > Start Live Render.
Once the interactive preview is ready,
you just need to change the current Renderer to the Beast Renderer.
If you interact with the scene, Maya will update the render on the fly,
rendering additional passes if you leave the scene still.
You can adjust the render via Beast’s settings.
Let’s increase the Live View resolution so the preview isn’t quite so blurry.
You could also tweak the look of the render
by applying various scale or boost factors in the renderer.
These effects are applied only to the renderer
and will not affect the values of the actual lights in the scene.
For this example though, we’ll leave them at their default values.
These settings are stored in the beastSettings node,
viewable in the Outliner if you turn off DAG Objects Only.
We can still interact with the scene, but now the updates are slower.
You can mitigate this by turning on Wireframe mode.
Even if the live render is a little slower now,
Maya renders the wireframe quickly enough to frame the scene easily.
You can then use the Final Render command to output a rendered image of your scene.
You can also use Maya to interactively preview light maps for objects you specify.
Light maps allow you to bake the lighting information for your objects
directly in their textures or vertices.
This eases the strain placed on your actual game engine
since it won’t have to compute the lighting each time the scene is rendered.
To determine which objects Maya will bake, you need to group them together as a “target”.
You can create a new target or use one of the default targets. Let’s create a new target.
Targets can be set to bake lighting information into an object’s texture or via its per-vertex data.
In this case, let’s bake the lighting right into the texture.
As you can see, we can also create multiple render passes for a target.
The “defaultBeastPass” simply focuses on full illumination.
However, you can add additional passes to focus specifically
on direct and indirect illumination or diffuse shading.
You can view these render pass nodes in the Outliner
when the DAG Objects Only setting is turned off.
For now, we'll delete this extra pass and stick with just the defaultBeastPass.
Let’s also rename the target node to “mainSquareTextureTarget”.
Now you can add objects to bake by middle-dragging them onto the new target node.
Alternatively, you can select the objects and use the Beast > Add To Target command.
Now use the Start Live Bake command to begin baking.
As before, we’ll need to switch to the Beast Renderer to view our results.
Beast only bakes the objects included in a target.
Just like the Live Renderer, you can interact with the scene and Maya will render on the fly.
And you can adjust the resolution or scaling factors of the scene via the Settings.
However, you can also adjust the texture resolution of each individual object
via their beastInstance tabs.
When your lighting looks exactly the way you want,
you can use the Final Bake command to export light maps.
Beast creates a series of .tga files for each pass in your scene
with the appropriate lighting data baked into the texture.
You can then add these lightmaps to your game
to achieve a lighted look without heavy processing times.
If you’d like some insight as to how the plug-in works,
the source code is included in the "\maya\beastmayaplugin\src" folder.
This makes it easy to customize the Maya integration,
or serves as an ideal example for your own game engine integrations.