2016-11-08 10 views
1

Я пытаюсь порта некоторого кода из DX9 в OpenGL, и он использует подписанную аддитивную операцию смешиванияПодписано аддитивное смешивания в OPENGL

pd3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADDSIGNED); 

Есть ли способ сделать это с помощью OpenGL glBlendFunc?

У меня есть что-то работоспособное, разбивая текстуру на аддитивные и субтрактивные текстуры и рисуя их в 2 прохода (аддитивный, затем субтрактивный). К счастью, я могу добавлять и вычитать лишние выдержки (добавляет удары 1,0 или вычитает удары 0,0), поэтому это работоспособное решение, если я не могу найти простую функцию смешивания, которая может работать под подпиской ...

ответ

1

OpenGL GL_FUNC_ADD can уже вычесть, это только вопрос того, что является результатом шейдера. Вы можете посмотреть на GL_RGBA8_SNORM, если хотите сохранить отрицательные и положительные значения внутри одной и той же 8-битной текстуры.

+0

Звучит многообещающе. Я посмотрю. –