Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 获得圆柱效应的HLSL_Silverlight_Silverlight 4.0_Directx_Hlsl_Pixel Shader - Fatal编程技术网

Silverlight 获得圆柱效应的HLSL

Silverlight 获得圆柱效应的HLSL,silverlight,silverlight-4.0,directx,hlsl,pixel-shader,Silverlight,Silverlight 4.0,Directx,Hlsl,Pixel Shader,我需要用Silverlight 4编写一个应用程序,并且需要显示像包裹在圆柱体上这样的图像。我需要一些HLSL代码,因为我不会在Silverlight的效果下这样做。 我不习惯在silverlight的3D libarries上这样做。我只需要HLSL代码来更改像素。 我需要让我的图像看起来像 谢谢。如果您真的愿意,可以使用HLSL来实现这一点,但通常您可以通过创建所需形状的网格,然后将图片作为纹理应用于网格来实现 这似乎是您想要的效果,您可能希望更改0.2值以增加或减少效果,或者在着色器中对此

我需要用Silverlight 4编写一个应用程序,并且需要显示像包裹在圆柱体上这样的图像。我需要一些HLSL代码,因为我不会在Silverlight的效果下这样做。
我不习惯在silverlight的3D libarries上这样做。我只需要HLSL代码来更改像素。
我需要让我的图像看起来像

谢谢。

如果您真的愿意,可以使用HLSL来实现这一点,但通常您可以通过创建所需形状的网格,然后将图片作为纹理应用于网格来实现

这似乎是您想要的效果,您可能希望更改0.2值以增加或减少效果,或者在着色器中对此进行调整,但这是一个简单的更改。我建议您不要将其用于为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));
}
2d输入:寄存器(s0);
浮动4主(浮动2 uv:TEXCOORD):颜色
{ 
浮动y=uv.y+(sin(uv.x*3.14)*lerp(-1,1,uv.y)*0.2);
如果(y<0 | | y>1)
返回浮动4(0,0,0,0);
其他的
返回tex2D(输入,float2(uv.x,y));
}

谢谢您的回答。当然它会起作用,但我不习惯使用网格,我知道,在Silverlight中使用效果是可能的。这个链接和我需要的差不多。嗨@Kris。不幸的是,我现在不能尝试这个,因为我在这台计算机上没有编译器,但我明天会尝试这个。谢谢你的回答。卓越解决方案。正是我需要的。非常感谢你。