|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2010, 17:22 | #1 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Дельфи и OpenGL + прозрачность цвета
Всем привет. OpenGL выводит на контекст устройства графику. Так если я задаю вывод на канву формы (обычной) вот таким кодом к примеру:
Код:
Код:
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
20.11.2010, 21:38 | #2 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
Он не прокатывает ни с OpenGL, ни с DirectX. Всё это из-за присутствия эффектов при отрисовке формы. Выход один (я так уже делал). Формировать опеном изображение в PBO, затем из PBO делать виндовский блит на канву формы. Теряется скорострельность кадров, но зато это серавно быстрее чем обычно.
З.Ы. Это кстати метод разработчиков Opera. Они так ускоряют (аппаратно) графику в браузере. Где -то на забугорном ресурсе прочитал. |
20.11.2010, 21:46 | #3 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Цитата:
Последний раз редактировалось Somebody; 20.11.2010 в 21:49. |
|
20.11.2010, 21:56 | #4 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
notHaker, нашел вашу тему, созданную недавно, http://www.programmersforum.ru/showthread.php?t=114325, буду читать, то, что вам там порекомендовали, а с наводкой помогли, спасибо вам! (И как я не нашел ее до создания своей..) В общем спасибо, будут проблемы - обращусь. Только вот что такое PBO и FBO - не пойму никак... С поиском по инэту про PBO и FBO много тем накопал на нашем форуме. Я так понял, что PBO и FBO - это форматы текстур? т.е. картинки простые?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
Последний раз редактировалось ImmortalAlexSan; 20.11.2010 в 22:03. |
20.11.2010, 22:00 | #5 | |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
Ну подумайте сами... Залили в видюху текстуры-атласы, сложили там же изображение с учётом альфа-канала и прочих эффектов. Забрали битмап, а затем сделали блит (его винда поддерживает аппаратно) на нужную форму. Ну и получается одно "узкое" место - это "видюха -> система -> видюха", которое оптимизируем до неузнаваемости. Да, пересылка между системной памятью и видюшной очень медленная, но если сравнить с вычислениями альфа-канала на процессоре и, того хуже, эффектов ( размытие например ) определённо получается выигрыш! яркий тому пример - "Adobe Flash".
Цитата:
FBO - Frame Buffer Object. Быстрый, но сравнительно новый. Поэтому не универсальный, т.к. работает не везде. И всё это относится к расширениям OpenGL Последний раз редактировалось notHaker; 20.11.2010 в 22:02. |
|
20.11.2010, 22:05 | #6 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Спасибо за пояснение, буду копаться...
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
21.11.2010, 02:03 | #7 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Правда у меня почему-то не четверть круга, а квадрат получается так.....
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|
21.11.2010, 10:16 | #8 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
DomiNick, не получается при дизайнтайм... а квадрат - потому что не включено glEnable(GL_POINT_SMOOTH);, вот тогда будет круг.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
21.11.2010, 17:24 | #9 |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Без TransparentColor показывает круг, с TransparentColor стабильно показывает дырку в виде почему-то квадрата (причём раза в 3 больше точки)...
А с GL_TRIANGLES или GL_QUADS вроде всё нормально получается... (WindowsXP Professional SP3 FinalEdition) Вот если TransparentColor включать рантайм (точнее после pSetDCPixelFormat), то жутчайшие артефакты получаются... х__х P.S. А почему оно рисуется в MouseMove? Это ж как минимум неудобно...
I am the First of Cyber Evolution...
I am the First to Program your Future... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
OpenGL Изменение цвета | revaldo666 | Общие вопросы C/C++ | 1 | 29.07.2010 11:51 |
Изменение цвета (opengl) | revaldo666 | Общие вопросы C/C++ | 0 | 26.07.2010 15:13 |
OpenGL, прозрачность | ассемблер123 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 25.04.2010 20:08 |
можно ли определить код цвета с помощью дельфи ? | kakawkin | Общие вопросы Delphi | 2 | 12.11.2009 16:34 |
Прозрачность | MAcK | Общие вопросы Delphi | 2 | 21.03.2007 19:24 |