RenderMan & RISpec >> Local Coordinate Is Left Or Right Hand Coordinate System ?

by Bo Schwarzstein » Sun, 09 Mar 2008 21:55:24 GMT

Hi everyone !

I am reading a paper names "Light Scattering from Human Hair Fibers".
In this paper it shows that everying is computed in right-hand
coordinate system, includes incident angle, azimuths in normal plane.

I have known that in renderman's surface shader, the dPdu,dPdv,Ng is
the local orthonomal basis, and it's a left-handed coordinate
system.as renderman. So How can I make a right hand coordinate in
surface shader if I want to use curve to represent the hair and fur ?
Use dPdu^dPdv or dPdv^dPdu ? or just using dPdv and forwarded N ?

How can I transform the vector into local coordinate ? just like cg
and glsl, just like this?

|Tx Bx Nx|
VinLocal = |Ty By Ny|*transpose( VinCamera )
|Tz Bz Nz|

I want to obain correct shading result, and I do not know whether the
different coordinate system will affect this.

Thanks very much !

RenderMan & RISpec >> Local Coordinate Is Left Or Right Hand Coordinate System ?

by Felipe Esquivel » Mon, 10 Mar 2008 02:32:29 GMT



RenderMan likes left-handed coordinates. You can use "Ri_Orientation"
"lh" or "rh" to set you handedness.

Similar Threads

1. convert GPS coordinate system to local 2D image coordinate system

2. Newbie question: Left handed vs. right handed coordinate systems.

Hi.

I'm a newbie to Direct3D.
I have read a few book excerpts and the DirectX sdk documentation and it 
seems that they all talk about using left handed coordinate systems.

But I think that a right handed coordinate system is much more intuitive as 
my world coordinate system.
X axis goes from west to east.
Y axis goes from south to north
Z axis goes up from the ground.

The SDK contains functions for setting up the camera to look at both left 
handed coordinate systems and right handed coordinate systems.

I simply can't see why I shouldn't use the right handed one. But all the 
books dictate to use left handed.

Is that really necessary?

Thanks in advance,
Peter Strman 


3. Why left-handed coordinates

4. XSkinExp - Right Handed to Left Handed Conversion Solution

5. Covert PBRT left-hand coordsys to OpenGL right-hand

6. local coordinate systems to one global

Hello,
I have the following problem:

I have three camera systems. Each gives me the translation (x, y, z)
and rotation (pitch, yaw, roll) of a marker in their own coordinate
system.
Now, for later OpenGL rendering I want a 3x4 matrix (Modelview matrix)
that consists of a global rotation and translation of the marker.
Therefore I do the following:
I put the marker somewhere and say that this is the origin. I save for
each camera the six values.
If the marker moves I get new values from each camera.

Translation:
I subtract the stored translation vector from the current translation
vector. After that I build a 3x3 matrix from the stored rotation angles
which I have negated and apply this rotation matrix to the translation
vector I have computed.
This new translation vector is the forth column of my Modelview matrix.

Rotation:
To get the first 3 columns of the Modelview matrix I compute a rotation
matrix (3x3) from the current values and multiply this matrix with the
rotation matrix stored (see above). The resulting matrix is the
rotation of my Modelview matrix.

So now, can anybody tell me if this is correct?


Thanks a lot,

Peter

7. Light - Transform from World to Local coordinate system

8. Local coordinate system

Hello,

I've got n+1 points p[0] ... p[n] in a 3D space. At the point p[0],
I've defined 3 orthogonal vectors v1, v2, and v3. I would like to make
p[0] the origin of a local coordinate system that has the orthogonal
vectors (v1, v2, v3) as its local coordinate axis (x', y', z').
Furthermore, I would like to compute the coordinates p[1]' ... p[n]'
of the points p[1] ... p[n] in this local coordinate frame.

I know that the first step would be to subtract each p[0] from each
p[i] coordinate, but I'm unsure about the correctness of the next
step. At present, I'm considering finding a single axis about the
vectors (v1, v2, v3) can be rotated in order to align them to the
world axis (x, y, z ). Thereafter, I hope to compute a rotation matrix
and use this to transform the points p[1] .. p[n]. Crucially, this
matrix should also be able to rotate each one of the axis vectors v1,
v2, and v3 to the  x, y, and z axis.

Would this be the right/best way to solving this problem?

Thanks,

- Olumide