Я пишу трассирующее изображение луча. До сих пор у меня диффузное и зеркальное освещение, и я планирую реализовать отражение и преломление.Ray tracing - смешивание цветов
До сих пор я использовал белые огни, где я вычислил цвет поверхности следующим образом: 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). Я просто вычисляю обе (включая расстояния) и добавляю их вместе?