...
...
Introduction
RenderMan provides the ability to render RenderManは、implicit surfaces (sometimes referred to in RenderMan as "RiBlobby" or blobby surfaces). Most geometry types in RenderMan have explicit control meshes: the geometry is specified by a collection of vertices that are on or near the surface. Implicit surfaces are different: they are built up from primitives that are defined implicitly, by use of a mathematical function that is equal to some threshold value at every point on the surface. This complicated math is hidden by the renderer but leads to a representation that allows for a very efficient way to model geometry in situations where users want to create amorphous shapes, and are willing to trade away fine control over details of shape for ease of modeling gross features.
Built-In Primitives
One way of building an implicit surface in RenderMan is to build them up by combining a simple built-in primitive shapes: an ellipsoid. Here, the most important feature of implicit surfaces is automatic blending: adjoining primitives will meld together into rounded, tubby, globular masses. When the primitives get close enough to each other, this blending happens automatically (or not, as the modeler wishes), with no need to construct explicit round and fillet patches joining them. The following demonstrates six multi-colored spheres that start out at some distance from each other; at this distance, they do not interact. As they move closer, however, they begin to stretch and blend together, smoothly merging into a larger mass. This blending happens automatically and efficiently in the renderer, without incurring extra memory costs; implicit surfaces tend to be much more memory efficient than creating the equivalent polygonal tessellation in a modelling program.
When using the built-in primitive ellipsoid shapes, the underlying mathematical function is such the resulting blended surface has approximately the same volume as the constituent primitives. This makes this workflow an excellent choice for modelling things like viscous fluids, where this volume-preserving property is highly desirable. However, as mentioned above, there is no fine control over how the shapes are blended together: either the primitives interact and blend, or they do not. The threshold at which they blend can be set globally for the entire surface (which will cause the entire implicit surface to "bulk up" or "shrink down"), but the threshold cannot be set on a sphere by sphere basis.
Implicit Field Plugins
RenderMan allows users to extend the built-in primitive shapes to other mathematical descriptions that can seamlessly take part in automatic blending with the built-in primitives. This extension involves the use of implicit field plugins, which are C++ shared libraries loaded by the renderer. The renderer ships with several plugins that add the ability to primitives in the shape of cubes and segments (sausage-like cylinders with rounded ends).
However, implicit field plugins also lend themselves to a very different approach to using implicit surfaces: by taking as input an implicit field representation generated in another program. Implicit fields are a natural and efficient representation for fluid and volume effects, and can be output directly by programs such as Maya Fluids, programs that output OpenVDB files, or Bifrost. Implicit field plugins can be written to bridge the gap between these third party implicit data file formats, and the RenderMan implicit primitive, allowing the output of fluid simulations to be rendered directly and efficiently inside RenderMan. Typically in such cases, the implicit surface consists of a single primitive which is conceptually just the implicit field plugin itself, with parameters that have special meaning to the plugin. Blending with other primitives is usually not a concern nor is it desired in this case. The renderer ships with two plugins of this type: one that reads Maya fluid cache files, and one that reads OpenVDB files.
Some implicit field plugins (like the OpenVDB plugin) can be used both with implicit surfaces and with the volume primitive. This reflects that fact that implicit fields also happen to be a good way to represent volumes. In the case of OpenVDB, the choice of which primitive to use is predicated by the type of OpenVDB file you are using ("levelset" versus "fogvolume").
More information:
...
をレンダリングする機能を提供します(RenderManでは "RiBlobby"またはblobbyサーフェスと呼ばれることもあります)。 RenderManのほとんどのジオメトリタイプには、はっきりとした制御メッシュがあります。ジオメトリは、サーフェス上またはその近くにある頂点によって指定されます。Implicit surfacesは異なります。それらは、サーフェス上のあらゆるポイントにある、しきい値に等しい数学関数を使用することによって、暗黙のうちに定義されているプリミティブから構築されます。この複雑な計算は、レンダラによって隠されていますが、ユーザーが不定形の形状を作成したい場合、ジオメトリをモデリングする機能に対して、非常に効率的な方法を可能にすることができます。
Built-In Prmitives
RenderManでImplicit surfaceを構築する1つの方法は、単純な組み込みのプリミティブ形状と楕円体を結合して、それらを構築することです。Implicit surfaceの最も重要な機能は、自動ブレンディングです。隣接するプリミティブは、丸みを帯びた球状塊になります。プリミティブが互いに十分に近づくと、このブレンディングは自動的に行われ(モデラーの希望どおりには行われず)、明示的なラウンドパッチとフィレットパッチを結合する必要はありません。
以下は、互いにある程度離れた位置から始まる6つの多色の球を示しています。この距離では、それらは相互作用しません。しかし、それらが近づくにつれて、互いに引き伸ばされ、そして融合し始め、より大きな塊へと滑らかに融合します。このブレンディングは、追加のメモリコストをかけずに、レンダラ内で自動的かつ効率的に行われます。Implicit surfaceは、モデリングプログラムで同等のポリゴンテッセレーションを作成するよりも、はるかにメモリ効率が良い傾向があります。
...
Implicit Field Plugins
RenderManを使用した場合、ユーザーは組み込みのプリミティブ形状を、組み込みのプリミティブとの自動ブレンドにシームレスに参加できる他の数学的ディスクリプションに拡張することができます。この拡張は、レンダラによってロードされるC ++共有ライブラリであるImplicit Field Pluginsの使用を含みます。レンダラには、立方体やセグメント(丸みを帯びたソーセージのような円柱)の形をしたプリミティブに機能を追加するプラグインがいくつか付属しています。しかし、Implicit Field Pluginsは、Implicit surfaceを使用する場合の非常に異なるアプローチにも適しています。別のプログラムで生成されたImplicit Fieldの表現を入力として使用するという方法です。Implicit Fieldは、流体効果および体積効果の自然であり効率的な表現です。Maya Fluidsなどのプログラム、OpenVDBファイルを出力するプログラム、またはBifrostによって直接出力できます。Implicit Field Pluginsは、これらのサードパーティのImplicitのデータファイルフォーマットとRenderManのImplicitのプリミティブとの間のギャップを埋めるように書くことができます。また、流体シミュレーションの出力をRenderMan内で直接かつ効率的にレンダリングすることができます。通常、このような場合、概念的にはImplicit surfaceはImplicit Field Pluginsそのものであり、プラグインにとって特別な意味を持つパラメータを保有する単一のプリミティブで構成されています。他のプリミティブとブレンドすることは、通常は問題ではありませんが、この場合は望ましくありません。レンダラには、後記の2つのプラグインが付属しています。1つは、Maya Fluid Cacheファイルを読み込むもの、もう1つはOpenVDBファイルを読み込むものです。
いくつかのImplicit Field Plugins(OpenVDBプラグインなど)は、Implicit surfaceとボリュームプリミティブの両方で使用することができます。これは、Implicit Fieldもボリュームを表現する際に良い方法であるという事実を反映しています。 OpenVDBの場合、どのプリミティブを使用するかの選択は、使用しているOpenVDBファイルの種類( "levelset"と "fogvolume")によって決まります。 |
詳細:
RiBlobbyの情報は、Developer Documentation Downloadに掲載されています。