GLSL 顶点着色器编译错误

GLSL Vertex Shader Compilation Error

本文关键字:编译 错误 顶点 GLSL      更新时间:2023-10-16

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

#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程序时产生的错误。

ERROR: Vertex Shader Program Compilation Failed! Vertex shader failed to compile with the following errors:
ERROR: 0:13: error(#160) Cannot convert from: "in highp 3-component vector of vec3" to: "default out highp 4-component vector of vec4"
ERROR: error(#273) 1 compilation errors.  No code generated

我对调试 GLSL 一无所知,所以如果有人可以帮助它,我们将不胜感激。

好吧,你的错误很清楚。由于你把position分配给pos,而pos是一个vec4,而position是一个vec3,并且没有隐式转换,编译器抱怨。要解决此问题,只需从您的position创建一个vec4,例如

pos = vec4(position, 1.0f);

但是,您应该考虑为什么您需要一个vec4来担任您的职位,或者pos成为vec3是否足够。