youtu www tutoriales tutorial texturizar texturas poner conectatutoriales como cinema opengl-es textures alphablending

opengl-es - www - youtu tutoriales



Mezcla de texturas transparentes con profundidad (1)

La habilitación de la prueba de profundidad en realidad no ordena la geometría por profundidad; en el caso GL_LESS habitual, simplemente evita que las primitivas se GL_LESS si no están más cerca del visor que lo que se dibujó previamente. Esto le permite dibujar una geometría opaca en el orden que desee y aún así obtener el resultado deseado, pero la representación correcta de la geometría combinada generalmente requiere que todo lo que se encuentra detrás del objeto mezclado ya haya sido renderizado.

Esto es lo que debe hacer para obtener una mezcla de geometría opaca y mezclada para que se vea bien:

  1. Separe su geometría combinada de su geometría opaca.
  2. Clasifique su geometría combinada de atrás hacia adelante.
  3. Dibuja toda la geometría opaca primero como de costumbre.
  4. Dibuja tu geometría combinada en orden ordenado. glDepthMask(GL_FALSE) dejar la prueba de profundidad habilitada pero deshabilitar temporalmente las escrituras de profundidad con glDepthMask(GL_FALSE) .

Alternativamente, si su contenido es siempre totalmente opaco o completamente transparente, puede habilitar las pruebas alfa y deshabilitar la fusión, pero supongo que eso no es lo que está buscando.

Estoy intentando mezclar texturas que tienen áreas transparentes:

glEnable( GL_TEXTURE_2D ); glBindTexture( GL_TEXTURE_2D, ...); glVertexPointer( 2, GL_FLOAT, 0, ... ); glEnable (GL_BLEND); glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glDrawArrays( GL_TRIANGLE_STRIP, 0, 4 );

A menos que agregue glDisable (GL_DEPTH_TEST), las partes transparentes de las texturas superiores sobrescriben todo lo que hay debajo de ellas (en lugar de combinarlas). ¿Hay alguna forma de hacer esto sin deshabilitar la profundidad? He intentado varias funciones de fusión, pero ninguna ayudó.