C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 使用片段着色器的OpenGL 3.3不同颜色大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为3个圆圈着色,但只出现3个白色圆圈.在这个例子中,n是3.每个顶点有5个点,2个位置,3个颜色

这是我认为问题可能存在的地方:

glEnabLevertexAttribArray(0);
    glBindBuffer(GL_ARRAY_BUFFER,vertexbuffer);
    glVertexAttribPointer(
        0,2,GL_FLOAT,GL_falSE,5*sizeof(float),(void*)0            
    );

    glEnabLevertexAttribArray(1);
    glVertexAttribPointer(
        1,3,(void*)(2*sizeof(float))
    );

    glDrawElements(GL_TRIANGLES,20 * 3 * n,GL_UNSIGNED_INT,0);

    glDisabLevertexAttribArray(0);
    glDisabLevertexAttribArray(1);

我的着色器:

#version 330 core

in vec3 Color;

out vec4 outColor;

void main()
{
    outColor = vec4(Color,1.0);
}


#version 330 core

layout(LOCATIOn = 0) in vec2 position;

layout(LOCATIOn = 1) in vec3 color
out vec3 Color

void main(){
    gl_Position = vec4(position,0.0,1.0);
    Color = color;
}

谢谢参观
安迪

编辑:

layout(LOCATIOn = 1) in vec3 color
    out vec3 Color

layout(LOCATIOn = 1) in vec3 color;
    out vec3 Color;

解决方法

(从评论中发布解决方案以回答此问题.)

在这两行的末尾缺少分号:

layout(LOCATIOn = 1) in vec3 color
out vec3 Color

将来,在编译着色器后使用glGetShader和GL_COMPILE_STATUS来检查编译是否成功,并使用glGetShaderInfoLog来检索确切的错误和警告.有关更多详细信息和代码示例,请参见Shader Compilation.

大佬总结

以上是大佬教程为你收集整理的c – 使用片段着色器的OpenGL 3.3不同颜色全部内容,希望文章能够帮你解决c – 使用片段着色器的OpenGL 3.3不同颜色所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。