Уравнение рендеринга
В компьютерной графике уравнение рендеринга — интегральное уравнение, которое определяет количество светового излучения в определённом направлении как сумму собственного и отражённого излучения. Уравнение впервые было опубликовано в работах David Immel[1] и James Kajiya[2] в 1986 году. Различные алгоритмы компьютерной графики решают это основное уравнение.
Физической основой уравнения является закон сохранения энергии. Пусть L — это количество излучения по заданному направлению в заданной точке пространства. Тогда количество исходящего излучения (Lo) — это сумма излучённого света (Le) и отражённого света. Отражённый свет может быть представлен как сумма приходящего излучения (Li) по всем направлениям умноженного на коэффициент отражения из данного угла.
Уравнение рендеринга может быть представлено как:
- [math]\displaystyle{ L_o(\mathbf x, \omega, \lambda, t) = L_e(\mathbf x, \omega, \lambda, t) + \int_\Omega f_r(\mathbf x, \omega', \omega, \lambda, t) L_i(\mathbf x, \omega', \lambda, t) (-\omega' \cdot \mathbf n) d \omega' }[/math]
где:
- [math]\displaystyle{ \lambda }[/math] — длина волны света
- [math]\displaystyle{ t }[/math] — время
- [math]\displaystyle{ L_o(\mathbf x, \omega, \lambda, t) }[/math] — количество излучения заданной длины волны [math]\displaystyle{ \lambda }[/math] исходящего вдоль направления [math]\displaystyle{ \omega }[/math] во время [math]\displaystyle{ t }[/math], из заданой точки [math]\displaystyle{ \mathbf x }[/math]
- [math]\displaystyle{ L_e(\mathbf x, \omega, \lambda, t) }[/math] — излучённый свет
- [math]\displaystyle{ \int_\Omega \cdots d\omega' }[/math] — интеграл по полусфере входящих направлений
- [math]\displaystyle{ f_r(\mathbf x, \omega', \omega, \lambda, t) }[/math] — двунаправленная функция распределения отражения (иначе двулучевая функция отражательной способности (ДФОС, англ. Bidirectional reflectance distribution function — BRDF)), количество излучения отражённого от [math]\displaystyle{ \omega' }[/math] к [math]\displaystyle{ \omega }[/math] в точке [math]\displaystyle{ \mathbf x }[/math], во время [math]\displaystyle{ t }[/math], на длине волны [math]\displaystyle{ \lambda }[/math]
- [math]\displaystyle{ L_i(\mathbf x, \omega', \lambda, t) }[/math] — длина волны [math]\displaystyle{ \lambda }[/math] по входящему направление к точке [math]\displaystyle{ \mathbf x }[/math] из направления [math]\displaystyle{ \omega' }[/math] во время [math]\displaystyle{ t }[/math]
- [math]\displaystyle{ -\omega' \cdot \mathbf n }[/math] — поглощение входящего излучения по заданному углу
Уравнение имеет три особенности: оно линейно, а также изотропно и однородно — то есть одинаково для всех направлений и точек пространства.
Примечания
- ↑ Immel, David S.; Cohen, Michael F. & Greenberg, Donald P. (1986), A radiosity method for non-diffuse environments, Siggraph 1986: 133, DOI 10.1145/15922.15901
- ↑ Kajiya, James T. (1986), The rendering equation, Siggraph 1986: 143, doi:10.1145/15922.15902, <http://www.cse.chalmers.se/edu/year/2011/course/TDA361/2007/rend_eq.pdf> Архивная копия от 14 апреля 2021 на Wayback Machine