2014-01-25 4 views
1

현재 폴리곤 모드 LINES로 선을 그리려하고 있습니다. 나는 즉시 모드로 이것을 sucsessfully 여러 번 할 수있었습니다. 하지만 지금은 VBO를 사용하여이 작업을 수행하려고 시도하고 있으며 그 이유를 파악할 수 없습니다.VBO 및 PolygonMode lines

다음은 코드 샘플입니다. 모든 오프셋, 블렌딩 및 색상 메서드는 잘 작동하지만 glDrawArays에서 GL_LINES를 수행하지 않으면 선이 그려지지 않습니다.

glPolygonMode(GL_FRONT_AND_BACK, GL_LINES); 
glLineWidth(3.0f); 
glColor4f(0.0f, 0.0f, 0.0f, 0.5f); 

glEnable(GL_POLYGON_OFFSET_LINE); 
glPolygonOffset (-5.8f, -1.0f); 

glEnable (GL_BLEND); 
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 


glEnableClientState(GL_VERTEX_ARRAY); 

glBindBufferARB(GL_ARRAY_BUFFER_ARB, vHandle); 
glBufferDataARB(GL_ARRAY_BUFFER_ARB, vBuffer, GL_STATIC_DRAW_ARB); 
glVertexPointer(3, GL_FLOAT, 3 << 2, 0L); 

glDrawArrays(GL_TRIANGLES, 0, count /* elements */); 
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); 

glDisableClientState(GL_VERTEX_ARRAY); 
glDisable(GL_POLYGON_OFFSET_LINE); 
+2

gl 오류를 확인 했습니까? 당신은 잘못된 열거 형을 사용하고 있습니다 : GL_LINE 대신 GL_LINE –

+0

대단히 감사합니다! 나는 그것이 매우 단순한 무언가가되는 것을 기쁘게 생각한다. 나는 항상 GL_LINES를 사용할 때와 GL_LINE을 사용할 때에 대해 매우 혼란스러워한다. 그 차이점은 무엇입니까? 편집 : 당신은 '오류 확인'에 의해 무엇을 의미합니까? 디버거 같은 거요? –

+0

내 대답을 확인하십시오 –

답변

4

GL_LINE 대신 GL_LINES를 사용하고있었습니다. 어떤 열거 형을 사용해야하는지 확실하지 않으면 설명서를 확인하면 가능한 값의 목록이 표시됩니다. 앱을 디버깅하는 데 도움이 필요하면 모든 OpenGL 호출 후에 glGetError (http://www.opengl.org/sdk/docs/man/xhtml/glGetError.xml)를 호출하면 에러가 발생한 곳의 기능을 볼 수 있습니다. 그런 다음 Google로 바로 호출 할 수 있습니다.