我有一个非常愚蠢的问题
我在顶点着色器中需要2个归一化向量A和B,我已经在CPU上计算了它们(对于其他的purporses)。但是要将它从CPU传递到着色器,我必须再添加一个vec4属性(2 * vec2 = vec4)。我已经传递了另一个vec4(向量C和D),这是A和B,但是乘以一些系数。
我的愚蠢问题是 - 我应该通过非正规化的矢量,还是从C和D中获取它?
attribute vec4 dirs; // .xy = C, .zw = D
void main(){
...
vec4 norm_dirs = vec4(normalize(dirs.xy), normalize(dirs.zw)); // .xy = A, .zw = B
...
}
或
attribute vec4 dirs; // .xy = C, .zw = D
attribute vec4 norm_dirs; // .xy = A, .zw = B
void main(){
...
// nothing to do here
...
}
我问这个因为我担心吞吐量GPU内存 - > VS. (它在这里增加了vec4属性计数1.5-2倍)
我有什么理由担心吗?