问题描述
我有一个CG着色器,它可以在Unity的SpriteRenderer中滚动一个精灵,如下所示:
问题在于精灵的边缘没有“弯曲”,因此看起来保龄球没有滚动。我想添加鱼眼效果。我看到这里有一个简单的鱼眼效果着色器:
http://www.michaelbibby.co.uk/2017/10/05/simple-fish-eye-post-process-shader/
我试图通过使用frag
着色器函数并将其放入我的着色器来增加滚动效果。但是当我这样做时,它告诉我在碎片着色器中称为v2f
的{{1}}没有i
属性。我不明白这个问题,因为尽管在鱼眼效果中,但在我的着色器中似乎没有对类型.uv
的结构的定义。
这是我的起点,这是视频中使用的滚动着色器。谁能建议我如何添加鱼眼效果?
v2f
解决方法
v2f
的定义在UnitySprites.cginc中:
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
在这种情况下,uv称为texcoord
。您可以使用i.texcoord代替i.uv。除了实现_Distortion
属性之外,您似乎不需要其他任何东西来实现效果。