我正在阅读有关openGL 3.3的教程(当然正在使用GLSL 330)。不幸的是我的硬件仅限于openGL 3.0(其中GLSL 130是最新的格式)。在GLSL 130中的语法
layout (location = 1) in vec4 position;
产生错误。最重要的是,将几个“布局”实例应用于不同变量的代码不起作用。我甚至试过
#extension ARB_explicit_attrib_location : require
也不受支持。有没有办法从330中等效地重写330这些语句?
答案 0 :(得分:19)
如果您的实现不支持ARB_explicit_attrib_location(作为扩展名或version 330
或更高版本),则您不能使用显式属性位置。您必须在链接阶段glBindAttribLocation
之前指定它们。
从技术上讲,你的“硬件”可以做得很好。 NVIDIA和ATI在所有仍支持驱动程序的硬件中支持此扩展。这是API的便利。我猜你是英特尔硬件的一部分。如果是这样,你会表示同情。
是的,那是my code, by chance?