|
Seguimos leyendo las presencaciones del GDC2008. Esta vez nos toca una muy muy recomendable, sobre materiales con tarjetas modernas . La presentación nos desarrolla cómo deberíamos de organizar las propiedades de los materiales cuando renderizamos objetos. Los drivers modernos están pensados para que un objeto tenga definidas todas sus propiedades. Usaremos una mezcla de ordenar estados, y aprovechar de una cache de estados para no cambiar innecesariamente de estado entre objetos, que es realmente lo lento en una tarjeta. DirectX 10 tiene los state objects para precisamente esto. Cuando visitamos un material, tenemos un prerender y un postrender, donde activaremos la configuración del material (por ejemplo, activaremos la textura, o definiremos la cantidad de especular para ese objeto). Si hemos sido cuidadosos, no tendremos que cambiar muchas cosas entre objetos. Hay casos que hay que contemplar. Por ejemplo, reemplazar todos los shaders de la escena, para pintar el shadow map. O cambiar el modo de render a wireframe. La presentación nos habla de modificadores del material , y nos introduce una forma flexible de manejar muchos cambios en estados globales, usando una pila de modificadores globales. Así, cada objeto mirará si hay algo que modifique el material asignado antes de pintarse. Esta pila puede modificar ligeramente, o reemplazar totalmente el material. Tambien nos hace incapié en la creación dinámica de shaders, para optimizar el render, combinando shaders antes de compilarlos. Asi podremos por ejemplo, realizar sumas y operaciones, reducir luces que no son visibles, etc.
|