Я хочу привязать текстуру к кубу (создавая куб с использованием GlutSolidCube, а не glvertex), но вся текстура связана. В файле изображения у меня есть все текстуры вместе (для скорости и потому что учитель просил), и я хочу, чтобы была связана только часть текстуры. Как мне это сделать????
То, что вы хотите сделать, не возможно, потому что glutSolidCube
не генерирует текстурные координаты.
Однако вы также заметите, что ответ на этот вопрос означает, что вы можете использовать следующее, чтобы OpenGL генерировал для вас координаты текстуры при вызове glutSolidCube
:
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
Доступна дополнительная информация об использовании автоматической генерации координат текстуры OpenGL. Вот. Тем не менее, я хотел бы отметить, что это, кажется, пришло из дней непосредственного режима OpenGL, который устарел. Кроме того, GLUT больше не поддерживается, но freeglut является.
Подводя итог, вам лучше использовать glVertex
звонки и указание ваших собственных конкретных текстурных координат, как предложили раскрутить. Вы можете попробовать генерацию координат текстуры OpenGL, но она может быть слишком строгой, чтобы обрабатывать то, что вам нужно.
Текстуры — это единица связывания текстур. Если вы хотите «вырезать» часть текстуры, вы делаете это, регулируя используемые вами координаты текстуры.
Вместо использования полного диапазона 0..1, используйте меньшие значения, которые соответствуют расположению субтекстуры внутри текстуры.