c4d_videopostdata.h File Reference

Classes

struct  BaseVideoPostStruct
 
struct  PixelPost
 
struct  GlobalIlluminationInformation
 
struct  StereoCameraInfo
 
struct  MotionInfo
 
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 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 VPPRIORITY_OBJECTGLOW
 
#define VPPRIORITY_OBJECTMOTIONBLUR
 
#define VPPRIORITY_DEPTHOFFIELD
 
#define VPPRIORITY_LENSEFFECTS
 
#define VPPRIORITY_FILTERSOFT
 
#define VPPRIORITY_FILTERSHARPEN
 
#define VPPRIORITY_FILTERMEDIAN
 
#define VPPRIORITY_COMIC
 
#define VPPRIORITY_COLORCORRECTION
 
#define VPPRIORITY_SCENEMOTIONBLUR
 
#define VPPRIORITY_EXTERNAL
 
#define PLUGINFLAG_VIDEOPOST_MULTIPLE
 
#define PLUGINFLAG_VIDEOPOST_INHERENT
 
#define PLUGINFLAG_VIDEOPOST_GL
 
#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 MSG_VIDEOPOST_TIMESHIFT
 
#define MSG_GLOBALILLUMINATIONINFORMATION
 
#define RENDERPROPERTY_CLUSTERFRAGMENTS
 
#define RENDERPROPERTY_BUCKETOVERLAP
 

Enumerations

enum  VIDEOPOSTCALL {
  FRAMESEQUENCE,
  FRAME,
  SUBFRAME,
  RENDER,
  INNER,
  TILE
}
 
enum  VIDEOPOST_GLINFO : UInt32 {
  NONE,
  CUSTOM_MOUSE,
  ALLOC_UVW_BUFFER,
  ALLOC_UVW_BUFFER_FLOAT32,
  ALLOC_DU_BUFFER,
  ALLOC_DV_BUFFER,
  ALLOC_NORMAL_BUFFER,
  ALLOC_MATERIAL_ID,
  ALLOC_NORMAL_BUFFER_FLOAT16,
  ALLOC_NORMAL_BUFFER_FLOAT32,
  ALLOC_WORLCOORD_BUFFER,
  ALLOC_OBJECTID_BUFFER,
  PREPASS,
  DRAW,
  STEREO3D,
  ALLOC_UVW_MATID_BUFFER_FLOAT32,
  ALLOC_TEXEL_SELECTION_BUFFER_R8I,
  DISABLED
}
 
enum  VIDEOPOST_GLDRAW {
  NONE,
  CUSTOM_MOUSE_INIT,
  CUSTOM_MOUSE_DRAW,
  PREPASS,
  DRAW
}
 

Functions

enum VIDEOPOSTCALL MAXON_ENUM_LIST (VIDEOPOSTCALL)
 
enum VIDEOPOST_GLINFO UInt32 MAXON_ENUM_FLAGS (VIDEOPOST_GLINFO)
 
enum VIDEOPOST_GLDRAW MAXON_ENUM_FLAGS (VIDEOPOST_GLDRAW)
 
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
 
 NONE
 
 CUSTOM_MOUSE
 
 ALLOC_UVW_BUFFER
 
 ALLOC_UVW_BUFFER_FLOAT32
 
 ALLOC_DU_BUFFER
 
 ALLOC_DV_BUFFER
 
 ALLOC_NORMAL_BUFFER
 
 ALLOC_MATERIAL_ID
 
 ALLOC_NORMAL_BUFFER_FLOAT16
 
 ALLOC_NORMAL_BUFFER_FLOAT32
 
 ALLOC_WORLCOORD_BUFFER
 
 ALLOC_OBJECTID_BUFFER
 
 PREPASS
 
 DRAW
 
 STEREO3D
 
 ALLOC_UVW_MATID_BUFFER_FLOAT32
 
 ALLOC_TEXEL_SELECTION_BUFFER_R8I
 
 DISABLED
 
 CUSTOM_MOUSE_INIT
 
 CUSTOM_MOUSE_DRAW
 
struct GlobalIlluminationInformation MAXON_ENUM_FLAGS
 

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.

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

◆ NONE

NONE

◆ CUSTOM_MOUSE

CUSTOM_MOUSE

◆ ALLOC_UVW_BUFFER

ALLOC_UVW_BUFFER

◆ ALLOC_UVW_BUFFER_FLOAT32

ALLOC_UVW_BUFFER_FLOAT32

◆ ALLOC_DU_BUFFER

ALLOC_DU_BUFFER

◆ ALLOC_DV_BUFFER

ALLOC_DV_BUFFER

◆ ALLOC_NORMAL_BUFFER

ALLOC_NORMAL_BUFFER

◆ ALLOC_MATERIAL_ID

ALLOC_MATERIAL_ID

◆ ALLOC_NORMAL_BUFFER_FLOAT16

ALLOC_NORMAL_BUFFER_FLOAT16

◆ ALLOC_NORMAL_BUFFER_FLOAT32

ALLOC_NORMAL_BUFFER_FLOAT32

◆ ALLOC_WORLCOORD_BUFFER

ALLOC_WORLCOORD_BUFFER

◆ ALLOC_OBJECTID_BUFFER

ALLOC_OBJECTID_BUFFER

◆ PREPASS

PREPASS

◆ DRAW

DRAW

◆ STEREO3D

STEREO3D

◆ ALLOC_UVW_MATID_BUFFER_FLOAT32

ALLOC_UVW_MATID_BUFFER_FLOAT32

◆ ALLOC_TEXEL_SELECTION_BUFFER_R8I

ALLOC_TEXEL_SELECTION_BUFFER_R8I
Since
R19

◆ DISABLED

DISABLED

◆ CUSTOM_MOUSE_INIT

CUSTOM_MOUSE_INIT

◆ CUSTOM_MOUSE_DRAW

CUSTOM_MOUSE_DRAW

◆ MAXON_ENUM_FLAGS

struct GlobalIlluminationInformation MAXON_ENUM_FLAGS