O que é auto-sombreamento?
"Auto-sombreamento" é um termo que descreve a circunstância em que uma parte de um objeto lança uma sombra sobre si mesmo. Exemplos de auto-sombreamento incluem a sombra projetada por um nariz humano no rosto ou lábio superior quando a fonte de luz vem de cima ou a sombra projetada pelo assento de uma cadeira nas pernas da cadeira. Quando o termo é usado em computação gráfica - especificamente na programação de computação gráfica - é uma referência a sombras projetadas por objetos tridimensionais (3D) de uma cena em si mesmas ou sombras projetadas por objetos dinâmicos em si mesmas e objetos ao seu redor . A natureza da programação de gráficos de computador 3D em tempo real faz com que muitos aplicativos usem técnicas que frequentemente removem a possibilidade de renderizar sombras próprias em favor de outras otimizações, embora, à medida que a velocidade e os recursos dos computadores aumentem, os métodos de sombreamento em tempo real tornaram-se mais acessíveis. Existem vários métodos para renderizar objetos de sombreamento em tempo real, mas as limitações de hardware geralmente produzem resultados que apresentam algumas desvantagens, como sombras imprecisas, sombras com arestas artificiais ou cenas que são renderizadas muito lentamente em placas gráficas que não são incrivelmente rápidas .
Uma distinção a ser feita quando se fala em auto-sombreamento é a diferença entre objetos estáticos e dinâmicos nos gráficos em tempo real. Objetos estáticos são objetos 3D em uma cena que não se move e não tem nenhuma parte de sua geometria alterada ao longo da renderização. Um objeto dinâmico, por outro lado, é um objeto que não é diretamente anexado à cena de nenhuma maneira e pode ser diferente de um quadro para o outro. Na maioria das vezes, a maioria dos objetos estáticos e cenas não em tempo real fazem auto-sombra, seja por causa do mecanismo de renderização ou por causa de outros truques gráficos que podem ser usados.
Várias otimizações usadas para renderizar gráficos 3D em tempo real dificultam a implementação da auto-sombra dinâmica. Alguns exemplos incluem um mecanismo gráfico que aplica apenas efeitos de iluminação a um plano de fundo estático, ignorando objetos dinâmicos, como caracteres em uma cena, ou um mecanismo que trata objetos apenas como silhuetas, sem conhecimento da geometria interna. Com o aumento de processadores gráficos e computadores, novas técnicas permitem que objetos com sombra própria apareçam em uma cena em tempo real, com algumas limitações e vantagens.
Os volumes de sombra são uma das maneiras pelas quais a auto-sombra pode ser implementada em uma cena 3D. Esse método cria essencialmente objetos 3D que ocupam um volume fechado em uma cena em que uma sombra é projetada, permitindo que o renderizador ou sombreador realize testes sobre se algum ponto está dentro de um volume sombreado para determinar como está iluminado. Outros métodos criam mapas de sombras, ou sombras aproximadas das posições dos vértices, para criar sombras muito difusas que não seguem necessariamente a fidelidade de uma aresta.
Quase todos os métodos de auto-sombreamento precisam trocar velocidade ou qualidade para obter um resultado aceitável. Problemas de qualidade podem ocorrer através do uso de técnicas rápidas, mas de baixa resolução ou difusas, que podem fazer com que algumas sombras próprias pareçam erradas ou deslocadas. Os problemas de velocidade ocorrem quando os algoritmos usados exigem muita sobrecarga por quadro ou tentam calcular projeções de sombra com muita precisão. Embora não exista um algoritmo padrão de produção automática de sombras, algumas placas de vídeo incluem aceleração nativa para métodos diferentes que podem aumentar a velocidade de algumas técnicas.