3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Reply to this topicStart new topic
> Методы освещения в RAT, Occlusion, GI, фейки. Обсуждаем тут.
Trogwart
сообщение 30/12/2005, 11:14
Сообщение #1


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



Поскольку освещение - бесспорно самая сложная, хитрая и окруженная тысячами мифов часть работы с renderman, я взял на себя смелось создать эту тему.

На правах небольшого вступления...

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

Уроков полно, методы координально разные, а какой из них качественнее, быстрее? Многое из того что описано в интернете лежит еще со времен когда в рендермене отсутствовал рейтрейс, и видимо устарело. Причем изучение этой информации происходит под "оптимистические" реплики с разных форумов вроде "GI - явно не самая сильная сторона рендермена", "рейтрейсинг в нем страшно тормозной", "скайлайт будет считаться там тысячу лет, а вот vray..."

Покопавшись с недельку, наигравшись с сабдивами и creasing'ом,научившись подключать в конфиге .slim файлы, собирать шейдера из слоев, я собственно захотел получить то, ради чего я всем этим занялся - хоть насколько-нибудь приемлемую картинку.

Начать я решил с малого - имитации самого простого и растространенного освещения сцены: скайлайт+1 свет сверху-сбоку. Вот что у меня получилось, покачто с резкими тенями. Знаю, глюков полно, взять теже черные полосочки под объектами и полную темноту в узких промежутках (догадываюсь что это можно поправить найдя и порегулировав "экспонентность" чего-нибудь-там). Вобщем сильно не пинайте, это первое моя рендерменская картинка которую можно показывать людям smile.gif

user posted image

1024x768

Делал совместив этот и этот уроки.
Это обычный occlusion выполненный средствами только prman.

Промучался довольно долго. Когда наконец все ухищрения тов. ZJ заработали, и крутанул настройки рендера и разрешение карт в сторону качества, и... был приятно удивлен скоростью. Конечно считается не молниеносно, до вирея еще далековато smile.gif но очень даже приемлемо маленькая картинка 3мин 12сек, 1024x768 - 7мин 49с на p4 3.2. Кстати никакой специальной оптимизации (в виде плавной подборки разрешения карт, настроек рендера, антиальясинга) пока не делал. Думаю можно будет со временем довести до ума...

Вот собственно... начало обсуждения положено.
Интересно было бы узнать о дргих техниках, Ппробывать настоящее GI на фотонах. Послушать специалистов. Вобщем будем надеятся что тема будет жить и процветать.

P.S. С наступающим!

Сообщение отредактировал Trogwart - 30/12/2005, 11:38
Go to the top of the page
 
+Quote Post
Triptix
сообщение 30/12/2005, 19:59
Сообщение #2


MaxMan
Иконка группы

Группа: Пользователи
Сообщений: 185
Регистрация: 06/12/2004
Пользователь №: 8 737



А ради чего такие мучения, какова конечная цель собсна?
Go to the top of the page
 
+Quote Post
LeoxandeR
сообщение 30/12/2005, 20:07
Сообщение #3


BLADERUNNER
Иконка группы

Группа: Участник
Сообщений: 858
Регистрация: 20/12/2004
Из: Moscow
Пользователь №: 8 990



Конечная цель я так понимаю — оптимизация шейдеров и настроек рендерера для визуализации просто красивых катринок, а главное — анимации, чем собственно и славятся RenderMan-совместимые.

Trogwart, 7 мин. 49 с. для такой картинки с ambient occlusion очень многовато, скорее надо разобраться с настройками антиалиасинга. И AO по-контрастнее бы. smile.gif
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 30/12/2005, 22:46
Сообщение #4


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



Цветной вариант.

user posted image

Собрал слои в шейдере таким образом, что цвет скайлайта и цвет теней от скайлайта настраивается отдельно. Помоему намного интереснее чем стандартные серые или голубоватые тени. Кстати можно даже для разных объектов делать тени разного цвета.
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 01/01/2006, 16:22
Сообщение #5


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



user posted image

1024x768

Еще вариант - с мягкими тенями. Теперь отдельно настраивается не только цвет теней и светлых участков, но и их пределы (светлый и темный). Тоесть теперь 4 слота под цвет. Occlusion использвуется в качестве маски для разделения материалов.

Тени - raytrace areashadows, (128 семплов) тоесть прямой расчет (не фейк). Они замедлили рендер довольно сильно, (1024x768 - рендерилась 28 мин 50 сек). Но кстати я бы не сказал что они медленнее чем ареа-тени, как в бразиле например. Те тже заставляют нормально подождать, когда в финальном варианте пытаешься убрать нойз.

Сейчас попытаюсь заменить тени на какой-нибудь fake.
Go to the top of the page
 
+Quote Post
Michael_fd
сообщение 01/01/2006, 17:42
Сообщение #6


Уволился
Иконка группы

Группа: Участник
Сообщений: 2 561
Регистрация: 06/07/2002
Из: Санкт Петербург
Пользователь №: 289



Насчет ареа шедоус... у нас была идея фейка, через оклюжен - здесь есть даже про это статья небольшая http://www.deathfall.com/tutorials.php?op=showcontent&id=85 smile.gif Но для самостоятельной реализации все таки нужно немного уметь писать шейдеры. У меня к сожалению нету юзер френдли темплейта что бы выложить, но если там по ссылочке все прочитать , то дальше вполне можно двигаться самостоятельно smile.gif
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 01/01/2006, 18:38
Сообщение #7


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



Вау! Кстати, наверняка оклюжен можно расчитать 1 раз для всего, а потом на основе его уже делать скайлайт, фейковые тени, и чтонибудь вроде кавити (высветлять выступающие части и затемнять углубления).

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

Щас хочу попробывать вот этот фейк: http://zj.deathfall.com/softshadows.htm на основе размытия шедоумапы, хотя наверняка будет не очень аккуратно.
Go to the top of the page
 
+Quote Post
Michael_fd
сообщение 01/01/2006, 22:43
Сообщение #8


Уволился
Иконка группы

Группа: Участник
Сообщений: 2 561
Регистрация: 06/07/2002
Из: Санкт Петербург
Пользователь №: 289



Ну почему не закончили? smile.gif Оно в общем то работает замечательно, просто нету крсивого удобного темплейта для этого всего... а так можно совершенно спокойно взять код, который там в конце приведен, скомпилить и юзать sl'ку.
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 01/01/2006, 22:56
Сообщение #9


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



Michael_fd, щас попробую smile.gif

Вот с фейковыми тенями по уроку zj (размытая shadowmap с 1 семплом). Какието странные тени: они размываются както "наизнанку". Тоесть от маленьких деталей тени мягче чем от больших. Зато шустрые дико - разницы в скорости вообще нету, что с ними что без (да собственно то много сил и не надо чтобы 1 шадоумапу нарисовать стандартную).

user posted image

Сообщение отредактировал Trogwart - 01/01/2006, 22:57
Go to the top of the page
 
+Quote Post
anty
сообщение 02/01/2006, 01:38
Сообщение #10


Очень редкий гад
Иконка группы

Группа: Модераторы
Сообщений: 5 050
Регистрация: 25/12/2002
Пользователь №: 1 332



Trogwart
Ну обещаны были разные варинаты, продолжай, интересно же))
кста последняя очень даже, напоминает эффект как в бразе ИС с фотометриком, как я понимаю ги пасс - АО ?
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 02/01/2006, 02:48
Сообщение #11


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



Michael_fd, чета если честно не догоню как юзать тот твой код. Щас сел порылся в синтаксисе sl.. сложновато чтобы так сходу въехать. Просто так sl не компелируется, ведь ему надо указать кроме того кода еще кучу сопутствующей мишуры, в которой я пока не разобрался. Что-то вроде к какому типу он относится и все такое. А я что-то не врублюсь как это сделать. Может подкинешь готовый шейдер?

anty, Все попробуем. Сейчас я завершу этот первый тест какой-нибудь удачной тенью и переду к фотонам. Тут собственно ги пока нету, просто на объектах наложена ч/б маска созданная с помощью occlusion, и ей разделены цвета не поверхности. Грубо говоря все что мы видим - это текстура. Никакого колор блидинга и всего такого, просто я удачно подобрал в последнем примере цвета.
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 02/01/2006, 04:53
Сообщение #12


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



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

Для фейков характерны глюки, необходимость тонкой настройки (для теней создаются специальные координатные системы, в пределах которых они размываются и тд), и вообще они неаккуратные, тени от небольших деталей теряются. Но приимущество в скорости просто колоссальное. Вобщем всему найдется свое применение - фейки надо использовать там, где детальные тени не очень важны - для скайлайта, в качетсве неосновных сильно размытых теней. Для основного ключевого света лучше использовать "честные" ареатени.

Вот что получилось (оклюжен+фейк тени). Незнаю как вам, а мне нравится smile.gif особенно скорость - вот эта картинка с "чистовыми" настройками рендерилась 3 мин 8 сек.

user posted image
Go to the top of the page
 
+Quote Post
Michael_fd
сообщение 03/01/2006, 00:26
Сообщение #13


Уволился
Иконка группы

Группа: Участник
Сообщений: 2 561
Регистрация: 06/07/2002
Из: Санкт Петербург
Пользователь №: 289



Ну, дальше с этим можно по разному поступить... один вариант полностью написать свой навороченный слим темплейт, напихать туда кучу всего, другой вариант сделать по минимуму, и написать просто лайт шейдер, который ничего не будет уметь кроме, как сгенерить такую тень. Но самый простой способ, если нету возможности самому написать, то что нужно - это открыть слим, создать например спот лайт, открыть его настройки, а дальше меню file и там View sl source - это в общем то и будет код этого самого спот лайта, который сгенерил слим.

Дальше остается просто взять и в конце когда присваивается конечный результат расчета в Cl заменить на нашу функцию. А старый удалить.

Вот, код, который можно скомпилить. Я почистил частично, то что не нужно было изначально, но многое осталось все равно, поэтому это не в коем случае не пример для обучения, а просто что б работало smile.gif

А дальше можно уже накручивать цвет, интенсивность и т.д. если есть желание...

CODE

light ocSpot (float ConeAngle=30;
      float PenumbraAngle=5;
      float xsamples = 16;
      float ShadowBlur = 5;)
{

 color cResult;  


 point from = point "shader"(0,0,0);
 vector axis = normalize(vector "shader"(0,0,1));
 uniform float angle = radians(ConeAngle);
 uniform float penumbra = radians(PenumbraAngle);
 uniform float cosoutside = cos(angle);
 uniform float cosinside = cos(angle-penumbra);
 __inShadowC = color(0);
 illuminate(from, axis, angle)
 {
   varying float atten, cosangle;
   cosangle = L.axis / length(L);
   atten = smoothstep( cosoutside, cosinside, cosangle );
   atten *= 1 / pow(length(L), 0);

   __nondiffuse = 1 - 1;
   __nonspecular = 1 - 1;
   _contribRim = 1;
   _contribThinTranslucence = 1;
   _contribBackScattering = 1;
   _contribSubsurfaceScattering = 1;


  cResult = occlusion(Ps, -L, xsamples, "coneangle", ShadowBlur/180*PI, "maxdist", length(L));
  Cl = 1 - cResult;

 }
}
Go to the top of the page
 
+Quote Post
Trogwart
сообщение 03/01/2006, 00:39
Сообщение #14


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 421
Регистрация: 20/06/2002
Пользователь №: 109



Спасибо большое, завтра попробую!
Go to the top of the page
 
+Quote Post
Michael_fd
сообщение 03/01/2006, 01:10
Сообщение #15


Уволился
Иконка группы

Группа: Участник
Сообщений: 2 561
Регистрация: 06/07/2002
Из: Санкт Петербург
Пользователь №: 289



Но я думаю, понятно, что этот способ будет очень хреново работать на мелких и тонких деталях из-за природы оклюжена...
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






2 страниц V   1 2 >
Reply to this topicStart new topic

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19/03/2024 - 14:43