Накопительное альфа-смешивание - PullRequest
0 голосов
/ 15 января 2011

Кто-нибудь знает, какие настройки использовать для glBlendFunc для достижения кумулятивного смешивания?

Например:

  1. 50% альфа + 50% альфа = 50% альфа
  2. 50% альфа + 40% альфа = 50% альфа
  3. 50% альфа + 60% альфа = 60% альфа

То, что я пытаюсь сделать, это сделать несколько фигурвсе одного цвета, но с разными значениями альфа.Некоторые фигуры будут перекрываться.Я хочу, чтобы каждый результирующий пиксель был эквивалентен простому рендерингу один раз с наибольшим альфа-значением.

Мне нужно использовать vanilla GL10, чтобы ни один из компонентов уравнения мин / макс не был доступен.

IЯ работаю над парой альтернативных решений, одна из которых использует глубину, а другая - многопроходный рендеринг, но у меня есть ощущение, что есть более аккуратный способ, которого я не вижу.

1 Ответ

0 голосов
/ 15 января 2011

Если вы используете OpenGL 1.1. реализации, вы можете использовать буфер накопления.

Буфер накопления накапливает различные проходы рендеринга, позволяя вам обозначать каждый цвет пикселя. Действительно, если вы рисуете разные фигуры, перекрывающиеся области будут накапливать значения цветов перекрывающихся фигур.

Исправлено количество фаз рендеринга (скажем, N ), пиксель, которому принадлежат M формы, будет иметь цвет RGB * M / N; насколько я понимаю, это то, что вы хотите получить.

Подробнее см. glAccum .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...