Skocz do zawartości

Blender pbr painter.


rice

Rekomendowane odpowiedzi

  • Odpowiedzi 34
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Bardzo fajny research. Do Paintera jeszcze daleko ale widzę że coś już można pocisnąć. Też drążę podobne klimaty tylko raczej w proceduralkach 3D

 

Ja czekam aż nowy viewport z PBR i przebudowany internal staną się rzeczywistością. Na prawdę nie trzeba będzie wiele żeby móc wtedy pracować w blenderze tak podobnie jak w Substance Designerze / Painterze. Nody blendera mimo że nie są przystosowane do takiego workflow to dają radę, niektóre nawet lepiej niż te z SD (korekcja koloru w SD jest parszywa). :) Tak na prawdę jedyne czego brakuje (poza w pełni zintegrowanym PBR oczywiście) to pare bakerów i nody FXMaps (generatory masek) wszystko inne już jest z blendku. Na upartego bakery da się napisać w OSLu. FXMaps z palcem w nosie da się napisać za pomocą prostego shadera GLSL który będzie można wpiąć w nody nowego viewportu podobnie jak to teraz działa ze skryptami OSL i cyclesem. 2.8 będzie zaaaaajebiste. :D

Odnośnik do komentarza
Udostępnij na innych stronach

dobre pytanie ;) Co masz na myśli pisząc oszukany pbr

Mam na myśli tradycyjny shader model + jakieś triki żeby wyglądało jak PBR. Chodzi mi o to czy jak wypluję tekstury z tego to będą się tak samo zachowywać w Painterze, Unity czy Unreal?

FXMaps z palcem w nosie da się napisać za pomocą prostego shadera GLSL który będzie można wpiąć w nody nowego viewportu podobnie jak to teraz działa ze skryptami OSL i cyclesem.
To napisz proszę.
Odnośnik do komentarza
Udostępnij na innych stronach

O, a ja od 2-3 tygodni też walczę z wykorzystaniem fake PBR w swoim workflow na podobieństwo Substance Paintera. Rice - filmików jeszcze nie obejrzałem, zaraz to nadrobię. Z tego co ogarniam to w blendku można na razie jedynie "fakować" PBR. Są problemy np z wyświetlaniem poprawnie materiałów właśnie dlatego że to nie jest w pełni PBR. O przekłamaniach kolorów pomiędzy takim Marmorset Toolabag a Blenderem nawet nie wspomnę. Jak się mylę niech mnie ktoś poprawi.

Kilka przydatnych linków

cały kanał

 

P.S. Zainteresowałem się tym ostatnio bo tak jakoś na początku lutego była na Steamie wyprzedaż Substance Painter (podoba mi się workflow, proceduralne efekty itp, itd), brałbym w ciemno ale na razie nie wspierają linuxa (obiecali że jednak będzie). Przypomniał mi się tutek Gleba (pierwszy filmik) że w sumie można podobne efekty nodami w cyclesie osiągnąć.

P.P.S Rice widziałem na kanale u Ciebie filmik z normal map painting. Podziel się jak możesz nodem. A przy okazji do filmików powyżej ten leather nod to twój ? I jak z detalem bo widzę że jednak nie jest "ostro" widać to po brushu z gradientem (tam gdzie porawiasz kolor) tak jakby przy skulpcie i tutaj przy painting-u blender nie radzi sobie z alpha mapami

Edytowane przez Idaho
Odnośnik do komentarza
Udostępnij na innych stronach

FXMaps typu zniszczone krawędzie etc. juz dawno mam i jest to bardzo proste z tanget space normal map generujesz kilka poziomów cavity map, miksujesz miedzy sobą i z jakąś zewnętrzną teksturą (można to podejrzeć w quixelu i krok po kroku odtworzyć) Co do bakerów to przekonaj Piotra Arłukowicza żeby przerobił swój bake tools tak aby

1. działał w internalu

2. wypalał konkretne output nody

Dalej trzebaby cambella namówić żeby przerobił ten cały bake bo to żart żeby tekstury generowały się w viewporcie realtime a bake tekstury trwał nawet minute.

 

Co do nowego viewportu i tego co robią teraz. Nie mam zbyt dużych nadzieji, jest to strasznie toporne i juz teraz malować się w tym nie da. W ogóle zaprzęganie do tego cyclesa jest wg mnie błędem. Ja na istniejących rozwiązaniach moge malować tekstury 4K i działa to szybciej niż w substance painetrze. No ale z ostateczną oceną się wstrzymam do releasu.

 

