Прозрачный фон и MSAA одновременно для окна OpenGL на X11Linux

Ответить Пред. темаСлед. тема
Anonymous
 Прозрачный фон и MSAA одновременно для окна OpenGL на X11

Сообщение Anonymous »

Мне нужен (A) прозрачный или полупрозрачный фон (т. е. не просто прозрачные объекты в непрозрачном окне), как в [1], [2], [3]. В то же время мне нужно (B) MSAA (или сглаживание с ускорением графического процессора другого типа). Существуют различные рабочие примеры для (B). Единственный рабочий пример (A) для современного OpenGL, который я нашел, это [4]; причина, по которой довольно сложно получить прозрачный фон с помощью OpenGL и X11, автор [4] прокомментировал здесь [5] (2-й ответ сверху, разверните комментарии и прочитайте важную вещь о «Вы обязательно должны использовать XRenderPictFormat... ").
Но теперь мне нужно присоединиться (A) и (B) только с графическим процессором. Нет ни одного примера этой комбинации и даже никакой информации, если это возможно/должно быть теоретически возможно. После много кофе и segfaults я частично понял это.
Короче говоря, если мы посмотрим на glxinfo | grep "32 tc" или около того, можно обнаружить, что на графических процессорах Intel, независимо от того, работает ли это от батареи Celeron или процессора мощностью в сто ватт, нет ни одного Visual с MSAA: два правые столбцы — нули. Или когда с MSAA (до 16х) ни одного Визуала с Альфой нет. И мои многочисленные пробы и ошибки с кодом на C, все безуспешно, подтверждают это (пока). Мой Франкенштейн, сделанный из (A) и (B), не хочет жить.
Вопреки этому, с (внешним) Графический процессор Nvidia, даже старый, без проблем имеет (A) и (B) одновременно: вы 1) видите это через glxinfo, 2) просто возьмите код [4] и добавьте/включите все привлекательные возможности OpenGL.
Итак, это показывает, что (а) графический процессор Intel (или (б) текущий драйвер Intel для Linux/OpenGL) делает это невозможным.
Q1: Как я могу подтвердить это с помощью теоретических характеристик оборудования?
Q2: Вывод glxinfo в основном осуществляется драйвером -зависимый?
Пока все хорошо. Знать, что это невозможно (с Intel, которая является моей целью, я ограничен в физическом размере установки) лучше, чем вообще этого не знать.
НО >.
Мой старый Compiz легко справляется с этим. На графическом процессоре Intel, используя Window Opacity, я могу получить прозрачность окна (или прозрачное окно поверх другого прозрачного окна или даже поверх видео) с точными математическими вычислениями с точностью до пикселя и без какой-либо заметной дополнительной нагрузки на процессор. Compiz использует библиотеку OpenGL в качестве интерфейса к графическому оборудованию, как указано в вики.
Q3. Как это возможно?
Q4. Опять же, где характеристики для этого конкретного случая?
Этот тип прозрачности (Compiz) (C) может быть > принципиально отличается от (A), поскольку теоретически можно реализовать без альфа-канала, поскольку все пиксели одного окна имеют одинаковое значение «альфа» (полупрозрачность) (в отличие от моего ( A) случай, когда мне нужны полностью непрозрачные элементы). Как я могу в своем коде OpenGL C использовать эту (C) полупрозрачность для каждого окна?
Спасибо.
Arch Linux, 6.11.1-arch1-1, OpenGL ES 3.2 Mesa 24.2.3-arch1.1, OpenGL ES GLSL ES 3.20
Строка рендеринга OpenGL: Mesa Intel(R) UHD Графика 630 (CFL GT2) (вместе с другими процессорами Intel)
На всех тестовых установках используется свежее программное обеспечение, кроме Compiz, стабильная версия 0.8.18.
[1] Как создать контекст рендеринга OpenGL с прозрачным фоном?
[2] Установка прозрачного цвета фона в OpenGL не работает
[3] https://gist.github.com/je-so/903479
[4] https://github.com/datenwolf/codesample ... r/samples/ OpenGL/x11argb_opengl/x11argb_opengl.c
[5] https://stackoverflow.com/a/9215724

Подробнее здесь: https://stackoverflow.com/questions/790 ... dow-on-x11
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • OpenGL за кадром MSAA не рендеринг
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему фон не удаляется, хотя у моего PNG прозрачный фон?
    Anonymous » » в форуме C#
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Python – Как добавить прозрачный PNG в прозрачный PNG в Tkinter
    Anonymous » » в форуме Python
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Python – Как добавить прозрачный PNG в прозрачный PNG в Tkinter
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Наложение пиглета/прозрачный стиль не прозрачный
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»