Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GLSL着色器-片段着色器未编译_Java_Compiler Errors_Glsl_Shader_Fragment Shader - Fatal编程技术网

Java GLSL着色器-片段着色器未编译

Java GLSL着色器-片段着色器未编译,java,compiler-errors,glsl,shader,fragment-shader,Java,Compiler Errors,Glsl,Shader,Fragment Shader,我刚刚写了这个着色器,但它没有编译,我已经搜索了几个小时,甚至检查了验证器,我找不到编译错误是什么。这是我最后的办法,有人能在这里发现什么错误吗 #version 150 core uniform sampler2D texture1; in vec4 pass_Color; in vec2 pass_TextureCoord; in vec2 pass_Velocity; out vec4 out_Color; void main(void) { out_Color = pa

我刚刚写了这个着色器,但它没有编译,我已经搜索了几个小时,甚至检查了验证器,我找不到编译错误是什么。这是我最后的办法,有人能在这里发现什么错误吗

#version 150 core

uniform sampler2D texture1;

in vec4 pass_Color;
in vec2 pass_TextureCoord;
in vec2 pass_Velocity;

out vec4 out_Color;


void main(void) {
    out_Color = pass_Color;

    vec4 color = texture(texture1, pass_TextureCoord) * pass_Color  ;

    pass_TextureCoord += pass_Velocity;

    for(int i = 1; i < 6; ++i, pass_TextureCoord += pass_Velocity)
    {
      vec4 currentColor = texture(texture1, pass_TextureCoord) * pass_Color  ;
      color += currentColor;
    }

    out_Color = (color / 6.0f);
}
#版本150核心
均匀的二维纹理1;
在vec4中,通过颜色;
在vec2中,通过纹理命令;
在vec2中,通过速度;
out vec4 out_颜色;
真空总管(真空){
输出颜色=通过颜色;
vec4颜色=纹理(纹理1,通过纹理命令)*通过颜色;
通过纹理命令+=通过速度;
对于(int i=1;i<6;++i,通过纹理命令+=通过速度)
{
vec4 currentColor=纹理(纹理1,传递纹理命令)*传递颜色;
颜色+=当前颜色;
}
输出颜色=(颜色/6.0f);
}
我使用以下命令检索日志:

它说我正试图给一个变量赋值。基本上我不能更改前缀为in的变量


在本例中,我试图将pass\u Velocity添加到pass\u TextureCoord中,因此尝试更改该值,这是不允许的。

会出现什么错误?好吧,只是它没有成功编译..嗯,没有。着色器没有简单地“没有成功编译”。OpenGL有一个广泛的API,用于从失败的编译中获取错误消息。您需要使用这个API.GLU.GlueErrorString(errorValue);给我一个无效的操作。另外,GL20.glGetShaderi(shaderID,GL20.GL_COMPILE_STATUS)=GL11.GL_FALSE在该特定着色器上的计算结果为true。
gluErrorString
不是我所说的。GLU甚至不是OpenGL;这是一个独立的图书馆。
GL20.glGetShaderInfoLog(shaderID,GL20.glGetShaderi(shaderID,GL20.GL_INFO_LOG_LENGTH));