## Framebuffer

Object Hierarchy | Related C++ Class: Framebuffer

### Inheritance

SIObject

ProjectItem

Framebuffer

### Introduced

v6.0

### Description

The Framebuffer object controls the file output of a RenderChannel object. It can be created using the Pass.CreateFramebuffer method or the CreateFramebuffer command.
The framebuffer format can be selected from the list of formats provided by the rendering engine selected on the framebuffer's Pass object.

### Methods

AddCustomOp | AddICEAttribute | AddScriptedOp | AddScriptedOpFromFile
AnimatedParameters2 | BelongsTo | EvaluateAt | GetICEAttributeFromName
GetResolvedPath | IsA | IsAnimated2 | IsClassOf
IsEqualTo | IsKindOf | IsLocked | IsSelected
LockOwners | RemoveICEAttribute | SetAsSelected | SetCapabilityFlag
SetLock | TaggedParameters | UnSetLock |

### Properties

Application | BitDepths | BranchFlag | Capabilities
Categories | DataTypes | EvaluationID | Families
Formats | FullName | Help | HierarchicalEvaluationID
ICEAttributes | LockLevel | LockMasters | LockType
Model | Name | NestedObjects | ObjectID
Origin | OriginPath | Owners | PPGLayout
Parameters | Parent | Parent3DObject | RenderChannel
Selected | Type |  |

### Examples

#### JScript Example

    /*
            This example demonstrates how to list all framebuffers from
            all passes and the resolved paths they point to.
    */
    function ListPasses()
    {
            var ePass = new Enumerator( ActiveProject.ActiveScene.Passes );
            for( ; !ePass.atEnd(); ePass.moveNext() )
            {
                    var oPass = ePass.item();
                    Application.LogMessage( "Pass '"  + oPass.Name + "': " );
                    var eFramebuffer = new Enumerator( oPass.Framebuffers );
                    for( ; !eFramebuffer.atEnd(); eFramebuffer.moveNext() )
                    {
                            var oFramebuffer = eFramebuffer.item();
                            Application.LogMessage( "Framebuffer '" + oFramebuffer.Name + "' writes to '" +
                                    oFramebuffer.GetResolvedPath( "" ) + "'" );
                    }
            }
    }
    NewScene( null, false );
    var oScene = ActiveProject.ActiveScene;
    var oNewPass = oScene.PassContainer.AddPass( null, "" );
    var oDiffuseBuffer = oNewPass.CreateFramebuffer( "Diffuse" );
    oDiffuseBuffer.FileName = "diffuse.[Frame #4]";
    ListPasses( );
    // Expected results:
    // INFO : Pass 'Default_Pass':
    // INFO : Framebuffer 'Main' writes to '<factory_path>\Data\XSI_SAMPLES\Render_Pictures\Default_Pass_Main.#.pic'
    // INFO : Pass 'Pass':
    // INFO : Framebuffer 'Main' writes to '<factory_path>\Data\XSI_SAMPLES\Render_Pictures\Pass_Main.#.pic'
    // INFO : Framebuffer 'Diffuse' writes to '<factory_path>\Data\XSI_SAMPLES\Render_Pictures\diffuse.####.pic'

### See Also

RenderChannel FramebufferCollection SceneRenderProperty Pass