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);
,536,913,632 변경
// 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);
에 10
나는 다른 뭔가를 할 수있는 법선 벡터 정보가 필요하기 때문이다.
누군가 std :: vector를 올바르게 사용하는 방법을 알고 있습니까?
감사합니다.