Czy naprawdę niemożliwe jest uzyskanie gradientu bez pasmowania?


37

Próbuję stworzyć gradient bez pasm. Obejrzałem wszystkie filmy na YT i wypróbowałem: Rozmazanie wszelkiego rodzaju, Hałas, Dither, głębia bitowa, Pędzel i robienie gradientu w programie Illustrator.

Wszystko zawodzi i zawsze widzę bandaż.

Kolor tła, którego używam za obrazem: 050b3c wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Odpowiedzi:


28

Hałas i roztrząsanie zwykle dają całkiem dobre wyniki. Istnieje kilka rzeczy, które mogą sprawić, że „bandowanie” stanie się bardziej widoczne:

  • Kolory „start” i „stop”
  • rozmiar gradientu (paski stają się bardziej widoczne, gdy punkty „start” i „stop” oddalają się od siebie - gradient musi być „rzutowany” na więcej próbek ze stałą liczbą dostępnych wartości jasności),
  • źle skalibrowany / niskiej jakości monitor (próbowałeś zobaczyć swoje gradienty na różnych monitorach?),
  • zmniejszona rozdzielczość kolorów „na kanał” w ustawieniach systemowych (wydaje się obecnie mało prawdopodobne, ponieważ większość systemów używa ustawień 32 bps, ale nadal jest to możliwe),
  • „Dzikie” ustawienia gamma karty graficznej (np. „Panel sterowania karty graficznej” lub moduł ładujący gamma, taki jak Adobe Gamma Loader),
  • zbyt „agresywny” profil monitora (ponownie test podglądu na innych monitorach powinien dać kilka wskazówek na ten temat),
  • zmniejszona głębia bitowa obrazu.

Przydałoby się również wiedzieć, jakie jest twoje urządzenie docelowe. Istnieje różnica w tym, jak bardzo możesz „rozłożyć” gradient, niezależnie od tego, czy kierujesz reklamy na druk (jaki rodzaj wydruku ma również znaczenie, np. Ekrany takie jak AM, pseudo-stochastyczny, stochastyczny) monitory komputerowe lub wyświetlacze urządzeń mobilnych. Ma to również znaczenie, niezależnie od tego, czy używasz grafiki rastrowej lub wektorowej.

Podsumowując: jest to dość złożony temat :).


1
Masz 100% racji, że to zależy od monitora. Po przeczytaniu twojej odpowiedzi postanowiłem przetestować niebieski obraz (patrz zaktualizowany OP) na moim iPadzie3. Jakość gradientu na iPadzie 3 jest bezbłędna. Chodzi o to, że nie mogę kontrolować monitorów wszystkich użytkowników Internetu.
Zarejestrowany użytkownik

1
Tak, na białym gradiencie widzę pasma, ale na niebieskim gradiencie nie widzę żadnych pasm
Ryan

@ Ryan To nie jest białe, jest przezroczyste. Powinieneś go wziąć i dodać warstwę (kolor: 050b3c) pod spodem w PS. Następnie zacznij grać z kryciem pod warstwą i zobacz, jak zmienia się pasmo gradientu.
Zarejestrowany użytkownik

@RegisteredUser Nie dbam o to, kiedy odpowiedź pozostaje taka sama, że ​​zależy to od wyżej wymienionych cech oraz ustawień monitora.
Ryan

2
Kompleksowa odpowiedź. Myślę, że warto wskazać, skąd bierze się problem i dlaczego potrzebne są sztuczki takie jak dithering: 8-bitowy kolor po prostu nie daje wystarczającej liczby kroków, aby niezawodnie dać złudzenie płynnie zmieniającego się gradientu.
e100

13

Tak, możliwe jest tworzenie wysokiej jakości gradientów. Należy jednak wziąć pod uwagę wiele czynników.

  • Photoshop nie ma i nie może się wahać na kanale alfa. Lepiej, jeśli to możliwe, używaj jednolitych kolorów. Staraj się również unikać krycia warstw. Utwórz gradient, używając dokładnie potrzebnych kolorów. Edycja: Photoshop CC 2014.2 dodał dithering kanału alfa. :)

  • Mogą występować pewne skumulowane błędy zaokrąglania, jeśli edytor obrazów używa 8-bitowej głębi kolorów. Najlepszym sposobem na wygenerowanie gradientu utworzonego z kilku warstw (z trybami mieszania i kryciem w trakcie gry) jest renderowanie z większą głębią bitową, a następnie, jeśli to możliwe, dithering do 8 bitów na kanał. Photoshop może to zrobić. Jeśli chcesz stworzyć pełny gradient utworzony z jednej warstwy, 8 bitów na kanał jest w porządku (16 bitów jest przydatne tylko przy włączonym mieszaniu warstw).

  • Dithering jest naprawdę bardzo ważny. (Zobacz poprzedni punkt.)

  • Nie używaj programu Illustrator. Jest to 8 bitów na kanał i nie waha się.

  • Skalowanie obrazu zrujnuje dobrą pracę, jaką wykonał dithering, więc od samego początku musisz utworzyć obraz w odpowiednim rozmiarze.

  • Większość laptopów ma 6-bitowe wyświetlacze na kanał z kilkoma animowanymi sztuczkami ditheringowymi, aby poprawić wygląd. Oczywiście walczysz z wyświetlaczem, a płynne wyniki mogą nie być możliwe z powodu wyświetlacza. Nowy MacBook Pro z wyświetlaczem Retina jest godnym uwagi wyjątkiem - ma 24-bitowy wyświetlacz IPS. Edycja: Wyświetlacze laptopów poprawiły się nieco od tego postu!

  • Jak zasugerował thebodzio, inne przetwarzanie na poziomie systemu operacyjnego może również zaburzać działanie.

  • Jeśli używasz trybu 16-bitowego w Photoshopie, przetestuj go w trybie 8-bitowym. Istnieją pewne okoliczności, w których tryb 8-bitowy wygląda lepiej, a inne okoliczności, w których tryb 16-bitowy jest lepszy. Podstawowa zasada: jeśli masz jeden gradient, użyj 8 bitów z ditheringiem. Jeśli masz kilka warstw i gradientów przy użyciu krycia, użyj trybu 16-bitowego.


