【问题标题】:How can I use a variable to switch between two formula in a shader?如何使用变量在着色器中的两个公式之间切换?
【发布时间】:2026-01-08 18:05:01
【问题描述】:

我制作了一个着色器,我希望它在另一个方向上工作。由于坐标系是从 0 到 1,我需要反转函数的输出,但我无法绕开它。归结为这个“简单”的问题:

在一种情况下,我希望它是 y = 1 - x,而在另一种情况下,我希望它是 y = x。如何使用变量a 使得如果a == 0 然后y = 1 - x 或者如果a == 1 然后y = x?不使用分支。

【问题讨论】:

  • 不太确定您的问题是什么...但是建议 y = a*x + (1-a)*(1-x) 然后您可以更改 a=0 或 a=1 是否有帮助?
  • @Ruzihm 就是这样!非常感谢你!如果你写下你的答案,就把它标记为正确的:)

标签: unity3d math shader


【解决方案1】:

如果您有y = a * x + (1 - A) * (1 - x),那么您可以让A 在0 或1 之间切换以在y = 1 - xy = x 之间切换。

【讨论】: