Skocz do zawartości

YafaRay sun bez cienia ??


Rekomendowane odpowiedzi

  • Odpowiedzi 10
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Napisano
Z tego co wiem yafray ma tylko raytracing, więc się go nie pozbędziesz.

Co ma piernik do wiatraka? Sam Raytracing może być nawet bez żadnych cieni (a nawet materiałów czy oświetlenia).

 

Btw możesz podać jeden przykład renderera który nie korzysta "tylko" z raytracingu (nie mówię o rendererach korzystających z OpenGL i Dx)? Wszystkie korzystają tylko z raytracingu tylko w rozszerzonej formie jak pathtracing (śledzi wysyłane losowe promienie w hemisphere - jednak to dalej tylko śledzenie promieni (które daje nam GI)), bidirectional raytracing/pathtracing - śledzenie promieni od oka do światła i od światła do oka (drogie obliczeniowo, ale realistyczne efekty kaustyczne, gi...), photon mapping - renderowanie w 2ch passach - raz do tekstury śledzi się promienie od światła, później finalny raytracing i mapuje teksturę z fotonami, MLT (pierwsza rzecz, której yafaray nie ma - ma to indigo, maxwell, luxrender) też opiera się tylko na śledzeniu promieni ;].

 

Mam pytanie odnośnie oświtlenia w YafaRay 0.1.1. Da się jakoś pozbyć cienia rzucanego przez lampę typu sun?

Niestety w tej chwili eksporter i/lub renderer nie obsługuje wyłączenia poszczególnego cienia.

Napisano

Blender internal, Mental Ray, RenderMan, Maya internal, 3D Studio internal, i wiele innych. W Yafrayu nie da się wyłączyć raytracingu. To jest raytracer. Został do tego napisany, gdyż jest to łatwiejsze niż opracowanie efektywnej metody generacji obrazu z danych 3d, a przy tym daje świetne efekty. W większości profesjonalnych silników masz opcję scanline lub raytracing (w Lightwave jest trochę inaczej).

 

Edit: Wszystkie algorytmy które opisujesz opierają się na raytracingu, więc dają cienie, różnica polega tylko na tym jak ten tracing jest wykonany i po co.

Napisano
Blender internal, Mental Ray, RenderMan, Maya internal, 3D Studio internal, i wiele innych. W Yafrayu nie da się wyłączyć raytracingu. To jest raytracer. Został do tego napisany, gdyż jest to łatwiejsze niż opracowanie efektywnej metody generacji obrazu z danych 3d, a przy tym daje świetne efekty. W większości profesjonalnych silników masz opcję scanline lub raytracing (w Lightwave jest trochę inaczej).

Blender internal to tylko i wyłącznie raytracer!

Inne korzystają z rasteryzacji tylko ze względów historychnych i nikt tego dzisiaj nie używa (bo odkąd są dostępne shadery korzystanie z rasteryzacji na CPU jest głupim rozwiązaniem, bo to samo za darmo tylko dużo szybciej bo na gpu uzyskuje się w OpenGL/DX).

 

Edit: Wszystkie algorytmy które opisujesz opierają się na raytracingu, więc dają cienie, różnica polega tylko na tym jak ten tracing jest wykonany i po co.

Nie wiesz o czym mówisz - sam raytracing nie daje cieni (efektem niektórych z modyfikacji jak bidirectional dają przez właśnie liczenie w obie strony (i od razu daje cienie i efekty kaustyczne)) - żeby je mieć trzeba się osobno postarać i je dla każdego światła osobno policzyć (dlatego możesz cienie dowolnie modyfikować i zmieniać ich miękkość), więc wyłączyć pojedynczy cień to sprawa wręcz banalna - po prostu przy liczeniu cieni jeśli światło nie ma mieć cieni po prostu przeskakujemy do kolejnego światła ;p

Napisano
Blender internal, Mental Ray, RenderMan, Maya internal, 3D Studio internal, i wiele innych.

 

 

W Maxie renderując mentalem, internalem, a także każdym innym rendererem wystarczy jedno kliknięcie, żeby dla dowolnego światła wyłączyć cienie, a także zmienić ich rodzaj. Można też pozostawić światłu rzucanie cieni, a wyłączyć je na przykład dla jednego obiektu. Zarówno RZUCANIE cieni, jak i ich PRZYJMOWANIE możesz dla obiektów dowolnie włączać i wyłączać.

 

Chyba coś się zamotałeś...

Napisano (edytowane)

Zrobił się chaos, więc trzeba wyjaśnić definicje

