<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AKst179%2FMetropolis_light_transport</id>
	<title>Участник:Kst179/Metropolis light transport - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AKst179%2FMetropolis_light_transport"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;action=history"/>
	<updated>2026-10-23T07:35:27Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23568&amp;oldid=prev</id>
		<title>Kst179 в 20:05, 24 октября 2017</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23568&amp;oldid=prev"/>
		<updated>2017-10-24T20:05:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:05, 24 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Metropolis light transport &amp;amp;mdash; это алгоритм, применяющий один из вариантов метода Монте Карло &amp;amp;mdash; метод Метрополиса-Гастинга, Монте Карло на Марковских цепях (&#039;&#039;&#039;Metropolis-Hastings, Markov chain Monte Carlo, MCMC&#039;&#039;&#039;), для генерации изображений при помощи физического описания трехмерных сцен. Алгоритм используется в компьютерной графике, решает задачу глобального освещения (точное моделирование световых эффектов). Отличается от классических методов, таких как Bidirectional path tracing скоростью работы и точностью моделирования (возвращает несмещенное значение).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Metropolis light transport&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;Veach E., Guibas L. J. Metropolis light transport //Proceedings of the 24th annual conference on Computer graphics and interactive techniques. – ACM Press/Addison-Wesley Publishing Co., 1997. – С. 65-76.&amp;lt;/ref&amp;gt; &lt;/ins&gt;&amp;amp;mdash; это алгоритм, применяющий один из вариантов метода Монте Карло &amp;amp;mdash; метод Метрополиса-Гастинга&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;Hastings W. K. Monte Carlo sampling methods using Markov chains and their applications //Biometrika. – 1970. – Т. 57. – №. 1. – С. 97-109.&amp;lt;/ref&amp;gt;&lt;/ins&gt;, Монте Карло на Марковских цепях (&#039;&#039;&#039;Metropolis-Hastings, Markov chain Monte Carlo, MCMC&#039;&#039;&#039;), для генерации изображений при помощи физического описания трехмерных сцен. Алгоритм используется в компьютерной графике, решает задачу глобального освещения (точное моделирование световых эффектов). Отличается от классических методов, таких как Bidirectional path tracing скоростью работы и точностью моделирования (возвращает несмещенное значение).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23487&amp;oldid=prev</id>
		<title>Kst179: /* Математическое описание алгоритма */</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23487&amp;oldid=prev"/>
		<updated>2017-10-24T14:22:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Математическое описание алгоритма&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 14:22, 24 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Строка 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для семплирования путей из вообще говоря неизвестного нам распределения &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt; используется метод &#039;&#039;&#039;MCMC&#039;&#039;&#039;. Построим следующую марковскую цепь: введем некоторую вероятность &amp;lt;math&amp;gt;K(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; перехода &amp;lt;math&amp;gt;\overline{x} \rightarrow \overline{y}&amp;lt;/math&amp;gt;. Выберем произвольный путь &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; и случайным блужданием будем переходить от &amp;lt;math&amp;gt;\overline{x_{i-1}}&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;\overline{x_i}&amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; распределено с плотностью вероятности &amp;lt;math&amp;gt;p_0(\overline{x})&amp;lt;/math&amp;gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;далее определим итеративно:&lt;/del&gt;&amp;lt;math&amp;gt;p_i(\overline{x}) = \int_{\Omega} K(\overline{x}|\overline{y})p_{i-1}(\overline{y})d\overline{y}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для семплирования путей из&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;вообще говоря&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;неизвестного нам распределения &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt; используется метод &#039;&#039;&#039;MCMC&#039;&#039;&#039;. Построим следующую марковскую цепь: введем некоторую вероятность &amp;lt;math&amp;gt;K(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; перехода &amp;lt;math&amp;gt;\overline{x} \rightarrow \overline{y}&amp;lt;/math&amp;gt;. Выберем произвольный путь &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; и случайным блужданием будем переходить от &amp;lt;math&amp;gt;\overline{x_{i-1}}&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;\overline{x_i}&amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; распределено с &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;некоторой &lt;/ins&gt;плотностью вероятности &amp;lt;math&amp;gt;p_0(\overline{x})&amp;lt;/math&amp;gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;тогда &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; будет распределено как &lt;/ins&gt;&amp;lt;math&amp;gt;p_i(\overline{x}) = \int_{\Omega} K(\overline{x}|\overline{y})p_{i-1}(\overline{y})d\overline{y}&amp;lt;/math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. При некоторых условиях на &amp;lt;math&amp;gt;K(\overline{x}|\overline{y}), ~\underset{i\rightarrow\infty}{lim}p_i(\overline{x}) = p(\overline{x})&amp;lt;/math&amp;gt;, откуда следует что при правильном выборе &amp;lt;math&amp;gt;K(\overline{x}|\overline{y})&amp;lt;/math&amp;gt;, и большом количестве переходов, независимо от выбора &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt;, все &amp;lt;math&amp;gt;\overline{x_i}&amp;lt;/math&amp;gt; будут распределены согласно вероятности &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Пусть мы находимся в состоянии (пути) &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt;, сделаем над путем некоторую мутацию (небольшое изменение) и получим некоторый другой путь &amp;lt;math&amp;gt;\overline{y}&amp;lt;/math&amp;gt;. На пространстве всевозможных мутаций над &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; введем вероятность &amp;lt;math&amp;gt;T(\overline{y}| \overline{x})&amp;lt;/math&amp;gt; того что при мутации &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; получится &amp;lt;math&amp;gt;\overline{y}&amp;lt;/math&amp;gt;. Далее мы можем принять эту мутацию или отклонить с некоторой вероятностью &amp;lt;math&amp;gt;a(\overline{y}|\overline{x})&amp;lt;/math&amp;gt;. Если мутация принимается, то совершается переход по марковской цепи &amp;lt;math&amp;gt;\overline{x} \rightarrow \overline{y}&amp;lt;/math&amp;gt;,  иначе &amp;lt;math&amp;gt;\overline{x}\rightarrow\overline{x}&amp;lt;/math&amp;gt;, т.е. мы остаемся в том же состоянии. Таким образом мы сконструировали &amp;lt;math&amp;gt;K(\overline{y}|\overline{x}) = a(\overline{y}|\overline{x})T(\overline{y}|\overline{x})&amp;lt;/math&amp;gt;, при &amp;lt;math&amp;gt;\overline{x} \neq \overline{y}, K(\overline{x}|\overline{x}) = \int_{\Omega}(1-a(\overline{y}|\overline{x}))T(\overline{y}|\overline{x})d\overline{y}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;T(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; определяется тем, как именно мы производим мутации над путями, будет обсуждено чуть позже, а &amp;lt;math&amp;gt;a(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; выбирается таким, чтобы цепь сходилась к стационарному состоянию, и скорость сходимости была как можно выше. Согласно &#039;&#039;принципу детального равновесия&#039;&#039; Марковская цепь сходится к стационарному распределению &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;p(\overline{x})K(\overline{y}|\overline{x}) = p(\overline{y})K(\overline{x}|\overline{y})&amp;lt;/math&amp;gt;, или, что тоже самое: &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;\frac{1}{b}f(\overline{x})a(\overline{y}|\overline{x})T(\overline{y}|\overline{x}) = \frac{1}{b}f(\overline{y})a(\overline{y}|\overline{x})T(\overline{x}|\overline{y})&amp;lt;/math&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Откуда получаем &amp;lt;math&amp;gt;\frac{a(\overline{y}|\overline{x})}{a(\overline{x}|\overline{y})} = \frac{f(\overline{y})T(\overline{x}|\overline{y})}{f(\overline{x})T(\overline{y}|\overline{x})}&amp;lt;/math&amp;gt;. Так как скорость сходимости необходима как можно большая, то выберем &amp;lt;math&amp;gt; a(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; a(\overline{x}|\overline{y})&amp;lt;/math&amp;gt; максимально возможным: &amp;lt;math&amp;gt;a(\overline{y}|\overline{x}) = min\left\{ 1, \frac{f(\overline{y})T(\overline{x}|\overline{y})}{f(\overline{x})T(\overline{y}|\overline{x})} \right\} &amp;lt;/math&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Теперь определим функцию &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt;. Функция &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt; складывается из нескольких промежуточных значений, каждое из которых отображает какая часть освещенности падает при прохождении звена пути/отражения луча от поверхности. Рассмотрим одно звено пути &amp;lt;math&amp;gt;x&#039; \rightarrow x&#039;&#039;&amp;lt;/math&amp;gt;. Пусть x&#039; находится на поверхности объекта излучающего свет. Тогда определим &amp;lt;math&amp;gt;L_e(x&#039;\rightarrow x&#039;&#039;)&amp;lt;/math&amp;gt; как освещенность точки &amp;lt;math&amp;gt;x&#039;&#039;&amp;lt;/math&amp;gt; при излучении света из точки &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt;. Для точечного источника &amp;lt;math&amp;gt;L_e(x&#039;\rightarrow x&#039;&#039;) = \frac{I}{||x&#039; - x&#039;&#039;||^2}&amp;lt;/math&amp;gt;, где I &amp;amp;mdash; интенсивность источника, для излучающей поверхности с нормалью &amp;lt;math&amp;gt;\overline{n}&amp;lt;/math&amp;gt; в точке &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;L_e(x&#039; \rightarrow x&#039;&#039;) = I\frac{|&amp;lt;\overline{n}, x&#039;&#039;-x&#039;&amp;gt;|}{||x&#039;-x&#039;&#039;||^3}&amp;lt;/math&amp;gt; и т.д. для каждого типа источника функция будет разной&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вычислительное ядро алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вычислительное ядро алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23450&amp;oldid=prev</id>
		<title>Kst179: /* Математическое описание алгоритма */</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23450&amp;oldid=prev"/>
		<updated>2017-10-23T20:34:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Математическое описание алгоритма&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:34, 23 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Строка 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для семплирования путей из вообще говоря неизвестного нам распределения &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt; используется метод &#039;&#039;&#039;MCMC&#039;&#039;&#039;. Построим следующую марковскую цепь: введем некоторую вероятность &amp;lt;math&amp;gt;K(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; перехода &amp;lt;math&amp;gt;\overline{x} \rightarrow \overline{y}&amp;lt;/math&amp;gt;. Выберем произвольный путь &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; и случайным блужданием будем переходить от &amp;lt;math&amp;gt;\overline{x_{i-1}}&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;\overline{x_i}&amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; распределено с плотностью вероятности &amp;lt;math&amp;gt;p_0(\overline{x})&amp;lt;/math&amp;gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;тогда &lt;/del&gt;определим итеративно:&amp;lt;math&amp;gt;p_i(\overline{x}) = \int_{\Omega} K(\overline{x}|\overline{y})p_{i-1}(\overline{y})d\overline{y}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для семплирования путей из вообще говоря неизвестного нам распределения &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt; используется метод &#039;&#039;&#039;MCMC&#039;&#039;&#039;. Построим следующую марковскую цепь: введем некоторую вероятность &amp;lt;math&amp;gt;K(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; перехода &amp;lt;math&amp;gt;\overline{x} \rightarrow \overline{y}&amp;lt;/math&amp;gt;. Выберем произвольный путь &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; и случайным блужданием будем переходить от &amp;lt;math&amp;gt;\overline{x_{i-1}}&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;\overline{x_i}&amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; распределено с плотностью вероятности &amp;lt;math&amp;gt;p_0(\overline{x})&amp;lt;/math&amp;gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;далее &lt;/ins&gt;определим итеративно:&amp;lt;math&amp;gt;p_i(\overline{x}) = \int_{\Omega} K(\overline{x}|\overline{y})p_{i-1}(\overline{y})d\overline{y}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вычислительное ядро алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вычислительное ядро алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23396&amp;oldid=prev</id>
		<title>Kst179: /* Математическое описание алгоритма */</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23396&amp;oldid=prev"/>
		<updated>2017-10-23T18:10:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Математическое описание алгоритма&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 18:10, 23 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Строка 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Для семплирования путей из вообще говоря неизвестного нам распределения &amp;lt;math&amp;gt;p(\overline{x})&amp;lt;/math&amp;gt; используется метод &#039;&#039;&#039;MCMC&#039;&#039;&#039;. Построим следующую марковскую цепь: введем некоторую вероятность &amp;lt;math&amp;gt;K(\overline{y}|\overline{x})&amp;lt;/math&amp;gt; перехода &amp;lt;math&amp;gt;\overline{x} \rightarrow \overline{y}&amp;lt;/math&amp;gt;. Выберем произвольный путь &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; и случайным блужданием будем переходить от &amp;lt;math&amp;gt;\overline{x_{i-1}}&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;\overline{x_i}&amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;\overline{x_0}&amp;lt;/math&amp;gt; распределено с плотностью вероятности &amp;lt;math&amp;gt;p_0(\overline{x})&amp;lt;/math&amp;gt;, тогда определим итеративно:&amp;lt;math&amp;gt;p_i(\overline{x}) = \int_{\Omega} K(\overline{x}|\overline{y})p_{i-1}(\overline{y})d\overline{y}&amp;lt;/math&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вычислительное ядро алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вычислительное ядро алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23394&amp;oldid=prev</id>
		<title>Kst179: /* Общее описание алгоритма */</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23394&amp;oldid=prev"/>
		<updated>2017-10-23T16:33:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Общее описание алгоритма&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 16:33, 23 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Строка 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Общее описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Общее описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Основной объект с которыми работает трассировщик лучей это &#039;&#039;пути&#039;&#039; от источников света до камеры. Путь это ломанная, каждое звено которой имитирует направление движения фотона, ломанная начинается в источнике света, изменяет направление при попадании на какую либо поверхность, а последнее звено должно заканчиваться в камере. Обозначим путь как &amp;lt;math&amp;gt;\overline{x} = x_1, x_2, \dots, x_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;gt;1, x_i&amp;lt;/math&amp;gt; &amp;amp;mdash; координата на поверхности некоторого объекта от которого отражается луч). Для каждого пути введем некоторую функцию &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt;, обозначающую яркость, с которой этот луч освещает пиксель матрицы  камеры. Обычные методы трассировки лучей генерируют очень много путей и потом аггрегируют значение яркости по каждому пикселю. Это может быть очень долго, из за того что много компьютерного времени уходит на генерацию лучей с малой яркостью последующий вклад которых в результатирующее изображение мал (пример &amp;amp;mdash; две комнаты, разделенные слегка приоткрытой дверью в одной находится источник света, в другой &amp;amp;mdash; камера, тогда большинство независимо сгенерированных путей будет проходить сквозь стену, а значит иметь нулевую яркость). В &#039;&#039;&#039;MLT&#039;&#039;&#039; путь считается случайной величиной, с плотностью вероятности &amp;lt;math&amp;gt;p(\overline{x}) = \frac{1}{b}f(\overline{x}), b=const&amp;lt;/math&amp;gt;, а генерация путей происходит согласно этому распределению. Тогда получается что более весомых путей мы генерируем больше, а пути проходящие через стены или на которых теряется слишком много яркости мы практически не рассматриваем. Также если генерировать пути согласно вышеописанному распределению то выражение для подсчета окончательного изображения &amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x}&amp;lt;/math&amp;gt;, (где &amp;lt;math&amp;gt;m_j&amp;lt;/math&amp;gt; &amp;amp;mdash; значение &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-го пикселя, &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; &amp;amp;mdash; пространство всевозможных путей, &amp;lt;math&amp;gt;w_j(\overline{x})&amp;lt;/math&amp;gt; &amp;amp;mdash; индикатор того, что &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; попадает в &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-й пиксель) можно заменить на следующую несмещенную оценку:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Основной объект с которыми работает трассировщик лучей это &#039;&#039;пути&#039;&#039; от источников света до камеры. Путь это ломанная, каждое звено которой имитирует направление движения фотона, ломанная начинается в источнике света, изменяет направление при попадании на какую либо поверхность, а последнее звено должно заканчиваться в камере. Обозначим путь как &amp;lt;math&amp;gt;\overline{x} = x_1, x_2, \dots, x_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;gt;1, x_i&amp;lt;/math&amp;gt; &amp;amp;mdash; координата на поверхности некоторого объекта от которого отражается луч). Для каждого пути введем некоторую функцию &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt;, обозначающую яркость, с которой этот луч освещает пиксель матрицы  камеры.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Ray.jpg|справа|350пкс|Пример трассировки лучей]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Обычные методы трассировки лучей генерируют очень много путей и потом аггрегируют значение яркости по каждому пикселю. Это может быть очень долго, из за того что много компьютерного времени уходит на генерацию лучей с малой яркостью последующий вклад которых в результатирующее изображение мал (пример &amp;amp;mdash; две комнаты, разделенные слегка приоткрытой дверью в одной находится источник света, в другой &amp;amp;mdash; камера, тогда большинство независимо сгенерированных путей будет проходить сквозь стену, а значит иметь нулевую яркость).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В &#039;&#039;&#039;MLT&#039;&#039;&#039; путь считается случайной величиной, с плотностью вероятности &amp;lt;math&amp;gt;p(\overline{x}) = \frac{1}{b}f(\overline{x}), b=const&amp;lt;/math&amp;gt;, а генерация путей происходит согласно этому распределению. Тогда получается что более весомых путей мы генерируем больше, а пути проходящие через стены или на которых теряется слишком много яркости мы практически не рассматриваем. Также если генерировать пути согласно вышеописанному распределению то выражение для подсчета окончательного изображения &amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x}&amp;lt;/math&amp;gt;, (где &amp;lt;math&amp;gt;m_j&amp;lt;/math&amp;gt; &amp;amp;mdash; значение &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-го пикселя, &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; &amp;amp;mdash; пространство всевозможных путей, &amp;lt;math&amp;gt;w_j(\overline{x})&amp;lt;/math&amp;gt; &amp;amp;mdash; индикатор того, что &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; попадает в &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-й пиксель) можно заменить на следующую несмещенную оценку:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x} = \int _{\Omega} w_j(\overline{x})\frac{f(\overline{x})}{p(\overline{x})} p(\overline{x})d\overline{x} = \mathbb{E} w_j(\overline{x})\frac{f(\overline{x})}{p(\overline{x})} \approx \frac{1}{N} \sum _{i=0} ^{N} w_j(\overline{x_i})\frac{f(\overline{x_i})}{p(\overline{x_i})} = \frac{b}{N} \sum _{i=0} ^{N} w_j(\overline{x_i})&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x} = \int _{\Omega} w_j(\overline{x})\frac{f(\overline{x})}{p(\overline{x})} p(\overline{x})d\overline{x} = \mathbb{E} w_j(\overline{x})\frac{f(\overline{x})}{p(\overline{x})} \approx \frac{1}{N} \sum _{i=0} ^{N} w_j(\overline{x_i})\frac{f(\overline{x_i})}{p(\overline{x_i})} = \frac{b}{N} \sum _{i=0} ^{N} w_j(\overline{x_i})&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23392&amp;oldid=prev</id>
		<title>Kst179: /* += Общее описание алгоритма = */</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23392&amp;oldid=prev"/>
		<updated>2017-10-23T15:57:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;+= Общее описание алгоритма =&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 15:57, 23 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;+&lt;/del&gt;= Общее описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Общее описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Основной объект с которыми работает трассировщик лучей это &amp;#039;&amp;#039;пути&amp;#039;&amp;#039; от источников света до камеры. Путь это ломанная, каждое звено которой имитирует направление движения фотона, ломанная начинается в источнике света, изменяет направление при попадании на какую либо поверхность, а последнее звено должно заканчиваться в камере. Обозначим путь как &amp;lt;math&amp;gt;\overline{x} = x_1, x_2, \dots, x_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;gt;1, x_i&amp;lt;/math&amp;gt; &amp;amp;mdash; координата на поверхности некоторого объекта от которого отражается луч). Для каждого пути введем некоторую функцию &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt;, обозначающую яркость, с которой этот луч освещает пиксель матрицы  камеры. Обычные методы трассировки лучей генерируют очень много путей и потом аггрегируют значение яркости по каждому пикселю. Это может быть очень долго, из за того что много компьютерного времени уходит на генерацию лучей с малой яркостью последующий вклад которых в результатирующее изображение мал (пример &amp;amp;mdash; две комнаты, разделенные слегка приоткрытой дверью в одной находится источник света, в другой &amp;amp;mdash; камера, тогда большинство независимо сгенерированных путей будет проходить сквозь стену, а значит иметь нулевую яркость). В &amp;#039;&amp;#039;&amp;#039;MLT&amp;#039;&amp;#039;&amp;#039; путь считается случайной величиной, с плотностью вероятности &amp;lt;math&amp;gt;p(\overline{x}) = \frac{1}{b}f(\overline{x}), b=const&amp;lt;/math&amp;gt;, а генерация путей происходит согласно этому распределению. Тогда получается что более весомых путей мы генерируем больше, а пути проходящие через стены или на которых теряется слишком много яркости мы практически не рассматриваем. Также если генерировать пути согласно вышеописанному распределению то выражение для подсчета окончательного изображения &amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x}&amp;lt;/math&amp;gt;, (где &amp;lt;math&amp;gt;m_j&amp;lt;/math&amp;gt; &amp;amp;mdash; значение &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-го пикселя, &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; &amp;amp;mdash; пространство всевозможных путей, &amp;lt;math&amp;gt;w_j(\overline{x})&amp;lt;/math&amp;gt; &amp;amp;mdash; индикатор того, что &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; попадает в &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-й пиксель) можно заменить на следующую несмещенную оценку:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Основной объект с которыми работает трассировщик лучей это &amp;#039;&amp;#039;пути&amp;#039;&amp;#039; от источников света до камеры. Путь это ломанная, каждое звено которой имитирует направление движения фотона, ломанная начинается в источнике света, изменяет направление при попадании на какую либо поверхность, а последнее звено должно заканчиваться в камере. Обозначим путь как &amp;lt;math&amp;gt;\overline{x} = x_1, x_2, \dots, x_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;gt;1, x_i&amp;lt;/math&amp;gt; &amp;amp;mdash; координата на поверхности некоторого объекта от которого отражается луч). Для каждого пути введем некоторую функцию &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt;, обозначающую яркость, с которой этот луч освещает пиксель матрицы  камеры. Обычные методы трассировки лучей генерируют очень много путей и потом аггрегируют значение яркости по каждому пикселю. Это может быть очень долго, из за того что много компьютерного времени уходит на генерацию лучей с малой яркостью последующий вклад которых в результатирующее изображение мал (пример &amp;amp;mdash; две комнаты, разделенные слегка приоткрытой дверью в одной находится источник света, в другой &amp;amp;mdash; камера, тогда большинство независимо сгенерированных путей будет проходить сквозь стену, а значит иметь нулевую яркость). В &amp;#039;&amp;#039;&amp;#039;MLT&amp;#039;&amp;#039;&amp;#039; путь считается случайной величиной, с плотностью вероятности &amp;lt;math&amp;gt;p(\overline{x}) = \frac{1}{b}f(\overline{x}), b=const&amp;lt;/math&amp;gt;, а генерация путей происходит согласно этому распределению. Тогда получается что более весомых путей мы генерируем больше, а пути проходящие через стены или на которых теряется слишком много яркости мы практически не рассматриваем. Также если генерировать пути согласно вышеописанному распределению то выражение для подсчета окончательного изображения &amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x}&amp;lt;/math&amp;gt;, (где &amp;lt;math&amp;gt;m_j&amp;lt;/math&amp;gt; &amp;amp;mdash; значение &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-го пикселя, &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; &amp;amp;mdash; пространство всевозможных путей, &amp;lt;math&amp;gt;w_j(\overline{x})&amp;lt;/math&amp;gt; &amp;amp;mdash; индикатор того, что &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; попадает в &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-й пиксель) можно заменить на следующую несмещенную оценку:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23390&amp;oldid=prev</id>
		<title>Kst179: /* Общее описание алгоритма */</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23390&amp;oldid=prev"/>
		<updated>2017-10-23T15:57:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Общее описание алгоритма&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 15:57, 23 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Общее описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;+&lt;/ins&gt;= Общее описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Основной объект с которыми работает трассировщик лучей это &#039;&#039;пути&#039;&#039; от источников света до камеры. Путь это ломанная, каждое звено которой имитирует направление движения фотона, ломанная начинается в источнике света, изменяет направление при попадании на какую либо поверхность, а последнее звено должно заканчиваться в камере. Обозначим путь как &amp;lt;math&amp;gt;\overline{x} = x_1, x_2, \dots, x_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;gt;1, x_i&amp;lt;/math&amp;gt; &amp;amp;mdash; координата на поверхности некоторого объекта от которого отражается луч). Для каждого пути введем некоторую функцию &amp;lt;math&amp;gt;f(\overline{x})&amp;lt;/math&amp;gt;, обозначающую яркость, с которой этот луч освещает пиксель матрицы  камеры. Обычные методы трассировки лучей генерируют очень много путей и потом аггрегируют значение яркости по каждому пикселю. Это может быть очень долго, из за того что много компьютерного времени уходит на генерацию лучей с малой яркостью последующий вклад которых в результатирующее изображение мал (пример &amp;amp;mdash; две комнаты, разделенные слегка приоткрытой дверью в одной находится источник света, в другой &amp;amp;mdash; камера, тогда большинство независимо сгенерированных путей будет проходить сквозь стену, а значит иметь нулевую яркость). В &#039;&#039;&#039;MLT&#039;&#039;&#039; путь считается случайной величиной, с плотностью вероятности &amp;lt;math&amp;gt;p(\overline{x}) = \frac{1}{b}f(\overline{x}), b=const&amp;lt;/math&amp;gt;, а генерация путей происходит согласно этому распределению. Тогда получается что более весомых путей мы генерируем больше, а пути проходящие через стены или на которых теряется слишком много яркости мы практически не рассматриваем. Также если генерировать пути согласно вышеописанному распределению то выражение для подсчета окончательного изображения &amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x}&amp;lt;/math&amp;gt;, (где &amp;lt;math&amp;gt;m_j&amp;lt;/math&amp;gt; &amp;amp;mdash; значение &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-го пикселя, &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; &amp;amp;mdash; пространство всевозможных путей, &amp;lt;math&amp;gt;w_j(\overline{x})&amp;lt;/math&amp;gt; &amp;amp;mdash; индикатор того, что &amp;lt;math&amp;gt;\overline{x}&amp;lt;/math&amp;gt; попадает в &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-й пиксель) можно заменить на следующую несмещенную оценку:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;m_j = \int _{\Omega} w_j(\overline{x})f(\overline{x})d\overline{x} = \int _{\Omega} w_j(\overline{x})\frac{f(\overline{x})}{p(\overline{x})} p(\overline{x})d\overline{x} = \mathbb{E} w_j(\overline{x})\frac{f(\overline{x})}{p(\overline{x})} \approx \frac{1}{N} \sum _{i=0} ^{N} w_j(\overline{x_i})\frac{f(\overline{x_i})}{p(\overline{x_i})} = \frac{b}{N} \sum _{i=0} ^{N} w_j(\overline{x_i})&amp;lt;/math&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;То есть после семплирования путей &amp;lt;math&amp;gt;\overline{x_1}, \overline{x_2}, \dots, \overline{x_N}&amp;lt;/math&amp;gt; получаем что яркость j-го пикселя пропорциональна количеству приходящих в этот пиксель лучей а от их вида никак не зависит (но для этого необходимо чтобы пути строго соответствовали своему распределению).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Математическое описание алгоритма ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23369&amp;oldid=prev</id>
		<title>Kst179 в 12:11, 23 октября 2017</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23369&amp;oldid=prev"/>
		<updated>2017-10-23T12:11:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:11, 23 октября 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Metropolis light transport &amp;amp;mdash; это алгоритм, применяющий один из вариантов метода Монте Карло &amp;amp;mdash; метод Метрополиса-Гастинга, Монте Карло на Марковских цепях (&#039;&#039;&#039;Metropolis-Hastings, Markov chain Monte Carlo, MCMC&#039;&#039;&#039;), для генерации изображений при помощи физического описания трехмерных сцен. Алгоритм используется в компьютерной графике, решает задачу глобального освещения (точное моделирование световых эффектов). Отличается от классических методов, таких как Bidirectional path tracing скоростью работы и точностью моделирования (возвращает несмещенное значение).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23116&amp;oldid=prev</id>
		<title>Kst179: Новая страница: «= Свойства и структура алгоритма =  == Общее описание алгоритма ==  == Математическое описан…»</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Kst179/Metropolis_light_transport&amp;diff=23116&amp;oldid=prev"/>
		<updated>2017-10-21T10:37:18Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «= Свойства и структура алгоритма =  == Общее описание алгоритма ==  == Математическое описан…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Kst179</name></author>
	</entry>
</feed>