Creator, nie jest to tradycyjny shader. Zdecydowanie bliżej temu do Marmoset Toolbaga 2 niż sztuczek. Wygląd nie jest 100% marmo, głównie dlatego że ja irradiance mape i poziomy mip map generuje w cmftstudio. Oni też je generują tą samą metodą która jest w cmftstudio ale nie wyglądają identyko. Jeżeli potrafisz wyciagnąć marmosetowe mapy to będzie 100%marmolike. Zresztą jak chcesz mieć identyko rezultat jak w np quixelu to wystarczy ze wezmiesz od nich parametry dla materiałów (gloss/spec/albedo) i będziesz miał ten sam rezultat.

 

te FXmapy to prosta rzecz, może coś za niedługo pokaże

Odnośnik do komentarza
Udostępnij na innych stronach

To napisz proszę.

Nie muszę znać GLSLa żeby wiedzieć że takie rzeczy są banalne w implementacji. To jest stary jak świat texture bombing z koordynatów na bazie drzewa czwórkowego.

Podstawowy texture bombing to kilka linijek.

http://http.developer.nvidia.com/GPUGems/gpugems_ch20.html

Jakby były loopy i integery w nodach blendka to bym to zrobił w jeden wieczór.

 

 

Co do nowego viewportu i tego co robią teraz. Nie mam zbyt dużych nadzieji, jest to strasznie toporne i juz teraz malować się w tym nie da.
Wait. W czym się nie da? Przecież jeszcze nie skonczyli tego viewportu, nawet nie zaczęli PBR implementować. Nie pomyliło ci się z tym custom buildem od tamtego francuza?

 

 

Druga rzecz. Ty mówisz o całym generatorze a nie FXmap. To ostatnie to rozsiewanie n obrazków żeby uzyskać jakiś prosty deseń, np rysy czy jakiś cell noise. Generator może mieć w sobie nawet kilka takich FXMap i miksować je na różne sposoby. Jak masz SD to możesz otworzyć sobie wszystkie wbudowane nody i popatrzeć jak oni to zrobili. Na razie nie ma możliwości na takie FXMapy w blendku (Nie żeby to podpiąć jako node).

Edytowane przez Monio
Odnośnik do komentarza
Udostępnij na innych stronach

Idaho. Te filmiki co pokazujesz to cycles. Cycles jest za wolny zeby w tym malowac wiec z gory odrzucilem. Przykladow pbr shaderow jest cala masa w nim ale to sie nie nada. Poki co :)

To malowanie normal map dziala tak jak zostalo zaprojektowane ale pewnie to troche przerobie bo narazie albo sie "wrzyna" albo "wystaje". Przy np srobkach chcialbym zeby glowka wystawala ale otwory wentylacyjne wchodzily w glab. To jest proste do zrobienia wiec pewnie niedlugo bedzie gotowe. Leather oczywiscie moj.

 

Monio. No ja myslalem ze to co oni robia to przymiarki do officiala. W sumie to jaki jest cel ich pracy skoro to i tak nie trafi do mastera.

 

Dobra czaje co ty chcesz z tym fxmap. Tobie sie marzy substace designer. To raczej nie przejdzie bo ilosc operacji matematycznych zajedzie kazdego kompa. Chyba zeby to zrobic jako calkowicie odrebne narzedzie tylko pytanie czy warto. Ja jednak sklaniam sie do quixelowego podejscia.

Odnośnik do komentarza
Udostępnij na innych stronach

Ten gość się z nimi kontaktował potem ale nie wiem czy coś z tego będzie. I tak musieliby przepisać wiele rzeczy.

 

Mówiąc o GLSLu nie miałem na myśli żeby to wpinać w sam materiał i generować co klatkę tylko podpiąć noda Texture w którym ten obrazek byłby już wygenerowany i zcasheowany. Wtedy zamiast okienka z parametrami noda jak w SD odpalasz drugi edytor nodów, to działa już teraz. FX mapy będą do zrobienia jeśli dodadzą noda GLSL w Texture nodes lub Compositorze. Jak dla mnie powinni w ogóle połączyć te 2 systemy.

Odnośnik do komentarza
Udostępnij na innych stronach

