Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прозрачность и мультитекстуринг в OpenGL 
:(
    Опции темы
rubenhak
  Дата 15.12.2006, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



рисую 2 текстуры , одна сплошная, а вторая с альфа каналом : 

Код

glActivateTextureARB(GL_TEXTURE_0ARB);
glBindTexture(textureHandle0);
glTexEnvi( ..... , GL_REPLACE);

glActivateTextureARB(GL_TEXTURE_1ARB);
glBindTexture(textureHandle1);
glTexEnvi( ..... , GL_DECAL);

// ..... а потом уже обект.



тут все нормально , поверх одной текстуры налаживается вторая с "альфа дырками" smile

вопрос в следующем, как сделать , чтоб вторая текстура была с параметром прозрачности.
просмотрите пожалуста картинку.

user posted image

Заранее спасибо
PM WWW MSN   Вверх
Rickert
Дата 15.12.2006, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, Интересный вопрос smile
Пробовал использовать glColo4ub()? С четырьмя параметрами.


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


Шустрый
*


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

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



Rickert, а что она делает, и в которой части вызывать эту функцию, и с какими параметрами?  smile 
PM WWW MSN   Вверх
rubenhak
Дата 18.12.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



люди, ну помогите кто-то , у меня тут кошмар какой-то творится....  smile 
PM WWW MSN   Вверх
Rickert
Дата 19.12.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, вызывать перед выводом гемотреии. Он указывает как раз яркость слоя.


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


Шустрый
*


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

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



Rickert, а тогда у меня разве не оба слоя станут прозрачными?
PM WWW MSN   Вверх
Rickert
Дата 23.12.2006, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, ну, ты же оключаешь смешивание перед выводом второго? smile
И указывай для него четвёртый параметр = 255


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


Шустрый
*


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

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



Rickert

тоесть надо так да?

Код

glColor4ub(255,255,255,255);
glActivateTextureARB(GL_TEXTURE_0ARB);
glBindTexture(textureHandle0);
glTexEnvi( ..... , GL_REPLACE);

glColor4ub(255,255,255,128);
glActivateTextureARB(GL_TEXTURE_1ARB);
glBindTexture(textureHandle1);
glTexEnvi( ..... , GL_DECAL);

PM WWW MSN   Вверх
Rickert
Дата 26.12.2006, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Примерно. Что получилось?


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


Шустрый
*


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

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



смотри, делаю так

Код

glActivateTextureARB(GL_TEXTURE_0ARB);
glBindTexture(textureHandle0);
glTexEnvi( ..... , GL_REPLACE);
glDisableGL_BLEND);


glActivateTextureARB(GL_TEXTURE_1ARB);
glBindTexture(textureHandle1);
glTexEnvi( ..... , GL_DECAL);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE );
glColor4ub(255,255,255,128);


у меня все слоя становятся прозрачными, и что самое интересное то, что даже когда 
вызываю glColor4ub(255,255,255,255); вместо glColor4ub(255,255,255,128);
прозрачность не исчезает....
PM WWW MSN   Вверх
Rickert
Дата 26.12.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, правильно так и должно быть. Чтобы прозрачность не распространялась на остальные - надо отключать смешивание перед тем, как выводить непрозрачные слои. Но при этом надо фильтровать будет: сначала выводить все прозрачные слои(объекты), а потом - непрозрачные. Инчае будет глюк.

Я, честно говоря, делал через маску отображения прозрачность ;)


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


Шустрый
*


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

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



Rickert, ты наверное о GL_DEPTH_TEST-е да говориш?
мне это помоему не надо, ведь обьект один, просто на нем несколько текстур.

а как смешивание отключить? и почему при значнии alpha = 255 всетаки у меня
получается прозрачная картинка?

PM WWW MSN   Вверх
rubenhak
Дата 30.12.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Rickert, у тебя нет никаких идей, или подкинь документацию какую-то....
PM WWW MSN   Вверх
Rickert
Дата 30.12.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, вот короче исходник одного из уроков с gametutorials.com. Этот сайт раньше бесплатным был, так мой братишка оттуда все уроки тогда слил. Комментариев более чем достаточно чтобы разбраться. Будут вопросы - пиши.
http://rickert.nm.ru/tmp/mask.rar


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


Шустрый
*


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

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



Rickert, просмотрю , большое спасибо,


!!! С НОВЫМ ГОДОМ !!!
PM WWW MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




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


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

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