Silverlight 获得圆柱效应的HLSL
我需要用Silverlight 4编写一个应用程序,并且需要显示像包裹在圆柱体上这样的图像。我需要一些HLSL代码,因为我不会在Silverlight的效果下这样做。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的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。不幸的是,我现在不能尝试这个,因为我在这台计算机上没有编译器,但我明天会尝试这个。谢谢你的回答。卓越解决方案。正是我需要的。非常感谢你。