c4d_videopostdata.h File Reference

Classes

struct  BaseVideoPostStruct
 
struct  PixelPost
 
struct  VideoPostSettingModeQuery
 
struct  GlobalIlluminationInformation
 
struct  StereoCameraInfo
 
struct  MotionInfo
 
struct  ColorProfileInfo
 
class  VideoPostData
 

Macros

#define VPBUFFER_RGBA
 
#define VPBUFFER_AMBIENT
 
#define VPBUFFER_DIFFUSE
 
#define VPBUFFER_SPECULAR
 
#define VPBUFFER_SHADOW
 
#define VPBUFFER_REFLECTION
 
#define VPBUFFER_TRANSPARENCY
 
#define VPBUFFER_RADIOSITY
 
#define VPBUFFER_CAUSTICS
 
#define VPBUFFER_ATMOSPHERE
 
#define VPBUFFER_ATMOSPHERE_MUL
 
#define VPBUFFER_ALLPOSTEFFECTS
 
#define VPBUFFER_IMAGEBUILDING_PASS
 
#define VPBUFFER_DEPTH
 
#define VPBUFFER_MAT_COLOR
 
#define VPBUFFER_MAT_DIFFUSION
 
#define VPBUFFER_MAT_LUMINANCE
 
#define VPBUFFER_MAT_TRANSPARENCY
 
#define VPBUFFER_MAT_REFLECTION
 
#define VPBUFFER_MAT_ENVIRONMENT
 
#define VPBUFFER_MAT_SPECULAR
 
#define VPBUFFER_MAT_SPECULARCOLOR
 
#define VPBUFFER_ILLUMINATION
 
#define VPBUFFER_OBJECTBUFFER
 
#define VPBUFFER_POSTEFFECT
 
#define VPBUFFER_POSTEFFECT_MUL
 
#define VPBUFFER_AMBIENTOCCLUSION
 
#define VPBUFFER_MAT_NORMAL
 
#define VPBUFFER_MAT_UV
 
#define VPBUFFER_MOTIONVECTOR
 
#define VPBUFFER_SAMPLER
 
#define VPBUFFER_BLEND
 
#define VPBUFFER_LIGHTBLEND
 
#define VPBUFFER_ALPHA
 
#define VPBUFFER_BLENDCH
 
#define VPBUFFER_REFLECTION_FOLDER
 
#define VPBUFFER_REFLECTION_LAYER
 
#define VPBUFFER_SPECULAR_FOLDER
 
#define VPBUFFER_SPECULAR_LAYER
 
#define VPBUFFER_DIRECT_DIFFUSE
 
#define VPBUFFER_INDIRECT_DIFFUSE
 
#define VPBUFFER_DIRECT_SPECULAR
 
#define VPBUFFER_INDIRECT_SPECULAR
 
#define VPBUFFER_AOV
 
#define VPBUFFER_REFLECTANCE_ALBEDO
 
#define VPBUFFER_MAGICBULLETLOOKSRAW
 
#define VPlenseffects
 
#define VPobjectglow
 
#define VPcolorcorrection
 
#define VPcomic
 
#define VPscenemotionblur
 
#define VPsoftfilter
 
#define VPsharpenfilter
 
#define VPmedianfilter
 
#define VPremote
 
#define VPopticsuite_depthoffield
 
#define VPopticsuite_glow
 
#define VPopticsuite_highlights
 
#define VPambientocclusion
 
#define VPxmbsampler
 
#define VPGPURenderer
 
#define VPToneMapping
 
#define VPDenoiser
 
#define VPdemowatermark
 
#define VPbloom
 
#define VPMagicBulletLooks
 
#define VPcolormapping
 
#define VPcylindricallens
 
#define VPnormalpass
 
#define VPpositionpass
 
#define VPrsrenderer
 
#define VPrsposteffects
 
#define VPtoons
 
#define VPvectormotionblur
 
#define VPwatermark
 
#define VPPRIORITY_OBJECTGLOW
 
#define VPPRIORITY_OBJECTMOTIONBLUR
 
#define VPPRIORITY_DEPTHOFFIELD
 
#define VPPRIORITY_LENSEFFECTS
 
