ОБНОВЛЕНИЕ: Я ответил на свой вопрос о том, какую модель освещения использовать, но теперь мне нужно знать, как вычислить члены Френеля для отраженных и прошедших лучей.
У меня есть частично реализованный трассировщик лучей C ++. Сейчас освещение Фонга с теневыми лучами работает нормально. Я решил не иметь сущностей с одним цветом плюс скалярные коэффициенты фонового / диффузного / скалярного; каждый из трех коэффициентов имеет компоненты RGB, поэтому я могу реализовать такие материалы, как эти . Свет, с другой стороны, имеет один цвет RGB плюс скалярную диффузную и зеркальную интенсивности. Также есть один рассеянный свет RGB.
На этом этапе я мог бы также реализовать полностью диэлектрические объекты, которые отражают или пропускают весь свет, с пропорцией отраженного и преломленного света, определяемой уравнениями Френеля. Однако как мне реалистично комбинировать отраженные и преломленные цвета с цветом Фонга? Я хочу иметь слегка отражающий цветной пластик, полированное золото, идеальные зеркальные или стеклянные сферы, витражи, стеклянные панели, которые прозрачны в лоб, но зеленые по краям, и так далее. Я планировал добавить коэффициенты отражения и пропускания RGB к каждому объекту, и позволить разработчику объекта убедиться, что окружающий + диффузный + зеркальный + коэффициент отражения + коэффициент пропускания лежит в разумном диапазоне, но это кажется произвольным. Есть ли физически обоснованный способ?