Godot版本:
v3.1.alpha.calinou.5b8dde4
操作系统/设备,包括版本:
Windows 10和Android设备经过测试
问题说明:
我已经编写了一个自定义着色器代码,该代码基本上使对象在给定的clip_height下淡出。 它可用于仅渲染对象底部的50%,依此类推。 它适用于GLES3,但不适用于GLES2。
我创建了一个示例项目来阐明问题。
这是在GLES3上的外观
这就是它在GLES2上的样子
重现步骤:
我基本上可以将问题分解为以下两行着色器代码:
vec4 world_vertex = camera_matrix * vec4(VERTEX, 1.0);
ALPHA = smoothstep(1, 0, (world_vertex.y - clip_height)/fade_offset);
相机矩阵从顶点着色器传递。 不幸的是,我不知道如何进一步调查到底是什么导致了错误。
最小复制项目:
AlphaIssue.zip
接得好! 我发现了错误。 gles2着色器编译器存在问题。 它在用户定义的代码中交换INV_CAMERA_MATRIX
和CAMERA_MATRIX
。 几分钟后,我将提交一份PR以解决此问题。 在此期间,使用INV_CAMERA_MATRIX
如果你想使用的片段功能CAMERA_MATRIX
。
最有用的评论
接得好! 我发现了错误。 gles2着色器编译器存在问题。 它在用户定义的代码中交换
INV_CAMERA_MATRIX
和CAMERA_MATRIX
。 几分钟后,我将提交一份PR以解决此问题。 在此期间,使用INV_CAMERA_MATRIX
如果你想使用的片段功能CAMERA_MATRIX
。