3.6 shader如何定义float 或者 vec2 的数组?



企业微信截图_16758254427410
vec4的数组定义没有问题,但vec2或者float的数组定义会报错
企业微信截图_16758255355718
企业微信截图_1675825544743

可以定义,参数light_prop就行,你那个light_prop[2]明显跟vec2不一致了

有参考写法吗?我把vec2 light_prop[2]改成vec2 light_prop,就变成单个vec2而不是vec2的数组了

之前看opengl好像是数据绑定的问题,要满足某种格式记不太清除了,你要搞清楚原理的话去opengl看看,如果没有空的话你直接把vec2变成vec4就行,然后把vec4当做vec2用就行

每个 uniform 块都用同一个数据类型试试看,把你的 Constant 拆分为两个 uniform

vec2 light_prop[2] 改成 vec4 light_prop