Toon Ink Lens(トゥーン インク レンズ)

 
 
 

基本の外観 | テーパ | 多様性 | 圧力 | サンプリング | 背景 | レンズ エフェクト | Advanced(アドバンス) | Render Tree の使い方

カテゴリ: トゥーン

シェーダ ファミリ: レンズ

出力: カラー

イメージ上にインク輪郭をレンダリングします。輪郭はたとえば異なるマテリアル、オブジェクト、または距離あるいは方向が大きく異なる位置に引かれます。シーンの輪郭は階層化適合確率スーパー サンプリング テクニックを使用して検出されます。つまり、イメージを算出するために通常放射される各 1 次レイ サンプルにおいて、さまざまな条件に適合するまで(輪郭が検出されるまで)シェーダが追加のレイをシーンに放射します。これらのレイの方向は準モンテカルロ法によって決定されます。これらのレイのうちの 1 つとサーフェイスとの交点で、サーフェイスの方向あるいはカメラからの距離など交点に関するいくつかの情報が後の解析のために保存されます。各追加レイが放射された後、そのレイの交点で収集された情報が元のレイについて保存された情報と比較されます。輪郭線が検出された場合、サンプリングは終了し、ユーザ指定の輪郭線のカラーがイメージ上に合成されます。

名前(Name)

シェーダの名前。任意の名前を入力するか、デフォルト名を使用します。

基本の外観

これらのパラメータは輪郭線の基本属性であるカラーおよび太さ(「スプレッド」)をコントロールします。

バイパス(Bypass)

シェーダはバイパスされ、イメージはインクなしでレンダリングされます。このパラメータが便利なのはテクスチャリングが可能な点です。輪郭線のレンダリングは非常に時間がかかるので、ちょっとしたマット テクスチャを作成してスクリーンのうち輪郭線の必要ない広い領域をマスクし、マットを Render Tree でこのパラメータと接続すると便利です。

インクのみ(Ink Only)

墨入れの輪郭線のみ、黒で重ねてレンダリングします。このシェーダの[詳細設定]タブの[インクのみ]コントロールを使用すると、インクカラーをその下のサーフェイス カラーと合成するか、または黒の上に合成することができます。

カラー(Color)

輪郭線のカラーおよびアルファ値です。輪郭線はそのアルファ値に従って合成されます。したがって、アルファ値が 1 より小さい場合は下のサーフェイスが輪郭線を通して透けて見えます。このコントロールは[Toon Host]マテリアル シェーダでも可能で、レンズ シェーダ設定を上書きまたは修正するために使用されます。

合成(Compositing)

使用可能なさまざまな変換モードから選択して、インクとその下のサーフェイス カラーの合成をコントロールします。

  • [ノーマル]:これはデフォルト値です。前景のみ使用します。

  • [加算](Add)。前景を背景に加えます。そのため、前景が黒の場合、前景は表示されません。この追加モードは、前景が発光して見えるようにコンポジットする場合に役立ちます。

  • [乗算]:前景を背景で掛け合わせます。結果は常に元の前景または背景よりも暗い色になります。2 枚の OHP シートを重ねて 1 つのプロジェクタで投影するのと同様です。

  • [スクリーン](Screen)。2 つのカラー値の補数が掛け合わせられます。結果として得られる前景は、元の前景または背景よりも高輝度になります。

  • [オーバーレイ](Overlay)。背景の値にもよりますが、乗算またはスクリーニングします。総体的な結果として、背景は前景で置き換わりません。ただし、背景は元の背景値でウェイト付けされているときは前景とミックスされます。

  • [比較(明)](Lighten)。前景と背景の値を比較して、2 つのうちから明度が高い方を選択します。総体的な結果として、背景を明るくできます。ただし、前景には何もできません。

  • [比較(暗)]:前景と背景の値を比較して、2つのうちから暗いほうを選択します。総体的な結果として、背景を暗くできることです。ただし、前景には何もできません。

  • [差](Difference)。前景を背景から引き、逆のカラー効果を生みます。

  • [色相](Hue)。背景の輝度と彩度、および前景の色相を使用します。

  • [彩度](Saturation)。背景の色相と輝度、および前景の彩度を使用します。

  • [値](Value)。背景の色相と彩度、および前景の輝度を使用します。

  • [ソフト ライト](Soft Light)。前景の値が 50% グレーより大きい/小さい場合、背景が前景によって明るく/暗くなります。これはイメージにディフューズ ライトを照らした場合に類似しています。

  • [ハード ライト](Hard Light)。前景の値が 50% グレーより大きい/小さい場合、背景が前景によってスクリーン/乗算の効果を得ます。これはイメージに強烈なライトを照らした場合に類似しています。

  • [除外](Exclusion)[差](Difference)モードと同じではありませんが類似しています。

