Utilizzo un ParticleSystem con PointSprites (ispirato a Cocos2D Source). Ma mi chiedo come ricostruire la funzionalità per OpenGL ES 2,0GLSL PointSprite per il sistema di particelle
glEnable(GL_POINT_SPRITE_OES);
glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
glPointSizePointerOES(GL_FLOAT,sizeof(PointSprite),(GLvoid*) (sizeof(GL_FLOAT)*2));
glDisableClientState(GL_POINT_SIZE_ARRAY_OES);
glDisable(GL_POINT_SPRITE_OES);
questi generano BAD_ACCESS quando si utilizza un 2.0 contesto OpenGL ES. Dovrei semplicemente andare con 2 TRIANGLES per PointSprite? Ma questo probabilmente non è molto efficace (overhead per i vertici extra).
EDIT: Così, il mio nuovo problema con la soluzione suggerita da: https://gamedev.stackexchange.com/questions/11095/opengl-es-2-0-point-sprites-size/15528#15528
è una possibilità di passare molte dimensioni diverse in una chiamata in batch. Ho pensato di usare un Attributo invece di un Uniforme, ma poi avrei dovuto passare sempre un PointSize ai miei ombreggiatori - anche se non sto disegnando GL_POINTS. Quindi, forse un secondo shader (uno shader solo per GL_POINTS) ?! Non sono a conoscenza del sovraccarico per il passaggio degli shader a ogni frame della routine di disegno (perché se si utilizza il sistema di particelle, desidero rendere naturalmente anche GL_TRIANGLES regolare senza un pointSize) ... Qualche idea su questo?
Questo dovrebbe essere quello che stai cercando: http://gamedev.stackexchange.com/questions/11095/opengl-es-2-0-point-sprites-size/15528#15528 – rgngl
Grazie! Quel collegamento è molto utile. Quindi, il mio unico problema con questa soluzione è la possibilità di fare qualcosa di simile come "glPointSizePointerOES" su GLSL (sul link si suggerisce di usare un'uniforme per la dimensione in punti - così tanti punti diversi con dimensioni diverse non sono disegnabili in una chiamata batch con glDrawArrays). Ho pensato di usare un Attributo invece di un Uniforme, ma poi avrei dovuto passare sempre un PointSize ai miei ombreggiatori - anche se non sto disegnando GL_POINTS. Quindi, forse un secondo shader (uno shader solo per GL_POINTS) ?! Qualche idea su questo? – Constantin