Существуют множество способов имитировать raytracing и GI. Например, в случае зеркального отражения - поставить камеру в необходимую точку, а затем результат рендеринга наложить как текстурную карту на само зеркало. Или вместо Global Illumination - по-умному расположить в сцене уйму источников света.

К сожалению, при всей возможной автоматизации этих триков они все равно требуют больших человеческих затрат опытных сотрудников, а их время стоит - что? Правильно: дороже машинного. Что еще хуже - очень часто эти трюки не срабатывают или срабатывают не так, как хотелось бы. И тогда приходится прибегать к честному рейтрейсингу и его родственникам - ambient occlusion и GI.

Без рейтрейсинга в современном кино- и видео-бизнесе, как говорится - никуда. Трейсить ambient occlusion придется все равно - это один из основных приемов быстрого достижения столь желанной фотореалистичности. Но у этой медали есть обратная сторона - простое включение рейтрейсинга в сцене увеличивает время просчета в разы, каким бы ультраоптимизированным рендерером вы не пользовались, и prman в этом не исключение, а, скорее, яркий пример. Поэтому, если вы делаете компьютерную графику в действительно больших количествах - для рекламы, кино или телевидения, постарайтесь поменьше raytrace’mb (а также ambient occlude'HTb, global illuminate’HTb и final gather’ить).

А если уж совсем припекло и стекло не получается стеклянным, а всего лишь тоскливо стекловидным, воспользуйтесь предыдущим советом и сразу записывайте результаты в отдельные слои, а потом используйте записанное, вместо того, чтобы каждый раз производить длительные расчеты заново.

Для продвинутых. Строго говоря, prman до сих пор не является рейтрейсером, даже несмотря на то, что подобную функциональность он реализует в полной мере. Основным алгоритмом, который он использует при рендеринге, является REYES; этот алгоритм полировался и оптимизировался в течение более чем десятка лет. Поддержка raytracing была добавлена в Renderman Pro Server не так уж и давно, и, судя по описаниям и опубликованным статьям, в ядро рендерера она не встроена. Таким образом, если вы не используете эту поддержку, все еще запускается старый-добрый, ультабыстрый REYES-движок. Если вам страсть как хочется потрейсить, к нему присоединяется новый: движки интенсивно обмениваются данными и даже совместно используют некоторые структуры в памяти, но все равно, ядро prman’a до сих пор остается старым, a raytracing - это всего-лишь добавление к нему, существенно замедляющее процесс.

Собственное все Рассказывая о работе студии Digital Domain над фильмом “I, Robot”, мы вскользь упомянули тот факт, что в различные слои рендерятся не только различные части робота, но и различные части шейдера, в частности diffuse-проход. Как это делается? Рассмотрим на примере стандартного шейдера plastic:

surface plastic( float Ks=.5, Kd=.5, Ka=1,

roughness=.1; color specularcolor=1 )

[

normal Nf; vector V;

Nf = faceforward( normalize(N), I );

V = -normalize(l);

Oi = Os;

Ci = Os * ( Cs * (Ka’ambient() + Kd*diffuse(Nf)) +


⇐ вернуться назад | | далее ⇒