スプレッド(Spread)

インク輪郭の厚みの調整 インク拡散は、テーパリングおよびバリエーションなどのさまざまな手続きや、Toon Host マテリアル シェーダのローカル コントロールにより修正できます。

このシェーダの[アドバンス]タブの[拡散スケール]で、拡散が指定された画面解像度に対して相対的に固定されるため、解像度が変わっても、インク輪郭の相対的な厚みには影響しません。

テーパ

テーパリングは、インク拡散の手順のバリエーションです。たとえば、サーフェイス方向を使用して、サーフェイスが直接カメラに向く場所で輪郭を最も厚くして、サーフェイスがカーブを描いて遠ざかるにつれて、輪郭を細くします。これにより、ブラシの一筆での筆圧の変化をシミュレートできます。

異方性

好みの角度で幅に影響を与えます。これは、たとえば、カリグラフィ ペンをシミュレーションする場合に便利です。

度合い(Amount)

エフェクトの強さです(値が 0 の場合は機能しません)。

角度(Angle)

角度を度数で指定します(0 が時計の 12: 00 に、90 が 3: 00 に相当します)。

方向

輪郭線の幅をサーフェイスの方向の関数として変化させます。既定では、方向テーパはサーフェイスのカメラに対するインシデンスのレベルに応じてインクの拡散を変更します(サーフェイスがカメラに面しているときが拡散が最大で、カメラから遠ざかっているときが最小などのように)。

度合い(Amount)

エフェクトの強さです(値が 0 の場合は機能しません)。

ベクトル(Vector)

方向ベースのテーパリング効果は、当該サーフェイスに向いた入射ベクトルによって変わります。通常これはカメラの方向そのものですが、その代わりに、ユーザ指定のベクトルやさまざまなプリセットも使用できます。

たとえば、[カスタム ベクトル]を使用して、オブジェクトの下部のインク輪郭線を太く、上部のインク輪郭線を細く作成できます。

Space

入射ベクトルの指定に使用する座標空間(ワールド | カメラ | オブジェクト)です。

カメラ座標系を選択すると、入射方向はカメラに相対的に計算されます(たとえば、「Upper Right」はカメラの位置や方向に関係なく、レンダリングされたイメージの右上にあります)。カメラ座標系は手でペイントするテクニックをシミュレートする場合におそらく最も適していますが、カメラが移動するとインク幅が変化します。

[ワールド]座標系を使用すると、サーフェイスのグローバルな方向に関係なくサーフェイスの方向にエフェクトをロックします。[オブジェクト]座標系を使用すると、サーフェイスに従ってエフェクトが回転します。

ベクトル(Custom Vector)

3 次元(x, y, z)ベクトルです。このベクトルは内部で自動的に正規化されます。

方向(Direction)

エフェクトが作用する方向の範囲です。値 0 はサーフェイスが入射ベクトルに面している(つまり、サーフェイスの法線が入射ベクトルと平行)ことを意味します。値 90 は入射ベクトルがサーフェイスをかすめて通る(つまり、サーフェイスの法線が入射ベクトルと直角)ことを意味します。

スプレッド(Spread)

サーフェイスの方向がマップされた幅の値の範囲です。たとえば、[スプレッド]の[最小]を 2 にすると、指定された[方向]の[最小]で幅が 2 倍になります。

プロファイル(Profile)

エフェクトにリニアでない強調を指定し、たとえば幅の変化を滑らかにイーズインさせたり突然カットインさせたりできます。

