シェーダー

シェーダーは方法を制御しますMari特定のユーザー指定の照明条件下でキャンバスにモデルを表示します。Mariは、シェーダーを使用して、照明モジュールで異なるチャネルがどのように動作するか、およびモデルのペイントが光にどのように反応するかを指定します。Marialwaysシェーダーを使用して、画面に表示される表面を生成します。

シェーダーはプロジェクトのチャンネルとレイヤーにも大きく依存しており、現在のペイントレイヤー、ターゲット、チャンネルを特にShadersパレット。

Mariのデフォルトのシェーダーは、 Current ChannelCurrent Layer and BelowCurrent Layer 、またはCurrent Paint Target。ディフューズシェーダータイプとスペキュラーシェーダータイプを組み合わせて、シェーダーコンポーネント入力にチャネルを設定し、シェーダーでの表示方法を指定することにより、「ユーザーシェーダー」と呼ばれる独自のカスタムシェーダーを作成することもできます。

シェーダー、チャネル、レイヤーが相互に統合する方法の詳細については、 レイヤーこのガイドのセクション。

ビデオ:  見るシェーダーとチャンネルについてシェーダーについての簡単な概要については。
このビデオは、ワークフローを使用して示していますMari 3。にもかかわらずMari 4ワークスペースが異なり、ワークフローは同じままです。主なUIの違いを確認するには、 Mari 3.3対4.0

シェーダー入門

デフォルトでは、プロジェクトを作成し、変更を加えない場合Channelsタブでは、原理的なBRDFシェーダーが4つのチャネルで作成されます。見るプロジェクトの管理。デフォルトのチャンネルはすぐにシェーダーに接続され、プロジェクトが設定されます。追加のチャネルを作成してシェーダーコンポーネントのフィールドに割り当て、モデル上に複雑なテクスチャを構築できます。

カラーチャンネル、プラス...

変位チャネル、プラス...

鏡面チャンネル、等しい...

...この。ここでは、シェーダーが3つのチャネルすべてを引き込んで、最終的なレンダリングがどのように見えるかをプレビューできるサーフェスを作成しています。

これにより、たとえば、シェーダーを構築して、変更が最終レンダリングにどのように影響するかをリアルタイムで確認しながら、ディスプレイスメントチャネルまたはスペキュラチャネルにペイントできます。

ヒント:  シェーダーonly制御方法Mariモデルの表面を表示します。プロジェクトのチャンネルの内容には影響しません。

シェーダーには次のものがあります。

アンビエント、ディフューズ、スペキュラーライトの強度など、基本的な照明の詳細。

現在のチャネル、レイヤー、レイヤースタック、または現在のペイントターゲットでペイントをすばやく表示する方法。

Mari現在のシェーダーのコンポーネントを通過することにより、シェーディングされたサーフェスを生成します。各コンポーネントは、チャネルから入力を受け取り、関連するコンポーネントスライダーに従って調整されます。これらのコンポーネントは、現在のサーフェスに追加されます。画面に表示される最終的なシェーディングサーフェスは、これらのコンポーネントの最終結果です。

たとえば、次の手順に従ってシェーダーを設定できます。

1.   拡散チャネルから最初のシェーディングされたサーフェスを作成し、これをシェーダーのDiffuse Color成分。
2.   指定されたチャネルを入力として使用して鏡面反射またはディスプレイスメントのプレビューを表示し、スライダーを調整して、シェーディングされたサーフェスに希望の外観を与えます。
3.   環境光を調整するか、環境画像を適用して、最終的なレンダリング画像のプレビューをさらに構築します。

チャネルと同様に、シェーダーを個別に設定しますオブジェクトの操作.

シェーダーとライト

Mari、シェーダー、ライトは関連しています。どちらもプロジェクトが画面に表示される方法を制御しますが、チャネルの実際のデータには影響しません。

シェーダーにはいくつかの基本的な照明情報が含まれていますが、ほとんどの場合、モデルの表面に何を表示するかを指定します。たとえば、シェーダーには鏡面情報が含まれている場合があります。これは、サーフェスがプロジェクト内のライトとどのように相互作用するかを示します。

