Итак, у меня есть коллекция объектов, которые я создал в openGL. Каждый из них имеет свои собственные цвета, а некоторые из них имеют текстуры, применяемые к ним. То, что я хочу сделать, - остановить определенные цвета от доступа к экрану, но все же иметь возможность изменить его. Есть ли способ вишневого выбора, какие цвета на самом деле нарисованы?Создание цветного экрана в OpenGL
Я попытался поставить полупрозрачную плоскость перед камерой, но она не мешает другим цветам проникать, а просто смешивается с ними.
В идеале, это то, как он будет работать:
красный объект + красный экран = красный объект
синий объект + красный экран = серый/черный/белый объект
фиолетовый объект + красный экран = красный объект
-EDIT-
Чтобы прояснить, что я пытаюсь сделать это: я хочу оставить значения RGB для всех моих объектов одинаковыми. Однако, прежде чем они будут нарисованы на экране, я хочу «обнулить» некоторые значения цвета, не внося никаких реальных изменений в объект.
Таким образом, объект с RGB [255,150,200], проходящий через красный фильтр, будет окрашен, как если бы он имел значение RGB [255,0,0], зеленый фильтр [0,150,0] и синий фильтр [0 , 0200].
Описание для 'как это будет работать ...' кажется довольно расплывчатым.Можете ли вы выразить это как функцию, например, источника и адресата RGB (A)? –
Я редактировал вопрос с некоторыми примерами значений RGB. Надеюсь, это поможет объяснить мой вопрос. –
Это должно быть довольно простой задачей для фрагментарного шейдера. – jaho