我正在阅读有关openGL 3.3(自然使用GLSL 330的教程)。不幸的是,我的硬件仅限于openGL 3.0(其中GLSL 130是最新格式)。在GLSL 130中,语法
layout (location = 1) in vec4 position;
产生错误。最重要的是,将“布局”的多个实例应用于不同变量的代码不起作用。我什至尝试过
#extension ARB_explicit_attrib_location : require
也不受支持。是否有办法等效地从130中的330重写这些语句?
如果您的实现不支持ARB_explicit_attrib_location(作为扩展名或version 330
或更高版本,则您不能使用显式属性位置。您必须在链接阶段之前用glBindAttribLocation
指定它们。
并且从技术上讲,您的“硬件”可以做到这一点。 NVIDIA和ATI在驱动程序中仍支持的所有硬件中均支持此扩展。这是API的便利。我猜您正在使用某些Intel硬件。如果是这样,你有我的同情。
顺便说一句,是glBindAttribLocation
?