Could an OSL-shader measure min/max boundaries from an input value?
My thread is inspired by this thread …
Normalize any value to 0-1
My little OSL-shader tries to use (OSL) getmessage and setmessage to measure min/max boundaries. But it does not work, sadly. I dont see why.
Liddle shader appended.
meassure_range.osl (721 Bytes)
Code here
shader meassure_range(
float value = 1.0,
output float Min = 10000.0,
output float Max = -10000.0 )
{
float current_min=Min;
float current_max=Max;
if (getmessage("min", current_min) == 0) {
setmessage("min", 10000.0);
}
else {
if (value < current_min) {
setmessage("min", value);
Min = value;
}
else {
Min = current_min;
}
}
if (getmessage("max", current_max) == 0) {
setmessage("max", -10000.0);
}
else {
if ( value > current_max ) {
setmessage("max", value);
Max = value;
}
else {
Max = current_max;
}
}
}