Representación de un efecto (Direct3D 10)
Un efecto se puede usar para almacenar información o para representar mediante un grupo de estados. Cada técnica especifica sombreadores de vértices, sombreadores geométricos, sombreadores de píxeles, estado del sombreador, muestreador y estado de textura y otro estado de canalización. Por lo tanto, una vez que haya organizado el estado en un efecto, puede encapsular el efecto de representación resultante de ese estado mediante la creación y representación del efecto.
Hay algunos pasos para preparar un efecto para la representación. La primera es la compilación, que comprueba el HLSL como código con la sintaxis del lenguaje HLSL y las reglas del marco de efecto. Puede compilar un efecto desde la aplicación mediante llamadas API o puede compilar un efecto sin conexión mediante la utilidad del compilador de efectos. Una vez que el efecto se haya compilado correctamente, créelo llamando a un conjunto diferente (pero muy similar) de API.
Una vez creado el efecto, hay dos pasos restantes para usarlo. En primer lugar, debe inicializar los valores de estado del efecto (los valores de las variables de efecto) mediante una serie de métodos para establecer el estado. Para algunas variables, esto se puede hacer una vez que se crea un efecto; Otros deben actualizarse cada vez que la aplicación llama al bucle render. Una vez establecidas las variables de efecto, se indica al tiempo de ejecución que represente el efecto aplicando una técnica. Estos temas se describen con más detalle a continuación.
- Compilación de un efecto (Direct3D 10)
- Crear un efecto (Direct3D 10)
- Establecer estado de efecto (Direct3D 10)
- Aplicar una técnica (Direct3D 10)
Naturalmente, hay consideraciones de rendimiento para el uso de efectos. Estas consideraciones son en gran medida las mismas si no usa un efecto. Cosas como, minimizar la cantidad de cambios de estado o organizar las variables que deben actualizarse con frecuencia. Estas tácticas se usan para minimizar la cantidad de datos que se deben enviar desde la CPU a la GPU y, por tanto, minimizar los posibles problemas de sincronización.
Temas relacionados