Cómo: Crear un sombreador Lambert básicoHow to: Create a Basic Lambert Shader

En este artículo se muestra cómo usar el Diseñador de sombras y el lenguaje DGSL (Directed Graph Shader Language) para crear un sombreador de iluminación que implementa el modelo de iluminación de Lambert clásico.This article 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.

El modelo de iluminación de LambertThe Lambert lighting model

El modelo de iluminación de Lambert incorpora iluminación ambiental y direccional para sombrear objetos en una escena 3D.The Lambert lighting model incorporates ambient and directional lighting to shade objects in a 3D scene. Los componentes ambientales proporcionan un nivel de iluminación base en la escena 3D.The ambient components provide a base level of illumination in the 3D scene. Los componentes direccionales proporcionan iluminación adicional de fuentes de luz direccionales (lejanas).The directional components provide additional illumination from directional (far-away) light sources. La iluminación ambiental afecta a todas las superficies de la escena igualmente, sin importar su orientación.Ambient illumination affects all surfaces in the scene equally, regardless of their orientation. Para una superficie determinada, es el producto del color de ambiente de la superficie y del color y la intensidad de la luz ambiental en la escena.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. La iluminación direccional afecta a cada superficie de la escena de manera diferente, en función de la orientación de la superficie con respecto a la dirección de la fuente de luz.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. Es un producto del color difuso y la orientación de la superficie, y del color, la intensidad y la dirección de las fuentes de luz.It's a product of the diffuse color and orientation of the surface, and the color, intensity, and direction of the light sources. Las superficies que miran directamente hacia la fuente de luz reciben la máxima contribución y las superficies que miran directamente al otro lado no reciben ninguna contribución.Surfaces that face directly toward the light source receive the maximum contribution and surfaces that face directly away receive no contribution. Bajo el modelo de iluminación de Lambert, se combinan el componente ambiental y uno o más componentes direccionales para determinar la contribución de color difuso total para cada punto del objeto.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.

Antes de empezar, asegúrese de que se muestran la ventana Propiedades y el Cuadro de herramientas.Before you begin, make sure that the Properties window and the Toolbox are displayed.

  1. Cree un sombreador DGSL con el que trabajar.Create a DGSL shader to work with. Para obtener información sobre cómo agregar un sombreador DGSL al proyecto, vea la sección Introducción de Diseñador de sombras.For information about how to add a DGSL shader to your project, see the Getting Started section in Shader Designer.

  2. Desconecte el nodo Color de punto del nodo Color final.Disconnect the Point Color node from the Final Color node. Elija el terminal RGB del nodo Color de punto y, después, elija Romper vínculos.Choose the RGB terminal of the Point Color node, and then choose Break Links. Deje el terminal Alfa conectado.Leave the Alpha terminal connected.

  3. Agregue un nodo Lambert al gráfico.Add a Lambert node to the graph. En el Cuadro de herramientas, en Utilidad, seleccione Lambert y muévalo a la superficie de diseño.In the Toolbox, under Utility, select Lambert and move it to the design surface. El nodo Lambert calcula la contribución de color difuso total del píxel, en función de parámetros de iluminación ambiente y difusa.The lambert node computes the total diffuse color contribution of the pixel, based on ambient and diffuse lighting parameters.

  4. Conecte el nodo Color de punto al nodo Lambert.Connect the Point Color node to the Lambert node. En modo Seleccionar, mueva el terminal RGB del nodo Color de punto al terminal Color difuso del nodo Lambert.In Select mode, move the RGB terminal of the Point Color node to the Diffuse Color terminal of the Lambert node. Esta conexión proporciona al nodo Lambert el color difuso interpolado del píxel.This connection provides the lambert node with the interpolated diffuse color of the pixel.

  5. Conecte el valor de color calculado al color final.Connect the computed color value to the final color. Mueva el terminal Salida del nodo Lambert al terminal RGB del nodo Color final.Move the Output terminal of the Lambert node to the RGB terminal of the Final Color node.

    La ilustración siguiente muestra el gráfico de sombreador completo y una vista previa del sombreador aplicado a un modelo de tetera.The following illustration shows the completed shader graph and a preview of the shader applied to a teapot model.

Nota

Para demostrar mejor el efecto del sombreador en esta ilustración, se especificó un color naranja mediante el parámetro MaterialDiffuse del sombreador.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. Un juego o una aplicación puede usar este parámetro para proporcionar un valor de color único para cada objeto.A game or app can use this parameter to supply a unique color value for each object. Para obtener información sobre los parámetros de materiales, vea la sección Vista previa de sombreadores en Diseñador de sombras.For information about material parameters, see the Previewing Shaders section in Shader Designer.

Gráfico de sombreador y vista previa de su efecto.The shader graph and a preview of its effect.

Es posible que algunas formas proporcionen mejores vistas previas para algunos sombreadores.Certain shapes might provide better previews for some shaders. Para más información sobre cómo obtener una vista previa de los sombreadores en el Diseñador de sombras, vea la sección Vista previa de sombreadores en Diseñador de sombras.For more information about how to preview shaders in the Shader Designer, see the Previewing Shaders section in Shader Designer.

La siguiente ilustración muestra el sombreador descrito en este documento aplicado a un modelo 3D.The following illustration shows the shader that's described in this document applied to a 3D model.

Iluminación Lambert aplicada a un modelo.Lambert lighting applied to a model.

Para más información sobre cómo aplicar un sombreador a un modelo 3D, vea Cómo: Aplicar un sombreador a un modelo 3D.For more information about how to apply a shader to a 3D model, see How to: Apply a Shader to a 3D Model.

Vea tambiénSee also