MULTIPASS_CHANNELS

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

On 01/04/2008 at 04:13, xxxxxxxx wrote:

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

---------
Hi
I want to add Object Buffer into Multipass Channel in C++.
but it could't be going@well.
i don't know how to do it.
RenderData* pRenderData = doc->GetActiveRenderData();
  BaseContainer* pCont = pRenderData->GetDataInstance();
  BaseContainer* pMultPass = pCont->GetContainerInstance( RDATA_MULTIPASS_CHANNELS );//This is NULL
//and i want add [object buffer:1,2,......]
 
Colud you give me an example,Please?

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

On 02/04/2008 at 04:27, xxxxxxxx wrote:

You have to set the channel containers within the multipass container of the RenderData container.

here an example that adds an object buffer channel:

> \> Bool MenuTest::Execute(BaseDocument \*doc) \> { \>      RenderData \*rdata = doc->GetActiveRenderData(); \>      if(!rdata) return FALSE; \> \>      BaseContainer \*rbc = rdata->GetDataInstance(); \>      if(!rbc) return FALSE; \> \>      BaseContainer cbc; \>      cbc.SetBool(RDATA_MULTIPASS_ACTIVE, TRUE); \>      cbc.SetLong(RDATA_MULTIPASS_SPECIALGROUP, 2); \> \>      BaseContainer mpbc; \>      mpbc.SetContainer(VPBUFFER_OBJECTBUFFER, cbc); \> \>      doc->StartUndo(); \> \>      doc->AddUndo(UNDO_CHANGE, rdata); \> \>      rbc->SetContainer(RDATA_MULTIPASS_CHANNELS, mpbc); \> \>      doc->EndUndo(); \> \>      rdata->Message(MSG_UPDATE); \> \>      EventAdd(); \> \>      return TRUE; \> } \>

cheers,
Matthias

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

On 02/04/2008 at 18:29, xxxxxxxx wrote:

Thank you for your example!!
I could add object buffer into multipass.
But I want to add multiple object buffers into multipass.
For example 1, 2, .. and more. 
Is it possible in C++ sdk?

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

On 03/04/2008 at 01:45, xxxxxxxx wrote:

ok, I modifed the code a bit, it now adds two object buffer channels:

> \> Bool MenuTest::Execute(BaseDocument \*doc) \> { \>      RenderData \*rdata = doc->GetActiveRenderData(); \>      if(!rdata) return FALSE; \> \>      BaseContainer \*rbc = rdata->GetDataInstance(); \>      if(!rbc) return FALSE; \> \>      BaseContainer mpbc; \>      BaseContainer subbc; \>       \>      subbc.SetBool(RDATA_MULTIPASS_ACTIVE, TRUE); \>      subbc.SetLong(RDATA_MULTIPASS_SPECIALGROUP, 1); \>      mpbc.InsData(VPBUFFER_OBJECTBUFFER, GeData(subbc)); \>      subbc.SetLong(RDATA_MULTIPASS_SPECIALGROUP, 2); \>      mpbc.InsData(VPBUFFER_OBJECTBUFFER, GeData(subbc)); \> \>      doc->StartUndo(); \> \>      doc->AddUndo(UNDO_CHANGE, rdata); \> \>      rbc->SetContainer(RDATA_MULTIPASS_CHANNELS, mpbc); \> \>      doc->EndUndo(); \> \>      rdata->Message(MSG_UPDATE); \> \>      EventAdd(); \> \>      return TRUE; \> } \>

cheers,
Matthias

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

On 03/04/2008 at 02:02, xxxxxxxx wrote:

Thank you for your help!
it could be going@well!