【问题标题】:Unity3d shader e -f convert to glslunity3d shader e -f 转换为 glsl
【发布时间】:2021-03-06 17:49:37
【问题描述】:

我正在尝试将Unity3D 中的着色器转换为普通的 glsl 着色器。

代码是:

Out = lerp(To, In, saturate((Distance - Range) / max(Fuzziness, e-f)));

我知道lerp 需要转换为mixsaturate 需要转换为clamp(xxx, 0.0, 1.0)

但是我不知道如何转换上面代码中的e - f部分。

任何建议将不胜感激,谢谢:)

【问题讨论】:

标签: unity3d glsl shader hlsl cg


【解决方案1】:

您可以看到图表生成的代码:右键单击任何节点 -> 显示生成的代码。对于这个节点,生成的 glsl 函数是:

void Unity_ReplaceColor_float(float3 In, float3 From, float3 To, float Range, out float3 Out, float Fuzziness)
{
    float Distance = distance(From, In);
    Out = lerp(To, In, saturate((Distance - Range) / max(Fuzziness, 1e-5f)));
}

【讨论】:

  • 这是 HLSL,不是 glsl,所以这并不能真正回答有关如何移植到 glsl 的问题。
猜你喜欢
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 1970-01-01
  • 2016-06-25
相关资源
最近更新 更多