Модераторы: 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   Вверх
Rickert
Дата 1.1.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, и тебя с новым годом!
Надо не "просмотреть", а "изучить" smile 


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


Шустрый
*


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

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



Rickert, это не то что мне нужно, если ты смотрел пример - 
что и как изменить, чтоб прицел(красный) был с альфа каналом?
а пробовал glColor4f(1,1,1,0.1f); но никакой разницы  smile 
PM WWW MSN   Вверх
Rickert
Дата 4.1.2007, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, Ты не читал комментарии к коду, который там есть. Там всё рассказывается. Там сначала накладывается маска прозрачности, а потом накладывается текстура.


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


Шустрый
*


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

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



Rickert, я читал, но мне не нужна маска прозрачности. у меня все время будет менятся прозрачность.
а маской это сделать невозможно.

Это сообщение отредактировал(а) rubenhak - 5.1.2007, 16:15
PM WWW MSN   Вверх
Rickert
Дата 5.1.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



rubenhak, на самом деле можно и очень просто smile
Маска - это что? Это текстура со значениями прозрачности.
Берём делаем тестуру всю цветом, например, (127; 127; 127) - вот тебе полупрозрачная маска для твоей текстуры и будет тот эффект, которого ты хочешь добиться.


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


Шустрый
*


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

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



Rickert, давай поконкретнее, тоесть этот код будет менять альфу?

Код

glActivateTextureARB(Gl_TEXTURE_0);
glColor(alpha,alpha,alpha);

glActivateTextureARB(Gl_TEXTURE_1);
glBindTexture(Texture1Handle);

// Draw ...

alpha++
if (alpha > 255)
  alpha = 0;

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


Новичок



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

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



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

А ты не можешь слить эти исходники куда-нибудь, или мне на мейл - [email protected].
Буду очень благодарен.
PM MAIL   Вверх
Rickert
Дата 11.1.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



kseLLor, странный ты какой-то smile Там же прямо в посте указана ссылка на архив - внём исходники smile


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


Новичок



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

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



Цитата(Rickert @ 11.1.2007,  20:56)
kseLLor, странный ты какой-то smile Там же прямо в посте указана ссылка на архив - внём исходники smile

По ссылке только 3 примера, а этого маловато будет.
PM MAIL   Вверх
rubenhak
Дата 16.1.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



RickertkseLLor,  люди, этот пример вовсе не нужен. 
нужно просто поставить прозрачность на вторую текстуру, и восможность 
все время менять прозрачность. вы когда то Quake 3 играли, вспомните
эффект "пружинки"
PM WWW MSN   Вверх
rubenhak
Дата 28.1.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Люди, никак не получается, может поможете чем-то....
PM WWW MSN   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

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

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


 




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


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

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