Here you will find documentation on all the descriptions that Cinema 4D currently has. You can list them Alphabetically, by Type or Plugin . The sample Python and C++ code is automatically generated and in some cases may not be 100% correct. If something doesn't work then please refer to the official Cinema 4D SDK documentation for more information.

IDs and information for Glow

Glow

Attributes

  • ENGLISH NAME : Glow
  • NAME : GW_NAME
  • INCLUDE : VPbase
  • PATH : advanced_render/description/glow.res
  • PLUGIN : advanced_render
  • MAXON online help (may not exist): GLOW

Elements

ID UI Name Type Parameters Cycle
GW_CH_OBJON UseObjectID BOOL ANIM
GW_CH_OBJ ObjectID LONG
ANIM OFF
MIN 0
MAX 1000
GW_MAXSIZE Size REAL
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_DENS Intensity REAL
MIN 0.0
UNIT PERCENT
GW_BDENS BackIntensity REAL
MIN 0.0
UNIT PERCENT
GW_LUM Luminosity REAL
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_BLUMON UseBackLuminosity BOOL  
GW_BLUM BackLuminosity REAL
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_GCOL UseColor BOOL  
GW_COL Color COLOR SCALE_H
GW_GEDGES GlowEdges BOOL  
GW_ZSCALE ZoomScale BOOL  
GW_DSCALE DistanceScale BOOL  
GW_BAL Balance REAL
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_NC_USE Use BOOL  
GW_NC_MIN Min.Intensity REAL
PARENTID GW_NC_USE
MIN 0.0
UNIT PERCENT
GW_NC_MAX Max.Intensity REAL
PARENTID GW_NC_USE
MIN 0.0
UNIT PERCENT
GW_NC_COLON UseKeyColor BOOL  
GW_NC_COL KeyColor COLOR
PARENTID GW_NC_COLON
SCALE_H
GW_NC_COLVAR ColorVariation REAL
PARENTID GW_NC_COLON
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_NC_SIZEON UseSizeGradient BOOL  
GW_NC_GSIZE SizeGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_NC_DENSON UseDensityGradient BOOL  
GW_NC_GDENS DensityGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_NC_LUMON UseLuminosityGradient BOOL  
GW_NC_GLUM LuminosityGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_NC_GCOL UseColorGradient BOOL  
GW_NC_GRAD ColorGradient GRADIENT
SCALE_H
COLOR
ALPHA
ICC_BASEDOCUMENT
GW_AT_USE Use BOOL  
GW_AT_START StartRange REAL
PARENTID GW_AT_USE
MIN 0.0
UNIT METER
GW_AT_END EndRange REAL
PARENTID GW_AT_USE
MIN 0.0
UNIT METER
GW_AT_POS DistancePosition LONG PARENTID
GW_AT_ZBUFFER Z-Buffer
GW_AT_3DPOS 3DPos.
GW_AT_SIZEON UseSizeGradient BOOL  
GW_AT_GSIZE SizeGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_AT_DENSON UseDensityGradient BOOL  
GW_AT_GDENS DensityGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_AT_LUMON UseLuminosityGradient BOOL  
GW_AT_GLUM LuminosityGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_AT_GCOL UseColorGradient BOOL  
GW_AT_GRAD ColorGradient GRADIENT
SCALE_H
COLOR
ALPHA
ICC_BASEDOCUMENT
GW_SN_USE Use BOOL  
GW_SN_SH Shininess REAL
PARENTID GW_SN_USE
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_SN_SIZEON UseSizeGradient BOOL  
GW_SN_GSIZE SizeGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_SN_DENSON UseDensityGradient BOOL  
GW_SN_GDENS DensityGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_SN_LUMON UseLuminosityGradient BOOL  
GW_SN_GLUM LuminosityGradient GRADIENT
SCALE_H
ALPHA
ICC_BASEDOCUMENT
GW_SN_GCOL UseColorGradient BOOL  
GW_SN_GRAD ColorGradient GRADIENT
SCALE_H
COLOR
ALPHA
ICC_BASEDOCUMENT
GW_FF_USE Use BOOL  
GW_FF_TYPE NoiseType LONG  
GW_FF_TYPE_GAS Gaseous
GW_FF_TYPE_FIRE Fire
GW_FF_TYPE_ELEC Electric
GW_FF_INT Intensity REAL
MIN 0.0
UNIT PERCENT
GW_FF_DENS Density REAL
MIN 0.0
UNIT PERCENT
GW_FF_BRIGHT Brightness REAL UNIT
GW_FF_LUM Luminosity REAL
MIN 0.0
MAX 100.0
UNIT PERCENT
GW_FF_COLORON UseColor BOOL  
GW_FF_COLOR Color COLOR PARENTID
GW_FF_SCALE Scale REAL
MIN 0.0
STEP 0.01
GW_FF_EXP PeakBlend REAL STEP
GW_FF_LEVEL Details REAL
MIN 1.0
STEP 0.01
GW_FF_PHASE Phase REAL UNIT
GW_FF_ANGLE Angle REAL UNIT
GW_FF_SPEED Drift REAL STEP
GW_FF_PSTATIC StaticPos. BOOL  
GW_FF_ADD GroundGlow BOOL  
GW_FF_STR Stretch REAL
UNIT PERCENT
MIN 0.0

