Trabajar con sombreadoresWorking with Shaders

Puede usar el Diseñador de sombras basado en gráficos de Visual StudioVisual Studio para diseñar efectos de sombreador personalizados.You can use the graph-based Shader Designer in Visual StudioVisual Studio to design custom shader effects. Estos sombreadores se pueden usar en la aplicación o juego basado en DirectX.You can use these shaders in your DirectX-based game or app.

SombreadoresShaders

Un sombreador es un programa informático que realiza cálculos de gráficos (por ejemplo, transformaciones de vértice o coloreado de píxeles) y que suele ejecutarse en una unidad de procesamiento gráfico (GPU) en lugar de en la CPU.A shader is a computer program that performs graphics calculations—for example, vertex transformations or pixel coloring—and typically runs on a graphics processing unit (GPU) instead of the CPU. Dado que ahora la mayoría de las etapas de la canalización tradicional de gráficos de función fija se efectúa con programas de sombreador, puede usarlos para crear una canalización que sea específica para las necesidades de su aplicación.Because most stages of the traditional, fixed-function graphics pipeline are now performed by shader programs, you can use them to create a pipeline that's specific to the needs of your app.

Los tipos más comunes de sombreador son los sombreadores de vértices (que realizan cálculos por vértice y reemplazan la transformación de función fija y el circuito de iluminación en hardware de gráficos no programable) y los sombreadores de píxeles (que realizan cálculos por píxel con los que se determina el color de un píxel y se reemplaza el circuito de combinación de colores de función fija en el hardware de gráficos no programable).The most common kinds of shaders are vertex shaders, which perform per-vertex calculations and replace the fixed-function transformation and lighting circuitry in non-programmable graphics hardware, and pixel shaders, which perform per-pixel calculations that determine the color of a pixel and replace the fixed-function color-combiner circuitry in non-programmable graphics hardware. El hardware gráfico actual ha hecho posible todavía más tipos de sombreadores; así, los sombreadores de casco, los sombreadores de dominio y los sombreadores de geometría para realizar cálculos de gráficos, o los sombreadores de proceso para realizar cálculos no gráficos.Modern graphics hardware has made even more kinds of shaders possible—hull shaders, domain shaders, and geometry shaders for graphics calculations, and compute shaders for non-graphics computations. Ninguna de estas fases está disponible en el hardware de gráficos no programable.None of these stages are even available in non-programmable graphics hardware. En principio, los sombreadores se crearon con un lenguaje parecido al de los ensamblados que proporcionaba instrucciones paralelas a datos (SIMD) y centradas en gráficos (producto de puntos).Shaders were originally created by using an assembly-like language that provided data-parallel (SIMD) and graphics-centric (dot product) instructions. Ahora, los sombreadores se suelen crear con lenguajes tipo C de alto nivel como HLSL (High Level Shader Language, lenguaje de sombreado de alto nivel).Now, shaders are typically created by using high-level, C-like languages like HLSL (High Level Shader Language).

El Diseñador de sombras se puede usar para crear sombreadores de píxeles de forma interactiva, en lugar de tener que escribir y compilar código.You can use the Shader Designer to create pixel shaders interactively instead of by entering and compiling code. En el Diseñador de sombras, un sombreador se define a partir de un número de nodos que representan datos y operaciones, y de las conexiones entre los nodos que representan el flujo de valores de datos y los resultados intermedios a través del sombreador.In the Shader Designer, a shader is defined by a number of nodes that represent data and operations, and connections between nodes that represent the flow of data values and intermediate results through the shader. Si se emplea este método y la vista previa en tiempo real del Diseñador de sombras, se puede visualizar la ejecución del sombreador más fácilmente, así como experimentar para "detectar" variaciones de sombreador interesantes.By using this approach and the real-time preview in the Shader Designer, you can visualize the execution of the shader more easily, and "discover" interesting shader variations through experimentation.

Documentos DGSLDGSL documents

El Diseñador de sombras guarda los sombreadores con el formato Directed Graph Shader Language (DGSL), que es un formato XML basado en el lenguaje Directed Graph Markup Language (DGML).The Shader Designer saves shaders in the Directed Graph Shader Language (DGSL) format, which is an XML format that's based on Directed Graph Markup Language (DGML). Los sombreadores DGSL se pueden usar directamente en los modelos 3D del editor de modelos.You can apply DGSL shaders directly to 3-D models in the Model Editor. Pero, para poder usar un sombreador DGSL en la aplicación, antes hay que exportarlo a un formato que DirectX entienda (HLSL, por ejemplo).However, before you can use a DGSL shader in your app, you must export it to a format that DirectX understands—for example, HLSL.

Como DGSL es compatible con DGML, puede usar herramientas diseñadas para analizar documentos DGML con el propósito de analizar sombreadores DGSL.Because DGSL is compatible with DGML, you can use tools that are designed to analyze DGML documents to analyze your DGSL shaders. Para más información sobre DGML, vea Understanding Directed Graph Markup Language (DGML) (Introducción a Directed Graph Markup Language [DGML]).For information about DGML, see Understanding Directed Graph Markup Language (DGML).

TitleTitle DescriptionDescription
Diseñador de sombrasShader Designer Describe cómo usar el diseñador de sombras de Visual StudioVisual Studio para trabajar con sombreadores.Describes how to use the Visual StudioVisual Studio Shader Designer to work with shaders.
Nodos del Diseñador de sombrasShader Designer Nodes Se abordan los tipos de nodos del Diseñador de sombras que se pueden usar para lograr efectos gráficos.Discusses the kinds of Shader Designer nodes that you can use to achieve graphics effects.
Ejemplos del Diseñador de sombrasShader Designer Examples Aquí encontrará vínculos a temas donde se explica cómo usar el Diseñador de sombras para lograr efectos gráficos comunes.Provides links to topics that demonstrate how to use the Shader Designer to achieve common graphics effects.