Jump to content
Bhaal

Texture bleeding - pytanie o pomoc

Recommended Posts

Hej

 

Moje pytanie będzie odnośnie tworzenia textury do budynku zrobionego z modułów.

Obejrzałem sobie tego tutka: https://www.3dmotive.com/f101001 i robiąc na jego podstawie

swój budynek mam problem i nie wiem czy ja coś robię źle czy tego nie da się obejść. Mianowicie zrobiłem sobie parę różnych textur tapet, które miały ozdobić wnętrze mieszkania. Problem jest taki, że występuje bleeding pixeli znajdujących się obok i pixele z jednej tapety nakładają się na sąsiednią co objawia się krechą po złożeniu ścian. Wiem, że obejściem jest skalowanie mapowania parę pixeli i powielenie ich aby był pewien margines ale cała metoda przedstawiona w tym tutorialu robi się w tym przypadku bezużyteczna bo za nic w świecie nie dopasuje się idealnie textury tapety, która ma jakieś tam fikuśne wzorki. Czy jedyną metodą jest stworzenie osobnych textur wypełniających całą przestrzeń? Wiem, że w filmiku autor ma na końcach ścian inne elementy 3D i

wtedy nie jest to zauważalne u niego.

Formatem jaki wybrałem jest TGA a program docelowy Unity.

 

Z góry dzięki za pomoc :)

Share this post


Link to post
Share on other sites
Hej

za nic w świecie nie dopasuje się idealnie textury tapety, która ma jakieś tam fikuśne wzorki.

 

A wcale nie jest to trudne:)

Poszukaj "texture tiing tutorial"

Share this post


Link to post
Share on other sites

Dzięki za odpowiedź ale ja nie o tym pisałem i tiling to umiem robić ;)

Jak pisałem chodzi mi o to, że mam parę textur w jednym pliku czyli cała textura ma np 2048x2048 i pomniejsze texetury składające się na nią mają po 512x512 - 4x4 różne tapety ścian w jednym pliku i każda z osobna ma idealny tiling. Jeszcze raz odsyłam do linka powyżej i popatrzenia na jakiej zasadzie jest to robione. Po złożeniu ścian z tej textury mam bleeding sąsiedniej textury (innej) a nie zły tiling :)

Share this post


Link to post
Share on other sites

to jest zwiazane z filtrowaniem textur - pixele znajdujace sie po obu stronach edga uv sa blendowane w jakis tam sposob (odsylam do wiki po detale :) - dlatego jak chcesz tego uniknac to miej tylko jedna tileujaca sie texture w pliku (czyli zamiast 'atlasu' 2048x2048 skladajacego sie z 4x512 roznych textur - trzymaj je w 4 osobnych plikach...

 

mam nadzieje ze o to mniej wiecej pytasz :)

 

pozdrawiam

f.

Share this post


Link to post
Share on other sites

@Ftorek - dokładnie o to mi chodziło :) i dlatego chciałem się upewnić czy tak muszę podzielić textury czy jest jakaś metoda o której nie wiem i coś może jeszcze nie tak robię ale rozwiałeś moje wątpliwości :) dzięki

Share this post


Link to post
Share on other sites

Atlasy tekstur są często stosowane bez tego typu problemów.

W jakim formacie zapisujesz - jeśli to np DDS to masz różne ustawienia wyostrzania/filtrowania tekstury w mipkach kiedy zapisujesz plik w PS.

Jeśli zapisujesz w innym formacie silnik na pewno procesuje teksturę do ddsa, w tym przypadku programista graficzny może pomóc zmienić filtrowanie.

 

Jeśli to nie pomoże a potrzebujesz atlasu tekstur, zrób coś takiego na każdej tex (upewniwszy się że się ładnie tilują)

 

LvglU3Q.jpg

 

Parę pikseli z każdej strony powinno wystarczyć.

Share this post


Link to post
Share on other sites

Ja zapisywałem do TGA a z tego co wiem to Unity przerabia na DDS`y i tam próbowałem zmienić ustawienie filtrowania z dostępnych ale albo mi to rozmywało albo wyostrzało, że poszczególne kwadraty widziałem co też nie było pomocne :)

Właśnie to co podałeś Gutekfiutek to też mi się wydało dobrym rozwiązaniem jak widziałem w necie tutki itp. tylko, że ten tutorial do modelowania modularnego gdzie najpierw robiona jest textura na gridzie w PS a potem na tej podstawie idealnie wycinane elementy 3D już nie będzie dobry. Bo z tego co wiem w 3Dmotives (i DigitalTutors też mieli podobny tutek) to było o tyle dla nich dobre, że mapowanie mieli idealnie dopasowane i nie musieli ruszać UV`ek ręcznie. Bo jeśli ja zrobię margines 5 pixeli z każdej strony to teraz mapowanie muszę ręcznie zeskalować o te 5 pixeli a ręcznie nie ma możliwości abym idealnie to zrobił aby potem nie było widać kreseczki łączącej dwa meshe.

 

Załączam obrazek o co mi chodzi:

 

krecha.jpg

 

PS. Nie wiem czy widać na screenie o co mi chodzi bo przy tej pixelozie tak się zlewa, że wygląda jak by było ok :) ale generalnie jest ewidentna linia i nie ma ciągłości w tilingu.

Share this post


Link to post
Share on other sites

To nie chodzi o filtrowanie w tych powyższym przypadku tylko już o mapowanie bo jeśli masz idealnie dopasowany wzorek i naruszenie o parę pixeli UV spowoduje widoczną kreskę. Chodzi o to, że aby nie było bleedingu to albo:

 

A: zrobić osobne textury jak napisał ftorek

B: zrobić marginesy jak napisał gutekfiutek z tym, że trzeba zeskalować mapowanie ale to spowoduje i tak, że będzie widać kreskę bo nie da się co do pixela dopasować mapowania aby było idealne przy tej metodzie a bleeding i tak będzie bo te marginesy i tak wjadą na właściwą texturę.

 

Dobrze to rozumiem?

 

Wyłączenie mapowania to wiadomo, że pomoże i nie trzeba będzie robić marginesów ale nie użyje takich pixeli dużych potem w grze.

 

Chyba, że ktoś ma przykład własny takiego atlasu z różnymi texutrami z powtarzającymi się wzorkami i mógłby umieścić jak to wygląda to mogłoby być pomoc :)

Share this post


Link to post
Share on other sites

Co do B: teoretycznie jesli zrobisz to dokladnie to nie powienienes miec szwu. Rozumiem, ze ta tekstura tiluje sie w obrebie pomniejszonego kwadratu.

 

Generalnie unikalbym az tak skomplikowanego pakowania tilowanych tekstur.

Albo ograniczyl do laczenia ich w pionie (czyli tiluja sie po bokach). W ten sposob mozesz upakowac np. 4 texy po 512 na 512x2048. Dziala bezbolesnie jesli wrzucasz tekstury sciany od podlogi po sufit.

 

Jesli robisz tylko male enviro to olej sprawe. Czas spedzony na ustawianie tego nie jest wart teoretycznego zysku wydajnosci. Oczywiscie jesli robisz cos wiekszego to jasne, ze warto ograniczyc liczbe materialow itp..

Share this post


Link to post
Share on other sites

Plutko - też tak myślę, właśnie, że albo pakować to tak aby nie były tilowane elementy obok siebie albo olać aż taki detal :)

 

Ok, dzięki wszystkim za pomoc :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy