#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.