#include <c4d_shader.h>
These values have to be filled by custom illumination models:
VPBitmap** bmp |
Internal. An array of @ref cnt VPBitmaps.
Int32* ind |
The index into the components for all layers.
Examples:
Float* result |
The result of all components.
Int32 cnt |
The number of layers, for instance 1 for the main RGB layer.
Int32 cmp |
The number of components.
Vector** diffuse |
The diffuse components.
Int32 diffuse_cnt |
The number of diffuse components.
Vector** specular |
The specular components.
Int32 specular_cnt |
The number of specular components.
Vector** shadow |
The shadow components.
Int32 shadow_cnt |
The number of shadow components.
RayLight** light |
The array of the lights that create special light buffers. For example, if you render out a diffuse/specular pass for each light source all those lights will be listed here.
Int32 light_cnt |
The number of lights.
Float** ochannel |
The object buffers, filled by Cinema 4D. An array of ochannel_cnt Float pointers.
Each Float* directly points to the value of the object buffer.
Int32* ochannelid |
The channel ID of the object buffer.
Int32 ochannel_cnt |
The number of object buffers.
Vector* vp_ambient |
The attenuated ambient from all lights plus self illuminating part for the current pixel.
Vector * vp_diffuse |
The diffuse illumination for the current pixel.
Vector * vp_specular |
The specular illumination for the current pixel.
Vector * vp_shadow |
The shadow component for the current pixel.
Vector * vp_reflection |
The reflection component for the current pixel.
Vector * vp_transparency |
The resulting transparency for the current pixel.
Vector* vp_radiosity |
Currently a custom model cannot access radiosity/caustics so it do not need to be filled.
Vector * vp_caustics |
Currently a custom model cannot access radiosity/caustics so it do not need to be filled.
Vector * vp_illumination |
The diffuse and ambient components of the light.
Vector* vp_mat_color |
The diffuse illumination attenuation.
Vector * vp_mat_luminance |
Self illuminating part (luminance channel in the Cinema 4D material).
Vector * vp_mat_transparency |
The material transparency attenuation.
Vector * vp_mat_reflection |
The reflection attenuation (reflection channel in the Cinema 4D material).
Vector* vp_mat_environment |
The material environment attenuation.
Vector * vp_mat_specularcolor |
The material specular color attenuation.
Vector * vp_atmosphere |
The atmosphere component (fog and volumetric effects).
Float* vp_depth |
The depth value for the current pixel.
Float * vp_mat_specular |
The material specular attenuation.
Float * vp_mat_diffusion |
The material diffusion attenuation.
Float * vp_atmosphere_mul |
The atmosphere multiplier.
Vector* vp_ambientocclusion |
The ambient occlusion.
Vector * vp_mat_uv |
The UV layer.
Vector * vp_mat_normal |
The normal layer.
Vector * vp_motionvector |
The motion vector.
Vector** rchannel |
The reflection buffer.
Vector ** schannel |
The specular buffer.
Vector* vp_direct_diffuse |
Direct diffuse from Reflectance Channel.
Vector* vp_indirect_diffuse |
Indirect diffuse from Reflectance Channel.
Vector* vp_direct_specular |
Direct specular from Reflectance Channel.
Vector* vp_indirect_specular |
Indirect specular from Reflectance Channel.
Vector* vp_reflectance_albedo |
Reflectance Channel Diffuse Albedo.
Vector* vp_magicBulletLooks |
Channel without Magic Bullet Looks effect.
Vector** aov_channel |
The object buffers, filled by Cinema 4D. An array of aov_channel_cnt Vector pointers.
Int32* aov_channel_id |
The channel ID of the AOV.
Int32 aov_channel_cnt |
The number of AOVs.