我需要用Silverlight 4编写一个应用程序,并且需要显示像圆柱体一样的图像。我需要一些HLSL代码,因为我不会使用Silverlight的效果
对于Silverlight的3D libarries,我不会这样做。我只需要HLSL代码来改变像素
我的图片需要看起来像this
感谢。
答案 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));
}