Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 04/01/2017 at 02:22, xxxxxxxx wrote:
User Information: Cinema 4D Version: 16+ Platform: Mac OSX ; Language(s) : C++ ;
--------- Hi there,
I simply cannot get this to work. Please help! I try to set the color and to exchange Texture links within an Advanced VRay material and its Advanced Bitmap Shader. This is what I have so far (getting the link to a V-Ray Advanced Material from a Texture-Tag and trying to read out the shader loaded to the Diffuse Layer 1 -> Diffuse Color Texture slot) :
BaseTag* TexTag = MyObjekt->GetTag(Ttexture); if (TexTag) { BaseMaterial* Material = ((TextureTag* )TexTag)->GetMaterial(true); if (Material) { if (Material->GetType() == 5703) { // Material is of Type V-Ray Advanced Material GeData Vray_data; Material->GetParameter(DescID(4100), Vray_data, DESCFLAGS_GET_0); // VRAYMATERIAL_COLOR1_SHADER -> Texture link field in the material BaseShader *shader = static_cast<BaseShader*>(Vray_data.GetLink(doc, 0));
} } }
On 05/01/2017 at 01:42, xxxxxxxx wrote:
Hi Arndt, thanks for writing us.
With reference to your code I'd say it looks fine at a least from a Cinema 4D SDK point of view. So I guess, there must be something happening on the V-Ray implementation side. Unfortunately the MAXON SDK Support team has no information about it, hence I suggest you to directly ask the VRAYforC4D guys (LAUBlab) or somebody in our community can help out.
As side note please I also invite you to make use of the
tag to include your code snippets in order to improve code readability.
Best, Riccardo
On 05/01/2017 at 06:11, xxxxxxxx wrote:
Hi Riccardo,
thanks for your reply. I will try to contact LaubLab directly then.
On 06/01/2017 at 05:46, xxxxxxxx wrote:
Hi Arndt,
may be try this code instate.
BaseTag* TexTag = Mein Objekt->GetTag(Ttexture); if (TexTag) { BaseMaterial* Material = static_cast<TextureTag*>(TexTag)->GetMaterial(true); if (Material) { if (Material->GetType() == 1020295) { // Material ist ein V-Ray Advanced Material BaseContainer *bc = Material->GetDataInstance(); BaseShader *shader = static_cast<BaseShader*>(bc->GetLink(VRAYMATERIAL_COLOR1_SHADER, doc)); } } }