Для любознательных. Буквально на днях прочитал весьма поучительную историю о том, как делаются рекламные фотографии сухих молочных завтраков - на языке отцов-основателей они называются crisps, у нас пусть будут по-русски - мюсли. Общеизвестно, что мюсли - штука катастрофически хрупкая, и обычно на донышке пачки вместо той красотищи, что изображена на коробке, обнаруживается лишь сухое мелкодисперсное месиво. Так вот для того, чтобы сделать фотографию для оформления коробки, на пол высыпают целый ящик мюслей, после чего вручную, ювелирными щипчиками отбирают из огромной кучи 50-60 абсолютно целых, «жирных» кусочков (обычно к моменту начала ковыряния в куче их где-то столько целых и остается). Берется сосуд, в него опять же вручную, по одному укладываются отобранные ранее кусочки, затем промежутки заполняются ярко-белым гелем для волос (в отличие от клея, он не портится от яркого света и высокой температуры, создаваемых софитами) - это будет видимость молока. В зависимости от сорта сухого завтрака добавляются всякие вишенки или шоколадки - на самом деле внутри коробки их нет, но на фотографии они обязательно будут. И вот уже фотографируется эта несъедобная конструкция. Все - для человека…

Как мне кажется, стандарт Renderman и поддерживающие его рендереры являются средствами, которые чуть ли не подталкивают пользователя к оптимизации сцены и использованию всевозможных ухищрений. Сочетание простого текстового формата, обширных возможностей настройки качества и скорости рендеринга и достаточно высокая скорость рендеринга дают возможность постоянно экспериментировать с различными настройками, добиваясь оптимального баланса качества и скорости. Как уже стало заведено в этой главе, мы не будем сильно углубляться в дебри настроек и фокусов, показав лишь наиболее очевидные вещи и в некоторых случаях проиллюстрировав эти трюки простыми примерами.

И начнем мы с действительно простых вещей - а именно некоторых особенностей Renderman-совместимых рендереров.

ShadingRate

В RenderMan существуют несколько настроек качества изображения, которые являются критическими и без знания о которых вы не сможете добиться нормального баланса между временем расчета и качеством картинки. Основная такая настройка - это ShadingRate.

Prman, равно как и многие другие рендереры, накладывает шейдеры после тесселяции объекта на микрополигоны - будем называть их -сэмплами». Если посмотреть на этот вопрос немного упрощенно, то ShadingRate - это то количество пикселей, которое рендерер будет просчитывать за один вызов шейдера. Таким образом, вызов

ShadingRate 0.25

означает, что на каждый пиксель картинки шейдер будет вызван приблизительно 4 раза (1/0.25) в различных точках внутри этого пикселя, а полученные значения будут усреднены и, соответственно, качество картинки будет гораздо выше. Установка же такого значения:

ShadingRate 20

означает, что вызов шейдера будет производиться один раз на примерно 20 пикселей, что даст гораздо худшее качество - но рендеринг завершится очень быстро. Так вот, поскольку именно шейдинг в процессе обсчета картинки занимает большую часть времени (в особенности для сложных процедурных шейдеров, например, с нойзом), эта настройка чаще всего используется в Renderman’e.


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