Graphics 在Renderman中渲染实体

Graphics 在Renderman中渲染实体,graphics,rendering,renderman,Graphics,Rendering,Renderman,这是关于没有Maya(或任何此类GUI)界面的Renderman Pro Server 19 Renderman文档清楚地解释了如何定义实体:, 但它没有定义如何在主代码中包含实体 由于链接将来可能会失效,我将在此处引用文档的一部分: 肋骨实体文件包含单个用户实体。肋骨实体文件是 不完整,因为它们没有足够的信息来描述 帧到渲染器。肋骨实体文件取决于渲染管理 集成到“合法”或完整RIB文件的服务。这些 文件通过允许渲染来提供三维“剪贴画”的机制 管理器将对象插入到先前存在的场景中 肋骨实体文件必须

这是关于没有Maya(或任何此类GUI)界面的Renderman Pro Server 19

Renderman文档清楚地解释了如何定义实体:, 但它没有定义如何在主代码中包含实体

由于链接将来可能会失效,我将在此处引用文档的一部分:

肋骨实体文件包含单个用户实体。肋骨实体文件是 不完整,因为它们没有足够的信息来描述 帧到渲染器。肋骨实体文件取决于渲染管理 集成到“合法”或完整RIB文件的服务。这些 文件通过允许渲染来提供三维“剪贴画”的机制 管理器将对象插入到先前存在的场景中

肋骨实体文件必须符合所述的用户实体约定 在用户实体部分。总而言之,用户实体必须是 由属性块分隔,必须具有名称属性,并且必须 可以完全包含在单个属性块中。三 还必须满足其他要求:

  • 标题提示:必须包括##RenderMan肋骨结构1.1实体 作为文件的第一行

  • 实体必须构建在以原点为中心的对象坐标系中

  • 实体必须具有肋骨绑定请求,以提供用户实体中所有几何图元的单个边界框

并附上实体示例的以下代码:

##RenderMan RIB-Structure 1.1 Entity
AttributeBegin  #begin unit cube
Attribute "identifier" "name" "unitcube"
Bound -.5 .5 -.5 .5 -.5 .5
TransformBegin
# far face
Polygon "P" [.5 .5 .5  -.5 .5 .5  -.5 -.5 .5  .5 -.5 .5]
Rotate 90  0 1 0
# right face
Polygon "P" [.5 .5 .5  -.5 .5 .5  -.5 -.5 .5  .5 -.5 .5]
# near face
Rotate 90  0 1 0
Polygon "P" [.5 .5 .5  -.5 .5 .5  -.5 -.5 .5  .5 -.5 .5]
# left face
Rotate 90  0 1 0
Polygon "P" [.5 .5 .5  -.5 .5 .5  -.5 -.5 .5  .5 -.5 .5]
TransformEnd
TransformBegin
# bottom face
Rotate 90  1 0 0
Polygon "P" [.5 .5 .5  -.5 .5 .5  -.5 -.5 .5  .5 -.5 .5]
TransformEnd
TransformBegin
# top face
Rotate -90  1 0 0
Polygon "P" [.5 .5 .5  -.5 .5 .5  -.5 -.5 .5  .5 -.5 .5]
TransformEnd
AttributeEnd  #end unit cube
现在,在主RIB文件中一次又一次地包含同一段代码会非常麻烦(需要抽象),因此实体似乎是一种很好的方法


那么,我应该如何在我的主文件中包含这些实体呢?

这可以通过使用
Archive
指令来完成。假设我想将上述代码包含在另一个文件中,比如main.rib,我只想说:

# main.rib
# other_stuff
    ReadArchive "unitcube.rib"
这就好像
rib
代码是在main.rib文件中编写的