ライトは、プロジェクトがキャンバス上でどのように照らされるかを制御します。で設定を調整することにより、それぞれ独自の色、強度、方向を持つ4つの個別のライトを設定できます。 Lightsパレット。ライティングの画像に依存する環境ライトを設定することもできます。

シェーダーを設定した後でも、モデルの照明を変更することで、モデルの照明を変更できます。 Project Controls ツールバー、 Lightsパレット、またはShadingメニュー。

シェーディングとチャンネル

Mariには、現在のチャネル、レイヤー、またはペイントターゲットのコンテンツを表示するいくつかのデフォルトシェーダーがあります。いつでもこれらに切り替えて作業を個別に確認し、どのチャネルがどのシェーダー入力で使用されているかを確認できます。

ヒント:  編集中のシェーダーを追跡する便利な方法は、ヘッドアップディスプレイに追加することです。からEditメニュー、選択HUD Manager。下Project、横のボックスにチェックを入れますCurrent ShaderMariキャンバスの背景情報の一部として、現在ペイントしているシェーダーの名前を表示します。詳細については、 ユーザーインターフェイスの構成セクション。

複数チャンネルのシェーダー

プロジェクト内の1つのオブジェクト用に作成したシェーダーをコピーして別のオブジェクトで使用する場合は、キーボードショートカットまたはコンテキストメニューのオプションを使用して、オブジェクト間でシェーダーを切り取り、コピー、貼り付けできます。シェーダーは、チャネルとレイヤーと同様に、各オブジェクト専用です。別のオブジェクトで使用するためにシェーダーを複製する唯一の方法は、それを切り取るかコピーして、 Shadersプロジェクト内の各オブジェクトのパレット。

物理的にもっともらしいシェーダー

物理的にもっともらしいシェーダーは、デフォルトなどの従来のシェーダーとは異なりますMariエネルギー保存の法則に従うことによるシェーダー。従来のシェーダーとは異なり、次のような異なる入力を変更します。 SpecularまたはSpecular Roughness、ポイントライトまたは環境ライトの全体的な明るさには影響しません。光の分布が変化して、1つの場所に集中するか、シェーディングされたサーフェス全体に広がる場合がありますが、ピクセル値の合計は同じ値になるはずです。

アンビエントオクルージョン

アンビエントオクルージョンは、カスタム作成されたすべてのシェーダーのシェーダーコンポーネント入力として設定できます。アンビエントオクルージョンにコンポーネント入力を使用すると、別のチャネルで独自のオクルージョンマップを作成し、このチャネルをシェーダー入力に接続できます。

アンビエントオクルージョン専用のチャネルを作成したくない場合は、プロジェクト内の個々のオブジェクトごとにアンビエントオクルージョンを計算することを選択できます。詳細については、以下を参照してください。 マスキングについてそしてアンビエントオクルージョンの計算

シェーダー制限

ほとんどのシェーダーはテクスチャスロットを必要としませんが、使用可能なテクスチャスロットの量を超えると、レンダリングエラーが発生する可能性があります。これが発生する場合、エラーの原因となった可能性のあるいくつかの原因があります。テクスチャスロットを解放するには、次を試してください。

のマスクのペイントなど、追加のテクスチャユニットを必要とする機能をオフにするPaintingパレット、

アクティブになっている可能性のあるフィルタープレビューをオフにします。

長いまたは複雑なレイヤースタックでレイヤーをフラット化またはキャッシュします。

現在のシェーダーの入力を変更して、使用するテクスチャスロットを減らします。

注意:  利用可能なテクスチャスロットが残っていても、より高価なシェーダーコンポーネントを使用している場合、深度投影、ペイントマスク、シャドウなどのアクティブな機能は、テクスチャスロットの制限を考慮しない場合があります。これらの機能をオフにして、より多くのテクスチャスロットを解放できます。見る マスキングについてそして影の設定詳細については。