I tried this already, but it didn't work. Rather, it works but not how I need 
it to work. So....

I've got two point positions, a vector is derived from these point positions. 
Because the positions are constantly moving the vector is changing. This vector 
draws correctly on screen. This vector is derived from global positions and 
drawing relative to world space.

I'm then trying to get the normal of a surface and get the difference in angle 
of this vector and the previous vector. I originally attempted to get this from 
a location. But the surface is planar so any normal will do.

The problem is that the normal, when acquired, is oriented relative to an 
object different than self. As a result it seems that ICE then  compares it to 
self and reorients it relative to self. Not sure why. The values are 
technically correct when looking at everything in local space. But I want the 
value to be relative to world space. I tried using the technique you suggested 
for both the object and self's matrix, and neither produce the correct results.

I did however solve the problem by manually creating a normal from a cross 
product of vectors derived from surface points that were converted to global  
space and this works perfectly. I think the wrench in the comparison is the 
original derivation of the vector from raw global point positions. This seems 
to have the effect of providing a vector which is non-relative to anything but 
global space. Whereas the normal just can't seem to be unassociated with either 
the object it was derived from or self. If that makes any sense.

Thanks

--
Joey Ponthieux
LaRC Information Technology Enhanced Services (LITES)
Mymic Technical Services
NASA Langley Research Center
__________________________________________________
Opinions stated here-in are strictly those of the author and do not
represent the opinions of NASA or any other party.

From: [email protected] 
[mailto:[email protected]] On Behalf Of Alan Fregtman
Sent: Tuesday, August 13, 2013 9:49 AM
To: XSI Mailing List
Subject: Re: just not normal

Absolutely possible.

What you're experiencing is that self.PointNormal (and I think maybe all or 
most preexisting iceattributes) are in the object's local space always.

If you get a "Multiply vector by matrix" node and feed it your self.PointNormal 
and a getdata of self.kine.global into the matrix, you should be getting stuff 
in Global space.

Beware that some of the ICE visual debugging when it comes to per-point data 
can appear to come from the points when that may not be the case, just because 
it usually draws the vector starting from the point origin when it's a 
per-point context.

You can Build Array From Set from your attribute and visually debug the result, 
as it will be one big array per object instead of one value per point, and thus 
won't try to draw it starting from each point.


On Tue, Aug 13, 2013 at 9:38 AM, Ponthieux, Joseph G. (LARC-E1A)[LITES] 
<[email protected]<mailto:[email protected]>> wrote:
Howdy,

I'm trying to get a vector which is the normal of a surface relative to world 
space, not local space. The object is moving. I managed to get the vector using 
both PointNormal and SurfaceGeometricNormal. Sometimes the calculations work 
and sometimes they don't. It appears when I display the vectors that normal is 
being reoriented relative to the self object(the object that the ICE tree is 
on). So from a global perspective the angle is wrong. Its being compared to a 
normal which is generated from the point position of two objects. What I need 
is the normal direction of the surface  or point on the point relative to world 
space. Is that possible?

--
Joey Ponthieux
LaRC Information Technology Enhanced Services (LITES)
Mymic Technical Services
NASA Langley Research Center
__________________________________________________
Opinions stated here-in are strictly those of the author and do not
represent the opinions of NASA or any other party.


Reply via email to