Как связать часть текстуры OpenGL

Я хочу привязать текстуру к кубу (создавая куб с использованием GlutSolidCube, а не glvertex), но вся текстура связана. В файле изображения у меня есть все текстуры вместе (для скорости и потому что учитель просил), и я хочу, чтобы была связана только часть текстуры. Как мне это сделать????

0

Решение

То, что вы хотите сделать, не возможно, потому что glutSolidCube не генерирует текстурные координаты.

Однако вы также заметите, что ответ на этот вопрос означает, что вы можете использовать следующее, чтобы OpenGL генерировал для вас координаты текстуры при вызове glutSolidCube:

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);

Доступна дополнительная информация об использовании автоматической генерации координат текстуры OpenGL. Вот. Тем не менее, я хотел бы отметить, что это, кажется, пришло из дней непосредственного режима OpenGL, который устарел. Кроме того, GLUT больше не поддерживается, но freeglut является.

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

1

Другие решения

Текстуры — это единица связывания текстур. Если вы хотите «вырезать» часть текстуры, вы делаете это, регулируя используемые вами координаты текстуры.

Вместо использования полного диапазона 0..1, используйте меньшие значения, которые соответствуют расположению субтекстуры внутри текстуры.

4

По вопросам рекламы [email protected]