Mam dane obrazu i chcę uzyskać pod-obraz tego, aby użyć go jako tekstury OpenGL.SubTexturing openGL
glGenTextures(1, &m_name);
glGetIntegerv(GL_TEXTURE_BINDING_2D, &oldName);
glBindTexture(GL_TEXTURE_2D, m_name);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_width, m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_data);
Jak uzyskać obraz podrzędny tego obrazu załadowanego jako tekstura. Myślę, że ma to coś wspólnego z używaniem glTexSubImage2D, ale nie mam pojęcia, jak go użyć do stworzenia nowej tekstury, którą mogę załadować. Wywołanie:
glTexSubImage2D(GL_TEXTURE_2D, 0, xOffset, yOffset, xWidth, yHeight, GL_RGBA, GL_UNSIGNED_BYTE, m_data);
doe niczego, co widzę, i nazywając glCopyTexSubImage2D zajmuje tylko część mojego bufora ramki. Dzięki
Zasadniczo mam obraz (jako surowe dane) i chcę użyć części tego obrazu jako tekstury. Wiem, jak załadować cały obraz jako teksturę, ale nie wiem, jak go wykorzystać. – DavidG
Plakat odpowiedział na to. Jeśli masz obraz w pamięci, jest on w jakiś sposób zapisany. Jeśli używałeś glTexImage2D (... GL_RGBA, GL_UNSIGNED_BYTE) do załadowania, to jest bajt dla wartości R, G, B i alfa. Obrazy są zapisywane z pikselem (0, 0) rozpoczyna się od pozycji 0. Piksel x w wierszu y rozpoczyna się od obrazu [szerokość * y + x] [0] – mstrobl
ponieważ korzystam z OpenGL ES, w końcu wykonałem pierwszy opcja u, czyli wyodrębnianie podwidoku do nowego bufora. Niestety na urządzeniu to już nie działa, więc mam zamiar przerobić teksturę, tak, że nie muszę rozwiązywać problemu. – DavidG