PDA

View Full Version : assign differetn textures to same node


caspermel
05-17-2007, 01:59 PM
Hi,
I want to ask whether it is possible to assign diferent textures to different parts of a node (mesh node). I mean for example for some part of the surface (for some vertices) fractal assignment and for some other part of the same surface I want to assign file texture for example.

And is this possible via using the api/mel commands??

Again me asking too many questions, just trying to understand the limits of maya and its api :(
Thanks again,
Melis :)

vishangshah
05-18-2007, 05:47 AM
hi,

you can assign different shaders to one object,
actually shader is connected to some shading group which ultimately is an objectSet,

so let say for object1 , you have shader1 and shadingGrp1, and shader2 and shadingGrp2,

when you select some faces of object1 and assign shader1, those faces will be part of objectset shadingGrp1 and will inherit its properties,

remaining faces will be assigned shader2 so will be part of shadingGrp2,

so now you can assign any texture or map to each shaders and get the look you want,

below is code which will transfer all shaders assigned to one object to another identical object,


//select source shape first and then target shape
string $shapes[]=`ls -sl`;
string $srcShp=$shapes[0];
string $destShp=$shapes[1];

int $i,$j,$numFaces[];
string $shd;

string $srcConns[]=`listConnections -type "shadingEngine" $srcShp`;
if(size($srcConns)>1){
$numFaces=`polyEvaluate -f $srcShp[0]`;
for($j=0;$j<$numFaces[0];$j++){
for($i=0;$i<size($srcConns);$i++){
$shd = $srcConns[$i];
if(`sets -im $shd ($srcShp[0]+".f["+$j+"]")`)
sets -fe $shd ($destShp[0]+".f["+$j+"]") ;
}
}
}
else{
sets -e -fe $srcConns[0] $destShp[0];
}


hope this helps,

:)

caspermel
05-18-2007, 07:46 AM
Hi vishangshah,

Thanks a lot for the reply and the sample :)
But I couldn't make it work, unfortunately :(, even ;(

An issue is that maya complained a lot about that srcShape and destShape are not defined to be arrays; since they seem to be declared as string, right. So I removed the array indexings for srcShape and destShape. But then;

I get and error telling that "no object matches name", I think that it comes from the reason that ;

listConnections -type "shadingEngine" $srcShp
doesnt return anything, does that mean ı couldnt managed to have shaders on my source object?

Thanks a lot;
Melis

caspermel
05-18-2007, 09:00 AM
Hi again :)

I managed to make it work :D, the problem was that the ls command didnt selected the shapes node.
[ it is really important to give meaningfull names to the variables in scripts, thank you again for the good naming convention :) ].
So I make maya select the shapes intentionally ;)

And now one more question,


I couldnt understand what the expression inside the pranthesis does actually,

`sets -im $shd ($srcShp[0]+".f["+$j+"]")` in the if block.

Thanks a lot,
Melis ;)

vishangshah
05-18-2007, 11:01 AM
hi,

I am glad that you made it work,


`sets -im $shd ($srcShp[0]+".f["+$j+"]")`


-im is -isMember,

this command will check that $j numbered face of $srcShp[0] is member of $shd shader or not,

if it is then next command inside if block will assign $shd shader to $j numbered face or $destShp[0],

guess this explains your doubt,

:)

caspermel
05-18-2007, 01:38 PM
hmm,
thanks a lot again for the explanation.

Actually I think I dont know which attribute of the shape node f refers to below.

$srcShp[0]+".f["+$j+"]";

Sorry for the unclear question,

And another question, what will/may/can happen when I assign different shading properties to different vertices of the same mesh. I mean, will/may/can/must/should the interpolation while passing from one vertex to the other vertex occur, like when it happens assigning colors?

If I am not clear, let me know :)

Thanks again

Melis :)

CGTalk Moderation
05-18-2007, 01:38 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.