在金属着色器语言中,使用金属标准库来实现函数 非常简单,例如,可以调用片段函数中的步骤:
float borderRed = step(150, position.x);
我试图找到的是任何类型的返回随机数的金属函数 (最好在 0.0 和 1.0 之间),与 fract Floor 等使用方式相同
有人知道吗?
您可以使用内置的
fract
函数与 sin
和 dot
来生成 0 到 1 之间的随机数
像这样的东西:
float random(float2 position) {
return fract(sin(dot(position, float2(20.6, 60.8))) * 20.7);
}
此处使用 sin
和 dot
创建一个简单的伪随机数生成器,该生成器随输入位置向量而变化。这些函数的组合给生成的值带来了随机性和复杂性。