bssrdf

博客园 首页 新随笔 联系 订阅 管理
所有3D动画软件(Maya,Renderman等)都离不开坐标系。 弄清楚各个坐标系之间的关系是熟练使用这些软件的前提。

本文讨论Renderman中RIB文件里各坐标系的使用。

Renderman渲染器初始化的摄像机空间坐标系(Camera Space)是最基本的坐标系。其它所有的坐标系都是相对于摄像机空间的。摄像机空间坐标系是一个左手坐标系,摄像机位于原点(0,0,0),它的+x轴 指向摄像机的右侧,+y轴指向摄像机的上方,+z轴指向摄像机的前方。

从RIB文件的“Projection”开始到“WorldBegin”之前,所有的坐标变换矩阵(Coordinates Transformation Matrix)的组合都是在构造World-to-Camera坐标变换矩阵。

看下面的例子:

Display "TeapotAfter.tif" "framebuffer" "rgb"

Format 900 600 1

Projection "perspective" "fov" 30


Translate 0 0 25           这里把WorldSpace移到 (0 0 25)处。
                                   你可以想象把眼睛置于摄像机的位置,观察方向为CameraSpace的+z轴。
                                   你所看到的所有物体(位于WorldSpace中)都被平移到(0 0 25)的地方。
                                   如果这里不存在任何的坐标变换,那么CameraSpace和WorldSpace是重合的。
                                   但是通常这里会有一个位移变换(Translate)把WorldSpace移到远处以便于观察。  

WorldBegin                 从这里开始,所有的坐标变换矩阵的组合都是在构造Local-to-World坐标变换矩阵。
                                   也就是说,这里的坐标变换是相对于WorldSpace的。
AttributeBegin                     
  Rotate 90 0 1 0         这里的坐标变换(绕y轴顺时针旋转90度)是相对于WorldSpace的。
  Cone 12 1 360          定义一个圆锥,其顶点在(0 0 12)处。这里的(0 0 12) 是相对于LocalSpace的。
                                   但这里的的LocalSpace和WorldSpace只差绕WorldSpace的y轴旋转90度。
AttributeEnd


以后我们会来讨论Renderman里其它一些特殊的坐标系。

参考文献:
1. 《Advanced Renderman》 Anthony Apodaca和Larry Gritz著,Morgan Kaufmann 2000年出版。
2.《 Renderman Interface Specification 3.3》Pixar Animation Studios 2002

posted on 2005-05-25 05:22  BSSRDF  阅读(2298)  评论(0编辑  收藏  举报