Estoy usando este código en el script glsl
pero cuando uso la condición if else no funciona, cada vez que ejecuto el script, elijo el primer valor de la variable de color que se declara antes de la condición if else.
float color = 0.3 * clr.r + 0.59 * clr.g + 0.11 * clr.b; // script always choose this value instead of if else values float maxrgb = max(max(clr.r, clr.g), clr.b); if (maxrgb < 128.0) { float color = 0.21 * clr.r + 0.71 * clr.g + 0.80 * clr.b; } else if (maxrgb > 128.0) { float color = 0.30 * clr.r + 0.60 * clr.g + 0.82 * clr.b; } // the values in the condition are not working.
estoy haciendo algo mal?
Ha declarado la variable de color
dos veces. Ha declarado una nueva variable con el mismo nombre en el ámbito de la instrucción if
. Declare la variable antes de la declaración if, pero asigne nuevos valores a la variable existente en la declaración:
float color = 0.3 * clr.r + 0.59 * clr.g + 0.11 * clr.b; float maxrgb = max(max(clr.r, clr.g), clr.b); if (maxrgb < 128.0) { color = 0.21 * clr.r + 0.71 * clr.g + 0.80 * clr.b; } else if (maxrgb > 128.0) { color = 0.30 * clr.r + 0.60 * clr.g + 0.82 * clr.b; }