【问题标题】:Shader fails to compile without error message (Haskell OpenGL bindings)着色器无法编译且没有错误消息(Haskell OpenGL 绑定)
【发布时间】:2019-10-06 09:01:39
【问题描述】:

我正在尝试使用 Haskell GLUT 和 OpenGL 绑定(本质上是普通 OpenGL 类型和函数的直接转换)来绘制球体。在编写代码时,我遵循了 Sven Panne(OpenGL 绑定的作者)编写的 an example,由于他的 shader loading code 支持错误日志记录,所以我决定将其复制到我的项目中。但是,当我尝试编译我的顶点着色器时,编译失败并显示消息“用户错误(编译日志:)”并且没有实际的编译日志。

我尝试单独运行 Sven Panne 的三角形示例,以确保库或我的 OpenGL 版本没有问题,并且运行完美。我复制粘贴了其他人的着色器并尝试编译它们,但收效甚微。我已确保程序能够通过将其打印到控制台来实际打开着色器文件并读取源代码。

我的顶点着色器如下所示:

#version 430 core

layout(location = 0) in vec3 vPosition;

out vec4 color;

void main()
{
   gl_Position = vec4(vPosition, 1.0);
   color = vec4(1.0f, 0.5f, 0.2f, 1.0f);
}

如果有人好奇,我的片段着色器看起来像:

#version 430 core

in vec4 color;
out vec4 fColor;

void main()
{
   fColor = color;
}

如果有人有兴趣查看我的其余代码,请将其上传到Github(很抱歉造成混乱,但我已经尝试调试了一段时间)。

【问题讨论】:

    标签: haskell opengl glsl


    【解决方案1】:

    我终于找到了问题所在。在我实际进行其他一些初始化之前,我尝试编译着色器并制作程序,这就是导致错误的原因。在设置窗口并指定各种 OpenGL 选项后,我现在正在编译着色器并链接程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多