我正在尝试在Silverlight中将图像包裹在圆柱体周围。我在Google上搜索了很多,但没有找到任何有用的信息。据我所知,这可以通过像素着色器来实现,但我不知道具体如何操作。
这个方法可行吗?
谢谢。
我正在尝试在Silverlight中将图像包裹在圆柱体周围。我在Google上搜索了很多,但没有找到任何有用的信息。据我所知,这可以通过像素着色器来实现,但我不知道具体如何操作。
这个方法可行吗?
谢谢。
这不是完全的圆柱体包裹,但你会得到一个起始的想法/示例:
(代码使用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);
}
从这里开始
你会得到类似这样的东西
祝你好运
你可以尝试使用Zam3d。我之前使用过试用版本,你可以获取3D形状并尝试将背景设置为图像。看看这是否有帮助。