Dissertação
Shadow Mapping com múltiplos valores de profundidade
Multiple depth shadow maps
Autor
Pagot, Christian Azambuja
Resumen
Um dos algoritmos para cálculo de sombras mais eficientes existentes atualmente é o Shadow Mapping de Williams. Ele é simples, robusto e facilmente mapeável para o hardware gráfico existente. Este algoritmo conta com duas etapas. A primeira é responsável pela geração de um depth buffer (Shadow Map) a partir do ponto de vista da luz. Na segunda etapa a imagem final da cena é gerada a partir do ponto de vista da câmera. De maneira a determinar se os pixels da imagem final estão iluminados ou em sombra, cada pixel é transformado para o espaço da luz e testado contra o Shadow Map. Shadow Maps tradicionais armazenam apenas um valor de profundidade por célula, fazendo com que os testes de sombra retornem valores binários. Isso pode ocasionar o surgimento de aliasing nas bordas das sombras. Este trabalho apresenta uma nova abordagem capaz de produzir melhores resultados de suavização que, em conjunto com o algoritmo de PCF (Percentage Closer Filtering), reduz o serrilhado das bordas das sombras através do uso de filtros de menor tamanho. O novo algoritmo estende os conceitos de Shadow Map e de teste de sombra de forma a suportarem múltiplos valores de profundidade. Esta nova abordagem apresenta potencial para implementação em hardware, e também pode ser implementada explorando a programabilidade das recentes placas gráficas. William’s Shadow Mapping is one of the most efficient hard shadow algorithms. It is simple, robust and can be easily mapped to the actual grapics hardware. It is a two-pass technique. In the first pass a depth buffer (Shadow Map) is created from the light’s view point. In the second pass the final image is rendered from the camera’s view point. In order to decide whether each pixel in the camera’s view is lit or in shadow with respect to the light source, the pixel is transformed into the light space, and tested against the Shadow Map. Shadow maps store a single depth value per cell, leading to a binary outcome by the shadow test, and are prone to produce aliased shadow borders. This work presents a new approach that produces better estimates of shadow percentages and, in combination with percentage closer filtering (PCF), reduces aliasing artifacts using smaller kernel sizes. The new algorithm extends the notions of shadow map and shadow test to support the representation of multiple depth values per shadow map cell, as well as multi-valued shadow test. This new approach has the potential for hardware implementation, but can also be implemented exploiting the programmable capabilities of recent graphics cards.