Чому два ідеально сусідніх прямокутника створюють чорні або білі лінії між ними так, ніби вони перетинаються чи не зовсім суміжні?


53

У мене плоский дизайн (ну, це має бути), але ці чорно-білі лінії між формами настільки дратують ... [без штриху] погляньте:

Проблема

Бачите ці лінії між двома прямокутниками, що перекриваються? Як я можу це виправити? (Я створив це за допомогою Photoshop, але є однакова проблема із використанням Paint.net та Adobe Illustrator) Це щось із кольором? Або я бачу занадто багато? : P


Я думаю, що ключовим у цьому вирішенні питання про те, чи це Мах-діапазон чи щось інше, є асиметрія: "як ви бачите, права сторона прямокутника перекривається на 1 пікс (як ви заявили), а ліва -". Смуги Маха повинні виступати симетрично з обох сторін.
Elmo Allén

1
Я збільшив масштаб (до 25600%), тому це, безумовно, субпіксель. Між іншим, артефакти я бачу лише на 1 з 3 моніторів. Інші два виглядають primo sharpo !! Тож це безумовно залежить від піксельної конструкції вашого монітора.
Восьминіг

1
@Octopus: Який бренд моніторів? Це моя наступна покупка, і я хотів би придбати щось об'єктивно вищої якості.
dotancohen

Відповіді:


90

Як правильно зазначає Елмо Ален, це не оптична ілюзія, не помилка у вашому графічному редакторі, а ефект, спричинений технологією монітора, яку ви використовуєте.

Зокрема, на типовому сучасному екрані комп'ютера TFT-LCD кожен піксель фактично складається з трьох окремих підпікселів, розташованих поруч, відповідно кольорового регістру, зеленого та синього:

Пікселі на екрані TFT

Кожен з цих субпікселів може створювати лише один з основних кольорів світла, але, оскільки вони дуже близько один від одного, їх кольори поєднуються, коли ви дивитесь на них, створюючи ілюзію суцільного кольору.

Для білого (або сірого) пікселя всі субпікселі однаково освітлені. Регулюючи інтенсивність різних субпікселів відносно один одного, можна отримати різні кольори. У крайньому випадку, для чистого червоного, зеленого або синього пікселя вмикаються лише субпікселі, що створюють цей колір. Таким чином, ваша червоно-зелена-червона смуга на рівні субпікселів виведе приблизно так:

Червоно-зелено-червона смуга на екрані TFT

Тут ви можете почати бачити, що відбувається: зазвичай є проміжок у двох темних підпікселів між кожною освітленою, але на межах між кольорами проміжок є або трьома підпікселями (створення темної смуги), або просто одним (створення легкий).

Звичайно, ефект є більш очевидним, коли кольори сусідніх пікселів поєднуються між собою, як це зазвичай відбувається, коли ви дивитесь на екран:

Червоно-зелено-червона смуга на екрані TFT, розмита

Тут я застосував лише помірну кількість розмиття, імітуючи те, що ви можете побачити, якби, наприклад, дивились на екран через збільшувальне скло. (Спробуйте!) Темна смуга на лівій кордоні тут очевидна; яскрава смуга на правій межі відображається не так чітко, але вона стане помітнішою, якби зображення було розмито далі.

Звичайно, вам не доведеться довіряти цим імітованим зображенням. Натомість дозвольте мені включити пару знімків, які я зробив із екрана свого ноутбука, із зображенням вашого запитання, із дешевою цифровою камерою:

Фотографія екрану ноутбука, що показує межу червоного / зеленого кольору
Фотографія екрану ноутбука, що показує межу зеленого / червоного кольору

Як і в імітованому зображенні, темна лінія дуже очевидна; яскрава лінія є менш такою, можливо, тому, що між освітленими все ще є один темний субпіксель, тому не існує такого чіткого піку одного інтенсивності.

Що ви можете зробити, щоб це виправити?

В принципі, цей ефект може дещо компенсувати ваш монітор, наприклад, виявивши такі проблемні переходи та давши кольорам трохи кровоточити один в одного, щоб пом’якшити перехід. Це додало б більшої складності та витрат, саме тому більшість виробників моніторів не турбуються.

Однак можна досягти того ж результату самостійно, додавши вузьку смугу проміжного кольору (наприклад, жовтий, для червоного та зеленого) між такими висококонтрастними кольоровими полями. Колір цієї смуги повинен приблизно відповідати середній яскравості навколишніх кольорів, враховуючи гамму дисплея .


2
Я не думаю, що компенсація дійсно вплине на вартість всього стільки (~ 1 євро за вершину панелі). Враховуючи старі часи аміги, вони зробили щось подібне. Його більше схоже на проблему є дещо рідкісною, ви не хочете проблем з вашими заточувальними / адаптаційними коригуваннями майже без виграшу. Просто гарне нагадування про те, що технологія повна компромісів і вам потрібно знати про деякі з них. +1 Hyvät kuvat kuitenki.
joojaa

2
Чи додавання проміжних кольорів насправді робиться на практиці?
Ліліенталь

1
@Lilienthal: я ніколи цього не бачив; то знову ж таки, вся суть у тому, що ви цього не повинні бачити. Я вважаю, що одна з причин, чому ця потреба рідко виникає на практиці, полягає в тому, що більшість дизайнерів так чи інакше уникають розміщення таких сильно контрастних чистих кольорів.
Ільмарі Каронен

35

Важко зробити саме те, що тут всі бачать, адже у кожного є свій дисплей, щоб побачити зображення. На моніторі, якщо я косячусь, я бачив дуже тонку чорну лінію між лівим червоним прямокутником та зеленим середнім прямокутником. І навпаки, між правою червоною і серединою я бачу дуже тонку білу лінію. По суті, я розумію, що оригінальний плакат означає, що вони бачать це (перебільшено):

Опис проблеми: чорна або біла лінія між сусідніми прямокутниками, перебільшена.

Це не групи Мача , як пропонується в коментарях до запитання. Діапазони Mach не народжуються між різними хромованими кольорами, а замість різних кольорів (наприклад, між двома відтінками сірого). У правій частині червоного прямокутника створюється дуже слабкий діапазон Маха, тому що повний червоний (RGB 255-0-0) трохи менш яскравий, ніж повний зелений (RGB 0-255-0) на моєму моніторі (і на всіх моніторах sRGB як Ну). (Незважаючи на те, що кольори оригінального зображення не є чистими Червоним або Зеленим, різниця в їх сприйнятій легкості приблизно однакова.) В основному, групи Маха показують так (знову ж таки, сильно перебільшені):

Ілюстрація гуртів Маха, перебільшена

Але групи Mach не можуть створити білі або чорні тонкі лінії. Вони створюють лише незначну різницю в спостережуваній яскравості на широкій площі. А смуги Маха завжди симетричні: червоно-зелене - те саме, що зелене-червоне. Але це несиметрично: інша межа чорна, а інша - біла.

Натомість, який візуальний артефакт ми бачимо тут через розташування підпіксельних РК-дисплеїв . Найбільш звична композиція - Червоно-Зелений-Синій зліва направо. Таким чином, між кожним повним червоним пікселем є відключений зелений субпіксель та відключений синій субпіксель. Між повним червоним пікселем та повним зеленим пікселем натомість є три вимкнені субпікселі: зелений, синій та червоний. Це створює ефект тонкої чорної лінії між червоним і зеленим. Як на зображенні нижче:

Субпіксельне зображення червоного кольору, що відповідає зеленому кольору.

Тепер з іншого боку зеленого прямокутника спочатку горить зелений субпіксель, відключений синій субпіксель, а потім червоний. Зараз між освітленими зеленими та червоними субпікселями є лише один чорний субпіксель. Це створює ефект дуже тонкої яскравої лінії, що проходить між зеленою та червоною межею. Як зазначено нижче:

