Трассировка лучей - смешивание цветов

Пишу трассировщик лучей. Пока что у меня есть диффузное и зеркальное освещение, а также я планирую реализовать отражение и преломление.

До сих пор я использовал белый свет и рассчитывал цвет поверхности следующим образом: surface_color * light_intensity, деленный на соответствующие значения расстояния ^ 2, поскольку я использую точечные источники света. Для зеркального отражения это light_color * light_intensity. Afaik, зеркальное отражение не меняет цвет света, поэтому это также должно работать с источниками света разных цветов.

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

Кроме того, как мне добавить в одну точку световые эффекты от источников света разных цветов? Например, поверхность (1, 0,5, 1) освещается лампами (0,5, 0,5, 1) и (1, 0,7, 0,2). Могу ли я просто рассчитать оба значения (включая расстояния) и сложить их вместе?


person PEC    schedule 01.11.2014    source источник


Ответы (1)


  • Я обнаружил, что RGB - плохое цветовое пространство для расчетов освещения, потому что вам нужно учитывать множество особых случаев, чтобы получить что-то, что выглядит реалистично или ведет себя так, как вы ожидаете.
  • С учетом сказанного, может быть концептуально проще выполнять расчеты освещения в HSL, а не в RGB. В зависимости от языка и инструментария, который вы используете, он должен быть частью стандартной библиотеки / дистрибутива или доступного инструментария.
  • Более физически точной альтернативой может быть реализация спектрального рендеринга, при котором вместо ваших функций трассировки, возвращающих значения RGB, они возвращают выборочное распределение спектральной мощности. SPD более точны и проще в работе, чем отслеживание целого ряда особых случаев смешивания RGB, за счет небольшого, но заметного снижения производительности (особенно если его не оптимизировать). Зеркальные блики и цветные огни являются естественным следствием этой модели и в общем случае не требуют особого обращения.
person Daniel A. Thompson    schedule 29.08.2015