我已经实现了这个效果的大部分功能,使用场景位置着色器在画布上方。 我可以控制效果的位置、半径和-更重要的是-扭曲方向。
问题是它似乎影响了底层图像的分辨率。 我想尝试一个更直接的方法,应用着色器到MainTexture作为提供的图像,但节点影响UV的方式不同于ScenePosition。
它是一个很难在一个图像中包含的想法,但大致是:UV -> 减去 -> 长度 -> Smoothstep -> 乘以(UV) -> 乘以(Vector2) + 场景位置 -> TileOffset
如果我使用相同的乘以Vector2组合,它会影响每个UV而不是在半径内建立的Smoothstep节点。 在ScenePos版本中,如果我设置这个"强度向量"为(0,0)它会隐藏扭曲,但如果我想在直接UV版本的图表中应用相同的计算,它会禁用整个图像,因为所有的UV都设置为零。
这个版本缺少了Multiply(Vector2)和TileOffset节点,因为我无法让它们在场景位置版本中工作。
我想知道如何通过将节点输入到Texture2D Sample的UV槽中来实现相同的效果。 我承认我对ScenePosition版本中的每个节点是如何工作的没有最清晰的理解。 这个版本是从在线的其他着色器图表中复制和一些试验误差中诞生的。
另外,ScenePosition版本似乎会模糊图像或降低分辨率。 有没有办法可以让它更清晰? 这是一个我满意的解决方案。 感谢您的时间。
评论 (0)