jpm*_*jpm 15 opengl shader opengl-es
例如.在FragmentShader中: -
struct LightSource
{
int Type;
vec3 Position;
vec3 Attenuation;
vec3 Direction;
vec3 Color;
};
uniform LightSource Light[4];
main(){
//somecode
}
Run Code Online (Sandbox Code Playgroud)
现在我该如何发送值Light[4].
use*_*930 23
您需要为每个数组元素获取结构的每个字段的位置,并分别发送值.请参阅OpenGL wiki页面以供参考:http://www.opengl.org/wiki/Uniform_(GLSL)#Uniform_management.
例如,要设置Light [0] .Type的值,您将执行以下操作:
GLuint loc = glGetUniformLocation(shader_program_id, "Light[0].Type");
glUniform1i(loc, value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16071 次 |
| 最近记录: |