GLuint ObjectID;
AUX_RGBImageRec *Texture;
Texture=auxDIBImageLoad("Earth.bmp");
glGenTextures(1,&ObjectID);
glBindTexture(GL_TEXTURE_2D,ObjectID);
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
gluBuild2DMipmaps(GL_TEXTURE_2D,4,Texture->sizeX,Texture->sizeY,GL_RGB, GL_UNSIGNED_BYTE,Texture->data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glTexGeni(GL_S,GL_TEXTURE_GEN_MODE,GL_EYE_LINEAR);
glTexGeni(GL_T,GL_TEXTURE_GEN_MODE,GL_EYE_LINEAR);
// запрещаем текстуре размножаться маленькими копиями по объекту
//glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
//glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
//при включении почему-то ничего не отображается...
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,ObjectID);
glTranslated(3,2,0);
glRotated(90,-1,0,0);
GLUquadricObj *quadObj;
quadObj = gluNewQuadric();
glPushMatrix();
gluQuadricTexture(quadObj, GL_TRUE);
gluQuadricDrawStyle(quadObj, GLU_FILL);
gluCylinder(quadObj, 1, 1, 2, 20, 1);
glFlush ();
glDisable(GL_TEXTURE_2D);
gluDeleteQuadric(quadObj);
наложение текстуры на цилиндр
народ хелп плиз...никак не могу наложить текстуру на цилиндр чтобы она нормально отображалась...я хочу чтоб у меня одна картинка была натянута на весь цилиндр...и желательно без натяжки на торцы (т.е основания сверху снизу)...у меня он в упор натягивает 4 картинки на одну сторону ...плиз...
А где ты рисуешь торцы?
"OpenGL Graphics Through Applications" Robert Whitrow. Страница 171 - наложение текстур на простые поверхности
Цитата: wanja
А где ты рисуешь торцы?
а я наверно и не рисую их...сам опен жл никак не может их выставить?
да и вообще как привязать координаты текстуры и координаты цилиндра? если плоский объект там все ясно...а вот объемный...
Цитата: Rusd
"OpenGL Graphics Through Applications" Robert Whitrow. Страница 171 - наложение текстур на простые поверхности
ну да видил я такое...тока опять же там нет привязки к объемной фигуре
Цитата: artemkaint
а я наверно и не рисую их...сам опен жл никак не может их выставить?
да и вообще как привязать координаты текстуры и координаты цилиндра? если плоский объект там все ясно...а вот объемный...
да и вообще как привязать координаты текстуры и координаты цилиндра? если плоский объект там все ясно...а вот объемный...
Quadric-объекты рисуются библиотекой GLU.
Цитата: artemkaint
ну да видил я такое...тока опять же там нет привязки к объемной фигуре
Есть. На координаты S и T обратил внимание?
Попробуй еще добавить:
Код:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN__FILTER, GL_NEAREST),
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
А торцы таки надо рисовать самому. gluDick тебе в руки.
и совсем не сложно! :)