代码之家  ›  专栏  ›  技术社区  ›  Samvel Siradeghyan

获得圆柱效应的HLSL

  •  2
  • Samvel Siradeghyan  · 技术社区  · 14 年前

    我需要用Silverlight4编写一个应用程序,并且需要显示像包装在柱面上的图像。我需要一些HLSL代码,因为我不会用Silverlight的效果来实现这一点。
    我不会用Silverlight的3D Libarries来实现这一点。我只需要HLSL代码来更改像素。
    我需要我的图像看起来像 this
    谢谢。显示像包裹在圆柱体上的图像。我需要一些HLSL代码,因为我不会用Silverlight的效果来实现这一点。
    我不会用Silverlight的3D Libarries来实现这一点。我只需要改变像素的HLSL代码。
    我需要我的形象看起来像
    this alt text
    谢谢。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Kris    14 年前

    这似乎是您想要的效果,您可能希望更改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
  •  2
  •   Jerry Coffin    14 年前

    而你 能够 如果你真的想和HLSL一起做,你会 正常地 通过在所需形状中创建一个网格,然后将图片作为纹理应用到网格来完成此操作。