方法: ジオメトリベースのグラデーション シェーダーを作成する
このドキュメントでは、シェーダー デザイナーおよび Directed Graph Shader Language を使用してジオメトリ ベースのグラデーション シェーダーを作成する方法を説明します。このシェーダーは、ワールド空間におけるオブジェクトの各ポイントの高さによって定数 RGB カラー値をスケーリングします。
このドキュメントでは、以下のアクティビティについて説明します。
シェーダー グラフにノードを追加する。
ノード プロパティの設定
ノードを削除します。
ノードの接続
ジオメトリ ベースのグラデーション シェーダーの作成
ピクセル シェーダーに、のの位置を組み込むことによって、ジオメトリ ベースのシェーダーを実行できます。イメージの言語では、2 番目のピクセルは、画面の色と位置よりも多くの情報が含まれます。複数の フラグメントが ピクセルに対応するサーフェイスを表す値のコレクション システムの場合ピクセルわかっている。ここで説明されているシェーダーは、フラグメントの最終的な出力色に影響するために、ワールド座標の 3-D オブジェクト内の各ピクセルの高さを使用します。
開始する前に、[プロパティ] のウィンドウと [ツールボックス] が表示されることを確認します。
ジオメトリ ベースのグラデーション シェーダーを作成するには
を使用するには DGSL のシェーダーを作成します。プロジェクトに DGSL のシェーダーを追加する方法の詳細については、シェーダー デザイナーの先頭に"を参照してください。
[最終的な色] のノードから [ポイントの色] のノードをドロップします。[ポイントの色] の [RGB] のターミナル ノードを選択し、[リンクの解除] を選択します。これは次の手順で追加したノードの場所を空にします。
グラフに [乗算記号] ノードを追加します。ツールボックスの [数式] で [乗算記号] をクリックし、デザイン サーフェイスに移動します。
グラフに [ベクターのマスク] ノードを追加します。ツールボックスの [ユーティリティ] で [ベクターのマスク] をクリックし、デザイン サーフェイスに移動します。
[ベクターのマスク] ノードのマスク値を指定します。次に [選択] モードでは、[プロパティ] のウィンドウの [ベクターのマスク] のノードを設定 [Green / Y] のプロパティを true"に、を falseに設定します [Red / X]、[Blue / Z] と [Alpha / W] のプロパティを選択します。この例では、[Red / X]、[Green / Y] と [Blue / Z] のプロパティは [ワールド位置] のノードの x、y、および z のコンポーネントに対応し、[Alpha / W] は使用されません。マスクと [Green / Y] のみ trueに設定されているため、入力のベクター y コンポーネントだけが残ります。
グラフに [ワールド位置] ノードを追加します。ツールボックスの [定数] で [ワールド位置] をクリックし、デザイン サーフェイスに移動します。
フラグメントのワールド空間の位置をマスクします。[選択] モードで、[ワールド位置] ノードの [出力] ターミナルを [ベクターのマスク] ノードの [ベクター] ターミナルに移動します。この接続は、フラグメントの位置をマスクして x コンポーネントと z コンポーネントを無視します。
マスクされたワールド空間の位置で RGB カラー定数を乗算します。[ポイントの色] のターミナル ノードの [RGB] を [乗算] のターミナル ノードの [Y] に移動し、[乗算] のターミナル ノードの [X] に [ベクターのマスク] のターミナル ノードの [出力] を実行します。このつながりはワールド座標のピクセル単位の高さに応じて色の値をスケーリングします。
スケーリングされたカラー値を最終的な色に接続します。[最終的な色] のターミナル ノードの [RGB] に [乗算] のターミナル ノードの [出力] を実行します。
次の図は、完了したシェーダー グラフと球に適用されるシェーダーのプレビューを示します。
[!メモ]
この図では、シェーダーの効果をわかりやすく示すためにオレンジ色が指定されていますが、ワールド空間にプレビュー図形の位置がないため、シェーダー デザイナーでシェーダーを完全にプレビューすることができません。完全な効果を確認するには、シェーダーを実際のシーンでプレビューする必要があります。
特定の図形を使用すると、シェーダーをより適切にプレビューできる可能性があります。Shader デザイナー シェーダーのプレビューする方法の詳細については、シェーダー デザイナーの シェーダーのプレビュー を参照してください。
次の図は、このドキュメントで説明したシェーダーを「方法: 基本 3-D シーンをモデル化する」に示した 3-D シーンに適用したものです。ここでは、色の輝度がワールド空間のポイントの高さと共に増加しています。
3-D モデルにシェーダーを適用する方法の詳細については、「方法: シェーダーを 3-D モデルに適用する」を参照してください。