2 つのべき関数バイアスおよびゲインが提供されています。バイアス関数に対する応答はガンマ カーブに似ています。ゲイン関数は S 字形のグラフを作成します。

[パワー]パラメータは強調の量をコントロールします。選択した関数に関係なく、[パワー]を 0.5 にするとリニアな応答になります。

距離

カメラからの距離の関数として輪郭の広がりを変化させます。これは、デプス フェーディング エフェクトの作成に使用されます(カメラに近いほどインク輪郭が厚くなるなど)。

反射や透明度エフェクトにより発生する 2 次光線の場合は、カメラからの距離が光線のパス全体の累積距離として計算されます。つまり、カメラ位置が始点になり、光線とサーフェイスの現在の交点が終点となります。

度合い(Amount)

エフェクトの強さです(値が 0 の場合は機能しません)。

ベクトル(Vector)

方向ベースのテーパリング効果は、当該サーフェイスに向いた入射ベクトルによって変わります。通常これはカメラの方向そのものですが、その代わりに、ユーザ指定のベクトルやさまざまなプリセットも使用できます。

たとえば、[カスタム ベクトル]を使用して、オブジェクトの下部のインク輪郭線を太く、上部のインク輪郭線を細く作成できます。

距離(Distance)

テーパ エフェクトが有効である距離の範囲です。

スプレッド(Spread)

距離がマッピングされる拡散値の範囲。たとえば、[スプレッド]の[最小]を 2 に設定すると、指定の近点距離において 2 だけ広がります。

プロファイル(Profile)

エフェクトにリニアでない強調を指定し、たとえば幅の変化を滑らかにイーズインさせたり突然カットインさせたりできます。

2 つのべき関数バイアスおよびゲインが提供されています。バイアス関数に対する応答はガンマ カーブに似ています。ゲイン関数は S 字形のグラフを作成します。

[パワー]パラメータは強調の量をコントロールします。選択した関数に関係なく、[パワー]を 0.5 にするとリニアな応答になります。

その他

トレース深度(Trace Depth)

輪郭の広がりをレイ トレースされた深度の関数として変化させます。1 次レイ(視線レイ)はトレース深度 0 であると見なされます。反射または透過はトレース深度 1 以上です。

1 に設定すると最初の反射または透過によって輪郭の広がりが 100% 減少されます。

0に設定した場合は効果はありません。

負に設定すると、サーフェイスを反射または透過したレイで現れる輪郭線を太くできます。

多様性

インク プロパティのランダム バリエーションを擬似的に再現できます。バリエーションをつけることは、アーティストの手書きの自然なタッチを思わせるために役立ちます。

スプレッド

インク拡散の摂動。

度合い(Amount)

エフェクトの強さです(値が 0 の場合は機能しません)。

アニメーション(Animation)

0 に設定するとエフェクトが無効になり、時間の経過とともにランダム性がフリーズされます。値を下げると輪郭線が徐々に小さく変化します。値を上げると輪郭線が大きく変化します。

基準(Basis)

ランダム バリエーションが、レイの方向、交差点、または交差法線のいずれかの規則性を持つようになります。これらのそれぞれが明確な特徴を持ちます。

[レイの方向]を選択すると、認識可能な任意のパターンの画面に対する相対的な一定度が増減します。その他のオプションは、サーフェイス機能に準じます。

Space

バリエーションの基準の指定に使用する座標空間(ワールド | カメラ | オブジェクト)です。

[カメラ]座標系を選択すると、カメラを基準としてバリエーションを計算します。カメラ座標系は、手描きのテクニックをシミュレートする場合に適しています。

[ワールド]座標系を使用すると、サーフェイスのグローバルな方向に関係なくサーフェイスの方向にエフェクトをロックします。[オブジェクト]座標系を使用すると、サーフェイスに従ってエフェクトが回転します。

ベクトル(Custom Vector)

3 次元(x, y, z)ベクトルです。このベクトルは内部で自動的に正規化されます。

多様性(Variation)

エフェクトが有効となる出力の範囲。

スプレッド(Spread)

サーフェイスの方向がマッピングされる拡散範囲。

