Bake: tekstury 17

Rzecz o wypalaniu tekstur w tekturach, czyli jak zrobić tekstury proceduralne teksturami bitmapowymi.

Opisuję sprytną technikę związaną z wypalaniem tekstur na teksturach. Jest to przydatne w sytuacji, gdy model korzysta z wielu map UV i wielu tekstur pochodzących z różnych plików, a my chcielibyśmy mieć całą teksturę w jednym pliku. Oprócz tego, technika ta przydatna jest do zapisywania tekstur proceduralnych w plikach graficznych – zatem pozwala ona na ręczne dostrajanie wyglądu tekstur proceduralnych wszędzie tam, nie wystarczają domyślne lub dostępne ustawienia Blendera.

17 thoughts on “Bake: tekstury

  1. Odpowiedz leks Lip 20,2016 11:07

    Dzien Dobry
    Chciałem zapytać czy analogiczną rzecz można jakoś zrobić w rendererze cycles dla normal map? Tzn piec z warstwy UV na warstwę UV?
    Próbowałem i natrafiłem na problem z zapętleniem, który nie wiem w sumie jak rozwiązać.

  2. Odpowiedz Grzegorz Sie 22,2013 17:08

    Ok, zrozumiałem trochę te warstwy uv, ale teraz mam inny problem. Mam wymodelowany parter mieszkania i ten parter jest jednym meszem. Porobiłem warstwy UV z teksturkami itd. Zrobiłem bake tekstur, żeby mi zrobiło ładną mapę na cały ten parter. Mapa się owszem zrobiła, ale jest tragicznej jakości. Wszystko się rozmyło, tekstury straciły detale i wyglądają jakby to były jednolite kolory. Co robię źle?

  3. Odpowiedz Grzegorz Sie 20,2013 22:33

    Panie Piotrze, na wstępie oczywiście dziękuję za tutorial. Tak dobrze prowadzony kurs internetowy to dziś rzadkość.

    Mam jednak małe pytanie dotyczące pieczenia tekstur w tym filmiku. Najpierw piecze Pan tekstury takie „Blenderowe” kolorowe i wszystko jest jasno i prosto. Ale kiedy pokazuje Pan to samo z teksturami bitmapowymi, ale tu dochodzą już różne warstwy UV. Czy jest to potrzebne? Nie można postępować dokładnie tak jak w przypadku pierwszego rodzaju tekstur i (mowiąc trywialnie) olać warstwy UV (czyli na poszczegolnych ścianach assign, obrazek, assign, obrazek, bake i swięto lasu)?

    I jeszcze pytanie z innej beczki- prowadzi Pan jeszcze jakieś kursy internetowe?

    • Odpowiedz piotao Wrz 1,2013 19:19

      Witaj, nie prowadzę innych kursów internetowych, jak na razie. Co do pieczenia tekstur, osobne warstwy UV były po to, aby nie nastąpił konflikt tego, co jest nałożone na obiekt jako tekstura, a co pieczone. Można łatwo spowodować zapętlenie, gdy wypalana tekstura modyfikuje wygląd obiektu. Blender wtedy odmawia pracy ze stosownym komunikatem.

  4. Odpowiedz Kropka Cze 19,2013 12:17

    Dzięki; faktycznie udaje się w ten sposób wypalić jedną „zbiorczą” teksturę dla wszystkich obiektów. Dość żmudne, no ale sporo rzeczy związanych z UV jest takie.

  5. Odpowiedz Kropka Cze 9,2013 21:32

    Witam; planuję za pomocą technologii PPV3D, osadzić model 3D na stronie WWW. Mam przygotowany skrypt do FLASHa, w którym można użyć jedną teksturę. Oczywiście nie stanowi problemu, abym wykonała obrazek 3D, w którym poszczególne obiekty będą mieć mapowanie UV bazującym na jednym pliku.
    Jednak, tutorial ten zainspirował mnie do spróbowania, czy udałoby się wykonać cały obrazek, nadając jego poszczególnym obiektom tekstury w oddzielnych plikach (tak jak jest to w drugiej części tutoriala), a następnie za pomocą bake, połączyć poszczególne tekstury do jednej. Postępowanie takie, uprościło i ułatwiłoby pracę. Gdy spróbowałam zrobić coś takiego, napotkałam na przeszkodę polegającą na tym, że poszczególne obiekty nie mogą współdzielić mapy UV.

    Poproszę uprzejmie o wskazówkę, czy można kilka różnych tekstur na kilku różnych obiektach, wypiec do jednej, wspólnej dla tych kilku obiektów, tekstury.

    • Odpowiedz piotao Cze 9,2013 21:56

      Spróbuj odhaczyć checkbox „clear” podczas wypalania tekstur. Wtedy obecna tekstura nie zostanie wyczyszczona. Oczywiście należałoby zrobić najpierw teksturę na jednym obiekcie, a potem na kolejnym, podmieniając plik i „dopalając” odpowiednie fragmenty. Nie wiem, czy to się uda – piszę bez możliwości chwilowej sprawdzenia.

  6. Odpowiedz Plutonka Gru 12,2012 14:54

    Witam i na wstępie chciałabym podziękować za wspaniałe tutki. Są po prostu niewyobrażalnie wspaniałe, jestem ich wielką, wielką fanką :)
    Napotkałam jednak na mały problem. Po dodaniu obrazków do 3 kolejnych materiałów (już pod koniec tutoriala) i próbie bake, dostaję informację ‚feedback loop detected’. Aż zrobiłam cały tutorial jeszcze raz – i niestety mam ten sam problem. Poguglałam trochę i znalazłam jedynie wskazówkę, by sprawdzić, że żaden materiał nie ma zaznaczonej opcji ‚face textures’. Nie mam tego zaznaczonego oczywiście. Zdaję sobie sprawę, że robię pewnie jakiś głupi błąd i ciężko mi pomóc tak na odległość, ale postanowiłam zaryzykować :)
    Z góry dziękuję!

    • Odpowiedz Plutonka Gru 12,2012 14:58

      Dodam jeszcze, że przy renderowaniu obiektu materiały są w porządku, a przy zapisie do pliku .png dostaję ‚wypieczoną’ teksturę, tak jak trzeba. 

    • Odpowiedz piotao Gru 12,2012 17:15

      Witaj, dziękuję za pozytywny odbiór mojej pracy :)
      Ten błąd, który masz, mi też niedawno się pojawił, i chodzi w nim o to, że nie możesz robić wypieku informacji, która w trakcie wypieku może ulec zmianom. Jeżeli np. wypalasz teksturę na tej samej teksturze, to jest to prosty przypadek ‚pętli’, gdzie tekstura po zmodyfikowaniu zapisywana jest na siebie samą, i znowu wpływa na wygląd siebie samej, i tak w kółko. Blender przed tym ostrzega – wcześniej tego ostrzeżenia nie było. Uchronić się przed tym możesz pracując wyłącznie na takich teksturach, i paląc takie informacje, które nie będą wchodziły w kolizję z paloną informacją.

      • Odpowiedz Plutonka Gru 13,2012 08:57

        Bardzo dziękuję, zapiszę sobie w zeszyciku, postaram się na to uważać i nie panikować po zobaczeniu tego ostrzeżenia :)

        • Odpowiedz ADDJAR Gru 13,2012 10:19

          Jak miło że pojawiła się na PKB płeć piękna.
          Witam na najbardziej open surance (sowym) portalu tego typu

  7. Odpowiedz jarek Kwi 8,2012 14:13

    Dzięki. Logiczne i zrozumiałe.
    Ale ja tym pytaniem chciałem sprowokować Pana do odpowiedzi, czy lepiej jest przy teksturowaniu tworzyć
    i korzystać z warst uv maps czy też można się obyć bez.

    • Odpowiedz piotao Kwi 9,2012 10:14

      Ah, teraz rozumiem intencje :) Oczywiście, odpowiedzieć mogę tak: grafika 3d to czasami trochę ‚oszustwo’, i w zasadzie wszystkie chwyty są dozwolone. Dopóki końcowy odbiorca nie zauważy, a nam nie utrudni to pracy :) Dzięki za ciekawe pytanie :)

  8. Odpowiedz jarek Kwi 6,2012 16:37

    Witam
    Proszę o wytłumaczenie pewnej kwestii.
    Załóżmy, że mam obiekt zawierający przypisane kilkadziesiąt materiałów. Do każdego materiału jest tekstura, którą
    nakładam tak jak Pan objaśnia między innymi w tym tutorialu.Rozkładam więc siatkę wg koordynatów uv
    i nakładam na nią teksturę.Ustawiam wszystkie potrzebne opcje.Nastepnie odznaczam zaznaczony materiał, zaznaczam
    następny, rozkładam siatkę dla niego i znowu przypisuję teksturę.W ten sposób na jednym obiekcie mam różne
    tekstury.Niby wszystko tak jak nam Pan wyjaśnia, tyle tylko, że ja nie tworzę warstw uv maps w zakładce Object
    Data do rozłożonych siatek, lecz rozkładam je na bieżąco materiał po materiale.I teraz, czy ja robię
    źlę,niepraktycznie,dziwnie czy też może jeszcze inaczej, czy też wykonuję jakąś dodatkowo niepotrzebną pracę?
    Efekt końcowy mam dokładnie taki sam jak Pan w tutorialu.

    • Odpowiedz piotao Kwi 6,2012 21:16

      Jeżeli dobrze zrozumiałem, to masz na obiekcie różne materiały przypisane do różnych ścian. Te materiały zawierają tekstury, które są mapowane we właściwy dla siebie sposób – UV albo inaczej, wszystko jedno, z tego samego, lub z wielu plików graficznych. To działa, i jest OK. Sam też tak robię. Wydaje mi się, że nie robisz źle, jeżeli lokalnie korzystasz z takiego rozwiązania.
      Cała idea bakingu tekstur sprowadza się do sprawy posiadania JEDNEJ tekstury dla tych wszystkich materiałów, zrobionych na wielu ścianach. Wtedy mapowanie UV robisz tak, aby było optymalne, i na to wypalasz w jednym obrazku materiały i tekstury poprzednio umieszczone w wielu plikach. Taką pojedynczą teksturę łatwiej wpakować i przetwarzać, jest ona bardziej spójna, no i w silniku gier – wydaje mi się – stanowi bardziej optymalne rozwiązanie niż kilkadziesiąt materiałów :)

A Ty co o tym myślisz?