About
A MultipassObject represents a multipass element of the render settings. Cinema 4D 's render engines will render and save different multipasses based on these settings.
MultipassObject objects are an instance of Zmultipass
.
while (multipass != nullptr )
{
{
depthPass = multipass;
break ;
}
}
if (depthPass == nullptr )
{
if (depthPass == nullptr )
}
Access
Existing MultipassObject elements are stored in a list and can be accessed from a RenderData object:
Allocation/Deallocation
The MultipassObject class does not offer a static "Alloc" or "Free" function so the functions of BaseList2D have to be used with Zmultipass .
A newly created MultipassObject is added to the render settings by adding it to the RenderData object:
if (depthPass == nullptr )
Navigate
MultipassObject objects are organized in a list:
while (multipass != nullptr )
{
}
Types
All multipasses are MultipassObject objects. They only differ in their parameters. The type of a multipass is defined with:
Simple multipass types are:
Configurable multipass types are:
The parameter IDs of configurable multipasses are defined in zmultipass.h
.
Additional multipass types are:
Example object buffer:
if (multipass == nullptr )
Example blend channel:
if (multipass == nullptr )
Example reflection channel:
if (multipass == nullptr )
Example specular channel:
if (multipass == nullptr )
Further Reading
@ MULTIPASSOBJECT_TYPE
Definition: zmultipass.h:6
@ MULTIPASSOBJECT_DIFFUSE
Definition: zmultipass.h:14
@ MULTIPASSOBJECT_REFLECTION_SEPARATE_ALL
Definition: zmultipass.h:27
Definition: lib_description.h:327
void SetInt32(Int32 id, Int32 l)
Definition: c4d_basecontainer.h:505
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:66
@ MULTIPASSOBJECT_SPECULAR_MATERIALS
Definition: zmultipass.h:38
void SetBool(Int32 id, Bool b)
Definition: c4d_basecontainer.h:498
void InsertMultipass(MultipassObject *obj, MultipassObject *pred=nullptr)
static BaseList2D * Alloc(Int32 type)
@ MULTIPASSOBJECT_SPECULAR_SEPARATE_ALL
Definition: zmultipass.h:40
#define MSG_UPDATE
Must be sent if the bounding box has to be recalculated. (Otherwise use MSG_CHANGE....
Definition: c4d_baselist.h:340
Bool SetParameter(const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
@ MULTIPASSOBJECT_SHADOW
Definition: zmultipass.h:16
const BaseContainer & GetDataInstanceRef() const
Definition: c4d_baselist.h:2299
MultipassObject * GetNext(void)
Definition: c4d_basedocument.h:120
#define VPBUFFER_SPECULAR
Specular multipass channel.
Definition: c4d_videopostdata.h:118
maxon::Int32 Int32
Definition: ge_sys_math.h:58
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:207
Bool Message(Int32 type, void *data=nullptr)
Definition: c4d_baselist.h:1394
#define VPBUFFER_OBJECTBUFFER
Object buffer multipass channel.
Definition: c4d_videopostdata.h:140
#define VPBUFFER_BLEND
Blend multipass channel.
Definition: c4d_videopostdata.h:150
MultipassObject * GetFirstMultipass()
RenderData * GetActiveRenderData(void)
#define VPBUFFER_DEPTH
Depth multipass channel.
Definition: c4d_videopostdata.h:130
Definition: c4d_basedocument.h:136
Definition: c4d_basedocument.h:105
String GetName() const
Definition: c4d_baselist.h:2318
#define Zmultipass
Definition: ge_prepass.h:1135
@ RDATA_MULTIPASS_ENABLE
Definition: drendersettings.h:330
@ MULTIPASSOBJECT_OBJECTBUFFER
Definition: zmultipass.h:8
Int32 GetInt32(Int32 id, Int32 preset=0) const
Definition: c4d_basecontainer.h:303
Definition: c4d_basecontainer.h:46
@ MULTIPASSOBJECT_REFLECTION_MATERIALS
Definition: zmultipass.h:25
#define VPBUFFER_REFLECTION
Reflection multipass channel.
Definition: c4d_videopostdata.h:120