Patrząc na twój obraz, wydaje się, że dochodzi do innej destrukcyjnej konwersji. Czy korzystasz z usługi Save For Web? Czy masz włączoną opcję Konwertuj na sRGB? Jeśli tak, wyłącz go (jest to najłatwiejszy sposób na zniszczenie jakości twoich zdjęć i jednoczesne dokonywanie destrukcyjnych zmian kolorów).


+1 za twoją niesamowitą odpowiedź, ale od tamtej pory się zmieniłem. Przede wszystkim twoja opcja generowania gradientu bez alfa nie jest dobra, ponieważ obraz, którego potrzebuję, powinien być przezroczysty, aby można go było używać na stronie internetowej, ułożonej na całej stronie. Również po przeczytaniu zaakceptowanej odpowiedzi postanowiłem porzucić PS i utworzyć gradient programowo za pomocą gradientu radialnego CSS ( colorzilla.com/gradient-editor ). Niestety CSS wcale nie pomógł, a gradient nadal jest silnie pasemkowy.
Zarejestrowany użytkownik

Możesz sam zbudować kanał alfa w Photoshopie, więc możesz stworzyć alfę (ręcznie). CSS jest jednak dobrym rozwiązaniem. Jeśli używasz laptopa, pamiętaj, że na ekranie mogą pojawiać się pasy, ale inni mogą widzieć płynny gradient. Czynnikiem będzie również renderowanie w przeglądarce.
Marc Edwards,

5

Marc Edwards pisze, że „Photoshop nie ma i nie może się wahać na kanale alfa”. Jeśli tak, możesz być w stanie go sfałszować, tworząc skośny gradient od białego do czarnego, a następnie czyniąc biały przezroczystym. Niestety, minęło trochę czasu, odkąd korzystałem z Photoshopa, ale ogólny pomysł byłby taki:

  1. Utwórz 16-bitowy gradient z czarnego na biały.
  2. Dithering do 8-bitów.
  3. Utwórz jednolitą czarną warstwę i dodaj do niej maskę warstwy.
  4. Skopiuj przerywany gradient do maski warstwy (i odwróć go, jeśli to konieczne).
  5. Zastosuj maskę warstwy, aby uzyskać przyjemny gradient od czarnego do przezroczystego.

(Tak, wiem, że to bardziej komentarz niż odpowiedź, ale zajęło to zbyt wiele czasu, aby zmieścić się w polu komentarza).


Tak, zdecydowanie możesz użyć czarno-białego gradientu na kanale, a następnie załadować go jako zaznaczenie, a następnie utworzyć nową warstwę, a następnie wypełnić zaznaczenie. Skończysz z gradientem z rozrzuconą alfą. Zmienię też odpowiedź ... Tryb 16-bitowy jest nieco dziwny. Gradienty nie zawsze mają lepszą jakość.
Marc Edwards,

Dziękuję za odpowiedź. Okazuje się, że problem z gradientem nie jest tak naprawdę z powodu PS, ponieważ: 1) Obraz wygląda dobrze na iPadzie3. 2) Gradient CSS wygląda również pasmowo na monitorze.
Zarejestrowany użytkownik

Gradienty CSS nie są ograniczone w większości przeglądarek. Smutne ale prawdziwe.
aaaidan

4

Znalazłem podobny problem w programie Illustrator (który nie ma nawet opcji „ditherowania” gradientów). Brzmi to trochę szalone, ale obchodzę to, stosując filtr „szklany”, który może przybliżać dithering przy użyciu odpowiednich parametrów.

Używam:

  • Distortion: 2 (zależy to od wielkości twoich pasm).
  • Gładkość: 1
  • Tekstura: Matowy (najgłośniejsza wbudowana tekstura)
  • Skalowanie: 50%

W programie Illustrator wprowadza białe plamki na krawędziach obiektu, które można naprawić za pomocą maski przycinającej.

Wyniki? „Porzucony” jeden po prawej. Dodaje trochę głośnej tekstury, ale myślę, że przez większość czasu jest to lepsze niż zespoły.

