В статье Шлика 1994 года «Недорогая модель физического рендеринга» , где они получают аппроксимацию, формула имеет вид:
Fλ( и ) = еλ+ ( 1 - фλ) ( 1 - у )5
куда
Итак, чтобы ответить на ваш первый вопрос, θ означает угол между вектором обзора и половиной вектора. Подумайте на минуту, что поверхность является идеальным зеркалом. Итак:
V≡reflect(V′)
В этом случае:
N≡ H
Для microfacet базы ДФО, то Д ( чр) термин относится к статистическому проценту microfacet нормалей, которые ориентированы на ЧАС . Ака, какой процент входящего света отскочит в исходящем направлении.
Что касается того, почему мы используем Френеля в BRDF, это связано с тем фактом, что BRDF сам по себе является лишь частью полной BSDF. BRDF ослабляет отраженную часть света, а BTDF ослабляет преломленную. Мы используем Френеля для расчета количества отраженного и преломленного света, поэтому мы можем должным образом ослабить его с помощью BRDF и BTDF.
B SD F= B R D F+ B TD F
Lо( р , ωо)= Lе( р , ωо) + ∫ ΩB SD F∗ Lя( р , ωя) | созθя| dωя= Lе( р , ωо) + ∫ ΩB R D F∗ Lя, отражение( р , ωя) | созθя| dωя + ∫ ΩB TD F∗ Lя, преломленный( р , ωя) ∗ | созθя| dωя
Итак, в итоге, мы используем D чтобы получить процент света, который будет отражаться в исходящем направлении, и F , чтобы узнать, какой процент оставшегося света будет отражать / преломлять. Оба они используют ЧАС , потому что это ориентация поверхности, которая позволяет зеркальное отражение между В и В'
Коэффициент Френеля должны быть оценены с использованием , а не N .ЧАС N
Вы написали,
Это не. Само по себе BRDF не приближает интеграл по всему полушарию. Уравнение рендеринга делает это: вы интегрируете по всем входящим направлениям света, но каждый раз, когда BRDF внутри интеграла оценивается, это для одного конкретного выбора направлений входящего и исходящего луча.
Другой случай, который возникает в графике в реальном времени, - это отражение карты окружающей среды. Чтобы быть действительно правильным, мы должны интегрировать карту среды, умноженную на BRDF, по всем направлениям входящего света, но на практике мы часто выбираем карту предварительно отфильтрованного окружения, используя доминирующий вектор отраженияR = отражать ( V, N) р N В N
источник