首页 > 解决方案 > 接口块数组可以从顶点着色器转移到片段着色器吗

问题描述

我想将一个结构数组从顶点着色器传递到片段着色器,所以我尝试使用 glsl 接口块来执行此操作。

我曾经在片段着色器中直接定义结构数组以避免这种情况,但不幸的是由于某些原因我现在必须这样做

OpenGL 版本:3.3

在顶点着色器中,我使用了:

out PointLightBlock{
    vec3 position;
    vec3 ambient;
    vec3 diffuse;
    vec3 specular;
    float constant;
    float linear; 
    float quadratic;
    
    vec3 flux;
}pointLightBlock[MAX];

在片段着色器中,我使用了:

in PointLightBlock{
    vec3 position;
    vec3 ambient;
    vec3 diffuse;
    vec3 specular;
    float constant;
    float linear; 
    float quadratic;
    
    vec3 flux;
}pointLightBlock[MAX]; // MAX is a constant defined both in vertex shader and fragment shader.

但它不起作用。

标签: openglglslshader

解决方案


推荐阅读