金属着色器语言随机数

问题描述 投票:0回答:1

在金属着色器语言中,使用金属标准库来实现函数 非常简单,例如,可以调用片段函数中的步骤:

float borderRed = step(150, position.x);

我试图找到的是任何类型的返回随机数的金属函数 (最好在 0.0 和 1.0 之间),与 fract Floor 等使用方式相同

有人知道吗?

shader metal
1个回答
0
投票

您可以使用内置的

fract
函数与
sin
dot
来生成 0 到 1 之间的随机数 像这样的东西:

float random(float2 position) {
    return fract(sin(dot(position, float2(20.6, 60.8))) * 20.7);
}
此处使用

sin
dot
创建一个简单的伪随机数生成器,该生成器随输入位置向量而变化。这些函数的组合给生成的值带来了随机性和复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.