Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Наложение текстур

71K
01 июня 2011 года
nitrogen
1 / / 01.06.2011
Доброго времени суток! Есть задание:

Требуется разработать программу, генерирующую трехмерное изображение «комнаты» с отсутствующей передней стенкой (пол, потолок, левая, задняя, правая стены);
В комнате присутствует искусственное освещение в виде одного направленного источника света с возможностью изменения цвета и угла луча. Дополнительно требуется установить фоновое освещение (ambient). Местоположение источника света должно меняться, изменения могут происходить в автоматическом режиме или при помощи интерфейса.
Внутри комнаты находится заданный набор предметов с определенными свойствами. Предметы должны быть текстурированы.
Обязательным является отображение теней, отбрасываемых предметами (как минимум - на «пол»). Тени можно реализовать при помощи буфера трафарета (StencilBufer) или другим способом.
Камера должна быть расположена так, чтобы была видна вся комната.

Предметы: октаэдр, куб, тор.
В аттаче проект.

Проблема в наложении текстур. Накладывается только последняя текстура на все объекты сразу.
Помогите, пожалуйста, разобраться в чем дело...

З.Ы. Visual Studio 2008

ссылка для скачивания проекта http://ifolder.ru/23891320
360
01 июня 2011 года
P*t*
474 / / 15.02.2007
Мне лень скачивать и изучать весь проект, лучше отдельно покажите фрагменты кода для инициализации текстур и для их использования.
277
01 июня 2011 года
arrjj
1.7K / / 26.01.2011
Потомучто вот это:
Код:
glBindTexture(GL_TEXTURE_2D, texture[1]);
    glBegin(GL_QUADS);
    glTexCoord2f(0.0f, 0.0f); glVertex3f(-2.0, -2.0,-2.0);
    glTexCoord2f(1.0f, 0.0f); glVertex3f(2.0, -2.0, -2.0);
    glTexCoord2f(1.0f, 1.0f); glVertex3f(-2.0, -2.0, 2.0);
    glTexCoord2f(0.0f, 1.0f); glVertex3f(2.0, -2.0, 2.0);
    glEnd();

    glBindTexture(GL_TEXTURE_2D, texture[2]);
    glBegin(GL_QUADS);
    glTexCoord2f(0.0f, 0.0f); glVertex3f(-2.0, 2.0,-2.0);
    glTexCoord2f(1.0f, 0.0f); glVertex3f(2.0, 2.0, -2.0);
    glTexCoord2f(1.0f, 1.0f); glVertex3f(-2.0, 2.0, 2.0);
    glTexCoord2f(0.0f, 1.0f); glVertex3f(2.0, 2.0, 2.0);
    glEnd();
   
    glBindTexture(GL_TEXTURE_2D, texture[2]);
    DrawRectX( -2.0, -2.0, 2.0, 2.0, -2.0);
    DrawRectX( -2.0, -2.0, 2.0, 2.0, 2.0);
   
    glBindTexture(GL_TEXTURE_2D, texture[2]);
    DrawRectZ( -2.0, -2.0, 2.0, 2.0, -2.0);

Нужно вынести в display. Почему - читаем в мане
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог