OpenGL,将矩阵发送到顶点着色器并显示GLSL

时间:2013-09-21 04:15:03

标签: arrays opengl matrix glsl shader

我试图创建一个z = y ^ 2 - x ^ 2的网格进行单一评估。我创建了一个矩阵数组来保存我想要绘制为GL_LINE_STRIPS的sqaures sqaureMatrix[100]。我想知道的是我如何将它发送到顶点着色器并显示它。

我将在下面添加一些代码,说明我到目前为止如何设置

asessment.cpp

mat4 squareMatrix[100];

// this is in general how i fill the matrix

mat4 pseudo = mat4

(
vec4(1,1,1,1),
vec4(1,1,1,1),
vec4(1,1,1,1),
vec4(1,1,1,1)
);

// loop through and actually add to the squarematrix like

squareMatrix[0] = pseudo;

vshader.glsl

uniform mat4 mMatrix;


void
main()
{
    for (int i = 0; i < 100; i++)
    {
        gl_Position = mMatrix[i];
    }
}

嗯,你得到它的主旨。矩阵设置得很好。我想我会加上它来澄清一些事情。

1 个答案:

答案 0 :(得分:1)

好吧,你已经拥有了这个阵列。因此,通过将OpenGL作为顶点数组(或将其复制到顶点缓冲区对象,然后将其作为顶点数组引用)将OpenGL指向它。 Google会根据这些条款了解他们的所作所为。它们是每个现代OpenGL教程的一部分。然后根据该数据进行OpenGL绘制。

碰巧我刚刚添加了minimal VBO example to my codesamples GitHub repository,以回应另一个StackOverflow问题。它也与您的问题相符。