Versión de Godot:
v3.1.alpha.calinou.5b8dde4
Sistema operativo / dispositivo incluida la versión:
Dispositivos con Windows 10 y Android probados
Descripcion del problema:
He escrito un código de sombreado personalizado, que básicamente hace que el objeto se desvanezca en un clip_height determinado. Se puede usar para renderizar el 50% inferior de un objeto y así sucesivamente. Funciona en GLES3, pero no en GLES2.
He creado un proyecto de ejemplo para aclarar el problema.
Así es como se ve en GLES3
Y así es como se ve en GLES2
Pasos para reproducir:
Pude desglosar el problema básicamente en estas dos líneas de código de sombreado:
vec4 world_vertex = camera_matrix * vec4(VERTEX, 1.0);
ALPHA = smoothstep(1, 0, (world_vertex.y - clip_height)/fade_offset);
La matriz de la cámara se pasa desde el sombreador de vértices. Desafortunadamente, no tengo idea de cómo investigar más a fondo qué es exactamente lo que está causando el error.
Proyecto de reproducción mínima:
AlphaIssue.zip
¡Buena atrapada! Encontré el error. Es un problema con el compilador de sombreado gles2. Intercambia INV_CAMERA_MATRIX
y CAMERA_MATRIX
en el código definido por el usuario. Enviaré un PR para arreglar esto en unos minutos. Mientras tanto, use INV_CAMERA_MATRIX
en la función de fragmento si desea usar CAMERA_MATRIX
.
Comentario más útil
¡Buena atrapada! Encontré el error. Es un problema con el compilador de sombreado gles2. Intercambia
INV_CAMERA_MATRIX
yCAMERA_MATRIX
en el código definido por el usuario. Enviaré un PR para arreglar esto en unos minutos. Mientras tanto, useINV_CAMERA_MATRIX
en la función de fragmento si desea usarCAMERA_MATRIX
.