PDA

View Full Version : Use VertexPaint in a shader


Luckycat
11-13-2009, 02:15 AM
Hello,

I was wondering if there is a way to use the vertex paint on an object for example as a mask in an shader. Something like a callback that can get info from the vertex paint on a surface.
I know there is a command that can get this info, but I don't if there is a node that can do that. (edit : and yes, a method without baking)
Thanks

S.

caro
11-15-2009, 06:50 PM
Yup, there is a node like that. It's called mentalrayVertexColors and it's to be found in "Textures" tab in "Create mental ray Nodes" in hypershader. Bring shape of the mesh you want to read verex colors of to hyperhsader and connect name of the color set you want to use (colorSet/colorSet[number]/colorSet[number].colorName in Connection editor) to cpvSet of that mentalrayVertexColors. After that just use outColor from that node as a mask for anything you need. Works relly good, never had troubles with it, let me know if you have any problems to get it working. Also Maya's help on that node seems very good.

Luckycat
11-16-2009, 02:08 AM
Hey thanks for the tip Caro ... unfortunately it turns that I won't be able to use Mental Ray this time but I will have a look at this node.
Actually I'm looking for a way to handle the texturing of large landscapes. I want to avoid large textures and instead use tiling map blended with vertexColor Map.
Thx again for the tip.
S.

thematt
11-16-2009, 02:51 PM
Hi I was intersted in that matter too, and never could figure it out.
Ok so after reading the doc and following your explanation I still can't get it to work! I also made sure Export vertex color and custom data were check on in the render setting..so I would figure it should work but NO!! :(..I'm on 2009
Can you send a sample scene really simple one no matter just to see if I did something wrong.

thanks a lot

CGTalk Moderation
11-16-2009, 02:51 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.