Отображение текстур C ++ OpenGL - PullRequest
5 голосов
/ 27 ноября 2010

Я читал об этом, включая Нехе и здесь, для решений, но я не могу найти конкретный ответ.

Я пытаюсь загрузить фотографию с именем stars.jpg. Я хочу сделать это моим фоном сцены, сопоставляя его с помощью ультрафиолетовых координат, делая это с помощью

glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(0,0);

Однако я просто очень озадачен тем, как загрузить фактические текстуры, все вызовы для

glActiveTexture();
glEnable(GL_TEXTURE_2d);
glBindTexture(GL_TEXTURE);

Все, что они делают, это смущают меня, что все это значит / делает, и в каком порядке я положу их, чтобы сделать мой фон stars.jpg моим фоном?

Ответы [ 2 ]

4 голосов
/ 27 ноября 2010

Ваш инструмент номер один для загрузки текстур в OpenGL - библиотека Simple OpenGL Image Loader (SOIL) . Вам просто нужно передать имя файла и некоторые флаги, и вы получите свой идентификатор текстуры.

Кроме того, вы сейчас изучаете очень старую и устаревшую версию OpenGL - возможно, вы захотите использовать Google для новых учебников или просмотреть спецификации , когда вы будете готовы.

3 голосов
/ 27 ноября 2010

Вот пошаговое руководство по загрузке текстур
http://www.nullterminator.net/gltexture.html

Важно помнить, что OpenGL является конечным автоматом, поэтому вы должны сказать ему: «Я собираюсьТеперь поговорим о текстурах ", вот тут-то и приходит glActiveTexture();.

Также имейте в виду, что вам придется загружать пиксель за пикселем цвета из вашего .jpg (сжатого) в массив текстур, так что либовам нужно будет найти библиотеку, которая выдаст вам растровые значения вашего файла .jpg, или вам нужно будет предварительно преобразовать его в .ppm или .bmp, что облегчит чтение значений.

...