Russian Qt Forum

Qt => OpenGL => Тема начата: Igors от Декабрь 17, 2016, 15:56



Название: Прозрачность
Отправлено: Igors от Декабрь 17, 2016, 15:56
Добрый день

Для тех кто не в курсе: нормальной прозрачности OpenGL никогда не имел. Лет 20 назад это еще воспринималось нормально, мол, система молодая, сейчас - ну наверное разрабам так приятнее ничего принципиально не менять :'(. Рекомендовалось выводить объекты "от задних к передним" с включенным GL_BLEND. Это всегда работало не дальше простого примера.

Ну ладно, погуглился, сейчас вроде стандарт как-то через буфера напр тут (https://github.com/gangliao/Order-Independent-Transparency-GPU). Но эта радость для версии 4.0 или как? Смутно помню (могу путать) ssoft об этом упоминал здесь, но где - не смог найти. В общем, подкиньте инфы

Спасибо


Название: Re: Прозрачность
Отправлено: Racheengel от Декабрь 17, 2016, 22:22
нормальной прозрачности OpenGL никогда не имел. Рекомендовалось выводить объекты "от задних к передним" с включенным GL_BLEND. Это всегда работало не дальше простого примера.

И в 21 веке точно так же не работает...
По моему, кроме шейдыра, никаг :(


Название: Re: Прозрачность
Отправлено: Igors от Декабрь 18, 2016, 10:37
По моему, кроме шейдыра, никаг :(
Понятно что магическое слово "шейдер" - ответ на все вопросы :) Только вот каким образом?


Название: Re: Прозрачность
Отправлено: ssoft от Декабрь 18, 2016, 22:22
Да здесь писал http://www.prog.org.ru/index.php?topic=30726.msg227123#msg227123

https://habrahabr.ru/post/224003/
http://jcgt.org/published/0002/02/09/paper-lowres.pdf
http://developer.download.nvidia.com/SDK/10/opengl/src/dual_depth_peeling/doc/DualDepthPeeling.pdf
http://on-demand.gputechconf.com/gtc/2014/presentations/S4385-order-independent-transparency-opengl.pdf


Название: Re: Прозрачность
Отправлено: Igors от Декабрь 19, 2016, 15:32
ssoft, спасибо за ссылки, с некоторыми был незнаком. Все равно пока не пойму с "hardwre requirements" установить барьер "4.0 и выше" я не могу.  А у Вас как реализовано (если не секрет)?


Название: Re: Прозрачность
Отправлено: ssoft от Декабрь 19, 2016, 16:34
ssoft, спасибо за ссылки, с некоторыми был незнаком. Все равно пока не пойму с "hardwre requirements" установить барьер "4.0 и выше" я не могу.  А у Вас как реализовано (если не секрет)?

У нас реализована совсем простая схема отображения в 3-й этапа, основанная на Weight Blended Order Independent Transparency.

Этап 1. Формирование буфера непрозрачных пикселей с проверкой глубины и формированием буфера глубины. Начальное заполнение буфера цветом фона.
Этап 2. Формирование буфера суммы полупрозрачных пикселей с проверкой глубины но без формирования буфера глубины. При суммировании компоненты цвета помножаются на прозрачность. Дополнительно формируется буфер с суммой прозрачностей для использования при нормировке на следующем этапе.
Этап 3. Смешение буфера непрозрачных пикселей и буфера полупрозрачных пикселей нормированных на дополнительный буфер.