Pregunta rápida: ¿Cuál es el método más rápido para renderizar una gran variedad de partículas 4x4 / 8x8 en opengl? Actualmente paso 2 triángulos para cada uno, pero creo que es lento, así que realmente me gustaría saber si lo estoy haciendo bien .....
opengl
graphics
software-engineering
usuario1010005
fuente
fuente
Respuestas:
Puedes dibujar puntos con OpenGL.
Desea llamar a glDrawArrays () o glDrawElements () con GL_POINTS (en lugar de GL_TRIANGLE_STRIP o lo que esté utilizando).
Esto atraerá puntos a la pantalla en función del tamaño de punto actual, que puede establecer mediante glPointSize () . También puede alias estos puntos, pero en mi experiencia no todos los controladores / hardware admiten puntos con alias.
No puedes texturizar estos puntos; son solo un solo color.fuente
En el núcleo OpenGL 3.2 y superior, los sombreadores de geometría están disponibles para su uso. Para dar una breve descripción, solo le diría a OpenGL que dibuje los puntos que representan las posiciones de sus partículas, y estos puntos pasarían a través del sombreador de vértices normalmente, pero luego cuando llegan al sombreador de geometría, construye el rectángulo (fuera de dos tris) emitiendo vértices a la siguiente etapa de la tubería. Junto con los vértices, puede generar mediante programación coordenadas normales y coordenadas de textura.
Como todo esto se hace en hardware, estoy bastante seguro de que es la forma más rápida en este momento para representar partículas de sprites puntuales.
fuente