Hi,
It is not a bug, but just how object properties nodes work.
The thing is that the object properties nodes are not merged, only the node closest to the shape is used.
Hi Teodor,
Ok but it is the same problem with object ID attributes directly on the transform.
For example :
1) Create a sphere and a plane
2) Put the sphere and plane on a group (group1)
3) Add object id attribute on the sphere (id number 1) and on a plane (id number 2)
4) Add object id attribute on the group1 (id number 3)
5) Now create 2 multimatte :
- multimatte1 : red = 1, green = 2
- multimatte2 : red = 3
Render.
The multimatte2 will be black.
So, we can not render multimatte for a group because objects in the group always have object ID (!) ?
I see what is your point, but I don’t think this will be ever possible.
The thing is that V-Ray doesn’t know about groups and hierarchies,
the exporter exports only the geometry and a transform, there are no groups during rendering.
The feature you’re requesting is multiple ids per object…
Yes, multiple ID.
If i add an ID to a group, all child will have this “second” ID. With this, after, we will have a lot of possibility (like a say, render multiple multimatte for example).
For the moment, we can’t do multiple IDs per object; however you might be able to do what you need using the VRayUserColor texture from the recent nightly builds connected to a VRayExtraTex render element. This texture allows you to pull out a color value from the V-Ray user attributes list attached to a shape. You can have as many user attributes as you want, and they can be attached anywhere in the node hierarchy (and will propagate down to the children).
Nice indeed. I’m not sure if I’m doing it right but at least it works. Maybe you can tell me if there is a better way to do the following.
I have a texture that I want to apply to a single object as an VRayExtraTex element. I never knew how to do this before, but now I can create a vray user attribute with the following value soloTex=1;. Then I create a VRayUserColor and set the default color to black and the user attribute name as soloTex. Then I use the VRayUserColor to multiply the fileTexture node with a mutiplyDivide. And I connect the multiplyDivide to my VRayExtraTex. That way I get everything rendering black except the object(s) with the user attribute called soloTex.
Like I said, it works, but if there is a better way I would love to hear.
I guess the set up would be simpler for simulating a multi ID mutiMatte functionality.
Yes, you can do this.
Personally , i use condition node to switch between textures or shading network.
I create a user attribute with the following value soloTex=1;.
After, i create a VRayUserScalar, with default value to 0, and attribute name to soloTex. I connect the VRayUserScalar to the first term of the condition node.
And i connect my texture to the “color if true”.
I set the “color if false” to 0;0;0;.
With this, i can switch between a lot of textures just with an ID (because in the “color if false”, i can connect another condition, with value 2, etc etc…).