Add item to Multi-Pass List



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 27/10/2007 at 17:33, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   10.111 
    Platform:      
    Language(s) :     C++  ;

    ---------
    How would I add an item to the Multi-Pass list (for example, the Reflection channel) in the Render Settings?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 29/10/2007 at 08:14, xxxxxxxx wrote:

    Here is a function that I wrote to insert a multipass channel into the render settings:

        
        
          
        
        
        
        
        
        BaseContainer* HybridMPChannel(LONG multipassChannel)
        
        
        
        
        {
        
        
        
        
        RenderData *renderData = GetActiveDocument()->GetActiveRenderData();
        
        
        
        
        if(!renderData) return NULL;
        
        
        
        
        BaseContainer *rdata = renderData->GetDataInstance();
        
        
        
        
        if(!rdata) return NULL;
        
        
        
        
        BaseContainer bc;
        
        
        
        
        BaseContainer *multipassData = rdata->GetContainerInstance(RDATA_MULTIPASS_CHANNELS);
        
        
        
        
        if(!multipassData)
        
        
        
        
        {
        
        
        
        
        GeData *mChannels = rdata->InsData(RDATA_MULTIPASS_CHANNELS, GeData(bc));
        
        
        
        
        multipassData = mChannels->GetContainer();
        
        
        
        
        if(!multipassData) return NULL;
        
        
        
        
        }
        
        
        
        
        
        
        
        
        
        
        GeData* d = multipassData->InsData(multipassChannel,GeData(bc));
        
        
        
        
        BaseContainer *channelData = d->GetContainer();
        
        
        
        
        return channelData;
        
        
        
        
        }  
          
        
        
        
        
        
        BaseContainer *buffer = HybridMPChannel(VPBUFFER_REFLECTION);
        
        
        
        
        buffer->SetBool(RDATA_MULTIPASS_ACTIVE, TRUE);  
        
    

    You can find all of the defined LONG's for the different mp channels in the RenderData class of the SDK.
    Josh



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 30/10/2007 at 00:00, xxxxxxxx wrote:

    Thank you!

    That's very helpful.


Log in to reply