This project is read-only.

Reduciendo la carga del Pixel Shader con un Z-Prepass

Autor

Rodrigo Díaz Tajada
Coordinador Club .NET Alicante
http://blog.r2d2rigo.es/

Última Actualización

13/01/2010

Descripción

(Artículo original: http://blog.r2d2rigo.es/programacion/xna-demos-iv-reduciendo-la-carga-del-pixel-shader-con-un-z-prepass/)

¿Qué ocurre cuando nuestra escena es demasiado costosa para dibujarla, pero ya no podemos mejorar el rendimiento mediante técnicas tradicionales de culling? Mediante la técnica Z-Prepass podemos descartar ya no objetos, sino píxeles individuales en el proceso de render.

En primer lugar dibujamos la escena con un shader que sólo escriba la profundidad de los píxeles, y usamos éste depth buffer para determinar qué pixeles se rasterizarán en el paso final; así, si un objeto ocluye una porción de otro, los pixeles del segundo que no vayan a verse en pantalla nunca serán dibujados, ahorrando trabajo a la GPU en el pixel shader. Muy útil si se cuenta con efectos bastante pesados (nomal mapping, múltiples luces dinámicas) que suponen un gran trabajo al pixel shader.

Nota: los resultados del Z-Prepass se pueden observar con mayor claridad colocando la cámara de tal manera que uno de los cubos grandes tape (en parte o completamente) las columnas del centro.

Controles:
  • Arrastrar con el botón izquierdo: rotar cámara.
  • Tecla 1: Activar/desactivar Z-Prepass
  • Teclas WASD: desplazarse por la escena.
  • Tecla F1: Acerca de...

Descarga

Descargar ( XNA GS 3.1)

Last edited Feb 23, 2010 at 8:28 AM by r2d2rigo, version 5

Comments

No comments yet.