Math 新的线性代数和OpenGL。一旦你有了一个转换矩阵,你如何使用openGL绘制它们?

Math 新的线性代数和OpenGL。一旦你有了一个转换矩阵,你如何使用openGL绘制它们?,math,opengl,graphics,matrix,linear-algebra,Math,Opengl,Graphics,Matrix,Linear Algebra,我在看一些能够用矩阵而不是内置函数表示转换的例子。我想在不使用任何opengl的矩阵或变换函数的情况下了解更多关于低级函数的信息 假设我有一个矩阵类: 类矩阵 { 公众: 浮动数据[3][3] Matrix ( void ) { int i, j; for ( i = 0; i < 3; i++ ) { for ( j = 0; j < 3; j++ ) { data [ i ] [ j ] = 0;

我在看一些能够用矩阵而不是内置函数表示转换的例子。我想在不使用任何opengl的矩阵或变换函数的情况下了解更多关于低级函数的信息

假设我有一个矩阵类: 类矩阵 { 公众: 浮动数据[3][3]

Matrix ( void )
{
    int i, j;

    for ( i = 0; i < 3; i++ )
    {
        for ( j = 0; j < 3; j++ )
        {
            data [ i ] [ j ] = 0;
        }sa
    }
}
};
如何使用opengl应用这些转换?我不知道从哪里开始。是否有一个函数可以获取3x3矩阵并将其加载进去?

你的意思是

真的,我想你应该猜到那个名字了


现在,这是OpenGL 3+中一个不推荐使用的函数。相反,您可以使用它将转换加载到一个统一的文件中,在着色器中检索转换并使用矩阵乘法应用它。

您的意思是

真的,我想你应该猜到那个名字了



现在,这是OpenGL 3+中一个不推荐使用的函数。相反,您可以使用它将转换加载到一个统一的文件中,您可以在着色器中检索转换并使用矩阵乘法应用它。

您可能需要
glLoadMatrix
glMultMatrix
中的一个。它们采用列主4x4矩阵,因此您需要编写一个sh我喜欢:

GLfloat matrix[16];

matrix[0] = data[0][0];
matrix[1] = data[0][1];
matrix[2] = data[0][2];
matrix[3] = 0.0f;

matrix[4] = data[1][0];
matrix[5] = data[1][1];
matrix[6] = data[1][2];
matrix[7] = 0.0f;

matrix[8] = data[2][0];
matrix[9] = data[2][1];
matrix[10] = data[2][2];
matrix[11] = 0.0f;

matrix[12] = 0.0f;
matrix[13] = 0.0f;
matrix[14] = 0.0f;
matrix[15] = 1.0f;

glLoadMatrixf(matrix);

因此,我刚刚用单位矩阵的相关部分填充了您的数据。

您可能需要
glLoadMatrix
glMultMatrix
中的一个。它们采用列主4x4矩阵,因此您需要编写如下垫片:

GLfloat matrix[16];

matrix[0] = data[0][0];
matrix[1] = data[0][1];
matrix[2] = data[0][2];
matrix[3] = 0.0f;

matrix[4] = data[1][0];
matrix[5] = data[1][1];
matrix[6] = data[1][2];
matrix[7] = 0.0f;

matrix[8] = data[2][0];
matrix[9] = data[2][1];
matrix[10] = data[2][2];
matrix[11] = 0.0f;

matrix[12] = 0.0f;
matrix[13] = 0.0f;
matrix[14] = 0.0f;
matrix[15] = 1.0f;

glLoadMatrixf(matrix);

因此,我刚刚用单位矩阵的相关部分填充了您的数据。

为什么在矩阵变换中使用
alpha
?这在颜色混合中更常见。为什么在矩阵变换中使用
alpha
呢?这在颜色混合中更常见。请参阅my以获得一组现成的linear代数原语。请注意,此库面向C用户,未经优化!此库的主要目的是以易于理解的结构快速插入。对于典型的OpenGL任务,它的速度已经足够快了,但我不会将其用于数值模拟。有关一组现成的线性代数原语。请注意,该库面向C语言读者,没有经过优化!该库的主要目的是以易于理解的结构快速插入。对于典型的OpenGL任务来说,它已经足够快了,但我不会将其用于数值模拟。