方法: 基本ランバート シェーダーを作成するHow to: Create a Basic Lambert Shader

このドキュメントでは、シェーダー デザイナーと DGSL (Directed Graph Shader Language) を使用してクラシック ランバート照明モデルを実装するためのライティング シェーダーを作成する方法について説明します。This document demonstrates how to use the Shader Designer and the Directed Graph Shader Language (DGSL) to create a lighting shader that implements the classic Lambert lighting model.

このドキュメントでは、以下のアクティビティについて説明します。This document demonstrates these activities:

  • シェーダー グラフへのノードの追加Adding nodes to a shader graph

  • ノードの接続の解除Disconnecting nodes

  • ノードの接続Connecting nodes

ランバート照明モデルThe Lambert lighting model

ランバート照明モデルには、3-D シーン内のオブジェクトに陰影をつけるためのアンビエント照明と指向性照明が組み込まれています。The Lambert lighting model incorporates ambient and directional lighting to shade objects in a 3-D scene. アンビエント コンポーネントは、3-D シーン内の照明の基本レベルとなります。The ambient components provide a base level of illumination in the 3-D scene. 指向性コンポーネントは、指向性 (遠隔) 光源からの追加の照明となります。The directional components provide additional illumination from directional (far-away) light sources. アンビエント照明は、サーフェイスの向きに関係なく、シーン内のすべてのサーフェイスに均等に影響を及ぼします。Ambient illumination affects all surfaces in the scene equally, regardless of their orientation. ある特定のサーフェイスでは、これはサーフェイスのアンビエント色とシーン内のアンビエント照明の色および輝度で決まります。For a given surface, it's a product of the ambient color of the surface and the color and intensity of ambient lighting in the scene. 指向性照明がシーン内のサーフェイスに与える影響は、光源の方向に対するサーフェイスの向きによって、サーフェイスごとに異なります。Directional lighting affects every surface in the scene differently, based on the orientation of the surface with respect to the direction of the light source. これは、サーフェイスの拡散色および向きと、光源の色、輝度、方向で決まります。It's a product of the diffuse color and orientation of the surface, and the color, intensity, and direction of the light sources. 光源に直接面しているサーフェイスは最大の効果を受け、反対側のサーフェイスは効果を受けません。Surfaces that face directly toward the light source receive the maximum contribution and surfaces that face directly away receive no contribution. ランバート照明モデルでは、アンビエント コンポーネントと 1 つ以上の指向性コンポーネントの組み合わせで、オブジェクトの各ポイントの総拡散色効果が決まります。Under the Lambert lighting model, the ambient component and one or more directional components are combined to determine the total diffuse color contribution for each point on the object.

開始する前に、[プロパティ] ウィンドウとツールボックスが表示されていることを確認します。Before you begin, make sure that the Properties window and the Toolbox are displayed.

ランバート シェーダーを作成するにはTo create a Lambert shader

  1. 操作する DGSL シェーダーを作成します。Create a DGSL shader to work with. プロジェクトに DGSL シェーダーを追加する方法については、「シェーダー デザイナー」の「作業の開始」を参照してください。For information about how to add a DGSL shader to your project, see the Getting Started section in Shader Designer.

  2. [最終的な色] ノードから [ポイントの色] ノードを接続解除します。Disconnect the Point Color node from the Final Color node. [ポイントの色] ノードの [RGB] ターミナルを選択し、[リンクの解除] を選択します。Choose the RGB terminal of the Point Color node, and then choose Break Links. アルファ ターミナルは接続したままにしておきます。Leave the Alpha terminal connected.

  3. グラフに [ランバート] ノードを追加します。Add a Lambert node to the graph. ツールボックス[ユーティリティ][ランバート] を選択し、デザイン サーフェイスに移動します。In the Toolbox, under Utility, select Lambert and move it to the design surface. ランバート ノードは、アンビエントおよび拡散照明パラメーターに基づいて、ピクセルの総拡散色効果を計算します。The lambert node computes the total diffuse color contribution of the pixel, based on ambient and diffuse lighting parameters.

  4. [ポイントの色] ノードを [ランバート] ノードに接続します。Connect the Point Color node to the Lambert node. [選択] モードで、[ポイントの色] ノードの [RGB] ターミナルを、[ランバート] ノードの [拡散色] ターミナルに移動します。In Select mode, move the RGB terminal of the Point Color node to the Diffuse Color terminal of the Lambert node. この接続により、ランバート ノードに対してピクセルの拡散色が補間されます。This connection provides the lambert node with the interpolated diffuse color of the pixel.

  5. 計算された色の値を最終的な色に接続します。Connect the computed color value to the final color. [ランバート] ノードの [出力] ターミナルを、[最終的な色] ノードの [RGB] ターミナルに移動します。Move the Output terminal of the Lambert node to the RGB terminal of the Final Color node.

    次の図は、完成したシェーダー グラフと、ティーポット モデルに適用されるシェーダーのプレビューを示しています。The following illustration shows the completed shader graph and a preview of the shader applied to a teapot model.

注意

この図では、シェーダーの効果を分かりやすくするために、シェーダーの MaterialDiffuse パラメーターを使用してオレンジ色が指定されています。To better demonstrate the effect of the shader in this illustration, an orange color has been specified by using the MaterialDiffuse parameter of the shader. このパラメーターをゲームやアプリで使用して、オブジェクトごとに一意の色値を指定できます。A game or app can use this parameter to supply a unique color value for each object. マテリアル パラメーターについては、「シェーダー デザイナー」の「シェーダーのプレビュー」を参照してください。For information about material parameters, see the Previewing Shaders section in Shader Designer.

シェーダー グラフとその効果のプレビュー。The shader graph and a preview of its effect.

シェーダーによっては、特定の図形でより適切にプレビューできる可能性があります。Certain shapes might provide better previews for some shaders. シェーダー デザイナーでシェーダーをプレビューする方法の詳細については、「シェーダー デザイナー」の「シェーダーのプレビュー」を参照してください。For more information about how to preview shaders in the Shader Designer, see the Previewing Shaders section in Shader Designer.

次の図は、このドキュメントで述べた、3-D モデルに適用されるシェーダーを示しています。The following illustration shows the shader that's described in this document applied to a 3-D model.

モデルに適用されるランバート照明。Lambert lighting applied to a model.

3-D モデルにシェーダーを適用する方法の詳細については、「方法: シェーダーを 3-D モデルに適用する」を参照してください。For more information about how to apply a shader to a 3-D model, see How to: Apply a Shader to a 3-D Model.

関連項目See Also

方法: シェーダーを 3-D モデルに適用する How to: Apply a Shader to a 3-D Model
方法: シェーダーをエクスポートする How to: Export a Shader
方法: 基本フォン シェーダーを作成する How to: Create a Basic Phong Shader
シェーダー デザイナー Shader Designer
シェーダー デザイナー ノードShader Designer Nodes