Desenvolvimento - Silverlight
Silverlight 3 – Efeitos com Pixel Shader, parte 01
Um dos recursos mais interessantes do Silverlight 3 são os efeitos utilizando Pixel Shader, por padrão o Silverlight tem dois efeitos definidos, Blur e DropShadow mas podemos facilmente criar novos efeitos e utilizá-los nos nossos projetos.
por Márcio Fábio AlthmannUm dos recursos mais interessantes do Silverlight 3 são os efeitos utilizando Pixel Shader, por padrão o Silverlight tem dois efeitos definidos, Blur e DropShadow mas podemos facilmente criar novos efeitos e utilizá-los nos nossos projetos.
Para começar a trabalhar com a criação dos efeitos com pixel shader, o primeiro passo é instalar o SDK do DirectX da Microsoft,efeitos são programados utilizando a linguagem HLSL (High Level Shading Language).
Podemos utilizar os efeitos tanto nas imagens, vídeos ou controles do nosso projeto, veja abaixo o código fonte de um efeito chamado Invert Color, também a imagem sem e com o efeito aplicado.
1: sampler2D implicitInputSampler : register(S0);
2:
3: float4 main(float2 uv : TEXCOORD) : COLOR
4: {
5: float4 color = tex2D( implicitInputSampler, uv );
6: float4 invertedColor = float4(color.a - color.rgb, color.a);
7: return invertedColor;
8: }
Imagem sem o efeito
Imagem com o efeito InvertColor aplicado
Crie um arquivo chamado InventColor.fx com o código acima nele, pode ser criado no Bloco de Notas mesmo. Agora para compilar o InvertColor.fx para o arquivo que realmente vamos utilizar no projeto que vamos chamar de InvertColor.ps, vamos utilizar o utilitário, fxc.exe do DirectX. O utilitário ficar no diretório C:\Arquivos de Programas\Microsoft DirectX SDK (August 2009)\Utilities\bin\x86 no Command Prompt execute a seguinte linha de comando.
fxc /T ps_2_0 /Fo arquivo.ps arquivo.fx
Caso a compilação ocorra sem problema uma mensagem de sucesso será mostrada, veja imagem abaixo.
Esse é o jeito mais trabalhoso de criar um pixel shader, criamos o arquivo .fx, compilamos para .ps com o utilitário fxc, mas existem vários aplicativos que ajudam visualmente todo esse processo, inclusive com um preview do efeito em tempo real, utilizo um muito bom chamado Shazzam, só precisamos configurar nele o diretório do DirectX e ele já vem com vários efeitos de exemplo, veja abaixo o programa funcionando.
Essa foi a primeira parte do artigo, na segunda parte vamos ver como utilizar o efeito no Silverlight e aplica-lo nos nossos projetos.
- Acessando imagens externa (não compiladas) dentro do mesmo domínioSilverlight
- Trabalhando com enumeradosSilverlight
- Comunicação Local no SilverlightSilverlight
- Gerando Gráficos com Silverlight, WCF e LINQSilverlight
- Usando o Scroll do mouse para dar Zoom em Imagens com Silverlight 4Silverlight