4 colores flotantes a uno flotante en Java, y de nuevo en el sombreador openGL ES 2.0

Estoy tratando de enviar un color con cada vértice que va al sombreador, pero en un solo valor flotante. Creo que es extraño que no puedas enviar 4 bytes como atributos con cada vértice, pero siento que no es posible, voy a tratar de empaquetar RGBA en una sola variable flotante, así que este es mi código:

Código Jave (que empaqueta los valores en un flotante):

private float fourfColor2One(float r, float g, float b, float a)
{
    long temp = (byte) (r * 255);
    float res = temp << 24;

    temp = (byte) (g * 255);
    res += temp << 16;

    temp = (byte) (b * 255);
    res += temp << 8;

    temp = (byte) (a * 255);
    res += temp;

    return res;
}

Código de sombreado (que lo empaqueta): sombreador de vértices:

attribute vec4 vPosition;
attribute float fColor;
uniform vec2 vCamPos;
uniform float fZoom;
uniform mat4 m_projectionMat;
varying float v_Color;
void main() {
  vec4 position = vec4(vPosition.x - vCamPos.x - 16., vPosition.y - vCamPos.y - ((32. / "+ GraphicsRenderer.mScnR +") / 2.), -1., 1.);
  position = position * m_projectionMat;
  gl_Position = vec4(position.xy * fZoom, -1, 1);
  v_Color = fColor;
}

sombreador de fragmentos:

precision mediump float;
varying float v_Color;
void main() {
   uint temp = uint(v_Color);
   float r = temp & 0xf000;
   float g = temp & 0x0f00;
   float b = temp & 0x00f0;
   float a = temp & 0x000f;
    gl_FragColor = vec4(r, g, b, a);
}

Entonces tengo tres preguntas:

  1. ¿Es posible este concepto?

  2. Las conversiones no son correctas, ¿verdad? Supongo que cuando convierto desde y hacia flotante, la conversión no retiene el orden del bit, sino los valores que representa en ese tipo de datos, ¿verdad?

  3. En este momento, el sombreador me devuelve -1 cuando ejecuto: glGetAttribLocation (mShaderHandle, "fColor"); Pero este funciona una línea antes: glGetAttribLocation (mShaderHandle, "vPosition");

Entonces, ¿alguna idea?

¡Gracias por adelantado!

Respuesta 1

Tengo un archivo docx con muchas líneas vacías para bloques de separación visual. Pero después de convertir mi docx a HTML de pdf, faltan las líneas en blanco. ¿Hay alguna posibilidad de configurar este comportamiento? YO ...

Estoy tratando de obtener todos los hijos de una entidad matriz determinada de manera eficiente. La única forma de hacerlo ahora es usar una consulta en objectify, que no es eficiente porque omite el caché. Objectify-4 ...

Quiero enumerar algunos enlaces de aplicaciones de Play Store en mi aplicación. y quiero que ese usuario haga clic en el enlace y vaya a Play Store y descargue la aplicación. Ahora quiero hacer un seguimiento de eso si el usuario hizo clic en el enlace y ...

Tengo alguna aplicación, lo que usó Felix OSGi Framework. ¿Cómo puedo verificar el paquete después de la actualización? Es decir, tengo muchos paquetes y todos los paquetes están cargados. Puedo actualizar algunos paquetes en paquetes dir. Cómo puedo ...