【问题标题】:How to feed a transform.position into shader graph?如何将 transform.position 输入着色器图?
【发布时间】:2021-02-23 18:27:17
【问题描述】:

我正在尝试使用着色器图来掩盖精灵。

这是我目前所拥有的照片:

我的问题是,当我将蒙版纹理输入着色器时,它会以主纹理为中心,正如您在这张图片中看到的那样。

看到角色右侧略微透明的棋盘了吗?我只希望这个操作影响棋盘与字符截取的部分。

为此,我需要以某种方式置换和缩放(?)蒙版纹理,使其脱离主纹理的中心。

我必须添加哪些节点才能完成此操作,以及在哪里连接它们?谢谢。

【问题讨论】:

  • 我多次尝试帮助和阅读问题,但我仍然不明白问题出在哪里。你能解释这个问题或扩展你遇到的问题吗?也许用快速的素描画出当前和预期的图像?
  • 非常感谢您的回复,我认为您的回答几乎涵盖了我正在寻找的内容,谢谢!有一部分我不太确定如何进行,位置和缩放(因为 maskTex 可以具有与 mainTex 不同的尺寸。这是我希望实现的更好图像:imgur.com/ux9BhEc,似乎您向我展示的方法通过将纹理更改为钳位并使用平铺和偏移来更改位置和比例来解决它。如何获取要在平铺和偏移节点中输入的值?(我有蒙版的变换)
  • 为了设置平铺和偏移,您可以像为 SpriteText 和 MaskText 一样使用参数,然后从 C# 脚本访问它们。

标签: unity3d shader shader-graph


【解决方案1】:

正如我所称赞的,我不完全理解这个问题,但我会试一试!

您想移动纹理的 UV 使其仅应用于图像的一部分,并禁用环绕!

这可以通过使用 UV 节点来完成,同时使用重叠纹理上的相同通道,然后向其添加偏移量。

要禁用环绕,您需要在纹理本身上禁用它 将 Wrap Mode 更改为 Clamp 将偏移量设置为低于 1 的值。现在您只需计算偏移量值,因为 1 是图像的全宽。

编辑: 您应该使用 Tiling and Offset 节点而不是手动更改 UV 纹理,它可以通过更改平铺值轻松缩放。

祝你好运:)

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多