Community
Maya Forum
Welcome to Autodesk’s Maya Forums. Share your knowledge, ask questions, and explore popular Maya topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I wish there was a way to add to a bug report

14 REPLIES 14
SOLVED
Reply
Message 1 of 15
mcw0
812 Views, 14 Replies

I wish there was a way to add to a bug report

I have additional information about a bug I reported and there doesn't seem to be anyway to add this to the bug report.

 

BSPR-35785 is my bug ID number.  And I think it might have to do with the poles of a nurbs sphere.  The spiking is at the pole. 

14 REPLIES 14
Message 2 of 15
mcw0
in reply to: mcw0

That was the problem.  Normals at the poles of nurbs spheres causes proximity wrap to spike.  Leaving a small opening solves the problem.

Message 3 of 15
mspeer
in reply to: mcw0

Hi!

 

I recommend to create a second bug report and add the old bug ID number as reference.

(I don't see any other option.)

Message 4 of 15
Stephen.Blair
in reply to: mspeer

I updated the ticket with your comments



// Stephen Blair
// Arnold Renderer Support
Message 5 of 15
mcw0
in reply to: mspeer

Ya, it's interesting that to get to bug reports, it's a nearly hidden hyperlink.  While all other topics are boldly displayed.  Why isn't "BUG REPORT" another Maya category?  That was a redundant question by the way.

Message 6 of 15
jackie.zhangMQD28
in reply to: mcw0

This might due to your driver has transformation value.

if there is transform value on the driver, for example: TranslateX: 10,

ProximityWrap will consider your object is been wrapped at 0 transformation and then translate 10 at X after wrap.

This will pull your wrapped geometry towards X axis for 10 unit, which is why you are seeing some spikes.

The solution would be freeze transformation on both driver and wrapped geo before using ProximityWrap and increase 'falloff Scale'. 

 

Message 7 of 15
mcw0
in reply to: jackie.zhangMQD28

What you describe would definitely happen.  And your solution would work for that case.  That is not my scenario.  Mine is definitely due to the poles.  Once I opened up a very small hole at the poles, spikes went away.

Message 8 of 15
jackie.zhangMQD28
in reply to: mcw0

Would you mind provide a simple example file? I can not re-produce this bug on my side. Thank you

Message 9 of 15
mcw0
in reply to: jackie.zhangMQD28

Definitely.  I will when I get a moment.  

Message 10 of 15
mcw0
in reply to: jackie.zhangMQD28

Hi Jackie,

 

When I created a polyCube and smoothed it a couple of divisions and then applied a nurbsSphere as an influence for the proximityWrap, it was fine.  I then recreated exactly what was in my scene that had the problem and it showed a strange deformation at the poles.  This is what I did:

 

// CREATE MESH
string $pCube[] = `polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 0`;
polySmooth -mth 0 -sdt 2 -ovb 1 -ofb 3 -ofc 0 -ost 0 -ocr 0 -dv 4 -bnr 1 -c 1 -kb 1 -ksb 1 -khe 0 -kt 1 -kmb 1 -suv 1 -peh 0 -sl 1 -dpe 1 -ps 0.1 -ro 1 -ch 1 $pCube;
scale -r -p 0cm 0cm 0cm 2.6 2.6 2.6 $pCube[0];
makeIdentity -apply true -s 1 $pCube[0];
delete -ch $pCube[0];

// CREATE NURBS CIRCLES
string $circle[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1.2 -d 3 -ut 0 -tol 0.01 -s 8 -ch 0`;
string $dups[] = `duplicate -rr`;
move -r 0 1 0 ;
setAttr -type double3 ($dups[0]+".s") .67 .67 .67;
string $dups1[] = `duplicate -rr`;
setAttr -type double3 ($dups1[0]+".s") 0 0 0;

string $dups2[] = `duplicate -rr $circle[0]`;
move -r 0 -1 0 $dups2[0];
setAttr -type double3 ($dups2[0]+".s") .67 .67 .67;
string $dups3[] = `duplicate -rr $dups1[0]`;
setAttr ($dups3[0]+".ty") -1;


// CREATE NURBS SURFACE
string $sel[] = {$dups3[0], $dups2[0], $circle[0], $dups[0], $dups1[0]};
string $loftSurfs[];
clear $loftSurfs;
for($i=0;$i<size($sel)-1;$i++)
{
string $results[] = `loft -ch 1 -u 1 -c 0 -ar 0 -d 3 -ss 1 -rn 0 -po 0 -rsn true $sel[$i] $sel[$i+1]`;
$loftSurfs[size($loftSurfs)] = $results[0];
}

for($i=1;$i<size($loftSurfs);$i++)
attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $loftSurfs[0] $loftSurfs[$i];

for($i=1;$i<size($loftSurfs);$i++)
{
string $shape[] = `listRelatives -shapes -ni $loftSurfs[$i]`;
setAttr ($shape[0]+".io") 1;
delete $loftSurfs[$i];
}

string $surf = $loftSurfs[0];

 

Now create a proximityWrap for the pCube.  And use $surf as the influence.  You will see the mesh at the poles are a bit "tweaked".  Only by resetting the nurbsCircles that have been scaled to "0" to something other than "0", like "0.01" will the mesh be correct.  Now strangely enough, I ran another version of the code and didn't get the problem.  Here is another version of the above code that works fine.

 

Just replace the "CREATE NURBS SURFACE" section of code with the following:

 

string $results[] = `loft -ch 1 $dups[0] $dups1[0]`;
string $results1[] = `loft -ch 1 $circle[0] $dups[0]`;
string $results2[] = `loft -ch 1 $dups2[0] $circle[0]`;
string $results3[] = `loft -ch 1 $dups3[0] $dups2[0]`;

string $attach[] = `attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $results[0] $results1[0]`;
string $shapes[] = `listRelatives -shapes $results1[0]`;
setAttr ($shapes[0]+".io") 1;
string $attach1[] = `attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $attach[0] $results2[0]`;
$shapes = `listRelatives -shapes $results2[0]`;
setAttr ($shapes[0]+".io") 1;
string $attach2[] = `attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $attach1[0] $results3[0]`;
$shapes = `listRelatives -shapes $results3[0]`;
setAttr ($shapes[0]+".io") 1;
delete $results1[0] $results2[0] $results3[0];

 

Now the proximity wrap has no issues with the zero scaled circles.  Not sure why.  I will investigate this further when I have time.

Message 11 of 15
jackie.zhangMQD28
in reply to: mcw0

Thank you for the information,

Your example file is very helpful, I can re-pro with it.

A further ticket to invest it has been logged as MAYA-106818. we will look into the issue. 

 

Message 12 of 15
mcw0
in reply to: jackie.zhangMQD28

Thank you

Message 13 of 15
mcw0
in reply to: jackie.zhangMQD28

Hi Jackie,

 

I found that it's the "reverseSurfaceNormal" flag on my loft operation that is causing the problem.  Leaving that at default setting of "off" has no issues.  Turning on this flag, even though the resulting nurbsSurface looks identical, will cause a problem.  This will teach me to be lazy and copy and paste from the scriptEditor window.  Should have just kept it simple with all the settings at default.  But it would be nice to know why the proximityWrap would have an issue.

 

My previous code that I posted won't create any deformation on the cube if you leave it with the factory connections.  Here is code that will create exactly how I work.  With a cube that will deform when the original circles are transformed.  Most of the code is the same with the exception of the "rsn" flag.  And I've added the creation of the proximityWrap node and all the proper connections based on how I like to work.

 

// CREATE MESH
string $pCube[] = `polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 0`;
polySmooth -mth 0 -sdt 2 -ovb 1 -ofb 3 -ofc 0 -ost 0 -ocr 0 -dv 4 -bnr 1 -c 1 -kb 1 -ksb 1 -khe 0 -kt 1 -kmb 1 -suv 1 -peh 0 -sl 1 -dpe 1 -ps 0.1 -ro 1 -ch 1 $pCube;
scale -r -p 0cm 0cm 0cm 2.6 2.6 2.6 $pCube[0];
makeIdentity -apply true -s 1 $pCube[0];
delete -ch $pCube[0];

// CREATE NURBS CIRCLES
string $circle[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1.2 -d 3 -ut 0 -tol 0.01 -s 8 -ch 0`;
string $dups[] = `duplicate -rr`;
move -r 0 1 0 ;
setAttr -type double3 ($dups[0]+".s") .67 .67 .67;
string $dups1[] = `duplicate -rr`;
setAttr -type double3 ($dups1[0]+".s") 0 0 0;

string $dups2[] = `duplicate -rr $circle[0]`;
move -r 0 -1 0 $dups2[0];
setAttr -type double3 ($dups2[0]+".s") .67 .67 .67;
string $dups3[] = `duplicate -rr $dups1[0]`;
setAttr ($dups3[0]+".ty") -1;


// CREATE NURBS SURFACE
string $results[] = `loft -ch 1 -u 1 -c 0 -ar 0 -d 3 -ss 1 -rn 0 -po 0 -rsn 0 $dups[0] $dups1[0]`;
string $results1[] = `loft -ch 1 -u 1 -c 0 -ar 0 -d 3 -ss 1 -rn 0 -po 0 -rsn 0 $circle[0] $dups[0]`;
string $results2[] = `loft -ch 1 -u 1 -c 0 -ar 0 -d 3 -ss 1 -rn 0 -po 0 -rsn 0 $dups2[0] $circle[0]`;
string $results3[] = `loft -ch 1 -u 1 -c 0 -ar 0 -d 3 -ss 1 -rn 0 -po 0 -rsn 0 $dups3[0] $dups2[0]`;

string $attach[] = `attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $results[0] $results1[0]`;
string $shapes[] = `listRelatives -shapes $results1[0]`;
setAttr ($shapes[0]+".io") 1;
string $attach1[] = `attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $attach[0] $results2[0]`;
$shapes = `listRelatives -shapes $results2[0]`;
setAttr ($shapes[0]+".io") 1;
string $attach2[] = `attachSurface -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1 $attach1[0] $results3[0]`;
$shapes = `listRelatives -shapes $results3[0]`;
setAttr ($shapes[0]+".io") 1;
delete $results1[0] $results2[0] $results3[0];

toggle -template $results[0];


// CREATE BASE GEO FOR PROXIMITY WRAP

string $base = stringArrayToString(`duplicate -rr $results[0]`, " ");
hide $base;
$base = stringArrayToString(listRelatives("-shapes", "-ni", `rename $base ($node+"Base")`), " ");

// CREATE PROXIMITY WRAP

string $pWrap[] = `deformer -type "proximityWrap" $pCube[0]`;
connectAttr -f ($base+".local") ($pWrap[0]+".drivers[0].driverBindGeometry");
connectAttr -f ($results[0]+".worldSpace") ($pWrap[0]+".drivers[0].driverGeometry");

 

Message 14 of 15
amaterasu-qbb
in reply to: mcw0

What about this?

キャプチャ33.PNG

Message 15 of 15
mcw0
in reply to: amaterasu-qbb

I don't think I've ever looked under that menu!  That's good to know.  Thank you

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Technology Administrators


Autodesk Design & Make Report