为什么在具有可变索引的数组中使用结构会导致滞后?

时间:2019-05-27 19:22:17

标签: opengl glsl

我正在使用openGL创建3D图形引擎 我正在做一些阴影贴图,只是遇到一个小问题:

我有一个这样的LightCaster结构:

struct LightCaster {
    mat4 vp;
    sampler2D depth_map;
};

并定义了此结构实例的统一数组:

uniform LightCaster light_casters[4];

我的问题是,当我使用变量索引访问脚轮时,会产生很多滞后,但是当我使用数字访问它时,我可以再次获得60 fps!

mat4 m = light_casters[caster_index].vp; // create lags


mat4 m = light_casters[0].vp; // 60 fps

但是即使我使用固定值作为索引,它仍然会产生滞后:

int index = 0;
mat4 m = light_casters[index].vp; // still laggy

0 个答案:

没有答案