Лінійне малювання сцени

Раніше цей режим називався малюванням з широким динамічним діапазоном (HDR) або пов’язаним із сценою малюванням. Лінійне малювання сцени — цифрове малювання у особливому типі простору кольорів. Простір кольорів має бути…

  1. Лінійним — без кодування гами, пов’язування тонів або будь-чого, що відбувається із пікселями, з якими ви працюєте (це не зовсім ті пікселі, які ви бачите, але ми повернемося до цього пізніше).

  2. Із дійсними значеннями для компонентів кольорів — 16- або 32-бітові дійсні числа із рухомою крапкою для кожного з каналів.

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

Отже, лінійний простір сцени не є якимось окремим простором кольорів, а є типом просторів кольорів. Ви можете мати лінійний простір сцени, у якому використовуються фарбники sRGB/Rec 709 або простір, у якому використовується adobeRGB, або, навіть, простір, у якому використано Rec 2020, якщо простір є лінійним, а бітова глибина кольорів у ньому визначається дійсними числами із рухомою крапкою.

Примітка

Якщо ви хочете створити зображення для показу на моніторах із можливостями HDR, вам слід вибрати профіль простору Rec 2020 із лінійною гаммою. Типовим профілем для Krita є Rec2020-elle-V4-g10.icc.

Дві описані вище характеристики дають одне: чорний і білий кольори стають довільними значеннями. Це може здатися дещо дивним. Але якщо ви маєте справу із джерелами світла, ви маєте справу із широким діапазоном контрастів, отже маєте вирішити, який білий і який чорний вам потрібні. Це, власне, те, що означає слово «сцена» у словосполученні «лінійний простір сцени», — відповідні значення є унікальними для певної сцени, подібно до сцени у реальному світі — квіткового поля у місячному світлі, міста у сутінках або сонячного пляжу. Вам потрібна можливість правильно розставити акценти на найважливіших контрастних значеннях, а можливість вибрати який колір буде білим, а який буде чорним, є дуже потужним інструментом досягти цього. Зокрема, у темноті чи на сонці ми можемо бачити більше, коли призвичаїмося до освітлення, то чому б не застосувати це до того, як ми створюємо картини?

Такий підхід також спричиняє вимогу лінійності простору. У просторах із виправленням гамми та прив’язками тонів вже визначено, який з контрастів є найважливішим. Але для цього слід наперед вибрати білий і чорний кольори. У лінійному просторі такі попередні припущення не потрібні, отже ви можете вибрати ці кольори самостійно. Врешті, ви можете застосувати до зображення прив’язку тонів або виправлення гамми, але зробити це можна наприкінці роботи, після застосування фільтрів і змішування кольорів!

Фактично, під час роботи над зображенням використовується неруйнівний тип перетворення, який включає прив’язку тонів. Це перетворення називається перетворенням перегляду і є чимось подібним до бінокля, крізь який ви дивитеся на ваше зображення. Без нього ваш комп’ютер не зможе належним чином показати кольори; він просто не знатиме, як слід обробляти їх належним чином, часто роблячи зображення надто темним. Надання можливості здійснювати таке перетворення і налаштовувати його параметри — основна мета керування кольорами.

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

../../_images/Krita_scenelinear_cat_01.png

Вище наведено приклад наївного перетворення з лінійного sRGB сцени до звичайного sRGB, а праворуч — результати складнішого перетворення на основі налаштувань «filmic blender» для OCIO. Зверніть увагу на вигляд кінчиків лапок. Зображення створено Wolthera van Hövell tot Westerflier, умови ліцензування: CC-BY-SA

І навпаки, перетворення та інтерпретація кольорів зображення є єдиною річчю, яку здатна виконувати OCIO. Ця система може виконувати дуже складні перетворення дуже швидко. У ній не закладено даних щодо початкового простору кольорів зображення, не закладено даних щодо того, що таке CMYK, і не існує ніяких профілів кольорів OCIO. Тому вам доведеться перейти до роботи з ICC, якщо ви хочете приготувати зображення до друку.

Так, але навіщо?

Для того, щоб спростити речі у довгій перспективі:

  1. Насичені і незамутнені кольори простіше тримати у лінійному просторі.

  2. Значна бітова глибина кольорів спрощує отримання плавніших переходів кольорів.

  3. У цьому просторі фільтри є потужнішими і дають кращі результати. Тут набагато простіше отримати якісне розмивання або ефект боке.

  4. Прості режими змішування, подібні до «Множення» або «Додавання», несподівано, дають чарівні результати. Причиною є те, що лінійні простори сцени є найближчими до того, що ви отримаєте у фізичною моделлю (пов’язаною із фізикою, а не з матеріальною моделлю) кольорів, у якій множення кольорів є основним способом для обчислення ефекту світла.

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

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

Гаразд, але навіщо усе це?

Якщо простіше, оскільки так буде краще у перспективі, вам також доведеться забути про деякі інструменти і змінити звички…

