Как обернуть изображение вокруг цилиндра в Silverlight - PullRequest
5 голосов
/ 31 августа 2010

Я пытаюсь обернуть изображение вокруг цилиндра в серебряном свете.Я много смотрел в Google, но ничего не нашел.Как я знаю, это можно сделать с помощью пиксельного шейдера, но не знаю как.
Возможно ли это?
Спасибо.

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Это не полная намотка на цилиндр, но вы получите исходную идею / пример:

(код в GLSL, а не в HLSL, но я думаю, что его будет не сложно преобразовать)

uniform sampler2D tex;

void main()
{
 vec2 cen = vec2(0.5,gl_TexCoord[0].y)-gl_TexCoord[0].xy;
 cen = vec2(pow(cen.x,1.7),pow(cen.y,2.2));
 cen.y = 3.9*sin(1.8*gl_TexCoord[0].x-2.3);
 vec2 mcoord = 1.65*vec2(-0.22+gl_TexCoord[0].x,1.95+gl_TexCoord[0].y);
 gl_FragColor = texture2D(tex, mcoord+cen);
}

Из этого

alt text

вы получите нечто подобное alt text

Удачи

0 голосов
/ 02 сентября 2010

Вы можете попробовать Zam3d. Я использовал пробные версии ранее, и вы можете получить 3D-форму и попробовать установить фон для изображения. Посмотрите, поможет ли это.

...