GLSL顶点着色器编译错误

时间:2017-04-02 14:53:01

标签: c++ opengl glsl

这是我的以下错误,即GLSL中的ERROR#160。

- name: Copy custom configs
  copy:
    dest: /etc/httpd/conf/
    src: httpd.conf
    owner: root 
  notify: "restart apache"

这是在尝试编译此GLSL程序时创建的错误。

#version 330 core

layout (location = 0) in vec3 position;
out vec4 pos;

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main()
{
    gl_Position = projection * view * model * vec4(position, 1.0f);
    pos = position;
}

我对调试GLSL一无所知,所以如果有人能提供帮助,我将非常感激。

1 个答案:

答案 0 :(得分:3)

嗯,你的错误非常清楚。由于您将position分配给posposvec4positionvec3,因此没有隐式转换,编译器抱怨。要解决此问题,只需向您vec4创建一个position,例如

pos = vec4(position, 1.0f);

但是,您应该考虑为什么需要vec4来确定您在管道中的位置,或者posvec3是否足够。