Зокрема, у арсеналі цифрового художника багато інструментів, для яких визначено жорстке програмне фіксування чорного і білого.

Дуже простою, але значною проблемою є проблема з інверсією. Інвертування кольорів виконується у коді шляхом визначення білого кольору і віднімання від нього кольору, який ви хочете інвертувати. Ця процедура виконується у багатьох режимах змішування. Але часто білий колір «зашито» до цих фільтрів. На сьогодні, немає жодної програми, яка дозволяє вам визначати діапазон значень, у якому слід виконувати інверсію, отже, інверсія позбавлена сенсу. І це також означає, що фільтри і режими змішування використовують цю інверсію, як є (але не лише її)…

  • Екран (інверсія+множення+інверсія)

  • Накладання (віддзеркалення значень нижче значень середнього тону, який у sRGB є середнім сірим)

  • Висвітлення кольорів (ділить колір нижнього шару на обернений колір верхнього)

  • Вигоряння кольорів (інвертує колір нижнього шару і ділить його на колі верхнього)

  • Яскраве світло (інший спосіб створення накладки, включає інверсію)

  • Розсіяне світло (використовує для отримання результату декілька інверсій)

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

Іншою проблемою є алгоритми HSL, HSI та HSY. У них теж доводиться припускати щось щодо найбільшого значення для уможливлення масштабування за білим кольором. У HSV цієї проблеми немає. Отже, найкращим розв’язанням цієї проблеми є використання засобу вибору кольору HSV.

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

  • Колір

  • Світність

  • Насиченість

  • Темніший колір (використовує яскравість світла для визначення кольору)

  • Світліший колір (те саме)

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

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

Іншою великою проблемою є те, що чорний колір працює не зовсім так, як раніше.

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

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

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

  • Малювати ескіз на помірно сірому тлі. Все одно це рекомендований спосіб, оскільки таке тло слугує нейтральним задником. Для лінійного простору добрим нейтральним є 18% або 22% сірий.

  • Створити особливий пензель, який є непрозорішим за звичайні ескізні пензлі, якими ви користуєтеся.

  • Або навпаки, створюєте ескізи білим.

  • Щодо малювання, зробіть намітки форм за допомогою великого непрозорого пензля, перш ніж розпочнете змішування.

Загалом, до цього слід звикнути, але звикання відбувається доволі швидко.

Нарешті, існує проблема розміру.

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

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

Підсумок

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

Щоб мати змогу переглядати таке зображення, вам слід скористатися перетворенням перегляду. Це означає, що якщо ви хочете отримати остаточний варіант вашого зображення для розміщення в інтернеті, вам слід зробити копію зображення, яку буде пропущено крізь перетворення перегляду, а потім збережено у форматі PNG, JPEG або TIFF.

Переходимо до малювання

Тепер, коли ми розібралися із теорією, перейдемо до практики лінійного малювання сцени.

Налаштовуємо полотно

Виберіть 16-бітове або 32-бітове зображення. Типово, Krita вибере лінійний профіль sRGB. Якщо ви хочете створити зображення для показу на дисплеї із можливостями HDR, вам слід вибрати профіль Rec2020-elle-V4-g10.icc. Зображення HDR стандартизовано на використання діапазону кольорів Rec. 2020, який є набагато ширшим за sRGB за розміром, отже, ви матимете доступ до усіх кольорів.

Якщо ви працюєте за монітором, який не може відтворювати кольори HDR, вам слід увімкнути OCIO на бічній панелі пошуку за таблицею (LUT).

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

Вибираємо справді яскраві кольори

Вибрати звичайні кольори просто, але як вибрати насправді яскраві кольори? У Krita існує три способи доступу до яскравих кольорів:

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

  2. Встановленням для повзунка пунктів на панелі Малий вибір кольору значення, що перевищує 100.

  3. Просто відкрити вбудований засіб вибору кольору подвійним клацанням на подвійній кнопці кольору і ввести значення, яке є більшим за 1, до поля значення.

  4. І нарешті, взяти яскравий колір з зображення, де є такий яскравий колір.

Далі можна малювати. Рекомендуємо створити таблицю пробників у куті екрана, принаймні до того часу, коли на новій бічній панелі палітри Krita можна буде належним чином зберігати значення кольорів.

Робота на основі освітлення

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

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

../../_images/Krita_scenelinear_cat_02.png

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

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

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

Завершальна обробка

Коли малювання буде завершено, вам потрібно буде застосувати відповідне перетворення перегляду до зображення (принаймні, якщо ви хочете розмістити результати роботи в інтернеті)… Це називається «випікання за таблицею пошуку». У Krita цю процедуру ще не реалізовано. Тому вам слід зберегти зображення у форматі EXR і відкрити його у Blender або Natron. Далі, у Blender достатньо просто використати ті самі налаштування OCIO, вибрати належні значення і зберегти результат у форматі PNG.

Щоб дізнатися більше про те, як зберегти зображення із широким динамічним діапазоном (HDR), ознайомтеся із розділом HDR-дисплей.

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