【发布时间】:2015-01-09 23:06:47
【问题描述】:
我已将 Visual Studio 项目移至另一台计算机,现在 GLSL 无法编译以前运行良好的着色器。例如,它将 vec4s 隐式转换为 vec3s 并告诉我“点”函数未定义。
我正在使用 GLSDK 并且项目构建正确,并且 glGetString(GL_SHADING_LANGUAGE_VERSION) 告诉我 4.40。这显然是我没有安装但习惯的东西,但我已经四处搜索,无法弄清楚是什么。
【问题讨论】:
-
诚然,我通常处理 GLSL ES,这就是为什么我不热衷于立即尝试这个作为答案,但我不认为不同大小向量之间的隐式转换是规范——类型可以隐式转换,大小不能。
-
我刚刚选择了一个在另一台计算机上运行的项目并将其转储到这台计算机上,因此我可以确认着色器正常运行。除了转换之外,它不会将 dot(vec3, vec3) 函数识别为存在,如果我经历并纠正每个错误,可能会有更多。
-
它是否真的在抱怨缺少
dot(vec3, vec4)?