如何在带有布局说明符的GLSL中支持OpenGL版本3.3以下?

vs3odd8k  于 2022-10-18  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个OpenGL程序,它在着色器中使用布局说明符。我希望它能够支持3.3以下的OpenGL版本(当引入布局说明符时)。
有没有办法取代布局说明符来支持早期的OpenGL版本?

z9zf31ra

z9zf31ra1#

好的,这样做的方法是不使用layout s,而是使用in。例如,如果这是VBO上的一个顶点:

//  | Coordinates |     Colors    | Tex Coord |
    {1.f, 1.f, 1.f, 0.f, 1.f, 0.5f,  1.f, 0.f}

然后,这将是顶点着色器:

in vec3 coordinates;
in vec3 color;
in vec2 texCoord;

注意vec声明中的数字如何与VBO中的值匹配。

相关问题