인덱스 된 드로잉을 사용하여 OpenGL에서 드로잉합니다. 그래픽 카드의 정점 &을 보내고 로컬 버퍼를 해제하려고합니다. 꼭지점 버퍼 해제 - 문제가 없지만 인덱스 버퍼를 해제하면 아무 것도 표시되지 않습니다.glBufferData를 호출 한 후 OpenGL 메모리를 열면 데이터가 표시되지 않습니다.
glGenBuffers(1, &m_VBO);
glBindBuffer(GL_ARRAY_BUFFER, m_VBO);
glBufferData(GL_ARRAY_BUFFER, m_Vertices.size()*6*sizeof(float), m_Vertices.data(),GL_STATIC_DRAW);
m_Vertices.clear();
m_Vertices.shrink_to_fit();
glGenBuffers(1, &m_IBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_IBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_TriangleIndeces.size() * sizeof(GLsizei), m_TriangleIndeces.data(), GL_STATIC_DRAW);
// m_TriangleIndeces.clear();
// m_TriangleIndeces.shrink_to_fit();
를하지만 마지막 2 줄을 유엔 - 알아두기 - 아무것도 표시되지 않습니다 :
것은 단순히 퍼팅이 코드는 작동합니다.
또한 첫 번째 렌더링 후에 버퍼를 해제하려고했지만 동일한 현상이 발생했습니다.
일단 OpenGL이 데이터를 버퍼링하면 드라이버 나 그래픽 카드에 로컬 복사본이 남용되지 않아서 당황 스럽습니다.
저는 Windows 10에서 작업하고 있습니다. 장치 관리자는 그 의미가 "AMD radeon (R) M360"과 "Intel HD graphics 520"이라고 말합니다.
m_TriangleIndeces의 정의를 표시 할 수 있습니까? – BDL
아마 당신은 실제 드로잉에 대해 m_IBO를 사용하지 않지만 클라이언트 측 인덱스 배열을 사용합니까? – derhass
색인에 어떤 유형을 사용하고 있습니까? 'GLsizei'는 분명히 무효로 보입니다. 나는 그것이 당신이 묘사하는 문제를 야기한다고 생각하지는 않지만'sizeof (GLsizei) '를 사용하는 것은 틀림 틀림 없다. –