>Hi Aen,
>
>After I created the shading network, I used the example from here
>(http://ewertb.soundlinker.com/api/api.008.htm)
to assign the shading
>group to my mesh/components:
>
>MStatus MShadingGroup::AssignToShadingGroup(
> const MObject & shadingGroup,
> const MDagPath & dagPath,
> const MObject & component )
>{
> MStatus status;
> MFnSet fnSG( shadingGroup, &status );
>
> if ( fnSG.restriction() != MFnSet::kRenderableOnly )
> return MS::kFailure;
>
> status = fnSG.addMember( dagPath, component );
> if ( status != MS::kSuccess )
> {
> cerr << " ! MShadingGroup::assignToShadingGroup could not add Dag/
>Component to SG ! " << endl;
> }
>
> return status;
>}
>
>Although the "addMemeber" line above succeeds, I get the following
>error in the script editor window:
>
>// Error: line 5: Cannot add the following items to the set since they
>would break the exclusivity constraint: pCube3.f[0] //
>// Error: line 5: Cannot add the following items to the set since they
>would break the exclusivity constraint: pSphereShape1 //
>
>My parmeters to AssignToShadingGroup are something like (wrote them as
>strings for explanation purposes):
>
>shadingGroup: "phong1SG"
>dagPath: "pCube3"
>component: "pCube3.f[0]"
>
>Do you know why this could be happening? The meshes in my scene
>already have some other materials applied so do I need to break the
>connection to old materials before assigning new ones?
>
>I thought maybe the way I'm creating my shading engine may be the
>problem also. To create the shading group, I had to use the following
>mel command (I got this from the script editor when you create a
>shading engine using the UI):
>
>MString addShadingEngineToSet = "sets -renderable true -
>noSurfaceShader true -empty -name " + phong.name() + "SG";
>MGlobal::executeCommand(addShadingEngineToSet, result, false, true);
>
>I'm looking into where I can find the video you suggested.
Hey kanita,
I do remember seeing that exact coding before...
http://highend3d.com/boards/lofiversion/index.php/t225882.html
This forum thread has a partial resolution to your problem, its seems to
be a
common problem (or Ewerts code is flawed or limited?). To properly
understand
the problem you do need an understanding of the API and DG.
http://images.autodesk.com/adsk/files/maya_85_apiwhitepaper.pdf
The AutoDesk API WhitePaper is a downloadable and has the Maya Cl*****
translated to understandable terminology its a good printable reference.
They
also have a list of plugin samples (\Autodesk\MayaXXX\devkit\plug-ins)
which you
should be able to run, and modify until they don't work (error message =
limits
of the system).
"Understanding the Maya API - The Dependency Graph" is an AutoDesk newbie
level
video intro to the API. You may not need this but they do show the common
do's
and don'ts for API programming. Personally I find that watching a video
tutorial
and taking a few notes really helps in the learning cycle, you can bypass
months
of wear, tear and frustration with a video tutorial.
hth's aen...


|