顶点着色器标准化

时间:2014-03-27 18:58:08

标签: opengl graphics glsl shader vertex-shader

我有一个非常愚蠢的问题 我在顶点着色器中需要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倍)

我有什么理由担心吗?

0 个答案:

没有答案