Grubo za wcześnie żeby wydawać werdykty. Sporo rzeczy zmieniło się już w blendkowym viewporcie ale przez nastepny rok zmian będzie o rząd wielkości więcej. Samo malowanie też przyśpieszyło przez podmianę OpenMP na ich własny BLI. Za rok będziemy gadać.

 

Ja się bardziej martwię stabilnością Substance Paintera, na kompie w pracy nie moge z niego korzystać bo mam crash średnio co 3 minuty... Testowałem RAM, Dysk, GPU, stery aktualne...

Odnośnik do komentarza
Udostępnij na innych stronach

hej, dzisiaj sobie zrobiłem ładną skórkę do mojego blender paintera. Tekstury i parametry podejrzane z quixela. Nawet fajną metodę mają do mieszania normal map. Nie znałem. Pożyczyłem ;)

Przy 6 takich materiałach potrafi przyciąć ale jeszcze jest używalny. Jest masa miejsc gdzie można to usprawnić.

https://www.youtube.com/watch?v=STarHvu7bDs

Odnośnik do komentarza
Udostępnij na innych stronach

Jakiego rzędu są to spowolnienia ? Interesuje mnie (śledzę też ten wątek na blenderartist) czy faktycznie przyśpieszyło jak radził Ci spirou4D "...I know too! Masks are not excellent. Better is to use alpha channel. Speeder to calculate." Czy jest różnica w szybkości ? No i co nowego zrobiłeś ? Bardzo mnie to interesuje. Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

@idaho, jeszcze tego nie testowałem ale napewno jakby robić obliczenia tylko na jednym kanale to będzie działać szybciej. Co nowego zrobiłem. Posprzątałem kod nodowy, irradiance mapa i mip mapy zrobiłem od nowa.

Dirty Scratched Painted Metal z quixela odtworzony na potrzeby mojego blender paintera.

[video=youtube;RUmamyB-C6o]https://www.youtube.com/watch?v=RUmamyB-C6o

Odnośnik do komentarza
Udostępnij na innych stronach

Fajna sprawa. To są cyclesowe nody na vieporcie ustawionym na 'textured', czy jakiś build PBR? W sumie substance painter nie jest taki drogi, więc czy jest sens robić to samo od nowa?

Z moich doświadczeń SP, ma za dużo suwaków i sporo czasu mi schodzi nim na szukaniu dobrego efektu. Dlatego wolę 3d coat - jest mniej skomplikowany (można powiedzieć, że jest ograniczony), ale jednak zamiast zastanawiać się nad tym, jakim suwakiem mam pokręcić i na której warstwie, to w 3d coat maluje się na luzie - prawie jak w photoshopie czy płótnie.

Odnośnik do komentarza
Udostępnij na innych stronach

JoseConseco to sa internalowe nody. Build oficjalny. Mam SP ale wole blendera. Fanboystwo ze mnie wychodzi ;) przy okazji rozkminki jak to dziala o pbr wiem prawie wszystko gzie wczesniej nie rozumialem nic.

 

@Idaho wszystko udostepnie chyba ze quixel z substancem dadza mi z milion dolarow za ubicie tego ;)

Odnośnik do komentarza
Udostępnij na innych stronach

świetna sprawa, urywa ...., nie wiem czy to możliwe, ale IMO przydały by sie nody Images2pbr i PBR2images coby tylu linków nie było ;) teoretycznie jest możliwe zrobienie wlasnego socketa, wczoraj próbowałem to ogarnąć ale dawno nic nie pisałem do blenderka i szło mi jak po grudzie

Odnośnik do komentarza
Udostępnij na innych stronach

Witam

Widzałeś może to ? Wczoraj się pojawiło.

shader można pobrać z wcześniejszego jego filmiku

