I tienen el siguiente proceso:OpenGLES mezclan partículas, pero no el fondo
- draw background
- draw objects and blend with background (1)GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA
- draw particle effect with blending (2)GL10.GL_SRC_ALPHA, GL10.GL_ONE in order to highlight overlapping particles
Problema - cuando dibujo de partículas que se mezclan, además, con el fondo y se vuelve muy brillante.
Simplemente lo que necesito es mezclar partículas con (2) y todas juntas para mezclar con el fondo usando (1).
soluciones que no trabaja:
- efecto de una textura de dibujo y de la aplicación funciona bien ... pero extremadamente lento.
- Dibujo efecto de partículas y despues de fondo, que se vea bien ... pero no puedo dibujar objeto de escena que debido a que necesitan estar entre BG y efectuar
Aquí está la pantalla para mostrar la diferencia. En el resultado deseado, a la izquierda, las partículas se mezclan con el fondo.
img:
apreciaré cualquier ayuda ...
más reciente: yo era capaz de obtener el color que quiero ... pero ... (Parece que esto no me va a mover a ninguna parte) He renderizado el fondo con alpha = 0 y que uso la función blend de GL11Ext: glBlendFuncSeparate (GL10.GL_SRC_ALPHA, GL10.GL_DST_ALPHA, GL10.GL_ONE, GL10.GL_ONE);
GL10.GL_SRC_ALPHA, GL10.GL_DST_ALPHA - los colores se mezclan sólo si tienen alfa (BG no tiene ahora)
GL10.GL_ONE, GL10.GL_ONE - alfa se ajusta al máximo para todas las partículas escritas para simular aditivo de mezcla
funciona bien como se puede ver ... excepto la zona de llenado de color negro donde las partículas alfa imagen tiene 0..and cuál es malo que la imagen resultante en la que el color negro tiene alfa 1 por lo que no puede reemplazarlo de ninguna manera ...
EDIT_2 Problema general en palabras simples: Necesito dibujar un efecto rojo brillante (0xff0000) brillante (combinación aditiva). Sobre fondo negro, está bien, pero si tomara verde (0x00ff00), el color resultante sería cercano a 0xffff00
¿Alguna idea?
¿Funcionaría el procesamiento en un búfer de cuadros por separado? ¿Tiene una mezcla aditiva de todas sus partículas en un búfer de cuadro transparente completo y luego hacer una mezcla alfa normal de ese búfer de cuadro en su escena principal. – TurqMage
Sí, funciona. Pero muy lento, pierdo cerca de 20 fps solo cambiando el framebufferes – Yuriy