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/03/2015 at 14:43, xxxxxxxx wrote:
User Information: Cinema 4D Version: 15 Platform: Mac OSX ; Language(s) : C++ ;
--------- I was trying to create a shader that would return the editor display color of an object. My main shader code is this:
Vector EditorColorShaderData::Output(BaseShader * chn, ChannelData * cd) {
Vector the_color=Vector(.5,.5,.5); if (cd->vd) { RayObject *op = NULL;
op= cd->vd->op; if (op) { BaseObject* original=(BaseObject* ) op->link; BaseContainer* bc=original->GetData() if (bc) the_color=bc->GetVector(ID_BASEOBJECT_COLOR) }
}
return the_color; }
But it is not working. I mean, it always gets me a grey color (the default I set). How can I get the color of the editor of an object, at render time, in a shader?
On 04/03/2015 at 23:35, xxxxxxxx wrote:
Sounds like you need BaseObject::GetColorProperties().
On 05/03/2015 at 03:12, xxxxxxxx wrote:
I tried the following code:
BaseObject* original=(BaseObject* ) op->link; ObjectColorProperties* prop; original->GetColorProperties(prop); the_color=prop->color;
But it is not working
On 05/03/2015 at 04:52, xxxxxxxx wrote:
Your are passing an uninitialized pointer to GetColorProperties() so it can't fill it with data. Try this instead:
ObjectColorProperties colorProps; original->GetColorProperties(&colorProps;); the_color = prop.color;
On 05/03/2015 at 05:23, xxxxxxxx wrote:
YES!!! Finally did it!
Thank you all
On 05/03/2015 at 07:31, xxxxxxxx wrote:
Hi,
Thanks for helping Rui. I'll close this thread as solved.