link stąd (https://www.dropbox.com/s/dbkk9nmhhihbs5l/nodegroup_painting.blend?dl=0)

zastanawia mnie czy to działa na zwykłym buildzie? szybkość, normal mapy gdy maluje wydają mi się ok

Edytowane przez Idaho
Odnośnik do komentarza
Udostępnij na innych stronach

To dziala w pbr branchu. Co on tam takiego zrobił. W sumie to grupe na 6 layerów które może mieszać miedzy sobą. W sumie to w blenderze jest wbudowane więc nie do końca rozumiem sens. Z ciekawszych rzeczy to napewno bump jest widzę zrobiony inaczej bo ja robilem z bialoczarnego obrazka tangent space normal map, a on to podłącza bezpośrednio do nody cyclesowej więc to napewno będzie działało szybciej.

 

Ja swój projekt narazie zawiesiłem bo problemów jest tutaj tak dużo że moja głowa tego nie ogarnia. Troche się substanca uczę i pewnie do tego wrócę bo blender raczej w niczym nie ustępuje.

Odnośnik do komentarza
Udostępnij na innych stronach

Nope. Ustępuje na maksa. Nie da się uzyskać w blendku takich samych efektów jak w SD/SP bo shadery nie obsługują filtrów (

). To nie jest coś co da się ominąć sprytną node grupą.

Prędzej już compositor by się spisał do takiego teksturowania ale niestety też ma swoje limitacje nie do przejścia. Na przykład fakt że nie da się podpiąć render results jako texe, trzeba zapisywać do pliku. ;)

 

Da się sporo zrobić w shaderach blendka ale nie ma na razie mowy o teksturowaniu ala SD/SP. Jak nie przez brak ficzerów to przez wydajność spowodowaną brakiem casheu. To bardzo dobrze że tych rzeczy nie ma w shaderach, one nie służą do takiego teksturowania, komplikacje byłyby ogromne. Potrzebujemy nowego systemu nodów, dedykowanego dla teksturowania.

Odnośnik do komentarza
Udostępnij na innych stronach

Powiem Ci że dobra robota :) Zastanawiam się tylko czy opłacało Ci się robić to od nowa skoro substance painter nie jest taki drogi?! Ale tak szczerze to ja wolę 3d coat bo jest mniej skomplikowany. Co więcej to w 3d coat maluje się na luzie, prosto, prawie jak w photoshopie czy płótnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Nope. Ustępuje na maksa. Nie da się uzyskać w blendku takich samych efektów jak w SD/SP bo shadery nie obsługują filtrów (convolution).

 

Hehe... A mogłeś po prostu powiedzieć, że nie można użyć blura dla tekstur :) Był taki temat niedawno na blenderowni o tworzeniu materiałów w Blenderze dla Unity. Tam na podstawowej scenie jest zrobione enviroment map z gradientu. I taki efekt rozmycia tego gradientu można łatwo uzyskać(https://drive.google.com/open?id=0B11C8Zkk05tzS3FwODVaZHdDdjQ). Daje to pewien podgląd jak dany materiał będzie wyglądał w Unity.

 

Swoją drogą ciekaw jestem jak to jest załatwiane pomiędzy różnymi silnikami. Na przykład w Unreal Engine, zdaje się, że mapki trzeba robić w negatywie w stosunku do Unity (gładkości/chropowatości,metaliczności/niemetaliczności). Skoro tu już jest różnica, to w rozłożeniu parametrów shaderów też każdy producent robi jak mu się podoba? W takiej sytuacji nawet jak przygotujemy sobie piękne teksturki w programie do malowania to i tak trzeba będzie to ręcznie potem przetworzyć, żeby wyglądało tak jak my byśmy tego chcieli. Czy może jest tu jakiś standard?

Odnośnik do komentarza
Udostępnij na innych stronach

@jagoda, tu nie chodzi o cene substanca. Blender jest poprostu bardzo fajny do różnych testów i eksperymentów. Rozkminki jak działa pbr są zawsze cenne i nie uważam żeby była to strata czasu.

 

@hubert To nie tylko blur. Jemu chodzi raczej o samplowanie pikeseli na teksturze macierzowo i operacje matematyczne na nich. Z poziomu nodow blenderowych nie jest to możliwe chociaż ja coś takiego zrobiłem samplując teksturę przesuniętą po osiach uv. Dzieki temu mozna zrobić realtime normal mapy, cavity mapę z normal mapy itp itd. Ja kiedyś odtwarzałem z tej stronki filtry

http://lodev.org/cgtutor/filtering.html

jest całkiem spoko do macierzy 3x3. Przy 5x5 jest bardzo wolno, a często do takich rzeczy w substance designerze trzeba zrobić 3x3 a potem z tego kolejne 3x3 i kolejne 3x3 a potem z kazdego piksela 5x5. Ilość obliczen na jeden piksel zaczyna drastycznie rosnąć w końcu crashujać blendera. Każda kolejna operacja sprawia ze blender liczy kazdy piksel od nowa. W substance designerze jest do takich obliczen wsparcie i liczy tam raz i scala pewnie do jakiegos cachu dlatego to taki fajny programik ;]

 

