0

これは、Maya (またはそのような GUI) インターフェイスのない Renderman Pro Server 19 に関するものです。

Renderman のドキュメントは、エンティティを定義する方法を明確に説明しています: https://renderman.pixar.com/forum/docs/RPS_19/ribBinding.php#rib-entity-file-example、しかし、エンティティを私たちのメインコード。

リンクは将来的に無効になる可能性があるため、ドキュメントの一部をここに引用します。

RIB エンティティ ファイルには、単一のユーザー エンティティが含まれます。RIB エンティティ ファイルには、フレームをレンダラーに説明するのに十分な情報が含まれていないため、不完全です。RIB エンティティ ファイルは、Render Management サービスに依存して、「合法的な」または完全な RIB ファイルに統合されます。これらのファイルは、Render Manager が既存のシーンにオブジェクトを挿入できるようにすることで、3D の「クリップアート」のメカニズムを提供します。

RIB エンティティ ファイルは、ユーザー エンティティのセクションで説明されているユーザー エンティティの規則に準拠する必要があります。要約すると、ユーザー エンティティは属性ブロックで区切られ、名前属性を持ち、単一の属性ブロック内に完全に含まれている必要があります。3 つの追加要件も満たす必要があります。

  • ヘッダー ヒント: ##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 ファイルに同じコードを何度も含めるのは非常に面倒なので (抽象化が必要です)、エンティティを使用するのが良い方法のようです。

では、これらのエンティティをメイン ファイルに含めるにはどうすればよいでしょうか。

4

1 に答える 1

0

Archiveこれは、ディレクティブを使用して実行できます。上記のコードを別のファイル、たとえばmain.ribに含めたいとします。単純に次のように言います。

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

そして、あたかもそのribコードがmain.ribファイルに書かれているかのようになります。

于 2016-01-08T15:52:54.900 に答える