Compartilhar via


Dissolves, fades e swipes (Direct3D 9)

Cada vez mais, os aplicativos empregam efeitos especiais que são comumente usados em filmes e vídeos, como dissolvidos, deslizes e esmaecimentos.

Em uma dissolveçã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 combinação de textura múltipla para obter o mesmo efeito, os aplicativos que usam o buffer de estêncil para dissolveções podem usar recursos de mistura de textura para outros efeitos enquanto fazem uma dissolvência.

Quando o aplicativo executa uma dissolveçã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 dissolveçã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 avançam, cada vez menos pixels na imagem final falham no teste. Dessa maneira, seu aplicativo pode executar uma dissolveção usando qualquer padrão de dissolveção arbitrária.

Desaparecer ou desaparecer é 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. O desbotamento é 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ê deseja empregar.

Os aplicativos Direct3D usam uma técnica semelhante para passar o dedo. Por exemplo, quando um aplicativo executa um dedo da esquerda para a direita, a imagem final aparece para deslizar gradualmente sobre a imagem inicial da esquerda para a direita. Como em uma dissolveçã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 desabilitar a gravação de pixels da imagem inicial e habilitar a gravação de pixels da imagem final.

Um dedo é um pouco mais complexo do que uma dissolveção, na qual seu aplicativo deve ler pixels da imagem final na ordem inversa do dedo. Ou seja, se o dedo estiver se movendo da esquerda para a direita, seu aplicativo deverá ler pixels da imagem final da direita para a esquerda.

Técnicas de buffer de estêncil