【发布时间】:2020-11-04 21:44:37
【问题描述】:
我将我的 three.js 更新到 118,并且与着色器相关的旧代码部分出现错误:我得到 2 种类型的错误:一种是统一变量命名为纹理时:需要将其命名为与纹理不同的任何名称。第二个是:gl_FragData 现在是未声明的标识符(我在着色器中使用它来读取地形高度)。这一切都在早些时候起作用。有谁知道发生了什么?
【问题讨论】:
-
编译器已更改,容错性降低。当您从一个编译器迁移到另一个编译器时,此类问题很常见
-
备注;用 gl_FragColor 替换 gf_FragData[0] 但不能解释 gl_FragData 的问题
-
您可能升级了您的 glsl 语言,您使用的是什么版本?这很有趣:io7m.com/documents/fso-tta
-
不,我的版本不是最新版本:4.2
-
无论如何,如果你使用的GLSL语言版本(不同于OpenGL 3.2版本之前的OpenGL版本,3.2之后他们对其进行了规范化以避免混淆)大于1.30,你应该使用声明方式而不是通过内置变量。在此链接上,您可以获得更改代码所需的所有信息。 io7m.com/documents/fso-tta