#define VPPRIORITY_BLOOM
 
#define VPPRIORITY_FILTERSOFT
 
#define VPPRIORITY_FILTERSHARPEN
 
#define VPPRIORITY_FILTERMEDIAN
 
#define VPPRIORITY_MAGICBULLETLOOKS
 
#define VPPRIORITY_WATERMARK
 
#define VPPRIORITY_COMIC
 
#define VPPRIORITY_COLORCORRECTION
 
#define VPPRIORITY_SCENEMOTIONBLUR
 
#define VPPRIORITY_EXTERNAL
 
#define PLUGINFLAG_VIDEOPOST_MULTIPLE
 
#define PLUGINFLAG_VIDEOPOST_INHERENT
 
#define PLUGINFLAG_VIDEOPOST_ISRENDERER
 
#define PLUGINFLAG_VIDEOPOST_STEREO_EDITOR
 
#define PLUGINFLAG_VIDEOPOST_STEREO_RENDERING
 
#define PLUGINFLAG_VIDEOPOST_STEREO
 
#define PLUGINFLAG_VIDEOPOST_ISRENDERER_NET
 
#define PLUGINFLAG_VIDEOPOST_MULTIPASS
 
#define PLUGINFLAG_VIDEOPOST_STATIC
 
#define PLUGINFLAG_VIDEOPOST_OFFBYDEFAULT
 
#define PLUGINFLAG_VIDEOPOST_SETTINGMODE
 
#define PLUGINFLAG_VIDEOPOST_HIDE
 
#define MSG_VIDEOPOST_TIMESHIFT
 
#define MSG_GLOBALILLUMINATIONINFORMATION
 
#define MSG_VIDEOPOST_SETPREVIEW_VIEWPORT
 
#define MSG_VIDEOPOST_SETPREVIEW
 
#define MSG_VIDEOPOST_OPENEDITOR
 
#define MSG_VIDEOPOST_APPLY
 
#define MSG_VIDEOPOST_UPDATE_WORKFLOW
 
#define MSG_VIDEOPOST_CHECK_MBL
 
#define MSG_VIDEOPOST_SETTINGMODE_QUERY
 
#define MSG_VIDEOPOST_SETTINGMODE_CHANGED
 
#define RENDERPROPERTY_CLUSTERFRAGMENTS
 
#define RENDERPROPERTY_BUCKETOVERLAP
 

Enumerations

enum class  VIDEOPOSTCALL {
  FRAMESEQUENCE ,
  FRAME ,
  SUBFRAME ,
  RENDER ,
  INNER ,
  TILE
}
 

Functions

enum VIDEOPOSTCALL MAXON_ENUM_LIST (VIDEOPOSTCALL)
 
Bool RegisterVideoPostPlugin (Int32 id, const maxon::String &str, Int32 info, DataAllocator *g, const maxon::String &description, Int32 disklevel, Int32 priority)
 

Variables

 FRAMESEQUENCE
 
 FRAME
 
 SUBFRAME
 
 RENDER
 
 INNER
 
 TILE
 
struct BaseVideoPostStruct MAXON_ENUM_LIST
 

Macro Definition Documentation

◆ MSG_VIDEOPOST_TIMESHIFT

#define MSG_VIDEOPOST_TIMESHIFT

Internal.

◆ MSG_GLOBALILLUMINATIONINFORMATION

#define MSG_GLOBALILLUMINATIONINFORMATION

Called when global illumination and caustic video post effects. The corresponding data is GlobalIlluminationInformation.

◆ MSG_VIDEOPOST_SETPREVIEW_VIEWPORT

#define MSG_VIDEOPOST_SETPREVIEW_VIEWPORT

Called to request Magic Bullet Looks Video Post to set the preview image from the current image in Viewport.

Since
R23

◆ MSG_VIDEOPOST_SETPREVIEW

#define MSG_VIDEOPOST_SETPREVIEW

Called to request Magic Bullet Looks Video Post to set the preview image with the image provided in the message data.

Since
R23

◆ MSG_VIDEOPOST_OPENEDITOR

#define MSG_VIDEOPOST_OPENEDITOR

Called to request Magic Bullet Looks Video Post to open the Looks Editor. Return true in the message data if the Look was edited.