Субпіксельне зображення зеленого кольору, що відповідає червоному кольору.

Щоб побачити субпікселі на моніторі, вам, мабуть, знадобиться лупа. Норманський людський зір не може зосередитися на такій близькій відстані, де ви побачили б окремі пікселі. Однак, дуже добре помітити незначну різницю яскравості.

Тепер, щоб довести теорію правильною, ви можете додати, наприклад, 1 px широку лінію RGB 128-255-0 між лівим червоним прямокутником та зеленим прямокутником і побачити, чи чорна лінія згасає, тому що до цього додається зелене світло підпікселя раніше розрив. Також ви можете спробувати, наприклад, RGB 85-85-0 шириною 1 пікс між зеленим та правим червоним прямокутником, щоб трохи затемнити підпікселі. На жаль, це не може бути використане в реальному дизайні, оскільки, по-перше, це залежить від розташування червоного-синьо-синього субпікселя і в той же час робить кольорову межу трохи розмитою.

Крім того, існує можливість алгоритму різкості екрана. В основному різкість монітора робить усі кольори кольорів більш помітними, додаючи білу до більш яскравої сторони краю і затемнюючи до чорного на більш темній стороні. Це дуже схоже на ефект групи Маха, але набагато вужчий і зазвичай більш помітний. Це можна дізнатися, відрегулювавши налаштування різкості дисплея (сподіваємось, що можливо) і побачити, чи зменшується ефект.


2
так, це має сенс, однак враховує не всі ефекти, але так, тепер я дивлюся на два монітора з відомим іншим порядком, ефект насправді перевернутий. Однак я не бачу нерівномірності кольорів на первинному моніторі, що може бути пов'язано з шалено гарною якістю елементів зображення моніторів. Єдине, що я бачу - це групи мач. Ps для перевірки цього монітора повороту вниз головою.
joojaa

ах, і справді, що елемети стохастично скремтовані, щоб протистояти цій проблемі
Joojaa

У будь-якому випадку OP @candh говорить про широке перекриття 1px. Діапазони Маха ніколи не повинні бути такими вузькими. (У всякому разі, їх навіть не можна визначити в сенсі пікселів, оскільки вони утворюються в мозку. Артефакти субпікселя утворюються на екрані.) І все-таки, із свічкою, детальніше розглядаючи те, що він саме бачить, ми застрягли у пошуку правильного рішення. (Маючи свою репутацію, поки не можу коментувати це питання.)
Elmo Allén

2
@joojaa, звичайно, шум зменшив би прямолінійний ефект субпікселів, але він би кинув дитину разом з водою, тому що пряма різка лінія вже не виглядатиме такою різкою. Я не думаю, що є якийсь хороший спосіб боротьби з цим чи насправді з будь-якими причинами. На сучасних дисплеях ефект уже незначний, і тепер, коли дисплеї HiDPI повільно надходять на мейнстрім навіть на настільних комп'ютерах, це має значення навіть менше. Крім того, дуже рідко використовуються контрасти кольорів, і це зовсім не впливає на контраст легкості.
Elmo Allén

2
На моєму моніторі R, G, B я значно зменшив зоровий артефакт, збільшивши / зменшивши загальну кількість двох граничних пікселів на 1/6 (загальна 1/3, що відповідає зсуву на 1/3) а-піксель). Точніше: 1 0 0 | 1 0 0 | 1 x 0 | x 1 0 | 0 1 0 | 0 1 0: якщо встановити два x компоненти на 1/6 замість 0, ви уникаєте ефекту чорної смуги. І в 0 1 0 | 0 1 0 | 0 y 0 | y 0 0 | 1 0 0 | 1 0 0: вам потрібно встановити лише 5/6, щоб уникнути ефекту білої смуги. (Значення 1/6 та 5/6, мабуть, слід уточнити, беручи до уваги рівень сприйняття очей.)
Армін Риго

