Тесты GI в mr 3.4, новая схема настройки расчета GI |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
Тесты GI в mr 3.4, новая схема настройки расчета GI |
25/05/2005, 23:33
Сообщение
#1
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Мы все привыкли к тому, что для качественного расчета вторички в mental ray методом FG +PhotonMap для настроек FG нужно устанавливать маленькие значения max radius (менее 1 см) и накручивать accuracy – число FG sample до 2000 - 3000. Так вот, это неправильно.
Точнее, не совсем правильно. А еще точнее, это лишь часть правды. Дело в том, что уменьшая до безобразия радиус, мы тем самым заставляем ментал рассчитывать практически все видимые в камеру точки исключительно методом Monte-Carlo и полностью исключаем интерполирование. Когда радиус становится слишком мал, в его пределах нет (или почти нет) FG - точек и это справедливо почти для всех видимых в камеру точек. Для того, чтобы FG был FG, необходимо, чтобы выполнялась интерполяция, поэтому поступать нужно с точностью до наоборот - значение max. radius нужно задавать большим. Насколько большим? Сообщение отредактировал igsiv_ - 25/05/2005, 23:36 |
|
|
25/05/2005, 23:39
Сообщение
#2
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Позволю себе напомнить, что в документации ментала написано, что "max. radius определяет зону поиска FG-точек, которые могут быть использованы в интерполяции". Могут, не значит обязательно будут использованы. А обязательно использованы будут только те точки, ошибка интерполяции от которых не превышает заданного значения (ошибки интерполяции). Поэтому, задавать макс. радиус можно сколь угодно большим, ментал сам выберет подходящие для интерполяции точки и отбросит остальные. Небольшой оптимизации скорости расчета можно добиться установлением реального радиуса сбора, но в принципе, этим можно пренебречь.
Известно, что по умолчанию, ментал использует около 10% от максимального размера сцены, это вполне приемлемо. Ориентироваться можно также на размеры плоских областей в сцене – например, на размер стен, пола или потолка в интерьрах и т.д. Смысл в том, что гладкие ровные поверхности должны большей частью интерполироваться, а не рассчитываться. Что по поводу min. radius. Вот, это очень важно. Снова приведу цитату из документации: "min. radius определяет радиус площадки, в пределах которой все FG-точки обязательно будут принимать участие в интерполяции", добавлю – вне зависимости от ошибки интерполяции. Это значит, что именно min. radius отвечает за точность расчета вторички во-первых, и за ее размытость во-вторых. Устанавливая большое значение min. radius можно так размыть вторичку, что шум и артефакты будут скрыты даже при малых значениях accuracy (числе FG-лучей). И наоборот, малые значения min. radius позволяют точно рассчитать GI, правда, потребуется накручивать accuracy. |
|
|
25/05/2005, 23:41
Сообщение
#3
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Что это за "ошибка интерполяции" и где в настройках ее найти?
Такой настройки в интерфейсе ментала нет, и не ищите. Я предполагаю (и уверен в этом), что ошибка интерполяции "завязана" на значение accuracy – ее величина определяется в зависимотси от значения FG-sample. Чем больше это значение, тем меньше устанавливается ошибка интерполяции и тем требовательнее отбираются FG-точки для интерполяции. Попутно, это приводит к увеличению количества FG-точек и более плотному их расположению. Увеличиваем accuracy, значит и увеличиваем кол-во FG-точек. Это разумно, поскольку при малом числе FG-сэмплов, шум от расчета FG-точек методом Монте-Карло будет перекрывать ошибки от интерполяции, если она мала. А такое "завязывание" двух параметров в один обусловлено стремлением разработчиков упростить интерфейс. Таким образом, mental ray оценивает величину ошибки интегрирования методом М-К по заданному значению FG-samples и устанавливает величину ошибки интерполяции, которая соответствует ошибке интегрирования. Все это приводит к следующей схеме настройки расчета вторички менталом: 1. Устанавливаем max. radius большим (1/10 максимальной размерности сцены, можно и больше), min. radius оставляем пока по умолчанию; 2. Задаем небольшое значение accuracy в пределах 30 - 200 сэмплов на точку; 3. Считаем FG c сохранением в файл; 4. Поскольку изменение радиусов влияет только на интерполяцию, можно их менять, загружая расчет FG из файла (use file, без rebuild) и теперь настраиваем min. radius. Если есть шум и грязь, его можно увеличить, если грязи нет, а нужно увеличить точность вторички, радиус уменьшаем (в пределах, которые нам позволит accuracy, использованный при расчете). 5. Благодаря тому, что появился фильтр для усреднения значений FG-samples , а также благодаря тому, что радиусы можно задавать в пикселах и тем самым устанавливать точность вторички в зависимости от удаленности от камеры, можно реально считать хорошую вторичку при очень низких значениях accuracy. При этом вторичка будет и гладкой и достаточно точной. |
|
|
25/05/2005, 23:46
Сообщение
#4
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Теперь приступим к тестам. Для тестирования я выбрал модель интерьера кафедрального собора св. Джеймса (Cathedral of St James), расположенного в городе Sibenik. Модель этого собора использовалась в соревновательных тестах расчета освещения разными программами, адрес: http://hdri.cgtechniques.com/~sibenik2/index_sibenik.htm
Сама модель выполнена в LightWave и потом экспортирована в разные 3D-форматы. Модель не доделана, да еще и экспорт выполнен "по-быстрому". В результате геометрия – полный кошмар: дыры, недоделки, тонкие и длинные как иглы полигоны, сдвоенные плоскости... Я поправил, что мешало рендеру, сцену можете скачать отсюда, если есть желание принять участие в тестах. Еще одно, материалы были сделаны в оригинале для brazil, я так и оставил, не стал ничего удалять. В тестах ментала использовал один общий для всей сцены стандартный 3ds max - материал, свойства поверхности и фотонные свойства определены dgs material c ненулевыми диффузными свойствами. Модель собора довольно велика – около 50 метров по самой длинной стороне, поэтому сценка – очень серьезный тест для рендеров. Я сомневаюсь, что ее вообще можно посчитать в ментале за разумное время на одном компьютере по схеме "маленький радиус - большое accuracy", то есть методом М-К only. Во всех тестах расчет Global Illumination выполнен методом Photon Map + Final Gathering, фотонная карта считалась один раз и затем грузилась из файла. Размер фотонной карты около 2 млн. фотонов, радиус сбора фотонов 3 метра, собиралось приблизительно 600 фотонов на каждую точку. Время расчета фотонки – около 10 минут. Сцена (1.6 мБ) Фотонная карта Сообщение отредактировал igsiv_ - 26/05/2005, 00:30 |
|
|
25/05/2005, 23:50
Сообщение
#5
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 1
FG samples = 10 (!) max radius = 300 cm, min radius = default (30cm) filter = 1 time = 0:23:54.52 for computing finalgather points time render image 800x600 aa 1/4 1/4 + 15 min рендер Тест 1 Сообщение отредактировал igsiv_ - 26/05/2005, 00:31 |
|
|
25/05/2005, 23:51
Сообщение
#6
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Я немного "намутил" с освещением, поэтому изменил его настройки в последующих сценах – уменьшил интенсивности и увеличил сэмплироваание area источников света с 16 на 64 сэмпла. Всего в сене около 70 ис, по большинству area-типа.
Как видно из рендера, трехметровое значение max. radius никак не сказалось на точности вторички и на величине шума. Зато все плоскости имеют довольно "гладкий" вид. Вообще, для меня стало откровением, что всего при 10 сэмплах на FG-точку можно получить такую гладкую вторичку. Естественно, о точности и четкости вторички речь не идет. Min. radius оставлен по умолчанию и в данном случае составляет 30 см. То есть, все FG-точки с площадки радиусом 30 см принимают участие в интерполяции! По сути, вторичка размазывается по площадке диаметром в 60 см, что и позволило достичь ее гладкости. Экспериментирование с уменьшением радиуса почти немедленно приводит к появлению грязи и шума в углах. Я не стал больше возиться с этими настройками, но в принципе, можно уменьшить мин. радиус и убрать грязь увеличением FG filter до 2-3 или 4. Это может дать более точную вторичку без потери ее гладкости. Еще интересный вариант – попробовать использовать эти настройки с большой фотонной картой, фотонка обеспечит точность вторички, а FG- ее сглаженность. Этот вариант я пока не тестировал. Суммарное время расчета составило10+24+15=49 минут, что очень неплохо для такой большой сцены. |
|
|
25/05/2005, 23:53
Сообщение
#7
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 2
PM та же FG samples = 50 max radius = 300 cm, min radius = default (30cm) filter = 0 time = 0:58:03.47 for computing finalgather points time render image 800x600 aa 1/4 1/4 + 15 минут рендер Тест 2 Увеличил количество сэмплов с 10 до 50, что детализирует вторичку, радиусы прежние, а фильтр (=0). В рендере присутствует заметный шум. Сообщение отредактировал igsiv_ - 26/05/2005, 00:32 |
|
|
25/05/2005, 23:54
Сообщение
#8
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 3
samples = 50 max radius = 300 cm, min radius = default (30cm) filter = 2 time = 0:58:03.47 for computing finalgather points time render image 800x600 aa 1/4 1/4 + 15 min рендер Тест 3 Включение фильтра (=2) сглаживает шум полностью, время расчета не увеличивается. На мой взгляд, это вполне рабочая вторичка, обладающая достаточно сбалансированным компромиссом между точностью и гладкостью и ценой всего лишь в 1 час времени. Сообщение отредактировал igsiv_ - 26/05/2005, 00:33 |
|
|
25/05/2005, 23:56
Сообщение
#9
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 4
samples = 50 max radius = 300 cm, min radius = 3cm filter = 2 time = 0:58:03.47 for computing finalgather points time render image 800x600 aa 1/4 1/4 + 15 min рендер Тест 4 Пробуем увеличить точность вторички, уменьшая мин. радиус с 30 до 3 см. Точность и четкость вторички несомненно повысилась, правда, и "шумность" рендера тоже немножко, можно еще увеличить значение фильтра. Сообщение отредактировал igsiv_ - 26/05/2005, 00:34 |
|
|
25/05/2005, 23:57
Сообщение
#10
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 5
samples = 50 max radius = 300 cm, min radius = 3cm filter = 2 from same FG map time render image 800x600 aa 1 16 + 1h 27 min рендер Тест 5 Ну и 50 сэмплов "в полной красе" – с aa min = 1 и max = 16. Расчет с таким aa увеличил время рендера на полтора часа. Сообщение отредактировал igsiv_ - 26/05/2005, 00:35 |
|
|
25/05/2005, 23:59
Сообщение
#11
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 6
PM та же FG samples = 100 max radius = 300 cm, min radius = 3cm filter = 1 from same FG map time = 2:46:01.35 for computing finalgather points time render image 800x600 aa 1/4 1/4 + about 1h 30 min рендер Тест 6 Пробую еще увеличить точность и четкость вторички при помощи увеличения сэмплов до 100 и понижая значение фильтра до 1. Ну, точность повысилась, да и шум тоже. Фильтра в 1 недостаточно даже при 100 сэмплах на FG-точку. Время расчета FG возросло почти до трех часов. Сообщение отредактировал igsiv_ - 26/05/2005, 00:36 |
|
|
26/05/2005, 00:00
Сообщение
#12
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 7
samples = 100 max radius = 300 cm, min radius = 1cm filter = 2 from same FG map time = 2:46:01.35 for computing finalgather points time render image 800x600 aa 1 16 + 3h 53 min рендер Тест 7 Альтернативный вариант – точность вторички повышаю уменьшением min. radius c 3 до 1 см , а шум убираю фильтром, значение которого теперь равно 2. Повышение точности довольно существенное по сравнению с 3см. Ну и расчет с рабочим аа min=1 max=16, в результате чего время финального рендера возросло почти на 4 часа. Результат выглядит лучше, чем в предыдущем случае. Грязь на некоторых тонких деталях, на мой взгляд, вызвана недостаточным для такой сцены разрешением картинки. Вообще же точность вторички и ее гладкость вполне "на уровне", и это всего при 100 сэмплах. Сообщение отредактировал igsiv_ - 26/05/2005, 00:37 |
|
|
26/05/2005, 00:02
Сообщение
#13
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Тест 8
Пришло время использовать радиусы в пикселах. Дело в том, что высокая детальность вторички для дальних областей сцены вовсе и не нужна. Поэтому, разумнее задавать детальность вторички в зависимости от расстояния до камеры. И реалистично, и для гладкости хорошо. samples = 100 max radius = 300 pixels, min radius = 1 pixels filter = 2 from same FG map time = 2:46:01.35 for computing finalgather points time render image 800x600 aa 1 16 + 2h 03 min рендер Тест 8 Замечательно то, что и время финального рендера c aa сократилось вдвое (думаю, за счет упрощения antialiasing). Сообщение отредактировал igsiv_ - 26/05/2005, 00:39 |
|
|
26/05/2005, 00:03
Сообщение
#14
|
|
Мастер Группа: Участник Сообщений: 1 024 Регистрация: 07/05/2004 Пользователь №: 5 766 |
Выводы.
1. Для качественного расчета вторички вовсе не нужны малые значения max. radius, а совсем наоборот - для интерполяции нужны большие значения max. radius. Малые значения нужно устанавливать, если хотите просчитать рендер чистым Монте-Карло. 2. Min. radius определяет гладкость и точность вторички, чем меньше это значение, тем точнее вторичка и больше шум. На практике радиус в 1 см вполне применим в большинстве случаев. 3. Использование FG filter и радиусов в пикселях позволяет подавить шум и ускорить рендер. Все вместе дает нам возможность считать рендеры в ментале гораздо быстрее, чем при использвовании малых значений max. radius и больших значений accuracy без потери качества. |
|
|
26/05/2005, 00:16
Сообщение
#15
|
|
gagarin Группа: Участник Сообщений: 1 788 Регистрация: 05/05/2003 Пользователь №: 2 104 |
igsiv_ ну ты крут!!!
я в шоке реально людям помогаешь сегодня пожалуй уже спать пойду а вот завтра засяду испытывать новый подход:) Будь добр А залей куданить сцену с последними (сантиметровыми) настройками тоже поглядеть Сообщение отредактировал Sleng - 26/05/2005, 00:26 |
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 24/04/2024 - 00:27 |