Example Code

The following code does not use the correct values when setting the data. You should check directly in C4D for the correct values that you should use in place of the ones that are shown. This code is just to show you how to access the values for getting and setting the parameters.

Python

import c4d
from c4d import gui
def main():
    videoPost = c4d.BaseVideoPost(c4d.Glow)
    
    #You can set parameters two different ways. 
    #First way              
    videoPost[c4d.GW_CH_OBJON] = True
    videoPost[c4d.GW_CH_OBJ] = 1
    videoPost[c4d.GW_MAXSIZE] = 0.1
    videoPost[c4d.GW_DENS] = 0.1
    videoPost[c4d.GW_BDENS] = 0.1
    videoPost[c4d.GW_LUM] = 0.1
    videoPost[c4d.GW_BLUMON] = True
    videoPost[c4d.GW_BLUM] = 0.1
    videoPost[c4d.GW_GCOL] = True
    videoPost[c4d.GW_GEDGES] = True
    videoPost[c4d.GW_ZSCALE] = True
    videoPost[c4d.GW_DSCALE] = True
    videoPost[c4d.GW_BAL] = 0.1
    videoPost[c4d.GW_NC_USE] = True
    videoPost[c4d.GW_NC_MIN] = 0.1
    videoPost[c4d.GW_NC_MAX] = 0.1
    videoPost[c4d.GW_NC_COLON] = True
    videoPost[c4d.GW_NC_COLVAR] = 0.1
    videoPost[c4d.GW_NC_SIZEON] = True
    videoPost[c4d.GW_NC_DENSON] = True
    videoPost[c4d.GW_NC_LUMON] = True
    videoPost[c4d.GW_NC_GCOL] = True
    videoPost[c4d.GW_AT_USE] = True
    videoPost[c4d.GW_AT_START] = 0.1
    videoPost[c4d.GW_AT_END] = 0.1
    videoPost[c4d.GW_AT_POS] = c4d.GW_AT_ZBUFFER
    videoPost[c4d.GW_AT_SIZEON] = True
    videoPost[c4d.GW_AT_DENSON] = True
    videoPost[c4d.GW_AT_LUMON] = True
    videoPost[c4d.GW_AT_GCOL] = True
    videoPost[c4d.GW_SN_USE] = True
    videoPost[c4d.GW_SN_SH] = 0.1
    videoPost[c4d.GW_SN_SIZEON] = True
    videoPost[c4d.GW_SN_DENSON] = True
    videoPost[c4d.GW_SN_LUMON] = True
    videoPost[c4d.GW_SN_GCOL] = True
    videoPost[c4d.GW_FF_USE] = True
    videoPost[c4d.GW_FF_TYPE] = c4d.GW_FF_TYPE_GAS
    videoPost[c4d.GW_FF_INT] = 0.1
    videoPost[c4d.GW_FF_DENS] = 0.1
    videoPost[c4d.GW_FF_BRIGHT] = 0.1
    videoPost[c4d.GW_FF_LUM] = 0.1
    videoPost[c4d.GW_FF_COLORON] = True
    videoPost[c4d.GW_FF_SCALE] = 0.1
    videoPost[c4d.GW_FF_EXP] = 0.1
    videoPost[c4d.GW_FF_LEVEL] = 0.1
    videoPost[c4d.GW_FF_PHASE] = 0.1
    videoPost[c4d.GW_FF_ANGLE] = 0.1
    videoPost[c4d.GW_FF_SPEED] = 0.1
    videoPost[c4d.GW_FF_PSTATIC] = True
    videoPost[c4d.GW_FF_ADD] = True
    videoPost[c4d.GW_FF_STR] = 0.1
    
    #Second way, using the base container.
    bc = videoPost.GetDataInstance()
    bc.SetBool(c4d.GW_CH_OBJON,True)
    bc.SetInt32(c4d.GW_CH_OBJ,1)
    bc.SetFloat(c4d.GW_MAXSIZE,0.1)
    bc.SetFloat(c4d.GW_DENS,0.1)
    bc.SetFloat(c4d.GW_BDENS,0.1)
    bc.SetFloat(c4d.GW_LUM,0.1)
    bc.SetBool(c4d.GW_BLUMON,True)
    bc.SetFloat(c4d.GW_BLUM,0.1)
    bc.SetBool(c4d.GW_GCOL,True)
    bc.SetBool(c4d.GW_GEDGES,True)
    bc.SetBool(c4d.GW_ZSCALE,True)
    bc.SetBool(c4d.GW_DSCALE,True)
    bc.SetFloat(c4d.GW_BAL,0.1)
    bc.SetBool(c4d.GW_NC_USE,True)
    bc.SetFloat(c4d.GW_NC_MIN,0.1)
    bc.SetFloat(c4d.GW_NC_MAX,0.1)
    bc.SetBool(c4d.GW_NC_COLON,True)
    bc.SetFloat(c4d.GW_NC_COLVAR,0.1)
    bc.SetBool(c4d.GW_NC_SIZEON,True)
    bc.SetBool(c4d.GW_NC_DENSON,True)
    bc.SetBool(c4d.GW_NC_LUMON,True)
    bc.SetBool(c4d.GW_NC_GCOL,True)
    bc.SetBool(c4d.GW_AT_USE,True)
    bc.SetFloat(c4d.GW_AT_START,0.1)
    bc.SetFloat(c4d.GW_AT_END,0.1)
    bc.SetInt32(c4d.GW_AT_POS,c4d.GW_AT_ZBUFFER)
    bc.SetBool(c4d.GW_AT_SIZEON,True)
    bc.SetBool(c4d.GW_AT_DENSON,True)
    bc.SetBool(c4d.GW_AT_LUMON,True)
    bc.SetBool(c4d.GW_AT_GCOL,True)
    bc.SetBool(c4d.GW_SN_USE,True)
    bc.SetFloat(c4d.GW_SN_SH,0.1)
    bc.SetBool(c4d.GW_SN_SIZEON,True)
    bc.SetBool(c4d.GW_SN_DENSON,True)
    bc.SetBool(c4d.GW_SN_LUMON,True)
    bc.SetBool(c4d.GW_SN_GCOL,True)
    bc.SetBool(c4d.GW_FF_USE,True)
    bc.SetInt32(c4d.GW_FF_TYPE,c4d.GW_FF_TYPE_GAS)
    bc.SetFloat(c4d.GW_FF_INT,0.1)
    bc.SetFloat(c4d.GW_FF_DENS,0.1)
    bc.SetFloat(c4d.GW_FF_BRIGHT,0.1)
    bc.SetFloat(c4d.GW_FF_LUM,0.1)
    bc.SetBool(c4d.GW_FF_COLORON,True)
    bc.SetFloat(c4d.GW_FF_SCALE,0.1)
    bc.SetFloat(c4d.GW_FF_EXP,0.1)
    bc.SetFloat(c4d.GW_FF_LEVEL,0.1)
    bc.SetFloat(c4d.GW_FF_PHASE,0.1)
    bc.SetFloat(c4d.GW_FF_ANGLE,0.1)
    bc.SetFloat(c4d.GW_FF_SPEED,0.1)
    bc.SetBool(c4d.GW_FF_PSTATIC,True)
    bc.SetBool(c4d.GW_FF_ADD,True)
    bc.SetFloat(c4d.GW_FF_STR,0.1)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../advanced_render/description/glow.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseVideoPost *pVideoPost = BaseVideoPost::Alloc(Glow);  
    
    //You can set parameters two different ways. 

    //First way              
    //Some objects do not store all their data in the container. You need to use GetParameter()/SetParameter() instead. 

    DESCFLAGS_SET flags = DESCFLAGS_SET_PARAM_SET;
    pVideoPost->SetParameter(DescID(GW_CH_OBJON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_CH_OBJ),GeData(1),flags);
    pVideoPost->SetParameter(DescID(GW_MAXSIZE),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_DENS),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_BDENS),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_LUM),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_BLUMON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_BLUM),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_GCOL),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_GEDGES),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_ZSCALE),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_DSCALE),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_BAL),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_NC_USE),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_NC_MIN),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_NC_MAX),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_NC_COLON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_NC_COLVAR),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_NC_SIZEON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_NC_DENSON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_NC_LUMON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_NC_GCOL),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_AT_USE),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_AT_START),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_AT_END),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_AT_POS),GeData(GW_AT_ZBUFFER),flags);
    pVideoPost->SetParameter(DescID(GW_AT_SIZEON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_AT_DENSON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_AT_LUMON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_AT_GCOL),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_SN_USE),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_SN_SH),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_SN_SIZEON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_SN_DENSON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_SN_LUMON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_SN_GCOL),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_FF_USE),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_FF_TYPE),GeData(GW_FF_TYPE_GAS),flags);
    pVideoPost->SetParameter(DescID(GW_FF_INT),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_DENS),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_BRIGHT),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_LUM),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_COLORON),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_FF_SCALE),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_EXP),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_LEVEL),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_PHASE),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_ANGLE),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_SPEED),GeData(0.1),flags);
    pVideoPost->SetParameter(DescID(GW_FF_PSTATIC),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_FF_ADD),GeData(true),flags);
    pVideoPost->SetParameter(DescID(GW_FF_STR),GeData(0.1),flags);
    pVideoPost->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pVideoPost->GetDataInstance();
    bc->SetBool(GW_CH_OBJON,true);
    bc->SetInt32(GW_CH_OBJ,1);
    bc->SetFloat(GW_MAXSIZE,0.1);
    bc->SetFloat(GW_DENS,0.1);
    bc->SetFloat(GW_BDENS,0.1);
    bc->SetFloat(GW_LUM,0.1);
    bc->SetBool(GW_BLUMON,true);
    bc->SetFloat(GW_BLUM,0.1);
    bc->SetBool(GW_GCOL,true);
    bc->SetBool(GW_GEDGES,true);
    bc->SetBool(GW_ZSCALE,true);
    bc->SetBool(GW_DSCALE,true);
    bc->SetFloat(GW_BAL,0.1);
    bc->SetBool(GW_NC_USE,true);
    bc->SetFloat(GW_NC_MIN,0.1);
    bc->SetFloat(GW_NC_MAX,0.1);
    bc->SetBool(GW_NC_COLON,true);
    bc->SetFloat(GW_NC_COLVAR,0.1);
    bc->SetBool(GW_NC_SIZEON,true);
    bc->SetBool(GW_NC_DENSON,true);
    bc->SetBool(GW_NC_LUMON,true);
    bc->SetBool(GW_NC_GCOL,true);
    bc->SetBool(GW_AT_USE,true);
    bc->SetFloat(GW_AT_START,0.1);
    bc->SetFloat(GW_AT_END,0.1);
    bc->SetInt32(GW_AT_POS,GW_AT_ZBUFFER);
    bc->SetBool(GW_AT_SIZEON,true);
    bc->SetBool(GW_AT_DENSON,true);
    bc->SetBool(GW_AT_LUMON,true);
    bc->SetBool(GW_AT_GCOL,true);
    bc->SetBool(GW_SN_USE,true);
    bc->SetFloat(GW_SN_SH,0.1);
    bc->SetBool(GW_SN_SIZEON,true);
    bc->SetBool(GW_SN_DENSON,true);
    bc->SetBool(GW_SN_LUMON,true);
    bc->SetBool(GW_SN_GCOL,true);
    bc->SetBool(GW_FF_USE,true);
    bc->SetInt32(GW_FF_TYPE,GW_FF_TYPE_GAS);
    bc->SetFloat(GW_FF_INT,0.1);
    bc->SetFloat(GW_FF_DENS,0.1);
    bc->SetFloat(GW_FF_BRIGHT,0.1);
    bc->SetFloat(GW_FF_LUM,0.1);
    bc->SetBool(GW_FF_COLORON,true);
    bc->SetFloat(GW_FF_SCALE,0.1);
    bc->SetFloat(GW_FF_EXP,0.1);
    bc->SetFloat(GW_FF_LEVEL,0.1);
    bc->SetFloat(GW_FF_PHASE,0.1);
    bc->SetFloat(GW_FF_ANGLE,0.1);
    bc->SetFloat(GW_FF_SPEED,0.1);
    bc->SetBool(GW_FF_PSTATIC,true);
    bc->SetBool(GW_FF_ADD,true);
    bc->SetFloat(GW_FF_STR,0.1);
    pVideoPost->Message(MSG_UPDATE);                                                      
}
             

