有没有办法将结构分配给GLSL中的实例变量?标准说你可以像这样构造一个结构:
light lightVar = light(3.0, vec3(1.0, 2.0, 3.0));
...但我无法复制结构。我尝试过以下各种变体:
#version 420
...
in Vertex
{
vec4 color;
vec4 position;
float distanceFromScanner;
bool isInBody;
} vertex[];
...
Vertex va = Vertex( vertex[0] );
// Vertex va( vertex[0] );
// Vertex va = Vertex( vertex[0].color, vertex[0].position, vertex[0].distanceFromScanner, vertex[0].isInBody );
他们都给我意想不到的令牌语法错误,如下所示:
error C0000: syntax error, unexpected '=', expecting \"::\" at token \"=\"
我错过了什么吗?除了总是使用vertex[0]
之外,还有什么我可以做的吗?
这是在带有NVIDIA驱动程序335.23,FWIW的GeForce GTX 770上。