プロファイル(Profile)

エフェクトにリニアでない強調を指定し、たとえば幅の変化を滑らかにイーズインさせたり突然カットインさせたりできます。

2 つのべき関数バイアスおよびゲインが提供されています。バイアス関数に対する応答はガンマ カーブに似ています。ゲイン関数は S 字形のグラフを作成します。

[パワー]パラメータは強調の量をコントロールします。選択した関数に関係なく、[パワー]を 0.5 にするとリニアな応答になります。

周波数(Frequency)

ランダム バリエーションの空間周波数(x, y, z)。高い値を指定するとインク輪郭(輪郭)のノイズが大きくなり、低い値を指定すると輪郭の変化がスムーズになります。

圧力

ペンまたはブラシの筆圧の変化を、幅(テーパリングおよびバリエーションは計算済み)に比例してインクのカラーおよびアルファ値を変化させることでシミュレートします。たとえば、幅が広がるにつれて暗く濃くなる輪郭線を作成することも、細くなるにつれて薄く消えてしまう輪郭線を作成することもできます。

輝度

拡散に応じてインク カラーの強度が変化します。

有効

エフェクトを有効にします。

スプレッド(Spread)

エフェクトが有効となる拡散値の範囲。

輝度(Brightness)

距離がマッピングされる明るさの範囲。[輝度]の[最小]を 0.5 に指定すると、[スプレッド]の[最小]に指定した元の輝度の半分の明るさを持つインクになります。

彩度

拡散に応じてインク彩度が変化します。彩度は、輝度やアルファと同じ名前(および対応する関数)のパラメータを持ちます。

アルファ

拡散に応じてインク アルファが変化します。アルファは、輝度や彩度と同じ名前(および対応する関数)のパラメータを持ちます。

サンプリング

輪郭線のサンプリングおよび検出をコントロールします。

サンプル(Samples)

輪郭線を検出するために放射されるレイの最大値です。このパラメータを高い値(6 または 7)にするとハイクオリティな輪郭線が、低い値(2 または 3)にすると低品質の輪郭線が得られます。

ほとんどの場合 4 または 5 の設定で十分です。輪郭線が太いほど高い設定値が必要です。

典型的なシーンではこのパラメータを 1 増加させるごとにレンダリング速度が 1.25 倍遅くなるので、できるだけ低い値を使用することが重要です。この設定では、シーン全体のアンチエイリアシング設定とのバランスを調整する必要があります。ハイクオリティ輪郭(輪郭)の設定の目安は以下のようになります。

samples -1 2

contrast 0.200000 0.200000 0.200000

以上がシーン用

samples 5

シェーダのスプレッド設定は 2.0 以下のような設定にすると、より高速にプレビューを実行できますが、品質は多少低下します。

samples -1 1

contrast 0.200000 0.200000 0.200000

samples 4

トレース深度(Trace Depth)

計算する輪郭の最大トレース深度を設定します。反射や屈折が不要である場合は、この値を 1 に設定するとレンダリングが高速になります。視線に対してのみ輪郭が必要であり、最初の反射面または最初の透過面が検出された場合は、設定値は 2 で十分でしょう。高い値を設定すると輪郭のトレース レベルが大きくなり、レンダリング時間も長くなります。

このパラメータが、シーンにおける反射/屈折、またはその合計の最大トレース深度を下回る場合は、警告が発せられます。

バウンダリ(境界)

さまざまな基準に従って輪郭線を検出します。これらの基準は互いに排他ではありません。たとえば、輪郭線はマテリアルの間にもオブジェクトの間にも引けます。したがって、1 つのオプションをオフにしても影響を受けるすべての輪郭線が消えるということはありません。

あるオプションが必要ない場合は、それをオフにすることでいくらかパフォーマンスがよくなります。

環境(Environment)

サーフェイスと背景環境との境界での輪郭線検出をオンにします。

オブジェクト(Object)

サーフェイスが交差または重なっているところでの輪郭線検出をオンにします。

マテリアル(Material)

異なるマテリアル間の境界での輪郭線検出をオンにします。

Host マテリアル(Host Materials)

