c4d.plugins.ShaderData¶
-
class
c4d.plugins.
ShaderData
¶ - A data class for creating shader (channel shader) plugins.Use
RegisterShaderPlugin()
to register the plugin.A registered shader will appear in the popup menu of the channels in the Materials Manager in Cinema 4D.Here are some general comments on the shader API:
Coordinate Systems: if there is no further note all elements like points, normals etc. then they are always given in global coordinates.
Angle Systems: all angle values are always given in radians. Use
Deg
(angle) for conversion if needed.Vectors: all normals and ray vectors must be normalized. Also, all normals and ray vectors you receive from Cinema 4D are normalized.
See also
Py-Fresnel plugin example.
Methods Signatures
Override - Pre-calculate any data for rendering. |
|
Override - Free any resources used for the precalculated data from |
|
Override - Called for each point of the visible surface of a shaded object.
|
|
Set the exception color. |
Inheritance
Parent Class:
Methods Documentation
-
ShaderData.
InitRender
(self, sh, irs)¶ Override - Pre-calculate any data for rendering.
- Parameters
sh (c4d.BaseShader) – The shader node connected with this instance.
irs (c4d.modules.render.InitRenderStruct) – Information about the upcoming rendering.
- Return type
int
- Returns
Result of the initialisation:
INITRENDERRESULT_OK
Everything is OK, there was no error.
INITRENDERRESULT_OUTOFMEMORY
Not enough memory.
INITRENDERRESULT_ASSETMISSING
Assets (textures etc.) are missing.
INITRENDERRESULT_UNKNOWNERROR
Unknown error.
INITRENDERRESULT_USERBREAK
Changed in version R17.032: Was INITRENDERRESULT_THREADEDLOCK. Thread has been canceled.
-
ShaderData.
FreeRender
(self, sh)¶ Override - Free any resources used for the precalculated data from
InitRender()
.- Parameters
sh (c4d.BaseShader) – The shader node connected with this instance.
-
ShaderData.
Output
(self, sh, cd)¶ - Override - Called for each point of the visible surface of a shaded object.Here you should calculate and return the channel color for the point cd.p.
Important:
No OS calls are allowed during this function.Doing so could cause a crash, since it can be called in a multi-processor context.- Parameters
sh (c4d.BaseShader) – The shader node connected with this instance.
cd (c4d.modules.render.ChannelData) – Channel data to use and/or modify.
- Return type
- Returns
The calculated color.
-
ShaderData.
SetExceptionColor
(self, col)¶ Set the exception color.
- Parameters
col (c4d.Vector) – The exception color.