4

Така природа кольорів, коли вони поєднуються. Людське око прагне спрощення, щоб з’ясувати речі .. та оптичні ілюзії, спричинені нашим сприйняттям кольорів.

це явище, яке називається "Ілюзія Мах-груп", з'являється з будь-якими двома кольорами, різними за значенням. ні в відтінку, ні в насиченні. і моя додана схема показує, що та ж ілюзія трапляється в сірих кольорах. світліший сірий буде світлішим порівняно з темнішим посередині, а середній сірий виглядає світлішим біля краю правого темно-сірого справа. І так один.

введіть тут опис зображення

якщо це важливо для вас, то у вас є два варіанти.

  1. вибрати два кольори, які мають однакове співвідношення чорного, це дозволить зменшити ілюзію
  2. ви можете «обдурити око», додавши сіру крихітну лінію між двома кольорами, які мають середній сірий колір із двох сірих кольорів. див. результат нижче. ви можете визнати, що верхня смужка менше в ілюзії, ніж нижня.

верхня смужка менше в ілюзії

це масштабована версія з крихітною сірою лінією.


11
Це неправильно. Перша діаграма (червоно-зелений-червоний) не відповідає другій (світло-сіра-середина сіро-темно-сіра), оскільки два червоні кольори одного кольору. Якби мова йшла про яскравість, лінійний графік був би симетричним, як це --\|\--/|/--, і ви побачили б або чорну смугу як на червоно-зеленому інтерфейсі, так і на зелено-червоній, або білу смугу на обох.
Девід Річербі

5
Це справді легко спростувати. Якщо у вас ноутбук і ви бачите чорно-білі лінії, тоді переверніть ноутбук догори дном. Ви знайдете чорну лінію праворуч, а не зліва.
slebetman

3
@hsawires: Ідея - довести щось науково. Перевернути ноутбук догори ногами і побачити, як ваша теорія повністю розсіюється, це, безумовно, справедливий недоказ. Ви не можете просто махнути рукою, сказавши, що "ви не можете довести і спростувати ілюзії"; яка дурниця!
Гонки легкості з Монікою

1
@hsawires: Так чи інакше, перевернувши екран догори дном, якби не той факт, що це перетворює порядок діодів, що створюють різні кольори на екрані, це не мало би значення для того, як зображення сприймається, тому що зображення симетричне. Інакше можна, переглянувши ефект діапазону Маха, визначити, повертався чи ні екран, що не має сенсу. Той факт, що зображення не сприймається однаково, означає, що має відбуватися щось інше, що пояснюється субпіксельною структурою, яку описують Ілмарі та Елмо.
HelloGoodbye

1
Щоб підтримати @HelloGoodbye, наш надійний друг Wikipedia ( en.wikipedia.org/wiki/Mach_bands ) повинен сказати: "Ілюзія не залежить від орієнтації".
Нельсон Ротермель

0

Я не можу бути впевнений, але якщо ви носите окуляри, саме тут буде критися проблема. Ви, швидше за все, бачите хроматичну аберацію , в якій червоні і зелень розділяються.

Чим товщі окуляри, тим яскравіше буде ефект. Спробуйте повернути голову і спостерігати за тим, як кольорові блоки рухаються - коли ви рухаєтеся до краю окулярів, окуляри будуть товстішими і, таким чином, спричинять більшу розлуку.


6
Це не хроматична аберація. Будь-яка напівпровідна грамотна пара окулярів не буде виявляти хроматичну аберацію при погляді прямо на монітор комп'ютера.
Девід Річербі

Тут є абсолютно аспект хроматичної аберації. Тільки регулювання кута, на який я дивлюсь, монітор робить чорно-білі смуги змінювати розмір. І хоча цей ефект більш виражений у окулярах, він все ще присутній без окулярів - у ваших очей є також недосконалі лінзи! Ігнорування того, що чисті первинні кольори матимуть такий ефект, не є частиною історії.
Девід Сенті

