1

私は OpenGL ES 2.0 でアプリを作成しており、2D 投影マトリックスを設定して、画面の縦横比によって引き起こされる伸縮と歪みを整理したいと考えています。関数を使用して、必要な値を持つマトリックスを作成しました。関数の結果は 4x4 マトリックスで、頂点シェーダーにアップロードされます。GLfloat (*)[4]' toプログラムを実行すると、「 GLfloatを変換できません」というビルド エラーが表示されます。私は C++ の知識が限られており、これを修正する方法がわかりません。以下は、私が呼び出す関数のコードです。

GLfloat ortho_matrix(float left, float right, float bottom, float top, float near,
float  far)
{
GLfloat result[4][4];

result[0][0] = 2.0 / (right - left);
result[1][0] = 0.0;
result[2][0] = 0.0;
result[3][0] = 0.0;

//Second Column
result[0][1] = 0.0;
result[1][1] = 2.0 / (top - bottom);
result[2][1] = 0.0;
result[3][1] = 0.0;

//Third Column
result[0][2] = 0.0;
result[1][2] = 0.0;
result[2][2] = -2.0 / (far - near);
result[3][2] = 0.0;

//Fourth Column
result[0][3] = -(right + left) / (right - left);
result[1][3] = -(top + bottom) / (top - bottom);
result[2][3] = -(far + near) / (far - near);
result[3][3] = 1;

return result;
}
4

2 に答える 2

1

2D 配列を返す必要がある関数から単一の float を返そうとしています。関数を次のように宣言します。

void ortho_matrix(float left, float right, float bottom, float top, float near,
float  far, GLfloat result[4][4])
于 2013-07-22T11:20:38.727 に答える