화면에 색상 데이터 (rgb)의 numpy 배열을 그리는 python 모듈을 작성하려고합니다. 순간 I는 현재 다음과 같이 3 차원 컬러 배열을 사용하고 :pyopengl 버퍼 numpy 배열에서 동적 읽기
numpy.ones((10,10,3),dtype=np.float32,order='F') # (for 10x10 pure white tiles)
버퍼에 결합하고 (이 경우 타일 (포인트 스프라이트) 배열로 데이터를 방송하는 10 ×을 glVertexAttribArray
를 사용 배열) 및 정적 이미지를 잘 작동합니다.
하지만 배열의 데이터를 변경하고 버퍼를 처음부터 다시 만들 필요없이이 변경 사항을 반영 할 수 있기를 원합니다. buffer_data이 NumPy와 배열입니다
glBufferData(GL_ARRAY_BUFFER, buffer_data.nbytes, buffer_data, GL_DYNAMIC_DRAW)
:
는 현재 내가 가진 버퍼를 구축했습니다. 어떤 경우 (무엇이라도) 대신 전달할 수 있습니까? (일부 포인터는 아마도 메모리에 있습니까?)
아마도 buffer_data.ctypes.data? 나도 궁금해. 알아 내면 알려주세요. – Luke
지금 glMap/UnmapBuffer를 사용하려고 조금 해 봤습니다. 성공적으로 버퍼 내용을 ctypes 및 numpy.frombuffer를 사용하여 배열로 읽을 수 있지만 glMapBuffer의 GL_READ_WRITE 플래그로도이 배열에 쓸 수 없습니다 (쓰기 가능 플래그를 True로 설정할 수 없습니다). 그래서 거기에 무슨 일이 일어나고 있는지 확실하지 않습니다 ... (나는 vbo 모듈에서 매핑 코드를 사용하고 있습니다) – user1483596