Godot: GLES2自定义着色器代码出错,淡入效果

创建于 2018-11-30  ·  1评论  ·  资料来源: godotengine/godot

Godot版本:
v3.1.alpha.calinou.5b8dde4

操作系统/设备,包括版本:
Windows 10和Android设备经过测试

问题说明:
我已经编写了一个自定义着色器代码,该代码基本上使对象在给定的clip_height下淡出。 它可用于仅渲染对象底部的50%,依此类推。 它适用于GLES3,但不适用于GLES2。

我创建了一个示例项目来阐明问题。
这是在GLES3上的外观
gles3

这就是它在GLES2上的样子
gles2

重现步骤:
我基本上可以将问题分解为以下两行着色器代码:

    vec4 world_vertex = camera_matrix * vec4(VERTEX, 1.0);

    ALPHA = smoothstep(1, 0,  (world_vertex.y - clip_height)/fade_offset);

相机矩阵从顶点着色器传递。 不幸的是,我不知道如何进一步调查到底是什么导致了错误。

最小复制项目:
AlphaIssue.zip

bug rendering

最有用的评论

接得好! 我发现了错误。 gles2着色器编译器存在问题。 它在用户定义的代码中交换INV_CAMERA_MATRIXCAMERA_MATRIX 。 几分钟后,我将提交一份PR以解决此问题。 在此期间,使用INV_CAMERA_MATRIX如果你想使用的片段功能CAMERA_MATRIX

>所有评论

接得好! 我发现了错误。 gles2着色器编译器存在问题。 它在用户定义的代码中交换INV_CAMERA_MATRIXCAMERA_MATRIX 。 几分钟后,我将提交一份PR以解决此问题。 在此期间,使用INV_CAMERA_MATRIX如果你想使用的片段功能CAMERA_MATRIX

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

bojidar-bg picture bojidar-bg  ·  3评论

timoschwarzer picture timoschwarzer  ·  3评论

nunodonato picture nunodonato  ·  3评论

testman42 picture testman42  ·  3评论

Spooner picture Spooner  ·  3评论