Как смешивать цвета

Я сейчас кодирую трассировщик лучей. Интересно, как смешать примитивный цвет со светлым? Я видел много комбинаций.

Некоторые просто добавляют два цвета. Это дает мне очень странные результаты.

Некоторые смешивают каждый компонент. Выглядит нормально, но в примитиве синий ({0, 0, 1}), а свет красный ({1, 0, 0}), он просто черный. Это нормальное поведение?

Я также видел режим наложения экрана (screen (C1, C2) = C1 + C2 - C1 * C2)), который для меня более логичен, поскольку в приведенном выше случае цвета на самом деле будут blend.

Тот же вопрос для цветов отраженных лучей: как смешать их с локальным цветом?

Дополнительный вопрос: должна ли точка на примитиве, которая не подсвечивается, быть черной? Я видел такие вещи, как «половина цвета».

6
задан Tangui 9 November 2010 в 11:54
поделиться