@Sainty Як показує відповідь Ilmari , мова йде про інтервал між пікселями на моніторі. Якщо ви пересунете голову в бік, очевидний інтервал субпікселів змінюється, тому ефект змінюється. І як би хроматична аберація випускала чорний колір? Ви припускаєте, що аберація настільки сильна, що частота світла змінюється таким, щоб бути поза видимою областю спектра?
Девід Річербі

@Richerby: На основі відповіді кандида та дещо більш детального розслідування з мого боку, це не той ефект, який він бачив. Але хроматична аберація існує, і вона створює чорні лінії - червона зміститься в одну сторону, а зелена - в іншу; подумайте про призми і як вони розділяють кольори. Частина, що залишилася буде чорною, хоча на моїх очах (коли я носила окуляри) вона виглядала більше, як червоне "пливе" над екраном.
користувач295691

0

Цей потік на форумі Adobe має хорошу інформацію про те, де знаходяться параметри «Вирівняти по піксельній сітці».

Якщо я добре пам’ятаю, це також можна ввімкнути в документі через File > Newдіалогове вікно (в самому нижньому куті поля).

Або ці коректні моніторні експерти коректні, або у вас просто виникає розбіжність, створена вектором, що не правильно відповідає пікселям на моніторі. Саме тому стільки людей схвильовані тим, що цей маленький прапорець додається до Illustrator.


3
Вектори вирівняні правильно. Щоб переконатися, що вам доведеться просто скопіювати та вставити зображення у Photoshop або будь-який редактор зображень та збільшити масштаб. Немає антиаліаз між пікселями та пікселями середнього тону.
Elmo Allén

-2

Це може бути пов’язано з взаємодією кольорів. Червоний і зелений - це допоміжні кольори, і якщо розміщуватись поруч, схоже, створюється чорна / темна лінія, яка здається перекриттям. Ви можете прочитати та побачити більше прикладів тут .

Автоматичний ілюстратор вставляє фігури на свої місця, тому там не повинно виникати жодних питань перекриття.


2
Якби явище було виключно завдяки нашим очам, ви побачили те саме на червоно-зеленій межі, як і ви на зелено-червоній межі.
Девід Річербі

Червоний і зелений, якщо розміщуватись поруч і дивитися з достатньої відстані (наприклад, дивлячись на невеликі пікселі з кількох футів), виходитиме жовтий, а не чорний.
Джейсон C

-2

Якщо ввімкнути опцію " Вирівняти нові об'єкти до сітки пікселів" у меню параметрів вікна " Трансформація " (у верхньому правому куті будь-якого вікна параметрів), будь-які нові об'єкти, які ви малюєте, мають властивість вирівнювання пікселів за замовчуванням. Для нових документів, створених за допомогою профілю веб-документа, ця опція включена за замовчуванням. Для існуючих об'єктів ви можете вимкнути вирівнювання піксельної сітки, вибравши Вирівняти по піксельній сітці у самому вікні Трансформація (відображається після позначення пункту Додаткові параметри у меню параметрів вікна).

Чіткий вигляд штрихів, вирівнюваних пікселями, зберігається у випуску растру лише з роздільною здатністю 72 піп. Для інших резолюцій існує велика ймовірність таких ударів, що дають результати антиаліда.

Об'єкти, вирівняні пікселями, але не мають прямих вертикальних чи горизонтальних сегментів, не модифікуються для вирівнювання до піксельної сітки. Наприклад, оскільки обертовий прямокутник не має прямих вертикальних або горизонтальних сегментів, його не підштовхують для отримання чітких контурів, коли для нього встановлено властивість вирівнювання пікселів.

Ця документація Adobe розповідає про це ширше: http://helpx.adobe.com/illustrator/using/drawing-pixel-aligned-paths-web.html


1
який варіант саме?
кандида
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.