HLSL для получения эффекта цилиндра - PullRequest
2 голосов
/ 07 октября 2010

Мне нужно написать приложение с Silverlight 4, и мне нужно показать изображения, похожие на завернутые в цилиндр.Мне нужен некоторый код HLSL, так как я не хочу делать это с эффектами Silverlight.
Я не хочу делать это с 3D библиотеками для Silverlight.Мне нужен только HLSL-код для изменения пикселей.
Мне нужно, чтобы мое изображение выглядело как this alt text
Спасибо.

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

Кажется, что это тот эффект, который вам нужен, вы можете изменить значение 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));
}
2 голосов
/ 07 октября 2010

Хотя вы могли бы делать это с HLSL, если вы действительно этого хотите, вы бы обычно делали это, создавая сетку в нужной форме, а затем применяя изображение ксетка как текстура.

...