このオプションにより、Toon Host マテリアル シェーダに関連付けられているプロパティがインクの配置に影響するようになります。

[ペイント]オプションを有効にすると、さまざまなペイント レイヤ([ハイライト]、[リムライト]など)の境界にインクが描画されます。デジタル インク/ペイント システムを使って最終的なインク輪郭を連続して描画する場合などに便利です。

[透明度]オプションを有効にすると、透明なサーフェイスと不透明なサーフェイス間の境界にインクが描画されます。

[シャドウ]オプションを有効にすると、シャドウが投影されるサーフェイス間の、シャドウの影響を受けない部分にインクが描画されます。サーフェイスが透明であるか不透明であるかを決定する透明度しきい値は、Toon Host(トゥーン ホスト)シェーダの[透明度](Transparency)>[検知しきい値](Detection Threshold)パラメータで調整できます。

ファセット

ファセットの境界で輪郭線を検出します。この結果、テッセレートされたサーフェイスの三角形が交差、隣接、または重なっているところの間に輪郭線が描画されます。

エフェクトでスイッチが有効になります。

[同一平面のマージ](Merge Coplanar)を有効にすると、同一平面上の隣接する三角形の間のファセット境界が無視されます。

しきい値

レイの交点でのサーフェイスのプロパティに従って輪郭線を検出します。これらの基準は互いに排他ではありません。たとえば、輪郭線は方向にも距離にも関連して引けます。したがって、1 つのパラメータの値を 0 にしても影響を受けるすべての輪郭線が消えるということはありません。方向と距離の輪郭は、同じマテリアルが適用されている、同じオブジェクトのサーフェイス内でのみ検出されます。

方向(Direction)

同じ三角形上にないサンプル ポイントにおいて、サーフェイスの向きの開きがこの角度を越えているところでインクを描画します。角度は度数で指定します。

このしきい値は、このシェーダの[詳細設定]タブにある[フェード サンプリングしきい値]コントロール、または Toon Host マテリアル シェーダのローカル コントロールで修正できます。

距離(Distance)

同じ三角形上にないサンプル ポイント間がこの距離を越えているところで輪郭線を描画します。

このしきい値は、このシェーダの[詳細設定]タブにある[フェード サンプリングしきい値]コントロールで修正できます。

背景

これはすばやく指定したカラー(またはイメージ)の背景に対する輪郭線イメージをプレビューまたはレンダリングする方法です。

有効(Enable)

エフェクトをオンにします。

カラー(Color)

背景カラーを指定します。このパラメータはテクスチャリング可能なため、他のレンダリング ノード(たとえばイメージまたはイメージ シーケンス)への出力として使用できます。

アルファ値があらかじめ乗算される(mental ray の既定のカラー フォーマット)効果のため、最終的にレンダリングされるイメージのアルファチャンネル値はここで指定された値と異なる場合があります。

レンズ エフェクト

[レンズ エフェクト]オプションを使用すると、さまざまなレンズ歪曲エフェクトを実現できます。このエフェクトは、手で描いた作品や、写真のようなリアルさのないレンダリングで見られる、歪んだ視点をシミュレートするときに役立ちます。

Fisheye(魚眼)

[魚眼]パラメータは、実際の魚眼レンズを通して見たときのような、特徴的な半球状の歪みを持つ 180 度の視野をレンダリングできる、半球(魚眼)レンズをシミュレートします。これらのパラメータはレンズ エフェクトシェーダのパラメータと同じですが、速度のためと輪郭線そのものではなく、レンダリングされたイメージの歪みを許容するために、トゥーン インク レンズ シェーダに組み込まれています。

有効(Enable)

魚眼レンズを模した歪みをアクティブにします。

度合い

魚眼レンズを模した歪みの度合いを調整します。この値が 0.0 の場合、レンズは実質的に「平ら」になります。1.0 の場合、レンズは完全に半球状になります。

歪みはパス カメラの視野(FOV: field of view)を基準とします。したがって、FOV が 180 度に設定され、歪曲に 1.0 が設定された場合にのみ、レンズは本当の意味で半球状になります。

パス カメラの視野は、[カメラ]プロパティ エディタで調整できます。

