![Jitter - 图1](https://github.com/redshift3d/RedshiftOSLShaders/blob/main/Jitter.jpg?raw=true#crop=0&crop=0&crop=1&crop=1&from=url&id=P6HqM&margin=%5Bobject%20Object%5D&originHeight=1223&originWidth=2210&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
// Index based Randomizer
// Original idea by Zap Andersson, modified by Saul Espinosa for Redshift 3d
// This file is licensed under Apache 2.0 license
shader rsJitter
[[ string help = "Randomizes Color, Float, Vector inputs using UserData",
string label = "Jitter" ]]
(
int Idx = 0,
/// Color Values
int ColorSeed = 1
[[
int min = 0,
int max = 100
]],
color ColorMin = 0.0,
color ColorMax = 1.0,
/// Float Values
int FloatSeed = 1
[[
int min = 0,
int max = 100
]],
float FloatMin = 0.0
[[
float min = 0,
float max = 1
]],
float FloatMax = 1.0
[[
float min = 0,
float max = 1
]],
/// Vector Values
int VectorSeed = 1
[[
int min = 0,
int max = 100
]],
vector VectorMin = 0.0
[[
vector min = 0,
vector max = 100
]],
vector VectorMax = 1.0
[[
vector min = 0,
vector max = 100
]],
/// Define Outputs
output color ColorOut = 0.0,
output float FloatOut = 0.0,
output vector VectorOut = 0.0,
)
{
// Output Values
float ratio1 = noise("cell", vector(abs(Idx), abs(ColorSeed), 10));
float ratio2 = noise("cell", vector(abs(Idx), abs(FloatSeed), 10));
float ratio3 = noise("cell", vector(abs(Idx), abs(VectorSeed), 10));
ColorOut = mix(ColorMin, ColorMax, ratio1);
FloatOut = mix(FloatMin, FloatMax, ratio2);
VectorOut = mix(VectorMin, VectorMax, ratio3);
}