Gradients

This node has gradients. Gradients can manually be edited by calling the following code

Python


C++

           
#include "customgui_gradient.h"
GW_NC_GSIZE
GeData data; pVideoPost->GetParameter(DescID(GW_NC_GSIZE),data,DESCFLAGS_GET_PARAM_GET)); Gradient *pGradient = (Gradient*)data.GetCustomDataType(CUSTOMDATATYPE_GRADIENT); if(pGradient) { //must be set before any knot is set pGradient->SetData(GRADIENT_MODE, GeData(GRADIENTMODE_ALPHA)); GradientKnot k1, k2; k1.col = Vector(0.0, 0.0, 1.0); k1.pos = 0.0; k2.col = 1.0; k2.pos = 1.0; pGradient->InsertKnot(k1); pGradient->InsertKnot(k2); } pVideoPost->SetParameter(DescID(GW_NC_GSIZE),data,DESCFLAGS_SET_PARAM_SET));
GW_NC_GDENS
pVideoPost->GetParameter(DescID(GW_NC_GDENS),data,DESCFLAGS_GET_PARAM_GET));
GW_NC_GLUM
pVideoPost->GetParameter(DescID(GW_NC_GLUM),data,DESCFLAGS_GET_PARAM_GET));
GW_NC_GRAD
pVideoPost->GetParameter(DescID(GW_NC_GRAD),data,DESCFLAGS_GET_PARAM_GET));
GW_AT_GSIZE
pVideoPost->GetParameter(DescID(GW_AT_GSIZE),data,DESCFLAGS_GET_PARAM_GET));
GW_AT_GDENS
pVideoPost->GetParameter(DescID(GW_AT_GDENS),data,DESCFLAGS_GET_PARAM_GET));
GW_AT_GLUM
pVideoPost->GetParameter(DescID(GW_AT_GLUM),data,DESCFLAGS_GET_PARAM_GET));
GW_AT_GRAD
pVideoPost->GetParameter(DescID(GW_AT_GRAD),data,DESCFLAGS_GET_PARAM_GET));
GW_SN_GSIZE
pVideoPost->GetParameter(DescID(GW_SN_GSIZE),data,DESCFLAGS_GET_PARAM_GET));
GW_SN_GDENS
pVideoPost->GetParameter(DescID(GW_SN_GDENS),data,DESCFLAGS_GET_PARAM_GET));
GW_SN_GLUM
pVideoPost->GetParameter(DescID(GW_SN_GLUM),data,DESCFLAGS_GET_PARAM_GET));
GW_SN_GRAD
pVideoPost->GetParameter(DescID(GW_SN_GRAD),data,DESCFLAGS_GET_PARAM_GET));