| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Прозрачность и мультитекстуринг в OpenGL |
| Автор: rubenhak 15.12.2006, 01:33 | ||
рисую 2 текстуры , одна сплошная, а вторая с альфа каналом :
тут все нормально , поверх одной текстуры налаживается вторая с "альфа дырками" вопрос в следующем, как сделать , чтоб вторая текстура была с параметром прозрачности. просмотрите пожалуста картинку. ![]() Заранее спасибо |
| Автор: Rickert 15.12.2006, 05:21 |
| rubenhak, Интересный вопрос Пробовал использовать glColo4ub()? С четырьмя параметрами. |
| Автор: rubenhak 15.12.2006, 15:29 |
| Rickert, а что она делает, и в которой части вызывать эту функцию, и с какими параметрами? |
| Автор: rubenhak 18.12.2006, 15:54 |
| люди, ну помогите кто-то , у меня тут кошмар какой-то творится.... |
| Автор: Rickert 19.12.2006, 14:38 |
| rubenhak, вызывать перед выводом гемотреии. Он указывает как раз яркость слоя. |
| Автор: rubenhak 23.12.2006, 02:39 |
| Rickert, а тогда у меня разве не оба слоя станут прозрачными? |
| Автор: Rickert 23.12.2006, 03:19 |
| rubenhak, ну, ты же оключаешь смешивание перед выводом второго? И указывай для него четвёртый параметр = 255 |
| Автор: rubenhak 25.12.2006, 19:59 | ||
| Rickert, тоесть надо так да?
|
| Автор: Rickert 26.12.2006, 03:22 |
| Примерно. Что получилось? |
| Автор: rubenhak 26.12.2006, 11:37 | ||
смотри, делаю так
у меня все слоя становятся прозрачными, и что самое интересное то, что даже когда вызываю glColor4ub(255,255,255,255); вместо glColor4ub(255,255,255,128); прозрачность не исчезает.... |
| Автор: Rickert 26.12.2006, 15:22 |
| rubenhak, правильно так и должно быть. Чтобы прозрачность не распространялась на остальные - надо отключать смешивание перед тем, как выводить непрозрачные слои. Но при этом надо фильтровать будет: сначала выводить все прозрачные слои(объекты), а потом - непрозрачные. Инчае будет глюк. Я, честно говоря, делал через маску отображения прозрачность ;) |
| Автор: rubenhak 26.12.2006, 16:23 |
| Rickert, ты наверное о GL_DEPTH_TEST-е да говориш? мне это помоему не надо, ведь обьект один, просто на нем несколько текстур. а как смешивание отключить? и почему при значнии alpha = 255 всетаки у меня получается прозрачная картинка? |
| Автор: rubenhak 30.12.2006, 17:53 |
| Rickert, у тебя нет никаких идей, или подкинь документацию какую-то.... |
| Автор: Rickert 30.12.2006, 21:20 |
| rubenhak, вот короче исходник одного из уроков с gametutorials.com. Этот сайт раньше бесплатным был, так мой братишка оттуда все уроки тогда слил. Комментариев более чем достаточно чтобы разбраться. Будут вопросы - пиши. http://rickert.nm.ru/tmp/mask.rar |
| Автор: rubenhak 31.12.2006, 21:35 |
| Rickert, просмотрю , большое спасибо, !!! С НОВЫМ ГОДОМ !!! |
| Автор: Rickert 1.1.2007, 09:27 |
| rubenhak, и тебя с новым годом! Надо не "просмотреть", а "изучить" |
| Автор: rubenhak 3.1.2007, 23:18 |
| Rickert, это не то что мне нужно, если ты смотрел пример - что и как изменить, чтоб прицел(красный) был с альфа каналом? а пробовал glColor4f(1,1,1,0.1f); но никакой разницы |
| Автор: Rickert 4.1.2007, 07:19 |
| rubenhak, Ты не читал комментарии к коду, который там есть. Там всё рассказывается. Там сначала накладывается маска прозрачности, а потом накладывается текстура. |
| Автор: rubenhak 5.1.2007, 16:15 |
| Rickert, я читал, но мне не нужна маска прозрачности. у меня все время будет менятся прозрачность. а маской это сделать невозможно. |
| Автор: Rickert 5.1.2007, 16:23 |
| rubenhak, на самом деле можно и очень просто Маска - это что? Это текстура со значениями прозрачности. Берём делаем тестуру всю цветом, например, (127; 127; 127) - вот тебе полупрозрачная маска для твоей текстуры и будет тот эффект, которого ты хочешь добиться. |
| Автор: rubenhak 9.1.2007, 17:55 | ||
Rickert, давай поконкретнее, тоесть этот код будет менять альфу?
|
| Автор: kseLLor 11.1.2007, 20:05 | ||
А ты не можешь слить эти исходники куда-нибудь, или мне на мейл - [email protected]. Буду очень благодарен. |
| Автор: Rickert 11.1.2007, 20:56 |
| kseLLor, странный ты какой-то |
| Автор: kseLLor 11.1.2007, 22:27 | ||
По ссылке только 3 примера, а этого маловато будет. |
| Автор: rubenhak 16.1.2007, 17:35 |
| Rickert, kseLLor, люди, этот пример вовсе не нужен. нужно просто поставить прозрачность на вторую текстуру, и восможность все время менять прозрачность. вы когда то Quake 3 играли, вспомните эффект "пружинки" |
| Автор: rubenhak 28.1.2007, 21:11 |
| Люди, никак не получается, может поможете чем-то.... |