Since
S24

◆ MSG_VIDEOPOST_APPLY

#define MSG_VIDEOPOST_APPLY

Called to request Magic Bullet Looks Video Post to apply the Look on the image provided in the message data.

Since
S24

◆ MSG_VIDEOPOST_UPDATE_WORKFLOW

#define MSG_VIDEOPOST_UPDATE_WORKFLOW

Called to request Magic Bullet Looks Video Post to update its color management settings.

Since
2023

◆ MSG_VIDEOPOST_CHECK_MBL

#define MSG_VIDEOPOST_CHECK_MBL

Called to request Magic Bullet Looks Video Post to check for availability of Magic Bullet Looks.

Since
2023.2

◆ MSG_VIDEOPOST_SETTINGMODE_QUERY

#define MSG_VIDEOPOST_SETTINGMODE_QUERY

Internal.

◆ MSG_VIDEOPOST_SETTINGMODE_CHANGED

#define MSG_VIDEOPOST_SETTINGMODE_CHANGED

Internal.

Function Documentation

◆ RegisterVideoPostPlugin()

Bool RegisterVideoPostPlugin ( Int32  id,
const maxon::String str,
Int32  info,
DataAllocator g,
const maxon::String description,
Int32  disklevel,
Int32  priority 
)

Registers a video post plugin.

Parameters
[in]idA unique plugin ID. Must be obtained from http://www.plugincafe.com
[in]strThe name of the plugin.
To affect the order that plugins are displayed in menus add "#$n" as a prefix to this name, where n is a number.
Lower numbers are displayed before higher numbers. If name is "--" it will show up as a menu separator.
[in]infoThe video post plugin info flags: PLUGINFLAG_VIDEOPOST PLUGINFLAG
[in]gThe allocator for the video post plugin. This is a pointer to a function that creates a new instance of VideoPostData with NewObj().
[in]descriptionThe name of the description resource file to use for the material plugin without .res extension, for example "VPeffectname".
The name has to be unique, i.e. "Tdisplay" cannot be used for 2 different descriptions. See Description Resource for more information.
[in]disklevelThe plugin level is similar to a version number. The default level is 0.
Increase this for new revisions of a plugin to allow for forward and backward compatibility.

As an example you may have updated a plugin. If you now need to write additional information for new settings or changed types for old settings increase the level.
During loading either a 0 is passed (if the file was written by the old plugin) or 1 (if the file was written by the new plugin). This allows to easily write/read new values.
For forward and backward compatibility to work any existing read order from a given level must not be changed. Cinema 4D skips any new settings automatically if they have not been read.

disklevel is only useful if variables are written/read in NodeData::Write/ NodeData::Read.
[in]priorityThe priority of the video post plugin. Higher priority values are called before lower values. The priorities of the internal video post processing are: VPPRIORITY
For example, to filter between glow and depth of field then priority has to be set between VPPRIORITY_OBJECTGLOW and VPPRIORITY_DEPTHOFFIELD::

Though all video post effects will be sorted by priority, an effect overriding for example VideoPostData::ExecutePixel will always be called before one using VideoPostData::ExecuteLine.
Also VideoPostData::ExecuteLine will always be called before VIDEOPOSTCALL::INNER+ BaseVideoPostStruct::open open==false.
This should be logical as VideoPostData::ExecutePixel will be instantly called after a sub-pixel has been calculated and VideoPostData::ExecuteLine instantly after a line has been calculated.
Returns
true if the video post plugin was registered, otherwise false.

Variable Documentation

◆ FRAMESEQUENCE

FRAMESEQUENCE

Called when the renderer prepares to render a sequence of images.

◆ FRAME

FRAME

Called when the renderer prepares to render a frame.

◆ SUBFRAME

SUBFRAME

Called when the renderer prepares to render a subframe.

◆ RENDER

RENDER

Called before the rendering process starts and before shaders are initialized.

◆ INNER

INNER

Called immediately before rendering starts.

◆ TILE

TILE

Called immediately before rendering a bucket.

Since
R16

◆ MAXON_ENUM_LIST

struct BaseVideoPostStruct MAXON_ENUM_LIST