2010-10-07 4 views
2

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

ответ

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)); 
} 
+0

Привет @ Kris. К сожалению, я не могу попробовать это прямо сейчас, потому что у меня нет компилятора на этом компьютере, но я попробую это завтра. Спасибо за ответ. –

+0

Исключительное решение. Именно то, что мне нужно. Большое спасибо. –

2

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

+0

Благодарим за ответ. Конечно, это сработает, но я не хочу использовать сетку, я знаю, что это возможно, используя эффекты в Silverlight. –

+0

http://stackoverflow.com/questions/3607748/how-wrap-image-around-cylinder-in-silverlight Эта ссылка похожа на то, что мне нужно. –

Смежные вопросы