Підпіксельна візуалізація для трасера ​​Ray


16

У візуалізації шрифту зазвичай застосовується субпіксельна візуалізація . Основна ідея тут - розбити піксель на його RGB компоненти, а потім обчислити значення для кожного окремо. Оскільки кожен компонент менший, ніж увесь піксель, можлива антиаліазія вищої якості.

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

Я був здивований, що, однак, я не міг реально знайти посилання на промінчики променів, які роблять це. Особливо, якщо ви вже робите спектральне відображення, це здається очевидною справою. Ось цей журнал із журналу, про який я ніколи не чув, який, схоже, пов'язаний. Але загалом, субпіксельна візуалізація просто не є звичайною справою. Моє запитання: чому б і ні ?


Чи виглядатимуть ваші субпіксельні зображення все одно в порядку, якщо їх переглядати на екранах у вертикальній орієнтації?
jamesdlin

як інженер я ніколи не погодився б реалізувати таку ... порушену ідею. ЗА винятком, якщо я впевнений, що дисплей повністю виправлений. як додаток для iPhone 5S. Використовуючи цю техніку, створюються розбиті зображення з екранів, використовуючи зворотні візерунки або різні композиції.
v.oddou

Відповіді:


14

Це цілком можливо

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

Наприклад, penTile RGBG має вдвічі більше зелених субпікселів, ніж червоний і синій, як показує це зображення з Вікіпедії:

Крупним планом зображення геометрії пікселів RGBG

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

Шрифти надаються на вимогу

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

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

Навряд чи буде довгострокова вигода

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


3
Граючи в захисника диявола, якщо можливо зробити кольоровий субпіксельний рендерінг (я скептик!), Здається, що це може бути корисним у ситуаціях VR, де вони намагаються мати достатню роздільну здатність. Можливо, на (без сітківки?) Телефони чи столи?
Алан Вулф

1
@AlanWolfe так, але це також в 3 рази дорожче візуалізації
joojaa

так точно, це правда. Однак є деякі ситуації, коли це не проблема. Наприклад, я знаю пару алгоритмів, де вам не потрібно знімати промені для кожного пікселя в кожному кадрі. Схоже, це могло б також грати в растерізованій графіці btw. Знову ж таки, я не впевнений, що кольорова субпіксельна візуалізація - справжня річ, але ви знаєте, ЯКЩО! : P
Алан Вулф

@AlanWolfe Я не розумію ваших сумнівів. Усі зображення вже надані із пікселями, але кольори нерівні на третину та половину пікселя. Я не бачу, як виправлення цієї нерівності не призведе до отримання зображення більш високої якості. Чи є у вас якісь особливі занепокоєння (це може спричинити гарне питання ...)?
трихоплакс

3
@joojaa Немає причин, щоб це було в 3 рази так дорого. Вам не потрібно було б знімати 3-разову кількість променів; ви просто застосуєте 3 різних ваги, накопичуючи промені у рамку. Ефективно, ви використовуєте інше антиаліазерне ядро ​​для кожного кольорового каналу.
Натан Рід

9

Звичайно, ви можете використовувати субпіксельну візуалізацію для довільних зображень. Однак субпіксельна візуалізація насправді є загальною технікою 2D-обробки зображень - вона не має нічого спільного з відстеженням променів. Ви можете так само добре використовувати його з будь-яким іншим методом 3D-рендерінгу, або навіть з простим 2D-малюнком, фотографією або навіть відео.

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


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

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

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

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


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