0
私はOpenGLを使用していますが、現在は頂点配列を渡しています。 私は頂点配列openGLとベクトル
GLfloat vertices[] = {
0.500000000f, 0.500000000f, 0.500000000f, 1.00000000f, 0.000000000f, 0.000000000f,
0.500000000f, -0.500000000f, 0.500000000f, 1.00000000f, 0.000000000f, 0.000000000f,
0.500000000f, 0.500000000f, -0.500000000f, 1.00000000f, 0.000000000f, 0.000000000f};
ような配列でOpenGLを渡すとき、それが正常に実行される問題である私は、
std::vector<GLfloat> vertices = {
0.500000000f, 0.500000000f, 0.500000000f, 1.00000000f, 0.000000000f, 0.000000000f,
0.500000000f, -0.500000000f, 0.500000000f, 1.00000000f, 0.000000000f, 0.000000000f,
0.500000000f, 0.500000000f, -0.500000000f, 1.00000000f, 0.000000000f, 0.000000000f};
のような配列の代わりにベクトルでそれを渡すときに、私に」私の窓の三角形を見ない。
私のコードはほとんどこの https://learnopengl.com/code_viewer.php?code=getting-started/coordinate_systems_with_depth
のようなもので、私は
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices[0], GL_STATIC_DRAW);
に
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
この行を変更し、私は
// Position attribute
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)0);
glEnableVertexAttribArray(0);
// TexCoord attribute
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)(3 * sizeof(GLfloat)));
glEnableVertexAttribArray(2);
これらの行を変更10
に
// Position attribute
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(GLfloat), (GLvoid*)0);
glEnableVertexAttribArray(0);
// NormalVector attribute
glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(GLfloat), (GLvoid*)(3 * sizeof(GLfloat)));
glEnableVertexAttribArray(3);
私は何か他のことをするために通常のベクトル情報が必要なためです。
誰かがstd :: vectorを正しく使用する方法を知っていますか?
ありがとうございました。