«Auto-sombreado» es un término que describe la circunstancia en la que una parte de un objeto proyecta una sombra sobre sí mismo. Ejemplos de auto-sombra incluyen la sombra proyectada por una nariz humana en la cara o el labio superior cuando la fuente de luz proviene de arriba, o la sombra proyectada por el asiento de una silla en las patas de la silla. Cuando el término se usa en gráficos por computadora, específicamente en programación de gráficos por computadora, es una referencia a las sombras que proyectan los objetos tridimensionales (3D) de una escena sobre sí mismos, o sombras que proyectan objetos dinámicos sobre sí mismos y los objetos a su alrededor. . La naturaleza de la programación de gráficos por computadora en 3D en tiempo real hace que muchas aplicaciones utilicen técnicas que a menudo eliminan la posibilidad de representar sombras propias en favor de otras optimizaciones, aunque, a medida que aumenta la velocidad y las capacidades de las computadoras, los métodos de sombreado automático en tiempo real se han vuelto más accesibles. Existen varios métodos para renderizar objetos de auto-sombreado en tiempo real, pero las limitaciones de hardware suelen producir resultados que tienen algunos inconvenientes, como sombras inexactas, sombras con bordes artificialmente duros o escenas que se renderizan muy lentamente en tarjetas gráficas que no son increíblemente rápidas .
Una distinción que se debe hacer cuando se habla de auto-sombreado es la diferencia entre objetos estáticos y dinámicos en gráficos en tiempo real. Los objetos estáticos son objetos 3D en una escena que no se mueven y no tienen ninguna parte de su geometría cambiada durante el transcurso del renderizado. Un objeto dinámico, por otro lado, es un objeto que no se adjunta directamente a la escena de ninguna manera y puede ser diferente de un cuadro a otro. En su mayor parte, la mayoría de los objetos estáticos y las escenas que no son en tiempo real hacen sombra propia, ya sea por el motor de renderizado o por otros trucos gráficos que se pueden utilizar.
Varias optimizaciones que se utilizan para renderizar gráficos 3D en tiempo real dificultan la implementación del auto-sombreado dinámico. Algunos ejemplos incluyen un motor gráfico que solo aplica efectos de iluminación a un fondo estático, ignorando objetos dinámicos como los personajes en una escena, o un motor que trata los objetos solo como siluetas, sin conciencia de la geometría interna. Con el aumento de procesadores gráficos y computadoras, las nuevas técnicas permiten que los objetos auto-sombreados aparezcan en una escena en tiempo real, con algunas limitaciones y compensaciones.
Los volúmenes de sombra son una forma en que se puede implementar el sombreado automático en una escena 3D. Este método esencialmente crea objetos 3D que ocupan un volumen cerrado en una escena donde se proyecta una sombra, lo que permite al renderizador o sombreador realizar pruebas sobre si algún punto está dentro de un volumen sombreado para determinar cómo se ilumina. Otros métodos crean mapas de sombras, o sombras aproximadas desde las posiciones de los vértices, para crear sombras muy difusas que no necesariamente siguen la fidelidad de un borde.
Casi todos los métodos de auto-sombreado tienen que intercambiar velocidad o calidad para obtener un resultado aceptable. Los problemas de calidad pueden ocurrir mediante el uso de técnicas rápidas pero de baja resolución o difusas que pueden hacer que algunas sombras propias parezcan incorrectas o fuera de lugar. Los problemas de velocidad ocurren cuando los algoritmos utilizados requieren demasiada sobrecarga por fotograma o intentan calcular las proyecciones de sombras con demasiada precisión. Aunque no existe un algoritmo estándar único de autoproducción de sombras, algunas tarjetas gráficas incluyen aceleración nativa para diferentes métodos que pueden aumentar la velocidad de algunas técnicas.