@do tych co chceli by sie w pbr w internalu pobawić polecam

http://www.cgmasters.net/free-tutorials/realtime-pbr-in-blender/

on mniej wiecej to samo zrobił co ja tylko u niega sa dość ciekawe nody od blend4web i nie używa tylu hacków co ja ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Hehe... A mogłeś po prostu powiedzieć, że nie można użyć blura dla tekstur :)
Nie. Tak jak Rice mówi- blur to tylko jeden z bardzo wielu splotów wykorzystywanych do robienia tekstur. Tą metodą robi się Sharpena, Highpass, Edge detection, generowanie normalek z bumpa. To są rzeczy które są chorobliwie niewydajne do odtworzenia w shaderze. Powiedzmy że chcesz zrobić Gaussian blura o promieniu 32 pixeli. Bez casheowania musiałbyś w czasie rzeczywistym robić samplowanie z texy dokładnie 4225 razy... Po pierwsze cashe żeby to było jakkolwiek wydajne. Druga rzecz to przekazywanie IDbloków w nodach. Potrzebujemy tego żeby móc podpiąć jedną texe do wielu samplerów bez konieczności przeklikiwania kilkudziesięciu image nodów. Kontaktowałem się trochę z Lukasem i druga rzecz będzie w blenderze 2.8 na bank bo to jest wymagane przy Object Nodes.

 

Co do mapek. Metalic wszędzie działa tak samo. Różnice są tylko w Glossy/Roughness, jedno jest negatywem drugiego.

 

By the way. Ostatnio się bawiłem mocno w konwolucje w Designerze i udało mi się stworzyć symulacje efektu Reakcji-Dyfuzji. Musiałem od zera zaimplementować gaussian blura bo wbudowna blur noda z SD dawała słabe rezultaty. Do zrobienia w blenderowym compositorze (prawilny gaussian blur) ale bardzo czasochłonne obliczeniowo.

 

4b8u7oN.gif

Edytowane przez Monio
Odnośnik do komentarza
Udostępnij na innych stronach

To raczej dosyć klasyczna implementacja. Nie wiem na ile ogarniacie teorie więc opisze od zera. Gaussian blur to sprawdzanie wartości sąsiednich pixeli i uśrednianie ich w zależności odległości od bazowego pixela. Za to ile dany pixel będzie miał udziału w wartościach nowego pixela odpowiada krzywa Gaussa. Na start musiałem sobie stworzyć funkcje kalkulującą tą krzywą.

 

sQcBeBf.png

(Euler policzony na chama bo wersja SD w której to robiłem jeszcze nie pozwalała na wpisywanie tak dokładnych liczb.)

 

 

Na bazie podanego radiusa wyliczam Sigmę czyli, powiedzmy, szerokość krzywej gaussa. Uzyskuje dzięki temu procentowy udział wartości każdego pixela który będę samplował. Teraz pozostaje już tylko copy-pasta. Przeprowadzam samplowanie z sąsiednich pixeli i uśredniam. Ustaliłem maksymalny radius na 32 pixele więc w teorii potrzebuje samplować obszar 65 na 65 pixeli, (32 w 4 kierunkach + środkowy pixel, razem ponad 4 tysiące sampli) i uśredniać dwu-wymiarowmym Gaussem. Na szczęście da się to fajnie zoptymalizować poprzez rozdzielenie tego na 2 fazy. Najpierw uzyskuje rozmycie w pionie, potem w drugiej nodzie rozmywam w poziomie, oba uśredniam jednowymiarowym gausem. Wynik jest w pełni identyczny jakbym stworzył dwu-wymiarowy kernel 65x65 ale wystarczy mi 2 razy przeprowadzić 65 samplowań.

 

c71y6aA.png

 

Mając takiego blura pozostaje mi tylko zrobić z niego High-pass filter, dodać treshold i ponownie przeprowadzić blura. Tak uzyskuje jeden krok symulacji Reaction-diffusion. Copy-paste kilkadziesiąt razy i mam cała symulacje.

Edytowane przez Monio
Odnośnik do komentarza
Udostępnij na innych stronach

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