这是关于没有 Maya(或任何此类 GUI)界面的 Renderman Pro Server 19。
Renderman 文档清楚地解释了如何定义实体:https ://renderman.pixar.com/forum/docs/RPS_19/ribBinding.php#rib-entity-file-example ,但它没有定义如何将实体包含在我们的主要代码。
由于该链接将来可能会失效,因此我将在此处引用文档的一部分:
RIB 实体文件包含单个用户实体。RIB 实体文件不完整,因为它们不包含足够的信息来向渲染器描述帧。RIB 实体文件依赖于渲染管理服务以集成到“合法”或完整的 RIB 文件中。这些文件通过允许渲染管理器将对象插入到预先存在的场景中,为 3-D“剪贴画”提供了机制。
RIB 实体文件必须符合用户实体部分中描述的用户实体约定。总而言之,用户实体必须由属性块分隔,必须具有名称属性,并且必须完全包含在单个属性块中。还必须满足三个附加要求:
标题提示:##RenderMan RIB-Structure 1.1 Entity 必须作为文件的第一行包含在内。
实体必须建立在以原点为中心的对象坐标系中。
实体必须有一个 RIB 绑定请求以提供用户实体中所有几何图元的单个边界框
并附上了以下实体示例的代码:
##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 文件中一次又一次地包含同一段代码真的很麻烦(需要抽象),所以实体似乎是一个不错的方法。
那么,我应该如何将这些实体包含在我的主文件中?