我是 Android 上 OpenGLES2 编程的新手。我想知道如何将 Java 类映射到 Shader 程序中的属性/统一。假设在我的着色器中我定义了名为“light”的结构:
struct light {
vec4 position;
vec4 ambient_color;
vec4 diffuse_color;
vec4 specular_color;
vec3 spot_direction;
vec3 attenuation_factors;
float spot_exponent;
float spot_cutoff_angle;
bool compute_distance_attenuation;
};
uniform light light_state[8];
如果我编写一个反映相同结构的 Java 类,如下所示:
public class Light{
public float[] position=new float[4];
public float[] ambient=new float[4];
public float[] diffuse=new float[4];
public float[] specular=new float[4];
public float[] spotDirection=new float[3];
public float[] attenFactors=new float[3];
public float spotExponent;
public float spotCutoffAngle;
public boolean computeDA;
}
是否可以将 Light 实例映射到 Shader 程序中?