Raytracing - śledzenie promieni. Program sprawdza dla każdego punktu, czy jakiś face nie znajduje się na linii. Potem określa kąt do światła (dla każdego z osobna) i jeżeli cienie są włączone, sprawdza czy między tym punktem na face a światłem nie ma jakiejś geometrii rzucającej cień, a potem puszcza ewentualnie raye dla odbić, przeźroczystości, ewentualnie AO lub różnych technik GI (nie wszystkich). Powolny, chociaż boundingboxy i drzewa faców przyśpieszają bardzo.

Scanline - technika polegająca na najpierw sprawdzeniu dla każdego trójkąta jego położenia w planie i zakodowania jego identyfikatora w buforze oraz odległości do kamery w zbuforze. Potem dla każdego punktu odczytuje się który face był najbliżej i oblicza cieniowanie. Jeśli chcemy cienie musimy robić shadowbuffery obliczane wcześniej.

Fotony - to jest technika raytracowa, gdyż oblicza raya od światła do faców wraz z odbiciami.

Final Gathering - To samo tylko że przed głównym renderingiem oblicza promienie od punktu na face do innych punktów i próbek fotonów.

Inne techniki (pathtracing bi.. itd.) - też raytracing.

Radiosity - To scanline w czyste postaci, gdyż tworzy bufory cieni, na podstawie których przypisuje wierzchołkom (vertexom) jasność i kolor.

Najczęściej programy używają połączenia technik. Można na przykład w MentalRayu zrobić scanline dla określenia co gdzie a potem jeśli materiały mają odbicia to engine puszcza raya, podobnie z cieniami. Czasami jednak raytracing jest szybszy od scanline, jeśli np. dużo geometrii jest poza kadrem, a i tak nie ma odbić, oczywiście przy dobrze dobranych parametrach drzewa i odpowiednim rozmiarze liścia, czego w nowym mentalu się nie ustawia.

 

Yafray - Yaf(a)ray - jest tylko raytracerem - nie potrafi robić scanline, zawsze buduje drzewko i sprawdza je dla każdego punktu (czyli próbki pixela). Właśnie dlatego jest wolniejszy od wielu rendererów, ale za to ma dosyć szybki raytracing (według mnie jednak wolniejszy od mentala, chociaż tego nie da się nigdy dokładnie zmieżyć).

 

Edit:

@Amor_priv

Jak w większości silników renderujących, gdyż mental ma zarówno scanline jak i raytracing i potrafi oba robić "na raz". Również raytracing nie wyklucza braku cienia raytracowanego czy buforowanych różnych odmian, ale kwestia dotyczy Yafraya, który nie ma po prostu przełącznika do wyłączania cienia, co może być dziwne ale znacznie upraszcza "naukę" tego programiku.

Te twoje zamotanie to raczej niewiedza co program robi jak sobie "raz" klikniesz (to nigdy nie jest jedno kliknięcie), czyli traktowanie softwaru jak czarnej skrzynki. Co robi program to zupełnie co innego jak to robi, i raczej nie każdy engine w 3D studio pozwala ny wyłączanie indywidualnych cieni.

Edytowane przez dac77
Napisano
Zrobił się chaos, więc trzeba wyjaśnić definicje

Raytracing - śledzenie promieni. Program sprawdza dla każdego punktu, czy jakiś face nie znajduje się na linii. Potem określa kąt do światła (dla każdego z osobna) i jeżeli cienie są włączone, sprawdza czy między tym punktem na face a światłem nie ma jakiejś geometrii rzucającej cień, a potem puszcza ewentualnie raye dla odbić, przeźroczystości, ewentualnie AO lub różnych technik GI (nie wszystkich). Powolny, chociaż boundingboxy i drzewa faców przyśpieszają bardzo.

A przed chwilą mówiłeś, że się nie da wyłączyć dla każdego z osobna bo to raytracer ;p. Inną sprawą, że pass z cieniami nie zawsze tak wygląda (a tak naprawdę bardzo rzadko), bo w przypadku miękkich cieni sprawdza kilka pkt w promieniu X od renderowanego i dla każdego sprawdza czy światło z tego pkt nie jest widoczne.

 

Scanline - technika polegająca na najpierw sprawdzeniu dla każdego trójkąta jego położenia w planie i zakodowania jego identyfikatora w buforze oraz odległości do kamery w zbuforze. Potem dla każdego punktu odczytuje się który face był najbliżej i oblicza cieniowanie. Jeśli chcemy cienie musimy robić shadowbuffery obliczane wcześniej.

Nie tyle sprawdzeniu położenia co obliczeniu go przez pomnożenie punktów przez macierz widoku (i efekt poddany rasteryzacji - dokładnie to samo robi OpenGL/DirectX tylko że na gpu wydajniej) - a cienie to wcale nie muszą być shadow mapping, a może być shadow volume.

 

Radiosity - To scanline w czyste postaci, gdyż tworzy bufory cieni, na podstawie których przypisuje wierzchołkom (vertexom) jasność i kolor.

Radiosity tworzy buforów cieni, ale w żadnym wypadku nie przez rasteryzację tylko właśnie przez raytracing - geometrię dzieli na płaty i każdy płat ma przypisaną jakąś wartość pochłaniania światła, jak uderzy w niego promień to rozświetla płat i odbity promień w hemisferze ma mniejszą jasność i kolejny już mniej oświetla i tak do wygaśnięcia promienia lub osiągnięcia maksymalnej ustalonej głębokości.

 

Yafray - Yaf(a)ray - jest tylko raytracerem - nie potrafi robić scanline, zawsze buduje drzewko i sprawdza je dla każdego punktu (czyli próbki pixela). Właśnie dlatego jest wolniejszy od wielu rendererów, ale za to ma dosyć szybki raytracing (według mnie jednak wolniejszy od mentala, chociaż tego nie da się nigdy dokładnie zmieżyć).

Co ma do tego drzewko? Czy raytracer czy rasteryzer praktycznie zawsze buduje się drzewko (kd-tree, octree...) mimo, że żaden ze sposobów tego nie wymaga - po prostu drzewa pozwalają łatwiej zarządzać geometrią i sprawdzać czy promień przeciął poly/poly znajduje się w zakresie widoku kamery tylko z poly które faktycznie mogą tam być, lub bardzo blisko - właśnie przez to, że buduje drzewa jest szybszy niż byłby bez ;].

Napisano

Nie wiem skąd kłótnia, skoro się ze mną zgadzasz generalnie, ale Yafray nie może działać bez cieni, bo to nie Mental Ray. Chcesz bez cieni to zciągnij kod źródłowy i przerób go, ale jego autorzy tego nie zaprogramowali, czyli że jest to ścisły raytracer. Shadowbuffery nie są tworzone z użyciem raytracingu, chociaż mogły by być, ale szybkość takiego rozwiązania byłaby żenująca - ich technologia przypomina rodzaj scanlinu. Sam do końca nie rozumiem jak to się odbywa i nie potrafiłbym tego zaprogramować.

YAFRAY NIE ROBI BEZ CIENI!!!!!!

Napisano
...Yafray nie może działać bez cieni, bo to nie Mental Ray.

Yafaray nie robi bez cieni, bo nie dali przełącznika - nie dlatego, że to nie Mental Ray.

 

Chcesz bez cieni to zciągnij kod źródłowy i przerób go, ale jego autorzy tego nie zaprogramowali, czyli że jest to ścisły raytracer.

Ścisły raytracer? "Ścisły" raytracer (czyli taki jakie były pierwsze raytracery) nie ma cieni (ani nawet oświetlenia). To, że nie ma takiej opcji wyłączenia to oznacza tylko tyle, że nie ma - nie dorabiaj do teorii do tego, że powodem jest to, że jest raytracerem lub "ścisłym raytracerem", bo jest to bzdura.

 

Shadowbuffery nie są tworzone z użyciem raytracingu, chociaż mogły by być, ale szybkość takiego rozwiązania byłaby żenująca - ich technologia przypomina rodzaj scanlinu. Sam do końca nie rozumiem jak to się odbywa i nie potrafiłbym tego zaprogramować.

Jeśliby to były zwykłe bufory cieni (ogólnie nazywanie ich tak w tym wypadku do duże nacięgnięcie) to tak byłoby to bezsensu - jednak radiosity to nie bufory cieni, a buffory, które w prawdzie uwzględniają głębokość (im dalej leci promień tym ma mniejszą moc sam z siebie - nie tylko po odbiciach), tak jak w shadow buffer (a dokładniej depth buffer wykorzystywanych w shadow mappingu), z tym, że nie zapisuje w bufforze informacji o głębi, a o naświetleniu płatu (przez promienie).

Napisano

Ścisły gdyż robi tylko raytracing.

Radiosity działa przez generowanie shadowbufferów z punktu widzenia geometrii, nie kamery, i na tej podstawie rzdziela energię - tam gdzie nie ma cienia tam jest światło. Można nawet ustawić wielkość tego bufora. To jest moje ostatnie słowo, bo mnie to już odrobinkę męczy i trochę nieładnie że porwaliśmy wątek dla toczenia wojny religijnej.

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