Quantcast
Channel: ph_j_fry
Viewing all articles
Browse latest Browse all 53

VRay 2.0: shade map

$
0
0
Потестил немного shade map применительно к просчету DOF. Земля полнится слухами о сказочно быстром дофе в VRay 2.0, но не все так просто.

Опишу вкратце суть метода - если вдруг кто не был на евентеили не видел роликов с сиграфа .

1. Создается VRayStereoscopic helper
2. Т.к. нам не нужно стерео, то inerocular method лучше сменить c дефолтного shift both на shift right (и при финальном просчете использовать left view - т.к. именно левая камера из стереорига совпадает с нашей моно камерой, а правая камера в риге получена сдвигом вправо), либо на shift left (в таком случае потом надо использовать right view)
3. В разделе Shademap ставиться Render Shade map, указывается файл куда считать
4. Считаем картинку как обычно - ну там ГИ по вкусу и т.п. Если хелпер был включен, то должен народиться файл .vrst который вы указали ранее
5. Ставим в хелпере View: Left (для interocular: Shift Right), шейдмапу переключаем в Use shademap.
6. Включаем доф (в физикал камере или опциях рендера для простой камеры)
7. Т.к. в shade map запекается помимо прочего освещенность, то настройки ГИ можно не трогать. Ну то есть не нужно их переключать скажем на from file, можно оставить как было (single frame в моем случае). При рендере он быстро пробежится по пассам ГИ, но это произойдет оочень быстро.
8. Рендерим, Наслаждаемся быстрым и чистым дофом. Можно подзадрать семплы антиалайзинга - на рендере это практически не сказывается.

Теперь немного нюансов. Очевидно что shademap камерозависима. Подозреваю что это некий воксельный кеш, который считается для двух камер. Положение камер друг относительно друга определяется интерокуляром и фокус дистансом (который берется из камеры, либо указывается руками в хелпере). Т.е. если вы поменяли фокус дистанс, то считать шейдмап надо заново. Ну то есть ловко переводить фокус с одной и той же шейдмапой не получится. Но силу расфокуса можно менять буквально на лету, что приятно.

По поводу выигрыша по времени по сравнении с "классическим"методом. Картинки можно не смотреть, смотреть можно на время рендера:

1. Просто считаем картинку со включенной опцией render shade map в хелпере

Время рендера: 1 мин 50 сек

2. Смотрим сколько рендерится картинка с использованием shade map (пока без дофа)

Время рендера: 4.5 сек

3. Включаем в камере доф, рендерим.

Время рендера: 44.6 сек

4. Ради интереса выключаем shade map, смотрим сколько бы рендерился доф "по старинке"

Время рендера: 8 мин 18 сек

Считаем выигрыш:
shade map dof - 2 минуты 34 сек (1м50с+44с)
dof classic - 8 минут 18 сек.

Все замечательно, но, как обычно, есть нюанс. Смотрим внимательно на картинку:

Видно невооруженным взглядом что стакан с использованием shade map более размыт, чем стакан просчитанный обычным дофом. Точнее с самим стаканом все в порядке - он размыт одинаково, но вот с рефракшены/рефлекшены на передней и задней стенке (которые уже выпадают из фокуса) при использовании shademap размыты неправильно (все рефракшены/рефлекшены внутри стакана размыты так же как если бы они были "нарисованы"на передней стенке). Думаю это происходит потому что при рендере с shademap рефракшены/рефлекшены не являются результатом честного рейтрейса, а просто забейканы как колор. Думаю аналогичная ситуация будет происходить и с моушен блюром. Тот же самый эффект можно было раньше получить в рендермане - когда рефракшены (и прочие продукты рейтрейса) на быстро движущемся стеклянном объекте размывались при моушен блюре вместе с объектом. Чтобы такого не происходило и существует опция Exсlude при просчете Shade map - для объектов исключенных из шейдмапы будут действовать "обычные"законы рейтрейса (не проверял, но думаю что так и есть иначе нафига эта опция вообще). Кстати на заглавной картинке я просто пересадил стакан из недофленной картинки в дофленную. Пусть нечестно, зато красиво. В общем старик фрешлюфт с Z пассом все так же востребован, но в случае если вам кровь из носу надо честный (ну, условно честный) доф, то появился способ получить его не состарившись при этом. Хотя если еще раз подумать то наверное внутри фрешлюфта происходит нечто аналогичное - на основе зет и колора делается пойнт клауд, который дофится (каска со стройки). Так что даже и не знаю зачем весь этот гемор :) Хотя для рендера стерео шейдмапа, бесспорно, необходимая вещь.

Viewing all articles
Browse latest Browse all 53

Trending Articles