Gradient paskowy Porzucony


3

Bardzo podstawową różnicą przy tworzeniu gradientów jest użycie warstwy gradientu, która ma wbudowaną opcję ditheringu (Warstwa> Nowa warstwa wypełnienia> Gradient) i pozostaje regulowana. Odtąd możesz konwertować na inteligentną warstwę i dodawać efekty, które potrzebujesz, aby poprawić, ale daje to znacznie lepszy punkt wyjścia.


Opcja ditheringu dla warstw gradientu ditheruje tylko kanały czerwony, zielony i niebieski, a nie alfa (niestety).
Marc Edwards,

2
Nie wiedziałem tego. Przezroczystość można jednak uzyskać również za pomocą maski warstwy. A może zrobisz gradient od czerni do bieli i użyjesz go jako maski warstwy?
KMSTR

2

wprowadź opis zdjęcia tutaj

Są to trzy próbki wykazujące dreszcze. Poniższy zestaw to powyższy zestaw z poziomami dostosowanymi w celu podkreślenia efektów ditheringu.

wprowadź opis zdjęcia tutaj

Od lewej do prawej pierwsza jest najbardziej widoczna; brak roztrząsania. Drugi to ten sam gradient z ditherem; dużo lepiej. A trzeci, ten po prawej, ma drenaż, a ja dodatkowo dodałem warstwę szumu, w efekcie przyspieszając drenaż. Zobacz komentarz, dlaczego chcesz dodać dodatkowy hałas. Zobacz „dodatkowe uwagi”, aby dowiedzieć się, jak wytrząsać przezroczystość / kanał alfa.

Komentarz

Wykonałem duże renderowanie gradientów przy minimalnej zmienności kolorów, a pasy były bardzo widoczne bez ditheringu, jak w pierwszej próbce. Potem dowiedziałem się o ditheringu i to bardzo poprawiło sytuację, to druga próbka. Ale na dużym renderingu (tutaj mniej widocznym) nadal było trochę pasm. Potrzebowałem bardziej agresywnego roztrząsania. Więc skopiowałem * warstwę gradientu, zrasteryzowałem ją i dodałem niewielką ilość (0,1%) jednolitego monochromatycznego szumu. To znacznie poprawiło obraz na dużą skalę. To trzecia próbka. Poprawa z dodatkowego szumu (który jest zasadniczo ditherem) jest mniej widoczna na małą skalę, jak w tej próbce tutaj, ale była bardzo ważna przy dużym renderowaniu, takim jak te, nad którymi pracowałem.

* Stworzyłem osobną warstwę dla szumu, ponieważ w ten sposób mogłem kontrolować hałas dzięki kryciu nowej warstwy.

Dodatkowe uwagi

  • Omówiłem tylko rzeczywisty obraz. Wpływ na sprzęt i stronę kierowcy może mieć również wpływ; inne urządzenie może wyświetlać rzeczy inaczej. Inne odpowiedzi dobrze to ujęły.

  • Photoshop nie ditheruje kanału alfa. Jeśli potrzebujesz ditheringu na przezroczystości, musisz ręcznie ditherować kanał alfa. Użyłbym warstwy maski do stworzenia przezroczystości, więc byłoby to tylko kwestią ditheringu tej warstwy maski. Podczas pracy z maskami warstw nie zapomnij ALT+ left clickna masce warstw, aby ją wyświetlić.


2

Bardzo przydatny artykuł na ten temat: http://nomorebanding.com/cache

Oto istota:

Chodzi o to, aby utworzyć gradient w trybie 16-bitowym, a następnie przekonwertować go w tryb 8-bitowy, postępując zgodnie z procedurą ręcznego ditheringu (przy użyciu niestandardowej warstwy ditheringu). Oto procedura:

1. Wyłącz domyślne dithering (Edycja> Ustawienia kolorów usuń zaznaczenie opcji Użyj ditheringu), ponieważ stworzymy własny „silnik” ditheringu

2. Utwórz nową warstwę (powinna być najwyższa).

3. Wypełnij jednolitym 50% szarym.

4. Filtr> Hałas> Dodaj hałas. (Kwota 25%, Jednolita dystrybucja, Sprawdzone monochromatycznie)

  1. Naciśnij Ctrl + F, aby powtórzyć filtr szumów na tej samej warstwie.

6. Ustaw warstwę na Światło liniowe.

7. Na palecie Warstwy ustaw Krycie na 1%, Krycie wypełnienia na 19%.

Ważne: Musisz spłaszczyć obraz (w tym warstwę szumu) w trybie 16-bitowym, a dopiero potem przekonwertować na tryb 8-bitowy w celu eksportu. Jeśli zrobisz to na odwrót, najpierw stracisz wszystkie 16-bitowe informacje, a następnie warstwa szumu nie zrobi nic w 8 bitach. Pamiętaj też o ustawieniu Użyj ditheringu w Photoshopie. Możesz użyć warstwy lub natywnej metody roztrząsania, ale nie używaj obu podczas konwersji, powoduje to dwukrotnie większy hałas, którego potrzebujesz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.