所以,假设我有两个顶点缓冲区。一个描述我想要绘制的实际形状,另一个能够影响第一个。
所以,我真正希望能做的是这样的事情:
uniform VBO second_one;
void main()
{
for (int i = 0; i < size_of_array(second_one); ++i)
Do things with second_one[i] to alter the values
create the output informations
}
我可能想要做的事情可能是重力,即second_one中的每个点都试图将点稍微拖动一点,依此类推,然后在调整点之后,应用矩阵以获得其实际位置。 / p>
我会非常惊讶它是可能的,或者接近它的东西。但重点是要能够使用第二个VBO,或者将它作为vec3类型的制服让我说可以访问它。
答案 0 :(得分:1)
对于你想要的,你有三个选择。
uniform vec3 stuff[50];
。 GLSL中的数组采用.length()
方法,因此您可以了解它们的大小。当然,你使用的制服数量是有限制的,但你不应该超过20-30个。除此之外,你会真正感受到性能消耗。请注意,只有能够支持GL 3.x及更高版本的硬件才能找到#2和#3。所以DX10级硬件。