Показать сообщение отдельно
Старый 15.05.2013, 21:59   #7
lovepsone
Ученый
 
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
lovepsone Хрен знает что...lovepsone Хрен знает что...
По умолчанию

Текстуру удалось наложить, но есть некоторые проблемы!
Я поворачиваю камеру на 90 градусов( Что бы модель стояла правильно по координатам х,у.z, т.е стояла ровно)! При таком раскладе я налаживаю текстуру и... Текстура ложится прямо а не по вершинам указанных в 3ds файле! Далее пришлось посчитать вершины текстуры, в итоге по коду вышло так:
Код:
glBindTexture(GL_TEXTURE_2D, Texture);
glBegin(GL_TRIANGLES);
glNormal3fv(f->normal);
for (int i=0; i<3; ++i)
{
     glNormal3fv(normalL[3*p+i]);

     glTexCoord2f(mesh->texelL[f->points[i]][1]*scale_x, scale_y - mesh->texelL[f->points[i]][0]*scale_y);
     glVertex3fv(mesh->pointL[f->points[i]].pos);
}
glEnd();
И что вы думаете? Не получилось... Далее я полез в фотошоп и повернул текстуру на 90 градусов по часовой... Все ок! Текстура легла как надо!!!
Меня это не устроило и попробовал поворачивать текстуру перед наложением на модель(в самом коде). Сделал так:
Код:
QImage Viewer::loadBMP(QString NameBMP)
{
    QImage img(NameBMP);
	
    if (img.isNull())
    {
        qWarning("Unable to load file[bmp]");
        return img;
    }

    QMatrix matr;
    matr = matr.rotate(90);
    QTransform trans(matr);
    img.transformed(trans); // переменная img типа QImage, в которой помещена текстура формата .bmp

    return QGLWidget::convertToGLFormat(img);  // flipped 32bit RGBA

}
Но текстура так и не повернулась... Код в первом посте обновлен!
__________________
sql-language.ru

Последний раз редактировалось lovepsone; 15.05.2013 в 22:09.
lovepsone вне форума   Ответить с цитированием