GetChannel with custom material

On 23/04/2015 at 09:17, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R15 
Platform:   Windows  ;   Mac OSX  ; 
Language(s) :     C++  ;

I have a custom material written using MaterialData with multiple channels, some of them can be logically mapped to channels of standard C4D material. I want to ask if it's possible to support BaseMaterial::GetChannel for such custom material?
The reason I want this is to support some C4D features, for example Displacer, in which user can set Channel directly from texture tag (and I assume this is internally implemented using GetChannel of BaseMaterial class).

On 24/04/2015 at 06:26, xxxxxxxx wrote:


I'm afraid BaseMaterial::GetChannel() cannot be supported by external MaterialData plugins.
It can only be supported by Cinema 4D material (Mmaterial).

On 26/04/2015 at 16:44, xxxxxxxx wrote:

thanks for answer, I was afraid it won't be possible.

On 31/12/2015 at 05:31, xxxxxxxx wrote:


Just to be sure, it means that it is impossible to retrieve a channel or a material group (or a way to know its name and its state) from a BaseShader or a BaseMaterial?

Is it impossible to access to the same data (channel name) as the Texture Manager do?

_<_img src="" border="0" /_>_

Basically I'm trying to know if a BaseShader is inside an enabled or a disabled material group (the name of the group would be useful too).

I can do it for Mmaterial with BaseMaterial::GetChannel, Material::GetChannelState, BaseChannel::GetShader and Material::GetAllReflectionShaders()but I can't find a way to do it for other material types (Banji, Nukei, etc, VRay materials...)