【问题标题】:Rendering entities in Renderman在 Renderman 中渲染实体
【发布时间】:2016-01-08 23:52:54
【问题描述】:

这是关于没有 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 must be included 作为文件的第一行。

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

  • 实体必须有一个 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 文件中一次又一次地包含同一段代码确实很麻烦(需要抽象),因此实体似乎是一个不错的选择。

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

【问题讨论】:

    标签: graphics rendering renderman


    【解决方案1】:

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

    # main.rib
    # other_stuff
        ReadArchive "unitcube.rib"
    

    就像rib 代码写在 main.rib 文件中一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      相关资源
      最近更新 更多