ジオメトリ

ジオメトリ

images/geoSplash.png

PRManのRISモードは、ボリューム, カーブ, サブディビジョン, ブロブ陰関数サーフェスなどの全範囲のジオメトリックプリミティブをサポートしています。 さらに、Object Instancingも完全にサポートしています。


プリミティブの選択

基本となるプリミティブには、それぞれ異なる利点がありますが、ある特定の制限や課題もあります。 パイプラインに選択肢があると、扱うプリミティブをどれにしようか迷うことがありますが、それぞれの長所と短所に注意して比較検討すれば、選択が簡単になります。 "アニメーションさせるならサブディビジョンを使い、破壊させるならポリゴンを使う"という原則は、単純化し過ぎかもしれませんが、上記で述べた長所と短所に関して述べたものです。

ポリゴンはシンプルで"軽量"ですが、細かいモデルや曲率のあるサーフェス(自由曲面)には、たくさんのポリゴンを必要とし、特にレイトレーシングの場合は、すぐにメモリがいっぱいになります。 サブディビジョンサーフェス(細分割曲面)は、非常に柔軟です。 いろいろな"スキーム"により、ユーザーはサーフェスをトポロジーの要件通りに作成することができます(例えば、三角格子には"ループ"サブディビジョンを、四角格子には"Catmull-Clark"を使用するなど)。 一般的に、ポリゴンと比べるとサブディビジョンを使用した方が滑らかな曲率のサーフェスを作成するのが簡単です。 しかし、サブディビジョンはモデリングが難しく、サーフェスの接続性が重要で、メッシュに穴がないことが前提になります。 また、サーフェスの細分割にはメモリを消費します。 NURBSは、本当に曲率のあるサーフェスで、レンダリング結果が滑らかですが、非常に重くなることがあります。


重要な考察

Shading Rate

RISモードでは、ShadingRateはテッセレーションレートにしか効果がありません。 非RISモードでは、ShadingRateはシェーディングが発生する箇所でシェーディングの周波数とテセレーションレートのどちらにも影響を与えるのに対し、 RISモードでは、ShadingRateは周波数に影響を与えません。

概して、RISモードと非RISモードのいずれの場合も、ShadingRateを1.0に設定すると、ほとんどすべてのケースでうまく作用します。 1.0のShadingRateを使用すると、各マイクロポリゴンがほぼピクセルサイズになるようにシーンにテセレーションが適用されます。 これは、通常、写真のようなすぐれた結果を作成します。

非常に細かい、および/または大きいディスプレイスメントがある場合、ShadingRateを小さくするほうがよい場合があります。 例えば細かい/大きいディスプレイスメントのあるジオメトリには0.7または0.5に設定します。 ShadingRateを0.7に設定すると、各マイクロポリゴンがほぼ半分のピクセルサイズになるようにシーンにテセレーションが適用されますので、注意が必要です。 また、ShadingRateを0.5に設定すると、各マイクロポリゴンは約1/4のピクセルサイズになり、追加されたマイクロポリゴンは、速度とメモリパフォーマンスに影響を与えます。

特に、カーブのような特定のジオメトリタイプでは、2や10の大きなShadingRateを設定しても処理できる場合があります。 注意点としては、大きいShadingRateを使用するとテセレーションが粗くなり、小さいShadingRateを使用するとテッセレーションが細かくなるということです。

カーブ

RISモードでは、Hair Wideningを有効にした丸いカーブの挙動が変更されました。 現在、透過などのレイのすべてのタイプは、確率テストを使用し、広がったカーブにヒットしたかどうかを決定します。 これにより、特にカーブが広がっている場合、またはOs < 1が指定されている場合、パフォーマンスが著しく向上します。

Roundcurvesは、Os primvarが使用できる場合、Os primvarも読み込み、上記で述べたhair wideningにより計算された透明度と結合します。 これは、カーブにヒットするかしないかの確率を決定する前に行なわれます。 これは、シェーダの実行が不要で、継続レイが生成されないため、半透明なヘアーを実現する最適な高速パスとして意図されたものです。

開発者は、roundcurves用のBxdfを作成する特別な例に関する重要な情報について、Writing Bxdfsを参照してください。

Curve Dicing

一般的に、ヘアーのようなレイトレーシングカーブは、処理が重くなる可能性が高いと考えられています。 ヘアーは小さく、レイがそれを見逃しやすくなりますが、普通は量が多いため、メモリの消費が多くなります。 ダイシングの課題により、この件はより複雑になります。 この問題を解決するために、PRManには、最適なcurve dicing(カーブダイシング)の実行に役立つcurve dicingがいくつかあります:

"hair""roundcurve"
この2つのアトリビュートを同時に使用すると、どのようなライティング構成でも高品質のヘアーシャドウイングが必ず実現できます。 これは、平らなリボンの代わりに円筒状のヘアージオメトリに対して交差させることにより行なわれ、かなり現実に近いオクルージョンが生成されます。
"perservecv"
カーブのCVを"Preserving(維持)"すると、どのような曲率にでも適切なダイスレートが保証されます。

サンプル

RPS 19には、PRManのRISモードの機能について説明したRIBファイルとシェーダのサンプルが含まれています。 これらのサンプルは、RenderMan Pro Serverインストールディレクトリの/lib/examples/RIS/scenesディレクトリで参照することができます。 以下のページでは、RISモードでのカーブレンダリングに関する概要を説明します。 ターミナルウィンドウを開くことが多い場合は、併行してレンダリングすることができます。

images/sheepCrop.png Sheep - 高貴な子羊! メリーさんも飼っていましたね。このシーンは、いくつかのコア機能をシンプルに組み合わせたものです。 PxrPathTracerはインテグレータで、提供された5つのシェーダ- PxrMarschnerHair, PxrLMPlastic, PxrLMSubsurface, PxrLMDiffuse, PxrLMGlassが使用されています。 子羊の羊毛は全体的にボサボサなカーブです。 メー、メー、メーと鳴き声が聞こえてきそうです。

追加情報

技術詳細など、追加情報は以下のページを参照してください: