Skocz do zawartości

Jak uzyskać efekt Aberracji Szkła/Wody w V-Ray'u?


Rekomendowane odpowiedzi

  • Odpowiedzi 14
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Napisano

Renderman, podobnie jak inne REYESy, również fakują aberracje. Tylko fizyczne modele potrafią takie rzeczy. W Rendermanie, tak jak w Mantrze, kolor secondary rays przelicza się na model spektralny, w nim rozczepia, a potem scale z powrotem w rgb. Nie jest to poprawna aberracja, ale działa.

 

Tu masz ciekawy wątek o pisaniu shadera dla Houdiniego, który bierze takie rzeczy pod uwage. Ten shader jest prawie identyczny z tym, ktory trzeba by napisac dla Rendermana. Wątpie, żeby w standardowej instalacji PRMana, był taki shader... ale musiałbym sprawdzić.

 

http://forums.odforce.net/index.php?showtopic=4196

 

pozdr.,

skk.

Napisano

Z tego co widze to nie do końca to o co mi chodziło, ale materiał nie zły. Spójrz na RenderTime, 2h na 2rdzeniach, trochę nie wydajny ten materiał...

Napisano

Zaprogramowana ręcznie aberracja chromatyczna (aka dyspersja światła) wygląda mniej więcej tak:

 

glass24yl5.th.jpg

 

Oczywiście bez caustyki, którą trzeba by za pomocą fotonów zrobić.

Czasy wahają się od 5 minut dla standardowych ustawień Mantry, do 20 minut dla: Shading Quality 2, Ray Shading Quality 2, Pixel Samples 9x9.

 

Jeszcze jeden test:

 

glass36ev7.th.jpg

 

Tu trochę mniej subtelny efekt:

 

glass69sz0.th.jpg

 

To oczywiście nie ma nic wspólnego z fizycznym modelem refrakcji. Poza tym, że bierze się na przykład pod uwagę w miarę dokładny model fresnela dla powierzchni dialektycznych.

 

pozdr.,

skk.

Napisano

Mozesz tez zrobic taki trick, ze renderujesz 3x ten sam obrazek (w sumie wystarczy tylko obiekt, który ma miec dyspersje) zwiekszajac za kazdym razem odrobine IOR (np. o 0.01), a nastepnie komponujesz w jakims Photoshopie czy innym GIMPie, w ten sposob ze bierzesz kanal R z pierwszego, G z nastepnego i B z kolejnego i sklejasz w kupe, uzyskujac piekna dyspersje vel aberacje chromatyczna (jak na "rysunku" ;)

thumb_47b6b6c4117bd407958713.jpg

 

p.s. SYmek, czy Pixel Samples 9x9 to przypadkiem nie za duzo, jak dla sceny bez motion blura czy dofa? ;)

Napisano

SYmek - bardzo ładnie to wygląda, za samotne programowanie shaderów jeszcze sie nie zabierałem, da się tak w v-ray'u?

 

G.P - Naprawdę miałeś dobry pomysł, świetne :)

Napisano
SYmek - bardzo ładnie to wygląda, za samotne programowanie shaderów jeszcze sie nie zabierałem, da się tak w v-ray'u?

Z tego co wiem, VRAY nie posiada zadnego jezyka cieniowania jak VEX w Mantrze czy RSL w RenderManie, wiec chyba jedynie poprzez SDK, a to juz wyzsza szkola jazdy IMO.

 

Swoja droga, da sie SYmek w H9 pisac szadery przy pomocy Pythona? (bo zdaje sie, ze taka mozliwosc posiada najnowszy PRMan)

 

G.P - Naprawdę miałeś dobry pomysł, świetne :)

Pomysl nie moj, zaslyszany ;)

Ale dziala i wyglada calkiem ok, tylko trzeba 3x razy renderowac to samo, co troche wydluza czas i zniecheca ;)

Napisano

Oh mój kochany Final, kiedyś tylko go używałem, i bawiłem się dyspersją, aberracją, extra materiałami, tam można było wiele zdziałać... może znowu powrócę, tylko gorzej z GI tam :)

Napisano
][/u]

p.s. SYmek, czy Pixel Samples 9x9 to przypadkiem nie za duzo, jak dla sceny bez motion blura czy dofa? ;)

 

Za dużo, ale walczyłem głównie o wywalenie ząbków z "secodary rayes". Potem okazało się, że to geometria, którą wziąłem z odforce jest zła. Jest za mało gęsta, żeby liczyć bez subdivision i jednocześnie za gęsta, bo po włączeniu "render polygon as subdivision" Mantra bardzo zwalniała. Wystarczyło na przykład zrobić subdivade w Sopach i liczyło się znacznie szybciej. Ostatni przykład liczył się około 2 minuty z niskimi ustawieniami. Doszło by do pięciu w wyższych ustawieniach. Zresztą to jest Nurbs, i mantra zapieprza po nim jak oszalała (znacznie szybciej niż w H8).

 

Poza tym Pixel Samples 9x9 nie miał dużego wpływu na czas. Bardziej już Shading Quality = 2, które daje przepiękną ostrość tekstur i idealne krawędzie (bez szumu i ząbków jak ma to miejsce w przypadku raytracerów). Shading Quality uzależnia ;).

 

pozdr.,

skk.

 

 

PS Jeśli już mowa o trikach, to oprócz pomysłu podanego przez G.P. moża by z łatwością zrobić to w kompozycji i szczerze powiem, byłby to mój pierwszy test w takiej scenie. Wystarczy albo wypluć oddzielny pass tylko dla refrakcji, albo powalczyć z maskowaniem (via luma matte na przykład) w kompozycji i rozbić te kolory displacem 2d. Tak się kiedyś robiło.

 

EDIT: To znaczy refrakcje użyć jako mapę dla displace 2d... o to mi chodziło.

 

EDIT2:

 

@G.P. Nie, nie da się pythonem pisać shaderów w H9 i nie bardzo wiem, czemu by to miało służyć. W Rendermanie chodzi, zdaje się, o coś innego, ale nie jestem pewien. Marko-język, w którym w RAT'cie był TCL zamieniono na Pythona. Czyli za pomocą makr możesz składać shader z kawałków i do tego służył RAT przecież. To jest dokładnie to samo, co robi VOP. Zobacz na voplib.h, tam są zdefiniowane wszystkie makra dla Vopsów. Robienie tego w Pythonie mija się z celem. Chyba, że chodzi o istnienie klas w najnowszym RSL... jeszcze tego nie widziałem.

 

Mogę nawet zdradzić, że kiedyś w chwili rozpaczy nad Vexem, chciałem coś podobnego zrobić. Na szczęście mi się nie udało, bo parser dla C, napisany w Pythonie to nie jest łatwa sprawa, chyba że korzysta się z gotowego rozwiązanie, które istnieją.

 

Jeśli jednym powodem dla pisania shaderów w pythonie ma być łatwiejsza składnia, to to zupełnie nie ma sensu, bo opanowanie składni Vexa, to kwestia kilku godzin.

 

Swoją drogą zdaje się, że Gelato ma translator RSL -> Python.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności