Opengl 能否将数组作为输入传递给几何体着色器?
能否将vec2数组作为输入传递给几何体着色器?如果是,语法是什么?从左到右读取GLSL中的数组Opengl 能否将数组作为输入传递给几何体着色器?,opengl,geometry-shader,Opengl,Geometry Shader,能否将vec2数组作为输入传递给几何体着色器?如果是,语法是什么?从左到右读取GLSL中的数组vec2[3][6]被解读为“3个元素的数组,其中每个元素是6个元素的数组,其中每个元素是vec2” GS输入是阵列的;每个元素表示前一着色器阶段的单个输出。“单个输出”实际上可能是数组类型,这一事实与此无关 因此,如果您使用的输入/输出变量不在接口块中,则如下所示: //Vertex Shader out vec2[6] someVariable; //Geometry Shader in vec2
vec2[3][6]
被解读为“3个元素的数组,其中每个元素是6个元素的数组,其中每个元素是vec2
”
GS输入是阵列的;每个元素表示前一着色器阶段的单个输出。“单个输出”实际上可能是数组类型,这一事实与此无关
因此,如果您使用的输入/输出变量不在接口块中,则如下所示:
//Vertex Shader
out vec2[6] someVariable;
//Geometry Shader
in vec2[][6] someVariable;
第一个索引是顶点索引
请注意,这可能需要GLSL 4.30或ARB_数组
如果使用传递数据,则数组将位于接口块本身的实例名称上:
//Vertex Shader
out SomeName
{
vec2[6] someVariable;
};
//Geometry Shader
in SomeName
{
vec2[6] someVariable;
} instanceName[];
由于该块有一个实例名,您可以在GLSL中将其称为instanceName[index].someVariable
这可以在OpenGL 3.2中完成。GLSL中的数组从左到右读取
vec2[3][6]
被解读为“3个元素的数组,其中每个元素是6个元素的数组,其中每个元素是vec2
”
GS输入是阵列的;每个元素表示前一着色器阶段的单个输出。“单个输出”实际上可能是数组类型,这一事实与此无关
因此,如果您使用的输入/输出变量不在接口块中,则如下所示:
//Vertex Shader
out vec2[6] someVariable;
//Geometry Shader
in vec2[][6] someVariable;
第一个索引是顶点索引
请注意,这可能需要GLSL 4.30或ARB_数组
如果使用传递数据,则数组将位于接口块本身的实例名称上:
//Vertex Shader
out SomeName
{
vec2[6] someVariable;
};
//Geometry Shader
in SomeName
{
vec2[6] someVariable;
} instanceName[];
由于该块有一个实例名,您可以在GLSL中将其称为instanceName[index].someVariable
这可以在OpenGL 3.2中完成