This reference page is linked to from the following overview topics: Autodesk Maya 2014, Extension for Autodesk Maya 2013, Rendering Overrides, 3.8 Render Loop Overrides, 3.9 UI draw manager, 4.2 Lighting Interfaces.
Class which defines a scene render.
#include <MViewport2Renderer.h>

Public Types | |
| enum | MObjectTypeExclusions { kExcludeNone = 0, kExcludeNurbsCurves = 1<<(0), kExcludeNurbsSurfaces = 1<<(1), kExcludeMeshes = 1<<(2), kExcludePlanes = 1<<(3), kExcludeLights = 1<<(4), kExcludeCameras = 1<<(5), kExcludeJoints = 1<<(6), kExcludeIkHandles = 1<<(7), kExcludeDeformers = 1<<(8), kExcludeDynamics = 1<<(9), kExcludeLocators = 1<<(10), kExcludeDimensions = 1<<(11), kExcludeSelectHandles = 1<<(12), kExcludePivots = 1<<(13), kExcludeTextures = 1<<(14), kExcludeGrid = 1<<(15), kExcludeCVs = 1<<(16), kExcludeHulls = 1<<(17), kExcludeStrokes = 1<<(18), kExcludeSubdivSurfaces = 1<<(19), kExcludeFluids = 1<<(20), kExcludeFollicles = 1<<(21), kExcludeHairSystems = 1<<(22), kExcludeImagePlane = 1<<(23), kExcludeNCloths = 1<<(24), kExcludeNRigids = 1<<(25), kExcludeDynamicConstraints = 1<<(26), kExcludeManipulators = 1<<(27), kExcludeNParticles = 1<<(28), kExcludeMotionTrails = 1<<(29), kExcludeAll = ~0 } |
Object type exclusions. More... | |
| enum | MSceneFilterOption { , kRenderPreSceneUIItems = 1 << (0), kRenderOpaqueShadedItems = 1 << (1), kRenderTransparentShadedItems = 1 << (2), kRenderShadedItems = (kRenderOpaqueShadedItems | kRenderTransparentShadedItems), kRenderPostSceneUIItems = 1 << (3) , kRenderAllItems = ~0 } |
Render filter options. More... | |
| enum | MDisplayMode { kNoDisplayModeOverride = 0, kWireFrame = 1<<(0), kShaded = 1<<(1), kDefaultMaterial = 1<<(2), kShadedNonTextured = 1<<(3), kBoundingBox = 1<<(4) } |
Display modes. More... | |
| enum | MLightingMode { kNoLightingModeOverride = 0, kAmbientLight, kLightDefault, kSelectedLights, kSceneLights } |
Lighting mode. More... | |
| enum | MPostEffectsOverride { kPostEffectDisableNone = 0, kPostEffectDisableSSAO = 1 << (0), kPostEffectDisableMotionBlur = 1 << (1), kPostEffectDisableDOF = 1 << (2), kPostEffectDisableAll = ~0 } |
Post effect override. More... | |
| enum | MCullingOption { kNoCullingOverride = 0, kCullNone, kCullBackFaces, kCullFrontFaces } |
Culling option. More... | |
Public Member Functions | |
| MSceneRender (const MString &name) | |
| Constructor for a named scene render. | |
| virtual | ~MSceneRender () |
| Default destructor for a scene render. | |
| virtual void | preRender () |
| Method to allow for the operation to update itself before being executed. | |
| virtual void | postRender () |
| Method to allow for the operation to clean up itself after being executed. | |
| virtual void | preSceneRender (const MDrawContext &context) |
| Method to allow for the operation to update itself before a scene rendering begins. | |
| virtual void | postSceneRender (const MDrawContext &context) |
| Method to allow for the operation to update itself after a scene rendering ends. | |
| virtual MSceneFilterOption | renderFilterOverride () |
| This method allows for the programmer to provide feedback on determining which elements of a scene render will be drawn based on semantic meaning. | |
| virtual const MCameraOverride * | cameraOverride () |
| Query for a camera override. | |
| virtual const MSelectionList * | objectSetOverride () |
| Query for override for the set of objects to view. | |
| virtual const MShaderInstance * | shaderOverride () |
| Query for a scene level shader override. | |
| virtual MObjectTypeExclusions | objectTypeExclusions () |
| Query for any object type exclusions. | |
| virtual MDisplayMode | displayModeOverride () |
| Query for any display mode override. | |
| virtual MLightingMode | lightModeOverride () |
| Query for any lighting mode override. | |
| virtual const bool * | shadowEnableOverride () |
| Query for shadow display override. | |
| virtual MPostEffectsOverride | postEffectsOverride () |
| Query for post effects override. | |
| virtual MCullingOption | cullingOverride () |
| Query for a face culling override. | |
| virtual MClearOperation & | clearOperation () |
| Get the scene clear operation. | |
| virtual bool | hasUIDrawables () const |
| If you've overridden addPreUIDrawables() or addPostUIDrawables() then you must override this method to return true in order for them to have any effect. | |
| virtual void | addPreUIDrawables (MUIDrawManager &drawManager, const MFrameContext &frameContext) |
| Provides access to the MUIDrawManager, which can be used to queue up operations to draw simple UI shapes like lines, circles, text, etc. | |
| virtual void | addPostUIDrawables (MUIDrawManager &drawManager, const MFrameContext &frameContext) |
| Provides access to the MUIDrawManager, which can be used to queue up operations to draw simple UI shapes like lines, circles, text, etc. | |
Object type exclusions.
| enum MSceneFilterOption |
Render filter options.
Refer to the renderFilterOverride() method for details on usage.
| enum MDisplayMode |
Display modes.
| enum MLightingMode |
Lighting mode.
| enum MPostEffectsOverride |
Post effect override.
| enum MCullingOption |
Culling option.
| MSceneRender | ( | const MString & | name | ) |
Constructor for a named scene render.
A default clear operation is created which will be used for scene rendering. This is a convenience such that separate clear operations do not need to be added before each scene render.
| [in] | name | Name of scene render |
| void preRender | ( | ) | [virtual] |
Method to allow for the operation to update itself before being executed.
In general this would be used to update any operation parameters.
No context information is available at this point.
By default this method performs no action.
| void postRender | ( | ) | [virtual] |
Method to allow for the operation to clean up itself after being executed.
By default this method performs no action.
| void preSceneRender | ( | const MDrawContext & | context | ) | [virtual] |
Method to allow for the operation to update itself before a scene rendering begins.
This method will be called before computing shadow maps, and before a color pass.
| [in] | context | Draw context before rendering begins |
By default this method performs no action.
| void postSceneRender | ( | const MDrawContext & | context | ) | [virtual] |
Method to allow for the operation to update itself after a scene rendering ends.
This method will be called after computing shadow maps, and after a color pass.
| [in] | context | Draw context after rendering has completed |
By default this method performs no action.
| MSceneRender::MSceneFilterOption renderFilterOverride | ( | ) | [virtual] |
This method allows for the programmer to provide feedback on determining which elements of a scene render will be drawn based on semantic meaning.
For now the only meanings are:
Non-UI related elements currenty includes rendering surfaces which are shaded. Surfaces are defined as polygonal meshes, subdivision surfaces, and nurbs surfaces.
UI related elements includes drawing the wireframe and component "UI" for the above surface types as well as non-surface items.
A general way to think of the two options is that "non-UI" can be related to drawing a "beauty" pass, and "UI" are decorations on of the "beauty" pass.
We will call these semantic meanings "scene filters" which are enumerated by MSceneRender::MSceneFilterOption.
The default return value is kNoSceneFilterOverride. This indicates that the a scene render will render all scene elements.
| const MCameraOverride * cameraOverride | ( | ) | [virtual] |
Query for a camera override.
The default implementation returns that there is no override.
| const MSelectionList * objectSetOverride | ( | ) | [virtual] |
Query for override for the set of objects to view.
By default NULL is returned which indicates that no override is present.
| const MShaderInstance * shaderOverride | ( | ) | [virtual] |
Query for a scene level shader override.
By default a NULL value is returned which indicates that there is no shader override.
| MSceneRender::MObjectTypeExclusions objectTypeExclusions | ( | ) | [virtual] |
Query for any object type exclusions.
By default kExcludeNone is returned meaning to not exclude drawing of any types.
If there has already been an exclusion which is specified, for example via the viewport then those exclusions will still apply.
| MSceneRender::MDisplayMode displayModeOverride | ( | ) | [virtual] |
Query for any display mode override.
By default kNoDisplayModeOverride is returned indicating that no override is specified.
| MSceneRender::MLightingMode lightModeOverride | ( | ) | [virtual] |
Query for any lighting mode override.
By default kNoLightingModeOverride is returned indicating that no override is specified.
| const bool * shadowEnableOverride | ( | ) | [virtual] |
Query for shadow display override.
By default a NULL value is returned indicating that no override is specified. To force shadowing off or on, return a pointer to a false or true boolean (respectively).
| MSceneRender::MPostEffectsOverride postEffectsOverride | ( | ) | [virtual] |
Query for post effects override.
By default MSceneRender::kPostEffectDisableNone is returned which indicates that there is no override.
| MSceneRender::MCullingOption cullingOverride | ( | ) | [virtual] |
Query for a face culling override.
By default kNoCullingOverride is returned indicating that no override is specified.
| MClearOperation & clearOperation | ( | ) | [virtual] |
| bool hasUIDrawables | ( | ) | const [virtual] |
If you've overridden addPreUIDrawables() or addPostUIDrawables() then you must override this method to return true in order for them to have any effect.
You also need to have kRenderPreSceneUIItems or kRenderPostSceneUIItems set in the mask returned by renderFilterOverride().
| void addPreUIDrawables | ( | MUIDrawManager & | drawManager, |
| const MFrameContext & | frameContext | ||
| ) | [virtual] |
Provides access to the MUIDrawManager, which can be used to queue up operations to draw simple UI shapes like lines, circles, text, etc.
This method will only be called when hasUIDrawables() is overridden to return true and kRenderPreSceneUIItems is set in the MSceneFilterOption mask returned by renderFilterOverride().
UI drawables added in this method will be rendered before the scene render.
| [in] | drawManager | The UI draw manager, it can be used to draw some simple geometry including text. |
| [in] | frameContext | Frame level context information |
| void addPostUIDrawables | ( | MUIDrawManager & | drawManager, |
| const MFrameContext & | frameContext | ||
| ) | [virtual] |
Provides access to the MUIDrawManager, which can be used to queue up operations to draw simple UI shapes like lines, circles, text, etc.
This method will only be called when hasUIDrawables() is overridden to return true and kRenderPostSceneUIItems is set in the MSceneFilterOption mask returned by renderFilterOverride().
UI drawables added in this method will be rendered after the scene render.
| [in] | drawManager | The UI draw manager, it can be used to draw some simple geometry including text. |
| [in] | frameContext | Frame level context information |