2

我需要使用 Silverlight 4 编写一个应用程序,并且需要显示像包裹在圆柱体上的图像。我需要一些 HLSL 代码,因为我不会使用 Silverlight 的效果来做到这一点。
我不会对 Silverlight 的 3D 库这样做。我只需要 HLSL 代码来更改像素。
我需要让我的图像看起来像这样 替代文字
谢谢。

4

2 回答 2

2

如果您真的愿意,您可以使用 HLSL 执行此操作,但通常通过创建所需形状的网格,然后将图片作为纹理应用到网格来实现。

于 2010-10-07T16:08:53.470 回答
2

这似乎是您想要的效果,您可能希望更改 0.2 值以增加或减少效果,或者在您的着色器中调整它,但这是一个简单的更改。如果您不使用Shazzam为 WPF 或 Silverlight 编写着色器,我会推荐它。

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));
}
于 2010-10-07T16:25:59.937 回答