Partilhar via


Dissolve, desvanece e passa o dedo (Direct3D 9)

Cada vez mais, os aplicativos empregam efeitos especiais que são comumente usados em filmes e vídeos, como dissolve, desliza e desvanece.

Em uma dissolução, uma imagem é gradualmente substituída por outra em uma sequência suave de quadros. Embora o Direct3D forneça métodos de uso de mistura de textura múltipla para obter o mesmo efeito, os aplicativos que usam o buffer de estêncil para dissoluções podem usar recursos de mistura de textura para outros efeitos enquanto fazem uma dissolução.

Quando seu aplicativo executa uma dissolução, ele deve renderizar duas imagens diferentes. Ele usa o buffer de estêncil para controlar quais pixels de cada imagem são desenhados para a superfície de destino de renderização. Você pode definir uma série de máscaras de estêncil e copiá-las para o buffer de estêncil em quadros sucessivos. Como alternativa, você pode definir uma máscara de estêncil base para o primeiro quadro e alterá-la incrementalmente.

No início da dissolução, seu aplicativo define a função de estêncil e a máscara de estêncil para que a maioria dos pixels da imagem inicial passe no teste de estêncil. A maioria dos pixels da imagem final deve falhar no teste de estêncil. Em quadros sucessivos, a máscara de estêncil é atualizada para que cada vez menos pixels na imagem inicial passem no teste. À medida que os quadros progridem, cada vez menos pixels na imagem final falham no teste. Dessa maneira, seu aplicativo pode executar uma dissolução usando qualquer padrão de dissolução arbitrária.

Fading in ou fading out é um caso especial de dissolução. Ao desaparecer, o buffer de estêncil é usado para dissolver de uma imagem em preto ou branco para uma renderização de uma cena 3D. Fading out é o oposto, seu aplicativo começa com uma renderização de uma cena 3D e se dissolve em preto ou branco. O fade pode ser feito usando qualquer padrão arbitrário que você queira empregar.

Os aplicativos Direct3D usam uma técnica semelhante para passar o dedo. Por exemplo, quando um aplicativo executa um deslizamento da esquerda para a direita, a imagem final parece deslizar gradualmente sobre a imagem inicial da esquerda para a direita. Como em uma dissolução, você deve definir uma série de máscaras de estêncil que são carregadas no buffer de estêncil em quadros sucessivos ou modificar sucessivamente a máscara de estêncil inicial. As máscaras de estêncil são usadas para desativar a gravação de pixels da imagem inicial e para habilitar a gravação de pixels da imagem final.

Um gesto de percorrer é um pouco mais complexo do que uma dissolução, na medida em que a aplicação tem de ler píxeis da imagem final na ordem inversa do gesto de percorrer. Ou seja, se o gesto de percorrer estiver a mover-se da esquerda para a direita, a aplicação tem de ler píxeis da imagem final da direita para a esquerda.

Técnicas de buffer de estêncil