Próbuję napisać moduł w Pythonie, który narysuje numpy tablicy kolorów danych (rgb) na ekranie. W tej chwili jestem obecnie stosując 3-wymiarową tablicę kolorów tak:bufor bufora dynamicznego odczytany z tablicy numpy
numpy.ones((10,10,3),dtype=np.float32,order='F') # (for 10x10 pure white tiles)
wiążący go do bufora i za pomocą glVertexAttribArray
do transmisji danych do tablicy płytek (duszków punktowych) (w tym przypadku 10x10 tablica) i działa dobrze dla statycznego obrazu.
Ale chcę mieć możliwość zmiany danych w tablicy i mieć bufor odzwierciedlający tę zmianę bez konieczności odbudowywania go od nowa.
Obecnie mam wbudowany bufor z:
glBufferData(GL_ARRAY_BUFFER, buffer_data.nbytes, buffer_data, GL_DYNAMIC_DRAW)
gdzie buffer_data jest numpy tablicy. Co (jeśli cokolwiek) mógłbym przekazać zamiast tego (może jakiś wskaźnik w pamięci?)
Być może buffer_data.ctypes.data? Jestem też ciekawy; daj nam znać, jeśli to zrozumiesz. – Luke
Poszedłem trochę dalej, próbując teraz użyć funkcji glMap/UnmapBuffer. Mogę z powodzeniem odczytać zawartość bufora do tablicy przy użyciu ctypes i numpy.frombuffer, ale nawet z flagą GL_READ_WRITE w glMapBuffer nie mogę pisać do tej tablicy (nie mogę nawet ustawić flagi zapisu na True!). Więc nie jestem pewien, co się tam dzieje ... (Używam kodu odwzorowania z modułu vbo) – user1483596