スケール

X/Y

イメージの比率(X および Y)を調整します。

均等(Uniform)

有効な場合、[X]と[Y]は同じスケール値になり、変更するとイメージが均一に拡大または縮小されます。縮小すると、レンズがカバーしていない未定義領域が黒で表示されます。

バルジ

バルジ パラメータを使用すると、視線の方向を変えることによりレンズの「凹凸を制御」できます。レンズを、魚眼レンズのように凸型にバルジ アウトしたり、凹型にバルジ インすることができます。このエフェクトはレンズのサーフェイス全体で異なる可能性があるので、Render Tree を使用してコントロールする方法が最適です。

有効(Enable)

バルジ エフェクトをアクティブにします。

度合い(Amount)

バルジ エフェクトの度合いを調整します。この値が 0.0 の場合、実質的にバルジ エフェクトは無効になります。1.0 の場合、完全な効果を得られます(大きさスライダで制御)。

大きさ

X/Y

水平方向と垂直方向のバルジをそれぞれコントロールします。Render Tree を使用すると、[テクスチャ空間ジェネレータ プリセット](Texture Space GeneratorPreset)ノードを使用して視線ごとにスクリーン座標を計算し、手続きテクスチャ(GradientGradient_Mixerなど)をスクリーン空間にマッピングすることにより、これらのパラメータに設定するスカラ値を生成できます。

Advanced(アドバンス)

ホストが必要(Require Host)

オンの場合、輪郭線は Toon Host マテリアル シェーダ([Toon_Host]など)が適用されているサーフェイスにのみ引かれます。

インクのみ(Ink Only)

基本サーフェイス カラーのインク カラーへの影響を含むか除外するかを指定します。除外する場合、インクは黒の上に合成されます。

並び替え許容誤差(Sorting Tolerance)

輪郭線が引かれる際、いつもカメラに最も近いサンプルのインク プロパティが使用されます。しかし、サンプル同士がほとんど同じ位置を占めている場合、輪郭線が粗くならないように、カメラのサンプルとの入射角など代わりの基準を使用する必要があります。[並び替え許容誤差]は、その距離内ではどちらのサンプルの輪郭線を引くか決定するために距離ではなく入射角が使用される、2 つのサンプル間の距離の範囲を定義します(この値を加えるまたは差し引きます)。

配分(Distribution)

このシェーダの旧バージョンでは、輪郭線の方向を 2 次元(ラスタ空間)でジッタリングしていました。新しいバージョンでは、輪郭線の方向を 1 次元(一定半径を持つ円形ターゲットの角)でジッタリングするため、インク輪郭を高速かつ正確にレンダリングできます。[角度]を選択するとパフォーマンスが向上します。旧バージョンとの互換性のためにエリア ディストリビューション機能が提供されています。

拡大スケール(Spread Scale)

輪郭の拡大は、指定の画面解像度に対する絶対値(内部単位)または相対値で表せます。

[相対](Relative)を選択すると、指定の[X. 解像度](X. Res)(水平解像度)が一定になるように広がります。たとえば、指定の解像度を 2 度レンダリングし、インクの太さが 2 倍になります。

絶対を選択すると、レンダリング解像度とは無関係に広がりは一定になります。

フェード サンプリングしきい値

レイの起点(カメラまたは反射/屈折面)からサンプルまでの距離に応じて、距離と方向のサンプリングしきい値を変化させることができます。この機能は、離れたオブジェクトの見た目の精細度を減少させるために使用します。

度合い(Amount)

効果の強さです(値が 0 の場合は機能しません)。

距離(Distance)

方向しきい値が修正される距離の範囲。

後方許容誤差(Far Thresholds)

サンプルの距離が上記で指定された遠点距離を超える方向(度数)および距離のしきい値。

Render Tree の使い方

このシェーダは直接レンズ シェーダ スタックのカメラに適用することができます。カメラへレンズ シェーダを適用するを参照してください。

ほかに、組となる[トゥーン ホスト](Toon Host)マテリアル シェーダと併用して、交差するサーフェイスにおける設定に応じてパラメータの一部をオーバーライドしたり、修正することもできます。