HLSL用于获得汽缸效应

时间:2010-10-07 15:04:09

标签: silverlight silverlight-4.0 directx hlsl pixel-shader

我需要用Silverlight 4编写一个应用程序,并且需要显示像圆柱体一样的图像。我需要一些HLSL代码,因为我不会使用Silverlight的效果 对于Silverlight的3D libarries,我不会这样做。我只需要HLSL代码来改变像素 我的图片需要看起来像this alt text
感谢。

2 个答案:

答案 0 :(得分:2)

虽然你可以使用HLSL做这个,如果你真的想要,你通常通过创建你想要的形状的网格来做,然后应用图片作为纹理的网格。

答案 1 :(得分:2)

这似乎是您想要的效果,您可能希望更改0.2值以增加或减少效果或在着色器中进行此调整,但这是一个简单的更改。如果您没有使用它来为WPF或Silverlight编写着色器,我建议Shazzam

sampler2D input : register(s0);

float4 main(float2 uv : TEXCOORD) : COLOR 
{ 
    float y = uv.y+(sin(uv.x*3.14) * lerp(-1,1,uv.y) * 0.2);
    if(y < 0 || y > 1)
        return float4(0,0,0,0);
    else
        return tex2D(input,float2(uv.x,y));
}