Monday, June 23, 2008

討厭的maya nurbs uv與renderman st

不知道為什麼,
maya nurbs的ub順序就是跟renderman的ST方向不一致,
如果UV沒有rotate,
那麼直接將ST的angle設-90度或者用mayaUV這個node,
不過如果uv有rotate就很煩人了。

以下是不負責任的maya uv轉換ST程式,
沒有仔細檢驗過,所以可能會有一些沒有mod或...的部分,
不過方向應該是正確的。
產生一個manifold類別的SLBOX,
然後定義一個float rotateAngle,
這個值跟texture2D的rotateUV填入相同的值,
這樣就OK了

float ss = s-0.5;
float tt = t-0.5;
float oAngle = atan(tt,ss);
float rad = sqrt(ss*ss+tt*tt);
float newAngle = oAngle - PI/2 - radians(rotateAngle);
result_Q = (rad*cos(newAngle)+0.5,0.5+rad*sin(newAngle),0);

No comments: