0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
1 | |
OpenGL c++ прозрачность23.10.2012, 20:26. Показов 17729. Ответов 38
Метки нет (Все метки)
доброго времени суток!
не могу никак разобраться, можно ли в openGL объекты делать прозрачными друг для друга, но не для фона? понимаю, что вопрос задан криво, поэтому постараюсь привести пример: имеет 2 плоских объекта: красный и синий квадрат. расположены они на темно-сером фоне. пользователь может их передвигать, но при совмещении, общие части должны принимать общий цвет - фиолетовый. пытался добиться этого эффекта через прозрачность, но при этом в расчёт общего цвета примешивался цвет фона. тогда и возник вопрос, можно ли сделать фигуры прозрачными друг для друга, но не прозрачными для фона. надеюсь, вы сумеете подсказать мне, в каком направлении копать. возможно, я просто пропустил специально созданную для этого функцию, или же просто не знаю подходящих методов для реализации. заранее спасибо!
0
|
23.10.2012, 20:26 | |
Ответы с готовыми решениями:
38
Прозрачность в OpenGL Прозрачность в OpenGL Прозрачность в OpenGL (OpenGL) Частицы и прозрачность |
angstrom
|
|
26.10.2012, 13:23 | 21 |
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|||||||||||
26.10.2012, 13:46 [ТС] | 23 | ||||||||||
так, цвета объектов менять не буду, они выглядят так:
по файлам: 06 - glBlendFunc( GL_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); и glClearColor(97.0f/255.0f, 97.0f/255.0f, 97.0f/255.0f, 1.0f); 05 - glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA ); и glClearColor(97.0f/255.0f, 97.0f/255.0f, 97.0f/255.0f, 1.0f); 04 - glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA ); и glClearColor(0, 0, 0, 1); 03 - glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA ); и glClearColor(0, 1, 0, 1); 02 - glBlendFunc( GL_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); и glClearColor(0, 1, 0, 1); 01 - glBlendFunc( GL_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); и glClearColor(0, 0, 0, 1); расположены они от 01 к 06
0
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
26.10.2012, 13:57 [ТС] | 24 |
к сожалению, мне надо уехать по делам и вернуться к диалогу я смогу только около 10 часов вечера по Москве
0
|
26.10.2012, 14:14 | 25 |
Я не знаю что ты делаешь не так, но 3, 4 и 5 примеры у тебя должны выглядеть так как на изображении.
Как видишь от фона цвет квадратов не зависит, хотя между собой они смешиваются. А во всех других твоих примерах фон влияет на цвет квадратов.
0
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
26.10.2012, 22:16 [ТС] | 26 |
слушай, а можно тебя попросить скинуть твои исходники этого решения? я всё-таки опенГЛ изучаю несколько дней и, по большей части, из острой необходимости. нет возможности сейчас подойти к этому обстоятельно
0
|
26.10.2012, 23:21 | 27 | |||||
исходник
0
|
angstrom
|
|
26.10.2012, 23:44 | 28 |
Не нашёл существенной разницы, но у меня рисуется без сложения цветов.
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
26.10.2012, 23:57 [ТС] | 29 |
за исходники спасибо, но вот попытка их скомпилить дала парадоксальный результат:
error LNK2019: ссылка на неразрешенный внешний символ __imp__glPopMatrix@0 и т.д. на 21 gl-функцию сначала грешил на отсутствующий у меня glext.h, но добавленный в собственный хидер код этого хидера с опеногл.орг не решил проблему решил из интереса подключить имеющийся у меня glut.h - всё скомпилилось, но дало неверные результаты (с которыми и боремся). из этого делаю вывод, что у меня какой-то неправильный gl.h, вызванный, по-видимости, моими же кривыми руками)
0
|
angstrom
|
|
27.10.2012, 01:29 | 30 |
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
29.10.2012, 15:56 [ТС] | 32 |
додумался, наконец, проверить работоспособность приложения на другом компе - всё работает как надо.
в чем же тогда беда? библиотеки? драйвера?
0
|
angstrom
|
|
29.10.2012, 16:05 | 33 |
Но ведь это не дело, программа не должна зависеть от компьютера.
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
29.10.2012, 18:21 [ТС] | 35 |
запускается. и прозрачность при (GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA) работает так, как должна - квадраты прозрачны друг для друга, но фон не примешивается.
а то, что программа зависит от компьютера - это большая беда(
0
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
29.10.2012, 18:35 [ТС] | 37 |
2 разных компьютера: на одном результаты ты видел (скриншоты), они неверные.
на другом - всё работает так, как и должно работать.
0
|
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 21
|
|
29.10.2012, 18:45 [ТС] | 39 |
есть возможность как-то проконтролировать? или скорректировать? если нет, то имеет смысл закрывать тему, а мне искать альтернативы
0
|
29.10.2012, 18:45 | |
29.10.2012, 18:45 | |
Помогаю со студенческими работами здесь
39
Antialiasing в OpenGL: Можно ли влючать\отключать настройки видеокарты программно? Интересует "сглаживание - прозрачность" Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности (2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL Ошибки при подключение opengl, немного не связанные с opengl Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |