2010-07-29 4 views
1

Я хотел бы, например, нарисовать фигуры A, B, C, затем установить блендер, затем нарисовать форму D и всюду, где будет форма D, сцена показывает мой фоновый цвет (1,1,1,0). СпасибоСубтрактивное смешивание с OpenGL?

+0

Если мой исходный цвет (1,1,1,0), то не должно быть способа? – jmasterx

ответ

0

Намного проще, чем другие ответы:

  • Дисплей форм A, B и C нормальный путь
  • glDisable (GL_DEPTH_TEST);
  • glDisable (GL_ALPHA_TEST);
  • glDisable (GL_BLEND);
  • дисплей форма D с цветом (1,1,1,0)

и вы сделали.

+0

Иногда самое простое решение - лучшее;) спасибо – jmasterx

+0

@Jex вы можете также отключить запись глубины, в зависимости от того, что вы пытаетесь сделать – Calvin1602

4

Я не знаю, что это возможно напрямую. Однако есть несколько возможностей получить тот же эффект. Самое чистое было бы, вероятно, начать с заполнения буфера трафарета с помощью 1, затем нарисуйте фигуру D в буфере трафарета с помощью 0, затем нарисуйте все остальное (с включенным буфером трафарета, конечно).

+0

+1 Я как раз собирался это предложить! – Blindy

0

glBlendEquation может это сделать.

+0

Это даже не приближается к тому, о чем спрашивает оп. – Blindy

+0

Это не так? Если у меня есть форма, равная 1,1,1,0, результат операции SUBTRACT должен сделать новый пиксель 1,1,1,0? – jmasterx

+0

@Blindy Название вопроса относится к субтракционному смешиванию, но теперь, когда вы упомянули об этом, тело вопроса относится к другому совершенно другому вопросу. –

Смежные вопросы