Compartilhar via


Desfoque de movimento (Direct3D 9)

Você pode aprimorar a velocidade percebida de um objeto em uma cena 3D desfocando o objeto e deixando um rastro desfocado de imagens de objeto atrás do objeto. Os aplicativos Direct3D fazem isso renderizando o objeto várias vezes por quadro.

Lembre-se de que os aplicativos Direct3D normalmente renderizam cenas em um buffer fora da tela. O conteúdo do buffer é exibido na tela quando o aplicativo chama o método IDirect3DDevice9::P resent . Seu aplicativo Direct3D pode renderizar o objeto várias vezes em uma cena antes de exibir o quadro na tela.

Programaticamente, seu aplicativo faz várias chamadas para um método DrawPrimitive, passando repetidamente o mesmo objeto 3D. Antes de cada chamada, a posição do objeto é atualizada ligeiramente, produzindo uma série de imagens de objeto desfocadas na superfície de renderização de destino. Se o objeto tiver uma ou mais texturas, seu aplicativo poderá aprimorar o efeito de desfoque de movimento renderizando a primeira imagem do objeto com todas as suas texturas quase transparentes. Sempre que o objeto é renderizado, a transparência da textura do objeto diminui. Quando o aplicativo renderiza o objeto em sua posição final, ele deve renderizar as texturas do objeto sem transparência. A exceção será se você estiver adicionando desfoque de movimento a outro efeito que exija transparência de textura. De qualquer forma, a imagem inicial do objeto no quadro deve ser a mais transparente. A imagem final deve ser a menos transparente.

Depois que o aplicativo renderiza a série de imagens de objeto na superfície de renderização de destino e renderiza o restante da cena, ele deve chamar o método IDirect3DDevice9::P resent para exibir o quadro na tela.

Se o aplicativo estiver simulando o efeito do usuário se movendo por uma cena em alta velocidade, ele poderá adicionar o desfoque de movimento a toda a cena. Nesse caso, seu aplicativo renderiza toda a cena várias vezes por quadro. Sempre que a cena for renderizada, seu aplicativo deverá mover um pouco o ponto de vista. Se a cena for altamente complexa, o usuário poderá ver uma degradação de desempenho visível à medida que a aceleração aumenta devido ao número crescente de renderizações de cena por quadro.

Suavização