Int en intbuffer para Android OpenGL ES 1.0?
Hace poco leí un artículo sobre Badlogicgames.com acerca de acelerar el proceso de agregar información a los buffers de vértice (o cualquier otro intbuffer) y aumentó la velocidad de mi proyecto, pero no entendía bien la
"Al notar IntBuffer.put (int [] src) no se vio afectado por el problema"
Declaración …. ¿Es posible alimentar un int [] matriz en un IntBuffer para obtener un aumento de velocidad si no tiene necesidad de números de coma flotante? Cada vez que intento poner un int [] en el buffer; Nada se representa
Aquí hay un ejemplo de mi uso actual:
dMesh[i].putVertexBuffer(coords); //function being called public void putVertexBuffer(int[] input) //actual function { ByteBuffer tC = ByteBuffer.allocateDirect(input.length *4); tC.order(ByteOrder.nativeOrder()); _vertexBuffer = tC.asIntBuffer(); _vertexBuffer.put(input); _vertexBuffer.position(0); }
Ahora si el array int "coords" está lleno de variables que eran números de coma flotante convertidos en enteros usando "Float.floatToIntBits (float value)"; Esto está bien … pero una matriz de números enteros estándar no muestra nada … Pero si sólo tengo una matriz float [] y cambiar "asIntBuffer ()" a "asFloatBuffer ()", esto funciona? Estoy confundido. ¿Se requiere una conversión? Gracias de antemano a cualquier persona que da cualquier idea.
Edición rápida: casi me olvidé … este es el artículo al que he hecho referencia: http://www.badlogicgames.com/wiki/index.php/Direct_Bulk_FloatBuffer.put_is_slow
- Manera recomendada de cargar (no interactivo) animaciones (hechas usando Maya) en OpenGL ES en iOS y Android
- Vista previa de la cámara de corte para TextureView
- Cómo medir y mejorar el uso de la batería en el iPhone / iPad juego (Android también)
- Compartir recursos entre el contexto de OpenGL en Android
- GLES10.glGetIntegerv devuelve 0 en el dispositivo Samsung
- Transformaciones de matrices Android de OpenGL ES
- ¿Es posible realizar llamadas de OpenGL ES desde su código C ++ y Java?
- Matriz int a la textura opengl en android
No está utilizando una matriz int con un parámetro de GL_FLOAT
para el tipo en la llamada glVertexPointer
, ¿verdad? En este caso no me preguntaría sobre el comportamiento. Cuando utilice ints como puntos de vértice, asegúrese de utilizar un tipo de GL_INT
como parámetro de tipo en glVertexPointer
(o cualquier función de matriz de atributo).
Cuando intentó ints, ¿también cambiar el código que utiliza la matriz para consumir ints en lugar de flotadores? Tenía todo tipo de problemas aquí.
Es posible que mi pregunta / respuesta anterior ayuda – está en esta área:
Pasando java.nio.IntBuffer a la función C en un juego para Android
- Widget – No se puede instanciar el receptor
- ¿Existe alguna función equivalente de requestAudioFocus en Android API nivel 7?