Сповіщення
Очистити все

Робота з форматом .dds


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
7 місяців тому
 

Увага! Уроки розраховані на користувачів, які вже досить добре освоїли фотошоп. Різні питання типу "а де знаходиться ця кнопачка???" тут не розглядаються.


Безпосередньо перед практичною роботою з текстурами у грі необхідно ознайомитись із форматом ДДС. Навчитися правильно відкривати файли, обробляти та зберігати. У багатьох людей із цим труднощі, тому й спробую розповісти все в деталях.

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

А тепер небагато теорії.

Необхідно ознайомитися з такими поняттями, як режим формату ддс, альфа, міп-рівні (MIP-maps), скайбокс (cubemap).

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

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

Текстура у форматі .dds може містити кілька дублікатів але з різною роздільною здатністю. Наприклад, якщо ми зберігаємо текстуру з роздільною здатністю 512*512, так само автоматично у файл збережеться ця ж текстура з роздільною здатністю 256*256, 128*128, 64*64, 32*32, і т.д. зазвичай кількість таких текстур в одному файлі досягає 13. І якщо згадати той запорожець, то коли ми знаходимося до нього впритул, на нього накладена текстура 512*512, відійдемо на 30 метрів, роздільна здатність текстури зміниться до 256*256, ще на 30 метрів - вже 128 * 128, і при подальшому віддаленні від запору його текстура буде зменшуватися далі.

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

Альфа Текстури перед збереженням у ддс завжди повинні бути у форматі RGB зі зведеними шарами, тобто стандартна прозорість у ддс не підтримується. Її роль відіграє альфа (A) – 4-й канал формату RGB. Зазвичай, вона використовується, коли для текстури необхідно встановити прозорі ділянки або інші додаткові властивості. У сталкері на альфу також може бути повішений глянець для статичного освітлення. Важливо! Текстури рельєфу складаються із 4 каналів, тому альфа для них потрібна завжди!

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

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

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

Режими формату .dds формат підтримує безліч варіантів збереження текстур різної кількості каналів та їх глибини кольору, так само він підтримує стиснення. Під час роботи з текстурами сталкера не потрібно розбиратися в усіх режимах. Достатньо знати лише ці:

8:8:8 RGB - стислий варіант збереження текстур БЕЗ альфи 
 
8:8:8:8 ARGB - стислий варіант збереження текстур З альфою
 
DXT1 (без альфи) - стислий формат збереження текстур БЕЗ альфи (стиснення до 8 разів).
 
DXT1 (з альфою 1 біт) – стислий формат збереження текстур З 1-бітною альфою (стиснення до 8 разів).
 
DXT3 - стислий формат збереження текстур З альфою, що має індексовану палітру менше 256 кольорів (стиснення до 4 разів).
 
DXT5 – стислий формат збереження текстур З повнокольоровою альфою (стиснення до 4 разів).

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

Стиснутий формат DXT підтримує лише дозволи, кратні 8, тобто розміри сторін 8, ... 64, 128, 256, 512 ... пікс. і т.д. тому не намагайтеся зберігати текстуру невідповідної роздільної здатності, наприклад 400х400, кнопка ОК у таких випадках буде сірою.

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

А зараз практика.

Спробуємо відкрити будь-який файл у форматі ДДС. Якщо текстура містить міп-рівні (MIP-maps), то вилізе таке вікно:

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

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

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

Нагадую. Якщо текстура з альфою зберігається для подальших тестів, то використовуємо режим (8:8:8:8 ARGB), і якщо варіант текстури остаточний, зберігаємо в DXT5 чи DXT1 (з альфою 1 біт).

Для варіанта текстури без альфи використовуємо (8:8:8 RGB) – для подальшої обробки, DXT1 (без альфи) – остаточний варіант.

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

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

У групі "Save format" вказується режим збереження текстури, а також тип текстури з трьох: "2D texture" (звичайна текстура), "cubemap" (скайбокс), "volume texture" (судячи з усього текстура рельєфу, я ніколи цей тип не використовував). Про скайбокси буде сказано нижче.

У групі "Mip-map generation" вказується, зберігати чи ні міп-рівні у текстуру. перший прапорець - зберігати, третій - не зберігати, а другий - це для спеців, тих, хто відповів "так" на питання "чи завантажувати міп-рівні" при відкритті текстури.

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

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

Sharpening – тут можна змінити чіткість міп-рівнів. Режим легкого загострення (sharpen soft) дозволить трохи підвищити деталізацію об'єктів далеко. я завжди користуюсь цим режимом.

Config – тут налаштовується робота плагіна загалом. наприклад, якщо ми хочемо відключити питання при відкритті текстури "завантажувати чи ні міп-рівні", то потрібно зняти галку з опції "Ask to load mip-maps".

Решта нам не знадобиться. Виставивши необхідні опції у вищеописаних параметрах, тиснемо "Save"

Тепер докладніше про деякі специфічні типи текстур:

Карти рельєфу (bump і bump#) Ці текстури зберігаються як і звичайні текстури з повнокольоровою альфою, тобто. або (8:8:8:8 ARGB) або DXT5. Далі, не слід буквально сприймати кольори текстур рельєфу, на кшталт "в сталкірі бамп зелений, а фільтр нвідії робить синій, як бути???" Причина тут лише у порядку каналів. Зазвичай 3 карта нормалей, яка зазвичай є білою, знаходиться на каналі B, і надає цим синій відтінок текстурі в цілому. У сталкері ця карта знаходиться на каналі G, тому відтінок зелений. При цьому якщо карту інтенсивності відблиску (канал R) зробити світлою, то в цілому текстура bump сталкера виглядатиме жовтою.

Скайбокси (cubemap) Це файли у форматі .dds, які містять 6 різних текстур однакового дозволу, і не мають міп-мапів. Зазвичай використовуються для оформлення небесного склепіння, збудованого у вигляді куба. У фотошопі всі 6 текстур для зручності роботи вибудовані в ряд (наприклад, у Гімпі вони розташовані на різних шарах):

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

При збереженні скайбоксів необхідно вказувати в "Save format" режим "cubemap", відключати міп-рівні та альфу. Ну ось і все, що необхідно знати по ддс Удачі в роботі!


   
Цитата