原文:https://www.redshift3d.com/forums/viewthread/17242/
みなさん、こんにちは、
すでにご存知の方もいらっしゃると思いますが、2.5.57のビルドで、レイトレーシングSSSの最初のバージョンをリリースしました!
今日まで、Redshiftのサブサーフェーススキャッタリングはポイントベースのテクニックを使用していました。 この手法は本当にスムーズでクリーンな結果を生み出すことができますが(そして速く!)、いくつかの重要な制限があります。
- ポイントベースなので、プログレッシブレンダリングやインタラクティブな編集では使用できないことを意味する「プレパス」ステージが必要
- 難しいライティング状況では、ポイントベースのテクニックがちらつきを発生させる場合がある。 そしてそのために、試行錯誤を必要とする可能性がある。
- ポイントベースのテクニックの外観とパフォーマンスを安定させるために、レンダリング中に特定の値の「normalization step(正規化ステップ)」を実行する必要があり、それは特定の場所でSSS効果を平坦に見せ、正確ではなかった。
- SSSポイントはグローバルであり(すなわち、オブジェクト毎ではない)、特定のオブジェクトに対するSSSエフェクトを分離することは不可能。 場合によっては、これは不要な「ライトブリーディング」アーティファクトを引き起こす。
レイトレースSSSには、上記の制限はありません。 「レイトレースSSS」は、PRManやArnoldでみる「ランダムウォーク」SSSテクニックと混同してはいけません。 ランダムウォークテクニックは、今年の後半に取り組む予定の機能です。 そしてそれには独自の長所と短所があります。 すべての場合に最適な手法はありません。
いくつかの重要な注意事項/よくある質問を以下でご確認ください。
ご不明な点がございましたら、下記にご連絡ください!
Thanks
-Panos
有効にする方法
さまざまなSSSシェーダ(「Redshift Subsurface Scattering」、「Redshift Skin」、「Redshift Material」など)でレイトレーシングSSSを有効にすることも、RedshiftレンダリングオプションのSSSタブで全体にに強制することもできます。
レイトレースSSSを有効にすると、samplesパラメータを調整する必要があります。また、Outputタブでグローバルサンプルオーバーライドを使用することもできます。 これは、既にリフレクションに対して行っている操作に似ています。
同じオブジェクト内でSSSエフェクトを分離したり、他のすべてのオブジェクトをライティングに参加させることができる「include」モードオプションもあります。 また、 "トレースセット"オプションがありますが、それは未だ対応しておらず! 作業中です。
既定のオプションと古いシーンとの互換性
新しいシェーダを作成すると、デフォルトのSSSモードが「レイトレーシング」になります。 上で述べたように、SSSタブでオーバーライドを使用したくない場合は、ポイントベース(またはその逆、ポイントベース)を使用するように簡単にすべてを強制することができます。
古いシーンとの互換性を損なわないために、Redshiftが既存のシェーダを検出すると、自動的にSSSモードが「ポイントベース」に設定されます。これは、全Redshiftがバージョン2.5.57より前に行うことができたことです。
上のすべてのことは、ポイントベースとレイトレーシングの間でミックスとマッチングができることを意味します。 たとえば、既存のアセットをポイントベースの設定で見栄えがよく、変更したくない場合があります。 しかし、レイトレーシングSSSだけを行うの新しいオブジェクト/シェーダをいくつか導入したいと思うかもしれません。 上記のオプション(既存のシーンのオーバーライドとデフォルトの動作)を使用すると、それぞれのマテリアルにアクセスして手作業で変更することなく、またはすべてを強制的にレイトレースを使用する必要がなくなります。
プログレッシブモード
新しいレイトレースSSSの強みの1つは、プログレッシブモードで動作することです! シーンにポイントベースのSSSシェーダを使用し、プログレッシブでレンダリングすると、自動的にレイトレーシングSSSが使用されます。 こうすることで、最終的に(バケット)レンダリングにポイントベースを使用しながら、プログレッシブ(Diffuseテクスチャだけでなく)のものを実際に見ることができます。
ただし、ポイントベースおよびレイトレースSSSの結果は異なる場合があります。 (下記参照)
レイトレースは視覚的にポイントベースとどのように異なりますか?
多くのケースでは、これらの2つの手法は非常によく似ているはずです。 しかし、結果が異なる可能性のあるライティングケースと詳細が存在します。 その違いはバグに起因するものではありませんが、主に、レイトレーシング技術がポイントベースのテクニックで行うようにエリアライトを正規化しないため起こります。 この違いは、以下に示すように、薄いオブジェクトまたは十分なサーフェスディテールのオブジェクトで多く見られます。
ここにそれぞれSSSが設定されたドラゴンモデルがあります。 1つ目の画像はポイントベースのSSSを使用し、2つ目の画像はレイトレースです。 レイトレースバージョンでは、メッシュのエッジ(耳)で定義されている見え方に注目してください。
違いが耳にはっきりと見える異なる方向から見た状態(ドラゴンの頭の後ろから)です。 ここでも、最初の画像はポイントベース、2番目の画像はレイトレースされたものです。 このジオメトリは、レイトレースされた方法で、より明確に定義され、フラットではありません。 あなたは、耳や、鼻孔の周りの部分などのキャラクタのパーツでこの種の違いを見ることができます。そして、確実に多くの場合、SSSエフェクトの強みとなります。
速度は?
まあ...かなり速いです!SSSレイは、複数の交差点からライティングを集める必要があるため、少し重いです。 明らかにポイントベースのテクニックほど高速ではありません。 散乱半径の大きいオブジェクト(非常に「ワックス状」のオブジェクト)では、クリーンな結果を得るためにサンプルをかなり上げる必要があります。 ありがたいことに、(現在2.6ビルドで開発中の)ノイズ除去技術が役立ちます! (次の2.6 Volta / denoiseビルドにはこのレイトレースSSS技術と2.5ビルドの何かが含まれます)
また、使用する「プライマリー」カラーが多いほど、グレインがきれいになる可能性があります。 これは、SSS技術がR、G、Bチャネルをサンプリングする方法と関係があります。 最も強いチャンネルの恩恵があるかもしれませんが、 "弱い"チャンネルも重要なライティングを持っている可能性があります。 そのため、残念ながら、いくつかの永続的なグレインを引き起こす可能性があります。
Redshift Skinシェーダの "legacy" point basedオプションとは?
レイトレースSSS技法を実装し、ポイントベースバージョンと「視覚的に互換性がある」ことを確認しながら、「Redshift Skin」シェーダーのバグを発見しました。 それはライティングの一部を過度に飽和させ、場合によってはライティングがとても強く色づけされる誤った操作をしていました!
私たちは皆さんの既存のデータを壊したくありませんでしたので、この古い壊れたスキームを保持し、それを「レガシーポイントベース」と呼ぶことにしました。 ただし、Redshift SkinシェーダーのレイトレーシングとSS技術の切り替えを計画している場合は、このモードを避けることをおすすめします。 古い "レガシー"ポイントベース技術には、レイトレースと同じものはありません!
RedshiftのSSSについて議論していますが、使用するシェーダを教えてください。 なぜ3つもあるのでしょうか?
Redshiftには、Redshift Subsurface Scatter、Redshift Skin、Redshift Materialの3つのSSSシェーディングノードがあります。
ここにそれぞれの長所/短所を記載します:
Redshift Subsurface Scatter(Redshiftの元のシェーディングノード)
- ユーザーがScatterおよびSubsurface colorを個別に変更できるため、非常に優れた制御が可能
- これらの2つの色が全く予期しない結果を生む可能性があるため、実際には複雑になることがある。
- ドキュメントで説明を試みますが、非常に多くの場合、ユーザーは混乱する可能性がある。
- だから、多くのユーザ(特にエキスパート以外)の場合、このシェーダは避けるべき!
Redshift Skin(簡単に設定できるものを追加)
- シンプルな3層シェーダなので、どの色がどのくらいで「にじむ」かを正確に選択することができる
- 予期できな色がない。 スキンをモデリングしていて、緑色の肌をしたキャラクターが赤い色を「ブリード」したい場合、思うように作ることができる!
- 最もシンプルなシェーダなので、おそらく新しいRSユーザーにとって最適
Redshift Material(最後に追加)
- alSurfaceシェーダと互換性がある(ある程度)
- 強いプライマリカラーを使用している場合、予期しない色が生成されることがある(ただし、最初のノードほど悪くはない)。 たとえば、選択した色が純粋な赤だった場合、シアンが表示される(上のドラゴンの例のように!)
- しかし、それは物事が現実世界でどのように働くのかという事に基づいている! サーフェスが「赤色」を多くトラバースすることができる場合、緑色+青色(シアン色)が短距離で影響を及ぼす
- このシェーダは、反射/屈折/単一散乱などの優れたオプションを持つRedshiftマテリアルの残りの部分と結びついている
- このシェーダーを使用するためにエキスパートになる必要はない。Redshiftで1つのシェーダーしか調査したり、学習したいくない場合は、…これが最適です!