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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формула для наложения маски текстуры, кто шарит в 
:(
    Опции темы
Maksitron
Дата 5.7.2009, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2009

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



Ct1 - 1 текстура 
Ct2 - 2 текстура 
Сt3 - маска для этих двух текстур ( черно белая текстура с градацией серого) 
Нужно чтоб на белых областях маски - отображалась 1 текстура а на черных - 2 текстура. 
Не подскажите формулу?  (используя дополнение  GL_ARB_texture_env_combine)

Вот что мне написали на другом форуме:
> Не подскажите формулу? 
a=Ct1 
b=Ct2 
m=Сt3 
r=a*m+b*(1-m) 
> (используя дополнение GL_ARB_texture_env_combine) 
INTERPOLATE_ARB.

В итоге я написал вот этот код. Но у меня почему то выводится не то что хотелось бы (см выше). - не подскажите в чем тут ошибка?
Код

 LoadTexture ('Grass_001_512.tga',    Tex_1, FALSE);
    LoadTexture ('Ground_001_512.tga', Tex_2, FALSE);
    LoadTexture ('Earth_mult.tga',           Tex_3, FALSE);

  glPushMatrix;

                        // для Arg0
    glActiveTextureARB ( GL_TEXTURE0_ARB );
    glEnable           ( GL_TEXTURE_2D );
    glBindTexture      ( GL_TEXTURE_2D, Tex_1 );
    glTexEnvi          ( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );

                        // для Arg1
    glActiveTextureARB ( GL_TEXTURE1_ARB );
    glEnable           ( GL_TEXTURE_2D );
    glBindTexture      ( GL_TEXTURE_2D, Tex_2 );

                        // для Arg2
    glActiveTextureARB ( GL_TEXTURE2_ARB );
    glEnable           ( GL_TEXTURE_2D );
    glBindTexture      ( GL_TEXTURE_2D, Tex_3 );

                        // ставим combine mode
    glTexEnvi          ( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,  GL_COMBINE_ARB );
    glTexEnvi          ( GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB,   GL_INTERPOLATE_ARB );

                      // ставим Arg0
    glTexEnvi ( GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB,    GL_PREVIOUS_ARB );
    glTexEnvi ( GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB,   GL_SRC_COLOR    );

                      // ставим Arg1
    glTexEnvi ( GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB,    GL_TEXTURE   );
    glTexEnvi ( GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB,   GL_SRC_COLOR );

                      // ставим Arg2 (маска)
    glTexEnvi ( GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB,    GL_TEXTURE );
    glTexEnvi ( GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB,   GL_SRC_COLOR    );

  glBegin(GL_QUADS);
    glVertex3f(-5, -5, -0.5);
    glTexCoord2f(0,0);
    glVertex3f(-5,  5, -0.5);
    glTexCoord2f(1,0);
    glVertex3f( 5,  5, -0.5);
    glTexCoord2f(1,1);
    glVertex3f( 5, -5, -0.5);
    glTexCoord2f(0,1);
  glEnd;
  glDisable           ( GL_TEXTURE_2D );
  glPopMatrix;



Добавлено через 1 минуту и 46 секунд
'Grass_001_512.tga' - текстурка травы

'Ground_001_512.tga' - текстурка земли

'Earth_mult.tga' - текстурка маски для них.


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

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

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

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

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


 




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


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

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