glBlendFunc и альфа-смешивание - PullRequest
       10

glBlendFunc и альфа-смешивание

2 голосов
/ 09 октября 2008

Я хочу знать, как работает glBlendFunc. Например, у меня есть 2 текстуры GL, где альфа на tex1, я хочу, чтобы альфа в моем окончательном изображении. Где цвет на tex1, я хочу, чтобы цвет от tex2 был.

Ответы [ 4 ]

1 голос
/ 09 октября 2008

Извините, я не могу сделать это с помощью простого смешивания. Мы, например, делали то же самое, используя шейдеры фрагментов.

1 голос
/ 11 октября 2008

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

1 голос
/ 09 октября 2008

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

0 голосов
/ 12 октября 2008

К сожалению, это для openGL ES на iPhone, так что никаких шейдеров, но точка взята. Моя проблема была в очень упрощенной версии вопросов, мне нужно было применить простой цвет (включая альфа) к части определенной текстуры. Как отметил Ли, смешивание текстур позволяет альфе появляться в кадровом буфере. Решением было настаивать на том, чтобы художник сделал «бит действия» текстуры белым, а затем назначил цвет вершинам, которые я рендерил. Как то так.

glTexCoordPointer( 2, GL_FLOAT, 0, sprite->GetTexBuffer() );
glVertexPointer( 3, GL_FLOAT, 0, sprite->GetVertexBuffer() );
glColorPointer( 4, GL_FLOAT, 0, sprite->GetColorBuffer() );
glDrawArrays( GL_TRIANGLES, 0, 6 ); // Draw 2 triangles

Где даже если у него есть текстура, цвет означает, что он добавляет к цвету текстуры, поэтому, когда это альфа, она остается альфа, а где она белая (как я должен был сделать), она становится цветом цветного указателя в точке.

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