http://ogldev.atspace.co.uk에서 튜토리얼을 사용하여 Python 3에서 PyOpenGL로 작업하면서 '현대'OpenGL을 이해하고 this을 참조하려고합니다.PyOpenGL : 버텍스 버퍼 객체의 내용이 무시되었습니다
지금은 화면의 여러 위치에서 하나의 점을 그리려하고 있지만 VBO에 넣은 데이터에 관계없이 화면 중앙에 항상 점이 그려집니다.
비슷한 모양의 this question이 발견되었지만 rewind() 함수는 LWJGL과 유사하므로 여기에 해당하지 않는다고 생각합니다.
import sdl2
import numpy
from OpenGL import GL
def _init_gl(self):
self._gl_context = sdl2.SDL_GL_CreateContext(self._window.window)
GL.glClearColor(0, 0, 0, 1)
self._vao = GL.glGenVertexArrays(1)
GL.glBindVertexArray(self._vao)
self._vbo = GL.glGenBuffers(1)
GL.glBindBuffer(GL.GL_ARRAY_BUFFER, self._vbo)
vertexData = numpy.array([0.5, 0.5, 0.0], dtype=numpy.float32)
GL.glBufferData(GL.GL_ARRAY_BUFFER, vertexData.nbytes, vertexData,
GL.GL_STATIC_DRAW)
GL.glEnableVertexAttribArray(0);
GL.glVertexAttribPointer(0, 3, GL.GL_FLOAT, GL.GL_FALSE, 0, None)
def _draw(self):
GL.glClear(GL.GL_STENCIL_BUFFER_BIT |
GL.GL_DEPTH_BUFFER_BIT |
GL.GL_COLOR_BUFFER_BIT)
GL.glBindVertexArray(self._vao)
GL.glDrawArrays(GL.GL_POINTS, 0, 1)
sdl2.SDL_GL_SwapWindow(self._window.window)
사람이 잘못 갈 수있는 것을 발견 할 수 다음과 같이
내 코드의 관련 비트는? 당신은 일반적인 정점을 사용하고
glEnableClientState에서 "잘못된 연산"오류가 발생하여 다른 방법을 사용하고 작은 쉐이더를 추가하면 문제가 제대로 발생합니다. 감사합니다! – Juzley
사용중인 도구로 어떤 종류의 컨텍스트를 만들지 확실하지 않습니다. 이전 프로파일을 사용할 수 없으며 쉐이더가 필요한 핵심 프로파일 컨텍스트를 얻었을 수 있습니다. 그러나 이것은 당신이 어쨌든 가고 싶었던 방향으로 당신을 이끌고 있습니다, 그래서 그것은 좋은 것입니다. –