opengl es - Cómo lanzar int para flotar en GLSL(WebGL)?
clamp glsl (1)
Parece que no tienes permitido lanzar en GLSL. Por lo tanto, "tienes que usar un constructor " .
Prueba esto:
// http://www.shaderific.com/glsl-types/
// "Implicit type conversions are not supported.
// Type conversions can be done using constructors..."
float i_float = float(i);
res = i_float / 15.0;
PD: si echas un vistazo a la documentación , dice que "... Cualquiera de los tipos enteros se puede convertir en flotantes, y los enteros y flotantes se pueden convertir en dobles". ... Me parece extraño que el compilador GLSL no acepte su código. (véase el comentario de Reto Koradi)
Mi código es (dentro del vacío principal):
float res;
for(int i=0; i<15; i++) {
res = float(i)/15.0;
//...
}
Desafortunadamente, recibo un error de sintaxis en float(i)/15.0
Si solo escribo i/15.0
, entonces el error es:
wrong operand types no operation ''/'' exists that takes a left-hand operand of type ''mediump int'' and a right operand of type ''const float'' (or there is no acceptable conversion)
Si solo pruebo i/15
, el resultado es un número entero, pero me gustaría obtener una flotación.
¿Cómo es posible lanzar int
para float
?