OpenGL 정점 버퍼가 Go에서 삼각형을 표시하지 못함
Go에서 OpenGL을 사용하여 간단한 삼각형을 만드는 방법에 대한 튜토리얼을 복제하려는 시도에서, 개인은 정점 버퍼를 사용하여 모양을 표시하는 데 어려움을 겪었습니다. 창이 열리고 배경이 파란색으로 변하는 동안 삼각형은 보이지 않은 채로 남아 있습니다.
제공된 코드 조각에는 정점 버퍼를 생성한 다음 glDrawArrays를 사용하여 삼각형을 그리는 작업이 포함됩니다. 그러나 작동하는 코드의 c 버전에서 AttribPointer 함수는 배열 버퍼 오프셋을 지정하기 위해 매개변수(void*)0을 사용하는 반면, Go 버전에서는 제공된 오프셋 인수가 애플리케이션을 충돌시키고 nil은 그렇지 않습니다. 둘 중 하나도 작동하지 않는 것 같습니다.
banthar 바인딩의 작업 분기를 사용하고 AttribPointer 및 BufferData에 대한 호출을 다음과 같이 변경하는 업데이트된 솔루션이 있습니다.
<code class="go">vertexAttrib.AttribPointer( 3, // size gl.FLOAT, //type false, // normalized? 0, // stride nil) // array buffer offset data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0} [...] gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)</code>
크기를 바이트 단위로 전달하여 BufferData를 실행하고 AttribPointer에서 배열 버퍼 오프셋을 nil로 설정하면 문제가 해결되어 삼각형이 성공적으로 표시되었습니다.
위 내용은 My Go OpenGL 삼각형이 계속 보이지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!