Compartir a través de


Efectos (Direct3D 11)

Un efecto DirectX es una colección de estado de canalización, establecida por expresiones escritas en HLSL y alguna sintaxis específica del marco de efecto.

Después de compilar un efecto, use las API del marco de efecto para representar. La funcionalidad de efectos puede variar desde algo tan sencillo como un sombreador de vértices que transforma la geometría y un sombreador de píxeles que genera un color sólido, a una técnica de representación que requiere varios pasos, usa todas las fases de la canalización de gráficos y manipula el estado del sombreador, así como el estado de canalización no asociado a los sombreadores programables.

El primer paso es organizar el estado que desea controlar en un efecto. Esto incluye el estado del sombreador (vértice, casco, dominio, geometría, píxeles y sombreadores de proceso), el estado de textura y muestreo utilizado por los sombreadores y otro estado de canalización no programable. Puede crear un efecto en la memoria como una cadena de texto, pero normalmente el tamaño es lo suficientemente grande como para almacenar el estado de efecto en un archivo de efecto (un archivo de texto que termina en una extensión .fx). Para usar un efecto, debe compilarlo (para comprobar la sintaxis de HLSL, así como la sintaxis del marco de efecto), inicializar el estado del efecto a través de llamadas API y modificar el bucle de representación para llamar a las API de representación.

Un efecto encapsula todo el estado de representación requerido por un efecto determinado en una sola función de representación denominada técnica. Un paso es un subconjunto de una técnica que contiene el estado de representación. Para implementar un efecto de representación de varios pasos, implemente uno o varios pasos dentro de una técnica. Por ejemplo, supongamos que quería representar alguna geometría con un conjunto de búferes de profundidad y galería de símbolos y, a continuación, dibujar algunos sprites encima de eso. Puede implementar la representación de geometría en el primer paso y el dibujo de sprite en el segundo paso. Para representar el efecto, basta con representar ambas pasadas en el bucle de representación. Puede implementar cualquier número de técnicas en un efecto. Por supuesto, cuanto mayor sea el número de técnicas, mayor será el tiempo de compilación del efecto. Una manera de aprovechar esta funcionalidad es crear efectos con técnicas diseñadas para ejecutarse en hardware diferente. Esto permite que una aplicación cambie correctamente el rendimiento en función de las funcionalidades de hardware detectadas.

Un conjunto de técnicas se puede agrupar en un grupo (que usa la sintaxis "fxgroup"). Las técnicas se pueden agrupar de cualquier manera. Por ejemplo, se podrían crear varios grupos, uno por material; cada material podría tener una técnica para cada nivel de hardware; cada técnica tendría un conjunto de pasos que definen el material en el hardware concreto.

En esta sección

Tema Descripción
estado de organización en un de efecto
Con Direct3D 11, el estado de efecto para determinadas fases de canalización está organizado por estructuras.
interfaces del sistema de efectos de
El sistema de efectos define varias interfaces para administrar el estado del efecto.
interfaces especializadas
ID3DX11EffectVariable tiene varios métodos para convertir la interfaz en el tipo determinado de interfaz que necesita.
interfaces y clases de en efectos
Hay muchas maneras de usar clases e interfaces en Efectos 11.
representar un efecto
Un efecto se puede usar para almacenar información o para representar mediante un grupo de estados.
clonar un efecto
La clonación de un efecto crea una segunda copia casi idéntica del efecto.
de sintaxis de flujo de flujo
Un sombreador de geometría con flujo de salida se declara con una sintaxis determinada.
diferencias entre los efectos 10 y los efectos 11
En este tema se muestran las diferencias entre Efectos 10 y Efectos 11.

Guía de programación de para direct3D 11