significa que iphone graphics opengl-es vbo

iphone - que significa vbo en minecraft



¿Es una buena idea el rendimiento del uso de Vertex Buffer Object para datos muy dinámicos? (2)

Tengo muchas partículas cuyos vértices cambian cada cuadro. Los vértices se están dibujando actualmente utilizando una matriz de vértices en la memoria del "cliente". ¿Qué características de rendimiento puedo esperar si utilizo un objeto buffer de vértice?

Ya que tengo que usar una cantidad de glBuffersubData para actualizar los vértices de partículas, por lo tanto, estoy transfiriendo los vértices a la memoria de video en cada fotograma, ¿no? (Como lo haría si utilizara una matriz de vértices regulares)? ¿Hay algún beneficio para VBO en este caso?

Esto es para dispositivos iOS. La llamada de dibujo real: glDrawElements (GL_POINTS, num_particles, GL_UNSIGNED_SHORT, pindices);

¿Debo usar GL_STREAM_DRAW o GL_DYNAMIC_DRAW ?


Al configurar los VBO correctamente, está utilizando una forma óptima de transferir datos a la GPU. Al hacerlo, puede omitir algunos procesadores de controladores. La única manera de ver cuánto obtiene de la mejora que obtiene es a través de la medición. Es diferente de tarjeta a tarjeta.

Para instrucciones de VBO, vea esto: tutorial de VBO

EDITAR Olvidó contestar la pregunta: sí, es una buena idea. Pero la primera medida.


La documentación de Apple parece recomendar VBO en todas las situaciones. Si está utilizando ES 2.x, entonces el tipo de búfer GL_STREAM_DRAW de vértice es explícitamente para "cuando su aplicación necesita crear una geometría transitoria que se procesa un pequeño número de veces y luego se descarta. Esto es más útil cuando su aplicación debe cambiar dinámicamente el vértice datos de cada fotograma de una manera que no se puede realizar en un sombreado de vértice ". El uso de glBufferSubData se recomienda directamente.

Lógicamente, supongo que la única diferencia entre suministrar los datos completamente de nuevo y enviarlos a un búfer GL_STREAM_DRAW o GL_DYNAMIC_DRAW existente es que su espacio en el mapa de memoria (GPU o CPU, según el chip, los MBX no hacen VBO sino Apple) los admite por otros motivos de rendimiento) se pueden asignar una vez en lugar de asignar y liberar a cada fotograma.

Es probable que el uso de los consejos de alineación y empaquetado que se proporcionan en ese documento proporcione una mejora mejor que un cambio a VBO, ya que de lo contrario, la CPU solo tiene que desempaquetar y volver a empaquetar los datos en glDrawElements. Aunque es probable que ya lo sepa y aprecio que no forme parte directamente de la pregunta, principalmente lo incluyo como una estimación comparativa sobre los beneficios del rendimiento.