Getting Layershader and subshaders

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2005 at 01:11, xxxxxxxx wrote:

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

---------
Hi there,
I' currently searchin for a possibility to browse through a material, for the plugin i'm developing.
Now i want to check if a shader is a layershader or fusionshader, and browse through its subshaders.

Am i on the right way if i do a GetData() on the Shader?
If yes, how can know if its a layershader or any other?
and how can i access its subshaders?

Many questions for the first post, huh 😉

thanks for each reply,

affa

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2005 at 12:27, xxxxxxxx wrote:

huh, thats really hard to figure out. That's how far i've come:

m_shad->GetDescription(desc,0);
BaseContainer *bc = desc->GetParameterI(DESCID_ROOT,NULL);

but then, how do i get the infos? there is this IDS_SLA_LAYER, ...?
Or are there any documents that could help me?

thanks,

affa

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 00:40, xxxxxxxx wrote:

I don't get it... can anyone help me?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 06:22, xxxxxxxx wrote:

Within an XSLAFusion shader you will be able to get the sub-shaders through the SHADERLINKs in the res-file. Unfortunately for XSLALayer there's just a single big SLA_BLEND, which is a private structure. So fusion yes, layer no, afaict.
Getting the fusion sub-shaders should be a simple material->GetChannel(CHANNEL_COLOR)->GetShader()->GetParameter(SLA_FUSION_BLEND_CHANNEL, link, 0) operation.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 06:26, xxxxxxxx wrote:

thanks very much for your answer.
So there is no way to get Infos out of the Layer-Shader? That would be bad 😕
Thats nearly the whole purpose of my plugin, d'oh

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 06:48, xxxxxxxx wrote:

Have you tried getting the layer shader and then browse through it with layershader->GetDown(); and then GetNext()? Not sure if this works, but worth a try. 🙂

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 07:30, xxxxxxxx wrote:

indeed, it works that way :-)))

Thanks very much Samir

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 07:33, xxxxxxxx wrote:

🙂 you´re welcome.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 09:47, xxxxxxxx wrote:

You're right, that will work to get the actual sub-shaders. However, I double checked with the develoepers and there's no way to access the actual SLA_BLEND structure. So you won't be able to access the blend parameters for the layers etc.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/03/2005 at 09:50, xxxxxxxx wrote:

hmm, ok thanks. the blend parameters whould also have been nice, but subshaders is a good start 😉
I'll post the plugin here when i finished it

On 10/08/2014 at 17:38, xxxxxxxx wrote:

Old thread revive - I take it that it is still not possible to access the layer shader properly?

On 11/08/2014 at 00:52, xxxxxxxx wrote:

Huh!  Well i`ll be damned..

Weird how they`ve included LayerShader in the docs and no mention of Fusion for example ( at least from what i can see ) even though fusion is accessible..

Cheers Niklas.

On 11/08/2014 at 07:27, xxxxxxxx wrote:

The word "properly" can mean different things to different people.
AFAIK. We still cannot insert or remove shaders from the Layer Shader. And I don't think Maxon intends on fixing that in any future releases.

Therefore.
It's my own personal opinion that we do not have "proper" access to it. And never will.

-ScottA