O que é iluminação por pixel?
"Iluminação por pixel" é um termo usado na computação gráfica para indicar que uma cena tridimensional (3D) determinará a cor dos objetos pixel por pixel em vez de vértice por vértice. O uso da iluminação por pixel em vez da iluminação por vértice geralmente cria uma imagem ou quadro final que possui uma aparência mais realista e muitas vezes mais nítida e definida, especialmente quando o mapeamento de relevo está sendo empregado. Em geral, a iluminação por pixel é implementada através do uso de pixel shaders que podem usar várias maneiras de calcular como a luz em uma cena está atingindo uma área específica da cena e qual a cor da superfície resultante. Em aplicativos 3D nos quais a velocidade da renderização é importante, como uma animação dinâmica, o sombreamento por pixel pode não ser prático, pois pode exigir várias passagens por uma cena ou simplesmente levar muito tempo e tornar impossível uma taxa de quadros aceitável.
Uma das formas mais comuns de aplicar luz a uma cena 3D é usar um método conhecido como iluminação por vértice. Essa técnica pega os vértices de um objeto - os pontos onde as linhas de um objeto se encontram - e determina como deve ser a superfície de um objeto nesse único local. Quando todos os vértices de uma cena têm informações de iluminação anexadas, o renderizador utilizará interpolação ou outros tipos de algoritmos para estimar a aparência da superfície do objeto entre os vértices. Isso geralmente resulta em áreas que dependem de uma alta densidade de vértices em um objeto para obter efeitos de iluminação nítidos, como um destaque de phong, enquanto uma forma como um cubo com apenas seis vértices terá iluminação ampla e graduada nas superfícies, independentemente da textura ou posição de iluminação.
Por outro lado, um programa pode implementar iluminação por pixel. Isso envolve passar por cada um dos pixels em uma cena rasterizada e determinar a cor e a iluminação individuais de cada pixel, independentemente da proximidade de um vértice. Os resultados são geralmente iluminação nítida e precisa, especialmente com efeitos especulares. A compensação por uma melhor qualidade de imagem é um tempo de renderização mais longo, pois cada pixel deve ser processado por um sombreador de pixels, embora isso nem sempre seja uma preocupação com a modelagem 3D e programas de gráficos e renderização que não precisam manter uma taxa de quadros específica.
Os efeitos dramáticos da iluminação por pixel, quando aplicados corretamente, podem realmente melhorar a aparência de um objeto com o intrincado mapeamento de saliências aplicado e os mínimos detalhes podem ser perdidos com a iluminação por vértice. As texturas processuais também podem se beneficiar de uma abordagem de iluminação por pixel. Além disso, efeitos especiais, como volumes de sombra, requerem o uso de iluminação por pixel, assim como reflexões de iluminação complexas, sistemas de partículas ou até halos em alguns casos.