Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Эффект Bump в OpenGL, Как? 
V
    Опции темы
Graf_h
Дата 31.10.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: 3
Всего: 5



Здраствуйте! Как сделать ефект bump в OpenGl?


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
arilou
Дата 31.10.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61





--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Graf_h
Дата 31.10.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: 3
Всего: 5



Спасибо arilou, я это видел!!С английским не очень!!! Нада переводить, а времени нету!!!Может по руски? 


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
ShellRaiser
Дата 31.10.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


еще чуть и закоммичу
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 20.7.2007
Где: Белaрусь, Гродно

Репутация: 1
Всего: 1



PM MAIL ICQ Skype   Вверх
Graf_h
Дата 31.10.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: 3
Всего: 5



Цитата(ShellRaiser @  31.10.2007,  13:37 Найти цитируемый пост)
трымай;)

Огромное спасибо!!! Как раз т о что мне нужно!!!! smile 



--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
Graf_h
Дата 1.11.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: 3
Всего: 5



Здраствуйте!!! Вчера поднимал етот вопрос, мне надавали кучу ссилок!!! Посмотрел почитал, думал что все сделаю!!! Начал делать зашел в тупик!! Такая ситуация: есть две текстури - одна основная, другая черно - белая (карта высот)! Надо сделать ефект Bump. Счего начать? Как ето сделать? вичислять каждый раз при повороте обьекта или загрузить две текстуры, просчитать и наложить!!! Вообщем буду рад всем советам и примерам!! Помогите  smile !!!Завтра надо сдавать,я все сделал кроме етого ефекта!!!! 


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
Rickert
Дата 2.11.2007, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



Тебе нужна карта нормалей, а не карта высот.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Graf_h
Дата 2.11.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: 3
Всего: 5



Cпасибо всем,кто помогал!!! Все сегодня здаю задание, тему закрываю!!! smile 

Это сообщение отредактировал(а) Graf_h - 2.11.2007, 10:33


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
Rickert
Дата 2.11.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



Так в чём маза-то была?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Graf_h
Дата 2.11.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: 3
Всего: 5



Как реализовать самый простой DOT3 bumpmapping? 
Самый простой вариант это при помощи двух текстур (diffuse и normal map's) 

Первое. Нужно эти текстуры заготовить. Можно воспользоваться утилитой TGAtoDOT3 из RadeonSDK: 
Далее зарузив текстуры нужно настроить их вывод 
(нам также потребуется расширение GL_ARB_multitexture - его поддерживают все карты начиная с RIVA TNT и 
ещё ARB_texture_env_combine, которе поддерживают карты начиная с GeForce 256): 


  
Код

  glPushAttrib(GL_TEXTURE_BIT); // запомним состояние текстурных настроек
    glActiveTextureARB(GL_TEXTURE0_ARB); // сделаем активной первую текстуру
    glEnable(GL_TEXTURE_2D); // включим режим наложения для первой текстуры
    glBindTexture(GL_TEXTURE_2D, normalObj);// "наложим текстуру"

    // нормаль будет умножена на вектор источника света
    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
    glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_DOT3_RGB_ARB);

    glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PRIMARY_COLOR_ARB);
    glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);

    glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
    glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);

    glActiveTextureARB(GL_TEXTURE1_ARB);// сделаем активной вторую текстуру
    glEnable(GL_TEXTURE_2D);// включим режим наложения для второй текстуры
    glBindTexture(GL_TEXTURE_2D, tank2_tex);// "наложим текстуру"

    // диффузная текстура будет умножена на предыдущий результат
    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
    glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);

    glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB);
    glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);

    glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
    glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);


    //здесь следует просто наложить две текстуры на полигон используя мощь расширения GL_ARB_multitexture ;-)
    //например так
    glBegin(GL_TRIANGLES);
    glNormal3fv(@SmoothNormals[Face[0]]);
          glMultiTexCoord2fARB(GL_TEXTURE0_ARB, TexVertex.x,TexVertex.y);
          glMultiTexCoord2fARB(GL_TEXTURE1_ARB, TexVertex.x,TexVertex.y);
    glVertex3fv(@Vertices[Face[0]]);

    glNormal3fv(@SmoothNormals[Face[1]]);
          glMultiTexCoord2fARB(GL_TEXTURE0_ARB, TexVertex.x,TexVertex.y);
          glMultiTexCoord2fARB(GL_TEXTURE1_ARB, TexVertex.x,TexVertex.y);
    glVertex3fv(@Vertices[Face[1]]);

    glNormal3fv(@SmoothNormals[Face[2]]);
          glMultiTexCoord2fARB(GL_TEXTURE0_ARB, TexVertex.x,TexVertex.y);
          glMultiTexCoord2fARB(GL_TEXTURE1_ARB, TexVertex.x,TexVertex.y);

    glVertex3fv(@Vertices[Face[2]]);

    glEnd;


    glActiveTextureARB(GL_TEXTURE0_ARB);//деактивируем первую текстуру
    glBindTexture(GL_TEXTURE_2D, 0);// отключим "наложение" первой текстуры
    glActiveTextureARB(GL_TEXTURE1_ARB);//деактивируем вторую текстуру
    glBindTexture(GL_TEXTURE_2D, 0); //отключим "наложение" второй текстуры
    glPopAttrib();// восстановим состояние текстурных настроек

 

Вот в кратце так реализуется DOT3 %-) 


M
arilou
в следующий раз воспользуйтесь тэгом code


Это сообщение отредактировал(а) arilou - 2.11.2007, 17:36


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.